==> Synchronizing chroot copy [/home/alhp/workspace/chroot/root] -> [build_f47124f2-8107-49c8-8c7a-ca3e314c9fac]...done
==> Making package: qwen-code 0.19.2-1.1 (Fri Jul  3 14:08:45 2026)
==> Retrieving sources...
  -> Cloning qwen-code git repo...
Cloning into bare repository '/home/alhp/workspace/build/x86-64-v3/qwen-code-0.19.2-1/qwen-code'...
==> Validating source files with sha256sums...
    qwen-code ... Passed
==> Validating source files with b2sums...
    qwen-code ... Passed
==> Making package: qwen-code 0.19.2-1.1 (Fri Jul  3 12:13:59 2026)
==> Checking runtime dependencies...
==> Installing missing dependencies...
resolving dependencies...
looking for conflicting packages...

Package (6)     New Version  Net Change

extra/ada       3.4.4-1        1.08 MiB
extra/c-ares    1.34.6-1       0.51 MiB
extra/libuv     1.52.1-1       0.64 MiB
extra/simdjson  1:4.6.4-1      7.58 MiB
extra/nodejs    26.4.0-1      61.13 MiB
extra/ripgrep   15.1.0-4       4.30 MiB

Total Installed Size:  75.23 MiB

:: Proceed with installation? [Y/n] 
checking keyring...
checking package integrity...
loading package files...
checking for file conflicts...
:: Processing package changes...
installing ada...
installing c-ares...
installing libuv...
installing simdjson...
installing nodejs...
Optional dependencies for nodejs
    npm: nodejs package manager
installing ripgrep...
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
==> Checking buildtime dependencies...
==> Installing missing dependencies...
resolving dependencies...
looking for conflicting packages...

Package (11)          New Version  Net Change  Download Size

extra/node-gyp        13.0.1-1       6.74 MiB       1.00 MiB
extra/nodejs-nopt     10.0.1-1       0.03 MiB               
extra/oniguruma       6.9.10-1       0.88 MiB               
extra/perl-error      0.17030-3      0.04 MiB               
extra/perl-mailtools  2.22-3         0.10 MiB               
extra/perl-timedate   2.35-1         0.15 MiB               
extra/semver          7.8.5-1        0.10 MiB               
extra/zlib-ng         2.3.3-1        0.28 MiB               
extra/git             2.55.0-1      31.33 MiB               
extra/jq              1.8.2-1        0.47 MiB               
extra/npm             11.16.0-1      9.09 MiB               

Total Download Size:    1.00 MiB
Total Installed Size:  49.20 MiB

:: Proceed with installation? [Y/n] 
:: Retrieving packages...
 node-gyp-13.0.1-1-any downloading...
checking keyring...
checking package integrity...
loading package files...
checking for file conflicts...
:: Processing package changes...
installing perl-error...
installing perl-timedate...
installing perl-mailtools...
installing zlib-ng...
installing git...
Optional dependencies for git
    git-zsh-completion: upstream zsh completion
    tk: gitk and git gui
    openssh: ssh transport and crypto
    man: show help with `git command --help`
    perl-libwww: git svn
    perl-term-readkey: git svn and interactive.singlekey setting
    perl-io-socket-ssl: git send-email TLS support
    perl-authen-sasl: git send-email TLS support
    perl-cgi: gitweb (web interface) support
    python: git svn & git p4 [installed]
    subversion: git svn
    org.freedesktop.secrets: keyring credential helper
    libsecret: libsecret credential helper [installed]
    less: the default pager for git
installing oniguruma...
installing jq...
installing nodejs-nopt...
installing semver...
installing node-gyp...
Optional dependencies for node-gyp
    gcc: to build C++ modules [installed]
    make: to build C++ modules [installed]
    python: to build C++ modules [installed]
installing npm...
Optional dependencies for npm
    git: for dependencies using Git URL's [installed]
:: Running post-transaction hooks...
(1/3) Creating system user accounts...
Creating group 'git' with GID 968.
Creating user 'git' (git daemon user) with UID 968 and GID 968.
(2/3) Reloading system manager configuration...
  Skipped: Current root is not booted.
(3/3) Arming ConditionNeedsUpdate...
==> Retrieving sources...
==> WARNING: Skipping all source file integrity checks.
==> Extracting sources...
  -> Creating working copy of qwen-code git repo...
Cloning into 'qwen-code'...
done.
Updating files:  39% (2468/6290)Updating files:  40% (2516/6290)Updating files:  41% (2579/6290)Updating files:  42% (2642/6290)Updating files:  43% (2705/6290)Updating files:  44% (2768/6290)Updating files:  45% (2831/6290)Updating files:  46% (2894/6290)Updating files:  47% (2957/6290)Updating files:  48% (3020/6290)Updating files:  49% (3083/6290)Updating files:  50% (3145/6290)Updating files:  51% (3208/6290)Updating files:  52% (3271/6290)Updating files:  53% (3334/6290)Updating files:  54% (3397/6290)Updating files:  55% (3460/6290)Updating files:  56% (3523/6290)Updating files:  57% (3586/6290)Updating files:  58% (3649/6290)Updating files:  59% (3712/6290)Updating files:  60% (3774/6290)Updating files:  61% (3837/6290)Updating files:  62% (3900/6290)Updating files:  63% (3963/6290)Updating files:  64% (4026/6290)Updating files:  65% (4089/6290)Updating files:  66% (4152/6290)Updating files:  67% (4215/6290)Updating files:  68% (4278/6290)Updating files:  69% (4341/6290)Updating files:  70% (4403/6290)Updating files:  71% (4466/6290)Updating files:  72% (4529/6290)Updating files:  73% (4592/6290)Updating files:  74% (4655/6290)Updating files:  75% (4718/6290)Updating files:  76% (4781/6290)Updating files:  77% (4844/6290)Updating files:  78% (4907/6290)Updating files:  79% (4970/6290)Updating files:  80% (5032/6290)Updating files:  81% (5095/6290)Updating files:  82% (5158/6290)Updating files:  83% (5221/6290)Updating files:  84% (5284/6290)Updating files:  85% (5347/6290)Updating files:  86% (5410/6290)Updating files:  87% (5473/6290)Updating files:  88% (5536/6290)Updating files:  89% (5599/6290)Updating files:  90% (5661/6290)Updating files:  91% (5724/6290)Updating files:  92% (5787/6290)Updating files:  93% (5850/6290)Updating files:  94% (5913/6290)Updating files:  95% (5976/6290)Updating files:  96% (6039/6290)Updating files:  96% (6069/6290)Updating files:  97% (6102/6290)Updating files:  98% (6165/6290)Updating files:  99% (6228/6290)Updating files: 100% (6290/6290)Updating files: 100% (6290/6290), done.
Switched to a new branch 'makepkg'
==> Starting prepare()...
npm warn deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm warn deprecated prebuild-install@7.1.3: No longer maintained. Please contact the author of the relevant native addon; alternatives are available.
npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm warn deprecated node-domexception@1.0.0: Use your platform's native DOMException instead
npm warn deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm warn deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm warn deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.

added 1814 packages, and audited 1832 packages in 2m

541 packages are looking for funding
  run `npm fund` for details

68 vulnerabilities (2 low, 39 moderate, 22 high, 5 critical)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.
patch-package 8.0.1
Applying patches...
ink@7.0.3 ✔
==> Starting build()...

> @qwen-code/qwen-code@0.19.2 build
> cross-env NODE_OPTIONS="--max-old-space-size=3072" node scripts/build.js


> @qwen-code/qwen-code@0.19.2 generate
> node scripts/generate-git-commit-info.js


> @qwen-code/qwen-code-core@0.19.2 build
> node ../../scripts/build_package.js

Successfully copied files.

> @qwen-code/web-templates@0.19.2 build
> node build.mjs && tsc --build --clean && tsc

Building web-templates...
Building insight assets with Vite...
vite v5.4.21 building for production...
transforming...
Browserslist: browsers data (caniuse-lite) is 8 months old. Please run:
  npx update-browserslist-db@latest
  Why you should do it regularly: https://github.com/browserslist/update-db#readme
✓ 7 modules transformed.
rendering chunks...
computing gzip size...
dist/main.css  17.77 kB │ gzip: 4.28 kB
dist/main.js   32.65 kB │ gzip: 8.91 kB
✓ built in 471ms
Reading generated files...
Successfully generated /startdir/src/qwen-code/packages/web-templates/src/generated/insightTemplate.ts
Successfully built all web-templates.

> @qwen-code/channel-base@0.19.2 build
> tsc --build


> @qwen-code/channel-telegram@0.19.2 build
> tsc --build


> @qwen-code/channel-weixin@0.19.2 build
> tsc --build


> @qwen-code/channel-dingtalk@0.19.2 build
> tsc --build


> @qwen-code/channel-feishu@0.19.2 build
> tsc --build


> @qwen-code/channel-qqbot@0.19.2 build
> tsc --build


> @qwen-code/channel-plugin-example@0.19.2 build
> tsc --build


> @qwen-code/audio-capture@0.19.2 build:ts
> tsc --build


> @qwen-code/acp-bridge@0.19.2 build
> node ../../scripts/build_package.js

Successfully copied files.

> @qwen-code/qwen-code@0.19.2 build
> node ../../scripts/build_package.js

Successfully copied files.
Generated settings JSON Schema at: /startdir/src/qwen-code/packages/vscode-ide-companion/schemas/settings.schema.json
(node:1573) [DEP0205] DeprecationWarning: `module.register()` is deprecated. Use `module.registerHooks()` instead.
(Use `node --trace-deprecation ...` to show where the warning was created)

> @qwen-code/webui@0.19.2 build
> vite build

vite v5.4.21 building for production...
transforming...
Browserslist: browsers data (caniuse-lite) is 8 months old. Please run:
  npx update-browserslist-db@latest
  Why you should do it regularly: https://github.com/browserslist/update-db#readme
✓ 191 modules transformed.
rendering chunks...

[vite:dts] Start generate declaration files...
computing gzip size...
dist/styles.css              83.27 kB │ gzip: 15.51 kB
dist/toolNames-kewwpc1v.js    0.30 kB │ gzip:  0.23 kB │ map:   1.00 kB
dist/daemon-react-sdk.js    137.20 kB │ gzip: 25.27 kB │ map: 262.51 kB
dist/index.js               389.19 kB │ gzip: 97.85 kB │ map: 834.49 kB
[vite:dts] Start rollup declaration files...
Analysis will use the bundled TypeScript version 5.8.2
Analysis will use the bundled TypeScript version 5.8.2
[vite:dts] Declaration files built in 14867ms.

dist/styles.css               83.27 kB │ gzip: 15.51 kB
dist/toolNames-C9pS8yq9.cjs    0.33 kB │ gzip:  0.24 kB │ map:   1.00 kB
dist/daemon-react-sdk.cjs    138.12 kB │ gzip: 25.26 kB │ map: 263.72 kB
dist/index.cjs               398.60 kB │ gzip: 98.60 kB │ map: 839.55 kB
✓ built in 17.41s

> @qwen-code/sdk@0.1.8 build
> node scripts/build.js

Compiling input files...
Processing src/index.ts
Writing src/index.ts -> dist/index.d.ts
Checking generated files...
[1;33mCompiler option "skipLibCheck" is disabled to properly check generated output[0m
Done in 19.53s

> @qwen-code/web-shell@0.19.2 build
> vite build && vite build --config vite.lib.config.ts && tsc -p tsconfig.lib.json

vite v5.4.21 building for production...
transforming...
✓ 2837 modules transformed.
rendering chunks...
computing gzip size...
../dist/index.html                                           1.10 kB │ gzip:   0.64 kB
../dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff             4.42 kB
../dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2            4.93 kB
../dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2            5.21 kB
../dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2            5.47 kB
../dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff             5.98 kB
../dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff             6.19 kB
../dist/assets/KaTeX_Size1-Regular-C195tn64.woff             6.50 kB
../dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2      6.91 kB
../dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2         6.91 kB
../dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf              7.59 kB
../dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff       7.66 kB
../dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff          7.72 kB
../dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2           9.64 kB
../dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2       10.34 kB
../dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf             10.36 kB
../dist/assets/KaTeX_Script-Regular-D5yQViql.woff           10.59 kB
../dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2         11.32 kB
../dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2            11.35 kB
../dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf             11.51 kB
../dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2        12.03 kB
../dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2          12.22 kB
../dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf             12.23 kB
../dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff        12.32 kB
../dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf       12.34 kB
../dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf          12.37 kB
../dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff          13.21 kB
../dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff             13.30 kB
../dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2      13.57 kB
../dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff         14.11 kB
../dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff           14.41 kB
../dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff       16.03 kB
../dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2         16.40 kB
../dist/assets/KaTeX_Math-Italic-t53AETM-.woff2             16.44 kB
../dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf            16.65 kB
../dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2         16.78 kB
../dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2             16.99 kB
../dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff          18.67 kB
../dist/assets/KaTeX_Math-Italic-DA0__PXp.woff              18.75 kB
../dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff          19.41 kB
../dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf         19.44 kB
../dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf           19.57 kB
../dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf              19.58 kB
../dist/assets/KaTeX_Main-Italic-BMLOBm91.woff              19.68 kB
../dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf          22.36 kB
../dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf            24.50 kB
../dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2               25.32 kB
../dist/assets/KaTeX_Main-Regular-B22Nviop.woff2            26.27 kB
../dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf        27.56 kB
../dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2             28.08 kB
../dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff                29.91 kB
../dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff             30.77 kB
../dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf           31.20 kB
../dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf               31.31 kB
../dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf           32.97 kB
../dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff              33.52 kB
../dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf               33.58 kB
../dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf                 51.34 kB
../dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf              53.58 kB
../dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf               63.63 kB
../dist/assets/index-oVK7qhre.css                          156.33 kB │ gzip:  30.79 kB
../dist/assets/channel-DYPNiTww.js                           0.11 kB │ gzip:   0.13 kB
../dist/assets/init-Gi6I4Gst.js                              0.15 kB │ gzip:   0.13 kB
../dist/assets/chunk-QZHKN3VN-gD3vsFId.js                    0.19 kB │ gzip:   0.16 kB
../dist/assets/chunk-55IACEB6-DRgTLvBu.js                    0.24 kB │ gzip:   0.21 kB
../dist/assets/chunk-4BX2VUAB-BU-x368d.js                    0.30 kB │ gzip:   0.20 kB
../dist/assets/chunk-FMBD7UC4-BMyPH-ku.js                    0.37 kB │ gzip:   0.27 kB
../dist/assets/stateDiagram-v2-BHNVJYJU-BHUSEndU.js          0.39 kB │ gzip:   0.29 kB
../dist/assets/classDiagram-4FO5ZUOK-p_g25Tni.js             0.47 kB │ gzip:   0.32 kB
../dist/assets/classDiagram-v2-Q7XG4LA2-p_g25Tni.js          0.47 kB │ gzip:   0.32 kB
../dist/assets/chunk-2J33WTMH-BtNuY5Yp.js                    0.53 kB │ gzip:   0.37 kB
../dist/assets/codeowners-Bp6g37R7.js                        0.55 kB │ gzip:   0.32 kB
../dist/assets/infoDiagram-5YYISTIA-CFYBrkVI.js              0.59 kB │ gzip:   0.40 kB
../dist/assets/shellsession-C_rIy8kc.js                      0.72 kB │ gzip:   0.43 kB
../dist/assets/tsv-B_m7g4N7.js                               0.74 kB │ gzip:   0.34 kB
../dist/assets/html-derivative-CSfWNPLT.js                   0.97 kB │ gzip:   0.53 kB
../dist/assets/git-rebase-B-v9cOL2.js                        0.98 kB │ gzip:   0.44 kB
../dist/assets/qmldir-C8lEn-DE.js                            1.00 kB │ gzip:   0.45 kB
../dist/assets/fortran-fixed-form-TqA4NnZg.js                1.11 kB │ gzip:   0.54 kB
../dist/assets/ordinal-Cboi1Yqb.js                           1.19 kB │ gzip:   0.57 kB
../dist/assets/csv-B0qRVHPH.js                               1.22 kB │ gzip:   0.37 kB
../dist/assets/xsl-Dd0NUgwM.js                               1.39 kB │ gzip:   0.52 kB
../dist/assets/sparql-bYkjHRlG.js                            1.51 kB │ gzip:   0.83 kB
../dist/assets/ini-BjABl1g7.js                               1.53 kB │ gzip:   0.50 kB
../dist/assets/git-commit-i4q6IMui.js                        1.55 kB │ gzip:   0.67 kB
../dist/assets/dotenv-BjQB5zDj.js                            1.70 kB │ gzip:   0.63 kB
../dist/assets/wenyan-7A4Fjokl.js                            1.71 kB │ gzip:   1.08 kB
../dist/assets/docker-COcR7UxN.js                            1.77 kB │ gzip:   0.60 kB
../dist/assets/hxml-TIA70rKU.js                              1.83 kB │ gzip:   0.89 kB
../dist/assets/chunk-ND2GUHAM-BNKTstUf.js                    1.86 kB │ gzip:   0.82 kB
../dist/assets/desktop-DEIpsLCJ.js                           2.03 kB │ gzip:   0.79 kB
../dist/assets/edge-D5gP-w-T.js                              2.36 kB │ gzip:   0.70 kB
../dist/assets/reg-5LuOXUq_.js                               2.37 kB │ gzip:   0.71 kB
../dist/assets/berry-3xVqZejG.js                             2.45 kB │ gzip:   0.79 kB
../dist/assets/erb-BYTLMnw6.js                               2.61 kB │ gzip:   0.84 kB
../dist/assets/diff-BgYniUM_.js                              2.64 kB │ gzip:   0.74 kB
../dist/assets/gleam-B430Bg39.js                             2.69 kB │ gzip:   0.85 kB
../dist/assets/diagram-5GNKFQAL-BGCJjO6y.js                  2.75 kB │ gzip:   1.37 kB
../dist/assets/hy-BMj5Y0dO.js                                2.82 kB │ gzip:   1.19 kB
../dist/assets/json-BQoSv7ci.js                              2.92 kB │ gzip:   0.81 kB
../dist/assets/cairo--RitsXJZ.js                             2.95 kB │ gzip:   0.81 kB
../dist/assets/log-Cc5clBb7.js                               2.97 kB │ gzip:   0.88 kB
../dist/assets/jssm-P4WzXJd0.js                              2.97 kB │ gzip:   0.70 kB
../dist/assets/jsonl-DREVFZK8.js                             3.10 kB │ gzip:   0.82 kB
../dist/assets/jsonc-TU54ms6u.js                             3.20 kB │ gzip:   0.83 kB
../dist/assets/logo-IuBKFhSY.js                              3.21 kB │ gzip:   1.49 kB
../dist/assets/genie-ajMbGru0.js                             3.38 kB │ gzip:   1.21 kB
../dist/assets/po-BFLt1xDp.js                                3.38 kB │ gzip:   0.99 kB
../dist/assets/tasl-CQjiPCtT.js                              3.39 kB │ gzip:   0.88 kB
../dist/assets/vala-BFOHcciG.js                              3.40 kB │ gzip:   1.19 kB
../dist/assets/mipsasm-BC5c_5Pe.js                           3.41 kB │ gzip:   1.28 kB
../dist/assets/arc-D_ae_Y9k.js                               3.42 kB │ gzip:   1.45 kB
../dist/assets/rel-DJlmqQ1C.js                               3.43 kB │ gzip:   1.10 kB
../dist/assets/json5-w8dY5SsB.js                             3.54 kB │ gzip:   0.94 kB
../dist/assets/ssh-config-BknIz3MU.js                        3.61 kB │ gzip:   1.59 kB
../dist/assets/fluent-Dayu4EKP.js                            3.62 kB │ gzip:   0.89 kB
../dist/assets/jsonnet-BfivnA6A.js                           3.63 kB │ gzip:   1.07 kB
../dist/assets/narrat-DLbgOhZU.js                            3.69 kB │ gzip:   1.12 kB
../dist/assets/turtle-BMR_PYu6.js                            3.71 kB │ gzip:   0.98 kB
../dist/assets/splunk-Cf8iN4DR.js                            3.92 kB │ gzip:   1.67 kB
../dist/assets/glsl-DBO2IWDn.js                              3.94 kB │ gzip:   1.45 kB
../dist/assets/nextflow-B0XVJmRM.js                          3.96 kB │ gzip:   1.09 kB
../dist/assets/sdbl-BLhTXw86.js                              4.14 kB │ gzip:   2.08 kB
../dist/assets/pascal-JqZropPD.js                            4.18 kB │ gzip:   1.69 kB
../dist/assets/smalltalk-DkLiglaE.js                         4.20 kB │ gzip:   1.25 kB
../dist/assets/diagram-LMA3HP47-BN1wyAGh.js                  4.24 kB │ gzip:   1.84 kB
../dist/assets/lean-XBlWyCtg.js                              4.29 kB │ gzip:   1.33 kB
../dist/assets/zenscript-HnGAYVZD.js                         4.40 kB │ gzip:   1.42 kB
../dist/assets/bicep-DHo0CJ0O.js                             4.45 kB │ gzip:   1.08 kB
../dist/assets/http-FRrOvY1W.js                              4.65 kB │ gzip:   1.14 kB
../dist/assets/polar-DKykz6zU.js                             4.68 kB │ gzip:   1.17 kB
../dist/assets/defaultLocale-DX6XiGOO.js                     4.69 kB │ gzip:   2.17 kB
../dist/assets/fennel-bCA53EVm.js                            4.82 kB │ gzip:   1.57 kB
../dist/assets/tcl-DQ1-QYvQ.js                               5.02 kB │ gzip:   1.68 kB
../dist/assets/bibtex-xW4inM5L.js                            5.08 kB │ gzip:   0.81 kB
../dist/assets/pieDiagram-4H26LBE5-MQXNhl5A.js               5.32 kB │ gzip:   2.36 kB
../dist/assets/fish-w-ucz2PV.js                              5.39 kB │ gzip:   1.69 kB
../dist/assets/xml-e3z08dGr.js                               5.41 kB │ gzip:   1.22 kB
../dist/assets/qml-D8XfuvdV.js                               5.42 kB │ gzip:   1.39 kB
../dist/assets/zig-BVz_zdnA.js                               5.46 kB │ gzip:   1.59 kB
../dist/assets/gdresource-BHYsBjWJ.js                        5.48 kB │ gzip:   1.37 kB
../dist/assets/awk-eg146-Ew.js                               5.49 kB │ gzip:   1.38 kB
../dist/assets/dax-ClGRhx96.js                               5.53 kB │ gzip:   2.25 kB
../dist/assets/linear-DGGM2kcP.js                            5.66 kB │ gzip:   2.31 kB
../dist/assets/jinja-DGy0s7-h.js                             5.72 kB │ gzip:   1.42 kB
../dist/assets/powerquery-CSHBycmS.js                        5.93 kB │ gzip:   1.52 kB
../dist/assets/verilog-CJaU5se_.js                           5.94 kB │ gzip:   1.90 kB
../dist/assets/diagram-2AECGRRQ-Bxi1I_Vu.js                  5.97 kB │ gzip:   2.50 kB
../dist/assets/coq-Dsg_Bt_b.js                               5.99 kB │ gzip:   2.03 kB
../dist/assets/vb-CdO5JTpU.js                                6.26 kB │ gzip:   2.35 kB
../dist/assets/red-bN70gL4F.js                               6.26 kB │ gzip:   1.60 kB
../dist/assets/shaderlab-B7qAK45m.js                         6.27 kB │ gzip:   2.10 kB
../dist/assets/min-dark-CafNBF8u.js                          6.29 kB │ gzip:   1.72 kB
../dist/assets/gdshader-SKMF96pI.js                          6.37 kB │ gzip:   1.75 kB
../dist/assets/prisma-B48N-Iqd.js                            6.39 kB │ gzip:   1.40 kB
../dist/assets/solarized-light-L9t79GZl.js                   6.48 kB │ gzip:   1.74 kB
../dist/assets/wgsl-CB0Krxn9.js                              6.49 kB │ gzip:   1.69 kB
../dist/assets/postcss-B3ZDOciz.js                           6.52 kB │ gzip:   1.93 kB
../dist/assets/toml-CB2ApiWb.js                              6.53 kB │ gzip:   1.30 kB
../dist/assets/proto-zocC4JxJ.js                             6.57 kB │ gzip:   1.42 kB
../dist/assets/talonscript-C1XDQQGZ.js                       6.71 kB │ gzip:   1.47 kB
../dist/assets/cypher-m2LEI-9-.js                            6.81 kB │ gzip:   1.83 kB
../dist/assets/solarized-dark-DXbdFlpD.js                    6.85 kB │ gzip:   1.81 kB
../dist/assets/soy-C-lX7w71.js                               6.95 kB │ gzip:   1.67 kB
../dist/assets/min-light-CTRr51gU.js                         6.97 kB │ gzip:   1.90 kB
../dist/assets/clojure-DxSadP1t.js                           7.08 kB │ gzip:   1.48 kB
../dist/assets/ara-7O62HKoU.js                               7.25 kB │ gzip:   2.11 kB
../dist/assets/hlsl-ifBTmRxC.js                              7.61 kB │ gzip:   2.24 kB
../dist/assets/riscv-QhoSD0DR.js                             7.70 kB │ gzip:   2.21 kB
../dist/assets/qss-DhMKtDLN.js                               7.82 kB │ gzip:   2.62 kB
../dist/assets/monokai-D4h5O-jR.js                           7.88 kB │ gzip:   1.92 kB
../dist/assets/dart-B9wLZaAG.js                              7.89 kB │ gzip:   1.93 kB
../dist/assets/systemd-CUnW07Te.js                           8.00 kB │ gzip:   2.56 kB
../dist/assets/regexp-DWJ3fJO_.js                            8.07 kB │ gzip:   1.46 kB
../dist/assets/haml-B2EZWmdv.js                              8.49 kB │ gzip:   1.87 kB
../dist/assets/typst-BVUVsWT6.js                             8.55 kB │ gzip:   1.70 kB
../dist/assets/plsql-LKU2TuZ1.js                             8.57 kB │ gzip:   3.03 kB
../dist/assets/vue-html-xdeiXROB.js                          8.70 kB │ gzip:   1.77 kB
../dist/assets/scheme-BJGe-b2p.js                            8.72 kB │ gzip:   2.61 kB
../dist/assets/kotlin-B5lbUyaz.js                            8.82 kB │ gzip:   2.14 kB
../dist/assets/andromeeda-C3khCPGq.js                        8.86 kB │ gzip:   2.31 kB
../dist/assets/make-Bvotw-X0.js                              9.01 kB │ gzip:   1.77 kB
../dist/assets/dark-plus-C3mMm8J8.js                         9.10 kB │ gzip:   2.10 kB
../dist/assets/slack-dark-BthQWCQV.js                        9.12 kB │ gzip:   1.98 kB
../dist/assets/ts-tags-CipyTH0X.js                           9.18 kB │ gzip:   1.24 kB
../dist/assets/plastic-3e1v2bzS.js                           9.30 kB │ gzip:   1.99 kB
../dist/assets/tex-rYs2v40G.js                               9.37 kB │ gzip:   2.97 kB
../dist/assets/sass-BJ4Li9vH.js                              9.41 kB │ gzip:   2.50 kB
../dist/assets/slack-ochin-DqwNpetd.js                       9.43 kB │ gzip:   2.11 kB
../dist/assets/jison-BqZprYcd.js                             9.72 kB │ gzip:   1.86 kB
../dist/assets/sas-BmTFh92c.js                               9.79 kB │ gzip:   4.03 kB
../dist/assets/light-plus-B7mTdjB0.js                        9.94 kB │ gzip:   2.29 kB
../dist/assets/gherkin--30QC5Em.js                          10.12 kB │ gzip:   5.02 kB
../dist/assets/stateDiagram-AJRCARHV-DdE_KQFH.js            10.36 kB │ gzip:   3.62 kB
../dist/assets/cmake-DbXoA79R.js                            10.50 kB │ gzip:   3.57 kB
../dist/assets/dream-maker-C-nORZOA.js                      10.61 kB │ gzip:   2.30 kB
../dist/assets/raku-B1bQXN8T.js                             10.61 kB │ gzip:   2.99 kB
../dist/assets/rst-4NLicBqY.js                              10.65 kB │ gzip:   2.42 kB
../dist/assets/beancount-BwXTMy5W.js                        10.76 kB │ gzip:   1.52 kB
../dist/assets/yaml-CVw76BM1.js                             10.79 kB │ gzip:   2.29 kB
../dist/assets/diagram-KO2AKTUF-CMTeLXp7.js                 10.82 kB │ gzip:   4.18 kB
../dist/assets/cadence-DNquZEk8.js                          11.03 kB │ gzip:   2.32 kB
../dist/assets/github-light-DAi9KRSo.js                     11.18 kB │ gzip:   2.52 kB
../dist/assets/elm-CmHSxxaM.js                              11.29 kB │ gzip:   2.21 kB
../dist/assets/dagre-BM42HDAG-Cy1sR7om.js                   11.40 kB │ gzip:   4.21 kB
../dist/assets/github-dark-DHJKELXO.js                      11.41 kB │ gzip:   2.56 kB
../dist/assets/prolog-BY-TUvya.js                           11.44 kB │ gzip:   3.87 kB
../dist/assets/laserwave-DUszq2jm.js                        11.50 kB │ gzip:   2.60 kB
../dist/assets/puppet-Cza_XSSt.js                           11.75 kB │ gzip:   2.23 kB
../dist/assets/hcl-HzYwdGDm.js                              11.97 kB │ gzip:   2.51 kB
../dist/assets/handlebars-BQGss363.js                       12.27 kB │ gzip:   2.39 kB
../dist/assets/hjson-T-Tgc4AT.js                            12.33 kB │ gzip:   1.68 kB
../dist/assets/vesper-BEBZ7ncR.js                           12.66 kB │ gzip:   1.98 kB
../dist/assets/luau-Du5NY7AG.js                             12.92 kB │ gzip:   3.12 kB
../dist/assets/bat-fje9CFhw.js                              12.99 kB │ gzip:   3.25 kB
../dist/assets/apache-Dn00JSTd.js                           13.21 kB │ gzip:   3.79 kB
../dist/assets/terraform-BbSNqyBO.js                        13.38 kB │ gzip:   3.11 kB
../dist/assets/vitesse-light-CVO1_9PV.js                    13.62 kB │ gzip:   3.06 kB
../dist/assets/aurora-x-D-2ljcwZ.js                         13.66 kB │ gzip:   2.30 kB
../dist/assets/vitesse-black-Bkuqu6BP.js                    13.68 kB │ gzip:   3.08 kB
../dist/assets/v-CAQ2eGtk.js                                13.74 kB │ gzip:   2.85 kB
../dist/assets/vitesse-dark-D0r3Knsf.js                     13.76 kB │ gzip:   3.08 kB
../dist/assets/synthwave-84-CbfX1IO0.js                     14.04 kB │ gzip:   2.88 kB
../dist/assets/github-light-default-D7oLnXFd.js             14.16 kB │ gzip:   3.06 kB
../dist/assets/github-light-high-contrast-BfjtVDDH.js       14.28 kB │ gzip:   3.04 kB
../dist/assets/github-dark-dimmed-DH5Ifo-i.js               14.43 kB │ gzip:   3.14 kB
../dist/assets/github-dark-default-Cuk6v7N8.js              14.44 kB │ gzip:   3.14 kB
../dist/assets/clarity-BHOwM8T6.js                          14.55 kB │ gzip:   2.48 kB
../dist/assets/actionscript-3-D_z4Izcz.js                   14.56 kB │ gzip:   2.79 kB
../dist/assets/github-dark-high-contrast-E3gJ1_iC.js        14.60 kB │ gzip:   3.10 kB
../dist/assets/pug-CM9l7STV.js                              14.89 kB │ gzip:   2.90 kB
../dist/assets/gnuplot-CM8KxXT1.js                          14.91 kB │ gzip:   3.31 kB
../dist/assets/ayu-dark-Cv9koXgw.js                         14.95 kB │ gzip:   3.09 kB
../dist/assets/nix-shcSOmrb.js                              15.55 kB │ gzip:   2.36 kB
../dist/assets/lua-CvWAzNxB.js                              15.62 kB │ gzip:   3.16 kB
../dist/assets/diagram-OG6HWLK6-UYSG_zcp.js                 15.92 kB │ gzip:   5.69 kB
../dist/assets/wasm-C6j12Q_x.js                             15.93 kB │ gzip:   2.89 kB
../dist/assets/solidity-C1w2a3ep.js                         16.23 kB │ gzip:   3.13 kB
../dist/assets/svelte-MSaWC3Je.js                           16.89 kB │ gzip:   2.96 kB
../dist/assets/purescript-Bg-kzb6g.js                       17.07 kB │ gzip:   2.64 kB
../dist/assets/kanagawa-wave-DWedfzmr.js                    17.12 kB │ gzip:   2.93 kB
../dist/assets/kanagawa-lotus-CfQXZHmo.js                   17.13 kB │ gzip:   2.94 kB
../dist/assets/kanagawa-dragon-CkXjmgJE.js                  17.13 kB │ gzip:   2.95 kB
../dist/assets/liquid-D3W5UaiH.js                           17.17 kB │ gzip:   3.08 kB
../dist/assets/cue-DtFQj3wx.js                              17.35 kB │ gzip:   2.08 kB
../dist/assets/ishikawaDiagram-YF4QCWOH-Dxsddth7.js         17.56 kB │ gzip:   6.63 kB
../dist/assets/rust-Be6lgOlo.js                             17.60 kB │ gzip:   3.37 kB
../dist/assets/angular-html-LfdN0zeE.js                     17.66 kB │ gzip:   3.51 kB
../dist/assets/graphql-cDcHW_If.js                          18.20 kB │ gzip:   2.65 kB
../dist/assets/elixir-CLiX3zqd.js                           18.30 kB │ gzip:   3.22 kB
../dist/assets/material-theme-D5KoaKCx.js                   18.62 kB │ gzip:   3.13 kB
../dist/assets/material-theme-darker-BfHTSMKl.js            18.63 kB │ gzip:   3.12 kB
../dist/assets/material-theme-ocean-CyktbL80.js             18.63 kB │ gzip:   3.15 kB
../dist/assets/material-theme-lighter-B0m2ddpp.js           18.63 kB │ gzip:   3.13 kB
../dist/assets/material-theme-palenight-Csfq5Kiy.js         18.64 kB │ gzip:   3.14 kB
../dist/assets/gdscript-DfxzS6Rs.js                         18.65 kB │ gzip:   3.72 kB
../dist/assets/abap-DsBKuouk.js                             18.82 kB │ gzip:   6.20 kB
../dist/assets/marko-z0MBrx5-.js                            19.33 kB │ gzip:   3.21 kB
../dist/assets/groovy-DkBy-JyN.js                           19.65 kB │ gzip:   3.77 kB
../dist/assets/mdc-DB_EDNY_.js                              19.70 kB │ gzip:   6.62 kB
../dist/assets/nushell-D4Tzg5kh.js                          19.75 kB │ gzip:   4.95 kB
../dist/assets/matlab-D9-PGadD.js                           20.14 kB │ gzip:   3.85 kB
../dist/assets/move-DB_GagMm.js                             20.24 kB │ gzip:   4.03 kB
../dist/assets/glimmer-js-D-cwc0-E.js                       20.56 kB │ gzip:   2.99 kB
../dist/assets/glimmer-ts-pgjy16dm.js                       20.56 kB │ gzip:   2.99 kB
../dist/assets/kusto-mebxcVVE.js                            20.63 kB │ gzip:   4.58 kB
../dist/assets/kanban-definition-UN3LZRKU-Q0jQCOct.js       20.70 kB │ gzip:   7.22 kB
../dist/assets/snazzy-light-Bw305WKR.js                     20.77 kB │ gzip:   3.85 kB
../dist/assets/viml-m4uW47V2.js                             21.02 kB │ gzip:   7.24 kB
../dist/assets/dracula-BzJJZx-M.js                          21.07 kB │ gzip:   4.03 kB
../dist/assets/dracula-soft-BXkSAIEj.js                     21.08 kB │ gzip:   4.07 kB
../dist/assets/vue-BuYVFjOK.js                              21.48 kB │ gzip:   2.88 kB
../dist/assets/rose-pine-CmCqftbK.js                        21.76 kB │ gzip:   3.89 kB
../dist/assets/rose-pine-moon-CjDtw9vr.js                   21.77 kB │ gzip:   3.91 kB
../dist/assets/rose-pine-dawn-Ds-gbosJ.js                   21.77 kB │ gzip:   3.91 kB
../dist/assets/powershell-BIEUsx6d.js                       22.26 kB │ gzip:   4.70 kB
../dist/assets/apl-BBq3IX1j.js                              22.84 kB │ gzip:   4.18 kB
../dist/assets/twig-NC5TFiHP.js                             23.01 kB │ gzip:   4.15 kB
../dist/assets/mindmap-definition-RKZ34NQL-C0ZseHsi.js      23.36 kB │ gzip:   7.81 kB
../dist/assets/sankeyDiagram-5OEKKPKP-sfnhMELN.js           23.39 kB │ gzip:   8.54 kB
../dist/assets/journeyDiagram-JHISSGLW-DxaDK80t.js          23.58 kB │ gzip:   8.31 kB
../dist/assets/nim-ZlGxZxc3.js                              23.63 kB │ gzip:   3.51 kB
../dist/assets/vhdl-DYoNaHQp.js                             23.78 kB │ gzip:   3.88 kB
../dist/assets/graph-qsFoMdT2.js                            23.94 kB │ gzip:   8.30 kB
../dist/assets/templ-dwX3ZSMB.js                            23.97 kB │ gzip:   5.40 kB
../dist/assets/astro-CqkE3fuf.js                            24.07 kB │ gzip:   7.48 kB
../dist/assets/sql-COK4E0Yg.js                              24.32 kB │ gzip:   7.70 kB
../dist/assets/one-light-PoHY5YXO.js                        25.30 kB │ gzip:   3.68 kB
../dist/assets/razor-CNLDkMZG.js                            25.81 kB │ gzip:   3.47 kB
../dist/assets/fsharp-XplgxFYe.js                           25.83 kB │ gzip:   4.23 kB
../dist/assets/wardleyDiagram-YWT4CUSO-9jnPcZuP.js          26.10 kB │ gzip:   6.89 kB
../dist/assets/nord-Ddv68eIx.js                             26.72 kB │ gzip:   4.41 kB
../dist/assets/system-verilog-C7L56vO4.js                   26.77 kB │ gzip:   4.88 kB
../dist/assets/erDiagram-TEJ5UH35-DqXL08lw.js               26.97 kB │ gzip:   9.29 kB
../dist/assets/bsl-Dgyn0ogV.js                              27.44 kB │ gzip:   8.88 kB
../dist/assets/java-xI-RfyKK.js                             27.49 kB │ gzip:   4.33 kB
../dist/assets/coffee-dyiR41kL.js                           27.75 kB │ gzip:   6.41 kB
../dist/assets/scss-C31hgJw-.js                             28.13 kB │ gzip:   4.43 kB
../dist/assets/typespec-BpWG_bgh.js                         28.19 kB │ gzip:   2.83 kB
../dist/assets/common-lisp-C7gG9l05.js                      28.50 kB │ gzip:   6.74 kB
../dist/assets/night-owl-C39BiMTA.js                        28.91 kB │ gzip:   5.18 kB
../dist/assets/julia-BBuGR-5E.js                            29.45 kB │ gzip:   5.88 kB
../dist/assets/gitGraphDiagram-PVQCEYII-DrNRH3oi.js         29.94 kB │ gzip:   8.85 kB
../dist/assets/scala-DQVVAn-B.js                            30.49 kB │ gzip:   4.30 kB
../dist/assets/applescript-Bu5BbsvL.js                      30.78 kB │ gzip:   6.38 kB
../dist/assets/requirementDiagram-4Y6WPE33-BTR0UdYQ.js      31.20 kB │ gzip:   9.69 kB
../dist/assets/timeline-definition-PNZ67QCA-DIc61uE8.js     31.36 kB │ gzip:  10.38 kB
../dist/assets/stylus-BeQkCIfX.js                           31.56 kB │ gzip:   8.14 kB
../dist/assets/mermaid-Ci6OQyBP.js                          33.06 kB │ gzip:   4.65 kB
../dist/assets/poimandres-CS3Unz2-.js                       33.49 kB │ gzip:   5.53 kB
../dist/assets/codeql-sacFqUAJ.js                           33.59 kB │ gzip:   4.00 kB
../dist/assets/one-dark-pro-GBQ2dnAY.js                     33.74 kB │ gzip:   5.53 kB
../dist/assets/crystal-DtDmRg-F.js                          33.75 kB │ gzip:   5.58 kB
../dist/assets/tokyo-night-DBQeEorK.js                      34.36 kB │ gzip:   5.99 kB
../dist/assets/quadrantDiagram-W4KKPZXB-DIR4ee2A.js         34.50 kB │ gzip:  10.02 kB
../dist/assets/haxe-C5wWYbrZ.js                             35.30 kB │ gzip:   5.94 kB
../dist/assets/houston-DnULxvSX.js                          35.42 kB │ gzip:   5.80 kB
../dist/assets/nginx-D_VnBJ67.js                            35.73 kB │ gzip:   4.53 kB
../dist/assets/layout-CNYaLpI5.js                           35.84 kB │ gzip:  12.85 kB
../dist/assets/erlang-B-DoSBHF.js                           36.31 kB │ gzip:   4.43 kB
../dist/assets/r-CwjWoCRV.js                                36.87 kB │ gzip:  11.26 kB
../dist/assets/chunk-AQP2D5EJ-BwHCMRQ0.js                   37.55 kB │ gzip:  12.11 kB
../dist/assets/xychartDiagram-2RQKCTM6-DcthaZK6.js          40.39 kB │ gzip:  11.47 kB
../dist/assets/cobol-PTqiYgYu.js                            40.58 kB │ gzip:  11.07 kB
../dist/assets/asm-Dhn9LcZ4.js                              40.85 kB │ gzip:   8.20 kB
../dist/assets/vennDiagram-CIIHVFJN-BF7ODmxB.js             41.83 kB │ gzip:  15.44 kB
../dist/assets/shellscript-atvbtKCR.js                      42.71 kB │ gzip:   6.35 kB
../dist/assets/d-BoXegm-a.js                                43.01 kB │ gzip:   8.35 kB
../dist/assets/haskell-BILxekzW.js                          43.21 kB │ gzip:   7.00 kB
../dist/assets/perl-CHQXSrWU.js                             44.54 kB │ gzip:   4.86 kB
../dist/assets/catppuccin-mocha-LGGdnPYs.js                 45.61 kB │ gzip:   7.76 kB
../dist/assets/catppuccin-latte-DRW-0cLl.js                 45.61 kB │ gzip:   7.77 kB
../dist/assets/catppuccin-frappe-CD_QflpE.js                45.62 kB │ gzip:   7.78 kB
../dist/assets/catppuccin-macchiato-C-_shW-Y.js             45.62 kB │ gzip:   7.77 kB
../dist/assets/apex-COJ4H7py.js                             46.81 kB │ gzip:   6.79 kB
../dist/assets/ada-727ZlQH0.js                              48.53 kB │ gzip:   6.11 kB
../dist/assets/chunk-727SXJPM-D2aElv7q.js                   49.06 kB │ gzip:  15.55 kB
../dist/assets/ruby-DeZ3UC14.js                             51.47 kB │ gzip:   7.12 kB
../dist/assets/go-B1SYOhNW.js                               52.41 kB │ gzip:   6.43 kB
../dist/assets/imba-bv_oIlVt.js                             53.46 kB │ gzip:  10.23 kB
../dist/assets/everforest-dark-BgDCqdQA.js                  53.75 kB │ gzip:   8.46 kB
../dist/assets/everforest-light-C8M2exoo.js                 53.75 kB │ gzip:   8.46 kB
../dist/assets/css-BPhBrDlE.js                              53.80 kB │ gzip:  13.46 kB
../dist/assets/wikitext-DCE3LsBG.js                         56.62 kB │ gzip:   4.77 kB
../dist/assets/markdown-UIAJJxZW.js                         56.99 kB │ gzip:   5.61 kB
../dist/assets/latex-C-cWTeAZ.js                            59.42 kB │ gzip:   6.01 kB
../dist/assets/stata-DorPZHa4.js                            61.01 kB │ gzip:  13.69 kB
../dist/assets/flowDiagram-I6XJVG4X-BPJ9SFji.js             61.17 kB │ gzip:  19.24 kB
../dist/assets/html-C2L_23MC.js                             61.33 kB │ gzip:  12.05 kB
../dist/assets/ballerina-Du268qiB.js                        61.63 kB │ gzip:   8.36 kB
../dist/assets/ocaml-BNioltXt.js                            65.87 kB │ gzip:   5.19 kB
../dist/assets/ganttDiagram-6RSMTGT7-BEd9Pnms.js            69.29 kB │ gzip:  23.09 kB
../dist/assets/c4Diagram-AAUBKEIU-CxWS6MBd.js               69.95 kB │ gzip:  19.48 kB
../dist/assets/mojo-Tz6hzZYG.js                             72.57 kB │ gzip:  10.36 kB
../dist/assets/python-DhUJRlN_.js                           73.53 kB │ gzip:  10.44 kB
../dist/assets/c-C3t2pwGQ.js                                73.97 kB │ gzip:  10.62 kB
../dist/assets/blockDiagram-GPEHLZMM-qVDQC8KL.js            74.92 kB │ gzip:  21.39 kB
../dist/assets/vyper-nyqBNV6O.js                            78.23 kB │ gzip:  12.05 kB
../dist/assets/cose-bilkent-S5V4N54A-BG9FAsXE.js            81.55 kB │ gzip:  22.35 kB
../dist/assets/hack-D1yCygmZ.js                             84.64 kB │ gzip:  27.44 kB
../dist/assets/csharp-D9R-vmeu.js                           87.17 kB │ gzip:  10.44 kB
../dist/assets/swift-BSxZ-RaX.js                            90.99 kB │ gzip:  14.51 kB
../dist/assets/asciidoc-BPT9niGB.js                         93.51 kB │ gzip:   7.40 kB
../dist/assets/racket-CzouJOBO.js                           97.61 kB │ gzip:  15.68 kB
../dist/assets/fortran-free-form-DKXYxT9g.js                98.19 kB │ gzip:  12.40 kB
../dist/assets/less-BfCpw3nA.js                            102.46 kB │ gzip:  15.22 kB
../dist/assets/objective-c-Deuh7S70.js                     107.79 kB │ gzip:  23.27 kB
../dist/assets/blade-a8OxSdnT.js                           108.00 kB │ gzip:  28.54 kB
../dist/assets/php-B5ebYQev.js                             113.76 kB │ gzip:  28.74 kB
../dist/assets/sequenceDiagram-3UESZ5HK-DXczHOHH.js        117.29 kB │ gzip:  30.92 kB
../dist/assets/mdx-sdHcTMYB.js                             140.36 kB │ gzip:  23.83 kB
../dist/assets/architectureDiagram-3BPJPVTR-BMLRjppa.js    149.54 kB │ gzip:  41.96 kB
../dist/assets/objective-cpp-BUEGK8hf.js                   175.60 kB │ gzip:  30.79 kB
../dist/assets/javascript-ySlJ1b_l.js                      198.03 kB │ gzip:  17.58 kB
../dist/assets/tsx-B6W0miNI.js                             198.75 kB │ gzip:  17.59 kB
../dist/assets/jsx-BAng5TT0.js                             201.01 kB │ gzip:  17.70 kB
../dist/assets/typescript-Dj6nwHGl.js                      209.02 kB │ gzip:  17.23 kB
../dist/assets/angular-ts-CKsD7JZE.js                      211.78 kB │ gzip:  17.82 kB
../dist/assets/wolfram-C3FkfJm5.js                         268.60 kB │ gzip:  77.00 kB
../dist/assets/cytoscape.esm-CUqq0XTU.js                   443.69 kB │ gzip: 141.74 kB
../dist/assets/wardley-L42UT6IY-3pc1MEaw.js                615.19 kB │ gzip: 147.94 kB
../dist/assets/mermaid.core-ByoxnWut.js                    619.27 kB │ gzip: 147.85 kB
../dist/assets/wasm-CG6Dc4jp.js                            622.34 kB │ gzip: 231.16 kB
../dist/assets/cpp-BksuvNSY.js                             697.52 kB │ gzip:  50.37 kB
../dist/assets/emacs-lisp-BX77sIaO.js                      804.67 kB │ gzip: 197.40 kB
../dist/assets/index-CpOXWDPh.js                         1,750.22 kB │ gzip: 532.01 kB

(!) Some chunks are larger than 500 kB after minification. Consider:
- Using dynamic import() to code-split the application
- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks
- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.
✓ built in 16.14s
vite v5.4.21 building for production...
transforming...
✓ 137 modules transformed.
rendering chunks...
computing gzip size...
dist/index.js  884.33 kB │ gzip: 211.42 kB
✓ built in 2.17s

> qwen-code-vscode-ide-companion@0.19.2 build
> npm run build:dev


> qwen-code-vscode-ide-companion@0.19.2 build:dev
> npm run check-types && npm run lint && node esbuild.js


> qwen-code-vscode-ide-companion@0.19.2 check-types
> tsc --noEmit


> qwen-code-vscode-ide-companion@0.19.2 lint
> eslint src


/startdir/src/qwen-code/packages/vscode-ide-companion/src/services/settingsWriter.ts
  155:54  warning  Expected { after 'while' condition  curly
  444:61  warning  Expected { after 'if' condition     curly
  512:24  warning  Expected { after 'if' condition     curly
  586:26  warning  Expected { after 'if' condition     curly
  717:20  warning  Expected { after 'if' condition     curly

/startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/handlers/AuthMessageHandler.ts
  181:37  warning  Expected { after 'if' condition  curly
  214:24  warning  Expected { after 'if' condition  curly
  264:22  warning  Expected { after 'if' condition  curly
  283:24  warning  Expected { after 'if' condition  curly
  303:37  warning  Expected { after 'if' condition  curly
  332:23  warning  Expected { after 'if' condition  curly
  338:18  warning  Expected { after 'if' condition  curly
  364:24  warning  Expected { after 'if' condition  curly
  402:28  warning  Expected { after 'if' condition  curly

/startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.ts
  1407:35  warning  Expected { after 'if' condition  curly

✖ 15 problems (0 errors, 15 warnings)
  0 errors and 15 warnings potentially fixable with the `--fix` option.

Browserslist: browsers data (caniuse-lite) is 8 months old. Please run:
  npx update-browserslist-db@latest
  Why you should do it regularly: https://github.com/browserslist/update-db#readme

> @qwen-code/qwen-code@0.19.2 bundle
> npm run generate && node esbuild.config.js && node scripts/copy_bundle_assets.js


> @qwen-code/qwen-code@0.19.2 generate
> node scripts/generate-git-commit-info.js

Copied sandbox profiles to dist/
Copying vendor directory...
Copied vendor directory to dist/
Copied bundled skills to dist/bundled/
Copied docs/users/ to dist/bundled/qc-helper/docs/
Copied builtin locales to dist/locales/
Copied extension examples to dist/examples/
Copied Web Shell UI to dist/web-shell/

✅ All bundle assets copied to dist/
npm notice
npm notice 📦  @qwen-code/qwen-code@0.19.2
npm notice Tarball Contents
npm notice 11.4kB LICENSE
npm notice 9.5kB README.md
npm notice 8.8kB dist/bundled/batch/SKILL.md
npm notice 5.4kB dist/bundled/loop/SKILL.md
npm notice 2.2kB dist/bundled/loop/SKILL.test.ts
npm notice 4.6kB dist/bundled/new-app/SKILL.md
npm notice 931B dist/bundled/qc-helper/docs/_meta.ts
npm notice 14.9kB dist/bundled/qc-helper/docs/common-workflow.md
npm notice 205B dist/bundled/qc-helper/docs/configuration/_meta.ts
npm notice 17.6kB dist/bundled/qc-helper/docs/configuration/auth.md
npm notice 35.5kB dist/bundled/qc-helper/docs/configuration/model-providers.md
npm notice 3.0kB dist/bundled/qc-helper/docs/configuration/qwen-ignore.md
npm notice 173.2kB dist/bundled/qc-helper/docs/configuration/settings.md
npm notice 10.3kB dist/bundled/qc-helper/docs/configuration/themes.md
npm notice 3.3kB dist/bundled/qc-helper/docs/configuration/trusted-folders.md
npm notice 169B dist/bundled/qc-helper/docs/extension/_meta.ts
npm notice 10.3kB dist/bundled/qc-helper/docs/extension/extension-releasing.md
npm notice 9.3kB dist/bundled/qc-helper/docs/extension/getting-started-extensions.md
npm notice 18.5kB dist/bundled/qc-helper/docs/extension/introduction.md
npm notice 782B dist/bundled/qc-helper/docs/features/_meta.ts
npm notice 14.7kB dist/bundled/qc-helper/docs/features/approval-mode.md
npm notice 12.4kB dist/bundled/qc-helper/docs/features/arena.md
npm notice 13.0kB dist/bundled/qc-helper/docs/features/auto-mode.md
npm notice 173B dist/bundled/qc-helper/docs/features/channels/_meta.ts
npm notice 5.8kB dist/bundled/qc-helper/docs/features/channels/dingtalk.md
npm notice 6.7kB dist/bundled/qc-helper/docs/features/channels/feishu.md
npm notice 15.7kB dist/bundled/qc-helper/docs/features/channels/overview.md
npm notice 3.5kB dist/bundled/qc-helper/docs/features/channels/plugins.md
npm notice 7.9kB dist/bundled/qc-helper/docs/features/channels/qqbot.md
npm notice 4.8kB dist/bundled/qc-helper/docs/features/channels/telegram.md
npm notice 4.5kB dist/bundled/qc-helper/docs/features/channels/weixin.md
npm notice 16.5kB dist/bundled/qc-helper/docs/features/code-review.md
npm notice 41.4kB dist/bundled/qc-helper/docs/features/commands.md
npm notice 22.7kB dist/bundled/qc-helper/docs/features/dual-output.md
npm notice 5.4kB dist/bundled/qc-helper/docs/features/followup-suggestions.md
npm notice 19.8kB dist/bundled/qc-helper/docs/features/headless.md
npm notice 41.0kB dist/bundled/qc-helper/docs/features/hooks.md
npm notice 8.5kB dist/bundled/qc-helper/docs/features/language.md
npm notice 15.7kB dist/bundled/qc-helper/docs/features/lsp.md
npm notice 8.6kB dist/bundled/qc-helper/docs/features/markdown-rendering.md
npm notice 23.7kB dist/bundled/qc-helper/docs/features/mcp.md
npm notice 7.3kB dist/bundled/qc-helper/docs/features/memory.md
npm notice 8.4kB dist/bundled/qc-helper/docs/features/sandbox.md
npm notice 7.1kB dist/bundled/qc-helper/docs/features/scheduled-tasks.md
npm notice 10.5kB dist/bundled/qc-helper/docs/features/skills.md
npm notice 23.8kB dist/bundled/qc-helper/docs/features/status-line.md
npm notice 16.7kB dist/bundled/qc-helper/docs/features/structured-output.md
npm notice 27.2kB dist/bundled/qc-helper/docs/features/sub-agents.md
npm notice 2.3kB dist/bundled/qc-helper/docs/features/tips.md
npm notice 1.4kB dist/bundled/qc-helper/docs/features/token-caching.md
npm notice 10.3kB dist/bundled/qc-helper/docs/features/tool-use-summaries.md
npm notice 22.1kB dist/bundled/qc-helper/docs/features/worktree.md
npm notice 103B dist/bundled/qc-helper/docs/ide-integration/_meta.ts
npm notice 10.2kB dist/bundled/qc-helper/docs/ide-integration/ide-companion-spec.md
npm notice 7.9kB dist/bundled/qc-helper/docs/ide-integration/ide-integration.md
npm notice 12.8kB dist/bundled/qc-helper/docs/integration-github-action.md
npm notice 2.6kB dist/bundled/qc-helper/docs/integration-jetbrains.md
npm notice 1.5kB dist/bundled/qc-helper/docs/integration-vscode.md
npm notice 2.3kB dist/bundled/qc-helper/docs/integration-zed.md
npm notice 4.9kB dist/bundled/qc-helper/docs/overview.md
npm notice 9.0kB dist/bundled/qc-helper/docs/quickstart.md
npm notice 13.8kB dist/bundled/qc-helper/docs/qwen-serve-deploy-local.md
npm notice 76.6kB dist/bundled/qc-helper/docs/qwen-serve.md
npm notice 66B dist/bundled/qc-helper/docs/reference/_meta.ts
npm notice 13.2kB dist/bundled/qc-helper/docs/reference/keyboard-shortcuts.md
npm notice 122B dist/bundled/qc-helper/docs/support/_meta.ts
npm notice 6.9kB dist/bundled/qc-helper/docs/support/tos-privacy.md
npm notice 11.1kB dist/bundled/qc-helper/docs/support/troubleshooting.md
npm notice 1.8kB dist/bundled/qc-helper/docs/support/Uninstall.md
npm notice 10.8kB dist/bundled/qc-helper/SKILL.md
npm notice 24.1kB dist/bundled/review/DESIGN.md
npm notice 52.4kB dist/bundled/review/SKILL.md
npm notice 5.3kB dist/bundled/simplify/SKILL.md
npm notice 12.2kB dist/bundled/stuck/SKILL.md
npm notice 361.6kB dist/chunks/acpAgent-QYLKQBAT.js
npm notice 1.6kB dist/chunks/agent-headless-274MN7N6.js
npm notice 1.8kB dist/chunks/agent-OHHZN7DO.js
npm notice 200.1kB dist/chunks/anthropicContentGenerator-E3TQ5XJJ.js
npm notice 23.9kB dist/chunks/artifact-tool-QA4KRO3B.js
npm notice 12.7kB dist/chunks/askUserQuestion-HMWXW6VN.js
npm notice 1.9kB dist/chunks/bridge-4HHBBE6B.js
npm notice 120.6kB dist/chunks/ca-7WC7ELX6.js
npm notice 61.8kB dist/chunks/chunk-2BIF2NVV.js
npm notice 4.8kB dist/chunks/chunk-2JD55C6G.js
npm notice 4.6kB dist/chunks/chunk-2MPVVENX.js
npm notice 953B dist/chunks/chunk-2PSWA5ID.js
npm notice 50.6kB dist/chunks/chunk-3GONHQOA.js
npm notice 67.9kB dist/chunks/chunk-3HX5LZ6R.js
npm notice 91.3kB dist/chunks/chunk-3PJXIDKI.js
npm notice 21.5kB dist/chunks/chunk-3RJ3ZPPR.js
npm notice 12.6kB dist/chunks/chunk-3UALQ56H.js
npm notice 233.0kB dist/chunks/chunk-4CGOWHKM.js
npm notice 1.2MB dist/chunks/chunk-4SELBOIK.js
npm notice 1.2kB dist/chunks/chunk-5DWXLGOM.js
npm notice 129.5kB dist/chunks/chunk-5IFG2VC4.js
npm notice 2.6kB dist/chunks/chunk-5P5XGNYH.js
npm notice 77.7kB dist/chunks/chunk-6FI7EYIQ.js
npm notice 14.4kB dist/chunks/chunk-7JUYDFX4.js
npm notice 260.8kB dist/chunks/chunk-7RYW5LQV.js
npm notice 2.5kB dist/chunks/chunk-7SCPLFVJ.js
npm notice 8.3kB dist/chunks/chunk-22IFUCVR.js
npm notice 1.8kB dist/chunks/chunk-35B5NZED.js
npm notice 10.3kB dist/chunks/chunk-54DX5ZKE.js
npm notice 1.2MB dist/chunks/chunk-55ZMG67I.js
npm notice 3.1kB dist/chunks/chunk-64WXLC72.js
npm notice 11.9kB dist/chunks/chunk-66OHPYHW.js
npm notice 770B dist/chunks/chunk-A4BMJM77.js
npm notice 12.0kB dist/chunks/chunk-ALX6BUYW.js
npm notice 15.6kB dist/chunks/chunk-ASNHA7GE.js
npm notice 721.7kB dist/chunks/chunk-ATNONTTF.js
npm notice 546.4kB dist/chunks/chunk-B6MFB2J7.js
npm notice 4.5kB dist/chunks/chunk-BG4BIP7F.js
npm notice 46.8kB dist/chunks/chunk-BGUDAULQ.js
npm notice 7.2kB dist/chunks/chunk-BNXANYLH.js
npm notice 3.3kB dist/chunks/chunk-BR4QREVK.js
npm notice 1.1kB dist/chunks/chunk-BS64PXY3.js
npm notice 2.7kB dist/chunks/chunk-C3MK76EV.js
npm notice 32.9kB dist/chunks/chunk-C4K3FEQ2.js
npm notice 172.0kB dist/chunks/chunk-C55M42BG.js
npm notice 308.9kB dist/chunks/chunk-CBO6DV24.js
npm notice 37.5kB dist/chunks/chunk-CGEGHF2C.js
npm notice 19.3kB dist/chunks/chunk-CJCKDMWO.js
npm notice 11.3kB dist/chunks/chunk-CQQUYVHV.js
npm notice 3.9kB dist/chunks/chunk-DALYRTKW.js
npm notice 2.8MB dist/chunks/chunk-DHOJXT72.js
npm notice 31.3kB dist/chunks/chunk-EEEZIVFJ.js
npm notice 41.9kB dist/chunks/chunk-EIOJC52E.js
npm notice 4.6kB dist/chunks/chunk-EW6C27XX.js
npm notice 814.8kB dist/chunks/chunk-F6XNTYNE.js
npm notice 1.5MB dist/chunks/chunk-FPACXT7T.js
npm notice 579B dist/chunks/chunk-FUW6AI7J.js
npm notice 928B dist/chunks/chunk-FXGLL2HL.js
npm notice 5.5kB dist/chunks/chunk-GZCJS5WH.js
npm notice 1.0kB dist/chunks/chunk-H6BD2ELD.js
npm notice 14.3kB dist/chunks/chunk-HGNSRCRB.js
npm notice 10.0kB dist/chunks/chunk-HIGEKZVG.js
npm notice 2.2kB dist/chunks/chunk-HR7GSPTJ.js
npm notice 553.1kB dist/chunks/chunk-IRJWHZWU.js
npm notice 7.2kB dist/chunks/chunk-ITOGNELQ.js
npm notice 9.8kB dist/chunks/chunk-IUBHHCY2.js
npm notice 756B dist/chunks/chunk-IWKSG2AR.js
npm notice 2.5kB dist/chunks/chunk-J2S4EL5Y.js
npm notice 54.8kB dist/chunks/chunk-J37FGIOA.js
npm notice 33.6kB dist/chunks/chunk-JXQ23SNT.js
npm notice 3.4kB dist/chunks/chunk-JZSY4WP3.js
npm notice 542.0kB dist/chunks/chunk-K5PGHDBN.js
npm notice 20.7kB dist/chunks/chunk-KBXLIVWQ.js
npm notice 2.9kB dist/chunks/chunk-KHDZHZMH.js
npm notice 764B dist/chunks/chunk-KSPVDFE4.js
npm notice 19.3kB dist/chunks/chunk-KYMBIKIW.js
npm notice 2.3kB dist/chunks/chunk-LD2XBG6Z.js
npm notice 3.2kB dist/chunks/chunk-LQ7TMOCE.js
npm notice 6.5kB dist/chunks/chunk-LVEP2XK7.js
npm notice 706B dist/chunks/chunk-MLZQVCF3.js
npm notice 671B dist/chunks/chunk-MRO43B25.js
npm notice 8.6kB dist/chunks/chunk-MUU3QOVV.js
npm notice 15.7kB dist/chunks/chunk-MXCJ4U5F.js
npm notice 5.3MB dist/chunks/chunk-O4CABVHW.js
npm notice 565B dist/chunks/chunk-OFEVLU4C.js
npm notice 2.4kB dist/chunks/chunk-OIC6S73E.js
npm notice 38.3kB dist/chunks/chunk-OKS7ZP7U.js
npm notice 10.5kB dist/chunks/chunk-OMX7CUOE.js
npm notice 8.6kB dist/chunks/chunk-OTBK43JR.js
npm notice 93.2kB dist/chunks/chunk-P3MYAZBY.js
npm notice 353B dist/chunks/chunk-P7M4GA57.js
npm notice 9.4kB dist/chunks/chunk-PRYMDRBV.js
npm notice 870.7kB dist/chunks/chunk-Q2E7ZIZW.js
npm notice 369B dist/chunks/chunk-QBZ22PQX.js
npm notice 20.2kB dist/chunks/chunk-QN5NZ3UQ.js
npm notice 496B dist/chunks/chunk-QQDPRDVW.js
npm notice 262B dist/chunks/chunk-R2BXK7SX.js
npm notice 259B dist/chunks/chunk-RKIZXJMB.js
npm notice 10.6kB dist/chunks/chunk-S566HKUS.js
npm notice 808B dist/chunks/chunk-SEZC2725.js
npm notice 9.8kB dist/chunks/chunk-SFSKBNWD.js
npm notice 14.5kB dist/chunks/chunk-SKAZWEV5.js
npm notice 9.7kB dist/chunks/chunk-SNBXSJP7.js
npm notice 109.7kB dist/chunks/chunk-SOZIX7D3.js
npm notice 2.6kB dist/chunks/chunk-SYCJMSIJ.js
npm notice 2.0kB dist/chunks/chunk-T2VDEFUU.js
npm notice 1.7kB dist/chunks/chunk-TBKLTUNM.js
npm notice 6.7kB dist/chunks/chunk-THRZ4JVN.js
npm notice 430B dist/chunks/chunk-TLRYABYP.js
npm notice 85.0kB dist/chunks/chunk-TMBPDHXD.js
npm notice 601.3kB dist/chunks/chunk-TOEGRAVX.js
npm notice 29.4kB dist/chunks/chunk-TW54K7WD.js
npm notice 7.2kB dist/chunks/chunk-TXVGVZYR.js
npm notice 32.7kB dist/chunks/chunk-TYR4KCPH.js
npm notice 5.7kB dist/chunks/chunk-U6LCCNRY.js
npm notice 78.6kB dist/chunks/chunk-UFC57OYT.js
npm notice 634.8kB dist/chunks/chunk-UMW7N5UV.js
npm notice 13.8kB dist/chunks/chunk-UN3C6GOR.js
npm notice 3.4kB dist/chunks/chunk-UWCTAVOD.js
npm notice 8.1kB dist/chunks/chunk-X6EDWN44.js
npm notice 17.0kB dist/chunks/chunk-XB3UZBPL.js
npm notice 16.5kB dist/chunks/chunk-XGOOXTNI.js
npm notice 19.0kB dist/chunks/chunk-XU5P23GN.js
npm notice 779B dist/chunks/chunk-Y6Z2O3WR.js
npm notice 61.0kB dist/chunks/chunk-Z2Z3GUXZ.js
npm notice 9.7kB dist/chunks/chunk-Z7XXFPGP.js
npm notice 34.3kB dist/chunks/chunk-ZD3NW5KL.js
npm notice 18.7kB dist/chunks/chunk-ZERZSAZL.js
npm notice 433.3kB dist/chunks/chunk-ZN5T4BHI.js
npm notice 1.5kB dist/chunks/chunk-ZTQ26VBE.js
npm notice 88.7kB dist/chunks/computer-use-4N4SFPOA.js
npm notice 1.8kB dist/chunks/contextCommand-K7EZHT3E.js
npm notice 8.1kB dist/chunks/cron-create-4KQE6YLH.js
npm notice 2.9kB dist/chunks/cron-delete-THME66UP.js
npm notice 3.9kB dist/chunks/cron-list-7A54SJ5N.js
npm notice 2.0kB dist/chunks/daemon-status-provider-7NDBQUHN.js
npm notice 123.7kB dist/chunks/de-ACHALDED.js
npm notice 747.0kB dist/chunks/devtools-FM6GJPYG.js
npm notice 258B dist/chunks/dist-63IS3ZMI.js
npm notice 21.8kB dist/chunks/dist-BD27IA3L.js
npm notice 160.7kB dist/chunks/dist-BOOH5JWN.js
npm notice 4.9MB dist/chunks/dist-OD2FY543.js
npm notice 72.6kB dist/chunks/dist-QFFZWACU.js
npm notice 496.2kB dist/chunks/dist-QHJRBCMP.js
npm notice 1.8kB dist/chunks/earlyInputCapture-O23DC7UW.js
npm notice 31.7kB dist/chunks/edit-RGQDIFCJ.js
npm notice 139.1kB dist/chunks/en-NCUBOJOY.js
npm notice 8.7kB dist/chunks/enter-worktree-YCEWYEJD.js
npm notice 6.4kB dist/chunks/enterPlanMode-QOCDQUVW.js
npm notice 2.0kB dist/chunks/errors-423DAJH4.js
npm notice 18.1kB dist/chunks/exit-worktree-NXB5H3Q7.js
npm notice 28.8kB dist/chunks/exitPlanMode-QS2TFHES.js
npm notice 526B dist/chunks/fast-path-settings-TSVI53EB.js
npm notice 14.5kB dist/chunks/fast-path-X4NM4NVZ.js
npm notice 4.8kB dist/chunks/fileFromPath-IBEHA3CO.js
npm notice 127.3kB dist/chunks/fr-GVKZ27MF.js
npm notice 86.5kB dist/chunks/gemini-GPR5WBL7.js
npm notice 7.9kB dist/chunks/geminiContentGenerator-XTG6SFLA.js
npm notice 1.5kB dist/chunks/getMachineId-bsd-4CASPIU4.js
npm notice 1.5kB dist/chunks/getMachineId-darwin-HPQPEMZR.js
npm notice 1.3kB dist/chunks/getMachineId-linux-AUARKYHL.js
npm notice 1.0kB dist/chunks/getMachineId-unsupported-S32ZDA2T.js
npm notice 1.7kB dist/chunks/getMachineId-win-4EFLHYIJ.js
npm notice 10.9kB dist/chunks/glob-KRNKCR72.js
npm notice 22.0kB dist/chunks/grep-B36R2VQU.js
npm notice 1.6kB dist/chunks/headlessSafetyWarnings-QZKXN6A7.js
npm notice 1.7kB dist/chunks/initializer-24MWH4GZ.js
npm notice 169.9kB dist/chunks/ja-FKZ2WZ4D.js
npm notice 270B dist/chunks/keychain-token-storage-CSYMNRPP.js
npm notice 382B dist/chunks/kittyProtocolDetector-OJRCJLIU.js
npm notice 1.8kB dist/chunks/list-4R3ANG7V.js
npm notice 1.7kB dist/chunks/loadedSettingsAdapter-6NCS6FQS.js
npm notice 6.0kB dist/chunks/loop-wakeup-33GPXJLA.js
npm notice 1.5MB dist/chunks/lowlight-FYAAUU5J.js
npm notice 9.4kB dist/chunks/ls-BYQY7RVV.js
npm notice 35.5kB dist/chunks/lsp-X54RO4IV.js
npm notice 1.8kB dist/chunks/MaxSizedBox-26J76DTM.js
npm notice 21.5kB dist/chunks/monitor-6L5RSO2C.js
npm notice 12.1kB dist/chunks/multipart-parser-AJ4WASWR.js
npm notice 2.6kB dist/chunks/nonInteractiveCli-GMTG5SKF.js
npm notice 26.9kB dist/chunks/notebook-edit-SPXI7HNJ.js
npm notice 1.6kB dist/chunks/openaiContentGenerator-NI5HS4BF.js
npm notice 123.1kB dist/chunks/pt-SY5NCFGR.js
npm notice 7.1kB dist/chunks/qwenContentGenerator-JXNRMUB5.js
npm notice 1.2kB dist/chunks/qwenOAuth2-K4AASPCV.js
npm notice 794B dist/chunks/read-file-BDAHQYRQ.js
npm notice 6.4kB dist/chunks/read-mcp-resource-I5HCZJ6X.js
npm notice 171.4kB dist/chunks/read-package-up-ER5OJUGP.js
npm notice 1.6kB dist/chunks/ripGrep-XRVS7B33.js
npm notice 299.5kB dist/chunks/ru-FWNXJG4F.js
npm notice 67.1kB dist/chunks/run-qwen-serve-QQ5VWZB6.js
npm notice 11.1kB dist/chunks/scheduler-L5L3HOP6.js
npm notice 9.6kB dist/chunks/send-message-2DAFXEYP.js
npm notice 1.8kB dist/chunks/serve-WVWSVWQJ.js
npm notice 450.6kB dist/chunks/server-AQ4HNLZO.js
npm notice 72.1kB dist/chunks/session-TXUDXEMT.js
npm notice 2.8kB dist/chunks/settings-PT4WJ332.js
npm notice 1.8kB dist/chunks/shell-TZXLMRGL.js
npm notice 16.5kB dist/chunks/skill-45BPSWQF.js
npm notice 1.8kB dist/chunks/spawnChannel-7UANZ5R2.js
npm notice 48.9kB dist/chunks/src-7XL4G4DC.js
npm notice 59.1kB dist/chunks/src-K7MYLM4A.js
npm notice 6.1kB dist/chunks/StandaloneSessionPicker-JD227IZ6.js
npm notice 1.8MB dist/chunks/startInteractiveUI-SLX7I544.js
npm notice 368B dist/chunks/syntheticOutput-PPS3HDVA.js
npm notice 492B dist/chunks/task-create-OUYCA553.js
npm notice 4.1kB dist/chunks/task-list-WAX7I2IA.js
npm notice 7.3kB dist/chunks/task-stop-CAIL6FNH.js
npm notice 12.6kB dist/chunks/task-update-AHEO5OUT.js
npm notice 12.7kB dist/chunks/team-create-HONFEAFY.js
npm notice 2.9kB dist/chunks/team-delete-HGHFG23B.js
npm notice 1.6kB dist/chunks/theme-manager-B6LZEP6J.js
npm notice 21.4kB dist/chunks/todoWrite-IFBMN3FH.js
npm notice 13.7kB dist/chunks/tool-search-XFRGM4P2.js
npm notice 1.9MB dist/chunks/tree-sitter-bash-EZ4S5QRV.js
npm notice 254.7kB dist/chunks/tree-sitter-G7JNPPOS.js
npm notice 4.9kB dist/chunks/validateNonInterActiveAuth-3VKEAYC7.js
npm notice 259.8kB dist/chunks/web-fetch-B5IIQ5TT.js
npm notice 88.2kB dist/chunks/workflow-XINR4BYR.js
npm notice 1.8kB dist/chunks/workspace-providers-status-BOBFTHX3.js
npm notice 1.7kB dist/chunks/workspace-service-SEJGGUF3.js
npm notice 17.0kB dist/chunks/write-file-PVHLNUVX.js
npm notice 171.8kB dist/chunks/zh-RBEGQVQT.js
npm notice 162.4kB dist/chunks/zh-TW-QGAVRXT3.js
npm notice 3.5kB dist/cli.js
npm notice 2.4kB dist/examples/agent/agents/diary.md
npm notice 122B dist/examples/agent/qwen-extension.json
npm notice 75B dist/examples/commands/commands/fs/grep-code.md
npm notice 129B dist/examples/commands/qwen-extension.json
npm notice 137B dist/examples/context/qwen-extension.json
npm notice 670B dist/examples/context/QWEN.md
npm notice 1.4kB dist/examples/mcp-server/example.ts
npm notice 380B dist/examples/mcp-server/package.json
npm notice 440B dist/examples/mcp-server/qwen-extension.json
npm notice 290B dist/examples/mcp-server/tsconfig.json
npm notice 119B dist/examples/skills/qwen-extension.json
npm notice 1.9kB dist/examples/skills/skills/synonyms/SKILL.md
npm notice 2.4kB dist/examples/starter/agents/diary.md
npm notice 378B dist/examples/starter/commands/writing/polish.md
npm notice 1.8kB dist/examples/starter/example.ts
npm notice 420B dist/examples/starter/package.json
npm notice 250B dist/examples/starter/qwen-extension.json
npm notice 1.2kB dist/examples/starter/QWEN.md
npm notice 2.5kB dist/examples/starter/README.md
npm notice 1.9kB dist/examples/starter/skills/synonyms/SKILL.md
npm notice 290B dist/examples/starter/tsconfig.json
npm notice 28.4kB dist/fzfWorker.js
npm notice 119.9kB dist/locales/ca.js
npm notice 123.8kB dist/locales/de.js
npm notice 140.4kB dist/locales/en.js
npm notice 125.7kB dist/locales/fr.js
npm notice 120.6kB dist/locales/ja.js
npm notice 121.4kB dist/locales/pt.js
npm notice 155.0kB dist/locales/ru.js
npm notice 123.8kB dist/locales/zh-TW.js
npm notice 133.2kB dist/locales/zh.js
npm notice 1.0kB dist/sandbox-macos-permissive-closed.sb
npm notice 899B dist/sandbox-macos-permissive-open.sb
npm notice 1.3kB dist/sandbox-macos-permissive-proxied.sb
npm notice 3.3kB dist/sandbox-macos-restrictive-closed.sb
npm notice 3.4kB dist/sandbox-macos-restrictive-open.sb
npm notice 3.6kB dist/sandbox-macos-restrictive-proxied.sb
npm notice 4.5MB dist/vendor/ripgrep/arm64-darwin/rg
npm notice 4.8MB dist/vendor/ripgrep/arm64-linux/rg
npm notice 126B dist/vendor/ripgrep/COPYING
npm notice 4.7MB dist/vendor/ripgrep/x64-darwin/rg
npm notice 5.7MB dist/vendor/ripgrep/x64-linux/rg
npm notice 5.4MB dist/vendor/ripgrep/x64-win32/rg.exe
npm notice 1.4MB dist/vendor/tree-sitter/tree-sitter-bash.wasm
npm notice 190.8kB dist/vendor/tree-sitter/tree-sitter.wasm
npm notice 18.8kB dist/web-shell/assets/abap-DsBKuouk.js
npm notice 14.6kB dist/web-shell/assets/actionscript-3-D_z4Izcz.js
npm notice 48.5kB dist/web-shell/assets/ada-727ZlQH0.js
npm notice 8.9kB dist/web-shell/assets/andromeeda-C3khCPGq.js
npm notice 17.7kB dist/web-shell/assets/angular-html-LfdN0zeE.js
npm notice 211.8kB dist/web-shell/assets/angular-ts-CKsD7JZE.js
npm notice 13.2kB dist/web-shell/assets/apache-Dn00JSTd.js
npm notice 46.8kB dist/web-shell/assets/apex-COJ4H7py.js
npm notice 24.2kB dist/web-shell/assets/apl-BBq3IX1j.js
npm notice 30.8kB dist/web-shell/assets/applescript-Bu5BbsvL.js
npm notice 7.2kB dist/web-shell/assets/ara-7O62HKoU.js
npm notice 3.4kB dist/web-shell/assets/arc-D_ae_Y9k.js
npm notice 149.5kB dist/web-shell/assets/architectureDiagram-3BPJPVTR-BMLRjppa.js
npm notice 93.5kB dist/web-shell/assets/asciidoc-BPT9niGB.js
npm notice 40.9kB dist/web-shell/assets/asm-Dhn9LcZ4.js
npm notice 24.1kB dist/web-shell/assets/astro-CqkE3fuf.js
npm notice 13.7kB dist/web-shell/assets/aurora-x-D-2ljcwZ.js
npm notice 5.5kB dist/web-shell/assets/awk-eg146-Ew.js
npm notice 14.9kB dist/web-shell/assets/ayu-dark-Cv9koXgw.js
npm notice 61.6kB dist/web-shell/assets/ballerina-Du268qiB.js
npm notice 13.0kB dist/web-shell/assets/bat-fje9CFhw.js
npm notice 10.8kB dist/web-shell/assets/beancount-BwXTMy5W.js
npm notice 2.4kB dist/web-shell/assets/berry-3xVqZejG.js
npm notice 5.1kB dist/web-shell/assets/bibtex-xW4inM5L.js
npm notice 4.5kB dist/web-shell/assets/bicep-DHo0CJ0O.js
npm notice 108.0kB dist/web-shell/assets/blade-a8OxSdnT.js
npm notice 74.9kB dist/web-shell/assets/blockDiagram-GPEHLZMM-qVDQC8KL.js
npm notice 38.1kB dist/web-shell/assets/bsl-Dgyn0ogV.js
npm notice 74.0kB dist/web-shell/assets/c-C3t2pwGQ.js
npm notice 70.0kB dist/web-shell/assets/c4Diagram-AAUBKEIU-CxWS6MBd.js
npm notice 11.0kB dist/web-shell/assets/cadence-DNquZEk8.js
npm notice 3.0kB dist/web-shell/assets/cairo--RitsXJZ.js
npm notice 45.6kB dist/web-shell/assets/catppuccin-frappe-CD_QflpE.js
npm notice 45.6kB dist/web-shell/assets/catppuccin-latte-DRW-0cLl.js
npm notice 45.6kB dist/web-shell/assets/catppuccin-macchiato-C-_shW-Y.js
npm notice 45.6kB dist/web-shell/assets/catppuccin-mocha-LGGdnPYs.js
npm notice 113B dist/web-shell/assets/channel-DYPNiTww.js
npm notice 532B dist/web-shell/assets/chunk-2J33WTMH-BtNuY5Yp.js
npm notice 297B dist/web-shell/assets/chunk-4BX2VUAB-BU-x368d.js
npm notice 235B dist/web-shell/assets/chunk-55IACEB6-DRgTLvBu.js
npm notice 49.1kB dist/web-shell/assets/chunk-727SXJPM-D2aElv7q.js
npm notice 37.6kB dist/web-shell/assets/chunk-AQP2D5EJ-BwHCMRQ0.js
npm notice 366B dist/web-shell/assets/chunk-FMBD7UC4-BMyPH-ku.js
npm notice 1.9kB dist/web-shell/assets/chunk-ND2GUHAM-BNKTstUf.js
npm notice 193B dist/web-shell/assets/chunk-QZHKN3VN-gD3vsFId.js
npm notice 14.6kB dist/web-shell/assets/clarity-BHOwM8T6.js
npm notice 467B dist/web-shell/assets/classDiagram-4FO5ZUOK-p_g25Tni.js
npm notice 467B dist/web-shell/assets/classDiagram-v2-Q7XG4LA2-p_g25Tni.js
npm notice 7.1kB dist/web-shell/assets/clojure-DxSadP1t.js
npm notice 10.5kB dist/web-shell/assets/cmake-DbXoA79R.js
npm notice 40.6kB dist/web-shell/assets/cobol-PTqiYgYu.js
npm notice 547B dist/web-shell/assets/codeowners-Bp6g37R7.js
npm notice 33.6kB dist/web-shell/assets/codeql-sacFqUAJ.js
npm notice 27.7kB dist/web-shell/assets/coffee-dyiR41kL.js
npm notice 28.5kB dist/web-shell/assets/common-lisp-C7gG9l05.js
npm notice 6.0kB dist/web-shell/assets/coq-Dsg_Bt_b.js
npm notice 81.5kB dist/web-shell/assets/cose-bilkent-S5V4N54A-BG9FAsXE.js
npm notice 697.5kB dist/web-shell/assets/cpp-BksuvNSY.js
npm notice 33.7kB dist/web-shell/assets/crystal-DtDmRg-F.js
npm notice 87.2kB dist/web-shell/assets/csharp-D9R-vmeu.js
npm notice 53.8kB dist/web-shell/assets/css-BPhBrDlE.js
npm notice 1.2kB dist/web-shell/assets/csv-B0qRVHPH.js
npm notice 17.3kB dist/web-shell/assets/cue-DtFQj3wx.js
npm notice 6.8kB dist/web-shell/assets/cypher-m2LEI-9-.js
npm notice 443.7kB dist/web-shell/assets/cytoscape.esm-CUqq0XTU.js
npm notice 43.0kB dist/web-shell/assets/d-BoXegm-a.js
npm notice 11.4kB dist/web-shell/assets/dagre-BM42HDAG-Cy1sR7om.js
npm notice 9.1kB dist/web-shell/assets/dark-plus-C3mMm8J8.js
npm notice 7.9kB dist/web-shell/assets/dart-B9wLZaAG.js
npm notice 5.5kB dist/web-shell/assets/dax-ClGRhx96.js
npm notice 4.7kB dist/web-shell/assets/defaultLocale-DX6XiGOO.js
npm notice 2.0kB dist/web-shell/assets/desktop-DEIpsLCJ.js
npm notice 6.0kB dist/web-shell/assets/diagram-2AECGRRQ-Bxi1I_Vu.js
npm notice 2.8kB dist/web-shell/assets/diagram-5GNKFQAL-BGCJjO6y.js
npm notice 10.8kB dist/web-shell/assets/diagram-KO2AKTUF-CMTeLXp7.js
npm notice 4.2kB dist/web-shell/assets/diagram-LMA3HP47-BN1wyAGh.js
npm notice 15.9kB dist/web-shell/assets/diagram-OG6HWLK6-UYSG_zcp.js
npm notice 2.6kB dist/web-shell/assets/diff-BgYniUM_.js
npm notice 1.8kB dist/web-shell/assets/docker-COcR7UxN.js
npm notice 1.7kB dist/web-shell/assets/dotenv-BjQB5zDj.js
npm notice 21.1kB dist/web-shell/assets/dracula-BzJJZx-M.js
npm notice 21.1kB dist/web-shell/assets/dracula-soft-BXkSAIEj.js
npm notice 10.6kB dist/web-shell/assets/dream-maker-C-nORZOA.js
npm notice 2.4kB dist/web-shell/assets/edge-D5gP-w-T.js
npm notice 18.3kB dist/web-shell/assets/elixir-CLiX3zqd.js
npm notice 11.3kB dist/web-shell/assets/elm-CmHSxxaM.js
npm notice 804.7kB dist/web-shell/assets/emacs-lisp-BX77sIaO.js
npm notice 2.6kB dist/web-shell/assets/erb-BYTLMnw6.js
npm notice 27.0kB dist/web-shell/assets/erDiagram-TEJ5UH35-DqXL08lw.js
npm notice 36.3kB dist/web-shell/assets/erlang-B-DoSBHF.js
npm notice 53.7kB dist/web-shell/assets/everforest-dark-BgDCqdQA.js
npm notice 53.7kB dist/web-shell/assets/everforest-light-C8M2exoo.js
npm notice 4.8kB dist/web-shell/assets/fennel-bCA53EVm.js
npm notice 5.4kB dist/web-shell/assets/fish-w-ucz2PV.js
npm notice 61.2kB dist/web-shell/assets/flowDiagram-I6XJVG4X-BPJ9SFji.js
npm notice 3.6kB dist/web-shell/assets/fluent-Dayu4EKP.js
npm notice 1.1kB dist/web-shell/assets/fortran-fixed-form-TqA4NnZg.js
npm notice 98.2kB dist/web-shell/assets/fortran-free-form-DKXYxT9g.js
npm notice 25.8kB dist/web-shell/assets/fsharp-XplgxFYe.js
npm notice 69.3kB dist/web-shell/assets/ganttDiagram-6RSMTGT7-BEd9Pnms.js
npm notice 5.5kB dist/web-shell/assets/gdresource-BHYsBjWJ.js
npm notice 18.7kB dist/web-shell/assets/gdscript-DfxzS6Rs.js
npm notice 6.4kB dist/web-shell/assets/gdshader-SKMF96pI.js
npm notice 3.4kB dist/web-shell/assets/genie-ajMbGru0.js
npm notice 12.5kB dist/web-shell/assets/gherkin--30QC5Em.js
npm notice 1.5kB dist/web-shell/assets/git-commit-i4q6IMui.js
npm notice 980B dist/web-shell/assets/git-rebase-B-v9cOL2.js
npm notice 29.9kB dist/web-shell/assets/gitGraphDiagram-PVQCEYII-DrNRH3oi.js
npm notice 14.4kB dist/web-shell/assets/github-dark-default-Cuk6v7N8.js
npm notice 11.4kB dist/web-shell/assets/github-dark-DHJKELXO.js
npm notice 14.4kB dist/web-shell/assets/github-dark-dimmed-DH5Ifo-i.js
npm notice 14.6kB dist/web-shell/assets/github-dark-high-contrast-E3gJ1_iC.js
npm notice 11.2kB dist/web-shell/assets/github-light-DAi9KRSo.js
npm notice 14.2kB dist/web-shell/assets/github-light-default-D7oLnXFd.js
npm notice 14.3kB dist/web-shell/assets/github-light-high-contrast-BfjtVDDH.js
npm notice 2.7kB dist/web-shell/assets/gleam-B430Bg39.js
npm notice 20.6kB dist/web-shell/assets/glimmer-js-D-cwc0-E.js
npm notice 20.6kB dist/web-shell/assets/glimmer-ts-pgjy16dm.js
npm notice 3.9kB dist/web-shell/assets/glsl-DBO2IWDn.js
npm notice 14.9kB dist/web-shell/assets/gnuplot-CM8KxXT1.js
npm notice 52.4kB dist/web-shell/assets/go-B1SYOhNW.js
npm notice 23.9kB dist/web-shell/assets/graph-qsFoMdT2.js
npm notice 18.2kB dist/web-shell/assets/graphql-cDcHW_If.js
npm notice 19.6kB dist/web-shell/assets/groovy-DkBy-JyN.js
npm notice 84.7kB dist/web-shell/assets/hack-D1yCygmZ.js
npm notice 8.5kB dist/web-shell/assets/haml-B2EZWmdv.js
npm notice 12.3kB dist/web-shell/assets/handlebars-BQGss363.js
npm notice 43.3kB dist/web-shell/assets/haskell-BILxekzW.js
npm notice 35.3kB dist/web-shell/assets/haxe-C5wWYbrZ.js
npm notice 12.0kB dist/web-shell/assets/hcl-HzYwdGDm.js
npm notice 12.3kB dist/web-shell/assets/hjson-T-Tgc4AT.js
npm notice 7.6kB dist/web-shell/assets/hlsl-ifBTmRxC.js
npm notice 35.4kB dist/web-shell/assets/houston-DnULxvSX.js
npm notice 61.3kB dist/web-shell/assets/html-C2L_23MC.js
npm notice 970B dist/web-shell/assets/html-derivative-CSfWNPLT.js
npm notice 4.7kB dist/web-shell/assets/http-FRrOvY1W.js
npm notice 1.8kB dist/web-shell/assets/hxml-TIA70rKU.js
npm notice 2.8kB dist/web-shell/assets/hy-BMj5Y0dO.js
npm notice 53.5kB dist/web-shell/assets/imba-bv_oIlVt.js
npm notice 1.8MB dist/web-shell/assets/index-CpOXWDPh.js
npm notice 156.3kB dist/web-shell/assets/index-oVK7qhre.css
npm notice 587B dist/web-shell/assets/infoDiagram-5YYISTIA-CFYBrkVI.js
npm notice 1.5kB dist/web-shell/assets/ini-BjABl1g7.js
npm notice 147B dist/web-shell/assets/init-Gi6I4Gst.js
npm notice 17.6kB dist/web-shell/assets/ishikawaDiagram-YF4QCWOH-Dxsddth7.js
npm notice 27.5kB dist/web-shell/assets/java-xI-RfyKK.js
npm notice 198.0kB dist/web-shell/assets/javascript-ySlJ1b_l.js
npm notice 5.7kB dist/web-shell/assets/jinja-DGy0s7-h.js
npm notice 9.7kB dist/web-shell/assets/jison-BqZprYcd.js
npm notice 23.6kB dist/web-shell/assets/journeyDiagram-JHISSGLW-DxaDK80t.js
npm notice 2.9kB dist/web-shell/assets/json-BQoSv7ci.js
npm notice 3.5kB dist/web-shell/assets/json5-w8dY5SsB.js
npm notice 3.2kB dist/web-shell/assets/jsonc-TU54ms6u.js
npm notice 3.1kB dist/web-shell/assets/jsonl-DREVFZK8.js
npm notice 3.6kB dist/web-shell/assets/jsonnet-BfivnA6A.js
npm notice 3.0kB dist/web-shell/assets/jssm-P4WzXJd0.js
npm notice 201.0kB dist/web-shell/assets/jsx-BAng5TT0.js
npm notice 35.7kB dist/web-shell/assets/julia-BBuGR-5E.js
npm notice 17.1kB dist/web-shell/assets/kanagawa-dragon-CkXjmgJE.js
npm notice 17.1kB dist/web-shell/assets/kanagawa-lotus-CfQXZHmo.js
npm notice 17.1kB dist/web-shell/assets/kanagawa-wave-DWedfzmr.js
npm notice 20.7kB dist/web-shell/assets/kanban-definition-UN3LZRKU-Q0jQCOct.js
npm notice 28.1kB dist/web-shell/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2
npm notice 33.5kB dist/web-shell/assets/KaTeX_AMS-Regular-DMm9YOAa.woff
npm notice 63.6kB dist/web-shell/assets/KaTeX_AMS-Regular-DRggAlZN.ttf
npm notice 12.4kB dist/web-shell/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf
npm notice 7.7kB dist/web-shell/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff
npm notice 6.9kB dist/web-shell/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2
npm notice 7.7kB dist/web-shell/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff
npm notice 6.9kB dist/web-shell/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2
npm notice 12.3kB dist/web-shell/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf
npm notice 19.6kB dist/web-shell/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf
npm notice 13.3kB dist/web-shell/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff
npm notice 11.3kB dist/web-shell/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2
npm notice 19.6kB dist/web-shell/assets/KaTeX_Fraktur-Regular-CB_wures.ttf
npm notice 11.3kB dist/web-shell/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2
npm notice 13.2kB dist/web-shell/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff
npm notice 25.3kB dist/web-shell/assets/KaTeX_Main-Bold-Cx986IdX.woff2
npm notice 29.9kB dist/web-shell/assets/KaTeX_Main-Bold-Jm3AIy58.woff
npm notice 51.3kB dist/web-shell/assets/KaTeX_Main-Bold-waoOVXN0.ttf
npm notice 16.8kB dist/web-shell/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2
npm notice 33.0kB dist/web-shell/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf
npm notice 19.4kB dist/web-shell/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff
npm notice 33.6kB dist/web-shell/assets/KaTeX_Main-Italic-3WenGoN9.ttf
npm notice 19.7kB dist/web-shell/assets/KaTeX_Main-Italic-BMLOBm91.woff
npm notice 17.0kB dist/web-shell/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2
npm notice 26.3kB dist/web-shell/assets/KaTeX_Main-Regular-B22Nviop.woff2
npm notice 30.8kB dist/web-shell/assets/KaTeX_Main-Regular-Dr94JaBh.woff
npm notice 53.6kB dist/web-shell/assets/KaTeX_Main-Regular-ypZvNtVU.ttf
npm notice 31.2kB dist/web-shell/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf
npm notice 16.4kB dist/web-shell/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2
npm notice 18.7kB dist/web-shell/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff
npm notice 18.7kB dist/web-shell/assets/KaTeX_Math-Italic-DA0__PXp.woff
npm notice 31.3kB dist/web-shell/assets/KaTeX_Math-Italic-flOr_0UB.ttf
npm notice 16.4kB dist/web-shell/assets/KaTeX_Math-Italic-t53AETM-.woff2
npm notice 24.5kB dist/web-shell/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf
npm notice 12.2kB dist/web-shell/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2
npm notice 14.4kB dist/web-shell/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff
npm notice 12.0kB dist/web-shell/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2
npm notice 14.1kB dist/web-shell/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff
npm notice 22.4kB dist/web-shell/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf
npm notice 19.4kB dist/web-shell/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf
npm notice 12.3kB dist/web-shell/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff
npm notice 10.3kB dist/web-shell/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2
npm notice 16.6kB dist/web-shell/assets/KaTeX_Script-Regular-C5JkGWo-.ttf
npm notice 9.6kB dist/web-shell/assets/KaTeX_Script-Regular-D3wIWfF6.woff2
npm notice 10.6kB dist/web-shell/assets/KaTeX_Script-Regular-D5yQViql.woff
npm notice 6.5kB dist/web-shell/assets/KaTeX_Size1-Regular-C195tn64.woff
npm notice 12.2kB dist/web-shell/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf
npm notice 5.5kB dist/web-shell/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2
npm notice 11.5kB dist/web-shell/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf
npm notice 5.2kB dist/web-shell/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2
npm notice 6.2kB dist/web-shell/assets/KaTeX_Size2-Regular-oD1tc_U0.woff
npm notice 4.4kB dist/web-shell/assets/KaTeX_Size3-Regular-CTq5MqoE.woff
npm notice 7.6kB dist/web-shell/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf
npm notice 6.0kB dist/web-shell/assets/KaTeX_Size4-Regular-BF-4gkZK.woff
npm notice 4.9kB dist/web-shell/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2
npm notice 10.4kB dist/web-shell/assets/KaTeX_Size4-Regular-DWFBv043.ttf
npm notice 16.0kB dist/web-shell/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff
npm notice 13.6kB dist/web-shell/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2
npm notice 27.6kB dist/web-shell/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf
npm notice 8.8kB dist/web-shell/assets/kotlin-B5lbUyaz.js
npm notice 20.6kB dist/web-shell/assets/kusto-mebxcVVE.js
npm notice 11.5kB dist/web-shell/assets/laserwave-DUszq2jm.js
npm notice 59.4kB dist/web-shell/assets/latex-C-cWTeAZ.js
npm notice 35.8kB dist/web-shell/assets/layout-CNYaLpI5.js
npm notice 4.3kB dist/web-shell/assets/lean-XBlWyCtg.js
npm notice 102.5kB dist/web-shell/assets/less-BfCpw3nA.js
npm notice 9.9kB dist/web-shell/assets/light-plus-B7mTdjB0.js
npm notice 5.7kB dist/web-shell/assets/linear-DGGM2kcP.js
npm notice 17.2kB dist/web-shell/assets/liquid-D3W5UaiH.js
npm notice 3.0kB dist/web-shell/assets/log-Cc5clBb7.js
npm notice 3.2kB dist/web-shell/assets/logo-IuBKFhSY.js
npm notice 15.6kB dist/web-shell/assets/lua-CvWAzNxB.js
npm notice 12.9kB dist/web-shell/assets/luau-Du5NY7AG.js
npm notice 9.0kB dist/web-shell/assets/make-Bvotw-X0.js
npm notice 57.0kB dist/web-shell/assets/markdown-UIAJJxZW.js
npm notice 19.3kB dist/web-shell/assets/marko-z0MBrx5-.js
npm notice 18.6kB dist/web-shell/assets/material-theme-D5KoaKCx.js
npm notice 18.6kB dist/web-shell/assets/material-theme-darker-BfHTSMKl.js
npm notice 18.6kB dist/web-shell/assets/material-theme-lighter-B0m2ddpp.js
npm notice 18.6kB dist/web-shell/assets/material-theme-ocean-CyktbL80.js
npm notice 18.6kB dist/web-shell/assets/material-theme-palenight-Csfq5Kiy.js
npm notice 20.1kB dist/web-shell/assets/matlab-D9-PGadD.js
npm notice 19.7kB dist/web-shell/assets/mdc-DB_EDNY_.js
npm notice 140.4kB dist/web-shell/assets/mdx-sdHcTMYB.js
npm notice 33.1kB dist/web-shell/assets/mermaid-Ci6OQyBP.js
npm notice 619.3kB dist/web-shell/assets/mermaid.core-ByoxnWut.js
npm notice 6.3kB dist/web-shell/assets/min-dark-CafNBF8u.js
npm notice 7.0kB dist/web-shell/assets/min-light-CTRr51gU.js
npm notice 23.4kB dist/web-shell/assets/mindmap-definition-RKZ34NQL-C0ZseHsi.js
npm notice 3.4kB dist/web-shell/assets/mipsasm-BC5c_5Pe.js
npm notice 72.6kB dist/web-shell/assets/mojo-Tz6hzZYG.js
npm notice 7.9kB dist/web-shell/assets/monokai-D4h5O-jR.js
npm notice 20.2kB dist/web-shell/assets/move-DB_GagMm.js
npm notice 3.7kB dist/web-shell/assets/narrat-DLbgOhZU.js
npm notice 4.0kB dist/web-shell/assets/nextflow-B0XVJmRM.js
npm notice 35.7kB dist/web-shell/assets/nginx-D_VnBJ67.js
npm notice 28.9kB dist/web-shell/assets/night-owl-C39BiMTA.js
npm notice 23.6kB dist/web-shell/assets/nim-ZlGxZxc3.js
npm notice 15.6kB dist/web-shell/assets/nix-shcSOmrb.js
npm notice 26.7kB dist/web-shell/assets/nord-Ddv68eIx.js
npm notice 19.7kB dist/web-shell/assets/nushell-D4Tzg5kh.js
npm notice 107.8kB dist/web-shell/assets/objective-c-Deuh7S70.js
npm notice 175.6kB dist/web-shell/assets/objective-cpp-BUEGK8hf.js
npm notice 65.9kB dist/web-shell/assets/ocaml-BNioltXt.js
npm notice 33.7kB dist/web-shell/assets/one-dark-pro-GBQ2dnAY.js
npm notice 25.3kB dist/web-shell/assets/one-light-PoHY5YXO.js
npm notice 1.2kB dist/web-shell/assets/ordinal-Cboi1Yqb.js
npm notice 4.2kB dist/web-shell/assets/pascal-JqZropPD.js
npm notice 44.5kB dist/web-shell/assets/perl-CHQXSrWU.js
npm notice 113.8kB dist/web-shell/assets/php-B5ebYQev.js
npm notice 5.3kB dist/web-shell/assets/pieDiagram-4H26LBE5-MQXNhl5A.js
npm notice 9.3kB dist/web-shell/assets/plastic-3e1v2bzS.js
npm notice 8.6kB dist/web-shell/assets/plsql-LKU2TuZ1.js
npm notice 3.4kB dist/web-shell/assets/po-BFLt1xDp.js
npm notice 33.5kB dist/web-shell/assets/poimandres-CS3Unz2-.js
npm notice 4.7kB dist/web-shell/assets/polar-DKykz6zU.js
npm notice 6.5kB dist/web-shell/assets/postcss-B3ZDOciz.js
npm notice 5.9kB dist/web-shell/assets/powerquery-CSHBycmS.js
npm notice 22.3kB dist/web-shell/assets/powershell-BIEUsx6d.js
npm notice 6.4kB dist/web-shell/assets/prisma-B48N-Iqd.js
npm notice 11.4kB dist/web-shell/assets/prolog-BY-TUvya.js
npm notice 6.6kB dist/web-shell/assets/proto-zocC4JxJ.js
npm notice 14.9kB dist/web-shell/assets/pug-CM9l7STV.js
npm notice 11.7kB dist/web-shell/assets/puppet-Cza_XSSt.js
npm notice 17.1kB dist/web-shell/assets/purescript-Bg-kzb6g.js
npm notice 73.5kB dist/web-shell/assets/python-DhUJRlN_.js
npm notice 5.4kB dist/web-shell/assets/qml-D8XfuvdV.js
npm notice 1.0kB dist/web-shell/assets/qmldir-C8lEn-DE.js
npm notice 7.8kB dist/web-shell/assets/qss-DhMKtDLN.js
npm notice 34.5kB dist/web-shell/assets/quadrantDiagram-W4KKPZXB-DIR4ee2A.js
npm notice 36.9kB dist/web-shell/assets/r-CwjWoCRV.js
npm notice 97.6kB dist/web-shell/assets/racket-CzouJOBO.js
npm notice 10.6kB dist/web-shell/assets/raku-B1bQXN8T.js
npm notice 25.8kB dist/web-shell/assets/razor-CNLDkMZG.js
npm notice 6.3kB dist/web-shell/assets/red-bN70gL4F.js
npm notice 2.4kB dist/web-shell/assets/reg-5LuOXUq_.js
npm notice 8.1kB dist/web-shell/assets/regexp-DWJ3fJO_.js
npm notice 3.4kB dist/web-shell/assets/rel-DJlmqQ1C.js
npm notice 31.2kB dist/web-shell/assets/requirementDiagram-4Y6WPE33-BTR0UdYQ.js
npm notice 7.7kB dist/web-shell/assets/riscv-QhoSD0DR.js
npm notice 21.8kB dist/web-shell/assets/rose-pine-CmCqftbK.js
npm notice 21.8kB dist/web-shell/assets/rose-pine-dawn-Ds-gbosJ.js
npm notice 21.8kB dist/web-shell/assets/rose-pine-moon-CjDtw9vr.js
npm notice 10.6kB dist/web-shell/assets/rst-4NLicBqY.js
npm notice 51.5kB dist/web-shell/assets/ruby-DeZ3UC14.js
npm notice 17.6kB dist/web-shell/assets/rust-Be6lgOlo.js
npm notice 23.4kB dist/web-shell/assets/sankeyDiagram-5OEKKPKP-sfnhMELN.js
npm notice 9.8kB dist/web-shell/assets/sas-BmTFh92c.js
npm notice 9.4kB dist/web-shell/assets/sass-BJ4Li9vH.js
npm notice 30.5kB dist/web-shell/assets/scala-DQVVAn-B.js
npm notice 8.7kB dist/web-shell/assets/scheme-BJGe-b2p.js
npm notice 28.1kB dist/web-shell/assets/scss-C31hgJw-.js
npm notice 5.1kB dist/web-shell/assets/sdbl-BLhTXw86.js
npm notice 117.3kB dist/web-shell/assets/sequenceDiagram-3UESZ5HK-DXczHOHH.js
npm notice 6.3kB dist/web-shell/assets/shaderlab-B7qAK45m.js
npm notice 42.7kB dist/web-shell/assets/shellscript-atvbtKCR.js
npm notice 719B dist/web-shell/assets/shellsession-C_rIy8kc.js
npm notice 9.1kB dist/web-shell/assets/slack-dark-BthQWCQV.js
npm notice 9.4kB dist/web-shell/assets/slack-ochin-DqwNpetd.js
npm notice 4.2kB dist/web-shell/assets/smalltalk-DkLiglaE.js
npm notice 20.8kB dist/web-shell/assets/snazzy-light-Bw305WKR.js
npm notice 6.8kB dist/web-shell/assets/solarized-dark-DXbdFlpD.js
npm notice 6.5kB dist/web-shell/assets/solarized-light-L9t79GZl.js
npm notice 16.2kB dist/web-shell/assets/solidity-C1w2a3ep.js
npm notice 7.0kB dist/web-shell/assets/soy-C-lX7w71.js
npm notice 1.5kB dist/web-shell/assets/sparql-bYkjHRlG.js
npm notice 3.9kB dist/web-shell/assets/splunk-Cf8iN4DR.js
npm notice 24.3kB dist/web-shell/assets/sql-COK4E0Yg.js
npm notice 3.6kB dist/web-shell/assets/ssh-config-BknIz3MU.js
npm notice 61.0kB dist/web-shell/assets/stata-DorPZHa4.js
npm notice 10.4kB dist/web-shell/assets/stateDiagram-AJRCARHV-DdE_KQFH.js
npm notice 391B dist/web-shell/assets/stateDiagram-v2-BHNVJYJU-BHUSEndU.js
npm notice 31.6kB dist/web-shell/assets/stylus-BeQkCIfX.js
npm notice 16.9kB dist/web-shell/assets/svelte-MSaWC3Je.js
npm notice 91.0kB dist/web-shell/assets/swift-BSxZ-RaX.js
npm notice 14.0kB dist/web-shell/assets/synthwave-84-CbfX1IO0.js
npm notice 26.8kB dist/web-shell/assets/system-verilog-C7L56vO4.js
npm notice 8.0kB dist/web-shell/assets/systemd-CUnW07Te.js
npm notice 6.7kB dist/web-shell/assets/talonscript-C1XDQQGZ.js
npm notice 3.4kB dist/web-shell/assets/tasl-CQjiPCtT.js
npm notice 5.0kB dist/web-shell/assets/tcl-DQ1-QYvQ.js
npm notice 24.0kB dist/web-shell/assets/templ-dwX3ZSMB.js
npm notice 13.4kB dist/web-shell/assets/terraform-BbSNqyBO.js
npm notice 9.4kB dist/web-shell/assets/tex-rYs2v40G.js
npm notice 31.4kB dist/web-shell/assets/timeline-definition-PNZ67QCA-DIc61uE8.js
npm notice 34.4kB dist/web-shell/assets/tokyo-night-DBQeEorK.js
npm notice 6.5kB dist/web-shell/assets/toml-CB2ApiWb.js
npm notice 9.2kB dist/web-shell/assets/ts-tags-CipyTH0X.js
npm notice 739B dist/web-shell/assets/tsv-B_m7g4N7.js
npm notice 198.8kB dist/web-shell/assets/tsx-B6W0miNI.js
npm notice 3.7kB dist/web-shell/assets/turtle-BMR_PYu6.js
npm notice 23.0kB dist/web-shell/assets/twig-NC5TFiHP.js
npm notice 209.0kB dist/web-shell/assets/typescript-Dj6nwHGl.js
npm notice 28.2kB dist/web-shell/assets/typespec-BpWG_bgh.js
npm notice 8.6kB dist/web-shell/assets/typst-BVUVsWT6.js
npm notice 13.7kB dist/web-shell/assets/v-CAQ2eGtk.js
npm notice 3.4kB dist/web-shell/assets/vala-BFOHcciG.js
npm notice 6.3kB dist/web-shell/assets/vb-CdO5JTpU.js
npm notice 41.8kB dist/web-shell/assets/vennDiagram-CIIHVFJN-BF7ODmxB.js
npm notice 5.9kB dist/web-shell/assets/verilog-CJaU5se_.js
npm notice 12.7kB dist/web-shell/assets/vesper-BEBZ7ncR.js
npm notice 23.8kB dist/web-shell/assets/vhdl-DYoNaHQp.js
npm notice 21.0kB dist/web-shell/assets/viml-m4uW47V2.js
npm notice 13.7kB dist/web-shell/assets/vitesse-black-Bkuqu6BP.js
npm notice 13.8kB dist/web-shell/assets/vitesse-dark-D0r3Knsf.js
npm notice 13.6kB dist/web-shell/assets/vitesse-light-CVO1_9PV.js
npm notice 21.5kB dist/web-shell/assets/vue-BuYVFjOK.js
npm notice 8.7kB dist/web-shell/assets/vue-html-xdeiXROB.js
npm notice 78.2kB dist/web-shell/assets/vyper-nyqBNV6O.js
npm notice 615.3kB dist/web-shell/assets/wardley-L42UT6IY-3pc1MEaw.js
npm notice 26.1kB dist/web-shell/assets/wardleyDiagram-YWT4CUSO-9jnPcZuP.js
npm notice 15.9kB dist/web-shell/assets/wasm-C6j12Q_x.js
npm notice 622.3kB dist/web-shell/assets/wasm-CG6Dc4jp.js
npm notice 2.2kB dist/web-shell/assets/wenyan-7A4Fjokl.js
npm notice 6.5kB dist/web-shell/assets/wgsl-CB0Krxn9.js
npm notice 56.6kB dist/web-shell/assets/wikitext-DCE3LsBG.js
npm notice 268.6kB dist/web-shell/assets/wolfram-C3FkfJm5.js
npm notice 5.4kB dist/web-shell/assets/xml-e3z08dGr.js
npm notice 1.4kB dist/web-shell/assets/xsl-Dd0NUgwM.js
npm notice 40.4kB dist/web-shell/assets/xychartDiagram-2RQKCTM6-DcthaZK6.js
npm notice 10.8kB dist/web-shell/assets/yaml-CVw76BM1.js
npm notice 4.4kB dist/web-shell/assets/zenscript-HnGAYVZD.js
npm notice 5.5kB dist/web-shell/assets/zig-BVz_zdnA.js
npm notice 1.1kB dist/web-shell/index.html
npm notice 8.7kB package.json
npm notice 990B scripts/cli-entry.js
npm notice Bundled Dependencies
npm notice dom-accessibility-api
npm notice @alcalzone/ansi-tokenize
npm notice @babel/code-frame
npm notice @babel/helper-validator-identifier
npm notice @babel/runtime
npm notice @kwsites/file-exists
npm notice @kwsites/promise-deferred
npm notice @lydell/node-pty-linux-x64
npm notice @lydell/node-pty
npm notice @testing-library/dom
npm notice @types/aria-query
npm notice ansi-escapes
npm notice ansi-regex
npm notice aria-query
npm notice auto-bind
npm notice cli-cursor
npm notice code-excerpt
npm notice convert-to-spaces
npm notice debug
npm notice dequal
npm notice environment
npm notice es-toolkit
npm notice get-east-asian-width
npm notice indent-string
npm notice ink
npm notice lz-string
npm notice mimic-fn
npm notice onetime
npm notice patch-console
npm notice picocolors
npm notice react-reconciler
npm notice restore-cursor
npm notice scheduler
npm notice stack-utils
npm notice strip-ansi
npm notice tagged-tag
npm notice terminal-size
npm notice ws
npm notice yoga-layout
npm notice ms
npm notice simple-git
npm notice Tarball Details
npm notice name: @qwen-code/qwen-code
npm notice version: 0.19.2
npm notice filename: qwen-code-qwen-code-0.19.2.tgz
npm notice package size: 23.9 MB
npm notice unpacked size: 91.2 MB
npm notice shasum: f5c38e810d6b7832888a73950d0a97118b79d473
npm notice integrity: sha512-13Y9KUdIbjjqw[...]t0np3ekhHtMRg==
npm notice bundled deps: 41
npm notice bundled files: 0
npm notice own files: 4940
npm notice total files: 4940
npm notice
qwen-code-qwen-code-0.19.2.tgz
==> Starting check()...

> @qwen-code/acp-bridge@0.19.2 test
> vitest run --exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts


 RUN  v3.2.4 /startdir/src/qwen-code/packages/acp-bridge

 ✓ src/compactionEngine.test.ts (40 tests) 23ms
 ✓ src/eventBus.test.ts (29 tests) 110ms
permissionMediator: consensus request req-1 for session sess-1 requires unanimity (votersAtIssue.size=2, default quorum=floor(M/2)+1=2); split votes will only resolve via permissionTimeoutMs (5000ms). This breadcrumb fires once per mediator lifetime; subsequent unanimity-required requests are silent.
qwen serve: permission req-1 (session sess-1) timed out after 5000ms
qwen serve: permission req-1 (session sess-1): vote rejected (designated_mismatch (voter is not the prompt originator)) by client "client_B"
qwen serve: permission req-1 (session sess-1): vote rejected (designated_mismatch (voter not in consensus votersAtIssue snapshot)) by client <anonymous>
permissionMediator: consensus request req-1 for session sess-1 requires unanimity (votersAtIssue.size=2, default quorum=floor(M/2)+1=2); split votes will only resolve via permissionTimeoutMs (5000ms). This breadcrumb fires once per mediator lifetime; subsequent unanimity-required requests are silent.
qwen serve: permission req-1 (session sess-1): vote rejected (designated_mismatch (voter not in consensus votersAtIssue snapshot)) by client "client_late_join"
qwen serve: permission req-1 (session sess-1) timed out after 5000ms
permissionMediator: consensusQuorum override 100 capped to 3 (votersAtIssue.size=3) for request req-1 session sess-1
qwen serve: permission req-1 (session sess-1): vote rejected (remote_not_allowed (local-only policy; vote not from loopback)) by client "client_A"
permissionMediator: emit failed for session="sess-1" type="permission_resolved": Error: bus closed during shutdown
permissionMediator: emit failed for session="sess-1" type="permission_already_resolved": Error: bus closed during shutdown
permissionMediator: audit publisher threw: Error: audit ring full
permissionMediator: audit publisher threw: Error: audit ring full
permissionMediator: audit publisher threw: Error: audit publisher transient error
permissionMediator: audit publisher threw: Error: audit publisher transient error
qwen serve: permission req-1 (session sess-1) timed out after 5000ms
permissionMediator: audit publisher threw: Error: audit publisher transient error
 ✓ src/permissionMediator.test.ts (40 tests) 65ms
a2ui: dropping command with unrecognized shape (version,noop)
 ✓ src/a2uiExtraction.test.ts (14 tests) 8ms
[mid-turn] session=sess:drain drained=2 injected into running turn
[mid-turn] session=sess:multi drained=2 originator=client-1 injected into running turn
[mid-turn] session=sess:multi drained=1 originator=client-2 injected into running turn
 ✓ src/bridgeClient.test.ts (23 tests) 32ms
 ✓ src/status.test.ts (17 tests) 10ms
 ✓ src/spawnChannel.test.ts (24 tests) 14ms
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
 ✓ src/inMemoryChannel.test.ts (8 tests) 120ms
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, 1 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
sendPrompt: forward failed for session sess:/work/a: temporary failure
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a (latch already set)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
sendPrompt: forward failed for session sess:/work/a: forward boom
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: closing session "sess:/work/a" (reason: client_close) by client "client_aaf133fc-b213-4d95-8fed-e20f672ec9cd"
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: updated session metadata "sess:/work/a" displayName=set by client "client_73aec7c1-7cb4-458a-a724-84c2883b64e4"
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
sendPrompt: forward failed for session sess:/work/a: first prompt failed
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
sendPrompt: forward failed for session sess:/work/a: first prompt boom
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: legacy permission vote "does-not-exist" has no live session (peek returned undefined); returning 404.
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: legacy permission vote "does-not-exist" has no live session (peek returned undefined); returning 404.
qwen serve: legacy permission vote "does-not-exist" has no live session (peek returned undefined); returning 404.
qwen serve: legacy permission vote "does-not-exist" has no live session (peek returned undefined); returning 404.
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[reconcile] session=sess:/work/a target=model action=skipped reason=roundtrip_failed
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[reconcile] session=sess:/work/a target=model action=skipped reason=roundtrip_failed
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, 1 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[reconcile] session=sess:/work/a target=model action=skipped reason=roundtrip_failed
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[reconcile] session=sess:/work/a target=model action=skipped reason=roundtrip_failed
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, 1 session(s) torn down)
sendPrompt: forward failed for session stuck:/work/a: agent channel closed mid-request (session stuck:/work/a)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[reconcile] session=sess:/work/a target=approvalMode action=skipped reason=roundtrip_failed
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
sendPrompt: forward failed for session sess:/work/a: Internal error
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: dropping mcp guardrail extNotification for tombstoned session "sess:/work/a" (post-close stale event)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: WARNING aliveChannels.size=3 (expected 1, max 2 during killSession-then-spawnOrAttach overlap) — possible channel leak; check that prior channels' channel.exited fired and the handler ran cleanup.
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[demux] session=sess:/work/a type=current_model_update action=promoted model=qwen-max
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[demux] session=sess:/work/a type=current_model_update action=suppressed reason=bridge_roundtrip_in_flight
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[demux] session=nonexistent-session type=current_model_update action=dropped reason=no_entry
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[demux] session=sess:/work/a type=current_model_update action=promoted model=qwen-max
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[demux] session=sess:/work/a type=prompt_suggestion action=dropped reason=malformed
[demux] session=sess:/work/a type=prompt_suggestion action=dropped reason=malformed
[demux] session=<missing> type=prompt_suggestion action=dropped reason=malformed
[demux] session=sess:/work/a type=prompt_suggestion action=dropped reason=malformed
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, 3 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: updated session metadata "sess:/work/a" displayName=set
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve debug: rejected permission vote "2b25df9f-0742-47f9-bce9-a6728a551429" for session "sess:/work/a#2"; request belongs to session "sess:/work/a".
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[demux] session=sess:/work/a type=current_mode_update action=promoted mode=auto-edit
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[demux] session=sess:/work/a type=current_mode_update action=suppressed reason=bridge_roundtrip_in_flight
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[demux] session=sess:/work/a type=current_model_update action=promoted model=qwen-max
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[demux] session=sess:/work/a type=current_mode_update action=dropped reason=unknown_mode mode=totally-bogus
[demux] session=sess:/work/a type=current_model_update action=promoted model=qwen-max
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[demux] session=sess:/work/a type=current_mode_update action=promoted mode=auto-edit
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[demux] session=sess:/work/a type=current_mode_update action=promoted mode=auto-edit legacy_frame=skipped
[demux] session=sess:/work/a type=current_model_update action=promoted model=qwen-max
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[demux] session=sess:/work/a type=current_model_update action=promoted model=qwen-turbo
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[demux] session=sess:/work/a type=current_mode_update action=promoted mode=auto-edit
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[demux] session=sess:/work/a type=current_model_update action=promoted model=qwen-turbo
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[demux] session=sess:/work/a type=current_model_update action=promoted model=qwen-turbo
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[reconcile] session=sess:/work/a target=model action=corrected cached=qwen-max actual=qwen-turbo
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[reconcile] session=sess:/work/a target=model action=failed error=[object Object]
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[reconcile] session=sess:/work/a target=model action=skipped reason=roundtrip_failed
[demux] session=sess:/work/a type=current_model_update action=dropped reason=no_entry
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[reconcile] session=sess:/work/a target=model action=skipped reason=generation_changed genBefore=1 genAfter=2
[reconcile] session=sess:/work/a target=model action=corrected cached=qwen-plus actual=qwen-turbo
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[reconcile] session=sess:/work/a target=approvalMode action=corrected cached=yolo actual=plan
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[reconcile] session=sess:/work/a target=approvalMode action=skipped reason=roundtrip_failed
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[reconcile] session=sess:/work/a target=approvalMode action=dropped reason=unknown_mode mode=super-yolo
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: closing session "sess:/work/a#2" (reason: client_close)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: idle timeout (5000ms) expired, killing channel
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: closing session "sess:/work/a#2" (reason: client_close)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: idle timeout (5000ms) expired, killing channel
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 1000ms, idle threshold 5000ms)
qwen serve: reaping idle session "sess:/work/a" (idle for 5s, threshold 5s)
qwen serve: closing session "sess:/work/a" (reason: idle_timeout)
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 1000ms, idle threshold 2000ms)
sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a)
qwen serve: session reaper started (interval 1000ms, idle threshold 2000ms)
qwen serve: reaping idle session "sess:/work/a" (idle for 6s, threshold 2s)
qwen serve: closing session "sess:/work/a" (reason: idle_timeout)
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 1000ms, idle threshold 2000ms)
sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a)
qwen serve: session reaper disabled
qwen serve: session reaper disabled
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: closing session "sess:/work/a" (reason: idle_timeout)
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 1000ms, idle threshold 3000ms)
qwen serve: reaping idle session "sess:/work/a" (idle for 3s, threshold 3s)
qwen serve: closing session "sess:/work/a" (reason: idle_timeout)
qwen serve: reaping idle session "sess:/work/a#2" (idle for 3s, threshold 3s)
qwen serve: closing session "sess:/work/a#2" (reason: idle_timeout)
qwen serve: reaping idle session "sess:/work/a#3" (idle for 3s, threshold 3s)
qwen serve: closing session "sess:/work/a#3" (reason: idle_timeout)
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 1000ms, idle threshold 5000ms)
qwen serve: reaping idle session "sess:/work/a" (idle for 5s, threshold 5s)
qwen serve: closing session "sess:/work/a" (reason: idle_timeout)
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 1000ms, idle threshold 2000ms)
qwen serve: session reaper started (interval 1000ms, idle threshold 3000ms)
qwen serve: closing session "sess:/work/a" (reason: last_client_detached)
qwen serve: idle timeout (2000ms) expired, killing channel
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper disabled
qwen serve: closing session "sess:/work/a" (reason: last_client_detached)
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper disabled
qwen serve: closing session "sess:/work/a" (reason: last_client_detached)
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper disabled
qwen serve: closing session "sess:/work/a" (reason: last_client_detached)
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: closing session "sess:/work/a" (reason: client_close)
sendPrompt: forward failed for session sess:/work/a: cancelled
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down)
sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, 1 session(s) torn down)
sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, 1 session(s) torn down)
sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[mid-turn] session=sess:/work/a rejected: session idle; browser keeps it for next turn
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[mid-turn] session=sess:/work/a dropped 1 undrained message(s) at idle; browser resends next turn
[mid-turn] session=sess:/work/a rejected: session idle; browser keeps it for next turn
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[mid-turn] session=sess:/work/a rejected: empty message; browser keeps it for next turn
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[mid-turn] session=sess:/work/a drained=2 injected into running turn
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[mid-turn] session=sess:/work/a dropped 1 undrained message(s) at idle; browser resends next turn
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[mid-turn] session=sess:/work/a drained=1 injected into running turn
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[mid-turn] session=sess:/work/a drained=1 originator=client_f5e63556-ac1c-420d-ad4b-022c6a80e262 injected into running turn
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[mid-turn] session=sess:/work/a rejected: queue full (depth 20 >= 20); browser keeps it for next turn
[mid-turn] session=sess:/work/a dropped 20 undrained message(s) at idle; browser resends next turn
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[mid-turn] session=sess:/work/a drained=1 injected into running turn
 ✓ src/bridge.test.ts (296 tests) 3184ms

 Test Files  9 passed (9)
      Tests  491 passed (491)
   Start at  12:20:45
   Duration  14.46s (transform 9.85s, setup 0ms, collect 46.10s, tests 3.57s, environment 2ms, prepare 1.72s)


> @qwen-code/audio-capture@0.19.2 test
> vitest run --exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts


 RUN  v3.2.4 /startdir/src/qwen-code/packages/audio-capture

 ✓ src/platform.test.ts (2 tests) 4ms

 Test Files  1 passed (1)
      Tests  2 passed (2)
   Start at  12:21:00
   Duration  1.28s (transform 80ms, setup 0ms, collect 84ms, tests 4ms, environment 0ms, prepare 141ms)


> @qwen-code/qwen-code@0.19.2 test
> vitest run --exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts


 RUN  v3.2.4 /startdir/src/qwen-code/packages/cli
      Coverage enabled with v8

 ✓ src/serve/auth/device-flow.test.ts (47 tests) 35ms
(node:3244) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 end listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
(node:3244) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 end listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(node:3244) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 finish listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(node:3244) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 error listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(node:3244) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 close listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(node:3244) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 drain listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(node:3244) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 finish listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(node:3244) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 error listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(node:3244) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 close listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(node:3244) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 data listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
qwen serve: ignoring invalid QWEN_SERVE_MCP_CLIENT_BUDGET='0x10' (expected positive integer); MCP budget enforcement disabled for this child.
qwen serve: ignoring invalid QWEN_SERVE_MCP_CLIENT_BUDGET='1e2' (expected positive integer); MCP budget enforcement disabled for this child.
qwen serve: ignoring invalid QWEN_SERVE_MCP_CLIENT_BUDGET='1.0' (expected positive integer); MCP budget enforcement disabled for this child.
qwen serve: ignoring invalid QWEN_SERVE_MCP_CLIENT_BUDGET='0b101' (expected positive integer); MCP budget enforcement disabled for this child.
qwen serve: ignoring invalid QWEN_SERVE_MCP_CLIENT_BUDGET='5 abc' (expected positive integer); MCP budget enforcement disabled for this child.
qwen serve: ignoring invalid QWEN_SERVE_MCP_CLIENT_BUDGET='abc' (expected positive integer); MCP budget enforcement disabled for this child.
qwen serve: ignoring invalid QWEN_SERVE_MCP_CLIENT_BUDGET='-5' (expected positive integer); MCP budget enforcement disabled for this child.
qwen serve: ignoring invalid QWEN_SERVE_MCP_CLIENT_BUDGET='0' (expected positive integer); MCP budget enforcement disabled for this child.
qwen serve: ignoring invalid QWEN_SERVE_MCP_CLIENT_BUDGET=' ' (expected positive integer); MCP budget enforcement disabled for this child.
 ✓ src/acp-integration/acpAgent.test.ts (155 tests) 7860ms
 ✓ src/services/insight/generators/DataProcessor.test.ts (45 tests) 81ms
 ✓ src/utils/modelConfigUtils.test.ts (54 tests) 144ms
 ✓ src/ui/hooks/atCommandProcessor.test.ts (57 tests) 956ms
 ✓ src/ui/components/shared/text-buffer.test.ts (158 tests) 332ms
qwen serve: fast-path bootstrap failed, falling back to full startup: Failed to read serve fast path settings from /tmp/qws-fast-path-home-houURU/settings.json: Expected property name or '}' in JSON at position 1 (line 1 column 2)
qwen serve: fast-path bootstrap failed, falling back to full startup: Serve fast path settings advanced.excludedEnvVars must be a string array.
qwen serve: fast-path bootstrap failed, falling back to full startup: Serve fast path settings advanced.runtimeOutputDir must be a string.
qwen serve: fast-path bootstrap failed, falling back to full startup: Serve fast path settings security.folderTrust.enabled must be a boolean.
 ✓ src/serve/fast-path.test.ts (56 tests) 163ms
 ✓ src/ui/hooks/vim.test.ts (132 tests) 1764ms
 ✓ src/config/settings.test.ts (144 tests) 219ms
 ✓ src/serve/fs/workspace-file-system.test.ts (78 tests) 1278ms
 ✓ src/ui/contexts/KeypressContext.test.tsx (93 tests) 1748ms
   ✓ KeypressContext - Kitty Protocol > Enter key handling > auto-recovers from a stuck paste mode via idle timeout  1261ms
 ✓ src/ui/commands/exportCommand.test.ts (40 tests) 159ms
qwen serve: daemon log → /tmp/qws-dl-NhETaJ/debug/daemon/serve-3546-a2e682ac.log
qwen serve: createServeApp default fsFactory uses trusted=false — agent ACP writeTextFile calls will reject with untrusted_workspace. Inject deps.fsFactory (with explicit trust) or deps.bridge to override.
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: Web Shell index send failed: ENOENT: no such file or directory, stat '/tmp/qwen-webshell-UfNhmp/index.html'
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
 ✓ src/ui/hooks/slashCommandProcessor.test.ts (61 tests) 5056ms
   ✓ useSlashCommandProcessor > Initialization and Command Loading > rebuilds commands when an MCP server connects (surfaces MCP prompts in /)  324ms
   ✓ useSlashCommandProcessor > Initialization and Command Loading > ignores non-connected MCP status changes (no rebuild)  410ms
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve listening on http://127.0.0.1:35385 (mode=http-bridge, workspace=/tmp/qws-dl-NhETaJ)
qwen serve: bound to workspace "/tmp/qws-dl-NhETaJ"
qwen serve: startup timing: processToListenMs=53037 runQwenServeToListenMs=2572
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: daemon log → /tmp/qws-pt-t5dhaE/debug/daemon/serve-3546-6f4108c7.log
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-f073bac0.log
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-9dde9b28.log
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-bb7cb32a.log
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-d9d28d88.log
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-bd315bb3.log
qwen serve: daemon log → /tmp/qws-rt-GVaOhY/debug/daemon/serve-3546-0a8295ca.log
qwen serve: daemon log → /tmp/qws-rt-ICnh6G/debug/daemon/serve-3546-8052ae24.log
qwen serve: daemon log → /tmp/qws-rt-xyRV2d/debug/daemon/serve-3546-dc84c660.log
qwen serve: daemon log → /tmp/qws-rt-kwI726/debug/daemon/serve-3546-3300f0a0.log
qwen serve: daemon log → /tmp/qws-rt-72txDn/debug/daemon/serve-3546-f171e373.log
qwen serve: daemon log → /tmp/qws-rt-xzCtw8/debug/daemon/serve-3546-763505a7.log
qwen serve: daemon log → /tmp/qws-rt-fuvYW0/debug/daemon/serve-3546-7f5ecea4.log
qwen serve: daemon log → /tmp/qws-rt-Fn0cgB/debug/daemon/serve-3546-fbf38e93.log
qwen serve: daemon log → /tmp/qws-rt-3XIvZX/debug/daemon/serve-3546-8aa28488.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://127.0.0.1:41741 (mode=http-bridge, workspace=/tmp/qws-rt-3XIvZX)
qwen serve listening on http://127.0.0.1:35741 (mode=http-bridge, workspace=/tmp/qws-rt-TSgPhs)
qwen serve: bound to workspace "/tmp/qws-rt-3XIvZX"
qwen serve: startup timing: processToListenMs=53071 runQwenServeToListenMs=11
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: daemon log → /tmp/qws-rt-TSgPhs/debug/daemon/serve-3546-e290ffaf.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/tmp/qws-rt-TSgPhs"
qwen serve: startup timing: processToListenMs=53077 runQwenServeToListenMs=5
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve listening on http://127.0.0.1:39077 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-UqIXJ1)
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-2d5ae36a.log
qwen serve: bound to workspace "/tmp/qws-runtime-fail-UqIXJ1"
qwen serve: startup timing: processToListenMs=53079 runQwenServeToListenMs=1
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: runtime startup failed: runtime boom
qwen serve: extensions install: refreshed 1 session(s), 0 failed
2026-07-03T12:21:58.727Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:544:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15)
      at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103)
      at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:1589:15)
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-601a175e.log
qwen serve listening on http://127.0.0.1:44137 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-close-AdIrrI)
qwen serve: bound to workspace "/tmp/qws-runtime-fail-close-AdIrrI"
qwen serve: startup timing: processToListenMs=53110 runQwenServeToListenMs=1
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: runtime startup failed: runtime boom
2026-07-03T12:21:58.758Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:565:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15)
      at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103)
      at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:1589:15)
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-905c672f.log
qwen serve: bound to workspace "/tmp/qws-runtime-starting-route-0bJ3Zs"
qwen serve: startup timing: processToListenMs=53124 runQwenServeToListenMs=1
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve listening on http://127.0.0.1:37341 (mode=http-bridge, workspace=/tmp/qws-runtime-starting-route-0bJ3Zs)
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: runtime startup failed: Daemon runtime stopped before mounting.
2026-07-03T12:21:58.810Z [ERROR] [DAEMON] runtime startup failed
  Error: Daemon runtime stopped before mounting.
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:1957:17
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
      at waitForRuntimeStartingForShutdown (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:765:3)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:2122:17
qwen serve: daemon log → /tmp/qws-runtime-fail-log-UhUxET/debug/daemon/serve-3546-6e190d67.log
qwen serve: bound to workspace "/tmp/qws-runtime-fail-log-UhUxET"
qwen serve: startup timing: processToListenMs=53175 runQwenServeToListenMs=2
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: runtime startup failed: runtime boom
2026-07-03T12:21:58.823Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:728:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15)
      at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103)
      at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:1589:15)
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
qwen serve listening on http://127.0.0.1:34271 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-log-UhUxET)
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-9d2e7e57.log
qwen serve listening on http://127.0.0.1:33923 (mode=http-bridge, workspace=/tmp/qws-runtime-flush-pending-ydSFuP)
qwen serve: bound to workspace "/tmp/qws-runtime-flush-pending-ydSFuP"
qwen serve: startup timing: processToListenMs=53181 runQwenServeToListenMs=2
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-49f54bdf.log
qwen serve: bound to workspace "/tmp/qws-runtime-timeout-TpgQqu"
qwen serve: startup timing: processToListenMs=53191 runQwenServeToListenMs=1
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve listening on http://127.0.0.1:37417 (mode=http-bridge, workspace=/tmp/qws-runtime-timeout-TpgQqu)
qwen serve: runtime startup failed: Daemon runtime startup timed out after 1ms.
2026-07-03T12:21:58.838Z [ERROR] [DAEMON] runtime startup failed
  Error: Daemon runtime startup timed out after 1ms.
      at Timeout.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:1978:15)
      at listOnTimeout (node:internal/timers:605:17)
      at processTimers (node:internal/timers:541:7)
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-c9fd16e4.log
qwen serve: bound to workspace "/tmp/qws-runtime-fail-bmCNlW"
qwen serve: startup timing: processToListenMs=53259 runQwenServeToListenMs=6
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve listening on http://127.0.0.1:33515 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-bmCNlW)
qwen serve: runtime startup failed: runtime boom
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
2026-07-03T12:21:58.907Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:893:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15)
      at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103)
      at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:1589:15)
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-9bd4ef71.log
qwen serve listening on http://127.0.0.1:42081 (mode=http-bridge, workspace=/tmp/qws-runtime-partial-fail-mdFucw)
qwen serve: bound to workspace "/tmp/qws-runtime-partial-fail-mdFucw"
qwen serve: startup timing: processToListenMs=53370 runQwenServeToListenMs=1
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: runtime startup failed: runtime app boom
2026-07-03T12:21:59.018Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime app boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:1056:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15)
      at Object.createServeApp (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103)
      at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:1663:25)
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-50996914.log
qwen serve: bound to workspace "/tmp/qws-runtime-close-UKHiDl"
qwen serve: startup timing: processToListenMs=53400 runQwenServeToListenMs=1
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve listening on http://127.0.0.1:40183 (mode=http-bridge, workspace=/tmp/qws-runtime-close-UKHiDl)
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: runtime startup failed: Daemon runtime stopped before mounting.
2026-07-03T12:21:59.069Z [ERROR] [DAEMON] runtime startup failed
  Error: Daemon runtime stopped before mounting.
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:1957:17
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
      at waitForRuntimeStartingForShutdown (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:765:3)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:2122:17
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-4963c41f.log
qwen serve listening on http://127.0.0.1:38547 (mode=http-bridge, workspace=/tmp/qws-ws-79V2uV)
qwen serve: bound to workspace "/tmp/qws-ws-79V2uV"
qwen serve: startup timing: processToListenMs=53451 runQwenServeToListenMs=22
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-7a6671da.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://127.0.0.1:36827 (mode=http-bridge, workspace=/tmp/qws-ws-DSLCZM)
qwen serve listening on http://127.0.0.1:41405 (mode=http-bridge, workspace=/tmp/qws-ws-Igym1t)
qwen serve: bound to workspace "/tmp/qws-ws-DSLCZM"
qwen serve: startup timing: processToListenMs=53459 runQwenServeToListenMs=7
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-0a82679c.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/tmp/qws-ws-Igym1t"
qwen serve: startup timing: processToListenMs=53466 runQwenServeToListenMs=5
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-ce10d0af.log
qwen serve listening on http://127.0.0.1:41089 (mode=http-bridge, workspace=/tmp/qws-ws-XP3ICC)
qwen serve: bound to workspace "/tmp/qws-ws-XP3ICC"
qwen serve: startup timing: processToListenMs=53489 runQwenServeToListenMs=22
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-2f87955f.log
qwen serve listening on http://127.0.0.1:46859 (mode=http-bridge, workspace=/tmp/qws-ws-Dx8MGq)
qwen serve: bound to workspace "/tmp/qws-ws-Dx8MGq"
qwen serve: startup timing: processToListenMs=53496 runQwenServeToListenMs=4
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve listening on http://127.0.0.1:39421 (mode=http-bridge, workspace=/tmp/qws-startup-runtime-dir-e0lZMs)
qwen serve listening on http://127.0.0.1:42829 (mode=http-bridge, workspace=/tmp/qws-startup-log-dep-AIJYBp)
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve listening on http://127.0.0.1:44649 (mode=http-bridge, workspace=/tmp/qws-startup-storage-dir-kJXAO1)
qwen serve listening on http://127.0.0.1:36307 (mode=http-bridge, workspace=/tmp/qws-startup-preheat-dup3WV)
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-5e65c714.log
qwen serve: bound to workspace "/tmp/qws-startup-preheat-dup3WV"
qwen serve: startup timing: processToListenMs=53593 runQwenServeToListenMs=1
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
2026-07-03T12:21:59.248Z [INFO] [DAEMON] route=GET /daemon/status durationMs=1 status=200 request completed
2026-07-03T12:21:59.252Z [INFO] [DAEMON] route=GET /daemon/status durationMs=1 status=200 request completed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
2026-07-03T12:21:59.255Z [INFO] [DAEMON] route=GET /daemon/status durationMs=1 status=200 request completed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-8be448cd.log
qwen serve: bound to workspace "/tmp/qws-startup-preheat-BnRnob"
qwen serve: startup timing: processToListenMs=53617 runQwenServeToListenMs=1
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve listening on http://127.0.0.1:45259 (mode=http-bridge, workspace=/tmp/qws-startup-preheat-BnRnob)
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: ACP preheat failed, will retry on first session: preheat boom
2026-07-03T12:21:59.277Z [INFO] [DAEMON] route=GET /daemon/status durationMs=1 status=200 request completed
2026-07-03T12:21:59.283Z [INFO] [DAEMON] route=GET /daemon/status durationMs=0 status=200 request completed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
 ✓ src/serve/run-qwen-serve.test.ts (67 tests) 3231ms
   ✓ runQwenServe daemon logger wiring > creates a daemon log file at boot and flushes on shutdown  2581ms
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: background task failed: https://***REDACTED***@example.com/private-ext failed
qwen serve: extensions install: mutation succeeded but refresh failed: refresh broke
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions install: background task failed: Only GitHub, Git, and npm extension installs are supported over the daemon endpoint.
qwen serve: extensions install: background task failed: Install source not found: C:\Users\test\qwen-local-extension
qwen serve: extensions install: background task failed: --ref is not applicable for npm extensions.
qwen serve: extensions install: background task failed: --registry is only applicable for npm extensions.
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions enable: refreshed 1 session(s), 0 failed
qwen serve: extensions disable: refreshed 1 session(s), 0 failed
 ✓ src/ui/commands/statsCommand.test.ts (36 tests) 445ms
qwen serve: extensions install: refreshed 1 session(s), 0 failed
qwen serve: extensions update: refreshed 1 session(s), 0 failed
 ✓ src/ui/hooks/useStatusLine.test.ts (67 tests) 7097ms
   ✓ useStatusLine > config validation > returns null when no statusLine config is set  6748ms
qwen serve: extensions update: background task failed: Extension "missing-ext" not found
qwen serve: extensions update: background task failed: Extension "test-ext" has no update
qwen serve: extensions update: background task failed: Update check failed for extension "test-ext": https://***REDACTED***@example.com/check failed
 ✓ src/ui/components/shared/vim-buffer-actions.test.ts (74 tests) 51ms
qwen serve: extensions uninstall: refreshed 1 session(s), 0 failed
qwen serve: extensions uninstall: refreshed 1 session(s), 0 failed
qwen serve: extensions uninstall: background task failed: Extension "plain-name" not found
qwen serve: extensions uninstall: background task failed: Extension "https://example.com/missing" not found
 ✓ src/services/FileCommandLoader.test.ts (40 tests) 191ms
 ✓ src/nonInteractive/io/BaseJsonOutputAdapter.test.ts (96 tests) 64ms
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: workspace_mismatch (POST /session): daemon bound to "/work/bound", rejected "/work/different"
qwen serve: bridge error (POST /session): Error: boom
    at spawnImpl (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:5010:17)
    at Object.spawnOrAttach (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:1079:28)
    at /startdir/src/qwen-code/packages/cli/src/serve/server.ts:3011:36
    at Layer.handleRequest (/startdir/src/qwen-code/node_modules/router/lib/layer.js:152:17)
    at next (/startdir/src/qwen-code/node_modules/router/lib/route.js:157:13)
    at passthrough (/startdir/src/qwen-code/packages/cli/src/serve/auth.ts:401:8)
    at Layer.handleRequest (/startdir/src/qwen-code/node_modules/router/lib/layer.js:152:17)
    at next (/startdir/src/qwen-code/node_modules/router/lib/route.js:157:13)
    at Route.dispatch (/startdir/src/qwen-code/node_modules/router/lib/route.js:117:3)
    at handle (/startdir/src/qwen-code/node_modules/router/index.js:435:11)
qwen serve: DELETE /workspace/agents/"partial-target" partial — removed=project remaining=user:/tmp/qwen-serve-agents-hc7k01/global/agents/partial-target.md
 ✓ src/nonInteractiveCli.test.ts (56 tests | 1 skipped) 1007ms
qwen serve: workspace_mismatch (POST /session): daemon bound to "/work/bound", rejected "/work/different"
 ✓ src/serve/workspace-agents.test.ts (38 tests) 466ms
 ✓ src/ui/commands/modelCommand.test.ts (36 tests) 142ms
 ✓ src/utils/settingsUtils.test.ts (78 tests) 56ms
qwen serve: bridge error (POST /session/:id/language session=session-A): Error: unexpected failure
    at setLanguageImpl (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:6764:17)
    at Object.setSessionLanguage (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:1233:14)
    at /startdir/src/qwen-code/packages/cli/src/serve/server.ts:4132:37
    at Layer.handleRequest (/startdir/src/qwen-code/node_modules/router/lib/layer.js:152:17)
    at next (/startdir/src/qwen-code/node_modules/router/lib/route.js:157:13)
    at passthrough (/startdir/src/qwen-code/packages/cli/src/serve/auth.ts:401:8)
    at Layer.handleRequest (/startdir/src/qwen-code/node_modules/router/lib/layer.js:152:17)
    at next (/startdir/src/qwen-code/node_modules/router/lib/route.js:157:13)
    at Route.dispatch (/startdir/src/qwen-code/node_modules/router/lib/route.js:117:3)
    at handle (/startdir/src/qwen-code/node_modules/router/index.js:435:11)
qwen serve: getEnvStatus failed: provider boom
qwen serve: getDaemonPreflightCells failed: daemon cells boom
qwen serve: refreshExtensionsForAllSessions failed: refreshExtensionsForAllSessions is not wired
qwen serve: refreshExtensionsForAllSessions failed: bridge down
qwen serve: skipping malformed pool restart entry (server=pool-srv): null
qwen serve: skipping malformed pool restart entry (server=pool-srv): "not-an-object"
 ✓ src/ui/commands/doctorCommand.test.ts (37 tests) 229ms
 ✓ src/serve/workspace-service/__tests__/facade.test.ts (44 tests) 86ms
qwen serve: closeSession failed for "aaaabbbb-cccc-dddd-eeee-ffffaaaabbbb": "Client id \"bad-client\" is not registered for session aaaabbbb-cccc-dddd-eeee-ff
qwen serve: closeSession failed for "s-1": "bridge exploded"
qwen serve: closeSession failed for "aaaa3333-bbbb-cccc-dddd-eeeeeeeeeeee": "agent busy"
qwen serve: closeSession failed for "eeee1111-bbbb-cccc-dddd-eeeeeeeeeeee": "Client id \"bad-client\" is not registered for session eeee1111-bbbb-cccc-dddd-ee
qwen serve: failed to batch delete sessions: "disk on fire"
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
 ✓ src/ui/hooks/useGeminiStream.test.tsx (141 tests) 3831ms
qwen serve: /health deep probe failed: bridge wedged
 ✓ src/ui/components/SettingsDialog.test.tsx (53 tests) 10934ms
   ✓ SettingsDialog > Settings Navigation > should navigate down with arrow key  327ms
   ✓ SettingsDialog > Settings Toggling > should toggle setting with Enter key  347ms
   ✓ SettingsDialog > Settings Toggling > should sync compact mode with CompactModeContext when toggled  1549ms
   ✓ SettingsDialog > Complex State Management > should handle scrolling when there are many settings  551ms
   ✓ SettingsDialog > Output Language > treats empty output language as auto  381ms
   ✓ SettingsDialog > Keyboard Shortcuts Edge Cases > should properly handle Tab navigation between sections  333ms
   ✓ SettingsDialog > Complex User Interactions > should allow changing multiple settings without losing pending changes  351ms
   ✓ SettingsDialog > String Settings Editing > should allow editing and committing a string setting  1234ms
qwen serve: --allow-origin: * (WARNING: `*` admits any cross-origin browser — bearer token gates API routes; /health and /demo remain pre-auth on loopback unless --require-auth is set)
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
 ✓ src/utils/nonInteractiveHelpers.test.ts (53 tests) 26ms
 ✓ src/nonInteractive/io/StreamJsonOutputAdapter.test.ts (50 tests) 48ms
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=60436 runQwenServeToListenMs=424
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve listening on http://127.0.0.1:36545 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://127.0.0.1:39233 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=60493 runQwenServeToListenMs=2
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
2026-07-03T12:22:05.783Z [INFO] [DAEMON] route=GET /capabilities durationMs=0 status=200 request completed
qwen serve: /acp connection established ed52f15a (loopback=true, active=1)
2026-07-03T12:22:05.812Z [INFO] [DAEMON] route=POST /acp durationMs=6 status=200 request completed
qwen serve listening on http://127.0.0.1:46389 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
2026-07-03T12:22:05.845Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed
qwen serve: /acp connection established e4fe7a60 (loopback=true, active=1)
2026-07-03T12:22:05.870Z [INFO] [DAEMON] route=POST /acp durationMs=2 status=200 request completed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=60650 runQwenServeToListenMs=1
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve listening on http://127.0.0.1:44931 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
2026-07-03T12:22:05.933Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://127.0.0.1:39719 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=60664 runQwenServeToListenMs=1
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
2026-07-03T12:22:05.947Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://127.0.0.1:36045 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=60677 runQwenServeToListenMs=2
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
2026-07-03T12:22:05.960Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=60691 runQwenServeToListenMs=1
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve listening on http://127.0.0.1:41397 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
2026-07-03T12:22:05.980Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=60715 runQwenServeToListenMs=1
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=60721 runQwenServeToListenMs=1
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve listening on http://127.0.0.1:35285 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve listening on http://127.0.0.1:33875 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=60727 runQwenServeToListenMs=2
qwen serve: --require-auth enabled (bearer token mandatory on every route, including loopback /health).
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve listening on http://127.0.0.1:34129 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: Web Shell UI is served WITHOUT auth on a non-loopback bind (the static shell has no secrets; the API stays token-gated). Pass --no-web to disable the UI.
qwen serve: without --allow-origin the Web Shell is read-only on a non-loopback bind — same-origin POSTs are blocked by CORS (403). Pass --allow-origin <origin> or front it with a same-origin proxy.
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=60738 runQwenServeToListenMs=1
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://0.0.0.0:33869 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve listening on http://127.0.0.1:45963 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=60744 runQwenServeToListenMs=1
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=60754 runQwenServeToListenMs=1
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve listening on http://127.0.0.1:41479 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=60779 runQwenServeToListenMs=3
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve listening on http://127.0.0.1:34989 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=60818 runQwenServeToListenMs=1
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://127.0.0.1:41675 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://Localhost:35835 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=60836 runQwenServeToListenMs=7
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=60844 runQwenServeToListenMs=1
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve listening on http://[::1]:34291 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: Web Shell UI is served WITHOUT auth on a non-loopback bind (the static shell has no secrets; the API stays token-gated). Pass --no-web to disable the UI.
qwen serve: without --allow-origin the Web Shell is read-only on a non-loopback bind — same-origin POSTs are blocked by CORS (403). Pass --allow-origin <origin> or front it with a same-origin proxy.
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=60871 runQwenServeToListenMs=1
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve listening on http://[::1]:43241 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: Web Shell UI is served WITHOUT auth on a non-loopback bind (the static shell has no secrets; the API stays token-gated). Pass --no-web to disable the UI.
qwen serve: without --allow-origin the Web Shell is read-only on a non-loopback bind — same-origin POSTs are blocked by CORS (403). Pass --allow-origin <origin> or front it with a same-origin proxy.
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://127.0.0.1:40171 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=60889 runQwenServeToListenMs=7
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
2026-07-03T12:22:06.173Z [INFO] [DAEMON] route=GET /capabilities durationMs=0 status=200 request completed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://127.0.0.1:46519 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=60944 runQwenServeToListenMs=14
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-7b33433a.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://127.0.0.1:44357 (mode=http-bridge, workspace=/tmp/qwen-runqwen-fs-3M7ALM)
qwen serve: bound to workspace "/tmp/qwen-runqwen-fs-3M7ALM"
qwen serve: startup timing: processToListenMs=60952 runQwenServeToListenMs=5
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
2026-07-03T12:22:06.248Z [INFO] [DAEMON] route=GET /file durationMs=11 status=200 request completed
2026-07-03T12:22:06.256Z [WARN] [DAEMON] route=GET /file durationMs=3 status=400 request completed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://127.0.0.1:45995 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve listening on http://127.0.0.1:34441 (mode=http-bridge, workspace=/tmp/qwen-runqwen-trust-pZqJfr)
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=61000 runQwenServeToListenMs=13
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
2026-07-03T12:22:06.278Z [WARN] [DAEMON] route=GET /file durationMs=1 status=400 request completed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-521a34a5.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/tmp/qwen-runqwen-trust-pZqJfr"
qwen serve: startup timing: processToListenMs=61009 runQwenServeToListenMs=4
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
2026-07-03T12:22:06.290Z [INFO] [DAEMON] route=GET /file durationMs=1 status=200 request completed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://127.0.0.1:42389 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=61033 runQwenServeToListenMs=11
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://127.0.0.1:46799 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=61040 runQwenServeToListenMs=6
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=61047 runQwenServeToListenMs=4
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://127.0.0.1:44149 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=61052 runQwenServeToListenMs=4
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
2026-07-03T12:22:06.339Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened
2026-07-03T12:22:06.345Z [INFO] [DAEMON] sessionId=sess-A durationMs=6 SSE stream closed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=61074 runQwenServeToListenMs=4
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
2026-07-03T12:22:06.351Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened
2026-07-03T12:22:06.354Z [INFO] [DAEMON] sessionId=sess-A durationMs=3 SSE stream closed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=61084 runQwenServeToListenMs=4
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
2026-07-03T12:22:06.360Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened
2026-07-03T12:22:06.363Z [INFO] [DAEMON] sessionId=sess-A durationMs=3 SSE stream closed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=61093 runQwenServeToListenMs=4
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
2026-07-03T12:22:06.370Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened
2026-07-03T12:22:06.373Z [INFO] [DAEMON] sessionId=sess-A durationMs=3 SSE stream closed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=61102 runQwenServeToListenMs=3
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
2026-07-03T12:22:06.379Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened
qwen serve listening on http://127.0.0.1:45837 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve listening on http://127.0.0.1:41183 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve listening on http://127.0.0.1:32907 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve listening on http://127.0.0.1:45555 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve listening on http://127.0.0.1:44387 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
2026-07-03T12:22:06.383Z [INFO] [DAEMON] sessionId=sess-A durationMs=4 SSE stream closed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=61113 runQwenServeToListenMs=4
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
2026-07-03T12:22:06.390Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened
2026-07-03T12:22:06.392Z [INFO] [DAEMON] sessionId=sess-A durationMs=2 SSE stream closed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=61121 runQwenServeToListenMs=4
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve listening on http://127.0.0.1:42601 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve listening on http://127.0.0.1:36049 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
2026-07-03T12:22:06.398Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened
2026-07-03T12:22:06.408Z [INFO] [DAEMON] sessionId=sess-A durationMs=10 SSE stream closed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://127.0.0.1:40135 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=61142 runQwenServeToListenMs=5
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: rejected ?maxQueued "" (not a decimal integer)
2026-07-03T12:22:06.419Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=0 status=400 request completed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://127.0.0.1:33729 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=61158 runQwenServeToListenMs=7
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: rejected ?maxQueued "abc" (not a decimal integer)
2026-07-03T12:22:06.435Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=0 status=400 request completed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://127.0.0.1:35793 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=61170 runQwenServeToListenMs=4
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: rejected ?maxQueued "0" (outside [16, 2048])
2026-07-03T12:22:06.448Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=1 status=400 request completed
qwen serve: rejected ?maxQueued "15" (outside [16, 2048])
2026-07-03T12:22:06.450Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=1 status=400 request completed
qwen serve: rejected ?maxQueued "2049" (outside [16, 2048])
2026-07-03T12:22:06.456Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=1 status=400 request completed
 ✓ src/serve/acp-http/transport.test.ts (140 tests) 10059ms
   ✓ ACP Streamable HTTP transport (over the wire) > initialize → 200 + Acp-Connection-Id; unknown conn → 404  772ms
qwen serve: rejected ?maxQueued "9999" (outside [16, 2048])
2026-07-03T12:22:06.459Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=1 status=400 request completed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=61191 runQwenServeToListenMs=4
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
2026-07-03T12:22:06.468Z [WARN] [DAEMON] route=GET /session/missing/events sessionId=missing durationMs=0 status=404 request completed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=61200 runQwenServeToListenMs=4
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
2026-07-03T12:22:06.485Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened
qwen serve listening on http://127.0.0.1:39657 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve listening on http://127.0.0.1:35543 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
2026-07-03T12:22:06.488Z [INFO] [DAEMON] sessionId=sess-A durationMs=3 SSE stream closed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://127.0.0.1:46323 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=61324 runQwenServeToListenMs=4
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
2026-07-03T12:22:06.601Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened
qwen serve: bridge iterator error (session sess-A): agent died
2026-07-03T12:22:06.601Z [INFO] [DAEMON] sessionId=sess-A durationMs=0 SSE stream closed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://127.0.0.1:42891 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=61333 runQwenServeToListenMs=3
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
2026-07-03T12:22:06.610Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened
qwen serve: bridge iterator error (session sess-A): AcpSessionBridge initialize timed out after 5000ms [init_timeout]
2026-07-03T12:22:06.611Z [INFO] [DAEMON] sessionId=sess-A durationMs=1 SSE stream closed
qwen serve listening on http://127.0.0.1:43243 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
2026-07-03T12:22:06.621Z [INFO] [DAEMON] sessionId=sess-A durationMs=2 SSE stream closed
qwen serve listening on http://127.0.0.1:36711 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
2026-07-03T12:22:06.656Z [INFO] [DAEMON] sessionId=sess-A durationMs=11 SSE stream closed
qwen serve listening on http://127.0.0.1:39297 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve listening on http://127.0.0.1:41613 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://127.0.0.1:42299 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=61457 runQwenServeToListenMs=4
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
2026-07-03T12:22:06.737Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened
2026-07-03T12:22:06.738Z [INFO] [DAEMON] sessionId=sess-A durationMs=1 SSE stream closed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=61500 runQwenServeToListenMs=4
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: rejected Last-Event-ID "abc" (not a decimal integer)
2026-07-03T12:22:06.781Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened
2026-07-03T12:22:06.782Z [INFO] [DAEMON] sessionId=sess-A durationMs=1 SSE stream closed
qwen serve: rejected Last-Event-ID "-1" (not a decimal integer)
2026-07-03T12:22:06.785Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened
2026-07-03T12:22:06.785Z [INFO] [DAEMON] sessionId=sess-A durationMs=0 SSE stream closed
qwen serve listening on http://127.0.0.1:33429 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: rejected Last-Event-ID "1.5e10z" (not a decimal integer)
2026-07-03T12:22:06.792Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened
2026-07-03T12:22:06.792Z [INFO] [DAEMON] sessionId=sess-A durationMs=0 SSE stream closed
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: fs audit emit is the default no-op — 1 event(s) dropped so far. Latest type=fs.access (intent=list pathHash=a4a43e0c6981c058). Inject deps.fsFactory in createServeApp to wire audit into the EventBus.
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: fs audit emit is the default no-op — 1 event(s) dropped so far. Latest type=fs.denied (errorKind=untrusted_workspace intent=write pathHash=116e45f02c9787cb). Inject deps.fsFactory in createServeApp to wire audit into the EventBus.
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=828d3bed... clientId=- status=started expiresInMs=600000
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=5e827c7d... clientId=- status=started expiresInMs=600000
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=7a4e60c6... clientId=sdk-A status=started expiresInMs=600000
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=7a4e60c6... clientId=sdk-B status=started hint="take-over (per-provider singleton; original initiator=sdk-A)"
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=32ea4b48... clientId=- status=started expiresInMs=599999
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=945730f3... clientId=- status=started expiresInMs=600000
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=fb113bff... clientId=- status=started expiresInMs=600000
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=fb113bff... clientId=- status=cancelled
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=c0614c03... clientId=- status=started expiresInMs=600000
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=6e6b6113... clientId=sdk-A status=started expiresInMs=600000
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=4fcc9c6f... clientId=- status=started expiresInMs=600000
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=7e263bf6... clientId=- status=started expiresInMs=600000
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://127.0.0.1:45603 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=62137 runQwenServeToListenMs=8
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
2026-07-03T12:22:07.430Z [INFO] [DAEMON] sessionId=sess-A promptId=c2d03e2f-3499-4255-87d5-123a9dedb7ab prompt enqueued
2026-07-03T12:22:07.431Z [INFO] [DAEMON] route=POST /session/sess-A/prompt sessionId=sess-A durationMs=2 status=202 request completed
2026-07-03T12:22:07.481Z [INFO] [DAEMON] sessionId=sess-A promptId=c2d03e2f-3499-4255-87d5-123a9dedb7ab prompt turn completed
]0;Qwen - cli                                                                      ]2;Qwen - cli                                                                      ]0;Qwen - cli                                                                      ]2;Qwen - cli                                                                      ]0;Qwen - root                                                                     ]2;Qwen - root                                                                     ]0;Qwen - root                                                                     ]2;Qwen - root                                                                     ]0;Qwen - root                                                                     ]2;Qwen - root                                                                      ✓ src/gemini.test.tsx (26 tests) 6422ms
   ✓ gemini.tsx main function > verifies that we dont load the config before relaunchAppInChildProcess  884ms
   ✓ gemini.tsx main function > should skip full settings discovery in bare mode  561ms
   ✓ gemini.tsx main function > passes the outer session ID into the sandbox child process  504ms
   ✓ gemini.tsx main function > does not pass an empty session ID into the sandbox child process  502ms
   ✓ gemini.tsx main function > does not inject sandbox session ID when argv contains --continue  503ms
   ✓ gemini.tsx main function > does not inject sandbox session ID when argv contains -c  505ms
   ✓ gemini.tsx main function > does not inject sandbox session ID when argv contains --resume  505ms
   ✓ gemini.tsx main function > does not inject sandbox session ID when argv contains -r  507ms
   ✓ gemini.tsx main function > does not inject sandbox session ID when argv contains --session-id  503ms
   ✓ gemini.tsx main function > inserts the sandbox session ID before the argument separator  503ms
   ✓ gemini.tsx main function > invokes runNonInteractiveStreamJson and performs cleanup in stream-json mode  761ms
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=63443 runQwenServeToListenMs=4
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
2026-07-03T12:22:08.720Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened
qwen serve listening on http://127.0.0.1:41677 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: evicting SSE client (session sess-A) — writer idle for 253ms > 200ms timeout
2026-07-03T12:22:08.975Z [INFO] [DAEMON] sessionId=sess-A durationMs=255 SSE stream closed
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://127.0.0.1:41307 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=63706 runQwenServeToListenMs=4
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
2026-07-03T12:22:08.983Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://127.0.0.1:41341 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=64343 runQwenServeToListenMs=11
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
2026-07-03T12:22:09.620Z [INFO] [DAEMON] sessionId=sess-A durationMs=637 SSE stream closed
2026-07-03T12:22:09.650Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened
 ✓ src/ui/hooks/useSlashCompletion.test.ts (30 tests) 904ms
 ✓ src/config/settingsWatcher.test.ts (44 tests) 110ms
qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=65097 runQwenServeToListenMs=4
qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve listening on http://127.0.0.1:33449 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
2026-07-03T12:22:10.379Z [INFO] [DAEMON] sessionId=sess-A durationMs=729 SSE stream closed
2026-07-03T12:22:10.380Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened
2026-07-03T12:22:10.753Z [INFO] [DAEMON] sessionId=sess-A durationMs=373 SSE stream closed
qwen serve: bridge error (POST /session): Error: legacy-stderr-test-boom
    at spawnImpl (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:12755:15)
    at Object.spawnOrAttach (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:1079:28)
    at /startdir/src/qwen-code/packages/cli/src/serve/server.ts:3011:36
    at Layer.handleRequest (/startdir/src/qwen-code/node_modules/router/lib/layer.js:152:17)
    at next (/startdir/src/qwen-code/node_modules/router/lib/route.js:157:13)
    at passthrough (/startdir/src/qwen-code/packages/cli/src/serve/auth.ts:401:8)
    at Layer.handleRequest (/startdir/src/qwen-code/node_modules/router/lib/layer.js:152:17)
    at next (/startdir/src/qwen-code/node_modules/router/lib/route.js:157:13)
    at Route.dispatch (/startdir/src/qwen-code/node_modules/router/lib/route.js:117:3)
    at handle (/startdir/src/qwen-code/node_modules/router/index.js:435:11)
 ✓ src/ui/hooks/useSelectionList.test.ts (50 tests) 269ms
 ✓ src/serve/server.test.ts (518 tests) 14508ms
   ✓ createServeApp > read-only status routes > evicts the oldest terminal extension operations  1914ms
   ✓ createServeApp > GET /daemon/status > returns full diagnostics with independent workspace section degradation  415ms
   ✓ runQwenServe > starts with --allow-origin '*' when a token is configured  479ms
   ✓ T2.9 SSE writer idle timeout (issue #4514) > does not evict when the writer idle timeout is unset (legacy contract)  628ms
   ✓ T2.9 SSE writer idle timeout (issue #4514) > does NOT evict when active writes keep refreshing lastWriteAt (#4514 T2.9 wenshao review)  763ms
   ✓ T2.9 SSE writer idle timeout (issue #4514) > does NOT evict when a back-pressured write drains within the idle budget  385ms
 ✓ src/ui/commands/languageCommand.test.ts (49 tests) 224ms
 ✓ src/nonInteractive/session.test.ts (27 tests) 507ms
 ✓ src/ui/components/messages/ToolMessage.test.tsx (42 tests) 2870ms
 ✓ src/ui/commands/copyCommand.test.ts (37 tests) 241ms
 ✓ src/acp-integration/session/SubAgentTracker.test.ts (28 tests) 523ms
 ✓ src/nonInteractive/control/ControlDispatcher.test.ts (35 tests) 119ms
 ✓ src/ui/components/MainContent.test.tsx (14 tests) 2778ms
   ✓ <MainContent /> > progressively replays Static items when history exceeds the threshold (issue #3899)  406ms
   ✓ <MainContent /> > synchronously resets to the first chunk on historyRemountKey change after a full catch-up (Ctrl+O regression, issue #3899)  319ms
   ✓ <MainContent /> > does NOT reset progressive replay when only currentModel changes (PR #4119 regression guard)  682ms
 ✓ src/ui/hooks/use-voice-input.test.ts (23 tests) 419ms
 ✓ src/ui/components/messages/ToolGroupMessage.test.tsx (30 tests) 2407ms
 ✓ src/ui/utils/commandUtils.test.ts (55 tests) 245ms
 ✓ src/utils/errors.test.ts (42 tests) 242ms
 ✓ src/config/config.test.ts (231 tests) 14828ms
   ✓ parseArguments > should map any @command to prompt (one-shot)  355ms
 ✓ src/ui/hooks/useHistoryManager.test.ts (22 tests) 270ms
(node:5019) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 resize listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ src/acp-integration/session/emitters/ToolCallEmitter.test.ts (47 tests) 221ms
 ✓ src/ui/components/background-view/BackgroundTasksDialog.test.tsx (36 tests) 9325ms
   ✓ BackgroundTasksDialog > lets ask-user-question approvals own all keyboard input in detail mode  377ms
   ✓ BackgroundTasksDialog > Esc backs out of an armed foreground cancel without closing the dialog  416ms
   ✓ BackgroundTasksDialog > clamps selectedIndex when entries shrink  368ms
   ✓ BackgroundTasksDialog > MonitorDetailBody render branches > renders pid when defined, omits when undefined  441ms
   ✓ BackgroundTasksDialog > MonitorDetailBody render branches > uses singular "1 event" / plural "N events"  578ms
   ✓ BackgroundTasksDialog > MonitorDetailBody render branches > renders droppedLines only when > 0  514ms
   ✓ BackgroundTasksDialog > MonitorDetailBody render branches > renders "Stopped because" block for completed with auto-stop reason  538ms
   ✓ BackgroundTasksDialog > dream entries > renders the Error block on failed status with a "+ Stopped because" verb  319ms
   ✓ BackgroundTasksDialog > dream entries > caps visible topics at 8 and renders a "+N more" tail for overflow  338ms
 ✓ src/utils/memoryDiagnostics.test.ts (23 tests) 147ms
 ✓ src/acp-integration/session/Session.test.ts (169 tests) 26925ms
   ✓ Session > prompt > auto-compress > latches mid-turn drain off after repeated timeouts when the client never responds  6068ms
   ✓ Session > prompt > auto-compress > resets the timeout strike count when a drain succeeds  8166ms
   ✓ Session > prompt > auto-compress > recovers a drain that timed out and injects it on the next batch  2116ms
   ✓ Session > runToolCalls > skips later tools when cancellation confirmation cleanup fails  313ms
 ✓ src/nonInteractiveCliCommands.test.ts (29 tests) 97ms
 ✓ src/ui/components/ModelDialog.test.tsx (19 tests) 388ms
]0;Qwen - workspace                                                                ]2;Qwen - workspace                                                                 ✓ src/ui/hooks/useToolScheduler.test.ts (19 tests) 206ms
 ✓ src/services/prompt-processors/shellProcessor.test.ts (34 tests) 97ms
 ✓ src/ui/components/extensions/ExtensionsManagerDialog.test.tsx (23 tests) 6658ms
   ✓ ExtensionsManagerDialog (tabbed) > caps its width on a wide terminal so the status column is not clipped  305ms
   ✓ ExtensionsManagerDialog (tabbed) > opens a CC-style plugin detail with an inline scope selector on Enter  441ms
   ✓ ExtensionsManagerDialog (tabbed) > filters the Discover list as you type  358ms
   ✓ ExtensionsManagerDialog (tabbed) > groups installed plugins by scope on the Installed tab  333ms
   ✓ ExtensionsManagerDialog (tabbed) > toggles favorite when pressing f on the Installed tab  380ms
   ✓ ExtensionsManagerDialog (tabbed) > shows a CC-style marketplace detail with installed plugins and actions  344ms
   ✓ ExtensionsManagerDialog (tabbed) > collapses a long installed-plugins list in the marketplace detail  383ms
   ✓ ExtensionsManagerDialog (tabbed) > retries a failed marketplace load when R is pressed  474ms
   ✓ ExtensionsManagerDialog (tabbed) > Browse plugins jumps to Discover filtered by the marketplace  472ms
   ✓ ExtensionsManagerDialog (tabbed) > does not close on Escape while a tab sub-view is open  470ms
 ✓ src/ui/utils/osc8.test.ts (81 tests) 38ms
(node:5587) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 resize listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ src/ui/daemon/daemon-tui-adapter.test.ts (14 tests) 159ms
 ✓ src/ui/components/StandaloneSessionPicker.test.tsx (19 tests) 1026ms
 ✓ src/ui/components/shared/text-buffer-external-editor.test.ts (36 tests) 135ms
 ✓ src/acp-integration/session/HistoryReplayer.test.ts (26 tests) 110ms
]0;Qwen - workspace                                                                ]2;Qwen - workspace                                                                 ✓ src/ui/utils/mergeCompactToolGroups.test.ts (32 tests) 42ms
 ✓ src/ui/voice/voice-transcriber.test.ts (29 tests) 202ms
 ✓ src/ui/utils/mermaidImageRenderer.test.ts (25 tests) 2945ms
   ✓ mermaid image renderer > rejects oversized Mermaid PNG output before reading it  337ms
   ✓ mermaid image renderer > evicts Mermaid image caches by retained byte size  1046ms
 ✓ src/ui/hooks/shellCommandProcessor.test.ts (22 tests) 601ms
 ✓ src/ui/components/background-view/LiveAgentPanel.test.tsx (26 tests) 3135ms
 ✓ src/utils/installationInfo.test.ts (27 tests) 40ms
 ✓ src/ui/utils/TableRenderer.test.tsx (60 tests) 6713ms
   ✓ <TableRenderer /> > stays stable across multiple content widths  696ms
 ✓ src/nonInteractive/io/JsonOutputAdapter.test.ts (35 tests) 137ms
 ✓ src/ui/hooks/useCommandCompletion.test.ts (26 tests) 411ms
 ✓ src/utils/languageUtils.test.ts (52 tests) 38ms
 ✓ src/ui/utils/MarkdownDisplay.test.tsx (101 tests) 9382ms
   ✓ <MarkdownDisplay /> > with 'Windows' line endings > renders a fenced code block without a language  306ms
qwen serve: GET /workspace/permissions error: load failed
qwen serve: POST /workspace/permissions load error: load failed
qwen serve: POST /workspace/permissions broadcast error (key=permissions.allow, scope=workspace): broadcast failed
qwen serve: POST /workspace/permissions response error: settings unreadable
qwen serve: POST /workspace/permissions response error: settings unreadable
qwen serve: POST /workspace/permissions broadcast error (key=permissions.deny, scope=workspace): broadcast failed
qwen serve: POST /workspace/permissions ACP error (key=permissions.allow, scope=workspace, workspace=/tmp/qwen-permission-routes-0fc0540b-vkQKBZ/workspace): unexpected ACP failure
qwen serve: POST /workspace/permissions persist error (key=permissions.allow, scope=workspace, workspace=/tmp/qwen-permission-routes-75310554-w5VHh8/workspace): disk full
 ✓ src/serve/routes/workspace-permissions.test.ts (18 tests) 259ms
 ✓ src/config/trustedFolders.test.ts (32 tests) 212ms
 ✓ src/ui/hooks/useBackgroundTaskView.test.ts (16 tests) 74ms
 ✓ src/ui/commands/clearCommand.test.ts (15 tests) 290ms
 ✓ src/ui/hooks/useResumeCommand.test.ts (11 tests) 127ms
 ✓ src/ui/keyMatchers.test.ts (46 tests) 16ms
 ✓ src/ui/commands/diffCommand.test.ts (25 tests) 35ms
 ✓ src/serve/bridge-file-system-adapter.test.ts (18 tests) 124ms
 ✓ src/validateNonInterActiveAuth.test.ts (13 tests) 88ms
 ✓ src/serve/auth/qwen-device-flow-provider.test.ts (12 tests) 13ms
 ✓ src/ui/hooks/useBranchCommand.test.ts (17 tests) 114ms
 ✓ src/ui/components/agent-view/agentHistoryAdapter.test.ts (35 tests) 32ms
 ✓ src/ui/commands/directoryCommand.test.tsx (25 tests) 36ms
 ✓ src/ui/utils/customBanner.test.ts (40 tests) 70ms
 ✓ src/ui/hooks/useSessionSearchInput.test.ts (36 tests) 83ms
 ✓ src/utils/handleAutoUpdate.test.ts (24 tests) 279ms
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
(node:6884) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 exit listeners added to [process]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
 ✓ src/ui/AppContainer.test.tsx (94 tests) 27825ms
   ✓ AppContainer State Management > Basic Rendering > renders without crashing with minimal props  677ms
   ✓ AppContainer State Management > State Initialization > handles debug mode state  320ms
   ✓ AppContainer State Management > Context Providers > provides UIStateContext with state management  324ms
   ✓ AppContainer State Management > Context Providers > provides UIActionsContext with action handlers  408ms
   ✓ AppContainer State Management > Context Providers > refreshStatic clears the terminal before remounting history  308ms
   ✓ AppContainer State Management > Context Providers > does not clear the terminal synchronously on width change  514ms
   ✓ AppContainer State Management > Context Providers > submits /btw immediately instead of queueing while responding  544ms
   ✓ AppContainer State Management > Context Providers > submits slash commands immediately instead of queueing while idle  310ms
   ✓ AppContainer State Management > Context Providers > routes bare "exit" to /quit instead of sending as a message  305ms
   ✓ AppContainer State Management > Context Providers > routes bare "quit" to /quit instead of sending as a message  370ms
   ✓ AppContainer State Management > Context Providers > routes bare ":q" to /quit instead of sending as a message  313ms
   ✓ AppContainer State Management > Cancel Handler (issue #3204) > does not repopulate the buffer with the previous prompt on ESC cancel  332ms
   ✓ AppContainer State Management > Cancel Handler (issue #3204) > does not auto-restore when the lastTurnUserItem text does not match the candidate user item (sanity)  333ms
   ✓ AppContainer State Management > Cancel Handler (issue #3204) > does not auto-restore when the user queued a follow-up (drains queue but keeps prompt)  348ms
   ✓ AppContainer State Management > Settings Integration > falls back to rendered Markdown mode for missing or invalid ui.renderMode  440ms
   ✓ AppContainer State Management > Settings Integration > handles global render mode shortcut through the captured keypress handler  401ms
   ✓ AppContainer State Management > Version Handling > handles version format: 2.1.3-beta  405ms
   ✓ AppContainer State Management > Error Handling > handles config methods that might throw  408ms
   ✓ AppContainer State Management > Error Handling > handles undefined settings gracefully  571ms
   ✓ AppContainer State Management > Provider Hierarchy > establishes correct provider nesting order  324ms
   ✓ AppContainer State Management > Terminal Title Update Feature > should not update terminal title when showStatusInTitle is false  359ms
   ✓ AppContainer State Management > Terminal Title Update Feature > should not update terminal title when hideWindowTitle is true  417ms
   ✓ AppContainer State Management > Terminal Title Update Feature > should keep default terminal title when active without a session name  472ms
   ✓ AppContainer State Management > Terminal Title Update Feature > should update terminal title with default text when in Idle state and no thought subject  388ms
   ✓ AppContainer State Management > Terminal Title Update Feature > should keep default terminal title when waiting for confirmation without a session name  392ms
   ✓ AppContainer State Management > Terminal Title Update Feature > should use correct ANSI escape code format with padding  351ms
   ✓ AppContainer State Management > Terminal Title Update Feature > should register for recorded session titles and format them in the terminal title  333ms
   ✓ AppContainer State Management > Terminal Title Update Feature > should chain with existing titleRecordedCallback from Session (ACP notifications)  364ms
   ✓ AppContainer State Management > Terminal Height Calculation > loads a collapsed summary into history on cold-boot resume when collapseOnResume is enabled  406ms
   ✓ AppContainer State Management > Terminal Height Calculation > does not remeasure footer height for sticky todo status-only updates  717ms
   ✓ AppContainer State Management > Keyboard Input Handling > Ctrl+B does NOT promote when only a non-shell tool is executing (defense-in-depth)  330ms
   ✓ AppContainer State Management > Keyboard Input Handling > Ctrl+O compact mode toggle (issue #3899) > calls refreshStatic on Ctrl+O when history contains a tool_group  343ms
   ✓ AppContainer State Management > handleRewindConfirm > skips conversation truncation when both-mode file restore fails  501ms
   ✓ AppContainer State Management > handleRewindConfirm > skips conversation truncation when both-mode file restore throws  388ms
   ✓ AppContainer State Management > handleRewindConfirm > truncates conversation when both-mode file restore succeeds  337ms
   ✓ AppContainer State Management > handleRewindConfirm > falls back to code restore for both-mode rewind with no client  363ms
   ✓ AppContainer State Management > handleRewindConfirm > surfaces unexpected outer errors through history  309ms
   ✓ AppContainer State Management > handleRewindConfirm > bails before file restore when the target turn is compressed  1541ms
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: GET /file rejected request missing required ?path
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: GET /stat unexpected error: bound workspace is not configured
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
 ✓ src/ui/hooks/useAutoAcceptIndicator.test.ts (15 tests) 163ms
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
 ✓ src/serve/routes/workspace-file-read.test.ts (31 tests) 545ms
 ✓ src/acp-integration/acpAgent.worktree.test.ts (3 tests) 189ms
 ✓ src/config/migration/versions/v2-to-v3.test.ts (31 tests) 60ms
 ✓ src/ui/components/shared/VirtualizedList.test.tsx (20 tests) 6368ms
   ✓ <VirtualizedList /> > scrollToIndex moves scroll anchor to the requested index  390ms
   ✓ <VirtualizedList /> > handles initialScrollIndex pointing past the end gracefully  342ms
   ✓ <VirtualizedList /> > scrollBy > scrollBy positive moves the viewport down  512ms
   ✓ <VirtualizedList /> > scrollBy > scrollBy past bottom re-engages sticking-to-bottom with live end anchor  303ms
   ✓ <VirtualizedList /> > scrollBy > scrollBy clamps to 0 when scrolling past the top  437ms
   ✓ <VirtualizedList /> > scrollTo > scrollTo middle offset positions correctly  323ms
   ✓ <VirtualizedList /> > scrollTo > scrollTo 0 moves to the beginning  336ms
   ✓ <VirtualizedList /> > scrollTo > scrollTo past maxScroll re-engages sticking-to-bottom  370ms
   ✓ <VirtualizedList /> > scrollTo > scrollTo negative is clamped to 0  376ms
   ✓ <VirtualizedList /> > auto-scroll during streaming > auto-scrolls when at bottom and data grows  390ms
   ✓ <VirtualizedList /> > auto-scroll during streaming > does NOT auto-scroll when user has scrolled away from bottom  357ms
   ✓ <VirtualizedList /> > auto-scroll during streaming > re-engages auto-scroll when user scrolls back to bottom  594ms
qwen serve: POST /workspace/memory refused — existing file /tmp/qwen-serve-memory-BbsPR9/workspace/QWEN.md is 17825792 bytes (cap 16777216)
qwen serve: POST /workspace/memory failed (scope=workspace mode=append): Error: EACCES: permission denied, open '/tmp/qwen-serve-memory-YQBpdy/workspace/QWEN.md'
    at open (node:internal/fs/promises:1360:25)
    at Object.writeFile (node:internal/fs/promises:2104:14)
    at runWrite (/startdir/src/qwen-code/packages/core/src/memory/writeContextFile.ts:215:3)
    at /startdir/src/qwen-code/packages/core/src/memory/writeContextFile.ts:161:19
qwen serve: POST /workspace/memory failed (scope=workspace mode=append): Error: EACCES: permission denied, open '/tmp/qwen-serve-memory-YQBpdy/workspace/QWEN.md'
    at open (node:internal/fs/promises:1360:25)
    at Object.writeFile (node:internal/fs/promises:2104:14)
    at runWrite (/startdir/src/qwen-code/packages/core/src/memory/writeContextFile.ts:215:3)
    at /startdir/src/qwen-code/packages/core/src/memory/writeContextFile.ts:161:19
qwen serve: GET /workspace/memory failed: Error: boom
    at Storage.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/workspace-memory.test.ts:452:17)
    at Storage.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15)
    at Storage.getGlobalQwenDir (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103)
    at collectWorkspaceMemoryStatus (/startdir/src/qwen-code/packages/cli/src/serve/workspace-memory.ts:340:29)
    at /startdir/src/qwen-code/packages/cli/src/serve/workspace-memory.ts:88:22
 ✓ src/config/jsonSchemaArg.test.ts (40 tests) 492ms
 ✓ src/serve/workspace-memory.test.ts (17 tests) 281ms
 ✓ src/ui/commands/renameCommand.test.ts (22 tests) 78ms
 ✓ src/startup/worktreeStartup.test.ts (18 tests) 5602ms
   ✓ setupStartupWorktree > creates a worktree with an auto-generated slug for bare --worktree  523ms
   ✓ setupStartupWorktree > creates a worktree with an explicit slug  454ms
   ✓ setupStartupWorktree > rejects full GitHub PR URLs when origin remote is missing  374ms
   ✓ setupStartupWorktree > creates a pr-<N> worktree from FETCH_HEAD when fetch succeeds (local fake remote)  863ms
   ✓ setupStartupWorktree > re-attaches to an existing worktree instead of erroring (Phase 6 G1 fix)  511ms
   ✓ setupStartupWorktree > refuses to re-attach when an existing dir occupies the slot on a different branch  446ms
   ✓ persistStartupWorktreeSidecar > adopts a stale marker when re-attaching to an inactive owner  486ms
   ✓ persistStartupWorktreeSidecar > keeps the marker when the owner runtime is still active  691ms
   ✓ persistStartupWorktreeSidecar > finds an active owner under a repo-subdir relative runtime dir  611ms
 ✓ src/serve/auth.test.ts (27 tests) 13ms
 ✓ src/ui/components/StatsDisplay.test.tsx (17 tests) 1672ms
 ✓ src/ui/hooks/useExtensionUpdates.test.ts (15 tests) 463ms
 ✓ src/ui/commands/btwCommand.test.ts (23 tests) 113ms
 ✓ src/serve/routes/a2ui-action.test.ts (19 tests) 192ms
 ✓ src/ui/components/shared/BaseSelectionList.test.tsx (26 tests) 2428ms
   ✓ BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should handle dynamic scrolling through multiple activeIndex changes  310ms
 ✓ src/ui/hooks/useDeleteCommand.test.ts (14 tests) 102ms
 ✓ src/commands/sessions/list.test.ts (25 tests) 47ms
 ✓ src/ui/hooks/useProviderUpdates.test.ts (15 tests) 417ms
 ✓ src/config/settingsSchema.test.ts (27 tests) 27ms
 ✓ src/serve/fs/paths.test.ts (29 tests) 38ms
 ✓ src/ui/components/messages/ToolConfirmationMessage.test.tsx (21 tests) 1516ms
 ✓ src/services/SkillCommandLoader.test.ts (24 tests) 66ms
 ✓ src/serve/rate-limit.test.ts (25 tests) 2640ms
   ✓ rateLimit > fail-open > passes through when bucket map is at capacity  2561ms
 ✓ src/utils/startupProfiler.test.ts (21 tests) 146ms
 ✓ src/ui/components/ModelStatsDisplay.test.tsx (16 tests) 1213ms
 ✓ src/services/McpPromptLoader.test.ts (27 tests) 27ms
 ✓ src/ui/components/hooks/constants.test.ts (47 tests) 25ms
 ✓ src/commands/mcp/add.test.ts (27 tests) 1917ms
   ✓ mcp add command > should auto-detect http transport when commandOrUrl uses an uppercase URL scheme  311ms
 ✓ src/services/CommandService.test.ts (17 tests) 47ms
 ✓ src/commands/extensions/install.test.ts (16 tests) 122ms
 ✓ src/ui/utils/resumeHistoryUtils.test.ts (18 tests) 51ms
 ✓ src/ui/utils/InlineMarkdownRenderer.test.tsx (23 tests) 1872ms
 ✓ src/ui/commands/tasksCommand.test.ts (10 tests) 24ms
 ✓ src/utils/standalone-update.test.ts (20 tests) 16ms
 ✓ src/serve/workspace-service/__tests__/integration.test.ts (13 tests) 246ms
 ✓ src/utils/systemInfo.test.ts (22 tests) 61ms
 ✓ src/config/migration/index.test.ts (30 tests) 15ms
Error parsing settings file.
Settings file may be corrupted: Unexpected end of JSON input
 ✓ src/utils/commentJson.test.ts (18 tests) 64ms
 ✓ src/services/BundledSkillLoader.test.ts (23 tests) 42ms
 ✓ src/ui/commands/workflowsCommand.test.ts (15 tests) 107ms
 ✓ src/config/auth.test.ts (20 tests) 40ms
 ✓ src/ui/commands/cdCommand.test.ts (18 tests) 172ms
 ✓ src/ui/utils/textUtils.test.ts (29 tests) 21ms
 ✓ src/ui/components/Composer.test.tsx (20 tests) 1636ms
 ✓ src/ui/components/HistoryItemDisplay.test.tsx (25 tests) 2545ms
Invalid values:
  Argument: approval-mode, Given: "invalid_mode", Choices: "plan", "default", "auto-edit", "auto", "yolo"
Cannot use both --yolo (-y) and --approval-mode together. Use --approval-mode=yolo instead.
process.exit unexpectedly called with "1"
 ✓ src/ui/utils/historyMapping.test.ts (23 tests) 28ms
 ✓ src/config/config.integration.test.ts (25 tests) 425ms
 ✓ src/config/claudeMcpImport.test.ts (14 tests) 35ms
 ❯ src/ui/auth/AuthDialog.test.tsx (25 tests | 12 failed) 64925ms
   ✓ AuthDialog > should show an error if the initial auth type is invalid 141ms
   ✓ AuthDialog > GEMINI_API_KEY environment variable > should detect GEMINI_API_KEY environment variable 46ms
   ✓ AuthDialog > GEMINI_API_KEY environment variable > should not show the GEMINI_API_KEY message if QWEN_DEFAULT_AUTH_TYPE is set to something else 68ms
   ✓ AuthDialog > GEMINI_API_KEY environment variable > should show the GEMINI_API_KEY message if QWEN_DEFAULT_AUTH_TYPE is set to use api key 74ms
   ✓ AuthDialog > QWEN_DEFAULT_AUTH_TYPE environment variable > should select the auth type specified by QWEN_DEFAULT_AUTH_TYPE 102ms
   ✓ AuthDialog > QWEN_DEFAULT_AUTH_TYPE environment variable > should fall back to default if QWEN_DEFAULT_AUTH_TYPE is not set 70ms
   ✓ AuthDialog > QWEN_DEFAULT_AUTH_TYPE environment variable > should show an error and fall back to default if QWEN_DEFAULT_AUTH_TYPE is invalid 63ms
   ✓ AuthDialog > should prevent exiting when no auth method is selected and show error message 261ms
   ✓ AuthDialog > should not exit if there is already an error message 160ms
   ✓ AuthDialog > should allow exiting when auth method is already selected 199ms
   ✓ AuthDialog > should preserve the selected main entry when returning from each top-level flow  984ms
   × AuthDialog > should go back from Coding Plan region selection to Alibaba ModelStudio 5167ms
     → expected '┌────────────────────────────────────…' to contain 'Alibaba ModelStudio · Step 1/3 · Regi…'
   × AuthDialog > should go back from third-party provider API key input to provider list 5137ms
     → expected '┌────────────────────────────────────…' to contain 'Third-party Providers · Provider'
   ✓ AuthDialog > should show preset providers in third-party provider options 276ms
   × AuthDialog > drives API key provider steps from endpoint options metadata 5258ms
     → expected '┌────────────────────────────────────…' to contain 'DeepSeek API Key · Step 1/2 · API Key'
   ✓ AuthDialog > should show Alibaba ModelStudio access methods after selecting Alibaba ModelStudio 165ms
   × AuthDialog > should submit Token Plan through the shared subscription handler 5307ms
     → expected '┌────────────────────────────────────…' to contain 'Alibaba ModelStudio · Step 1/2 · API …'
   × AuthDialog > should pre-fill the Model IDs step with previously saved custom model IDs 5348ms
     → expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Token Plan/
   × AuthDialog > should return from Token Plan API key input to Token Plan selection 5192ms
     → expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Token Plan/
   × AuthDialog Custom API Key Wizard > navigates to protocol selection when Custom API Key is selected 5137ms
     → expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Custom Provider/
   × AuthDialog Custom API Key Wizard > navigates to base URL input after selecting a protocol 5217ms
     → expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Custom Provider/
   × AuthDialog Custom API Key Wizard > shows review screen with JSON after entering model IDs 5135ms
     → expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Custom Provider/
   × AuthDialog Custom API Key Wizard > calls handleProviderSubmit on Enter in review view 5144ms
     → expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Custom Provider/
   × AuthDialog Custom API Key Wizard > shows advanced config screen after entering model IDs 5116ms
     → expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Custom Provider/
   × AuthDialog Custom API Key Wizard > passes generationConfig when advanced options are toggled 5155ms
     → expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Custom Provider/
 ✓ src/ui/utils/statsDataService.test.ts (17 tests) 46ms
 ✓ src/acp-integration/session/rewrite/MessageRewriteMiddleware.test.ts (12 tests) 24ms
 ✓ src/ui/components/messages/AskUserQuestionDialog.test.tsx (18 tests | 1 skipped) 4611ms
   ✓ <AskUserQuestionDialog /> > single-select interaction > selects an option with Enter and submits immediately for single question  423ms
   ✓ <AskUserQuestionDialog /> > single-select interaction > navigates with selection shortcuts when custom input is not focused  302ms
   ✓ <AskUserQuestionDialog /> > single-select interaction > keeps bare k/j in custom input while Ctrl+P/N still navigates options  703ms
   ✓ <AskUserQuestionDialog /> > multi-select interaction > does not auto-submit when pressing number key in multi-select mode  403ms
   ✓ <AskUserQuestionDialog /> > multiple questions > does not auto-submit when pressing number key on Submit tab  373ms
   ✓ <AskUserQuestionDialog /> > focus behavior > does not respond to keys when isFocused is false  387ms
 ✓ src/ui/commands/arenaCommand.test.ts (15 tests) 106ms
 ✓ src/ui/commands/aboutCommand.test.ts (12 tests) 56ms
 ✓ src/ui/hooks/useQwenAuth.test.ts (17 tests) 148ms
 ✓ src/ui/commands/goalCommand.test.ts (18 tests) 53ms
 ✓ src/ui/components/QwenOAuthProgress.test.tsx (18 tests) 1783ms
 ✓ src/ui/components/LoadingIndicator.test.tsx (26 tests) 2224ms
 ✓ src/utils/doctorChecks.test.ts (18 tests) 79ms
qwen serve: --rate-limit-prompt must be a positive integer.
qwen serve: --rate-limit-mutation must be a positive integer.
Fatal error: Failed to relaunch the CLI process.
PROCESS_EXIT_CALLED
Fatal error: Failed to relaunch the CLI process.
PROCESS_EXIT_CALLED
Fatal error: Failed to relaunch the CLI process.
Runner failed
Fatal error: Failed to relaunch the CLI process.
PROCESS_EXIT_CALLED
Fatal error: Failed to relaunch the CLI process.
PROCESS_EXIT_CALLED
qwen serve: --rate-limit-read must be a positive integer.
 ✓ src/utils/relaunch.test.ts (9 tests) 50ms
qwen serve: --rate-limit-window-ms must be an integer >= 1000.
 ✓ src/commands/extensions/settings.test.ts (20 tests) 1215ms
   ✓ extensions settings command > should fail if no subcommand is provided  306ms
qwen serve: --open passes the token in the browser launch command (visible via `ps` / /proc); on a multi-user host open the URL manually instead.
qwen serve: failed to open browser: boom
 ✓ src/ui/voice/qwen-asr-realtime-session.test.ts (12 tests) 82ms
 ✓ src/utils/apiPreconnect.test.ts (26 tests) 19ms
 ✓ src/ui/components/messages/DiffRenderer.test.tsx (16 tests) 2046ms
   ✓ <OverflowProvider><DiffRenderer /></OverflowProvider> > should call colorizeCode with null language for new file with unknown extension  322ms
 ✓ src/ui/auth/useAuth.test.ts (23 tests) 143ms
 ✓ src/ui/components/shared/ScrollableList.test.tsx (13 tests) 4423ms
   ✓ <ScrollableList /> mouse scrolling > routes wheel SGR events to viewport scroll (window shifts)  535ms
   ✓ <ScrollableList /> mouse scrolling > drags the scrollbar to scroll the viewport  329ms
   ✓ <ScrollableList /> mouse scrolling > keeps dragging after the pointer leaves the scrollbar column  310ms
   ✓ <ScrollableList /> keyboard scroll > Shift+Up scrolls up by 1 line  466ms
   ✓ <ScrollableList /> keyboard scroll > Shift+Down scrolls down by 1 line  360ms
   ✓ <ScrollableList /> keyboard scroll > PageUp scrolls up by one page (containerHeight lines)  404ms
   ✓ <ScrollableList /> keyboard scroll > PageDown scrolls down by one page  349ms
   ✓ <ScrollableList /> keyboard scroll > Ctrl+Home scrolls to the very top  511ms
   ✓ <ScrollableList /> keyboard scroll > Ctrl+End scrolls to the very bottom  388ms
 ✓ src/utils/cpuProfiler.test.ts (21 tests) 23ms
 ✓ src/acp-integration/session/emitters/MessageEmitter.test.ts (20 tests) 46ms
 ✓ src/ui/commands/restoreCommand.test.ts (16 tests) 71ms
 ✓ src/commands/mcp/reconnect.test.ts (9 tests) 30ms
 ✓ src/ui/themes/detect-terminal-theme.test.ts (29 tests) 29ms
2026-07-03T12:23:09.114Z [ERROR] [DAEMON] route=POST /x route failed
  Error: boom
      at /startdir/src/qwen-code/packages/cli/src/serve/daemon-logger.test.ts:260:17
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20
      at new Promise (<anonymous>)
      at runWithTimeout (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10)
      at runTest (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1574:12)
      at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8)
      at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8)
      at runFiles (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1787:3)
2026-07-03T12:23:09.120Z [INFO] [DAEMON] msg-0
2026-07-03T12:23:09.120Z [INFO] [DAEMON] msg-1
2026-07-03T12:23:09.120Z [INFO] [DAEMON] msg-2
2026-07-03T12:23:09.120Z [INFO] [DAEMON] msg-3
2026-07-03T12:23:09.120Z [INFO] [DAEMON] msg-4
2026-07-03T12:23:09.120Z [INFO] [DAEMON] msg-5
2026-07-03T12:23:09.120Z [INFO] [DAEMON] msg-6
2026-07-03T12:23:09.120Z [INFO] [DAEMON] msg-7
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-8
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-9
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-10
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-11
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-12
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-13
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-14
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-15
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-16
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-17
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-18
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-19
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-20
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-21
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-22
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-23
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-24
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-25
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-26
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-27
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-28
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-29
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-30
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-31
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-32
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-33
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-34
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-35
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-36
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-37
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-38
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-39
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-40
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-41
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-42
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-43
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-44
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-45
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-46
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-47
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-48
2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-49
 ✓ src/serve/daemon-logger.test.ts (21 tests) 228ms
 ✓ src/commands/extensions/consent.test.ts (21 tests) 15ms
 ✓ src/serve/fs/audit.test.ts (13 tests) 29ms
 ✓ src/services/commandMetadata.test.ts (37 tests) 24ms
 ✓ src/ui/utils/todoSnapshot.test.ts (15 tests) 23ms
 ✓ src/commands/serve.test.ts (20 tests) 4891ms
   ✓ serve command args > parses --web (default true) and --no-web  396ms
   ✓ serve command args > parses --open (default false)  356ms
   ✓ serve startup import boundary > reaches listening through the dev entrypoint without loading interactive Ink internals first  3482ms
 ✓ src/utils/sessionPaths.test.ts (8 tests) 189ms
 ✓ src/serve/workspace-providers-status.test.ts (9 tests) 108ms
 ✓ src/ui/components/shared/MaxSizedBox.test.tsx (21 tests) 1750ms
 ✓ src/utils/housekeeping/scheduler.test.ts (13 tests) 41ms
 ✓ src/utils/warningHandler.test.ts (13 tests) 501ms
   ✓ initializeWarningHandler — end-to-end stderr behavior > a child process with the handler installed does not print suppressed AbortSignal warnings to stderr  477ms
 ✓ src/serve/daemon-status.test.ts (5 tests) 42ms
 ✓ src/ui/auth/ProviderSetupSteps.test.tsx (6 tests) 1258ms
   ✓ ProviderSetupSteps > maps Ctrl+P/N to advanced-config focus navigation  358ms
   ✓ ProviderSetupSteps > filters recommended models when typing search while recommendations are focused  407ms
 ✓ src/ui/hooks/useShellHistory.test.ts (9 tests) 975ms
 ✓ src/ui/commands/forkCommand.test.ts (15 tests) 62ms
 ✓ src/utils/earlyInputCapture.test.ts (28 tests) 24ms
 ✓ src/ui/commands/contextCommand.test.ts (9 tests) 139ms
 ✓ src/services/BuiltinCommandLoader.test.ts (11 tests) 48ms
 ✓ src/dualOutput/DualOutputBridge.test.ts (19 tests) 209ms
 ✓ src/ui/utils/restoreGoal.test.ts (20 tests) 19ms
 ✓ src/ui/statusLinePresets.test.ts (17 tests) 32ms
 ✓ src/utils/gitUtils.test.ts (31 tests) 34ms
 ✓ src/ui/components/RewindSelector.test.tsx (10 tests) 1855ms
 ✓ src/utils/housekeeping/cleanup.test.ts (15 tests) 47ms
 ✓ src/serve/fs/contract.test.ts (10 tests) 60ms
 ✓ src/ui/themes/color-utils.test.ts (23 tests) 16ms
 ✓ src/ui/components/Footer.test.tsx (17 tests) 1317ms
 ✓ src/services/FileCommandLoader-extension.test.ts (6 tests) 142ms
 ✓ src/ui/components/hooks/HooksManagementDialog.test.tsx (8 tests) 3221ms
   ✓ HooksManagementDialog > should render loading state initially  462ms
   ✓ HooksManagementDialog > should navigate from a matcher hook to matcher detail  577ms
   ✓ HooksManagementDialog > should navigate from matcher detail to config detail  687ms
   ✓ HooksManagementDialog > should navigate directly from a non-matcher hook to config detail  990ms
 ✓ src/commands/extensions/update.test.ts (14 tests) 44ms
 ✓ src/utils/osc.test.ts (30 tests) 66ms
 ✓ src/ui/components/hooks/HookConfigDetailStep.test.tsx (17 tests) 1356ms
 ✓ src/ui/components/Help.test.tsx (8 tests) 1188ms
 ✓ src/acp-integration/session/Session.worktree.test.ts (4 tests) 27ms
 ✓ src/ui/commands/extensionsCommand.test.ts (11 tests) 75ms
 ✓ src/ui/components/InputPrompt.test.tsx (184 tests) 85504ms
   ✓ InputPrompt > routes Space through voice input when the prompt is empty  776ms
   ✓ InputPrompt > onTabConsumerChange reporting (issue #4171) > reports true while the followup prompt suggestion is visible  836ms
   ✓ InputPrompt > onTabConsumerChange reporting (issue #4171) > reports false when a promptSuggestion is set but the buffer is non-empty  310ms
   ✓ InputPrompt > onTabConsumerChange reporting (issue #4171) > reports true while the autocomplete dropdown is visible  334ms
   ✓ InputPrompt > onTabConsumerChange reporting (issue #4171) > reports false when the input area is idle (no dropdown, no followup, no ghost)  333ms
   ✓ InputPrompt > onTabConsumerChange reporting (issue #4171) > reports false again after the autocomplete dropdown is dismissed  630ms
   ✓ InputPrompt > onSuggestionsVisibilityChange stays narrow (autocomplete only) > stays false when only a followup prompt suggestion is visible  860ms
   ✓ InputPrompt > should set the buffer text when a shell history command is retrieved  445ms
   ✓ InputPrompt > should call shellHistory.addCommandToHistory on submit in shell mode  390ms
   ✓ InputPrompt > should NOT call shell history methods when not in shell mode  718ms
   ✓ InputPrompt > should call completion.navigateUp for up arrow when suggestions are showing  702ms
   ✓ InputPrompt > should call completion.navigateDown for down arrow when suggestions are showing  563ms
   ✓ InputPrompt > should NOT call completion navigation when suggestions are not showing  907ms
   ✓ InputPrompt > clipboard image paste > should handle Ctrl+V when clipboard has an image  397ms
   ✓ InputPrompt > clipboard image paste > should handle Cmd+V when clipboard has an image  491ms
   ✓ InputPrompt > clipboard image paste > should not insert anything when clipboard has no image  426ms
   ✓ InputPrompt > clipboard image paste > should handle image save failure gracefully  417ms
   ✓ InputPrompt > clipboard image paste > should insert image path at cursor position with proper spacing  477ms
   ✓ InputPrompt > clipboard image paste > should handle errors during clipboard operations gracefully  463ms
   ✓ InputPrompt > should complete a partial parent command  419ms
   ✓ InputPrompt > should append a sub-command when the parent command is already complete  431ms
   ✓ InputPrompt > should handle the "backspace" edge case correctly  523ms
   ✓ InputPrompt > should complete a partial argument for a command  490ms
   ✓ InputPrompt > should autocomplete on Enter when suggestions are active, without submitting  586ms
   ✓ InputPrompt > should complete a command based on its altNames  454ms
   ✓ InputPrompt > should not submit on Enter when the buffer is empty or only contains whitespace  500ms
   ✓ InputPrompt > should submit directly on Enter when isPerfectMatch is true  496ms
   ✓ InputPrompt > should submit a perfect match on Enter when suggestions were not navigated  510ms
   ✓ InputPrompt > should fill and submit an export format selected with arrow navigation  690ms
   ✓ InputPrompt > should keep cycling export formats after arrow navigation fills input  745ms
   ✓ InputPrompt > should keep cycling export formats with Ctrl+P/N after arrow navigation fills input  842ms
   ✓ InputPrompt > should keep export format suggestions visible after arrow navigation fills input  659ms
   ✓ InputPrompt > should not clobber manually edited buffer when arrow is pressed after export fill  1140ms
   ✓ InputPrompt > should wrap to jsonl when pressing Up from the /export Phase 1 popup  567ms
   ✓ InputPrompt > should wrap Phase 2 cycling backward when pressing Up repeatedly  845ms
   ✓ InputPrompt > should seed Phase 2 cycling when Tab accepts a format in the /export popup  856ms
   ✓ InputPrompt > should not overwrite /export html with extra args when Down is pressed  672ms
   ✓ InputPrompt > should reset export cycling state on Escape so arrows no longer cycle  778ms
   ✓ InputPrompt > should reset export cycling state on Ctrl+C so new input is not overwritten  829ms
   ✓ InputPrompt > should cycle export format on Down when /export <fmt> was typed manually (not via popup)  1018ms
   ✓ InputPrompt > should not arm export cycling from restored history text  540ms
   ✓ InputPrompt > should trigger export-specific arrow navigation even when completion suggestions are a superset  665ms
   ✓ InputPrompt > should fall through to generic accept when Tab targets a non-export item in the /export superset popup  518ms
   ✓ InputPrompt > should fall through to generic completion when suggestions are missing an export format  627ms
   ✓ InputPrompt > should trigger Phase 1 export popup even when /export has trailing spaces  497ms
   ✓ InputPrompt > should autocomplete on Enter when user arrow-navigated a perfect-match suggestion list  623ms
   ✓ InputPrompt > should submit directly on Enter after arrow-navigate + backspace + retype to perfect match  1397ms
   ✓ InputPrompt > should submit directly on Enter for a perfect match without prior arrow navigation  489ms
   ✓ InputPrompt > should dismiss completion on Enter after accepting @path suggestion  505ms
   ✓ InputPrompt > should autocomplete @path on Tab without submitting or resetting completion  506ms
   ✓ InputPrompt > should reset history navigation after submitting on Enter  483ms
   ✓ InputPrompt > should submit directly on Enter when a complete leaf command is typed  446ms
   ✓ InputPrompt > should autocomplete an @-path on Enter without submitting  405ms
   ✓ InputPrompt > should add a newline on enter when the line ends with a backslash  508ms
   ✓ InputPrompt > should clear the buffer on Ctrl+C if it has text  543ms
   ✓ InputPrompt > should NOT clear the buffer on Ctrl+C if it is empty  635ms
   ✓ InputPrompt > cursor-based completion trigger > should trigger completion when cursor is after / without spaces  423ms
   ✓ InputPrompt > cursor-based completion trigger > should NOT trigger completion when cursor is after space following @  526ms
   ✓ InputPrompt > cursor-based completion trigger > should handle multiline text correctly  327ms
   ✓ InputPrompt > cursor-based completion trigger > should handle single line slash command correctly  330ms
   ✓ InputPrompt > cursor-based completion trigger > should handle Unicode characters with spaces after them  435ms
   ✓ InputPrompt > cursor-based completion trigger > should handle escaped spaces in paths correctly  308ms
   ✓ InputPrompt > cursor-based completion trigger > should handle Unicode characters with escaped spaces  332ms
   ✓ InputPrompt > vim mode > should not call buffer.handleInput when vim handles the input  490ms
   ✓ InputPrompt > vim mode > should call buffer.handleInput when vim does not handle the input  533ms
   ✓ InputPrompt > vim mode > should call handleInput when vim mode is disabled  532ms
   ✓ InputPrompt > vim mode > should toggle shortcuts when vim passes through ? on an empty prompt  482ms
   ✓ InputPrompt > unfocused paste > should handle bracketed paste when not focused  432ms
   ✓ InputPrompt > unfocused paste > should ignore regular keypresses when not focused  593ms
   ✓ InputPrompt > Highlighting and Cursor Display > should display cursor mid-word by highlighting the character  353ms
   ✓ InputPrompt > Highlighting and Cursor Display > should display cursor at the beginning of the line  301ms
   ✓ InputPrompt > Highlighting and Cursor Display > should display cursor at the end of a line with unicode characters  383ms
   ✓ InputPrompt > Highlighting and Cursor Display > should display cursor on an empty line  309ms
   ✓ InputPrompt > Highlighting and Cursor Display > should display cursor in the middle of a line in a multiline block  357ms
   ✓ InputPrompt > Highlighting and Cursor Display > should display cursor on a blank line in a multiline block  420ms
   ✓ InputPrompt > multiline rendering > should correctly render multiline input including blank lines  341ms
   ✓ InputPrompt > multiline paste > should handle multiline paste 'with \n newlines'  445ms
   ✓ InputPrompt > multiline paste > should handle multiline paste 'with extra slashes before \n newlines'  474ms
   ✓ InputPrompt > multiline paste > should handle multiline paste 'with \r\n newlines'  447ms
   ✓ InputPrompt > paste auto-submission protection > should prevent auto-submission immediately after paste with newlines  771ms
   ✓ InputPrompt > paste auto-submission protection > should allow submission after paste protection timeout  476ms
   ✓ InputPrompt > paste auto-submission protection > should not interfere with normal Enter key submission when no recent paste  454ms
   ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should clear buffer on second ESC press  515ms
   ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should reset escape state on any non-ESC key  381ms
   ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should handle ESC in shell mode by disabling shell mode  529ms
   ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should handle ESC when completion suggestions are showing  447ms
   ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should not call onEscapePromptChange when not provided  507ms
   ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should not interfere with existing keyboard shortcuts  660ms
   ✓ InputPrompt > reverse search > invokes reverse search on Ctrl+R  790ms
   ✓ InputPrompt > reverse search > resets reverse search state on Escape  543ms
   ✓ InputPrompt > reverse search > completes the highlighted entry on Tab and exits reverse-search  544ms
   ✓ InputPrompt > reverse search > submits the highlighted entry on Enter and exits reverse-search  530ms
   ✓ InputPrompt > reverse search > text and cursor position should be restored after reverse search  405ms
   ✓ InputPrompt > reverse search > does not fall through to shell history on Ctrl+P/N while reverse search is active  779ms
   ✓ InputPrompt > Ctrl+E keyboard shortcut > should move cursor to end of current line in multiline input  530ms
   ✓ InputPrompt > Ctrl+E keyboard shortcut > should move cursor to end of current line for single line input  645ms
   ✓ InputPrompt > command search (Ctrl+R when not in shell) > passes newest-first user history to command search  377ms
   ✓ InputPrompt > command search (Ctrl+R when not in shell) > enters command search on Ctrl+R and shows suggestions  490ms
   ✓ InputPrompt > command search (Ctrl+R when not in shell) > shows command search suggestions over active export suggestions  633ms
   ✓ InputPrompt > command search (Ctrl+R when not in shell) > expands and collapses long suggestion via Right/Left arrows  534ms
   ✓ InputPrompt > command search (Ctrl+R when not in shell) > renders match window and expanded view (snapshots)  625ms
   ✓ InputPrompt > command search (Ctrl+R when not in shell) > does not show expand/collapse indicator for short suggestions  666ms
   ✓ InputPrompt > snapshots > should render correctly in shell mode  405ms
   ✓ InputPrompt > snapshots > should render correctly when accepting edits  368ms
   ✓ InputPrompt > snapshots > should render correctly in yolo mode  454ms
   ✓ InputPrompt > snapshots > should not show inverted cursor when shell is focused  348ms
   ✓ InputPrompt > should still allow input when shell is not focused  465ms
   ✓ InputPrompt > large paste placeholder > should create placeholder for paste > 1000 characters  544ms
   ✓ InputPrompt > large paste placeholder > should create placeholder for paste > 10 lines  464ms
   ✓ InputPrompt > large paste placeholder > should use sequential IDs for multiple pastes of same size  718ms
   ✓ InputPrompt > large paste placeholder > should expand placeholder to full content on submit  394ms
   ✓ InputPrompt > large paste placeholder > should expand same-size placeholders correctly when #2 appears first  530ms
   ✓ InputPrompt > large paste placeholder > should write expanded placeholder content to shell history  706ms
   ✓ InputPrompt > large paste placeholder > should reuse placeholder ID after deletion  495ms
   ✓ InputPrompt > large paste placeholder > should handle mixed pastes with different character counts  769ms
   ✓ InputPrompt > Ctrl+Y retry shortcut > should trigger handleRetryLastPrompt on Ctrl+Y  450ms
   ✓ InputPrompt > Ctrl+Y retry shortcut > should NOT trigger retry on plain y key  496ms
   ✓ InputPrompt > Ctrl+Y retry shortcut > should NOT trigger retry on Ctrl+R (reverse search)  587ms
   ✓ InputPrompt > Ctrl+Y retry shortcut > should handle Ctrl+Y when feedback dialog is open  423ms
   ✓ InputPrompt > queue input editing > should pop queued messages into input on Up arrow when queue is non-empty  427ms
   ✓ InputPrompt > queue input editing > should prepend queued messages before existing input text  663ms
   ✓ InputPrompt > queue input editing > should pop queued messages on ESC when queue is non-empty  640ms
   ✓ InputPrompt > queue input editing > should fall through to history when pop returns null (race condition)  470ms
   ✓ InputPrompt > queue input editing > should navigate history on Up arrow when queue is empty  477ms
   ✓ InputPrompt > queue input editing > should not intercept Ctrl+P when queue is non-empty  580ms
   ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+P with cursor mid-line snaps to col 0 without touching history  586ms
   ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+N with cursor not at end-of-line snaps to end without touching history  685ms
   ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+P at col 0 walks history and parks the cursor at offset 0  491ms
   ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+P/N and arrows do not change input history while a tool confirmation owns navigation  917ms
   ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+N falls through to the agent tab bar when there is no newer history  502ms
   ✓ InputPrompt > two-step edge transition for history navigation > arrow Down applies the same snap-before-history rule as Ctrl+N  390ms
   ✓ InputPrompt > two-step edge transition for history navigation > arrow Down at end-of-line walks history  462ms
   ✓ InputPrompt > two-step edge transition for history navigation > arrow Down falls through to the agent tab bar when there is no newer history  625ms
   ✓ InputPrompt > two-step edge transition for history navigation > arrow Down jumps straight to the live agent panel when a bg sub-agent is running (#4907)  435ms
   ✓ InputPrompt > two-step edge transition for history navigation > arrow Down still falls through to the tab bar when the only bg entry is a non-agent (shell) task  505ms
   ✓ InputPrompt > two-step edge transition for history navigation > arrow Down skips terminal bg agents after the live panel visibility window (#5067)  439ms
   ✓ InputPrompt > two-step edge transition for history navigation > arrow Down focuses the background-tasks pill when only the pill is shown (workflow-only session)  482ms
   ✓ InputPrompt > two-step edge transition for history navigation > Down at the bottom of the live agent panel descends to the agent tab bar  522ms
   ✓ InputPrompt > two-step edge transition for history navigation > Down at the bottom of the live agent panel returns to the composer when no tab bar exists  436ms
   ✓ InputPrompt > two-step edge transition for history navigation > Down from an expired live panel falls through to the tab bar  433ms
   ✓ InputPrompt > two-step edge transition for history navigation > Enter on the live panel maps visible agents back to their bg entry index  438ms
   ✓ InputPrompt > two-step edge transition for history navigation > arrow Up applies the same two-step rule as Ctrl+P (snap before navigate)  464ms
   ✓ InputPrompt > two-step edge transition for history navigation > suppresses completion menu navigation for history-restored text until edited  943ms
 ✓ src/utils/writeWithBackup.test.ts (13 tests) 53ms
 ✓ src/utils/envVarResolver.test.ts (16 tests) 19ms
 ✓ src/ui/themes/theme-manager.test.ts (19 tests) 61ms
 ✓ src/utils/runBudget.test.ts (42 tests) 25ms
 ✓ src/services/command-migration-tool.test.ts (14 tests) 93ms
 ✓ src/ui/components/hooks/HookDetailStep.test.tsx (14 tests) 959ms
 ✓ src/services/prompt-processors/injectionParser.test.ts (21 tests) 33ms
 ✓ src/ui/hooks/useKeypress.test.ts (15 tests) 152ms
 ✓ src/serve/env-snapshot.test.ts (13 tests) 663ms
 ✓ src/commands/mcp/list.test.ts (7 tests) 42ms
 ✓ src/config/migration/versions/v3-to-v4.test.ts (32 tests) 26ms
 ✓ src/ui/commands/insightCommand.test.ts (5 tests) 43ms
 ✓ src/acp-integration/session/rewrite/LlmRewriter.test.ts (9 tests) 21ms
 ✓ src/ui/hooks/useLoadingIndicator.test.ts (8 tests) 187ms
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
 ✓ src/serve/routes/workspace-file-write.test.ts (10 tests) 329ms
 ✓ src/acp-integration/session/emitters/PlanEmitter.test.ts (19 tests) 27ms
 ✓ src/ui/commands/ideCommand.test.ts (8 tests) 33ms
 ✓ src/ui/components/ShellConfirmationDialog.test.tsx (12 tests) 1051ms
 ✓ src/ui/hooks/useInputHistoryStore.test.ts (14 tests) 110ms
 ✓ src/ui/commands/compressCommand.test.ts (10 tests) 121ms
 ✓ src/ui/hooks/useInputHistory.test.ts (11 tests) 62ms
 ✓ src/ui/hooks/useEditorSettings.test.ts (10 tests) 94ms
 ✓ src/ui/hooks/useSessionPicker.test.tsx (8 tests) 129ms
 ✓ src/ui/components/messages/InlineParallelAgentsDisplay.test.tsx (6 tests) 424ms
 ✓ src/ui/utils/asciiCharts.test.ts (21 tests) 110ms
 ✓ src/ui/components/hooks/HandlerListBody.test.tsx (11 tests) 855ms
 ✓ src/ui/hooks/useMessageQueue.test.ts (16 tests) 119ms
 ✓ src/ui/utils/computeStats.test.ts (12 tests) 6ms
 ✓ src/config/migration/versions/v1-to-v2.test.ts (20 tests) 26ms
 ✓ src/ui/components/StatusLineDialog.test.tsx (5 tests) 1239ms
   ✓ StatusLineDialog > persists selected presets on enter  302ms
   ✓ StatusLineDialog > keeps preset priority order after an item is toggled off and on  410ms
 ✓ src/ui/hooks/useReverseSearchCompletion.test.tsx (10 tests) 94ms
Warning: MCP approvals file error: MCP approvals file is not a valid JSON object.
Warning: MCP approvals file error: Expected property name or '}' in JSON at position 1 (line 1 column 2)
 ✓ src/services/prompt-processors/atFileProcessor.test.ts (11 tests) 33ms
 ✓ src/config/mcpApprovals.test.ts (16 tests) 70ms
 ✓ src/ui/utils/formatters.test.ts (33 tests) 13ms
 ✓ src/serve/fs/policy.test.ts (18 tests) 63ms
 ✓ src/ui/hooks/useCompletion.test.ts (13 tests) 181ms
 ✓ src/ui/commands/voice-command.test.ts (11 tests) 25ms
 ✓ src/ui/components/PluginChoicePrompt.test.tsx (13 tests) 1075ms
 ✓ src/ui/hooks/useAttentionNotifications.test.ts (9 tests) 66ms
 ✓ src/ui/commands/lspCommand.test.ts (9 tests) 77ms
 ✓ src/commands/channel/start.test.ts (5 tests) 30ms
 ✓ src/serve/daemon-status-provider.test.ts (4 tests) 966ms
   ✓ DaemonWorkspaceService — daemon-host status provider integration > merges daemon cells with live ACP-side preflight cells when a channel is up  325ms
   ✓ DaemonWorkspaceService — daemon-host status provider integration > falls back to idle ACP cells + envelope error when queryWorkspaceStatus throws mid-preflight  342ms
 ✓ src/ui/hooks/useExportCompletion.test.ts (20 tests) 177ms
 ✓ src/ui/components/SettingsCorruptedDialog.test.tsx (8 tests) 1913ms
   ✓ SettingsCorruptedDialog > should call onContinue when pressing Enter on CONTINUE option  349ms
 ✓ src/ui/hooks/useIdeTrustListener.test.ts (5 tests) 89ms
 ✓ src/ui/hooks/useTurnDiffs.test.ts (7 tests) 393ms
 ✓ src/ui/commands/setupGithubCommand.test.ts (8 tests) 66ms
 ✓ src/ui/commands/bugCommand.test.ts (4 tests) 49ms
 ✓ src/serve/permission-audit.test.ts (10 tests) 11ms
 ✓ src/commands/channel/pidfile.test.ts (16 tests) 272ms
 ✓ src/acp-integration/service/filesystem.test.ts (8 tests) 32ms
 ✓ src/ui/components/hooks/matcherGrouping.test.ts (13 tests) 12ms
 ✓ src/ui/components/background-view/BackgroundTasksPill.test.tsx (19 tests) 7ms
 ✓ src/ui/hooks/useMemoryMonitor.test.ts (8 tests) 57ms
 ✓ src/ui/voice/voice-recorder.test.ts (8 tests) 15ms
 ✓ src/serve/fs/errors.test.ts (20 tests) 34ms
 ✓ src/ui/hooks/useTrustModify.test.ts (8 tests) 129ms
 ✓ src/ui/commands/skillsCommand.test.ts (9 tests) 19ms
 ✓ src/commands/extensions/sources.test.ts (11 tests) 58ms
 ✓ src/commands/extensions/new.test.ts (9 tests) 214ms
 ✓ src/ui/commands/hooksCommand.test.ts (8 tests) 58ms
 ✓ src/commands/channel/config-utils.test.ts (17 tests) 22ms
 ✓ src/utils/windowTitle.test.ts (21 tests) 12ms
 ✓ src/i18n/mustTranslateKeys.test.ts (20 tests) 774ms
 ✓ src/ui/voice/voice-stream-session.test.ts (10 tests) 46ms
 ✓ src/config/migration/versions/v5-to-v4.test.ts (17 tests) 31ms
 ✓ src/ui/components/agent-view/AgentTabBar.test.tsx (7 tests) 504ms
 ✓ src/ui/components/BaseTextInput.test.tsx (12 tests) 548ms
 ✓ src/nonInteractive/io/StreamJsonInputReader.test.ts (11 tests) 37ms
 ✓ src/ui/components/Header.test.tsx (18 tests) 1322ms
 ✓ src/ui/hooks/useFolderTrust.test.ts (9 tests) 87ms
 ✓ src/ui/utils/highlight.test.ts (18 tests) 9ms
 ✓ src/ui/components/messages/CompressionMessage.test.tsx (8 tests) 901ms
 ✓ src/ui/hooks/usePhraseCycler.test.ts (9 tests) 186ms
 ✓ src/ui/components/MemoryDialog.test.tsx (6 tests) 1073ms
 ✓ src/ui/components/hooks/HookMatcherDetailStep.test.tsx (8 tests) 603ms
 ✓ src/ui/layouts/DefaultAppLayout.test.tsx (7 tests) 593ms
 ✓ src/ui/utils/historyUtils.test.ts (13 tests) 6ms
 ✓ src/utils/terminalSequence.test.ts (26 tests) 27ms
 ✓ src/ui/utils/synchronizedOutput.test.ts (17 tests) 44ms
 ✓ src/config/loadedSettingsAdapter.test.ts (5 tests) 63ms
 ✓ src/services/commandUtils.test.ts (14 tests) 7ms
 ✓ src/ui/components/mcp/utils.test.ts (16 tests) 29ms
 ✓ src/ui/components/arena/ArenaSelectDialog.test.tsx (5 tests) 1296ms
   ✓ ArenaSelectDialog > toggles quick preview and detailed diff for the highlighted agent  569ms
   ✓ ArenaSelectDialog > ignores Enter when the highlighted agent is not selectable  359ms
 ✓ src/ui/utils/clipboardUtils.test.ts (27 tests) 92418ms
   ✓ clipboardUtils > clipboardHasImage > should return true when clipboard contains image  7761ms
   ✓ clipboardUtils > clipboardHasImage > should return false when clipboard does not contain image  3188ms
   ✓ clipboardUtils > clipboardHasImage > should return false when wl-paste is not found  3690ms
   ✓ clipboardUtils > xclip / X11 path > clipboardHasImage > should detect xclip as the clipboard tool on X11  4103ms
   ✓ clipboardUtils > xclip / X11 path > clipboardHasImage > should return false when xclip reports no image types  3038ms
   ✓ clipboardUtils > xclip / X11 path > clipboardHasImage > should return false when xclip is not found  2792ms
   ✓ clipboardUtils > xclip / X11 path > saveClipboardImage > should return null when xclip is not found  2702ms
   ✓ clipboardUtils > BMP-to-PNG conversion (wl-paste) > should return null when python3 PIL conversion fails  2636ms
   ✓ clipboardUtils > BMP-to-PNG conversion (wl-paste) > should prefer PNG over BMP when both are available  3060ms
   ✓ clipboardUtils > saveFromCommand error paths > should return null on spawn timeout (5s)  3976ms
   ✓ clipboardUtils > saveFromCommand error paths > should return null on spawn error  2856ms
   ✓ clipboardUtils > saveFromCommand error paths > should return null on stdout error  3431ms
   ✓ clipboardUtils > saveClipboardImage > should return null when no clipboard tool is available  2818ms
   ✓ clipboardUtils > saveClipboardImage > should return null on spawn error during list-types  4216ms
   ✓ clipboardUtils > cleanupOldClipboardImages > should not throw errors when directory does not exist  4088ms
   ✓ clipboardUtils > cleanupOldClipboardImages > should complete without errors on valid directory  3358ms
   ✓ clipboardUtils > macOS/Windows fallback > should return false on non-linux platform when @teddyzhu/clipboard fails  3934ms
   ✓ clipboardUtils > macOS/Windows fallback > should return null on non-linux platform when saving fails  2925ms
   ✓ clipboardUtils > cache behavior > should reset wl-paste cache between clipboardHasImage calls  3769ms
   ✓ clipboardUtils > writeOsc52 > should write OSC 52 sequence to stdout when stdout is TTY  3598ms
   ✓ clipboardUtils > writeOsc52 > should write OSC 52 sequence to stderr when stdout is not TTY but stderr is  2555ms
   ✓ clipboardUtils > writeOsc52 > should return false and not write when neither stdout nor stderr is TTY  2947ms
   ✓ clipboardUtils > writeOsc52 > should handle special characters in text  3681ms
   ✓ clipboardUtils > writeOsc52 > should handle empty string  2517ms
   ✓ clipboardUtils > writeOsc52 > should return false on write error  2714ms
   ✓ clipboardUtils > writeOsc52 > should wrap in tmux DCS envelope when TMUX is set  3100ms
   ✓ clipboardUtils > writeOsc52 > should wrap in screen DCS envelope when STY is set  2963ms
 ✓ src/ui/components/TrustDialog.test.tsx (6 tests) 732ms
 ✓ src/commands/extensions/utils.test.ts (11 tests) 29ms
 ✓ src/ui/commands/mcpCommand.test.ts (10 tests) 26ms
(node:18363) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 exit listeners added to [process]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ src/ui/components/SessionPreview.test.tsx (7 tests) 897ms
 ✓ src/nonInteractive/control/controllers/permissionController.test.ts (4 tests) 75ms
 ✓ src/ui/voice/native-audio-recorder.test.ts (7 tests) 26ms
 ✓ src/services/saved-workflow-loader.test.ts (11 tests) 13ms
 ✓ src/utils/deepMerge.test.ts (13 tests) 7ms
 ✓ src/core/initializer.test.ts (11 tests) 17ms
 ✓ src/remoteInput/RemoteInputWatcher.test.ts (7 tests) 533ms
 ✓ src/ui/hooks/useMcpApproval.test.ts (7 tests) 90ms
 ✓ src/ui/commands/approvalModeCommand.test.ts (13 tests) 127ms
 ✓ src/ui/models/availableModels.test.ts (14 tests) 11ms
 ✓ src/ui/hooks/useGitBranchName.test.ts (8 tests) 95ms
 ✓ src/ui/contexts/SessionContext.test.tsx (4 tests) 293ms
 ✓ src/ui/utils/lowlightLoader.test.ts (5 tests) 112ms
 ✓ src/ui/components/Tips.test.ts (9 tests) 13ms
qwen serve: /acp WS error: test error
qwen serve: /acp WS write failed: write failed
 ✓ src/serve/acp-http/ws-stream.test.ts (14 tests) 50ms
 ✓ src/ui/components/shared/RadioButtonSelect.test.tsx (5 tests) 512ms
 ✓ src/ui/commands/initCommand.test.ts (5 tests) 34ms
 ✓ src/ui/components/AnsiOutput.test.tsx (8 tests) 799ms
 ✓ src/ui/components/messages/CompactToolGroupDisplay.test.tsx (8 tests) 626ms
 ✓ src/ui/utils/mouse.test.ts (15 tests) 24ms
 ✓ src/ui/voice/sox-recorder.test.ts (5 tests) 36ms
 ✓ src/ui/components/AppHeader.test.tsx (6 tests) 598ms
 ✓ src/utils/costCalculator.test.ts (14 tests) 17ms
 ✓ src/config/migration/scheduler.test.ts (7 tests) 50ms
 ✓ src/ui/commands/compressFastCommand.test.ts (7 tests) 42ms
 ✓ src/nonInteractive/control/controllers/systemController.test.ts (8 tests) 11ms
 ✓ src/ui/components/ConsentPrompt.test.tsx (9 tests) 748ms
 ✓ src/ui/components/hooks/HooksListStep.test.tsx (9 tests) 916ms
 ✓ src/config/mcpJson.test.ts (11 tests) 23ms
 ✓ src/ui/voice/voice-refine.test.ts (11 tests) 14ms
 ✓ src/ui/hooks/useSlashCompletion.integration.test.ts (3 tests) 246ms
 ✓ src/ui/commands/planCommand.test.ts (7 tests) 47ms
 ✓ src/utils/commands.test.ts (13 tests) 24ms
 ✓ src/ui/components/messages/DiffStatsDisplay.test.tsx (6 tests) 556ms
 ✓ src/i18n/index.test.ts (11 tests) 25539ms
   ✓ bundled locale fallback > loads bundled builtin translations when locale files are absent on disk  3347ms
   ✓ bundled locale fallback > falls back to bundled translations when a user locale default export is null  2681ms
   ✓ bundled locale fallback > falls back to bundled translations when a user locale default export is an array  3373ms
   ✓ language normalization > normalizes explicit locale IDs before loading translations  3623ms
   ✓ language normalization > normalizes explicit POSIX locale strings before loading translations  3283ms
   ✓ localizeToolDisplayName > translates tool badges without colliding with generic UI strings  2618ms
   ✓ localizeToolDisplayName > falls back to the English display name for untranslated tools  3226ms
   ✓ localizeToolDisplayName > has a zh translation for every core tool display name  3376ms
 ✓ src/ui/commands/resumeCommand.test.ts (9 tests) 21ms
 ✓ src/commands/extensions/disable.test.ts (9 tests) 128ms
qwen serve: /acp SSE onClose threw: onClose boom
qwen serve: /acp SSE write failed, closing stream: EPIPE
 ✓ src/serve/acp-http/sse-stream.test.ts (8 tests) 50ms
 ✓ src/ui/components/background-view/workflow-save-overlay.test.tsx (7 tests) 1263ms
 ✓ src/utils/cleanup.test.ts (8 tests) 161ms
 ✓ src/ui/utils/terminalRedrawOptimizer.test.ts (9 tests) 32ms
 ✓ src/commands/mcp/approve.test.ts (7 tests) 39ms
 ✓ src/ui/utils/sessionPickerUtils.test.ts (15 tests) 36ms
 ✓ src/ui/utils/updateCheck.test.ts (9 tests) 21ms
 ✓ src/ui/components/mcp/steps/ResourceListStep.test.tsx (5 tests) 1426ms
   ✓ ResourceListStep > windows a long list with correct count + arrow indicators  1044ms
 ✓ src/ui/components/StickyTodoList.test.tsx (6 tests) 696ms
 ✓ src/ui/components/arena/ArenaCards.test.tsx (2 tests) 243ms
 ✓ src/ui/layouts/ScreenReaderAppLayout.test.tsx (6 tests) 371ms
 ✓ src/ui/components/ToolStatsDisplay.test.tsx (5 tests) 476ms
 ✓ src/ui/utils/CodeColorizer.test.ts (18 tests) 10ms
 ✓ src/ui/components/SuggestionsDisplay.test.tsx (5 tests) 604ms
   ✓ SuggestionsDisplay > renders localized loading text in zh  311ms
 ✓ src/services/FileCommandLoader-markdown.test.ts (4 tests) 138ms
 ✓ src/ui/App.test.tsx (7 tests) 508ms
 ✓ src/services/markdown-command-parser.test.ts (13 tests) 88ms
 ✓ src/ui/utils/MermaidDiagram.test.tsx (5 tests) 628ms
 ✓ src/ui/utils/backgroundWorkUtils.test.ts (8 tests) 8ms
 ✓ src/ui/commands/docsCommand.test.ts (5 tests) 27ms
 ✓ src/commands/extensions/enable.test.ts (9 tests) 331ms
 ✓ src/services/notificationService.test.ts (9 tests) 10ms
 ✓ src/utils/sandbox.test.ts (17 tests) 7ms
 ✓ src/ui/components/ApprovalModeDialog.test.tsx (9 tests) 755ms
 ✓ src/ui/components/views/McpStatus.test.tsx (12 tests) 781ms
 ✓ src/nonInteractive/io/StreamJsonOutputAdapter.dualOutput.test.ts (5 tests) 12ms
 ✓ src/config/normalizeDisabledTools.test.ts (16 tests) 16ms
 ✓ src/services/tips/tipScheduler.test.ts (7 tests) 11ms
 ✓ src/ui/components/SessionSummaryDisplay.test.tsx (3 tests) 289ms
 ✓ src/ui/commands/historyCommand.test.ts (5 tests) 13ms
 ✓ src/utils/housekeeping/throttledOnce.test.ts (7 tests) 87ms
 ✓ src/ui/commands/importConfigCommand.test.ts (9 tests) 30ms
 ✓ src/utils/readStdin.test.ts (5 tests) 603ms
   ✓ readStdin > should enforce the stdin limit by UTF-8 byte size  566ms
 ✓ src/ui/hooks/useFocus.test.ts (6 tests) 112ms
 ✓ src/ui/utils/modelsBySource.test.ts (7 tests) 18ms
 ✓ src/services/tips/tipHistory.test.ts (11 tests) 27ms
 ✓ src/ui/commands/arenaCommand.agentComplete.test.ts (1 test) 12ms
 ✓ src/ui/hooks/useTimer.test.ts (8 tests) 137ms
 ✓ src/ui/components/shared/EnumSelector.test.tsx (9 tests) 760ms
 ✓ src/ui/hooks/useAwaySummary.test.ts (2 tests) 100ms
 ✓ src/ui/components/DiffDialog.test.tsx (1 test) 165ms
 ✓ src/ui/commands/dreamCommand.test.ts (5 tests) 32ms
 ✓ src/ui/components/shared/TextInput.test.tsx (6 tests) 646ms
 ✓ src/ui/components/views/ContextUsage.test.tsx (4 tests) 858ms
 ✓ src/ui/contexts/VimModeContext.test.tsx (4 tests) 523ms
 ✓ src/ui/components/FolderTrustDialog.test.tsx (9 tests) 1081ms
 ✓ src/ui/components/hooks/HooksDisabledStep.test.tsx (8 tests) 687ms
 ✓ src/ui/hooks/useWelcomeBack.test.ts (4 tests) 216ms
 ✓ src/ui/hooks/useResizeSettleRepaint.test.ts (6 tests) 94ms
 ✓ src/ui/hooks/useSessionPicker.test.ts (4 tests) 81ms
 ✓ src/ui/utils/measure-element-position.test.tsx (4 tests) 305ms
 ✓ src/ui/components/mcp/steps/ResourceDetailStep.test.tsx (6 tests) 473ms
 ✓ src/ui/hooks/useConfigInitMessage.test.ts (7 tests) 89ms
 ✓ src/utils/userStartupWarnings.test.ts (5 tests) 37ms
 ✓ src/ui/components/extensions/steps/ExtensionListStep.test.tsx (5 tests) 492ms
 ✓ src/ui/components/hooks/sourceLabels.test.ts (10 tests) 7ms
 ✓ src/ui/components/messages/ConversationMessages.test.tsx (10 tests) 922ms
 ✓ src/ui/components/shared/ToolElapsedTime.test.tsx (8 tests) 758ms
 ✓ src/ui/utils/markdownUtilities.test.ts (12 tests) 35ms
 ✓ src/ui/components/PrepareLabel.test.tsx (6 tests) 604ms
 ✓ src/acp-integration/session/rewrite/TurnBuffer.test.ts (12 tests) 13ms
 ✓ src/ui/hooks/useWorktreeSession.test.tsx (4 tests) 458ms
 ✓ src/ui/hooks/useTerminalNotification.test.ts (6 tests) 44ms
 ✓ src/ui/components/SettingInputPrompt.test.tsx (6 tests) 613ms
 ✓ src/ui/commands/toolsCommand.test.ts (4 tests) 44ms
 ✓ src/utils/userPromptExpansionHook.test.ts (12 tests) 6ms
 ✓ src/ui/components/agent-view/AgentComposer.test.tsx (1 test) 122ms
 ✓ src/ui/components/QueuedMessageDisplay.test.tsx (7 tests) 898ms
 ✓ src/ui/hooks/useAnimatedScrollbar.test.ts (6 tests) 68ms
 ✓ src/commands/mcp/remove.test.ts (4 tests) 28ms
 ✓ src/ui/commands/forgetCommand.test.ts (6 tests) 12ms
 ✓ src/utils/headlessSafetyWarnings.test.ts (7 tests) 17ms
 ✓ src/config/mcpServers.test.ts (6 tests) 7ms
 ✓ src/ui/themes/theme.test.ts (5 tests) 17ms
 ✓ src/ui/hooks/useFollowupSuggestions.test.tsx (2 tests) 140ms
 ✓ src/acp-integration/session/permissionUtils.test.ts (4 tests) 17ms
 ✓ src/serve/acp-http/connection-registry.test.ts (2 tests) 11ms
 ✓ src/ui/utils/mermaidVisualRenderer.test.ts (4 tests) 21ms
 ✓ src/acp-integration/session/rewrite/config.test.ts (5 tests) 10ms
 ✓ src/ui/voice/voice-stream-retry.test.ts (5 tests) 22ms
 ✓ src/commands/extensions/list.test.ts (4 tests) 149ms
No extensions installed.
 ✓ src/ui/components/views/ExtensionsList.test.tsx (9 tests) 495ms
 ✓ src/commands/auth.test.ts (9 tests) 802ms
   ✓ auth command > routes `auth` to the removal notice  425ms
   ✓ auth command > routes `auth status` to the removal notice  340ms
 ✓ src/ui/components/extensions/steps/ActionSelectionStep.test.tsx (5 tests) 359ms
 ✓ src/commands/extensions.test.tsx (11 tests) 2258ms
   ✓ extensions command > should register uninstall subcommand  464ms
   ✓ extensions command > should register disable subcommand  518ms
   ✓ extensions command > should register enable subcommand  382ms
 ✓ src/ui/components/ThemeDialog.test.tsx (2 tests) 859ms
   ✓ ThemeDialog Snapshots > should render correctly in theme selection mode  580ms
 ✓ src/ui/utils/displayUtils.test.ts (8 tests) 4ms
 ✓ src/ui/hooks/useMouseEvents.test.tsx (1 test) 46ms
 ✓ src/services/insight/generators/StaticInsightGenerator.test.ts (1 test) 74ms
 ✓ src/ui/utils/software-cursor.test.ts (10 tests) 26ms
 ✓ src/commands/extensions/link.test.ts (4 tests) 548ms
   ✓ extensions link command > should fail if no path is provided  316ms
 ✓ src/config/keyBindings.test.ts (4 tests) 28ms
 ✓ src/commands/sessions.test.ts (3 tests) 135ms
 ✓ src/ui/hooks/mcpResourceRef.test.ts (7 tests) 13ms
 ✓ src/config/modelProvidersScope.test.ts (4 tests) 4ms
 ✓ src/ui/components/ContextSummaryDisplay.test.tsx (4 tests) 239ms
 ✓ src/serve/acp-http/json-rpc.test.ts (9 tests) 5ms
 ✓ src/services/tips/tipRegistry.test.ts (5 tests) 7ms
 ✓ src/ui/commands/branchCommand.test.ts (6 tests) 16ms
 ✓ src/acp-integration/authPreflight.test.ts (3 tests) 4ms
 ✓ src/ui/commands/terminalSetupCommand.test.ts (5 tests) 9ms
 ✓ src/commands/sessions/common.test.ts (3 tests) 18ms
 ✓ src/ui/components/TodoDisplay.test.tsx (6 tests) 352ms
 ✓ src/config/path-freshness.test.ts (3 tests) 9ms
 ✓ src/utils/startupWarnings.test.ts (4 tests) 7ms
 ✓ src/ui/components/mcp/steps/ServerDetailStep.test.tsx (4 tests) 477ms
 ✓ src/ui/hooks/useBatchedScroll.test.ts (4 tests) 81ms
 ✓ src/utils/systemInfoFields.test.ts (2 tests) 15ms
 ✓ src/ui/components/IdeTrustChangeDialog.test.tsx (6 tests) 504ms
 ✓ src/utils/acpModelUtils.test.ts (20 tests) 23ms
 ✓ src/ui/utils/export/collect.test.ts (1 test) 13ms
 ✓ src/core/auth.test.ts (3 tests) 37ms
 ✓ src/ui/commands/authCommand.test.ts (6 tests) 29ms
 ✓ src/commands/mcp.test.ts (3 tests) 58ms
 ✓ src/ui/hooks/useModelCommand.test.ts (4 tests) 60ms
 ✓ src/ui/components/shared/DescriptiveRadioButtonSelect.test.tsx (2 tests) 365ms
 ✓ src/ui/commands/rememberCommand.test.ts (5 tests) 25ms
 ✓ src/ui/components/messages/BtwMessage.test.tsx (5 tests) 410ms
 ✓ src/core/theme.test.ts (5 tests) 25ms
 ✓ src/test-utils/mockCommandContext.test.ts (3 tests) 8ms
 ✓ src/ui/utils/theme-background.test.ts (3 tests) 6ms
 ✓ src/ui/components/WorktreeExitDialog.test.tsx (1 test) 265ms
 ✓ src/ui/components/mcp/steps/ServerListStep.test.tsx (1 test) 253ms
 ✓ src/utils/resolvePath.test.ts (7 tests) 10ms
 ✓ src/ui/utils/export/normalize.test.ts (1 test) 5ms
 ✓ src/ui/components/GoalPill.test.tsx (2 tests) 445ms
 ✓ src/ui/utils/approvalModeDisplay.test.ts (5 tests) 4ms
 ✓ src/ui/components/subagents/manage/AgentSelectionStep.test.tsx (1 test) 184ms
 ✓ src/ui/voice/voice-model.test.ts (4 tests) 20ms
 ✓ src/ui/commands/statuslineCommand.test.ts (4 tests) 11ms
 ✓ src/ui/components/mcp/steps/ToolListStep.test.tsx (1 test) 401ms
   ✓ ToolListStep > navigates with Ctrl+N/P readline aliases  398ms
 ✓ src/ui/utils/workflow-keyword.test.ts (11 tests) 5ms
 ✓ src/utils/standalone-update-verify.test.ts (3 tests) 52ms
 ✓ src/ui/utils/latexRenderer.test.ts (4 tests) 36ms
 ✓ src/ui/commands/helpCommand.test.ts (3 tests) 17ms
 ✓ src/ui/hooks/useThemeCommand.test.ts (1 test) 55ms
 ✓ src/ui/contexts/AgentViewContext.test.tsx (2 tests) 179ms
 ✓ src/ui/components/mcp/MCPHealthPill.test.tsx (6 tests) 4ms
 ✓ src/ui/utils/layoutUtils.test.ts (4 tests) 15ms
 ✓ src/ui/voice/voice-availability.test.ts (5 tests) 8ms
 ✓ src/ui/components/messages/GoalStatusMessage.test.tsx (3 tests) 243ms
 ✓ src/ui/commands/quitCommand.test.ts (1 test) 47ms
 ✓ src/ui/components/views/ToolsList.test.tsx (3 tests) 335ms
 ✓ src/ui/voice/voice-keyterms.test.ts (2 tests) 13ms
 ✓ src/utils/processUtils.test.ts (1 test) 8ms
 ✓ src/ui/components/LoopDetectionConfirmation.test.tsx (2 tests) 459ms
   ✓ LoopDetectionConfirmation > renders correctly  393ms
 ✓ src/services/command-factory.test.ts (2 tests) 47ms
 ✓ src/services/prompt-processors/argumentProcessor.test.ts (2 tests) 52ms
 ✓ src/ui/commands/themeCommand.test.ts (2 tests) 29ms
 ✓ src/ui/components/GeminiRespondingSpinner.test.tsx (2 tests) 129ms
 ✓ src/ui/components/approvalModeVisuals.test.ts (3 tests) 5ms
 ✓ src/ui/commands/trustCommand.test.ts (3 tests) 21ms
 ✓ src/ui/components/messages/StatusMessages.test.tsx (1 test) 180ms
 ✓ src/acp-integration/runtimeOutputDirContext.test.ts (1 test) 5ms
 ✓ src/ui/commands/settingsCommand.test.ts (2 tests) 24ms
 ✓ src/ui/commands/deleteCommand.test.ts (2 tests) 15ms
 ✓ src/ui/commands/permissionsCommand.test.ts (3 tests) 12ms
 ✓ src/ui/commands/editorCommand.test.ts (2 tests) 6ms
 ✓ src/acp-integration/authMethods.test.ts (2 tests) 8ms
 ✓ src/ui/components/ExternalAuthProgress.test.tsx (1 test) 100ms
 ✓ src/utils/midTurnUserMessage.test.ts (3 tests) 4ms
 ✓ src/ui/components/VoiceIndicator.test.tsx (2 tests) 159ms
 ✓ src/commands/extensions/uninstall.test.ts (1 test) 13ms
 ✓ src/ui/commands/memoryCommand.test.ts (1 test) 9ms
qwen serve: voice websocket accepted; activeSessions=1
qwen serve: voice websocket start received
qwen serve: voice websocket stop received
qwen serve: voice websocket finalized successfully
qwen serve: voice websocket slot released; activeSessions=0
qwen serve: voice websocket accepted; activeSessions=1
qwen serve: voice websocket accepted; activeSessions=1
qwen serve: voice websocket start received
qwen serve: voice websocket stop received
qwen serve: voice websocket finalized successfully
qwen serve: voice websocket slot released; activeSessions=0
qwen serve: voice websocket accepted; activeSessions=1
qwen serve: voice websocket start received
qwen serve: voice websocket failed: No voice model is configured for this workspace.
qwen serve: voice websocket slot released; activeSessions=0
qwen serve: voice websocket accepted; activeSessions=1
qwen serve: voice websocket start received
qwen serve: voice websocket failed: Voice transcription failed. Please try again.
qwen serve: voice websocket slot released; activeSessions=0
qwen serve: voice websocket accepted; activeSessions=1
qwen serve: voice websocket start received
qwen serve: voice websocket stop received
qwen serve: voice websocket failed: Voice transcription failed. Please try again.
qwen serve: voice websocket slot released; activeSessions=0
qwen serve: voice websocket accepted; activeSessions=1
qwen serve: voice websocket start received
qwen serve: voice websocket abort received
qwen serve: voice websocket slot released; activeSessions=0
qwen serve: voice websocket accepted; activeSessions=1
qwen serve: voice websocket start received
qwen serve: voice websocket abort received
qwen serve: voice websocket slot released; activeSessions=0
qwen serve: voice websocket accepted; activeSessions=1
qwen serve: voice websocket stop received
qwen serve: voice websocket abort received
qwen serve: voice websocket slot released; activeSessions=0
qwen serve: voice websocket accepted; activeSessions=1
qwen serve: voice websocket start received
qwen serve: voice websocket slot released; activeSessions=0
qwen serve: voice websocket accepted; activeSessions=1
qwen serve: voice websocket start received
qwen serve: voice websocket stop received
qwen serve: voice websocket failed: Voice session exceeded the time limit.
qwen serve: voice websocket accepted; activeSessions=1
qwen serve: voice websocket start received
qwen serve: voice websocket failed: Recording is too long for transcription (max ~5 minutes).
qwen serve: voice websocket slot released; activeSessions=0
qwen serve: voice websocket accepted; activeSessions=1
qwen serve: voice websocket start received
qwen serve: voice websocket failed: Queued voice audio exceeded the memory limit.
qwen serve: voice websocket accepted; activeSessions=1
qwen serve: voice websocket start received
qwen serve: voice websocket failed: Voice session exceeded the time limit.
qwen serve: voice websocket slot released; activeSessions=0
qwen serve: voice websocket accepted; activeSessions=1
qwen serve: voice websocket accepted; activeSessions=2
qwen serve: voice websocket accepted; activeSessions=3
qwen serve: voice websocket accepted; activeSessions=4
qwen serve: voice websocket accepted; activeSessions=5
qwen serve: voice websocket accepted; activeSessions=6
qwen serve: voice websocket accepted; activeSessions=7
qwen serve: voice websocket accepted; activeSessions=8
qwen serve: voice websocket failed: Voice session exceeded the time limit.
qwen serve: voice websocket slot released; activeSessions=7
qwen serve: voice websocket failed: Voice session exceeded the time limit.
qwen serve: voice websocket slot released; activeSessions=6
qwen serve: voice websocket failed: Voice session exceeded the time limit.
qwen serve: voice websocket slot released; activeSessions=5
qwen serve: voice websocket failed: Voice session exceeded the time limit.
qwen serve: voice websocket slot released; activeSessions=4
qwen serve: voice websocket failed: Voice session exceeded the time limit.
qwen serve: voice websocket slot released; activeSessions=3
qwen serve: voice websocket failed: Voice session exceeded the time limit.
qwen serve: voice websocket slot released; activeSessions=2
qwen serve: voice websocket failed: Voice session exceeded the time limit.
qwen serve: voice websocket slot released; activeSessions=1
qwen serve: voice websocket failed: Voice session exceeded the time limit.
qwen serve: voice websocket slot released; activeSessions=0
qwen serve: voice websocket accepted; activeSessions=1
qwen serve: voice websocket accepted; activeSessions=1
qwen serve: voice websocket accepted; activeSessions=2
qwen serve: voice websocket accepted; activeSessions=3
qwen serve: voice websocket accepted; activeSessions=4
qwen serve: voice websocket accepted; activeSessions=5
qwen serve: voice websocket accepted; activeSessions=6
qwen serve: voice websocket accepted; activeSessions=7
qwen serve: voice websocket accepted; activeSessions=8
qwen serve: voice websocket rejected; activeSessions=8
qwen serve: voice websocket slot released; activeSessions=7
qwen serve: voice websocket accepted; activeSessions=8
 ✓ src/serve/voice/voice-ws.test.ts (16 tests) 23ms

⎯⎯⎯⎯⎯⎯ Failed Tests 12 ⎯⎯⎯⎯⎯⎯⎯

 FAIL  src/ui/auth/AuthDialog.test.tsx > AuthDialog > should go back from Coding Plan region selection to Alibaba ModelStudio
AssertionError: expected '┌────────────────────────────────────…' to contain 'Alibaba ModelStudio · Step 1/3 · Regi…'

- Expected
+ Received

- Alibaba ModelStudio · Step 1/3 · Region
+ ┌──────────────────────────────────────────────────────────────────────────────────────────────────┐
+ │                                                                                                  │
+ │ Alibaba ModelStudio · Access Method                                                              │
+ │                                                                                                  │
+ │ › Coding Plan                                                                                    │
+ │   For individual developers · Weekly quota included                                              │
+ │                                                                                                  │
+ │   Token Plan                                                                                     │
+ │   For teams and companies · Usage-based billing with dedicated endpoint                          │
+ │                                                                                                  │
+ │   Standard API Key                                                                               │
+ │   Connect with an existing ModelStudio API key                                                   │
+ │                                                                                                  │
+ │ Enter to select, ↑↓ to navigate, Esc to go back                                                  │
+ │                                                                                                  │
+ └──────────────────────────────────────────────────────────────────────────────────────────────────┘

 ❯ vi.waitFor.timeout src/ui/auth/AuthDialog.test.tsx:155:27
    153|   await vi.waitFor(
    154|     () => {
    155|       expect(lastFrame()).toContain(expectedText);
       |                           ^
    156|     },
    157|     { timeout: WAIT_FOR_TIMEOUT },

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/12]⎯

 FAIL  src/ui/auth/AuthDialog.test.tsx > AuthDialog > should go back from third-party provider API key input to provider list
AssertionError: expected '┌────────────────────────────────────…' to contain 'Third-party Providers · Provider'

- Expected
+ Received

- Third-party Providers · Provider
+ ┌──────────────────────────────────────────────────────────────────────────────────────────────────┐
+ │                                                                                                  │
+ │ Connect a Provider                                                                               │
+ │                                                                                                  │
+ │   Alibaba ModelStudio                                                                            │
+ │   Official recommended setup: Coding Plan, Token Plan, or Standard API Key                       │
+ │                                                                                                  │
+ │ › Third-party Providers                                                                          │
+ │   Choose a built-in provider and connect with an API key                                         │
+ │                                                                                                  │
+ │   Custom Provider                                                                                │
+ │   Manually connect a local server, proxy, or unsupported provider                                │
+ │                                                                                                  │
+ │ ────────────────────────────────────────────────────────────────────────────────                 │
+ │                                                                                                  │
+ │ Terms of Services and Privacy Notice:                                                            │
+ │ https://qwenlm.github.io/qwen-code-docs/en/users/support/tos-privacy/                            │
+ │                                                                                                  │
+ └──────────────────────────────────────────────────────────────────────────────────────────────────┘

 ❯ vi.waitFor.timeout src/ui/auth/AuthDialog.test.tsx:155:27
    153|   await vi.waitFor(
    154|     () => {
    155|       expect(lastFrame()).toContain(expectedText);
       |                           ^
    156|     },
    157|     { timeout: WAIT_FOR_TIMEOUT },

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/12]⎯

 FAIL  src/ui/auth/AuthDialog.test.tsx > AuthDialog > drives API key provider steps from endpoint options metadata
AssertionError: expected '┌────────────────────────────────────…' to contain 'DeepSeek API Key · Step 1/2 · API Key'

- Expected
+ Received

- DeepSeek API Key · Step 1/2 · API Key
+ ┌──────────────────────────────────────────────────────────────────────────────────────────────────┐
+ │                                                                                                  │
+ │ Third-party Providers · Provider                                                                 │
+ │                                                                                                  │
+ │ › DeepSeek API Key                                                                               │
+ │   Quick setup for DeepSeek (deepseek-v4-flash, deepseek-v4-pro)                                  │
+ │                                                                                                  │
+ │   MiniMax API Key                                                                                │
+ │   Quick setup for MiniMax models                                                                 │
+ │                                                                                                  │
+ │   Z.AI API Key                                                                                   │
+ │   Quick setup for Z.AI models                                                                    │
+ │                                                                                                  │
+ │   Idealab API Key                                                                                │
+ │   Alibaba internal LLM service (Qwen3.6-Plus-DogFooding, DeepSeek V4, Kimi K2.6)                 │
+ │                                                                                                  │
+ │   ModelScope API Key                                                                             │
+ │   Quick setup for ModelScope API Inference                                                       │
+ │                                                                                                  │
+ │   OpenRouter                                                                                     │
+ │   Connect with an OpenRouter API key (get one from openrouter.ai/keys)                           │
+ │                                                                                                  │
+ │   Requesty                                                                                       │
+ │   Connect with a Requesty API key (get one from app.requesty.ai/api-keys)                        │
+ │                                                                                                  │
+ │ Enter to select, ↑↓ to navigate, Esc to go back                                                  │
+ │                                                                                                  │
+ └──────────────────────────────────────────────────────────────────────────────────────────────────┘

 ❯ vi.waitFor.timeout src/ui/auth/AuthDialog.test.tsx:155:27
    153|   await vi.waitFor(
    154|     () => {
    155|       expect(lastFrame()).toContain(expectedText);
       |                           ^
    156|     },
    157|     { timeout: WAIT_FOR_TIMEOUT },

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/12]⎯

 FAIL  src/ui/auth/AuthDialog.test.tsx > AuthDialog > should submit Token Plan through the shared subscription handler
AssertionError: expected '┌────────────────────────────────────…' to contain 'Alibaba ModelStudio · Step 1/2 · API …'

- Expected
+ Received

- Alibaba ModelStudio · Step 1/2 · API Key
+ ┌──────────────────────────────────────────────────────────────────────────────────────────────────┐
+ │                                                                                                  │
+ │ Alibaba ModelStudio · Access Method                                                              │
+ │                                                                                                  │
+ │   Coding Plan                                                                                    │
+ │   For individual developers · Weekly quota included                                              │
+ │                                                                                                  │
+ │ › Token Plan                                                                                     │
+ │   For teams and companies · Usage-based billing with dedicated endpoint                          │
+ │                                                                                                  │
+ │   Standard API Key                                                                               │
+ │   Connect with an existing ModelStudio API key                                                   │
+ │                                                                                                  │
+ │ Enter to select, ↑↓ to navigate, Esc to go back                                                  │
+ │                                                                                                  │
+ └──────────────────────────────────────────────────────────────────────────────────────────────────┘

 ❯ vi.waitFor.timeout src/ui/auth/AuthDialog.test.tsx:155:27
    153|   await vi.waitFor(
    154|     () => {
    155|       expect(lastFrame()).toContain(expectedText);
       |                           ^
    156|     },
    157|     { timeout: WAIT_FOR_TIMEOUT },

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/12]⎯

 FAIL  src/ui/auth/AuthDialog.test.tsx > AuthDialog > should pre-fill the Model IDs step with previously saved custom model IDs
 FAIL  src/ui/auth/AuthDialog.test.tsx > AuthDialog > should return from Token Plan API key input to Token Plan selection
AssertionError: expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Token Plan/

- Expected: 
/›\s*(?:\d+\.\s*)?Token Plan/

+ Received: 
"┌──────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                                                                                  │
│ Alibaba ModelStudio · Access Method                                                              │
│                                                                                                  │
│ › Coding Plan                                                                                    │
│   For individual developers · Weekly quota included                                              │
│                                                                                                  │
│   Token Plan                                                                                     │
│   For teams and companies · Usage-based billing with dedicated endpoint                          │
│                                                                                                  │
│   Standard API Key                                                                               │
│   Connect with an existing ModelStudio API key                                                   │
│                                                                                                  │
│ Enter to select, ↑↓ to navigate, Esc to go back                                                  │
│                                                                                                  │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘"

 ❯ expectSelectedOption src/ui/auth/AuthDialog.test.tsx:130:17
    128| 
    129| const expectSelectedOption = (frame: string | undefined, label: string…
    130|   expect(frame).toMatch(
       |                 ^
    131|     new RegExp(`›\\s*(?:\\d+\\.\\s*)?${escapeRegExp(label)}`),
    132|   );
 ❯ vi.waitFor.timeout src/ui/auth/AuthDialog.test.tsx:141:7

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/12]⎯

 FAIL  src/ui/auth/AuthDialog.test.tsx > AuthDialog Custom API Key Wizard > navigates to protocol selection when Custom API Key is selected
 FAIL  src/ui/auth/AuthDialog.test.tsx > AuthDialog Custom API Key Wizard > navigates to base URL input after selecting a protocol
 FAIL  src/ui/auth/AuthDialog.test.tsx > AuthDialog Custom API Key Wizard > shows review screen with JSON after entering model IDs
 FAIL  src/ui/auth/AuthDialog.test.tsx > AuthDialog Custom API Key Wizard > calls handleProviderSubmit on Enter in review view
 FAIL  src/ui/auth/AuthDialog.test.tsx > AuthDialog Custom API Key Wizard > shows advanced config screen after entering model IDs
 FAIL  src/ui/auth/AuthDialog.test.tsx > AuthDialog Custom API Key Wizard > passes generationConfig when advanced options are toggled
AssertionError: expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Custom Provider/

- Expected: 
/›\s*(?:\d+\.\s*)?Custom Provider/

+ Received: 
"┌──────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                                                                                  │
│ Connect a Provider                                                                               │
│                                                                                                  │
│   Alibaba ModelStudio                                                                            │
│   Official recommended setup: Coding Plan, Token Plan, or Standard API Key                       │
│                                                                                                  │
│ › Third-party Providers                                                                          │
│   Choose a built-in provider and connect with an API key                                         │
│                                                                                                  │
│   Custom Provider                                                                                │
│   Manually connect a local server, proxy, or unsupported provider                                │
│                                                                                                  │
│ ────────────────────────────────────────────────────────────────────────────────                 │
│                                                                                                  │
│ Terms of Services and Privacy Notice:                                                            │
│ https://qwenlm.github.io/qwen-code-docs/en/users/support/tos-privacy/                            │
│                                                                                                  │
└──────────────────────────────────────────────────────────────────────────────────────────────────┘"

 ❯ expectSelectedOption src/ui/auth/AuthDialog.test.tsx:130:17
    128| 
    129| const expectSelectedOption = (frame: string | undefined, label: string…
    130|   expect(frame).toMatch(
       |                 ^
    131|     new RegExp(`›\\s*(?:\\d+\\.\\s*)?${escapeRegExp(label)}`),
    132|   );
 ❯ vi.waitFor.timeout src/ui/auth/AuthDialog.test.tsx:141:7

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[6/12]⎯


 Test Files  1 failed | 486 passed (487)
      Tests  12 failed | 9487 passed | 2 skipped (9501)
   Start at  12:21:02
   Duration  278.12s (transform 200.56s, setup 113.75s, collect 3648.43s, tests 609.01s, environment 448.93s, prepare 99.21s)

JUNIT report written to /startdir/src/qwen-code/packages/cli/junit.xml
npm error Lifecycle script `test` failed with error:
npm error code 1
npm error path /startdir/src/qwen-code/packages/cli
npm error workspace @qwen-code/qwen-code@0.19.2
npm error location /startdir/src/qwen-code/packages/cli
npm error command failed
npm error command sh -c vitest run '--exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts'


> @qwen-code/qwen-code-core@0.19.2 test
> vitest run --exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts


 RUN  v3.2.4 /startdir/src/qwen-code/packages/core
      Coverage enabled with v8

 ✓ src/telemetry/session-tracing.test.ts (120 tests) 111ms
 ✓ src/utils/schemaValidator.test.ts (132 tests) 545ms
 ✓ src/services/shellExecutionService.test.ts (100 tests) 641ms
 ✓ src/services/sessionService.test.ts (66 tests) 385ms
 ✓ src/hooks/hookEventHandler.test.ts (125 tests) 311ms

+----------------- Qwen OAuth Device Authorization ------------------+
|                                                                    |
| Please visit the following URL in your browser to authorize:       |
|                                                                    |
| https://chat.qwen.ai/device?code=TEST123                           |
|                                                                    |
| Waiting for authorization to complete...                           |
|                                                                    |
+--------------------------------------------------------------------+


+----------------- Qwen OAuth Device Authorization ------------------+
|                                                                    |
| Please visit the following URL in your browser to authorize:       |
|                                                                    |
| https://chat.qwen.ai/device?code=TEST123                           |
|                                                                    |
| Waiting for authorization to complete...                           |
|                                                                    |
+--------------------------------------------------------------------+


+----------------- Qwen OAuth Device Authorization ------------------+
|                                                                    |
| Please visit the following URL in your browser to authorize:       |
|                                                                    |
| https://chat.qwen.ai/device?code=TEST123                           |
|                                                                    |
| Waiting for authorization to complete...                           |
|                                                                    |
+--------------------------------------------------------------------+


+----------------- Qwen OAuth Device Authorization ------------------+
|                                                                    |
| Please visit the following URL in your browser to authorize:       |
|                                                                    |
| https://chat.qwen.ai/device?code=TEST123                           |
|                                                                    |
| Waiting for authorization to complete...                           |
|                                                                    |
+--------------------------------------------------------------------+


+----------------- Qwen OAuth Device Authorization ------------------+
|                                                                    |
| Please visit the following URL in your browser to authorize:       |
|                                                                    |
| https://chat.qwen.ai/device?code=TEST123                           |
|                                                                    |
| Waiting for authorization to complete...                           |
|                                                                    |
+--------------------------------------------------------------------+

 ✓ src/qwen/qwenOAuth2.test.ts (86 tests) 2147ms
   ✓ getQwenOAuthClient - Enhanced Error Scenarios > should handle different authentication failure reasons - timeout  2046ms
 ✓ src/agents/background-tasks.test.ts (88 tests) 193ms
 ✓ src/core/loggingContentGenerator/loggingContentGenerator.test.ts (49 tests) 104ms
 ✓ src/models/modelsConfig.test.ts (73 tests) 78ms
 ✓ src/core/openaiContentGenerator/pipeline.test.ts (58 tests) 122ms
 ✓ src/services/memoryPressureMonitor.test.ts (72 tests) 199ms
 ✓ src/utils/fileUtils.test.ts (98 tests) 317ms
 ✓ src/services/cronScheduler.test.ts (89 tests) 1823ms
   ✓ CronScheduler > durable ownership > reloads durable tasks when the file changes on disk  326ms
 ✓ src/utils/retry.test.ts (84 tests) 170ms
 ✓ src/tools/skill.test.ts (72 tests) 165ms
 ✓ src/tools/ripGrep.test.ts (75 tests) 660ms
 ✓ src/utils/atomicFileWrite.test.ts (81 tests) 215ms
 ✓ src/hooks/hookSystem.test.ts (88 tests) 314ms
 ✓ src/core/openaiContentGenerator/converter.test.ts (134 tests) 119ms
 ✓ src/services/chatCompressionService.test.ts (71 tests) 179ms
 ✓ src/permissions/permission-manager.test.ts (247 tests) 257ms
 ✓ src/agents/background-agent-resume.test.ts (28 tests) 620ms
 ✓ src/tools/mcp-transport-pool.test.ts (34 tests) 429ms
qwen serve: MCP server 'c' refused (budget exhausted, budget=2, mode=enforce)
qwen serve: MCP server 'd' refused (budget exhausted, budget=2, mode=enforce)
qwen serve: MCP server 'mike' refused (budget exhausted, budget=2, mode=enforce)
qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce)
qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce)
qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce)
qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce)
qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce)
qwen serve: ignoring invalid QWEN_SERVE_MCP_CLIENT_BUDGET='-3' (expected positive integer); MCP budget enforcement disabled for this child.
qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce)
qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce)
qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce)
qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce)
qwen serve: QWEN_SERVE_MCP_BUDGET_MODE=enforce requires QWEN_SERVE_MCP_CLIENT_BUDGET=N; downgrading to off. Set both env vars to enable MCP guardrail enforcement.
qwen serve: MCP server 'third' refused (budget exhausted, budget=2, mode=enforce)
qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce)
qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce)
qwen serve: QWEN_SERVE_MCP_BUDGET_MODE=warn requires QWEN_SERVE_MCP_CLIENT_BUDGET=N; downgrading to off. Set both env vars to enable MCP guardrail enforcement.
qwen serve: McpClientManager constructed with budgetMode=enforce but no clientBudget; downgrading to off.
qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce)
qwen serve: MCP server 'c' refused (budget exhausted, budget=1, mode=enforce)
qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce)
qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce)
qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce)
qwen serve: MCP server 'c' refused (budget exhausted, budget=1, mode=enforce)
qwen serve: MCP server 'd' refused (budget exhausted, budget=1, mode=enforce)
qwen serve: MCP server 'e' refused (budget exhausted, budget=1, mode=enforce)
qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce)
qwen serve: MCP server 'c' refused (budget exhausted, budget=1, mode=enforce)
qwen serve: MCP server 'd' refused (budget exhausted, budget=1, mode=enforce)
 ✓ src/tools/edit.test.ts (76 tests) 545ms
 ✓ src/tools/mcp-client-manager.test.ts (102 tests) 771ms
 ✓ src/tools/mcp-client.test.ts (89 tests) 944ms
 ✓ src/tools/agent/agent.test.ts (111 tests) 1370ms
   ✓ AgentTool > AgentToolInvocation > passes custom ignore files into worktree isolation file service  504ms
 ✓ src/skills/skill-manager.test.ts (73 tests) 314ms
 ✓ src/subagents/subagent-manager.test.ts (113 tests) 1091ms
   ✓ SubagentManager > Runtime Configuration Methods > createAgentHeadless model override > should create a new ContentGenerator for bare model IDs  347ms
 ✓ src/agents/runtime/workflow-orchestrator.test.ts (115 tests) 637ms
 ✓ src/core/coreToolScheduler.test.ts (208 tests) 1691ms
 ✓ src/config/config.test.ts (251 tests) 2427ms
   ✓ Server Config (config.ts) > MemoryPressureMonitor isolation > returns a distinct monitor for child Configs created via Object.create  901ms
 ✓ src/services/postCompactAttachments.test.ts (67 tests) 165ms
 ✓ src/core/anthropicContentGenerator/converter.test.ts (51 tests) 67ms
 ✓ src/mcp/oauth-provider.test.ts (27 tests) 366ms
 ✓ src/core/anthropicContentGenerator/anthropicContentGenerator.test.ts (69 tests) 16288ms
   ✓ AnthropicContentGenerator > uses claude-cli identity (User-Agent + x-app + Bearer auth) for non-Anthropic baseURLs  2307ms
   ✓ AnthropicContentGenerator > per-request anthropic-beta header > does not leak customHeaders[anthropic-beta] (any casing) into defaultHeaders  320ms
   ✓ AnthropicContentGenerator > DeepSeek anthropic-compatible provider > does not inject when request sets thinkingConfig.includeThoughts=false  1012ms
   ✓ AnthropicContentGenerator > countTokens > counts tokens using the request tokenizer  1095ms
   ✓ AnthropicContentGenerator > countTokens > falls back to character approximation when tokenizer throws  702ms
   ✓ AnthropicContentGenerator > generateContentStream > redacts proxy credentials from stream creation errors  505ms
 ✓ src/services/loopDetectionService.test.ts (62 tests) 735ms
   ✓ LoopDetectionService > Content Loop Detection > should not detect a loop for random content  421ms
 ✓ src/telemetry/sdk.test.ts (59 tests) 964ms
 ✓ src/tools/read-file.test.ts (62 tests) 636ms
 ✓ src/tools/shell.test.ts (241 tests) 5222ms
 ✓ src/agents/runtime/agent-headless.test.ts (37 tests) 5632ms
   ✓ subagent.ts > AgentHeadless > create (Tool Validation) > should create a AgentHeadless successfully with minimal config  1991ms
 ✓ src/services/fileHistoryService.test.ts (51 tests) 426ms
 ✓ src/core/openaiContentGenerator/provider/dashscope.test.ts (70 tests) 132ms
 ✓ src/services/microcompaction/microcompact.test.ts (56 tests) 31ms
 ✓ src/telemetry/log-to-span-processor.test.ts (51 tests) 78ms
 ✓ src/lsp/NativeLspService.test.ts (18 tests) 109ms
 ✓ src/tools/lsp.test.ts (70 tests) 877ms
 ✓ src/utils/filesearch/crawler.test.ts (48 tests) 3695ms
   ✓ crawler > two-tier strategy: git ls-files + ripgrep fallback > should recurse into tracked submodules on the git path  414ms
 ✓ src/core/logger.test.ts (52 tests) 443ms
 ✓ src/utils/memoryDiscovery.test.ts (38 tests) 259ms
 ✓ src/hooks/hookAggregator.test.ts (49 tests) 23ms
 ✓ src/utils/memoryImportProcessor.test.ts (31 tests) 120ms
 ✓ src/utils/gitDiff.test.ts (58 tests) 4608ms
   ✓ fetchGitDiff > marks oversized untracked text files as truncated  353ms
   ✓ fetchGitDiff fast path with untracked-only workspaces > takes the >MAX_FILES_FOR_DETAILS short-circuit when shortstat is empty  325ms
   ✓ fetchGitDiff untracked counting > line-counts every untracked file in the slow path, not just the first MAX_FILES  448ms
 ✓ src/hooks/hookPlanner.test.ts (64 tests) 72ms
 ✓ src/utils/editor.test.ts (152 tests) 52ms
 ✓ src/extension/github.test.ts (64 tests) 284ms
 ✓ src/core/toolHookTriggers.test.ts (58 tests) 117ms
 ✓ src/telemetry/uiTelemetry.test.ts (38 tests) 125ms
 ✓ src/services/monitorRegistry.test.ts (56 tests) 165ms
 ✓ src/qwen/qwenContentGenerator.test.ts (44 tests) 343ms
 ✓ src/ide/ide-client.test.ts (33 tests) 201ms
 ✓ src/qwen/sharedTokenManager.test.ts (32 tests) 393ms
 ✓ src/agents/team/tasks.test.ts (53 tests) 374ms
 ✓ src/services/fileReadCache.test.ts (53 tests) 94ms
 ✓ src/telemetry/loggers.test.ts (56 tests) 126ms
 ✓ src/extension/claude-converter.test.ts (50 tests) 214ms
 ✓ src/tools/mcp-tool.test.ts (54 tests) 319ms
 ✓ src/tools/write-file.test.ts (47 tests) 377ms
 ✓ src/extension/extensionManager.test.ts (55 tests) 294ms
 ✓ src/memory/manager.test.ts (37 tests) 179ms
 ✓ src/tools/monitor.test.ts (73 tests) 119ms
 ✓ src/utils/paths.test.ts (117 tests | 1 skipped) 68ms
 ✓ src/services/commitAttribution.test.ts (58 tests) 71ms
 ✓ src/skills/skill-load.test.ts (68 tests) 120ms
 ✓ src/permissions/autoMode.test.ts (83 tests) 67ms
 ✓ src/hooks/hookRegistry.test.ts (36 tests) 126ms
 ✓ src/core/openaiContentGenerator/streamingToolCallParser.test.ts (60 tests) 27ms
 ✓ src/utils/sessionStorageUtils.test.ts (53 tests) 53ms
 ✓ src/models/modelRegistry.test.ts (56 tests) 52ms
 ✓ src/core/baseLlmClient.test.ts (35 tests) 88ms
 ✓ src/services/backgroundShellRegistry.test.ts (45 tests) 42ms
 ✓ src/tools/todoWrite.test.ts (28 tests) 169ms
 ✓ src/utils/environmentContext.test.ts (44 tests) 151ms
 ✓ src/models/modelConfigResolver.test.ts (51 tests) 65ms
 ✓ src/utils/shell-utils.test.ts (138 tests) 69ms
 ✓ src/agents/team/test-utils/coordination-harness.test.ts (28 tests) 561ms
 ✓ src/core/prompts.test.ts (58 tests) 51ms
 ✓ src/services/chatRecordingService.test.ts (34 tests) 297ms
 ✓ src/telemetry/qwen-logger/qwen-logger.test.ts (36 tests) 98ms
 ✓ src/extension/extensionSettings.test.ts (23 tests) 247ms
 ✓ src/core/geminiChat.test.ts (192 tests) 17284ms
   ✓ GeminiChat > should correctly retry and append to an existing history mid-conversation  2198ms
   ✓ GeminiChat > should retry if the model returns a completely empty stream (no chunks)  2172ms
   ✓ GeminiChat > should discard valid partial content from a failed attempt upon retry  2085ms
 ✓ src/permissions/shell-semantics.test.ts (103 tests) 95ms
 ✓ src/tools/tool-registry.test.ts (34 tests) 307ms
 ✓ src/agents/backends/InProcessBackend.test.ts (34 tests) 264ms
 ✓ src/lsp/NativeLspService.integration.test.ts (30 tests) 31ms
 ✓ src/config/storage.test.ts (63 tests) 65ms
 ✓ src/core/turn.test.ts (25 tests) 32ms
 ✓ src/utils/openaiLogger.test.ts (38 tests) 285ms
 ✓ src/utils/truncation.test.ts (28 tests) 61ms
 ✓ src/services/gitWorktreeService.test.ts (27 tests) 27ms
 ✓ src/hooks/hookRunner.test.ts (36 tests) 241ms
 ✓ src/tools/workflow/workflow.test.ts (34 tests) 394ms
 ✓ src/utils/filesearch/fileSearch.test.ts (29 tests) 1182ms
 ✓ src/utils/runtimeFetchOptions.test.ts (44 tests) 36ms
 ✓ src/utils/notebook.test.ts (30 tests) 74ms
 ✓ src/services/sessionService.rename.test.ts (18 tests) 76ms
 ✓ src/utils/memoryDiagnostics.test.ts (12 tests) 291ms
 ✓ src/utils/workspaceContext.test.ts (45 tests) 87ms
 ✓ src/tools/grep.test.ts (51 tests) 4039ms
   ✓ GrepTool > Result limiting > should show all results when no limit is specified  620ms
   ✓ GrepTool > Result limiting > should respect custom limit parameter  819ms
   ✓ GrepTool > Result limiting > should not show truncation warning when all results fit  751ms
 ✓ src/utils/pdf.test.ts (34 tests) 37ms
 ✓ src/services/fileSystemService.test.ts (43 tests) 72ms
[ToolSearch] setTools() failed while revealing deferred tools: chat not initialised
[ToolSearch] setTools() failed while revealing deferred tools: chat not initialised
[ToolSearch] ensureTool failed for "bravo": mid-batch failure
 ✓ src/hooks/promptHookRunner.test.ts (25 tests) 293ms
 ✓ src/tools/notebook-edit.test.ts (29 tests) 375ms
 ✓ src/utils/gitDirect.test.ts (68 tests) 126ms
 ✓ src/tools/glob.test.ts (48 tests) 4618ms
 ✓ src/agents/backends/ITermBackend.test.ts (46 tests) 69ms
 ✓ src/tools/tool-search.test.ts (33 tests) 269ms
 ✓ src/services/compactionInputSlimming.test.ts (35 tests) 12ms
 ✓ src/core/openaiContentGenerator/provider/default.test.ts (26 tests) 30ms
 ✓ src/memory/extract.test.ts (14 tests) 250ms
 ✓ src/agents/runtime/workflow-sandbox.test.ts (109 tests) 30942ms
   ✓ createWorkflowSandbox security > synchronous infinite loop is aborted by vm timeout  30104ms
 ✓ src/utils/secure-browser-launcher.test.ts (31 tests) 75ms
 ✓ src/providers/__tests__/install.test.ts (20 tests) 66ms
 ✓ src/goals/goalHook.test.ts (22 tests) 49ms
 ✓ src/services/visionBridge/vision-bridge-service.test.ts (30 tests) 33ms
 ✓ src/tools/computer-use/tool.test.ts (40 tests) 148ms
 ✓ src/agents/agent-transcript.test.ts (25 tests) 55ms
 ✓ src/utils/rulesDiscovery.test.ts (34 tests) 146ms
 ✓ src/services/tokenUsageService.test.ts (18 tests) 546ms
 ✓ src/hooks/sessionHooksManager.test.ts (32 tests) 22ms
 ✓ src/telemetry/metrics.test.ts (40 tests) 2733ms
 ✓ src/agents/arena/ArenaAgentClient.test.ts (21 tests) 66ms
 ✓ src/telemetry/tracer.test.ts (31 tests) 47ms
 ✓ src/utils/shellAstParser.test.ts (148 tests) 366ms
 ✓ src/mcp/oauth-utils.test.ts (33 tests) 65ms
 ✓ src/utils/sideQuery.test.ts (21 tests) 175ms
 ✓ src/agents/backends/TmuxBackend.test.ts (27 tests) 56ms
 ✓ src/tools/ls.test.ts (30 tests) 253ms
 ✓ src/tools/exitPlanMode.test.ts (33 tests) 30ms
 ✓ src/utils/systemEncoding.test.ts (41 tests) 40ms
 ✓ src/agents/workflow-run-registry.test.ts (32 tests) 24ms
 ✓ src/core/openaiContentGenerator/provider/deepseek.test.ts (25 tests) 29ms
 ✓ src/extension/variables.test.ts (20 tests) 70ms
 ✓ src/agents/runtime/agent-interactive.test.ts (22 tests) 791ms
 ✓ src/core/client.test.ts (206 tests) 26742ms
   ✓ Gemini Client (client.ts) > sendMessageStream > should stop infinite loop after MAX_TURNS when nextSpeaker always returns model  403ms
   ✓ Gemini Client (client.ts) > sendMessageStream > should respect MAX_TURNS limit even when turns parameter is set to a large value  372ms
   ✓ Gemini Client (client.ts) > sendMessageStream > IDE context with pending tool calls > should send the latest IDE context on the next message after a skipped context  359ms
   ✓ Gemini Client (client.ts) > sendMessageStream > hooks fast-path optimization > emits active_goal null when the Stop hook clears the goal  419ms
   ✓ Gemini Client (client.ts) > sendMessageStream > hooks fast-path optimization > emits active_goal null when the Stop hook clears the goal before aborting  383ms
   ✓ Gemini Client (client.ts) > sendMessageStream > hooks fast-path optimization > emits active_goal changes when aborting before Stop hook continuation  335ms
   ✓ Gemini Client (client.ts) > generateContent with fast model > should resolve per-model config and fall back when createContentGenerator fails  520ms
   ✓ Gemini Client (client.ts) > generateContent with fast model > should resolve model across authTypes when main authType misses  324ms
   ✓ Gemini Client (client.ts) > drainSkillAndCommandReminders > drain with a genuinely new skill emits a reminder  381ms
   ✓ Gemini Client (client.ts) > drainSkillAndCommandReminders > removed skill prunes its key so re-adding re-announces  334ms
   ✓ Gemini Client (client.ts) > drainSkillAndCommandReminders > returns early when Skill tool is not registered  530ms
   ✓ Gemini Client (client.ts) > drainSkillAndCommandReminders > returns early and logs when collectAvailableSkillEntries throws  350ms
   ✓ Gemini Client (client.ts) > #5147 shutdown gate > is idempotent when called multiple times  309ms
 ✓ src/services/sleepInhibitor.test.ts (21 tests) 818ms
 ✓ src/services/usageHistoryService.test.ts (13 tests) 49ms
 ✓ src/goals/goalJudge.test.ts (20 tests) 38ms
 ✓ src/tools/task-stop.test.ts (14 tests) 167ms
 ✓ src/utils/pathReader.test.ts (17 tests) 193ms
 ✓ src/core/tokenLimits.test.ts (59 tests) 14ms
 ✓ src/mcp/oauth-token-storage.test.ts (31 tests) 3203ms
   ✓ MCPOAuthTokenStorage > with encrypted flag false > saveToken > should warn on a successful retry after a plaintext write fails  318ms
 ✓ src/utils/readManyFiles.test.ts (19 tests) 81ms
 ✓ src/agents/runtime/workflow-saved.test.ts (33 tests) 138ms
 ✓ src/hooks/asyncHookRegistry.test.ts (20 tests) 40ms
 ✓ src/mcp/token-storage/file-token-storage.test.ts (25 tests) 1993ms
 ✓ src/memory/writeContextFile.test.ts (16 tests) 94ms
 ✓ src/services/toolUseSummary.test.ts (34 tests) 103ms
 ✓ src/extension/marketplace.test.ts (32 tests) 90ms
 ✓ src/agents/team/mailbox.test.ts (18 tests) 166ms
 ✓ src/tools/team-lifecycle.test.ts (5 tests) 745ms
   ✓ Team lifecycle E2E > full lifecycle: create → tasks → messages → list → update → delete  725ms
 ✓ src/telemetry/config.test.ts (36 tests) 36ms
 ✓ src/agents/team/teamHelpers.test.ts (45 tests) 153ms
 ✓ src/utils/abortController.test.ts (26 tests | 1 skipped) 39ms
 ✓ src/subagents/validation.test.ts (41 tests) 22ms
 ✓ src/permissions/classifier-transcript.test.ts (14 tests) 17ms
 ✓ src/utils/rateLimit.test.ts (35 tests) 32ms
 ✓ src/telemetry/detailed-span-attributes.test.ts (28 tests) 35ms
 ✓ src/tools/askUserQuestion.test.ts (23 tests) 25ms
 ✓ src/hooks/functionHookRunner.test.ts (20 tests) 118ms
 ✓ src/services/chatRecordingService.autoTitle.test.ts (17 tests) 24ms
 ✓ src/permissions/classifier.test.ts (23 tests) 38ms
 ✓ src/ide/ideContext.test.ts (23 tests) 37ms
 ✓ src/core/geminiContentGenerator/geminiContentGenerator.test.ts (12 tests) 28ms
 ✓ src/agents/arena/ArenaManager.test.ts (25 tests) 3635ms
   ✓ ArenaManager > backend initialization > should emit SESSION_UPDATE with type warning when backend detection returns warning  514ms
   ✓ ArenaManager > chat history forwarding > should pass chatHistory to backend spawnAgent calls  512ms
   ✓ ArenaManager > chat history forwarding > should pass undefined chatHistory when not provided  508ms
   ✓ ArenaManager > active session lifecycle > collects diff summaries and fallback approach summaries  1015ms
   ✓ ArenaManager > active session lifecycle > cancel should stop backend and move session to CANCELLED  510ms
   ✓ ArenaManager > active session lifecycle > cleanup should release backend and worktree resources after start  505ms
 ✓ src/services/gitWorktreeService.symlinks.integ.test.ts (15 tests) 4772ms
   ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > symlinks a configured directory into the new worktree  389ms
   ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > silently skips an existing destination (no overwrite)  316ms
   ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > rejects absolute paths  424ms
   ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > rejects paths that traverse outside the repo root  457ms
   ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > rejects paths inside .git (security guard)  413ms
   ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > rejects paths inside .qwen (security guard)  396ms
   ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > works when the repo path itself contains a symlink boundary (round-7 self-inflicted regression guard)  568ms
   ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > handles multiple entries — some present, some missing  304ms
   ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > is a no-op when symlinkDirectories is omitted or empty  355ms
 ✓ src/utils/sedEditParser.test.ts (34 tests) 21ms
 ✓ src/tools/computer-use/client.test.ts (27 tests) 4044ms
   ✓ callTool reconnect path > succeeds on a later attempt after backing off past an earlier transport failure  1002ms
   ✓ callTool reconnect path > exhausts exactly 3 reconnect attempts on persistent transport errors, then re-throws the last  3010ms
 ✓ src/utils/toolResultDisplayCompaction.test.ts (14 tests) 33ms
 ✓ src/utils/partUtils.test.ts (43 tests) 18ms
 ✓ src/core/__tests__/openaiTimeoutHandling.test.ts (12 tests) 58ms
 ✓ src/utils/forkedAgent.cache.test.ts (12 tests) 14ms
 ✓ src/utils/retryErrorClassification.test.ts (27 tests) 26ms
 ✓ src/services/chatRecordingService.customTitle.test.ts (13 tests) 28ms
 ✓ src/utils/forkedAgent.agent.test.ts (7 tests) 37ms
 ✓ src/services/cronTasksFile.test.ts (22 tests) 222ms
 ✓ src/followup/followupState.test.ts (18 tests) 24ms
 ✓ src/telemetry/daemon-metrics.test.ts (18 tests) 869ms
 ✓ src/utils/jsonl-utils.test.ts (28 tests) 106ms
 ✓ src/tools/send-message.test.ts (16 tests) 263ms
 ✓ src/core/openaiContentGenerator/openaiContentGenerator.test.ts (14 tests) 71ms
 ✓ src/memory/skillReviewNudge.integration.test.ts (18 tests) 70ms
 ✓ src/core/openaiContentGenerator/errorHandler.test.ts (36 tests) 83ms
 ✓ src/tools/artifact/artifact-tool.test.ts (18 tests) 643ms
   ✓ ArtifactTool > enforces the size cap  478ms
 ✓ src/utils/ignorePatterns.test.ts (29 tests) 47ms
 ✓ src/agents/team/test-utils/fake-agent.test.ts (28 tests) 21ms
 ✓ src/tools/session-mcp-view.test.ts (17 tests) 51ms
 ↓ src/agents/runtime/workflow-p4a-meta-live.live.test.ts (6 tests | 6 skipped)
 ✓ src/agents/runtime/agent-core.test.ts (10 tests) 15ms
 ✓ src/utils/request-tokenizer/imageTokenizer.test.ts (18 tests) 35ms
 ✓ src/agents/runtime/agent-statistics.test.ts (32 tests) 136ms
 ✓ src/permissions/dangerousRules.test.ts (110 tests) 57ms
 ✓ src/permissions/classifier-prompts/system-prompt.test.ts (21 tests) 15ms
 ✓ src/memory/userMemory.test.ts (13 tests) 39ms
 ✓ src/mcp/token-storage/keychain-token-storage.test.ts (24 tests) 3530ms
 ✓ src/utils/debugLogger.test.ts (21 tests) 119ms
 ✓ src/services/sessionTitle.test.ts (15 tests) 163ms
 ✓ src/memory/skillReviewAgentPlanner.test.ts (19 tests) 65ms
 ✓ src/tools/agent/agent-override.test.ts (9 tests) 210ms
 ✓ src/permissions/destructive-commands.test.ts (31 tests) 10ms
 ✓ src/mcp/token-storage/hybrid-token-storage.test.ts (13 tests) 58ms
 ✓ src/utils/yaml-parser.test.ts (38 tests) 161ms
 ✓ src/core/openaiContentGenerator/pipeline.concurrent.test.ts (2 tests) 80ms
 ✓ src/utils/getFolderStructure.test.ts (15 tests) 72ms
 ✓ src/services/memoryDiagnosticsDumper.test.ts (11 tests) 54ms
 ✓ src/utils/request-tokenizer/textTokenizer.test.ts (31 tests) 128ms
 ✓ src/tools/read-mcp-resource.test.ts (15 tests) 139ms
 ✓ src/tools/web-fetch.test.ts (18 tests) 241ms
 ✓ src/agents/backends/iterm-it2.test.ts (19 tests) 61ms
 ✓ src/tools/modifiable-tool.test.ts (11 tests) 112ms
 ✓ src/tools/enter-worktree.test.ts (26 tests) 133ms
 ✓ src/utils/generateContentResponseUtilities.test.ts (29 tests) 16ms
 ✓ src/services/worktreeSessionService.test.ts (19 tests) 147ms
 ✓ src/utils/filesearch/ignore.test.ts (20 tests) 70ms
 ✓ src/core/openaiContentGenerator/taggedThinkingParser.test.ts (27 tests) 26ms
 ✓ src/agents/runtime/workflow-stall.test.ts (19 tests) 49ms
 ✓ src/utils/filesearch/fzfWorkerHandle.test.ts (13 tests) 685ms
 ✓ src/subagents/agent-frontmatter-schema.test.ts (26 tests) 20ms
 ✓ src/services/sessionService.corruption.test.ts (11 tests) 45ms
 ✓ src/permissions/denialTracking.test.ts (25 tests) 12ms
 ✓ src/confirmation-bus/message-bus.test.ts (15 tests) 83ms
 ✓ src/telemetry/resource-attributes.test.ts (35 tests) 42ms
 ✓ src/extension/npm.test.ts (26 tests) 45ms
 ✓ src/output/json-formatter.test.ts (15 tests) 18ms
 ✓ src/telemetry/daemon-tracing.test.ts (10 tests) 39ms
 ✓ src/tools/artifact/oss-publisher.test.ts (16 tests) 55ms
 ✓ src/utils/terminalSerializer.test.ts (20 tests) 181ms
 ✓ src/tools/computer-use/bootstrap.test.ts (13 tests) 147ms
 ✓ src/hooks/httpHookRunner.test.ts (10 tests) 77ms
 ✓ src/plan-gate/planApprovalGate.test.ts (22 tests) 4038ms
   ✓ runPlanApprovalGate > should return unavailable when agent exhausts retries  2013ms
   ✓ runPlanApprovalGate decision edge cases > should succeed after partial retries (fail 2, then succeed)  2007ms
 ✓ src/tools/task-update.test.ts (14 tests) 328ms
 ✓ src/utils/runtimeStatus.test.ts (19 tests) 156ms
 ✓ src/utils/gitIgnoreParser.test.ts (21 tests) 146ms
 ✓ src/tools/loop-wakeup.test.ts (18 tests) 146ms
 ✓ src/extension/sourceRegistry.test.ts (22 tests) 18ms
 ✓ src/services/fileDiscoveryService.test.ts (15 tests) 91ms
 ✓ src/memory/store.test.ts (10 tests) 60ms
 ✓ src/utils/nextSpeakerChecker.test.ts (13 tests) 96ms
 ✓ src/core/modalityDefaults.test.ts (42 tests) 27ms
 ✓ src/services/cronTasksLock.test.ts (15 tests) 37ms
 ✓ src/agents/team/test-utils/fake-backend.test.ts (18 tests) 107ms
 ✓ src/services/runtimeSampleRing.test.ts (10 tests) 28ms
 ✓ src/utils/envVarResolver.test.ts (16 tests) 27ms
 ✓ src/models/content-generator-config.test.ts (13 tests) 12ms
 ✓ src/services/fileReadCache.integration.test.ts (3 tests) 225ms
 ✓ src/tools/exit-worktree.session.integ.test.ts (8 tests) 4669ms
   ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > preserves the sidecar after keep so --resume can restore the worktree binding  445ms
   ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > clears the sidecar after remove  562ms
   ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > does not clear the sidecar when slug does not match  629ms
   ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > is a no-op when no sidecar exists  347ms
   ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > removes a re-attached worktree when the old marker owner is inactive  805ms
   ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > removes a stale-owned worktree when launched from inside it without a sidecar  862ms
   ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > refuses a re-attached remove when the marker owner runtime is active  523ms
   ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > refuses a re-attached remove when the owner is active under a repo-subdir relative runtime dir  493ms
 ✓ src/utils/retryPolicy.test.ts (20 tests) 25ms
 ✓ src/tools/exit-worktree.test.ts (16 tests) 2525ms
   ✓ ExitWorktreeTool > execute() — session ownership & lifecycle > refuses remove when the marker names a different session  389ms
   ✓ ExitWorktreeTool > execute() — session ownership & lifecycle > keep returns success and leaves the worktree + branch intact  466ms
   ✓ ExitWorktreeTool > execute() — session ownership & lifecycle > allows removal when the worktree predates the session-marker guard  478ms
   ✓ ExitWorktreeTool > execute() — session ownership & lifecycle > refuses removal when the worktree branch has unmerged commits  556ms
   ✓ ExitWorktreeTool > execute() — session ownership & lifecycle > marker also written by writeWorktreeSessionMarker survives round-trip  512ms
 ✓ src/memory/relevanceSelector.test.ts (9 tests) 39ms
 ✓ src/utils/request-tokenizer/requestTokenizer.test.ts (11 tests) 16ms
 ✓ src/utils/filesearch/crawlCache.test.ts (13 tests) 142ms
 ✓ src/telemetry/trace-context.test.ts (18 tests) 9ms
 ✓ src/utils/subagentGenerator.test.ts (9 tests) 105ms
 ✓ src/mcp/token-storage/base-token-storage.test.ts (14 tests) 35ms
 ✓ src/agents/workflow-snapshot.test.ts (9 tests) 102ms
 ✓ src/core/contentGenerator.test.ts (9 tests) 72ms
[warn] Corrupt extension state file /tmp/ext-prefs-rUm66X/nested/extension-preferences.json moved aside to /tmp/ext-prefs-rUm66X/nested/extension-preferences.json.corrupted
 ✓ src/extension/extensionPreferences.test.ts (11 tests) 30ms
 ✓ src/utils/cronParser.test.ts (25 tests) 58ms
 ✓ src/utils/runtimeDiagnostics.test.ts (4 tests) 15ms
 ✓ src/utils/qwenIgnoreParser.test.ts (11 tests) 49ms
 ✓ src/tools/mcp-resource-content.test.ts (13 tests) 8ms
 ✓ src/extension/gemini-converter.test.ts (11 tests) 11ms
 ✓ src/utils/safeJsonStringify.test.ts (17 tests) 9ms
 ✓ src/utils/errorParsing.test.ts (18 tests) 15ms
 ✓ src/subagents/subagent-manager-override.test.ts (6 tests) 17ms
 ✓ src/utils/editHelper.test.ts (17 tests) 20ms
 ✓ src/tools/computer-use/constants.test.ts (20 tests) 14ms
 ✓ src/tools/tools.test.ts (11 tests) 12ms
 ✓ src/core/nonInteractiveToolExecutor.test.ts (8 tests) 37ms
 ✓ src/agents/runtime/agent-context.test.ts (17 tests) 32ms
 ✓ src/utils/modelId.test.ts (25 tests) 24ms
 ✓ src/hooks/envInterpolator.test.ts (30 tests) 21ms
 ✓ src/lsp/LspConfigLoader.test.ts (8 tests) 39ms
 ✓ src/utils/shellContextEnv.test.ts (12 tests) 33ms
 ✓ src/followup/overlayFs.test.ts (15 tests) 67ms
 ✓ src/hooks/detectTodoChanges.test.ts (12 tests) 15ms
 ✓ src/utils/ripgrepUtils.test.ts (8 tests) 29ms
 ✓ src/hooks/registerSkillHooks.test.ts (7 tests) 9ms
 ✓ src/hooks/urlValidator.test.ts (20 tests) 30ms
 ❯ src/skills/skill-activation.test.ts (20 tests | 1 failed) 9771ms
   ✓ splitConditionalSkills > treats skills without paths as unconditional 3ms
   ✓ splitConditionalSkills > treats empty paths array as unconditional 0ms
   ✓ splitConditionalSkills > classifies skills with non-empty paths as conditional 1ms
   ✓ SkillActivationRegistry > returns empty when no conditional skills are registered 0ms
   ✓ SkillActivationRegistry > activates a conditional skill when a matching path is touched 3ms
   ✓ SkillActivationRegistry > does not re-activate an already-active skill on subsequent matches 2ms
   ✓ SkillActivationRegistry > returns empty for paths that do not match any skill 0ms
   ✓ SkillActivationRegistry > activates multiple skills whose globs overlap on a single file 0ms
   ✓ SkillActivationRegistry > accepts relative file paths by resolving against the project root 0ms
   ✓ SkillActivationRegistry > ignores paths outside the project root 0ms
   ✓ SkillActivationRegistry > supports multiple glob patterns per skill (OR semantics) 0ms
   ✓ SkillActivationRegistry > activates broad globs on dotfiles too (dot: true semantics) 0ms
   ✓ SkillActivationRegistry > survives an invalid picomatch pattern (drops it, keeps the rest) 0ms
   ✓ SkillActivationRegistry > rejects an absolute relative path (Windows cross-drive case) 0ms
   ✓ resolveProjectRelativePath > returns the forward-slash-normalized relative path for in-project files (POSIX) 0ms
   ✓ resolveProjectRelativePath > returns null for paths outside the project root (POSIX, `..` prefix) 0ms
   ✓ resolveProjectRelativePath > returns null for Windows cross-drive paths (different drive letter) 0ms
   ✓ resolveProjectRelativePath > normalizes backslashes for in-project Windows paths 0ms
   × extractToolFilePaths → SkillActivationRegistry integration > activates a skill keyed on src/**/*.ts from glob({ path: "src", pattern: "**/*.ts" }) 5023ms
     → Test timed out in 5000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
   ✓ extractToolFilePaths → SkillActivationRegistry integration > does NOT activate from external glob.path (project-root guard wins)  4732ms
 ✓ src/agents/runtime/workflow-budget.test.ts (20 tests) 9ms
 ✓ src/hooks/promptHookIntegration.test.ts (9 tests) 151ms
 ✓ src/tools/artifact/html.test.ts (38 tests) 11ms
 ✓ src/tools/cron-list.test.ts (8 tests) 142ms
 ✓ src/hooks/ssrfGuard.test.ts (21 tests) 28ms
 ✓ src/tools/artifact/host-publisher.test.ts (17 tests) 56ms
 ✓ src/memory/extractionAgentPlanner.test.ts (10 tests) 15ms
 ✓ src/memory/recall.test.ts (6 tests) 12ms
 ✓ src/ide/ide-installer.test.ts (10 tests) 33ms
 ✓ src/mcp/sa-impersonation-provider.test.ts (8 tests) 48ms
 ✓ src/lsp/LspServerManager.test.ts (7 tests) 14ms
 ✓ src/utils/gitUtils.test.ts (6 tests) 17ms
 ✓ src/utils/contextLengthError.test.ts (27 tests) 10ms
 ✓ src/tools/toAutoClassifierInput.test.ts (12 tests) 12ms
 ✓ src/tools/computer-use/downloader.test.ts (7 tests) 39ms
 ✓ src/tools/mcp-pool-key.test.ts (24 tests) 11ms
 ✓ src/goals/goalLoop.integration.test.ts (2 tests) 10ms
 ✓ src/core/permissionFlow.test.ts (20 tests) 14ms
 ✓ src/extension/i18n.test.ts (16 tests) 20ms
 ✓ src/tools/diffOptions.test.ts (9 tests) 15ms
 ✓ src/ide/process-utils.test.ts (6 tests) 30ms
 ✓ src/services/tokenEstimation.test.ts (15 tests) 5ms
 ✓ src/followup/speculationToolGate.test.ts (29 tests) 134ms
 ✓ src/memory/memoryLifecycle.integration.test.ts (1 test) 64ms
 ✓ src/utils/shellReadOnlyChecker.test.ts (33 tests) 18ms
 ✓ src/tools/mcp-workspace-budget.test.ts (17 tests) 47ms
 ✓ src/tools/cron-create.test.ts (11 tests) 743ms
   ✓ CronCreateTool > rejects a cron that never matches a real date  604ms
 ✓ src/utils/textUtils.test.ts (25 tests) 19ms
 ✓ src/resources/resource-registry.test.ts (11 tests) 42ms
 ✓ src/agents/runtime/workflow-journal.test.ts (14 tests) 89ms
 ✓ src/core/openaiContentGenerator/provider/mimo.test.ts (9 tests) 50ms
 ✓ src/utils/safeJsonParse.test.ts (14 tests) 11ms
 ✓ src/ide/detect-ide.test.ts (14 tests) 30ms
 ✓ src/utils/concurrencyLimiter.test.ts (8 tests) 78ms
 ✓ src/tools/mcp-discovery-timeout.test.ts (14 tests) 63ms
 ✓ src/extension/override.test.ts (16 tests) 14ms
 ✓ src/prompts/prompt-registry.test.ts (11 tests) 27ms
 ✓ src/followup/suggestionGenerator.test.ts (19 tests) 40ms
 ✓ src/agents/team/identity.test.ts (15 tests) 6ms
 ✓ src/hooks/types.test.ts (12 tests) 9ms
 ✓ src/utils/quotaErrorDetection.test.ts (16 tests) 7ms
 ✓ src/extension/settings.test.ts (10 tests) 7ms
 ✓ src/core/loggingContentGenerator/streamContentDetection.test.ts (16 tests) 18ms
 ✓ src/services/generatedFiles.test.ts (11 tests) 6ms
 ✓ src/utils/errorReporting.test.ts (5 tests) 9ms
 ✓ src/tools/grepReadTracking.test.ts (7 tests) 42ms
 ✓ src/core/anthropicContentGenerator/usage.test.ts (7 tests) 5ms
 ✓ src/tools/task-create.test.ts (8 tests) 97ms
 ✓ src/utils/configResolver.test.ts (12 tests) 11ms
 ✓ src/tools/team-create.test.ts (11 tests) 308ms
 ✓ src/providers/__tests__/presets/alibaba-standard.test.ts (8 tests) 26ms
 ✓ src/mcp/configHash.test.ts (15 tests) 14ms
 ✓ src/agents/arena/diff-summary.test.ts (8 tests) 12ms
 ✓ src/hooks/trustedHooks.test.ts (5 tests) 13ms
 ✓ src/telemetry/file-exporters.test.ts (3 tests) 17ms
 ✓ src/tools/cron-delete.test.ts (7 tests) 112ms
 ✓ src/utils/schemaConverter.test.ts (12 tests) 21ms
 ✓ src/config/config.workflow-registration.test.ts (4 tests) 236ms
 ✓ src/services/attributionTrailer.test.ts (4 tests) 10ms
 ✓ src/followup/speculation.test.ts (8 tests) 72ms
 ✓ src/core/openaiContentGenerator/provider/minimax.test.ts (9 tests) 16ms
 ✓ src/utils/proxyUtils.test.ts (18 tests) 26ms
 ✓ src/utils/terminalSafe.test.ts (11 tests) 15ms
 ✓ src/skills/skill-paths.test.ts (7 tests) 38ms
 ✓ src/core/openaiContentGenerator/provider/modelscope.test.ts (5 tests) 6ms
 ✓ src/utils/toml-to-markdown-converter.test.ts (11 tests) 29ms
 ✓ src/utils/filesearch/result-cache.test.ts (6 tests) 119ms
 ✓ src/utils/xml.test.ts (10 tests) 11ms
 ✓ src/mcp/google-auth-provider.test.ts (8 tests) 37ms
 ✓ src/core/inlineMediaLimit.test.ts (13 tests) 26ms
 ✓ src/tools/task-list.test.ts (6 tests) 277ms
 ✓ src/followup/smoke.test.ts (21 tests) 37ms
 ✓ src/utils/projectRoot.test.ts (5 tests) 19ms
 ✓ src/tools/computer-use/schemas.test.ts (8 tests) 11ms
 ✓ src/memory/prompt.test.ts (6 tests) 12ms
 ✓ src/hooks/combinedAbortSignal.test.ts (8 tests) 329ms
 ✓ src/subagents/builtin-agents.test.ts (8 tests) 23ms
 ✓ src/services/visionBridge/image-part-utils.test.ts (15 tests) 12ms
 ✓ src/core/toolCallIdUtils.test.ts (3 tests) 14ms
 ✓ src/skills/skill-load.real-parser.test.ts (7 tests) 25ms
 ✓ src/tools/enterPlanMode.test.ts (13 tests) 83ms
 ✓ src/utils/installationManager.test.ts (4 tests) 7ms
 ✓ src/providers/__tests__/presets/idealab.test.ts (6 tests) 14ms
 ✓ src/core/openaiContentGenerator/provider/mistral.test.ts (4 tests) 17ms
 ✓ src/utils/runtimeStatus.config.test.ts (4 tests) 300ms
 ✓ src/hooks/stopHookCap.test.ts (9 tests) 22ms
 ✓ src/lsp/NativeLspClient.test.ts (2 tests) 19ms
 ✓ src/core/permission-helpers.test.ts (6 tests) 29ms
 ✓ src/agents/team/leaderPermissionBridge.test.ts (7 tests) 25ms
 ✓ src/extension/storage.test.ts (5 tests) 16ms
 ✓ src/utils/errors.test.ts (12 tests) 6ms
 ✓ src/extension/redaction.test.ts (11 tests) 12ms
 ✓ src/memory/extractAgent.test.ts (1 test) 92ms
 ✓ src/config/config.workflows.test.ts (4 tests) 28ms
 ✓ src/skills/symlinkScope.test.ts (5 tests) 6ms
 ✓ src/utils/tool-utils.test.ts (20 tests) 7ms
 ✓ src/core/geminiRequest.test.ts (12 tests) 6ms
 ✓ src/utils/bundlePaths.test.ts (4 tests) 7ms
 ✓ src/utils/thoughtUtils.test.ts (11 tests) 14ms
 ✓ src/hooks/instructionsLoadedCallback.test.ts (4 tests) 12ms
 ✓ src/telemetry/sanitize.test.ts (10 tests) 14ms
 ✓ src/memory/scan.test.ts (2 tests) 46ms
 ✓ src/goals/activeGoalStore.test.ts (7 tests) 6ms
 ✓ src/tools/team-delete.test.ts (5 tests) 625ms
   ✓ TeamDeleteTool > deletes an active team  309ms
 ✓ src/tools/syntheticOutput.test.ts (7 tests) 71ms
 ✓ src/tools/skill-utils.test.ts (5 tests) 7ms
 ✓ src/telemetry/session-context.test.ts (7 tests) 4ms
 ✓ src/memory/indexer.test.ts (2 tests) 46ms
 ✓ src/memory/const.test.ts (4 tests) 5ms
 ✓ src/utils/projectSummary.test.ts (3 tests) 50ms
 ✓ src/tools/computer-use/install-state.test.ts (6 tests) 43ms
 ✓ src/skills/bundled/loop/SKILL.test.ts (4 tests) 18ms
 ✓ src/memory/forget.test.ts (1 test) 9ms
 ✓ src/extension/corruptFile.test.ts (2 tests) 23ms
 ✓ src/core/geminiContentGenerator/index.test.ts (3 tests) 12ms
 ✓ src/utils/asyncMessageQueue.test.ts (7 tests) 5ms
 ✓ src/memory/dream.test.ts (3 tests) 54ms
 ✓ src/tools/artifact/local-publisher.test.ts (3 tests) 34ms
 ✓ src/tools/computer-use/permission-detector.test.ts (6 tests) 18ms
 ✓ src/tools/artifact/create-publisher.test.ts (5 tests) 10ms
 ✓ src/utils/fetch.test.ts (3 tests) 8ms
 ❯ src/config/config-session-env.test.ts (3 tests | 3 failed) 15041ms
   × Config sessionEnvClaimed guard > first Config sets process.env QWEN_CODE_SESSION_ID to its sessionId 5031ms
     → Test timed out in 5000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
   × Config sessionEnvClaimed guard > subsequent Config does not overwrite the env var set by the first 5005ms
     → Test timed out in 5000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
   × Config sessionEnvClaimed guard > startNewSession updates env var to the new session ID 5004ms
     → Test timed out in 5000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
 ✓ src/plan-gate/gateReviewAgents.test.ts (12 tests) 10ms
 ✓ src/memory/dreamAgentPlanner.test.ts (5 tests) 47ms
 ✓ src/providers/__tests__/presets/modelscope.test.ts (3 tests) 6ms
 ✓ src/utils/startupEventSink.test.ts (4 tests) 11ms
 ✓ src/utils/internalPromptIds.test.ts (9 tests) 17ms
 ✓ src/lsp/LspConnectionFactory.test.ts (2 tests) 227ms
 ✓ src/skills/bundled-skills.integration.test.ts (8 tests) 57ms
 ✓ src/telemetry/trace-id-utils.test.ts (8 tests) 42ms
 ✓ src/utils/messageInspectors.test.ts (5 tests) 8ms
 ✓ src/subagents/types.test.ts (3 tests) 6ms
 ✓ src/telemetry/telemetry-utils.test.ts (6 tests) 8ms
 ✓ src/providers/__tests__/presets/openrouter.test.ts (5 tests) 16ms
 ✓ src/memory/entries.test.ts (1 test) 14ms
 ✓ src/tools/artifact/publisher.test.ts (5 tests) 16ms
 ✓ src/utils/getPty.test.ts (1 test) 19ms
 ✓ src/utils/cronDisplay.test.ts (2 tests) 10ms
 ✓ src/index.test.ts (1 test) 2ms
 ✓ src/utils/env.test.ts (12 tests) 4ms
 ✓ src/providers/__tests__/presets/requesty.test.ts (5 tests) 9ms
 ✓ src/tools/enter-worktree.session.integ.test.ts (2 tests) 1016ms
   ✓ EnterWorktreeTool — WorktreeSession sidecar > writes a WorktreeSession sidecar with all fields after creating worktree  414ms
   ✓ EnterWorktreeTool — WorktreeSession sidecar > overwrites a previous sidecar when entering a new worktree in the same session  601ms
 ✓ src/providers/__tests__/presets/deepseek.test.ts (3 tests) 7ms
 ✓ src/providers/__tests__/presets/custom-provider.test.ts (11 tests) 26ms
 ✓ src/providers/__tests__/provider-config.test.ts (63 tests) 27ms
 ✓ src/providers/__tests__/presets/alibaba-token-plan.test.ts (2 tests) 6ms
 ✓ src/services/gitWorktreeService.hooks.integ.test.ts (3 tests) 1024ms
   ✓ GitWorktreeService.createUserWorktree() — hooksPath setup > points core.hooksPath at .husky when present  375ms
   ✓ GitWorktreeService.createUserWorktree() — hooksPath setup > falls back to .git/hooks when .husky is missing  331ms
   ✓ GitWorktreeService.createUserWorktree() — hooksPath setup > still creates the worktree even when hooksPath setup fails  316ms
 ✓ src/tools/computer-use/registration.test.ts (2 tests) 10ms
 ✓ src/providers/__tests__/presets/zai.test.ts (3 tests) 22ms
 ✓ src/agents/backends/tmux-commands.test.ts (8 tests) 13ms
 ✓ src/providers/__tests__/presets/alibaba-coding-plan.test.ts (2 tests) 11ms
 ✓ src/providers/__tests__/presets/minimax.test.ts (3 tests) 9ms
 ✓ src/telemetry/telemetry.test.ts (2 tests) 46ms
 ✓ src/services/worktreeCleanup.test.ts (3 tests) 3ms

⎯⎯⎯⎯⎯⎯⎯ Failed Tests 4 ⎯⎯⎯⎯⎯⎯⎯

 FAIL  src/config/config-session-env.test.ts > Config sessionEnvClaimed guard > first Config sets process.env QWEN_CODE_SESSION_ID to its sessionId
Error: Test timed out in 5000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
 ❯ src/config/config-session-env.test.ts:134:3
    132|   });
    133| 
    134|   it('first Config sets process.env QWEN_CODE_SESSION_ID to its sessio…
       |   ^
    135|     const { Config } = await import('./config.js');
    136|     const config = new Config({ ...baseParams });

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/4]⎯

 FAIL  src/config/config-session-env.test.ts > Config sessionEnvClaimed guard > subsequent Config does not overwrite the env var set by the first
Error: Test timed out in 5000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
 ❯ src/config/config-session-env.test.ts:141:3
    139|   });
    140| 
    141|   it('subsequent Config does not overwrite the env var set by the firs…
       |   ^
    142|     const { Config } = await import('./config.js');
    143|     const firstConfig = new Config({ ...baseParams });

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/4]⎯

 FAIL  src/config/config-session-env.test.ts > Config sessionEnvClaimed guard > startNewSession updates env var to the new session ID
Error: Test timed out in 5000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
 ❯ src/config/config-session-env.test.ts:159:3
    157|   });
    158| 
    159|   it('startNewSession updates env var to the new session ID', async ()…
       |   ^
    160|     const { Config } = await import('./config.js');
    161|     const config = new Config({ ...baseParams });

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/4]⎯

 FAIL  src/skills/skill-activation.test.ts > extractToolFilePaths → SkillActivationRegistry integration > activates a skill keyed on src/**/*.ts from glob({ path: "src", pattern: "**/*.ts" })
Error: Test timed out in 5000ms.
If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout".
 ❯ src/skills/skill-activation.test.ts:250:3
    248|   // to activate skills keyed on the joined effective selector — there
    249|   // was no test exercising the path that mattered.
    250|   it('activates a skill keyed on src/**/*.ts from glob({ path: "src", …
       |   ^
    251|     const { extractToolFilePaths } = await import(
    252|       '../core/coreToolScheduler.js'

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/4]⎯


 Test Files  2 failed | 441 passed | 1 skipped (444)
      Tests  4 failed | 13118 passed | 8 skipped (13130)
   Start at  12:25:45
   Duration  102.45s (transform 124.92s, setup 15.51s, collect 1254.96s, tests 240.29s, environment 163ms, prepare 85.64s)

JUNIT report written to /startdir/src/qwen-code/packages/core/junit.xml
npm error Lifecycle script `test` failed with error:
npm error code 1
npm error path /startdir/src/qwen-code/packages/core
npm error workspace @qwen-code/qwen-code-core@0.19.2
npm error location /startdir/src/qwen-code/packages/core
npm error command failed
npm error command sh -c vitest run '--exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts'


> @qwen-code/sdk@0.1.8 test
> vitest run --exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts


 RUN  v1.6.1 /startdir/src/qwen-code/packages/sdk-typescript

 ✓ test/unit/daemonEvents.test.ts  (89 tests) 36ms
2026-07-03 12:27:38 [ERROR] [ProcessTransport] Failed to initialize CLI process: Transport start aborted
2026-07-03 12:27:38 [ERROR] [ProcessTransport] Failed to initialize CLI process: Transport start aborted
2026-07-03 12:27:38 [ERROR] [ProcessTransport] CLI process error: Spawn failed
2026-07-03 12:27:38 [ERROR] [ProcessTransport] CLI process exited with code 1
2026-07-03 12:27:38 [ERROR] [ProcessTransport] CLI process terminated by signal SIGTERM
2026-07-03 12:27:38 [ERROR] [ProcessTransport] CLI process error: Process error
2026-07-03 12:27:38 [DEBUG] [ProcessTransport] Spawning CLI (native): qwen --input-format stream-json --output-format stream-json --channel=SDK
2026-07-03 12:27:38 [ERROR] [ProcessTransport] CLI process exited with code 1
2026-07-03 12:27:38 [ERROR] [ProcessTransport] CLI process error: Process error
2026-07-03 12:27:38 [ERROR] [ProcessTransport] CLI process exited with code 1
2026-07-03 12:27:38 [ERROR] [ProcessTransport] CLI process terminated by signal SIGKILL
2026-07-03 12:27:38 [INFO]  [ProcessTransport] CLI process started successfully
2026-07-03 12:27:38 [DEBUG] [ProcessTransport] Forking CLI (node): /path/to/cli.js --input-format stream-json --output-format stream-json --channel=SDK
2026-07-03 12:27:38 [INFO]  [ProcessTransport] CLI process started successfully
 ✓ test/unit/ProcessTransport.test.ts  (71 tests) 165ms
 ✓ test/unit/daemonUi.test.ts  (245 tests) 164ms
stderr | test/unit/daemonUi.test.ts > daemon UI reducer state machine (PR-E) > enters resync-required state and skips later non-terminal deltas
[daemon-ui] dropping event `assistant.text.delta` while awaitingResync; state may be stale until session reconnect (lastResyncRequired: {"reason":"ring_evicted","lastDeliveredId":1,"earliestAvailableId":4})

stderr | test/unit/daemonUi.test.ts > R6 review batch — recovery flow + pending pointer > clearAwaitingResync AFTER dispatching events: events ARE dropped (documents the flow)
[daemon-ui] dropping event `assistant.text.delta` while awaitingResync; state may be stale until session reconnect (lastResyncRequired: {"reason":"sse_eviction","lastDeliveredId":5,"earliestAvailableId":12})

 ✓ test/unit/DaemonSessionClient.test.ts  (34 tests) 397ms
 ✓ test/unit/acpRouteTable.test.ts  (68 tests) 21ms
2026-07-03 12:27:39 [ERROR] [Query] Control response error for request eb7f1fa3-35c2-4912-a957-e3c92a605791: Test error
2026-07-03 12:27:39 [ERROR] [Query] Initialization error: Test error
[serve-bridge] Tool error: Error: something broke
    at /startdir/src/qwen-code/packages/sdk-typescript/test/unit/serve-bridge.test.ts:151:44
    at file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:135:14
    at file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:60:26
    at runTest (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:781:17)
    at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15)
    at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15)
    at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15)
    at runFiles (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:958:5)
    at startTests (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:967:3)
    at file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/vitest/dist/chunks/runtime-runBaseTests.oAvMKtQC.js:116:7
 ✓ test/unit/serve-bridge.test.ts  (30 tests) 70ms
[serve-bridge] Tool error: string error
[serve-bridge] SSE stream ended unexpectedly for session new-session-id: GET /session/:id/events: HTTP 404
[serve-bridge] Tool error: Error: No SSE stream for session. Was the session created via session_create?
    at /startdir/src/qwen-code/packages/sdk-typescript/src/daemon-mcp/serve-bridge/tools/agent.ts:33:17
    at Object.handler (/startdir/src/qwen-code/packages/sdk-typescript/src/daemon-mcp/serve-bridge/helpers.ts:45:20)
    at /startdir/src/qwen-code/packages/sdk-typescript/test/unit/serve-bridge.test.ts:397:39
    at runTest (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:781:11)
    at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15)
    at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15)
    at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15)
    at runFiles (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:958:5)
    at startTests (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:967:3)
    at file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/vitest/dist/chunks/runtime-runBaseTests.oAvMKtQC.js:116:7
[serve-bridge] Tool error: Error: Another prompt is already in progress for this session. Wait for it to complete or call prompt_cancel first.
    at /startdir/src/qwen-code/packages/sdk-typescript/src/daemon-mcp/serve-bridge/tools/agent.ts:40:17
    at Object.handler (/startdir/src/qwen-code/packages/sdk-typescript/src/daemon-mcp/serve-bridge/helpers.ts:45:20)
    at /startdir/src/qwen-code/packages/sdk-typescript/test/unit/serve-bridge.test.ts:427:39
    at runTest (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:781:11)
    at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15)
    at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15)
    at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15)
    at runFiles (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:958:5)
    at startTests (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:967:3)
    at file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/vitest/dist/chunks/runtime-runBaseTests.oAvMKtQC.js:116:7
 ✓ test/unit/AcpHttpTransport.test.ts  (21 tests) 21ms
 ✓ test/unit/RestSseTransport.test.ts  (28 tests) 77ms
 ✓ test/unit/DaemonClient.test.ts  (178 tests) 1888ms
 ✓ test/unit/cliPath.test.ts  (33 tests) 17ms
 ✓ test/unit/daemon-sse.test.ts  (18 tests) 18ms
 ✓ test/unit/AutoReconnectTransport.test.ts  (18 tests) 35ms
 ✓ test/unit/createSdkMcpServer.test.ts  (18 tests) 22ms
 ✓ test/unit/daemon-public-surface.test.ts  (13 tests) 7ms
 ✓ test/unit/negotiateTransport.test.ts  (15 tests) 166ms
 ✓ test/unit/AcpWsTransport.test.ts  (31 tests) 14ms
 ✓ test/unit/Stream.test.ts  (22 tests) 29ms
 ✓ test/unit/AcpEventDenormalizer.test.ts  (18 tests) 8ms
 ✓ test/unit/createQuery.test.ts  (3 tests) 24ms
2026-07-03 12:27:51 [ERROR] [Query] Initialization error: Query is closed
 ✓ test/unit/DaemonAuthFlow.test.ts  (14 tests) 13077ms
 ✓ test/unit/approval-mode-drift.test.ts  (1 test) 2ms
 ✓ test/daemon-ui-transcript.test.ts  (1 test) 3ms
2026-07-03 12:28:02 [ERROR] [Query] Control response error for request acae08d7-ba42-4425-b4de-025a6c8f48cd: Malformed error
 ✓ test/unit/Query.test.ts  (55 tests) 23823ms

 Test Files  23 passed (23)
      Tests  1024 passed (1024)
   Start at  12:27:36
   Duration  26.09s (transform 7.29s, setup 1ms, collect 12.67s, tests 40.08s, environment 9ms, prepare 2.12s)


> qwen-code-vscode-ide-companion@0.19.2 test
> vitest run --exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts


 RUN  v3.2.4 /startdir/src/qwen-code/packages/vscode-ide-companion

stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > current_mode_update handling > calls onModeChanged callback with mode id
[SessionUpdateHandler] Processing update type: current_mode_update

stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > agent_message_chunk handling > calls onStreamChunk callback with text content
[SessionUpdateHandler] Processing update type: agent_message_chunk

stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > agent_message_chunk handling > routes background notification chunks as discrete assistant messages
[SessionUpdateHandler] Processing update type: agent_message_chunk

stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > agent_message_chunk handling > forwards the originating sessionId on discrete messages so the receiver can attribute notifications to the owning conversation
[SessionUpdateHandler] Processing update type: agent_message_chunk

stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > agent_message_chunk handling > omits sessionId on the emitted message when the notification has no sessionId
[SessionUpdateHandler] Processing update type: agent_message_chunk

stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > agent_message_chunk handling > emits usage metadata when present
[SessionUpdateHandler] Processing update type: agent_message_chunk

stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > agent_message_chunk handling > maps SDK usage field names to both SDK and legacy fields
[SessionUpdateHandler] Processing update type: agent_message_chunk

stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > tool_call handling > calls onToolCall callback with tool call data
[SessionUpdateHandler] Processing update type: tool_call

stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > tool_call handling > forwards rawOutput for structured agent execution updates
[SessionUpdateHandler] Processing update type: tool_call_update

stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > plan handling > calls onPlan callback with plan entries
[SessionUpdateHandler] Processing update type: plan

stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > plan handling > falls back to stream chunk when onPlan is not set
[SessionUpdateHandler] Processing update type: plan

stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > available_commands_update handling > calls onAvailableCommands callback with commands
[SessionUpdateHandler] Processing update type: available_commands_update

stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > available_commands_update handling > handles commands with input hint
[SessionUpdateHandler] Processing update type: available_commands_update

stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > available_commands_update handling > does not call callback when onAvailableCommands is not set
[SessionUpdateHandler] Processing update type: available_commands_update

stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > available_commands_update handling > handles empty commands list
[SessionUpdateHandler] Processing update type: available_commands_update

stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > available skills handling > reads available skills from available_commands_update metadata
[SessionUpdateHandler] Processing update type: available_commands_update

stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > available skills handling > clears available skills when metadata is absent
[SessionUpdateHandler] Processing update type: available_commands_update

stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > updateCallbacks > updates mode callback and uses new one
[SessionUpdateHandler] Processing update type: current_mode_update

stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > updateCallbacks > updates onAvailableCommands callback
[SessionUpdateHandler] Processing update type: available_commands_update

stderr | src/services/conversationStore.test.ts > ConversationStore > replaceMessages returns false when the conversation is missing
[ConversationStore] replaceMessages: conversation not found: missing

stderr | src/services/conversationStore.test.ts > ConversationStore > renameConversationId returns false when the target id already exists
[ConversationStore] renameConversationId: target conversation already exists: session-1

stderr | src/services/conversationStore.test.ts > ConversationStore > truncateFromUserTurn returns false when the target turn is missing
[ConversationStore] truncateFromUserTurn: target turn not found: 4

 ✓ src/services/qwenSessionUpdateHandler.test.ts (19 tests) 22ms
 ✓ src/services/conversationStore.test.ts (8 tests) 10ms
 ✓ src/utils/editorGroupUtils.test.ts (12 tests) 13ms
stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > returns full content when no line/limit specified
[ACP] fs/read_text_file request received for: /test/file.txt
[ACP] Parameters: { line: null, limit: null, sessionId: 'sid' }

stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > returns full content when no line/limit specified
[ACP] Successfully read file: /test/file.txt (18 chars)
[ACP] Returning full file content

stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > uses 1-based line indexing (ACP spec)
[ACP] fs/read_text_file request received for: /test/file.txt
[ACP] Parameters: { line: 2, limit: 2, sessionId: 'sid' }

stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > uses 1-based line indexing (ACP spec)
[ACP] Successfully read file: /test/file.txt (29 chars)
[ACP] Returning 2 lines

stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > treats line=1 as first line
[ACP] fs/read_text_file request received for: /test/file.txt
[ACP] Parameters: { line: 1, limit: 1, sessionId: 'sid' }

stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > treats line=1 as first line
[ACP] Successfully read file: /test/file.txt (18 chars)
[ACP] Returning 1 lines

stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > defaults to line=1 when line is null but limit is set
[ACP] fs/read_text_file request received for: /test/file.txt
[ACP] Parameters: { line: null, limit: 2, sessionId: 'sid' }

stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > defaults to line=1 when line is null but limit is set
[ACP] Successfully read file: /test/file.txt (7 chars)
[ACP] Returning 2 lines

stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > clamps negative line values to 0
[ACP] fs/read_text_file request received for: /test/file.txt
[ACP] Parameters: { line: -5, limit: null, sessionId: 'sid' }

stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > clamps negative line values to 0
[ACP] Successfully read file: /test/file.txt (5 chars)
[ACP] Returning 3 lines

stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > propagates ENOENT errors
[ACP] fs/read_text_file request received for: /missing/file.txt
[ACP] Parameters: { line: null, limit: null, sessionId: 'sid' }

stderr | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > propagates ENOENT errors
[ACP] Failed to read file /missing/file.txt: ENOENT

stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > normalises VS Code FileNotFound to ENOENT
[ACP] fs/read_text_file request received for: /missing/file.txt
[ACP] Parameters: { line: null, limit: null, sessionId: 'sid' }

stderr | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > normalises VS Code FileNotFound to ENOENT
[ACP] Failed to read file /missing/file.txt: file not found

stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleWriteTextFile > creates directory and uses WorkspaceEdit for existing file
[ACP] fs/write_text_file request received for: /test/dir/file.txt
[ACP] Content size: 5 bytes
[ACP] Ensuring directory exists: /test/dir

stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleWriteTextFile > creates directory and uses WorkspaceEdit for existing file
[ACP] Successfully wrote file: /test/dir/file.txt

stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleWriteTextFile > writes bytes directly for new (non-existing) file
[ACP] fs/write_text_file request received for: /test/dir/newfile.txt
[ACP] Content size: 5 bytes
[ACP] Ensuring directory exists: /test/dir

stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleWriteTextFile > writes bytes directly for new (non-existing) file
[ACP] Successfully wrote file: /test/dir/newfile.txt

 ✓ src/services/acpFileHandler.test.ts (9 tests) 14ms
 ✓ src/utils/paths.test.ts (18 tests) 11ms
 ✓ src/webview/hooks/useWebViewMessages.test.ts (5 tests) 10ms
 ✓ src/services/acpConnection.test.ts (17 tests) 33ms
 ✓ src/commands/index.test.ts (5 tests) 18ms
 ✓ src/open-files-manager.test.ts (17 tests) 51ms
stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > proceeds with a second connect after the first one fails
[DaemonIdeConnection] Previous connect failed: { error: 'first connect failed' }

stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > sends prompts through the bound daemon session
[DaemonIdeConnection] Sending prompt: { sessionId: 'session-1' }

stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > sends prompts through the bound daemon session
[DaemonIdeConnection] Prompt completed: { sessionId: 'session-1', stopReason: 'end_turn' }

stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > sends prompts through the bound daemon session
[DaemonIdeConnection] Sending prompt: { sessionId: 'session-1' }

stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > sends prompts through the bound daemon session
[DaemonIdeConnection] Prompt completed: { sessionId: 'session-1', stopReason: 'end_turn' }

stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > sends prompts through the bound daemon session
[DaemonIdeConnection] Sending prompt: { sessionId: 'session-1' }

stderr | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > sends prompts through the bound daemon session
[DaemonIdeConnection] Prompt failed: { sessionId: 'session-1', error: 'prompt failed' }

 ✓ src/webview/utils/utils.test.ts (15 tests) 6ms
stderr | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > cancels permission requests by default and for reject options
[DaemonIdeConnection] Permission option not advertised; cancelling { requestId: 'request-3', optionId: 'stale-option' }

stderr | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > forwards ask-user-question answers and cancels invalid selections
[DaemonIdeConnection] AskUserQuestion option not advertised; cancelling { requestId: 'ask-3', optionId: 'stale-option' }

 ✓ src/services/sessionExportService.test.ts (9 tests) 15ms
stderr | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > ignores malformed permission events
[DaemonIdeConnection] Malformed permission request data

stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > surfaces session_died as a disconnect
[DaemonIdeConnection] Session died: { sessionId: 'session-1', reason: 'agent exited' }
[DaemonIdeConnection] Clearing session: { sessionId: 'session-1', reason: 'agent exited' }

stderr | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > ignores stale session_died events from another session
[DaemonIdeConnection] Malformed session_died event

stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > surfaces event stream failures and normal stream completion
[DaemonIdeConnection] Event stream session: { sessionId: 'session-1' }
[DaemonIdeConnection] Clearing session: { sessionId: 'session-1', reason: 'daemon_error' }

stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > surfaces event stream failures and normal stream completion
[DaemonIdeConnection] Clearing session: { sessionId: 'session-1', reason: 'stream_ended' }

 ✓ src/webview/providers/WebViewContent.test.ts (5 tests) 8ms
 ✓ src/services/daemonIdeConnection.test.ts (19 tests) 93ms
 ✓ src/webview/utils/slashCommandUtils.test.ts (6 tests) 12ms
 ✓ src/webview/utils/contextUsage.test.ts (4 tests) 7ms
 ✓ src/webview/providers/ChatWebviewViewProvider.test.ts (2 tests) 15ms
 ✓ src/webview/utils/completionUtils.test.ts (4 tests) 9ms
 ✓ src/webview/providers/ChatProviderRegistry.test.ts (2 tests) 5ms
 ✓ src/package.test.ts (2 tests) 11ms
 ✓ src/utils/file-path.test.ts (4 tests) 4ms
 ✓ src/services/subscriptionPlanDefinitions.test.ts (1 test) 19ms
 ✓ src/webview/providers/chatViewRegistration.test.ts (1 test) 16ms
 ✓ src/utils/errorMessage.test.ts (2 tests) 17ms
 ✓ src/webview/hooks/useImage.test.ts (2 tests) 152ms
 ✓ src/utils/imageSupport.bundle.test.ts (2 tests) 322ms
 ✓ src/webview/components/layout/ModelSelector.test.tsx (9 tests) 123ms
stdout | src/webview/hooks/useWebViewMessages.test.tsx > useWebViewMessages > ignores background streamEnd while a tagged request is active
[useWebViewMessages] Ignoring stale/untagged streamEnd: null active: req-1 source: background_notification

stderr | src/webview/hooks/useWebViewMessages.test.tsx > useWebViewMessages > ignores conversation rewind events when the target turn is missing
[useWebViewMessages] conversationRewound target turn not found: 99

 ✓ src/webview/components/layout/ProviderSetupForm.test.tsx (1 test) 177ms
 ✓ src/webview/hooks/message/useMessageHandling.test.tsx (3 tests) 114ms
 ✓ src/webview/hooks/useWebViewMessages.test.tsx (12 tests) 176ms
 ✓ src/webview/hooks/useMessageSubmit.test.ts (19 tests) 37ms
 ✓ src/webview/hooks/useToolCalls.test.tsx (2 tests) 62ms
 ✓ src/webview/components/layout/Onboarding.test.tsx (1 test) 82ms
 ✓ src/webview/App.test.tsx (10 tests) 248ms
 ✓ src/webview/components/messages/toolcalls/index.test.tsx (3 tests) 115ms
 ✓ src/webview/components/layout/InputForm.test.tsx (2 tests) 49ms
 ✓ src/utils/acpModelInfo.test.ts (15 tests) 8ms
stderr | src/webview/utils/imageHandler.test.ts > imageHandler > returns null when file write throws
[ImageHandler] Failed to save image: Error: disk full
    at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/utils/imageHandler.test.ts:110:41
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10)
    at runTest (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1574:12)
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
    at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8)
    at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8)

 ✓ src/webview/utils/imageHandler.test.ts (12 tests) 20ms
stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > configures sidebar views with workspace/temp roots and resolves image paths through the attached webview
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > configures sidebar views with workspace/temp roots and resolves image paths through the attached webview
[WebViewProvider] Attempting connection...

 ✓ src/utils/imageSupport.test.ts (1 test) 3ms
 ✓ src/webview/handlers/AuthMessageHandler.test.ts (10 tests) 20ms
stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > reports clipboard copy success back to the requesting webview
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > reports clipboard copy success back to the requesting webview
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > reports clipboard copy failures back to the requesting webview
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > reports clipboard copy failures back to the requesting webview
[WebViewProvider] Attempting connection...

 ✓ src/webview/utils/discontinuedModel.test.ts (13 tests) 5ms
stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > streams slash-command notifications into the attached webview
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > streams slash-command notifications into the attached webview
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > re-sends cached available commands when the webview becomes ready
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > re-sends cached available commands when the webview becomes ready
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > does not special-case plain insight slash notifications in the provider
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > does not special-case plain insight slash notifications in the provider
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > routes structured insight progress markers into the attached webview
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > routes structured insight progress markers into the attached webview
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > routes structured insight progress markers even when command text is normalized differently
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > routes structured insight progress markers even when command text is normalized differently
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > clears structured insight progress when the ready marker arrives
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > clears structured insight progress when the ready marker arrives
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > opens the insight report in the browser when requested from the webview
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > opens the insight report in the browser when requested from the webview
[WebViewProvider] Attempting connection...

stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > searches files using fuzzy search when query is provided
[FileMessageHandler] handleGetWorkspaceFiles start { query: 'txt', requestId: 7 }
[FileMessageHandler] Searching workspace files with fuzzy search for query txt

stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > searches files using fuzzy search when query is provided
[FileMessageHandler] Sent final workspaceFiles 2

stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > filters ignored paths in non-query mode
[FileMessageHandler] handleGetWorkspaceFiles start { query: undefined, requestId: 7 }
[FileMessageHandler] Sent initial workspaceFiles (open tabs/active) 0

stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > filters ignored paths in non-query mode
[FileMessageHandler] Sent final workspaceFiles 1

stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > openFile resolves relative paths against the workspace
[FileOperations] Opening file: src/app.ts

stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > openFile resolves relative paths against the workspace
[FileOperations] File opened successfully: /workspace/src/app.ts

stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > openFile keeps UNC paths absolute
[FileOperations] Opening file: \\server\share\app.ts

stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > openFile keeps UNC paths absolute
[FileOperations] File opened successfully: \\server\share\app.ts

stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > openFile clamps zero line and column values to the file start
[FileOperations] Opening file: src/app.ts:0:0

stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > openFile clamps zero line and column values to the file start
[FileOperations] File opened successfully: /workspace/src/app.ts

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > routes resolved image paths back to the requesting attached webview even when a panel exists
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > routes resolved image paths back to the requesting attached webview even when a panel exists
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > marks rejected switch_mode permission requests as failed without cancelling the session
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > marks rejected switch_mode permission requests as failed without cancelling the session
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > replays available skills to the webview after webviewReady
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > replays available skills to the webview after webviewReady
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > replays available commands to the webview after webviewReady
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > replays available commands to the webview after webviewReady
[WebViewProvider] Attempting connection...

stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > createAndOpenTempFile viewColumn selection > opens in left group when chat webview has a left neighbor
[FileMessageHandler] Created and opened readonly file: [object Object] in viewColumn: 1

stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > createAndOpenTempFile viewColumn selection > opens in right group when no left neighbor but right exists
[FileMessageHandler] Created and opened readonly file: [object Object] in viewColumn: 2

stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > createAndOpenTempFile viewColumn selection > falls back to ViewColumn.Beside when neither left nor right neighbor exists
[FileMessageHandler] Created and opened readonly file: [object Object] in viewColumn: -2

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > does not report success for api-key settings without interactive auth data
[WebViewProvider] Skipping VSCode settings sync for api-key provider; interactive auth owns provider details

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > only syncs non-secret VS Code settings from ~/.qwen/settings.json
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > reacts to auth-related qwen-code setting changes
[WebViewProvider] Auth-related qwen-code settings changed by user, syncing...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > clears persisted credentials and disconnects when apiKey is emptied
[WebViewProvider] Auth-related qwen-code settings changed by user, syncing...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > clears persisted credentials and disconnects when apiKey is emptied
[WebViewProvider] apiKey cleared — de-authenticating and clearing persisted credentials

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > does not de-auth when non-apiKey auth settings change on an api-key provider
[WebViewProvider] Auth-related qwen-code settings changed by user, syncing...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > applies the requested initial model after creating a new session
[WebViewProvider] Initializing with new session (skipping restoration)

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > applies the requested initial model after creating a new session
[WebViewProvider] ACP session created successfully

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > applies the requested initial model after creating a new session
[WebViewProvider] Initializing empty conversation

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > applies the requested initial model after creating a new session
[WebViewProvider] Empty conversation initialized: null

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > shows orange dot and notification when a long task completes while panel is not active
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > shows orange dot and notification when a long task completes while panel is not active
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show notification for short tasks (< 20s)
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show notification for short tasks (< 20s)
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show notification when user is watching the panel
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show notification when user is watching the panel
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > shows blue dot and notification for permission requests when panel is not active
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > shows blue dot and notification for permission requests when panel is not active
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > blue dot takes priority over orange dot
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > blue dot takes priority over orange dot
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not send duplicate idle notifications for multi-turn tasks
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not send duplicate idle notifications for multi-turn tasks
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show idle notification for background notification turns
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show idle notification for background notification turns
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not notify when notifications setting is disabled
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not notify when notifications setting is disabled
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > cancellation resets agentStartTime so the next short task does not trigger phantom notification
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > cancellation resets agentStartTime so the next short task does not trigger phantom notification
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show dot when dotIndicator setting is disabled
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show dot when dotIndicator setting is disabled
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > notifies when VS Code is focused but panel is not visible
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > notifies when VS Code is focused but panel is not visible
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > notifies when VS Code is not focused but panel is visible
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > notifies when VS Code is not focused but panel is visible
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > shows blue dot and notification for askUserQuestion when panel is not active
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Attempting to restore auth state and connection for view...
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > shows blue dot and notification for askUserQuestion when panel is not active
[WebViewProvider] Attempting connection...

stderr | src/services/settingsWriter.test.ts > settingsWriter > applyProviderInstallPlanToFile > throws on malformed settings file instead of silently overwriting it
[settingsWriter] Failed to parse /tmp/qwen-vscode-settings-gvH8TY/.qwen/settings.json; refusing to overwrite a malformed file. SyntaxError: Expected ',' or ']' after array element in JSON at position 17 (line 1 column 18)
    at JSON.parse (<anonymous>)
    at readSettings (/startdir/src/qwen-code/packages/vscode-ide-companion/src/services/settingsWriter.ts:185:17)
    at createFileSettingsAdapter (/startdir/src/qwen-code/packages/vscode-ide-companion/src/services/settingsWriter.ts:436:14)
    at Module.applyProviderInstallPlanToFile (/startdir/src/qwen-code/packages/vscode-ide-companion/src/services/settingsWriter.ts:545:20)
    at /startdir/src/qwen-code/packages/vscode-ide-companion/src/services/settingsWriter.test.ts:283:20
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10)

stderr | src/services/settingsWriter.test.ts > settingsWriter > snapshotSettingsForRollback / restoreSettingsSnapshot > snapshot returns null on a malformed file and restore is then a no-op
[settingsWriter] Failed to parse /tmp/qwen-vscode-settings-P3g59N/.qwen/settings.json; refusing to overwrite a malformed file. SyntaxError: Expected ',' or ']' after array element in JSON at position 17 (line 1 column 18)
    at JSON.parse (<anonymous>)
    at readSettings (/startdir/src/qwen-code/packages/vscode-ide-companion/src/services/settingsWriter.ts:185:17)
    at Module.snapshotSettingsForRollback (/startdir/src/qwen-code/packages/vscode-ide-companion/src/services/settingsWriter.ts:563:28)
    at /startdir/src/qwen-code/packages/vscode-ide-companion/src/services/settingsWriter.test.ts:440:24
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10)
    at runTest (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1574:12)
[settingsWriter] snapshotSettingsForRollback failed; credential rollback disabled: Error

 ✓ src/services/settingsWriter.test.ts (17 tests) 54ms
 ✓ src/webview/handlers/FileMessageHandler.test.ts (8 tests) 36ms
stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.handleAuthInteractive credential rollback > restores the snapshot when the reconnect leaves authState !== true
[WebViewProvider] authInteractive: provider=deepseek, host=api.deepseek.com

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > does not create conversation state or send an empty prompt when all pasted images fail to materialize
[SessionMessageHandler] handleSendMessage called with: 

stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > does not create conversation state or send an empty prompt when all pasted images fail to materialize
[SessionMessageHandler] Failed to attach the pasted image. Nothing was sent. Please paste the image again.

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > sends formatted prompt text so session restore can reconstruct pasted images
[SessionMessageHandler] handleSendMessage called with: 这是什么内容

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > sends formatted prompt text so session restore can reconstruct pasted images
[SessionMessageHandler] No active conversation, creating one...

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > keeps the conversation store aligned with the ACP session id before editing
[SessionMessageHandler] handleSendMessage called with: first prompt

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > keeps the conversation store aligned with the ACP session id before editing
[SessionMessageHandler] No active conversation, creating one...

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > keeps the conversation store aligned with the ACP session id before editing
[SessionMessageHandler] handleSendMessage called with: edited prompt

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > does not switch to a colliding ACP session id when rename fails
[SessionMessageHandler] handleSendMessage called with: first prompt

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > does not switch to a colliding ACP session id when rename fails
[SessionMessageHandler] No active conversation, creating one...

stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > does not switch to a colliding ACP session id when rename fails
[SessionMessageHandler] Failed to align conversation store with ACP session id: conversation-1 session-1

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > syncs ACP session id alignment through the owning router setter
[SessionMessageHandler] handleSendMessage called with: first prompt

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > syncs ACP session id alignment through the owning router setter
[SessionMessageHandler] No active conversation, creating one...

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > rewinds the active ACP session before sending an edited message
[SessionMessageHandler] handleSendMessage called with: edited prompt

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > restores the edited conversation snapshot when replacement send fails
[SessionMessageHandler] handleSendMessage called with: edited prompt

stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > restores the edited conversation snapshot when replacement send fails
[SessionMessageHandler] Error sending message: Error: send failed
    at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/handlers/SessionMessageHandler.test.ts:534:46
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10)
    at runTest (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1574:12)
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
    at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8)
    at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8)

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > continues edits with ACP-only rewind when no local snapshot exists
[SessionMessageHandler] handleSendMessage called with: edited prompt

stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > continues edits with ACP-only rewind when no local snapshot exists
[SessionMessageHandler] Local conversation snapshot missing before edit; continuing with ACP rewind only.

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > recovers a missing edit snapshot from persisted session messages
[SessionMessageHandler] handleSendMessage called with: edited prompt

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > restores the edited conversation snapshot when ACP rewind fails
[SessionMessageHandler] handleSendMessage called with: edited prompt

stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > restores the edited conversation snapshot when ACP rewind fails
[SessionMessageHandler] Failed to rewind session: Error: rewind failed
    at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/handlers/SessionMessageHandler.test.ts:736:48
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10)
    at runTest (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1574:12)
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
    at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8)
    at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8)

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > restores store and ACP history when saving the edited user message fails
[SessionMessageHandler] handleSendMessage called with: edited prompt

stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > restores store and ACP history when saving the edited user message fails
[SessionMessageHandler] Failed to save user message: Error: storage failed
    at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/handlers/SessionMessageHandler.test.ts:806:45
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10)
    at runTest (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1574:12)
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
    at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8)
    at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8)

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > rejects edit submissions with invalid target turn indexes
[SessionMessageHandler] handleSendMessage called with: edited prompt

stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > rejects edit submissions with invalid target turn indexes
[SessionMessageHandler] Invalid message edit target. -1

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > keeps currentConversationId aligned with the archived sessionId when session/load falls back to a new ACP session
[SessionMessageHandler] Switching to session: archived-session

stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > keeps currentConversationId aligned with the archived sessionId when session/load falls back to a new ACP session
[SessionMessageHandler] session/load failed, using fallback: Error: session not found on server
    at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/handlers/SessionMessageHandler.test.ts:892:28
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10)
    at runTest (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1574:12)
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
    at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8)
    at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8)

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > forces a fresh ACP session when the webview requests a new session
[SessionMessageHandler] Creating new Qwen session...

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > intercepts /export html and uses the VSCode export flow instead of sending a prompt
[SessionMessageHandler] handleSendMessage called with: /export html

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > prefers the active ACP session id over the local conversation id when exporting
[SessionMessageHandler] handleSendMessage called with: /export html

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > reports bare /export as a missing subcommand instead of exporting
[SessionMessageHandler] handleSendMessage called with: /export

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > reports export failures back to the user
[SessionMessageHandler] handleSendMessage called with: /export md

stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > reports export failures back to the user
[SessionMessageHandler] Failed to export session: Error: disk full
    at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/handlers/SessionMessageHandler.test.ts:1084:47
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20
    at new Promise (<anonymous>)
    at runWithTimeout (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10)
    at runTest (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1574:12)
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
    at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8)
    at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8)

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > encodes exported file links before rendering markdown
[SessionMessageHandler] handleSendMessage called with: /export html

stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > handleSetModel — discontinued model defensive validation (Issue #3745) > rejects a non-runtime Qwen OAuth model and surfaces an error
[SessionMessageHandler] Rejected discontinued model qwen3-coder-plus(qwen-oauth)

 ✓ src/webview/handlers/SessionMessageHandler.test.ts (23 tests) 52ms
stdout | src/services/qwenAgentManager.test.ts > QwenAgentManager.createNewSession > creates a fresh ACP session when explicitly requested even if one is already active
[QwenAgentManager] Creating new session...

stdout | src/services/qwenAgentManager.test.ts > QwenAgentManager.createNewSession > creates a fresh ACP session when explicitly requested even if one is already active
[QwenAgentManager] newSession returned: {
  "sessionId": "session-2"
}
[QwenAgentManager] New session created with ID: session-2

stdout | src/services/qwenAgentManager.test.ts > QwenAgentManager.createNewSession > creates a distinct fresh session after an in-flight bootstrap when forceNew is requested
[QwenAgentManager] createNewSession: session creation already in flight

stdout | src/services/qwenAgentManager.test.ts > QwenAgentManager.createNewSession > creates a distinct fresh session after an in-flight bootstrap when forceNew is requested
[QwenAgentManager] Creating new session...

stdout | src/services/qwenAgentManager.test.ts > QwenAgentManager.createNewSession > creates a distinct fresh session after an in-flight bootstrap when forceNew is requested
[QwenAgentManager] newSession returned: {
  "sessionId": "session-2"
}
[QwenAgentManager] New session created with ID: session-2

 ✓ src/services/qwenAgentManager.test.ts (9 tests) 19ms
stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.handleAuthInteractive credential rollback > disconnects the agent after rolling back rejected credentials
[WebViewProvider] authInteractive: provider=deepseek, host=api.deepseek.com

 ✓ src/ide-server.test.ts (13 tests | 1 skipped) 186ms
stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.handleAuthInteractive credential rollback > does NOT restore when the reconnect authenticates (authState === true)
[WebViewProvider] authInteractive: provider=deepseek, host=api.deepseek.com

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.handleAuthInteractive credential rollback > swallows a rollback write failure so the authError message still sends
[WebViewProvider] authInteractive: provider=deepseek, host=api.deepseek.com

stderr | src/extension.test.ts > activate > should not show the info message on subsequent activations
[ReadonlyFileSystemProvider] Instance already exists, replacing with new instance

stderr | src/extension.test.ts > activate > should register a handler for onDidGrantWorkspaceTrust
[ReadonlyFileSystemProvider] Instance already exists, replacing with new instance

stderr | src/extension.test.ts > activate > should register the webview view provider for the sidebar position
[ReadonlyFileSystemProvider] Instance already exists, replacing with new instance

stderr | src/extension.test.ts > activate > should launch the Qwen Code when the user clicks the button
[ReadonlyFileSystemProvider] Instance already exists, replacing with new instance

stderr | src/extension.test.ts > activate > update notification > should show an update notification if a newer version is available
[ReadonlyFileSystemProvider] Instance already exists, replacing with new instance

stderr | src/extension.test.ts > activate > update notification > should not show an update notification if the version is the same
[ReadonlyFileSystemProvider] Instance already exists, replacing with new instance

stderr | src/extension.test.ts > activate > update notification > does not show the notification for 'cloudshell'
[ReadonlyFileSystemProvider] Instance already exists, replacing with new instance

stderr | src/extension.test.ts > activate > update notification > does not show the notification for 'firebasestudio'
[ReadonlyFileSystemProvider] Instance already exists, replacing with new instance

stderr | src/extension.test.ts > activate > update notification > should not show an update notification if the version is older
[ReadonlyFileSystemProvider] Instance already exists, replacing with new instance

stderr | src/extension.test.ts > activate > update notification > should execute the install command when the user clicks "Update"
[ReadonlyFileSystemProvider] Instance already exists, replacing with new instance

stderr | src/extension.test.ts > activate > update notification > should handle fetch errors gracefully
[ReadonlyFileSystemProvider] Instance already exists, replacing with new instance

 ✓ src/extension.test.ts (12 tests) 86ms
stderr | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.handleAuthInteractive credential rollback > swallows a rollback write failure so the authError message still sends
[WebViewProvider] settings rollback failed: Error: EPERM: rename failed
    at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.test.ts:1901:13
    at mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15)
    at spy (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103)
    at safeRollback (/startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.ts:1395:9)
    at WebViewProvider.handleAuthInteractive (/startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.ts:1447:9)
    at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.test.ts:1917:5
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.handleAuthInteractive credential rollback > rolls back + disconnects + reports authError when doInitializeAgentConnection throws (outer catch)
[WebViewProvider] authInteractive: provider=deepseek, host=api.deepseek.com

stderr | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.handleAuthInteractive credential rollback > rolls back + disconnects + reports authError when doInitializeAgentConnection throws (outer catch)
[WebViewProvider] authInteractive failed: Error: disk exploded mid-reconnect
    at WebViewProvider.<anonymous> (/startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.test.ts:1954:13)
    at WebViewProvider.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15)
    at WebViewProvider.spy [as doInitializeAgentConnection] (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103)
    at WebViewProvider.handleAuthInteractive (/startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.ts:1432:18)
    at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.test.ts:1957:5
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
[WebViewProvider] settings rollback failed: Error: EPERM: rename failed
    at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.test.ts:1901:13
    at mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15)
    at spy (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103)
    at safeRollback (/startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.ts:1395:9)
    at WebViewProvider.handleAuthInteractive (/startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.ts:1469:7)
    at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.test.ts:1957:5
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20

 ✓ src/webview/providers/WebViewProvider.test.ts (48 tests) 1747ms
   ✓ WebViewProvider.handleAuthInteractive credential rollback > restores the snapshot when the reconnect leaves authState !== true  335ms
   ✓ WebViewProvider.handleAuthInteractive credential rollback > disconnects the agent after rolling back rejected credentials  311ms
   ✓ WebViewProvider.handleAuthInteractive credential rollback > does NOT restore when the reconnect authenticates (authState === true)  307ms
   ✓ WebViewProvider.handleAuthInteractive credential rollback > swallows a rollback write failure so the authError message still sends  326ms
   ✓ WebViewProvider.handleAuthInteractive credential rollback > rolls back + disconnects + reports authError when doInitializeAgentConnection throws (outer catch)  308ms

 Test Files  47 passed (47)
      Tests  432 passed | 1 skipped (433)
   Start at  12:28:03
   Duration  14.31s (transform 19.73s, setup 0ms, collect 161.41s, tests 4.31s, environment 6.92s, prepare 7.13s)


> @qwen-code/web-shell@0.19.2 test
> vitest run --exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts


 RUN  v3.2.4 /startdir/src/qwen-code/packages/web-shell/client

 ✓ adapters/transcriptAdapter.test.ts (6 tests) 12ms
 ✓ build-artifact.test.ts (5 tests) 21ms
 ✓ utils/copyCommand.test.ts (11 tests) 43ms
 ✓ midTurnDedup.test.ts (12 tests) 31ms
 ✓ components/messages/toolFormatting.test.ts (28 tests) 25ms
 ✓ adapters/transcriptToMessages.test.ts (97 tests) 115ms
 ✓ voice/useVoiceCapture.test.tsx (9 tests) 116ms
 ✓ components/Editor.keymap.test.ts (5 tests) 118ms
 ✓ components/messages/SettingsMessage.test.ts (10 tests) 4ms
 ✓ completions/slashCompletion.test.ts (19 tests) 27ms
 ✓ components/MessageTimestamp.test.tsx (5 tests) 40ms
 ✓ config/daemon.test.ts (14 tests) 587ms
   ✓ getAllowedDaemonOrigin (via getDaemonBaseUrl) > accepts same-origin daemon URL  369ms
 ✓ voice/VoiceButton.test.tsx (3 tests) 104ms
 ✓ components/messages/TodoView.test.tsx (4 tests) 113ms
 ✓ components/MessageList.dom.test.tsx (8 tests) 130ms
 ✓ components/messages/PlanMessage.test.tsx (6 tests) 93ms
 ✓ components/messages/Markdown.test.ts (22 tests) 46ms
 ✓ components/messages/AssistantMessage.test.tsx (3 tests) 9ms
 ✓ components/messages/UserMessage.test.tsx (2 tests) 53ms
 ✓ utils/todos.test.ts (64 tests) 21ms
 ✓ components/messages/ToolApproval.test.ts (2 tests) 3ms
 ✓ hooks/useComposerCore.test.ts (10 tests) 5ms
 ✓ components/messages/ToolGroup.test.tsx (10 tests) 10ms
 ✓ components/messages/tools/SubAgentPanel.test.tsx (3 tests) 56ms
 ✓ components/MessageList.test.ts (62 tests) 37ms

 Test Files  25 passed (25)
      Tests  420 passed (420)
   Start at  12:28:18
   Duration  7.67s (transform 15.60s, setup 0ms, collect 44.88s, tests 1.82s, environment 6.36s, prepare 4.94s)


> @qwen-code/webui@0.19.2 test
> vitest run --exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts


 RUN  v3.2.4 /startdir/src/qwen-code/packages/webui

 ✓ src/daemon/session/selectors.test.ts (7 tests) 8ms
 ✓ src/daemon/session/promptContent.test.ts (2 tests) 37ms
 ✓ src/daemon/session/mappers.test.ts (8 tests) 14ms
 ✓ src/components/toolcalls/labelUtils.test.ts (8 tests) 51ms
Browserslist: browsers data (caniuse-lite) is 8 months old. Please run:
  npx update-browserslist-db@latest
  Why you should do it regularly: https://github.com/browserslist/update-db#readme
 ✓ src/daemon/session/clientLifecycle.test.ts (13 tests) 101ms
stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > loads data on autoLoad
The current testing environment is not configured to support act(...)

stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > loads data on autoLoad
The current testing environment is not configured to support act(...)

stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > loads data on autoLoad
The current testing environment is not configured to support act(...)

stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > loads data on autoLoad
The current testing environment is not configured to support act(...)

stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > does not load when enabled is false
The current testing environment is not configured to support act(...)

stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > does not load when enabled is false
The current testing environment is not configured to support act(...)

stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > reports error on load failure
The current testing environment is not configured to support act(...)

stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > reports error on load failure
The current testing environment is not configured to support act(...)

stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > reports error on load failure
The current testing environment is not configured to support act(...)

stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > reports error on load failure
The current testing environment is not configured to support act(...)

stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > stale response does not overwrite fresh data
The current testing environment is not configured to support act(...)

stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > stale response does not overwrite fresh data
The current testing environment is not configured to support act(...)
The current testing environment is not configured to support act(...)

stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > stale response does not overwrite fresh data
The current testing environment is not configured to support act(...)

stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > stale response does not overwrite fresh data
The current testing environment is not configured to support act(...)

stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > stale error does not overwrite fresh data
The current testing environment is not configured to support act(...)

stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > stale error does not overwrite fresh data
The current testing environment is not configured to support act(...)
The current testing environment is not configured to support act(...)

stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > stale error does not overwrite fresh data
The current testing environment is not configured to support act(...)

stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > stale error does not overwrite fresh data
The current testing environment is not configured to support act(...)

 ✓ src/daemon/workspace/hooks/useDaemonResource.test.tsx (5 tests) 44ms
 ✓ src/components/messages/MarkdownRenderer/MarkdownRenderer.test.tsx (2 tests) 61ms
 ✓ src/components/PermissionDrawer.test.tsx (2 tests) 55ms
 ✓ src/components/messages/MessageMeta.test.tsx (4 tests) 85ms
 ✓ src/components/toolcalls/routing.test.ts (11 tests) 18ms
 ✓ src/daemon/transcriptAdapter.test.ts (9 tests) 8ms
stdout | src/daemon/midTurnInjectedSidechannel.test.ts > mid-turn injected sidechannel pub/sub > caps the buffer, evicting oldest batches past the limit
[mid-turn] sidechannel buffer over 64; evicting 1 oldest batch(es)
[mid-turn] sidechannel buffer over 64; evicting 1 oldest batch(es)
[mid-turn] sidechannel buffer over 64; evicting 1 oldest batch(es)
[mid-turn] sidechannel buffer over 64; evicting 1 oldest batch(es)
[mid-turn] sidechannel buffer over 64; evicting 1 oldest batch(es)
[mid-turn] sidechannel buffer over 64; evicting 1 oldest batch(es)

 ✓ src/daemon/midTurnInjectedSidechannel.test.ts (11 tests) 11ms
 ✓ src/components/ChatViewer/ChatViewer.test.tsx (2 tests) 17ms
 ✓ src/daemon/workspace/DaemonWorkspaceProvider.test.tsx (9 tests) 71ms
stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps capabilities handshake failures out of the transcript
[DaemonSessionProvider] retriable SSE error, preserving session for delta resume (sessionId=undefined)

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > uses session context models over workspace provider defaults
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > falls back to provider context window for session context models
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > falls back to provider models when session context only has current model
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not use provider context window for an unmatched session model
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > adds daemon goal status metadata to the transcript
[DaemonSessionProvider] SSE stream ended

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > adds daemon goal status metadata to the transcript
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes mid_turn_message_injected frames to the sidechannel and transcript
[DaemonSessionProvider] SSE stream ended

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps prompt loading active after non-blocking prompt acceptance
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps prompt loading active after non-blocking prompt acceptance
[DaemonSessionProvider] SSE stream ended

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles non-blocking prompts when turn completion arrives before acceptance returns
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles non-blocking prompts when turn completion arrives before acceptance returns
[DaemonSessionProvider] SSE stream ended

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > allows the next prompt after a turn completes before acceptance returns
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > allows the next prompt after a turn completes before acceptance returns
[DaemonSessionProvider] SSE stream ended

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > rejects the prompt when turn_error arrives before acceptance returns
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > rejects the prompt when turn_error arrives before acceptance returns
[DaemonSessionProvider] SSE stream ended

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > sends image prompt content through the daemon action
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > passes retry prompts through the daemon action
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > submits permission selections with optional answers
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes pending permission blocks
[DaemonSessionProvider] SSE stream ended

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes pending permission blocks
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes workspace event signals from daemon session events
[DaemonSessionProvider] SSE stream ended

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes workspace event signals from daemon session events
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > treats prompt abort during cancel as cancellation and keeps busy until cancel completes
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > ends assistant streaming when prompt fails with a non-abort error
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not insert abort errors from shell commands into the transcript
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps cancellation turn errors in the transcript
[DaemonSessionProvider] SSE stream ended

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps cancellation turn errors in the transcript
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes prompt cancellation events as transcript blocks
[DaemonSessionProvider] SSE stream ended

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes prompt cancellation events as transcript blocks
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps forward-failed prompt cancellations out of blocks
[DaemonSessionProvider] SSE stream ended

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps forward-failed prompt cancellations out of blocks
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes catchingUp on resume and clears it on replay_complete
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > never sets catchingUp on a fresh subscription (no Last-Event-ID)
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears prompt state and transcript when reconnect attaches a different session
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > reuses the same session client after a normal SSE stream end
[DaemonSessionProvider] SSE stream ended

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > reuses the same session client after a normal SSE stream end
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not inject replay snapshot again after a normal SSE stream end
[DaemonSessionProvider] SSE stream ended

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not inject replay snapshot again after a normal SSE stream end
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > injects replay snapshot on initial session load
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps replayed non-turn events from marking a prompt as waiting
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > marks replayed user turns without terminal events as waiting
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > finishes replayed assistant streaming when replay ends with turn_error
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > finishes each completed turn in replay snapshots
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not let replay state events overwrite fresh connection status
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > uses providers current model when session context has no model
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > seeds tokenCount from the latest replay usage on attach
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps the in-memory tokenCount across SSE re-subscribe when replay has no usage
[DaemonSessionProvider] SSE stream ended

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps the in-memory tokenCount across SSE re-subscribe when replay has no usage
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > resets tokenCount when reconnect attaches a different session without replay usage
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > bumps workspace event signals from replay snapshot events
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > finishes passive assistant streaming when no prompt action is active
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > finishes replayed assistant streaming when replay completes
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > creates a fresh thread session without cancelling the previous session
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > creates a fresh thread session without cancelling the previous session
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > uses session-scoped client IDs when switching between loaded sessions
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > uses session-scoped client IDs when switching between loaded sessions
An update to DaemonSessionProvider inside a test was not wrapped in act(...).

When testing, code that causes React state updates should be wrapped into act(...):

act(() => {
  /* fire events that update state */
});
/* assert on the output */

This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act
An update to DaemonSessionProvider inside a test was not wrapped in act(...).

When testing, code that causes React state updates should be wrapped into act(...):

act(() => {
  /* fire events that update state */
});
/* assert on the output */

This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act
An update to DaemonSessionProvider inside a test was not wrapped in act(...).

When testing, code that causes React state updates should be wrapped into act(...):

act(() => {
  /* fire events that update state */
});
/* assert on the output */

This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act
An update to DaemonSessionProvider inside a test was not wrapped in act(...).

When testing, code that causes React state updates should be wrapped into act(...):

act(() => {
  /* fire events that update state */
});
/* assert on the output */

This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > uses session-scoped client IDs when switching between loaded sessions
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > uses session-scoped client IDs when switching between loaded sessions
An update to DaemonSessionProvider inside a test was not wrapped in act(...).

When testing, code that causes React state updates should be wrapped into act(...):

act(() => {
  /* fire events that update state */
});
/* assert on the output */

This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act
An update to DaemonSessionProvider inside a test was not wrapped in act(...).

When testing, code that causes React state updates should be wrapped into act(...):

act(() => {
  /* fire events that update state */
});
/* assert on the output */

This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act
An update to DaemonSessionProvider inside a test was not wrapped in act(...).

When testing, code that causes React state updates should be wrapped into act(...):

act(() => {
  /* fire events that update state */
});
/* assert on the output */

This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act
An update to DaemonSessionProvider inside a test was not wrapped in act(...).

When testing, code that causes React state updates should be wrapped into act(...):

act(() => {
  /* fire events that update state */
});
/* assert on the output */

This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > uses session-scoped client IDs when switching between loaded sessions
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > reuses the branched session client when switching after branch
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > reuses the branched session client when switching after branch
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes daemon capabilities on the connection state
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes the restored session display name on the connection state
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > updates the connection display name from metadata events
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > recovers internally when the daemon requests a state resync
[DaemonSessionProvider] ring eviction detected, reloading session (sessionId=session-resync)

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > recovers internally when the daemon requests a state resync
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > marks the connection unhealthy after repeated heartbeat failures
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > ignores stale connect attempts after provider props change
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > ignores stale connect attempts after provider props change
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > rejects interrupted session loads as AbortError during cleanup
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4171
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4171
  }
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > rejects interrupted session loads as AbortError during cleanup
[DaemonSessionProvider] retriable SSE error, preserving session for delta resume (sessionId=undefined)

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > rejects interrupted session loads as AbortError during cleanup
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears the session when reconnect is disabled after SSE stream end
[DaemonSessionProvider] SSE stream ended

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears the session when reconnect is disabled after SSE stream end
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > still reconnects on 410 session-not-found errors when autoReconnect is true
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > leaves missing sessions disconnected on 404 when requested
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > times out hung setModel actions
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > times out hung respondToPermission actions
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > resets stale transcript and accepts replay after epoch-reset resync
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > reloads the session snapshot after ring-evicted resync
[DaemonSessionProvider] ring eviction detected, reloading session (sessionId=session-ring-evicted)

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > reloads the session snapshot after ring-evicted resync
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles active prompts from replay snapshot after ring eviction
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles active prompts from replay snapshot after ring eviction
[DaemonSessionProvider] ring eviction detected, reloading session (sessionId=session-ring-active-prompt)

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > rejects active prompts from replay turn_error after ring eviction
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > rejects active prompts from replay turn_error after ring eviction
[DaemonSessionProvider] ring eviction detected, reloading session (sessionId=session-ring-active-error)

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not settle unaccepted prompts from historical replay turns
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not settle unaccepted prompts from historical replay turns
[DaemonSessionProvider] ring eviction detected, reloading session (sessionId=session-ring-unaccepted-prompt)

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not settle unaccepted prompts from historical replay turns
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not settle unaccepted prompts from historical replay turns
[DaemonSessionProvider] SSE stream ended

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps own user messages when replay rebuilds after ring eviction
[DaemonSessionProvider] ring eviction detected, reloading session (sessionId=session-own-user-replay)

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps own user messages when replay rebuilds after ring eviction
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > skips malformed replay events without dropping later replay history
[DaemonSessionProvider] ring eviction detected, reloading session (sessionId=session-bad-replay)

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > skips malformed replay events without dropping later replay history
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > skips malformed replay events without dropping later replay history
[DaemonSessionProvider] retriable SSE error, preserving session for delta resume (sessionId=session-bad-replay)

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > skips malformed replay events without dropping later replay history
[DaemonSessionProvider] skipped malformed replay event: Error: bad replay payload
    at Object.get (/startdir/src/qwen-code/packages/webui/src/daemon/session/DaemonSessionProvider.test.tsx:4405:15)
    at extractServerTimestamp (/startdir/src/qwen-code/packages/sdk-typescript/src/daemon/ui/normalizer.ts:476:22)
    at createBase (/startdir/src/qwen-code/packages/sdk-typescript/src/daemon/ui/normalizer.ts:440:27)
    at normalizeDaemonEvent (/startdir/src/qwen-code/packages/sdk-typescript/src/daemon/ui/normalizer.ts:58:16)
    at normalizeAndFilterEvent (/startdir/src/qwen-code/packages/webui/src/daemon/session/DaemonSessionProvider.tsx:1352:22)
    at run (/startdir/src/qwen-code/packages/webui/src/daemon/session/DaemonSessionProvider.tsx:619:40)

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > retries when ring-evicted reload fails once
[DaemonSessionProvider] ring eviction detected, reloading session (sessionId=session-ring-retry)

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > retries when ring-evicted reload fails once
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > retries when ring-evicted reload fails once
[DaemonSessionProvider] retriable SSE error, preserving session for delta resume (sessionId=undefined)

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > accepts live events after ring-evicted reload reconnects
[DaemonSessionProvider] ring eviction detected, reloading session (sessionId=session-reattach)

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > accepts live events after ring-evicted reload reconnects
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > preserves session and uses delta resume after a retriable SSE error
[DaemonSessionProvider] retriable SSE error, preserving session for delta resume (sessionId=session-1)

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > preserves session and uses delta resume after a retriable SSE error
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes session_died errors to notices, not transcript
[DaemonSessionProvider] daemon notice: {
  message: 'Session died (no details available)',
  debugMessage: 'Session died (no details available)',
  recoverable: false,
  severity: 'error',
  category: 'connection',
  operation: 'stream',
  code: 'daemon.session_died',
  id: 'daemon-notice-1783081714657-1',
  createdAt: 1783081714657
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes session_died errors to notices, not transcript
[DaemonSessionProvider] SSE stream ended

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes session_died errors to notices, not transcript
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached"
[DaemonSessionProvider] SSE stream ended

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached"
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached"
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field
[DaemonSessionProvider] SSE stream ended

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field
[DaemonSessionProvider] SSE stream ended

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes stream_error to notices with connection category
[DaemonSessionProvider] daemon notice: {
  message: 'SSE stream error (no details available)',
  debugMessage: 'SSE stream error (no details available)',
  recoverable: true,
  severity: 'warning',
  category: 'connection',
  operation: 'stream',
  code: 'daemon.stream_error',
  id: 'daemon-notice-1783081715145-1',
  createdAt: 1783081715145
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes stream_error to notices with connection category
[DaemonSessionProvider] SSE stream ended

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes stream_error to notices with connection category
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes model_switch_failed to notices with user_action category
[DaemonSessionProvider] SSE stream ended

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps turn_error in transcript instead of routing to notices
[DaemonSessionProvider] SSE stream ended

stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes client_evicted to notices with connection category
[DaemonSessionProvider] daemon notice: {
  message: 'Another client connected',
  debugMessage: 'Another client connected',
  recoverable: true,
  severity: 'warning',
  category: 'connection',
  operation: 'stream',
  code: 'daemon.client_evicted',
  id: 'daemon-notice-1783081715156-1',
  createdAt: 1783081715156
}

stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes client_evicted to notices with connection category
[DaemonSessionProvider] SSE stream ended

 ✓ src/daemon/session/DaemonSessionProvider.test.tsx (89 tests) 1474ms

 Test Files  15 passed (15)
      Tests  182 passed (182)
   Start at  12:28:28
   Duration  6.33s (transform 7.16s, setup 0ms, collect 17.05s, tests 2.06s, environment 4.40s, prepare 19.94s)


> @qwen-code/channel-telegram@0.19.2 test
> vitest run --exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts


 RUN  v3.2.4 /startdir/src/qwen-code/packages/channels/telegram

 ✓ src/TelegramAdapter.test.ts (1 test) 7ms

 Test Files  1 passed (1)
      Tests  1 passed (1)
   Start at  12:28:35
   Duration  1.01s (transform 182ms, setup 0ms, collect 502ms, tests 7ms, environment 0ms, prepare 179ms)


> @qwen-code/channel-dingtalk@0.19.2 test
> vitest run --exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts


 RUN  v3.2.4 /startdir/src/qwen-code/packages/channels/dingtalk

 ✓ src/markdown.test.ts (26 tests) 19ms
 ✓ src/DingtalkAdapter.test.ts (3 tests) 6ms

 Test Files  2 passed (2)
      Tests  29 passed (29)
   Start at  12:28:37
   Duration  700ms (transform 211ms, setup 0ms, collect 249ms, tests 24ms, environment 0ms, prepare 390ms)


> @qwen-code/channel-qqbot@0.19.2 test
> vitest run --exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts


 RUN  v3.2.4 /startdir/src/qwen-code/packages/channels/qqbot

 ✓ src/accounts.test.ts (8 tests) 14ms
 ✓ src/api.test.ts (13 tests) 32ms
[QQ:test-bot] Markdown rejected (HTTP 400: markdown unsupported), retrying as plain text
[QQ:test-bot] Send HTTP 500 (msg_seq=-): 
[QQ:test-bot] Token refresh failed: Error: token endpoint down, retrying in 60s
[QQ:test-bot] Token refresh failed: Error: still down, retrying in 60s
[QQ:test-bot] RC: gateway down (retry in 2000ms, attempt 1/5)
[QQ:test-bot] RC: gateway down (retry in 4000ms, attempt 2/5)
[QQ:test-bot] RC: gateway down (retry in 8000ms, attempt 3/5)
[QQ:test-bot] RC: gateway down (retry in 16000ms, attempt 4/5)
[QQ:test-bot] RC: gateway down (retry in 30000ms, attempt 5/5)
[QQ:test-bot] RC: exhausted 5 reconnect retries, will retry in 60s
[QQ:test-bot] RC: reconnect attempts exhausted, giving up
[QQ:test-bot] RC: token refresh failed, retrying...
[QQ:test-bot] RC: token refresh failed, retrying...
[QQ:test-bot] RC: token refresh failed, retrying...
[QQ:test-bot] RC: token refresh failed, retrying...
[QQ:test-bot] RC: token refresh failed, retrying...
[QQ:test-bot] RC: exhausted 5 reconnect retries, will retry in 60s
[QQ:test-bot] Send error: Error: network down
[QQ:test-bot] WebSocket closed (code=4001)
[QQ:test-bot] Reconnecting in 2000ms (attempt 1/20)
 ✓ src/send.test.ts (45 tests) 86ms

 Test Files  3 passed (3)
      Tests  66 passed (66)
   Start at  12:28:38
   Duration  897ms (transform 265ms, setup 0ms, collect 460ms, tests 132ms, environment 1ms, prepare 506ms)

==> ERROR: A failure occurred in check().
    Aborting...
==> ERROR: Build failed, check /home/alhp/workspace/chroot/build_f47124f2-8107-49c8-8c7a-ca3e314c9fac/build
