==> Synchronizing chroot copy [/home/alhp/workspace/chroot/root] -> [build_8af3d0e3-a719-4a8b-b04e-954577416ab1]...done
==> Making package: qwen-code 0.23.3-1.1 (Thu Nov  5 15:07:33 2026)
==> Retrieving sources...
  -> Cloning qwen-code git repo...
Cloning into bare repository '/home/alhp/workspace/build/x86-64-v3/qwen-code-0.23.3-1/qwen-code'...
  -> Found feishu-media-test.patch
==> Validating source files with sha256sums...
    qwen-code ... Passed
    feishu-media-test.patch ... Passed
==> Validating source files with b2sums...
    qwen-code ... Passed
    feishu-media-test.patch ... Passed
Note: in a future version of systemd-nspawn the default set of permitted socket address families will be restricted to AF_INET, AF_INET6 and AF_UNIX. Use --restrict-address-families= to configure the set of permitted socket address families, or set RestrictAddressFamilies= in a .nspawn file.
==> Making package: qwen-code 0.23.3-1.1 (Thu Nov  5 14:12:06 2026)
==> Checking runtime dependencies...
==> Installing missing dependencies...
resolving dependencies...
looking for conflicting packages...

Package (9)       New Version   Net Change

extra/abseil-cpp  20260817.0-2    7.15 MiB
extra/ada         4.0.0-1         0.95 MiB
extra/c-ares      1.34.9-1        0.54 MiB
extra/gtest       1.18.0-1        1.67 MiB
extra/libuv       1.53.0-1        0.68 MiB
extra/simdjson    2:5.0.5-1      10.27 MiB
extra/nodejs      26.13.0-1      64.13 MiB
core/procps-ng    4.0.7-1         2.55 MiB
extra/ripgrep     15.2.0-1        4.29 MiB

Total Installed Size:  92.22 MiB

:: Proceed with installation? [Y/n] 
checking keyring...
checking package integrity...
loading package files...
checking for file conflicts...
:: Processing package changes...
installing gtest...
Optional dependencies for gtest
    python: gmock generator [installed]
installing abseil-cpp...
installing ada...
installing c-ares...
installing libuv...
installing simdjson...
installing nodejs...
Optional dependencies for nodejs
    npm: nodejs package manager
installing procps-ng...
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

extra/node-gyp        13.1.0-1       6.85 MiB
extra/nodejs-nopt     10.0.1-1       0.03 MiB
extra/oniguruma       6.9.10-3       0.87 MiB
extra/perl-error      0.17031-1      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.6-1        0.11 MiB
extra/zlib-ng         2.3.3-1        0.28 MiB
extra/git             2.56.0-1      33.54 MiB
extra/jq              1.8.2-1        0.47 MiB
extra/npm             12.2.1-1       9.46 MiB

Total Installed Size:  51.90 MiB

:: Proceed with installation? [Y/n] 
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 969.
Creating user 'git' (git daemon user) with UID 969 and GID 969.
(2/3) Reloading system manager configuration...
  Skipped: Current root is not booted.
(3/3) Arming ConditionNeedsUpdate...
==> Retrieving sources...
  -> Found feishu-media-test.patch
==> WARNING: Skipping all source file integrity checks.
==> Extracting sources...
  -> Creating working copy of qwen-code git repo...
Cloning into 'qwen-code'...
done.
Switched to a new branch 'makepkg'
==> Starting prepare()...
patching file packages/channels/feishu/src/adapter.test.ts
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 node-domexception@1.0.0: Use your platform's native DOMException instead
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 @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm warn deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
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.
npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported

added 1981 packages, and audited 2007 packages in 57s

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

69 vulnerabilities (7 low, 33 moderate, 21 high, 8 critical)

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

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

Some issues need review, and may require choosing
a different dependency.

Run `npm audit` for details.
patch-package 8.0.1
Applying patches...
ink@7.0.3 ✔
==> Starting build()...
npm notice run @qwen-code/qwen-code@0.23.3 build
npm notice run cross-env NODE_OPTIONS="--max-old-space-size=3072" node scripts/build.js
npm notice run @qwen-code/qwen-code@0.23.3 generate
npm notice run node scripts/generate-git-commit-info.js
npm notice run @qwen-code/qwen-code-core@0.23.3 build
npm notice run node ../../scripts/build_package.js
Successfully copied files.
npm notice run @qwen-code/channel-base@0.23.3 build
npm notice run tsc --build
npm notice run @qwen-code/channel-telegram@0.23.3 build
npm notice run tsc --build
npm notice run @qwen-code/channel-weixin@0.23.3 build
npm notice run tsc --build
npm notice run @qwen-code/channel-dingtalk@0.23.3 build
npm notice run tsc --build
npm notice run @qwen-code/channel-dws@0.23.3 build
npm notice run tsc --build
npm notice run @qwen-code/channel-wecom@0.23.3 build
npm notice run tsc --build
npm notice run @qwen-code/channel-feishu@0.23.3 build
npm notice run tsc --build
npm notice run @qwen-code/channel-qqbot@0.23.3 build
npm notice run tsc --build
npm notice run @qwen-code/channel-github@0.23.3 build
npm notice run tsc --build
npm notice run @qwen-code/channel-gitlab@0.23.3 build
npm notice run tsc --build
npm notice run @qwen-code/channel-plugin-example@0.23.3 build
npm notice run tsc --build
npm notice run @qwen-code/audio-capture@0.23.3 build:ts
npm notice run tsc --build
npm notice run @qwen-code/node-repl-mcp@0.1.3 build
npm notice run node build.mjs
node-repl-mcp: runtime assets copied to /startdir/src/qwen-code/packages/node-repl/dist/runtime
npm notice run @qwen-code/acp-bridge@0.23.3 build
npm notice run node ../../scripts/build_package.js
Successfully copied files.
npm notice run @qwen-code/sdk@0.1.11 build
npm notice run node scripts/build.js
npm notice run @qwen-code/qwen-code@0.23.3 npx
npm notice run 'dts-bundle-generator' --project tsconfig.build.json -o dist/index.d.ts src/index.ts
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 13.70s
npm notice run @qwen-code/qwen-code@0.23.3 npx
npm notice run 'dts-bundle-generator' --project tsconfig.build.json -o dist/daemon/transcript.d.ts src/daemon/transcript.ts
Compiling input files...
Processing src/daemon/transcript.ts
Writing src/daemon/transcript.ts -> dist/daemon/transcript.d.ts
Checking generated files...
[1;33mCompiler option "skipLibCheck" is disabled to properly check generated output[0m
Done in 1.82s
Browser daemon SDK bundle is 241267 bytes
Browser daemon SDK bundle exceeds the 221184-byte warning threshold
npm notice run @qwen-code/web-shell@0.23.3 build
npm notice run vite build && vite build --config vite.lib.config.ts && vite build --config vite.lib.config.ts --mode transcript && tsc -p tsconfig.lib.json
vite v5.4.21 building for production...
transforming...
✓ 5825 modules transformed.
rendering chunks...
computing gzip size...
../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/csv-CX7rUNeC.svg                              5.46 kB │ gzip:     2.08 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/default-aEtf0G7-.svg                          8.90 kB │ gzip:     2.64 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/queue-DWpnpFgW.svg                           11.56 kB │ gzip:     2.42 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/index.html                                          15.75 kB │ gzip:     5.94 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-eBxK3rs2.css                          565.78 kB │ gzip:    97.58 kB
../dist/assets/channel-Blod4z1X.js                           0.11 kB │ gzip:     0.13 kB
../dist/assets/init-Gi6I4Gst.js                              0.15 kB │ gzip:     0.13 kB
../dist/assets/chunk-2Q5K7J3B-DbT9wS7j.js                    0.19 kB │ gzip:     0.16 kB
../dist/assets/chunk-XXDRQBXY-BIA0eb5B.js                    0.23 kB │ gzip:     0.21 kB
../dist/assets/chunk-JWPE2WC7-D89c_BXy.js                    0.30 kB │ gzip:     0.21 kB
../dist/assets/chunk-5VM5RSS4-CNbULt6O.js                    0.37 kB │ gzip:     0.27 kB
../dist/assets/stateDiagram-v2-4QOOHH4V-C4CbdvGa.js          0.43 kB │ gzip:     0.30 kB
../dist/assets/classDiagram-DTDB5LWJ-D6hFDMqb.js             0.47 kB │ gzip:     0.32 kB
../dist/assets/classDiagram-v2-JRS7N3AN-D6hFDMqb.js          0.47 kB │ gzip:     0.32 kB
../dist/assets/chunk-POPQ4Y6H-DcLQFzS4.js                    0.53 kB │ gzip:     0.37 kB
../dist/assets/codeowners-Bp6g37R7.js                        0.55 kB │ gzip:     0.32 kB
../dist/assets/swimlanesDiagram-VK2B7HYN--QNSIOC8.js         0.55 kB │ gzip:     0.37 kB
../dist/assets/infoDiagram-RXCK75RN-Bpai64Ll.js              0.59 kB │ gzip:     0.41 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/sizeCapture-X5ZJPWSS-BB7YY4Tl.js              1.00 kB │ gzip:     0.56 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/railroadDiagram-O6MQD6OU-E1g2KIFK.js          1.61 kB │ gzip:     0.76 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/abnfDiagram-VCTEODGH-nU24rpIE.js              1.81 kB │ gzip:     0.90 kB
../dist/assets/hxml-TIA70rKU.js                              1.83 kB │ gzip:     0.89 kB
../dist/assets/chunk-F27PBJKO-CbQRy4Tb.js                    1.85 kB │ gzip:     0.82 kB
../dist/assets/pegDiagram-XKGWAZYB-BhD0q0i6.js               1.96 kB │ gzip:     0.93 kB
../dist/assets/ebnfDiagram-PWID7BFC-BGpiquRm.js              2.01 kB │ gzip:     0.89 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/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-D1hTu8QI.js                               3.43 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-Z3DM3KII-3ZLtKEXo.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/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-C6lklGdq.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/coq-Dsg_Bt_b.js                               5.99 kB │ gzip:     2.03 kB
../dist/assets/diagram-UQ7AKVKN-CjD_sBMj.js                  6.23 kB │ gzip:     2.67 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/pieDiagram-E7YTZNPT-BvIGQCSd.js               6.35 kB │ gzip:     2.66 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/diagram-S7CK7UJ4-DD5PJfSm.js                  8.30 kB │ gzip:     3.72 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/cynefinDiagram-5FMLGOSQ-LENf_IUy.js          10.08 kB │ gzip:     3.61 kB
../dist/assets/gherkin--30QC5Em.js                          10.12 kB │ gzip:     5.02 kB
../dist/assets/stateDiagram-HBIQ2CUA-C8LDpNHS.js            10.37 kB │ gzip:     3.63 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-VSXAHHWV-U5WwMqyA.js                 10.82 kB │ gzip:     4.18 kB
../dist/assets/cadence-DNquZEk8.js                          11.03 kB │ gzip:     2.32 kB
../dist/assets/dagre-3AP2YEHR-CF9XVrD9.js                   11.14 kB │ gzip:     4.19 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/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/chunk-SVP7TREG-DyBb2Axj.js                   15.75 kB │ gzip:     4.42 kB
../dist/assets/wasm-C6j12Q_x.js                             15.93 kB │ gzip:     2.89 kB
../dist/assets/diagram-VX7I27RA-BujpHJJf.js                 16.07 kB │ gzip:     5.73 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-5VMMS53U-ktpJFq4r.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-3QL26DDD-m_gG00Yt.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-FBJOCRG2-DRQbT8w-.js      23.36 kB │ gzip:     7.82 kB
../dist/assets/sankeyDiagram-P5KCCOFB-CqWyCZGA.js           23.39 kB │ gzip:     8.54 kB
../dist/assets/journeyDiagram-EYS64GPL-iz_DKgFX.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/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-VM6X3IG4-G9nhtLES.js          26.10 kB │ gzip:     6.90 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/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/index-BYWs4JWq.js                            28.32 kB │ gzip:     9.86 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-WWUBYQGX-C_pPFiTR.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/erDiagram-SSCWMZ5O-D0besu_U.js               30.92 kB │ gzip:    10.52 kB
../dist/assets/requirementDiagram-EFPCY7ZU-CuerYJOe.js      31.20 kB │ gzip:     9.69 kB
../dist/assets/timeline-definition-24CTP7MA-C9C8uEYm.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-AXDQQJYC-BDQtfpU-.js         34.49 kB │ gzip:    10.01 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/layout-qEvKgnvU.js                           35.44 kB │ gzip:    12.72 kB
../dist/assets/nginx-D_VnBJ67.js                            35.73 kB │ gzip:     4.53 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-G27WJ6UU-CVbXTxYk.js                   38.56 kB │ gzip:    12.53 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-4TSXK5OY-CYzMHbVW.js             42.37 kB │ gzip:    15.66 kB
../dist/assets/shellscript-atvbtKCR.js                      42.71 kB │ gzip:     6.35 kB
../dist/assets/blockDiagram-NRAW4CY4-C3pddUNg.js            42.97 kB │ gzip:    13.75 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/xychartDiagram-S5SC5T6Z-ruD2Wjhg.js          44.51 kB │ gzip:    12.50 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-LCL6LL3I-B7-I_9KB.js                   49.30 kB │ gzip:    15.59 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/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/flowDiagram-A5DVABFB-9DwDuIyr.js             62.60 kB │ gzip:    19.76 kB
../dist/assets/c4Diagram-UCG6FXSJ-kEFoC1ei.js               65.55 kB │ gzip:    18.65 kB
../dist/assets/ocaml-BNioltXt.js                            65.87 kB │ gzip:     5.19 kB
../dist/assets/ganttDiagram-EL5Y4UJY-CNlsAeNr.js            69.44 kB │ gzip:    23.19 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/vyper-nyqBNV6O.js                            78.23 kB │ gzip:    12.05 kB
../dist/assets/cose-bilkent-JH36ORCC-Db2FYN85.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/swimlanes-XN3QIQJK-D94vOoxZ.js              117.13 kB │ gzip:    42.49 kB
../dist/assets/sequenceDiagram-WJ2MYXX4-B-YWb8x4.js        117.42 kB │ gzip:    31.01 kB
../dist/assets/mdx-sdHcTMYB.js                             140.36 kB │ gzip:    23.83 kB
../dist/assets/architectureDiagram-5GKGNRK7-B_fgkKe7.js    151.81 kB │ gzip:    42.86 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/wasm-CG6Dc4jp.js                            622.34 kB │ gzip:   231.16 kB
../dist/assets/cynefin-OW5HDTMX-i4GwmBVy.js                690.59 kB │ gzip:   154.58 kB
../dist/assets/mermaid.core-DSCYB_2P.js                    695.49 kB │ gzip:   171.13 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-CGT341lL.js                         1,135.40 kB │ gzip:   381.21 kB
../dist/assets/index-D3YS6KuJ.js                         4,596.76 kB │ gzip: 1,340.21 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 12.51s
vite v5.4.21 building for production...
transforming...
✓ 625 modules transformed.
rendering chunks...
computing gzip size...
dist/daemon-react-sdk.js        1.78 kB │ gzip:     0.79 kB
dist/toolNames-BLVf9VhH.js    306.06 kB │ gzip:    71.80 kB
dist/index.js               7,193.75 kB │ gzip: 2,005.23 kB
✓ built in 4.45s
vite v5.4.21 building for transcript...
transforming...
✓ 322 modules transformed.
rendering chunks...
computing gzip size...
dist/transcript.js  3,497.03 kB │ gzip: 1,309.91 kB
✓ built in 1.69s
npm notice run @qwen-code/web-templates@0.23.3 build
npm notice run node build.mjs && tsc --build --clean && tsc
Building web-templates...
Building insight assets with Vite...
▲ [WARNING] "import.meta" is not available with the "iife" output format and will be empty [empty-import-meta]

    ../../../web-shell/dist/transcript.js:13610:35:
      13610 │ ... yt(void 0), hT = typeof import.meta.url == "string" && impo...
            ╵                             ~~~~~~~~~~~

  You need to set the output format to "esm" for "import.meta" to work correctly.

▲ [WARNING] "import.meta" is not available with the "iife" output format and will be empty [empty-import-meta]

    ../../../web-shell/dist/transcript.js:13610:66:
      13610 │ ....meta.url == "string" && import.meta.url ? import.meta.url :...
            ╵                             ~~~~~~~~~~~

  You need to set the output format to "esm" for "import.meta" to work correctly.

▲ [WARNING] "import.meta" is not available with the "iife" output format and will be empty [empty-import-meta]

    ../../../web-shell/dist/transcript.js:13610:84:
      13610 │ ...ng" && import.meta.url ? import.meta.url : "web-shell/Daemon...
            ╵                             ~~~~~~~~~~~

  You need to set the output format to "esm" for "import.meta" to work correctly.

vite v5.4.21 building for production...
transforming...
Document export top inputs (pre-minify bytes): lucide-react 1574512, first-party 1497009, katex 601155, react-dom 545403, micromark-core-commonmark 114773, tailwind-merge 105606, micromark 70253, @datafe-open/markdown-chart-echarts 69449
Document export renderer JS is 1838204 bytes; component CSS moved to export-transcript-document.css is 2302905 bytes
Browserslist: browsers data (caniuse-lite) is 12 months old. Please run:
  npx update-browserslist-db@latest
  Why you should do it regularly: https://github.com/browserslist/update-db#readme
✓ 8 modules transformed.
rendering chunks...
computing gzip size...
dist/main.css  17.77 kB │ gzip: 4.28 kB
dist/main.js   32.80 kB │ gzip: 9.04 kB
✓ built in 189ms
Reading generated files...
Successfully generated /startdir/src/qwen-code/packages/web-templates/src/generated/insightTemplate.ts
Successfully built all web-templates.
npm notice run @qwen-code/qwen-code@0.23.3 build
npm notice run 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:2414) [DEP0205] DeprecationWarning: `module.register()` is deprecated. Use `module.registerHooks()` instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
npm notice run @qwen-code/qwen-live@0.1.0 build
npm notice run node build.mjs
npm notice run qwen-code-vscode-ide-companion@0.23.3 build
npm notice run npm run build:dev
npm notice run qwen-code-vscode-ide-companion@0.23.3 build:dev
npm notice run npm run check-types && npm run lint && node esbuild.js
npm notice run qwen-code-vscode-ide-companion@0.23.3 check-types
npm notice run tsc --noEmit
npm notice run qwen-code-vscode-ide-companion@0.23.3 lint
npm notice run eslint src
npm notice run @qwen-code/chrome-bridge@0.23.3 build
npm notice run node scripts/sync-extension.js && node config/esbuild.background.config.js --production
Static assets synced -> dist/extension
Background/content build complete!
npm notice run @qwen-code/external-context@0.23.3 build
npm notice run npm run clean && tsc --build && npm --prefix examples/provider-extension-local run build
npm notice run @qwen-code/external-context@0.23.3 clean
npm notice run node -e "const fs=require('node:fs'); fs.rmSync('dist',{recursive:true,force:true}); fs.rmSync('tsconfig.tsbuildinfo',{force:true})"
npm notice run provider-context-local-example@1.0.0 build
npm notice run npm run clean && esbuild src/main.ts --bundle --platform=node --target=node22 --format=esm --banner:js="import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);" --outfile=dist/main.js
npm notice run provider-context-local-example@1.0.0 clean
npm notice run node -e "require('node:fs').rmSync('dist',{recursive:true,force:true})"

  dist/main.js  1.9mb ⚠️

⚡ Done in 31ms
npm notice run @qwen-code/external-context-mem0@0.23.3 build
npm notice run npm run clean && esbuild src/main.ts src/auto-recall.ts src/write-main.ts src/delete-main.ts --bundle --platform=node --target=node22 --format=esm --banner:js="import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);" --outdir=dist
npm notice run @qwen-code/external-context-mem0@0.23.3 clean
npm notice run node -e "require('node:fs').rmSync('dist',{recursive:true,force:true})"

  dist/delete-main.js    1.2mb ⚠️
  dist/main.js           1.2mb ⚠️
  dist/write-main.js     1.2mb ⚠️
  dist/auto-recall.js  408.5kb

⚡ Done in 56ms
npm notice run @qwen-code/qwen-code@0.23.3 bundle
npm notice run npm run generate && node esbuild.config.js && node scripts/copy_bundle_assets.js
npm notice run @qwen-code/qwen-code@0.23.3 generate
npm notice run 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 14 OpenTUI runtime assets to dist/opentui-assets/
Copied extension examples to dist/examples/
Copied Web Shell UI to dist/web-shell/
Copied HTML export renderer to dist/
Stamped the review source digest over 113 files.

✅ All bundle assets copied to dist/
npm notice
npm notice 📦  @qwen-code/qwen-code@0.23.3
npm notice Tarball Contents
npm notice 11.4kB LICENSE
npm notice 13.0kB README.md
npm notice 9.0kB dist/bundled/batch/SKILL.md
npm notice 214B dist/bundled/computer-use/agents/openai.yaml
npm notice 8.7kB dist/bundled/computer-use/SKILL.md
npm notice 4.0kB dist/bundled/coordinate/SKILL.md
npm notice 574B dist/bundled/dataviz/references/anti-patterns.md
npm notice 1.2kB dist/bundled/dataviz/references/choosing-a-form.md
npm notice 1.6kB dist/bundled/dataviz/references/palette.md
npm notice 8.7kB dist/bundled/dataviz/scripts/validate_palette.js
npm notice 2.1kB dist/bundled/dataviz/SKILL.md
npm notice 20.1kB dist/bundled/extension-creator/SKILL.md
npm notice 13.0kB dist/bundled/goal-draft/SKILL.md
npm notice 8.4kB dist/bundled/loop/autonomous-loop.ts
npm notice 16.4kB dist/bundled/loop/loop-task-file.ts
npm notice 20.0kB dist/bundled/loop/loop-tick-resolver.ts
npm notice 10.2kB dist/bundled/loop/SKILL.md
npm notice 4.5kB dist/bundled/new-app/SKILL.md
npm notice 1.0kB dist/bundled/qc-helper/docs/_meta.ts
npm notice 17.4kB dist/bundled/qc-helper/docs/common-workflow.md
npm notice 205B dist/bundled/qc-helper/docs/configuration/_meta.ts
npm notice 23.6kB dist/bundled/qc-helper/docs/configuration/auth.md
npm notice 59.9kB dist/bundled/qc-helper/docs/configuration/model-providers.md
npm notice 3.0kB dist/bundled/qc-helper/docs/configuration/qwen-ignore.md
npm notice 331.8kB 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 6.0kB dist/bundled/qc-helper/docs/conversations-recovery.md
npm notice 208B dist/bundled/qc-helper/docs/extension/_meta.ts
npm notice 2.3kB dist/bundled/qc-helper/docs/extension/agent-plugins.md
npm notice 10.4kB 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 21.4kB dist/bundled/qc-helper/docs/extension/introduction.md
npm notice 1.0kB dist/bundled/qc-helper/docs/features/_meta.ts
npm notice 15.1kB dist/bundled/qc-helper/docs/features/approval-mode.md
npm notice 13.0kB dist/bundled/qc-helper/docs/features/arena.md
npm notice 15.9kB dist/bundled/qc-helper/docs/features/auto-mode.md
npm notice 260B dist/bundled/qc-helper/docs/features/channels/_meta.ts
npm notice 12.4kB dist/bundled/qc-helper/docs/features/channels/dingtalk.md
npm notice 8.5kB dist/bundled/qc-helper/docs/features/channels/dws.md
npm notice 7.2kB dist/bundled/qc-helper/docs/features/channels/feishu.md
npm notice 10.8kB dist/bundled/qc-helper/docs/features/channels/github.md
npm notice 10.4kB dist/bundled/qc-helper/docs/features/channels/gitlab.md
npm notice 41.4kB dist/bundled/qc-helper/docs/features/channels/overview.md
npm notice 4.5kB dist/bundled/qc-helper/docs/features/channels/plugins.md
npm notice 8.2kB dist/bundled/qc-helper/docs/features/channels/qqbot.md
npm notice 5.2kB dist/bundled/qc-helper/docs/features/channels/telegram.md
npm notice 4.9kB dist/bundled/qc-helper/docs/features/channels/wecom.md
npm notice 4.5kB dist/bundled/qc-helper/docs/features/channels/weixin.md
npm notice 61.4kB dist/bundled/qc-helper/docs/features/code-review.md
npm notice 75.4kB dist/bundled/qc-helper/docs/features/commands.md
npm notice 3.2kB dist/bundled/qc-helper/docs/features/computer-use.md
npm notice 23.9kB dist/bundled/qc-helper/docs/features/cross-session-protocol.md
npm notice 22.9kB dist/bundled/qc-helper/docs/features/dual-output.md
npm notice 6.0kB dist/bundled/qc-helper/docs/features/followup-suggestions.md
npm notice 13.2kB dist/bundled/qc-helper/docs/features/goals.md
npm notice 31.3kB dist/bundled/qc-helper/docs/features/headless.md
npm notice 64.4kB 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.9kB dist/bundled/qc-helper/docs/features/markdown-rendering.md
npm notice 26.6kB dist/bundled/qc-helper/docs/features/mcp.md
npm notice 13.3kB dist/bundled/qc-helper/docs/features/memory.md
npm notice 2.9kB dist/bundled/qc-helper/docs/features/multi-agent-coordination.md
npm notice 6.6kB dist/bundled/qc-helper/docs/features/output-styles.md
npm notice 8.6kB dist/bundled/qc-helper/docs/features/sandbox.md
npm notice 8.8kB dist/bundled/qc-helper/docs/features/scheduled-tasks.md
npm notice 18.0kB dist/bundled/qc-helper/docs/features/skills.md
npm notice 25.2kB dist/bundled/qc-helper/docs/features/status-line.md
npm notice 16.7kB dist/bundled/qc-helper/docs/features/structured-output.md
npm notice 37.6kB dist/bundled/qc-helper/docs/features/sub-agents.md
npm notice 2.8kB dist/bundled/qc-helper/docs/features/terminal-images.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.5kB dist/bundled/qc-helper/docs/features/tool-use-summaries.md
npm notice 22.5kB 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.9kB 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 17.4kB dist/bundled/qc-helper/docs/qwen-serve-deploy-local.md
npm notice 186.9kB dist/bundled/qc-helper/docs/qwen-serve.md
npm notice 66B dist/bundled/qc-helper/docs/reference/_meta.ts
npm notice 26.8kB dist/bundled/qc-helper/docs/reference/keyboard-shortcuts.md
npm notice 122B dist/bundled/qc-helper/docs/support/_meta.ts
npm notice 8.1kB dist/bundled/qc-helper/docs/support/tos-privacy.md
npm notice 14.3kB dist/bundled/qc-helper/docs/support/troubleshooting.md
npm notice 1.8kB dist/bundled/qc-helper/docs/support/Uninstall.md
npm notice 11.7kB dist/bundled/qc-helper/SKILL.md
npm notice 8.2kB dist/bundled/review/references/aone.md
npm notice 25.3kB dist/bundled/review/references/persistence.md
npm notice 63.6kB dist/bundled/review/references/posting.md
npm notice 379.8kB dist/bundled/review/SKILL.md
npm notice 5.2kB dist/bundled/simplify/SKILL.md
npm notice 12.2kB dist/bundled/stuck/SKILL.md
npm notice 3.0kB dist/bundled/workflow-creator/SKILL.md
npm notice 2.3kB dist/bundled/zvec-grep-install/SKILL.md
npm notice 700B dist/chunks/acp-startup-profiler-KEU6VAYR.js
npm notice 33.7kB dist/chunks/acp-subagent-executor-UZPWZL5E.js
npm notice 1.0MB dist/chunks/acpAgent-L34GWEFV.js
npm notice 2.6kB dist/chunks/agent-headless-4VGRA5K4.js
npm notice 3.0kB dist/chunks/agent-Q2XOFOST.js
npm notice 239.1kB dist/chunks/anthropicContentGenerator-JSKMKS6V.js
npm notice 25.1kB dist/chunks/artifact-tool-PMYZCYNH.js
npm notice 328B dist/chunks/askUserQuestion-4M4YYIB4.js
npm notice 3.8kB dist/chunks/bridge-CVNJXCCW.js
npm notice 1.5kB dist/chunks/build-63BIOYWK.js
npm notice 177.2kB dist/chunks/ca-KC2AISNS.js
npm notice 15.7kB dist/chunks/channel-management-service-OWDXVL7R.js
npm notice 3.9kB dist/chunks/channel-settings-store-CO5F5QOG.js
npm notice 880B dist/chunks/channel-worker-group-F2ZZMLNS.js
npm notice 22.7kB dist/chunks/channel-worker-manager-2SZLJJSJ.js
npm notice 942B dist/chunks/channel-worker-supervisor-ZFNWMG6D.js
npm notice 30.0kB dist/chunks/chunk-2ALXPGB4.js
npm notice 49.6kB dist/chunks/chunk-2AUM35J5.js
npm notice 171.6kB dist/chunks/chunk-2EAZ43JQ.js
npm notice 16.4kB dist/chunks/chunk-2MIN6GRR.js
npm notice 341.8kB dist/chunks/chunk-2SZH22YO.js
npm notice 17.5kB dist/chunks/chunk-2UWQX4FP.js
npm notice 953B dist/chunks/chunk-2X56YUSZ.js
npm notice 85.0kB dist/chunks/chunk-2XRE4KE4.js
npm notice 2.6kB dist/chunks/chunk-2Z3T52OC.js
npm notice 6.3kB dist/chunks/chunk-3CZ2BQV6.js
npm notice 5.9kB dist/chunks/chunk-3FPYT6QC.js
npm notice 6.3kB dist/chunks/chunk-3I7W2POO.js
npm notice 6.2MB dist/chunks/chunk-3UKH32NF.js
npm notice 2.0kB dist/chunks/chunk-3VUENPWF.js
npm notice 18.5kB dist/chunks/chunk-4ALNJDHL.js
npm notice 1.8kB dist/chunks/chunk-4JRM2BSM.js
npm notice 35.3kB dist/chunks/chunk-4KT6EV7F.js
npm notice 723B dist/chunks/chunk-4LIPOIXS.js
npm notice 9.6kB dist/chunks/chunk-4VQBQLIZ.js
npm notice 265B dist/chunks/chunk-4WGODMVR.js
npm notice 3.8kB dist/chunks/chunk-5EJZE3FP.js
npm notice 2.3kB dist/chunks/chunk-5ETULJLP.js
npm notice 18.0kB dist/chunks/chunk-5GLDOLNQ.js
npm notice 689B dist/chunks/chunk-5IENVM7Z.js
npm notice 789B dist/chunks/chunk-5O2XNYP6.js
npm notice 19.3kB dist/chunks/chunk-5QWWOFGG.js
npm notice 553.1kB dist/chunks/chunk-5WV5S2GT.js
npm notice 1.2kB dist/chunks/chunk-6H67XLET.js
npm notice 3.2kB dist/chunks/chunk-6HUXPLB5.js
npm notice 891B dist/chunks/chunk-6JACAGYH.js
npm notice 1.5kB dist/chunks/chunk-6MBXY6WM.js
npm notice 2.5kB dist/chunks/chunk-6PLDPT2C.js
npm notice 21.5kB dist/chunks/chunk-6PLQEOVM.js
npm notice 662B dist/chunks/chunk-6PVPNMXU.js
npm notice 6.9kB dist/chunks/chunk-7CLLH5TI.js
npm notice 1.4kB dist/chunks/chunk-7FA2II6K.js
npm notice 267.1kB dist/chunks/chunk-7NXSVSFB.js
npm notice 394.0kB dist/chunks/chunk-7QYWGTHB.js
npm notice 2.1MB dist/chunks/chunk-7SYNGXBV.js
npm notice 21.2kB dist/chunks/chunk-7U5G6JXI.js
npm notice 37.1kB dist/chunks/chunk-7XAZ5IPM.js
npm notice 1.5kB dist/chunks/chunk-24FVUD5P.js
npm notice 502B dist/chunks/chunk-32CM56LO.js
npm notice 76.7kB dist/chunks/chunk-36HCNKDS.js
npm notice 8.0kB dist/chunks/chunk-47ECGEJC.js
npm notice 50.6kB dist/chunks/chunk-57OAHC2Y.js
npm notice 15.7kB dist/chunks/chunk-65I7S4Z3.js
npm notice 5.5kB dist/chunks/chunk-66WMEUFC.js
npm notice 158.3kB dist/chunks/chunk-74TONY4F.js
npm notice 18.7kB dist/chunks/chunk-75DOP5OR.js
npm notice 845B dist/chunks/chunk-76RGWKLS.js
npm notice 150.6kB dist/chunks/chunk-76WN6PLB.js
npm notice 3.9kB dist/chunks/chunk-532WHF4F.js
npm notice 64.2kB dist/chunks/chunk-534Z7ZRN.js
npm notice 39.7kB dist/chunks/chunk-5353PCHH.js
npm notice 6.2kB dist/chunks/chunk-A2UBM4R3.js
npm notice 90.4kB dist/chunks/chunk-A4N4FTMH.js
npm notice 42.3kB dist/chunks/chunk-AEY27Z35.js
npm notice 1.4kB dist/chunks/chunk-ALMR3E6Q.js
npm notice 13.5kB dist/chunks/chunk-AXPOOQAW.js
npm notice 51.5kB dist/chunks/chunk-AXTFYDXT.js
npm notice 1.1kB dist/chunks/chunk-AYEJOTIU.js
npm notice 610.6kB dist/chunks/chunk-B56CECEK.js
npm notice 883.2kB dist/chunks/chunk-bdqvmfwv-ZTSOWAFE.js
npm notice 3.2kB dist/chunks/chunk-BFSFJR3D.js
npm notice 1.6kB dist/chunks/chunk-BHTYRHJF.js
npm notice 5.1kB dist/chunks/chunk-BUQN5LTI.js
npm notice 5.1kB dist/chunks/chunk-BW4333PP.js
npm notice 1.5kB dist/chunks/chunk-BXZIO3HR.js
npm notice 21.9kB dist/chunks/chunk-BYUAT5OC.js
npm notice 4.2kB dist/chunks/chunk-C6OEJ4Q6.js
npm notice 20.8kB dist/chunks/chunk-CAAI2LRI.js
npm notice 5.6kB dist/chunks/chunk-CF5KXZZX.js
npm notice 1.2kB dist/chunks/chunk-CFKIH3D3.js
npm notice 8.7kB dist/chunks/chunk-CH2YDT6X.js
npm notice 1.2kB dist/chunks/chunk-CHEIIBT3.js
npm notice 959B dist/chunks/chunk-CJ3DHN5I.js
npm notice 541.9kB dist/chunks/chunk-CQ35AJ4Z.js
npm notice 11.8kB dist/chunks/chunk-CUEXOHQH.js
npm notice 34.5kB dist/chunks/chunk-CXTPVBFA.js
npm notice 296.3kB dist/chunks/chunk-D7RWWVVK.js
npm notice 433.3kB dist/chunks/chunk-DI35ZN7T.js
npm notice 3.1kB dist/chunks/chunk-DJ2GSRLV.js
npm notice 1.9kB dist/chunks/chunk-DJXSOEFB.js
npm notice 5.2kB dist/chunks/chunk-DLH7YIX6.js
npm notice 1.6kB dist/chunks/chunk-DMEUXLSS.js
npm notice 20.2kB dist/chunks/chunk-DMTGGOSA.js
npm notice 12.4kB dist/chunks/chunk-DTNV6UZY.js
npm notice 45.8kB dist/chunks/chunk-E4UEO3XM.js
npm notice 8.0kB dist/chunks/chunk-EDIDYZBT.js
npm notice 52.9kB dist/chunks/chunk-EDMXGXAK.js
npm notice 775.8kB dist/chunks/chunk-EFT7OMDN.js
npm notice 1.1kB dist/chunks/chunk-EKTCKZV5.js
npm notice 11.8kB dist/chunks/chunk-ELRMZTPF.js
npm notice 669B dist/chunks/chunk-ERU3SDXT.js
npm notice 9.7kB dist/chunks/chunk-EUURTIV6.js
npm notice 15.3kB dist/chunks/chunk-EWJTAP3Y.js
npm notice 8.1kB dist/chunks/chunk-EWNKP4V4.js
npm notice 1.2kB dist/chunks/chunk-F23YN37B.js
npm notice 10.2kB dist/chunks/chunk-F53KKZUD.js
npm notice 16.7kB dist/chunks/chunk-FAWTMDX7.js
npm notice 20.2kB dist/chunks/chunk-FBDH6SO7.js
npm notice 1.5kB dist/chunks/chunk-FBX2SDQ4.js
npm notice 508.7kB dist/chunks/chunk-FCQJLMA2.js
npm notice 36.4kB dist/chunks/chunk-FN3JNDRU.js
npm notice 8.0kB dist/chunks/chunk-FPGTNKCP.js
npm notice 1.8kB dist/chunks/chunk-FTJMWDND.js
npm notice 6.8kB dist/chunks/chunk-FYJ7W2PI.js
npm notice 16.4kB dist/chunks/chunk-G6UUOCUT.js
npm notice 1.6kB dist/chunks/chunk-GELRJXE2.js
npm notice 2.8kB dist/chunks/chunk-GH3TVMN4.js
npm notice 4.3kB dist/chunks/chunk-GOFAQQZA.js
npm notice 90.4kB dist/chunks/chunk-GPHO2WN6.js
npm notice 11.7kB dist/chunks/chunk-GRYBPFQI.js
npm notice 23.7kB dist/chunks/chunk-GSKX53AN.js
npm notice 3.4kB dist/chunks/chunk-GW6BQMQE.js
npm notice 584.9kB dist/chunks/chunk-GWZEN4F2.js
npm notice 688B dist/chunks/chunk-GYTKQYDB.js
npm notice 30.2kB dist/chunks/chunk-H5TELNQO.js
npm notice 44.1kB dist/chunks/chunk-H7ROCA6O.js
npm notice 378B dist/chunks/chunk-HBQ2NXOU.js
npm notice 353B dist/chunks/chunk-HD7O6WLV.js
npm notice 6.9kB dist/chunks/chunk-HG46TTAG.js
npm notice 16.0kB dist/chunks/chunk-HGEUHUEV.js
npm notice 878B dist/chunks/chunk-HHJLM3WQ.js
npm notice 3.8kB dist/chunks/chunk-HIF3DLEX.js
npm notice 11.6kB dist/chunks/chunk-HNLMYDQE.js
npm notice 11.0kB dist/chunks/chunk-HOUXAPFX.js
npm notice 18.1kB dist/chunks/chunk-HQD7L65L.js
npm notice 16.0kB dist/chunks/chunk-HRCGZ6Z2.js
npm notice 832B dist/chunks/chunk-HRVMTN37.js
npm notice 715.9kB dist/chunks/chunk-HTUNI3CJ.js
npm notice 2.4kB dist/chunks/chunk-HUXPEUFL.js
npm notice 4.0kB dist/chunks/chunk-HWVUSYSN.js
npm notice 48.2kB dist/chunks/chunk-IAEXTMED.js
npm notice 2.2kB dist/chunks/chunk-IDS7MSUP.js
npm notice 78.8kB dist/chunks/chunk-IJOS26LH.js
npm notice 147.9kB dist/chunks/chunk-IK2MWJP5.js
npm notice 4.6kB dist/chunks/chunk-IRH27ZC2.js
npm notice 63.9kB dist/chunks/chunk-IUVIBDKU.js
npm notice 7.9kB dist/chunks/chunk-IV7GDNKC.js
npm notice 32.4kB dist/chunks/chunk-IZ2U57NY.js
npm notice 2.5kB dist/chunks/chunk-J2S4EL5Y.js
npm notice 7.1kB dist/chunks/chunk-J3TJH52D.js
npm notice 233.0kB dist/chunks/chunk-J4MOFEOK.js
npm notice 1.2kB dist/chunks/chunk-J5TTWBZK.js
npm notice 243.0kB dist/chunks/chunk-J6MB5ZHZ.js
npm notice 20.3kB dist/chunks/chunk-JBIGJ462.js
npm notice 114.8kB dist/chunks/chunk-JC75IMDP.js
npm notice 196.0kB dist/chunks/chunk-JJKNYRFY.js
npm notice 1.4kB dist/chunks/chunk-JL6APGBX.js
npm notice 101.2kB dist/chunks/chunk-JPWJWE72.js
npm notice 19.4kB dist/chunks/chunk-JRTPUM7H.js
npm notice 613B dist/chunks/chunk-JS73NNWF.js
npm notice 934B dist/chunks/chunk-JVEGA3MM.js
npm notice 640B dist/chunks/chunk-JX6XHPTX.js
npm notice 80.4kB dist/chunks/chunk-JXNIF2O5.js
npm notice 2.4kB dist/chunks/chunk-K2OJUPOE.js
npm notice 233.6kB dist/chunks/chunk-K6KS3LTN.js
npm notice 44.3kB dist/chunks/chunk-K6YKVMW6.js
npm notice 42.6kB dist/chunks/chunk-KFFCDLKV.js
npm notice 1.7kB dist/chunks/chunk-KRDJ2QM3.js
npm notice 671B dist/chunks/chunk-KW7NOTN6.js
npm notice 725B dist/chunks/chunk-L34XSHIZ.js
npm notice 8.9kB dist/chunks/chunk-LAUEEBDL.js
npm notice 687B dist/chunks/chunk-LBOVL47Y.js
npm notice 40.0kB dist/chunks/chunk-LG5Y4OWO.js
npm notice 784B dist/chunks/chunk-LIKIJAUH.js
npm notice 90.3kB dist/chunks/chunk-LILGKQ4B.js
npm notice 359B dist/chunks/chunk-LJZSMWOH.js
npm notice 64.2kB dist/chunks/chunk-LK2WUCDQ.js
npm notice 11.1kB dist/chunks/chunk-LT4MAGF3.js
npm notice 9.2kB dist/chunks/chunk-M3JGHRMQ.js
npm notice 2.3kB dist/chunks/chunk-M3OY67IU.js
npm notice 3.5kB dist/chunks/chunk-M5GB774H.js
npm notice 429.9kB dist/chunks/chunk-MATEIJZF.js
npm notice 55.2kB dist/chunks/chunk-MLXTMF7H.js
npm notice 60.4kB dist/chunks/chunk-MOS5OAOG.js
npm notice 1.3kB dist/chunks/chunk-MR3PXB6E.js
npm notice 2.7kB dist/chunks/chunk-MXMNO4AC.js
npm notice 3.5kB dist/chunks/chunk-MZNPFLW6.js
npm notice 235B dist/chunks/chunk-N2TNM3QB.js
npm notice 178.3kB dist/chunks/chunk-N3XN7QYF.js
npm notice 2.1kB dist/chunks/chunk-N4QWUPDM.js
npm notice 12.8kB dist/chunks/chunk-N6VQ37ZZ.js
npm notice 8.3kB dist/chunks/chunk-NAVJD2PQ.js
npm notice 3.1kB dist/chunks/chunk-NE624IVP.js
npm notice 19.8kB dist/chunks/chunk-NF5J2WFA.js
npm notice 13.8kB dist/chunks/chunk-NFXXBWSE.js
npm notice 20.2kB dist/chunks/chunk-NFYEQRLG.js
npm notice 2.8kB dist/chunks/chunk-NLNQNBZ2.js
npm notice 6.3kB dist/chunks/chunk-NOO4QFXM.js
npm notice 5.5kB dist/chunks/chunk-NPQ5ZKRP.js
npm notice 9.9kB dist/chunks/chunk-NUQ4GK5I.js
npm notice 14.7kB dist/chunks/chunk-NUQVB25K.js
npm notice 539B dist/chunks/chunk-NYWWQ437.js
npm notice 3.7kB dist/chunks/chunk-NYX53SV4.js
npm notice 898.6kB dist/chunks/chunk-O4KNCAX4.js
npm notice 478B dist/chunks/chunk-O6GEWCJA.js
npm notice 70.0kB dist/chunks/chunk-OBTWL6ZW.js
npm notice 353B dist/chunks/chunk-OCPBI7J5.js
npm notice 5.1kB dist/chunks/chunk-OHU2H5CS.js
npm notice 271B dist/chunks/chunk-OIBUG24X.js
npm notice 30.5kB dist/chunks/chunk-OSHQMOBS.js
npm notice 11.9kB dist/chunks/chunk-PB7JBAHF.js
npm notice 71.3kB dist/chunks/chunk-PJSKCLLM.js
npm notice 5.8kB dist/chunks/chunk-PLLIWEM3.js
npm notice 6.9kB dist/chunks/chunk-PP4XD7OP.js
npm notice 4.5kB dist/chunks/chunk-PRPYNLVV.js
npm notice 6.3kB dist/chunks/chunk-PSPAM24S.js
npm notice 6.6kB dist/chunks/chunk-PWLJSQVI.js
npm notice 75.3kB dist/chunks/chunk-PWOX2KLV.js
npm notice 21.0kB dist/chunks/chunk-Q2LVVIKF.js
npm notice 20.4kB dist/chunks/chunk-Q2SAQTEJ.js
npm notice 74.2kB dist/chunks/chunk-QBNZQ3QC.js
npm notice 870B dist/chunks/chunk-QHMLYMMS.js
npm notice 7.6kB dist/chunks/chunk-QHTIBUWB.js
npm notice 1.7kB dist/chunks/chunk-QHWCP53L.js
npm notice 7.2kB dist/chunks/chunk-QILD6R27.js
npm notice 213.4kB dist/chunks/chunk-QJNDUTOL.js
npm notice 93.2kB dist/chunks/chunk-QMGX2KO2.js
npm notice 2.9kB dist/chunks/chunk-QMUYLYT5.js
npm notice 9.5kB dist/chunks/chunk-QU7JYBSM.js
npm notice 423B dist/chunks/chunk-QUPXZXLV.js
npm notice 167.8kB dist/chunks/chunk-QZNYWXRR.js
npm notice 699B dist/chunks/chunk-R4Q2PEFV.js
npm notice 16.9kB dist/chunks/chunk-R7OO56VZ.js
npm notice 674.3kB dist/chunks/chunk-RCEKLD3Z.js
npm notice 14.6kB dist/chunks/chunk-RGDQFGHV.js
npm notice 3.6kB dist/chunks/chunk-RKFGE7JH.js
npm notice 430B dist/chunks/chunk-RKUWKYED.js
npm notice 129.3kB dist/chunks/chunk-RVIGZBIT.js
npm notice 15.0kB dist/chunks/chunk-RZHU3K6M.js
npm notice 676.4kB dist/chunks/chunk-RZXZ5E62.js
npm notice 1.4kB dist/chunks/chunk-S6LOFUVP.js
npm notice 17.8kB dist/chunks/chunk-S6Q6Q4P2.js
npm notice 3.2kB dist/chunks/chunk-SAH4BD2J.js
npm notice 9.7kB dist/chunks/chunk-SCOPHF7H.js
npm notice 35.2kB dist/chunks/chunk-SD3Z4MSJ.js
npm notice 80.9kB dist/chunks/chunk-SERVXIGC.js
npm notice 7.4kB dist/chunks/chunk-SOPBPO6K.js
npm notice 5.3kB dist/chunks/chunk-STUJ7IMZ.js
npm notice 1.9kB dist/chunks/chunk-SV5PQVQE.js
npm notice 1.4MB dist/chunks/chunk-SVWWF5TZ.js
npm notice 3.6kB dist/chunks/chunk-TBEXLLAO.js
npm notice 61.0kB dist/chunks/chunk-TBWQLLFO.js
npm notice 2.0kB dist/chunks/chunk-TIGXX4PA.js
npm notice 623.2kB dist/chunks/chunk-TP6FYVQT.js
npm notice 12.8kB dist/chunks/chunk-TPKQIA7G.js
npm notice 966B dist/chunks/chunk-TWPJO254.js
npm notice 675B dist/chunks/chunk-TXASDT2M.js
npm notice 2.4kB dist/chunks/chunk-U7O65WKL.js
npm notice 22.2kB dist/chunks/chunk-U643B6G6.js
npm notice 957B dist/chunks/chunk-UDG5EZJI.js
npm notice 254.0kB dist/chunks/chunk-UKMWZ5NS.js
npm notice 5.6kB dist/chunks/chunk-UXEO7E3V.js
npm notice 3.2kB dist/chunks/chunk-V2P3DOQR.js
npm notice 719B dist/chunks/chunk-V5U2NZNJ.js
npm notice 537B dist/chunks/chunk-V6WHFGST.js
npm notice 16.6kB dist/chunks/chunk-VDSTQ7YG.js
npm notice 276B dist/chunks/chunk-VFFQAOPR.js
npm notice 22.4kB dist/chunks/chunk-VG3Q2NC4.js
npm notice 10.5kB dist/chunks/chunk-VGC4I5JJ.js
npm notice 12.2kB dist/chunks/chunk-VNOVK4I7.js
npm notice 20.6kB dist/chunks/chunk-VX63RJXE.js
npm notice 13.8kB dist/chunks/chunk-VZUCTJ2P.js
npm notice 11.0kB dist/chunks/chunk-W2ADLLPL.js
npm notice 870B dist/chunks/chunk-W3N5XAZ6.js
npm notice 95.8kB dist/chunks/chunk-W5ZQMAEM.js
npm notice 3.0kB dist/chunks/chunk-WBCPROWX.js
npm notice 2.4kB dist/chunks/chunk-WCCLLK7X.js
npm notice 18.3kB dist/chunks/chunk-WG7BL3FY.js
npm notice 39.0kB dist/chunks/chunk-WNYQGCJA.js
npm notice 24.4kB dist/chunks/chunk-WV3I5AVI.js
npm notice 2.0kB dist/chunks/chunk-WZAD4ZNJ.js
npm notice 8.6kB dist/chunks/chunk-X5K4ANPS.js
npm notice 10.2kB dist/chunks/chunk-X6K77VHC.js
npm notice 13.0kB dist/chunks/chunk-XFFRI3WM.js
npm notice 195.3kB dist/chunks/chunk-XFSFZCM5.js
npm notice 25.3kB dist/chunks/chunk-XGYHNWL3.js
npm notice 18.7kB dist/chunks/chunk-XKBFYTCD.js
npm notice 18.2kB dist/chunks/chunk-XNPV4GT3.js
npm notice 1.9kB dist/chunks/chunk-XWJFDJZK.js
npm notice 2.6kB dist/chunks/chunk-XWRJCPHC.js
npm notice 8.5kB dist/chunks/chunk-Y2MYW47X.js
npm notice 486B dist/chunks/chunk-Y53DG2HA.js
npm notice 395B dist/chunks/chunk-YAF2MQZ6.js
npm notice 76.8kB dist/chunks/chunk-YB3Y42K6.js
npm notice 13.2kB dist/chunks/chunk-YBUMTY7B.js
npm notice 11.7kB dist/chunks/chunk-YDYYEADD.js
npm notice 3.1kB dist/chunks/chunk-YI2YCNSP.js
npm notice 3.3kB dist/chunks/chunk-YQ3U5MUC.js
npm notice 1.2kB dist/chunks/chunk-Z7B6SRPM.js
npm notice 53.6kB dist/chunks/chunk-ZAFYHRVY.js
npm notice 1.4kB dist/chunks/chunk-ZEZKIS2K.js
npm notice 4.4kB dist/chunks/chunk-ZHKTKHMO.js
npm notice 38.6kB dist/chunks/chunk-ZKYR7QS4.js
npm notice 13.0kB dist/chunks/chunk-ZKZHSB5W.js
npm notice 71.0kB dist/chunks/chunk-ZL4HFSL6.js
npm notice 36.8kB dist/chunks/chunk-ZLBIFIMV.js
npm notice 3.1kB dist/chunks/chunk-ZPJWUGCS.js
npm notice 9.4kB dist/chunks/chunk-ZSTCM3MX.js
npm notice 3.9kB dist/chunks/chunk-ZTTC7T4X.js
npm notice 11.7kB dist/chunks/chunk-ZW2EUO2A.js
npm notice 5.7kB dist/chunks/chunk-ZZ54E2PH.js
npm notice 202B dist/chunks/cli-entry-path-4VJ3Y6T2.js
npm notice 3.6kB dist/chunks/config-utils-NPHRUBRA.js
npm notice 3.4kB dist/chunks/contextCommand-M4TKIDY3.js
npm notice 4.7kB dist/chunks/core-runtime-LVDV6ZP2.js
npm notice 32.3kB dist/chunks/create-sub-session-7RRXHBI2.js
npm notice 402B dist/chunks/create-sub-session-TIGCFGCS.js
npm notice 11.0kB dist/chunks/cron-create-AKWX67FO.js
npm notice 2.9kB dist/chunks/cron-delete-XPB6IYZJ.js
npm notice 4.5kB dist/chunks/cron-list-XBKO4WU5.js
npm notice 5.5kB dist/chunks/daemon-G5TYKZD6.js
npm notice 84.2kB dist/chunks/daemon-git-worktree-guard-QALD5CZV.js
npm notice 3.8kB dist/chunks/daemon-status-provider-Q6SLP45A.js
npm notice 3.7kB dist/chunks/daemon-trust-policy-EU2IGJHF.js
npm notice 6.1kB dist/chunks/daemon-trust-policy-monitor-LHXTQDDL.js
npm notice 140.8kB dist/chunks/de-UU2YTO37.js
npm notice 3.5kB dist/chunks/deferred-core-runtime-WBI2KL36.js
npm notice 747.0kB dist/chunks/devtools-VDRJYPZF.js
npm notice 784B dist/chunks/discovery-XP4RMDUM.js
npm notice 5.8kB dist/chunks/display-image-NAH3AZ63.js
npm notice 27.6kB dist/chunks/dist-AHJYPSJL.js
npm notice 413.6kB dist/chunks/dist-AIKC5E5P.js
npm notice 128.5kB dist/chunks/dist-F2DVGTL3.js
npm notice 100.4kB dist/chunks/dist-GWNQVPZT.js
npm notice 507.6kB dist/chunks/dist-H6G3K26N.js
npm notice 5.8MB dist/chunks/dist-KJGRVIGJ.js
npm notice 122.3kB dist/chunks/dist-KLZ7XGEQ.js
npm notice 258B dist/chunks/dist-PZV5RKM6.js
npm notice 405.9kB dist/chunks/dist-ZA52JXAS.js
npm notice 204.1kB dist/chunks/dist-ZXTZTE54.js
npm notice 516B dist/chunks/earlyInputCapture-BXP7V2P3.js
npm notice 34.2kB dist/chunks/edit-HGH3E4X2.js
npm notice 166.3kB dist/chunks/en-CAJHTIQT.js
npm notice 7.6kB dist/chunks/enter-worktree-54L5QJ3N.js
npm notice 8.8kB dist/chunks/enterPlanMode-2VJ7UJCG.js
npm notice 4.0kB dist/chunks/environment-FMOYS5XE.js
npm notice 3.6kB dist/chunks/errors-XHPXQ3UD.js
npm notice 165.7kB dist/chunks/esm-K5FARBNI.js
npm notice 17.1kB dist/chunks/exit-worktree-EORJDKDS.js
npm notice 2.7kB dist/chunks/exitPlanMode-A62VUH4W.js
npm notice 10.1kB dist/chunks/external-tool-guard-provider-TE4DRY36.js
npm notice 18.2kB dist/chunks/fast-path-LC4TFMAQ.js
npm notice 820B dist/chunks/fast-path-settings-V7MI7EZJ.js
npm notice 4.8kB dist/chunks/fileFromPath-UDALK7FM.js
npm notice 145.8kB dist/chunks/fr-HKNWVXRJ.js
npm notice 1.6kB dist/chunks/getMachineId-bsd-FBOAYNSY.js
npm notice 1.5kB dist/chunks/getMachineId-bsd-YH7RURBZ.js
npm notice 1.5kB dist/chunks/getMachineId-darwin-H6USQYNI.js
npm notice 1.6kB dist/chunks/getMachineId-darwin-RNJLJUXY.js
npm notice 1.3kB dist/chunks/getMachineId-linux-HF2N63ET.js
npm notice 1.4kB dist/chunks/getMachineId-linux-UEVRAIAB.js
npm notice 1.1kB dist/chunks/getMachineId-unsupported-FWXYJ7HW.js
npm notice 1.0kB dist/chunks/getMachineId-unsupported-NYA5DXRB.js
npm notice 1.7kB dist/chunks/getMachineId-win-LRVGMHLW.js
npm notice 1.7kB dist/chunks/getMachineId-win-SMEGY2DW.js
npm notice 13.9kB dist/chunks/glob-JTBMPL6C.js
npm notice 3.1kB dist/chunks/goal-tools-OXNKVMDW.js
npm notice 21.0kB dist/chunks/grep-3PKFKLCA.js
npm notice 3.5kB dist/chunks/handleAutoUpdate-DBRAH5GT.js
npm notice 3.8kB dist/chunks/i18n-27U4SAOC.js
npm notice 7.1kB dist/chunks/image-gen-OCCR2WWU.js
npm notice 3.7kB dist/chunks/initializer-RBQ6LHCV.js
npm notice 3.4kB dist/chunks/installationInfo-FCFQV4QW.js
npm notice 198.9kB dist/chunks/ja-GJS5RZGU.js
npm notice 270B dist/chunks/keychain-token-storage-NQ5XWIPX.js
npm notice 434B dist/chunks/kittyProtocolDetector-BFLAKYXH.js
npm notice 226B dist/chunks/lib-RUF3WZA6.js
npm notice 5.6kB dist/chunks/list-agents-QLDXS5OD.js
npm notice 3.7kB dist/chunks/list-PSGQLIQS.js
npm notice 121.8kB dist/chunks/llm-4E6V4C76.js
npm notice 11.9kB dist/chunks/llm-content-generator-LN5XR7SV.js
npm notice 3.6kB dist/chunks/loadedSettingsAdapter-2H67XND4.js
npm notice 49.6kB dist/chunks/loggingContentGenerator-QQSHTYB7.js
npm notice 6.8kB dist/chunks/loop-wakeup-HHMYIC7Z.js
npm notice 1.5MB dist/chunks/lowlight-BTE423KL.js
npm notice 9.4kB dist/chunks/ls-N7ABR6HI.js
npm notice 35.4kB dist/chunks/lsp-LTOFWG5P.js
npm notice 198B dist/chunks/main-PXAUXNF2.js
npm notice 14.3kB dist/chunks/managed-npm-update-DKCNY3DH.js
npm notice 3.6kB dist/chunks/MaxSizedBox-CZE7Z3FA.js
npm notice 3.6kB dist/chunks/mcp-OENU4TT4.js
npm notice 23.1kB dist/chunks/monitor-USCNDKJZ.js
npm notice 12.1kB dist/chunks/multipart-parser-AWZKXSQN.js
npm notice 6.5kB dist/chunks/node-ISQAFKIS.js
npm notice 6.1kB dist/chunks/nonInteractiveCli-WFEKZAH3.js
npm notice 29.3kB dist/chunks/notebook-edit-Z7ZNKA5Y.js
npm notice 1.5kB dist/chunks/open-with-auth-6MVIHMXB.js
npm notice 913B dist/chunks/openai-WX26N5OJ.js
npm notice 2.5kB dist/chunks/openaiContentGenerator-32DLQ6SC.js
npm notice 59.3kB dist/chunks/openaiResponsesContentGenerator-RTCAJ5V5.js
npm notice 3.5kB dist/chunks/pidfile-DEJIM5G7.js
npm notice 200B dist/chunks/process-registry-X6ZCASEN.js
npm notice 708B dist/chunks/processUtils-4O3SFZES.js
npm notice 3.4kB dist/chunks/prompt-terminal-ledger-BJDBBAVW.js
npm notice 220B dist/chunks/proper-lockfile-3LHWIM44.js
npm notice 140.3kB dist/chunks/pt-FXMYXEUV.js
npm notice 8.3kB dist/chunks/qwenContentGenerator-NJCU4C5W.js
npm notice 1.3kB dist/chunks/qwenOAuth2-3ZRQHHTC.js
npm notice 200B dist/chunks/react-SG7JAQSZ.js
npm notice 914B dist/chunks/read-file-CFJGKB2H.js
npm notice 6.4kB dist/chunks/read-mcp-resource-B37WANAQ.js
npm notice 268B dist/chunks/read-package-up-6T6ICKR7.js
npm notice 616B dist/chunks/record-artifact-OAXWXZ5D.js
npm notice 562B dist/chunks/record-source-D7R7X3GT.js
npm notice 3.2kB dist/chunks/renderer-selection-M4UN63VJ.js
npm notice 858B dist/chunks/report-findings-AR3VC6EQ.js
npm notice 4.2kB dist/chunks/request-shutdown-IKNWTX5M.js
npm notice 3.8kB dist/chunks/resumeHistoryUtils-JOK36R27.js
npm notice 1.1kB dist/chunks/ripGrep-4XBJW63Q.js
npm notice 342.2kB dist/chunks/ru-RMHURE5U.js
npm notice 390.9kB dist/chunks/run-qwen-serve-ILOM4KYI.js
npm notice 4.7kB dist/chunks/runtime-JWPXC2PC.js
npm notice 4.2kB dist/chunks/scheduled-tasks-GBRF43HO.js
npm notice 4.0kB dist/chunks/scheduler-25DWI7GH.js
npm notice 913.8kB dist/chunks/sdk-exporters-grpc-Y2ZUQDUQ.js
npm notice 21.1kB dist/chunks/sdk-exporters-http-VWTF4W6K.js
npm notice 458.5kB dist/chunks/sdk-impl-G6FVTBQZ.js
npm notice 19.0kB dist/chunks/send-message-TWOGWCBG.js
npm notice 3.8kB dist/chunks/serve-YD6X6L76.js
npm notice 2.1MB dist/chunks/server-SIE3W6UO.js
npm notice 3.4kB dist/chunks/session-attachments-root-JTFGELBE.js
npm notice 93.7kB dist/chunks/session-PNB5UPNA.js
npm notice 14.6kB dist/chunks/session-pr-refresh-C6K2FEVZ.js
npm notice 4.7kB dist/chunks/settings-2BHH55Q5.js
npm notice 2.9kB dist/chunks/shell-BPF5O5RK.js
npm notice 3.8kB dist/chunks/skill-settings-ZANXDDOT.js
npm notice 24.2kB dist/chunks/skill-ZZPZIYLJ.js
npm notice 3.6kB dist/chunks/spawnChannel-JJ6XRYMB.js
npm notice 48.9kB dist/chunks/src-VLI3TKEY.js
npm notice 3.7kB dist/chunks/standalone-update-YMWVP4UM.js
npm notice 8.2kB dist/chunks/StandaloneSessionPicker-IOC7NKLP.js
npm notice 2.1MB dist/chunks/start-opentui-ui-GCUGWQBZ.js
npm notice 1.8MB dist/chunks/startInteractiveUI-B3VFVFXR.js
npm notice 400B dist/chunks/stdioHelpers-AY6XCDY2.js
npm notice 368B dist/chunks/syntheticOutput-F6F27JMK.js
npm notice 732B dist/chunks/task-create-Y623TBHB.js
npm notice 5.3kB dist/chunks/task-list-FCPEEGWL.js
npm notice 7.3kB dist/chunks/task-stop-QTKZXLPH.js
npm notice 17.3kB dist/chunks/task-update-YLSXF25N.js
npm notice 14.2kB dist/chunks/team-create-B75MIGIJ.js
npm notice 3.6kB dist/chunks/team-delete-S7TLHZCF.js
npm notice 7.2kB dist/chunks/team-plan-approval-DDRWJFWZ.js
npm notice 3.9kB dist/chunks/terminal-image-renderer-YYQ56GKT.js
npm notice 3.3kB dist/chunks/theme-manager-IV4EU4C3.js
npm notice 19.5kB dist/chunks/todoWrite-5QI2H2FW.js
npm notice 16.6kB dist/chunks/tool-search-A3B7VOWE.js
npm notice 3.7kB dist/chunks/total-session-admission-6GBIGRKP.js
npm notice 1.9MB dist/chunks/tree-sitter-bash-EZ4S5QRV.js
npm notice 254.7kB dist/chunks/tree-sitter-G7JNPPOS.js
npm notice 157.8kB dist/chunks/tree-sitter-YJVE2ZUK.js
npm notice 3.8kB dist/chunks/trustedFolders-IMFRKLZD.js
npm notice 592.4kB dist/chunks/turndown.cjs-FZHGMUTY.js
npm notice 464B dist/chunks/types-HKLPXZB3.js
npm notice 1.1MB dist/chunks/undici-S7WJSKGJ.js
npm notice 2.9kB dist/chunks/update-relaunch-5MNCNMY4.js
npm notice 3.8kB dist/chunks/updateCheck-EOYQOXW7.js
npm notice 206B dist/chunks/updateEventEmitter-5MKC7BLQ.js
npm notice 3.9kB dist/chunks/useAutoAcceptIndicator-O4M6WNSU.js
npm notice 8.2kB dist/chunks/validateNonInterActiveAuth-QYJOSK5N.js
npm notice 270B dist/chunks/version-EAAZN4T2.js
npm notice 27.1kB dist/chunks/web-fetch-KODHVGLO.js
npm notice 34.4kB dist/chunks/web-search-CGEGCS7U.js
npm notice 996B dist/chunks/web-shell-static-CCN4JZEE.js
npm notice 133.3kB dist/chunks/webapi-Z5OM224P.js
npm notice 57.3kB dist/chunks/workflow-QIE5PPUZ.js
npm notice 3.8kB dist/chunks/workspace-providers-status-G43IFJPR.js
npm notice 1.1kB dist/chunks/workspace-registration-store-ETPULIQ3.js
npm notice 4.0kB dist/chunks/workspace-registry-CSVRME2Q.js
npm notice 4.1kB dist/chunks/workspace-runtime-coordinator-WLUCWT6R.js
npm notice 4.1kB dist/chunks/workspace-service-PBB3R4LH.js
npm notice 3.7kB dist/chunks/workspace-skills-status-W2FFLSDX.js
npm notice 12.4kB dist/chunks/workspace-trust-reconciler-IRF3SBIT.js
npm notice 1.2kB dist/chunks/wrapper-JH3IFHT2.js
npm notice 2.8kB dist/chunks/write-file-Z3GSXMRE.js
npm notice 212.9kB dist/chunks/xterm-headless-NTYVIBT3.js
npm notice 207B dist/chunks/yargs-6H2AUULL.js
npm notice 207.9kB dist/chunks/zh-S5V3Z5CR.js
npm notice 198.8kB dist/chunks/zh-TW-2K2WRFPY.js
npm notice 7.3kB dist/chunks/zoom-image-5OO6RLXU.js
npm notice 14.6kB 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 2.3MB dist/export-transcript-document.css
npm notice 1.8MB dist/export-transcript-document.js
npm notice 28.4kB dist/fzfWorker.js
npm notice 175.9kB dist/locales/ca.js
npm notice 141.1kB dist/locales/de.js
npm notice 168.0kB dist/locales/en.js
npm notice 143.9kB dist/locales/fr.js
npm notice 140.7kB dist/locales/ja.js
npm notice 138.4kB dist/locales/pt.js
npm notice 176.9kB dist/locales/ru.js
npm notice 151.0kB dist/locales/zh-TW.js
npm notice 160.2kB dist/locales/zh.js
npm notice 27.0MB dist/opentui-assets/@opentui/core-linux-x64/libopentui.so
npm notice 2.9kB dist/opentui-assets/@opentui/core/assets/javascript/highlights.scm
npm notice 411.8kB dist/opentui-assets/@opentui/core/assets/javascript/tree-sitter-javascript.wasm
npm notice 2.1kB dist/opentui-assets/@opentui/core/assets/markdown_inline/highlights.scm
npm notice 426.0kB dist/opentui-assets/@opentui/core/assets/markdown_inline/tree-sitter-markdown_inline.wasm
npm notice 3.4kB dist/opentui-assets/@opentui/core/assets/markdown/highlights.scm
npm notice 815B dist/opentui-assets/@opentui/core/assets/markdown/injections.scm
npm notice 421.5kB dist/opentui-assets/@opentui/core/assets/markdown/tree-sitter-markdown.wasm
npm notice 9.8kB dist/opentui-assets/@opentui/core/assets/typescript/highlights.scm
npm notice 1.4MB dist/opentui-assets/@opentui/core/assets/typescript/tree-sitter-typescript.wasm
npm notice 3.5kB dist/opentui-assets/@opentui/core/assets/zig/highlights.scm
npm notice 691.7kB dist/opentui-assets/@opentui/core/assets/zig/tree-sitter-zig.wasm
npm notice 172.6kB dist/opentui-assets/@opentui/core/parser.worker.js
npm notice 205.5kB dist/opentui-assets/web-tree-sitter/tree-sitter.wasm
npm notice 64B dist/review-sources.sha256
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 1.8kB dist/web-shell/assets/abnfDiagram-VCTEODGH-nU24rpIE.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-D1hTu8QI.js
npm notice 151.8kB dist/web-shell/assets/architectureDiagram-5GKGNRK7-B_fgkKe7.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 43.0kB dist/web-shell/assets/blockDiagram-NRAW4CY4-C3pddUNg.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 65.5kB dist/web-shell/assets/c4Diagram-UCG6FXSJ-kEFoC1ei.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-Blod4z1X.js
npm notice 193B dist/web-shell/assets/chunk-2Q5K7J3B-DbT9wS7j.js
npm notice 366B dist/web-shell/assets/chunk-5VM5RSS4-CNbULt6O.js
npm notice 1.9kB dist/web-shell/assets/chunk-F27PBJKO-CbQRy4Tb.js
npm notice 38.6kB dist/web-shell/assets/chunk-G27WJ6UU-CVbXTxYk.js
npm notice 297B dist/web-shell/assets/chunk-JWPE2WC7-D89c_BXy.js
npm notice 49.3kB dist/web-shell/assets/chunk-LCL6LL3I-B7-I_9KB.js
npm notice 532B dist/web-shell/assets/chunk-POPQ4Y6H-DcLQFzS4.js
npm notice 15.8kB dist/web-shell/assets/chunk-SVP7TREG-DyBb2Axj.js
npm notice 230B dist/web-shell/assets/chunk-XXDRQBXY-BIA0eb5B.js
npm notice 14.6kB dist/web-shell/assets/clarity-BHOwM8T6.js
npm notice 467B dist/web-shell/assets/classDiagram-DTDB5LWJ-D6hFDMqb.js
npm notice 467B dist/web-shell/assets/classDiagram-v2-JRS7N3AN-D6hFDMqb.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-JH36ORCC-Db2FYN85.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 5.5kB dist/web-shell/assets/csv-CX7rUNeC.svg
npm notice 17.3kB dist/web-shell/assets/cue-DtFQj3wx.js
npm notice 690.7kB dist/web-shell/assets/cynefin-OW5HDTMX-i4GwmBVy.js
npm notice 10.1kB dist/web-shell/assets/cynefinDiagram-5FMLGOSQ-LENf_IUy.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.1kB dist/web-shell/assets/dagre-3AP2YEHR-CF9XVrD9.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 8.9kB dist/web-shell/assets/default-aEtf0G7-.svg
npm notice 4.7kB dist/web-shell/assets/defaultLocale-DX6XiGOO.js
npm notice 2.0kB dist/web-shell/assets/desktop-DEIpsLCJ.js
npm notice 8.4kB dist/web-shell/assets/diagram-S7CK7UJ4-DD5PJfSm.js
npm notice 6.2kB dist/web-shell/assets/diagram-UQ7AKVKN-CjD_sBMj.js
npm notice 10.8kB dist/web-shell/assets/diagram-VSXAHHWV-U5WwMqyA.js
npm notice 16.1kB dist/web-shell/assets/diagram-VX7I27RA-BujpHJJf.js
npm notice 4.2kB dist/web-shell/assets/diagram-Z3DM3KII-3ZLtKEXo.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.0kB dist/web-shell/assets/ebnfDiagram-PWID7BFC-BGpiquRm.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 30.9kB dist/web-shell/assets/erDiagram-SSCWMZ5O-D0besu_U.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 62.6kB dist/web-shell/assets/flowDiagram-A5DVABFB-9DwDuIyr.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.4kB dist/web-shell/assets/ganttDiagram-EL5Y4UJY-CNlsAeNr.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-WWUBYQGX-C_pPFiTR.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 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 28.3kB dist/web-shell/assets/index-BYWs4JWq.js
npm notice 1.1MB dist/web-shell/assets/index-CGT341lL.js
npm notice 4.6MB dist/web-shell/assets/index-D3YS6KuJ.js
npm notice 565.8kB dist/web-shell/assets/index-eBxK3rs2.css
npm notice 587B dist/web-shell/assets/infoDiagram-RXCK75RN-Bpai64Ll.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-5VMMS53U-ktpJFq4r.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-EYS64GPL-iz_DKgFX.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-3QL26DDD-m_gG00Yt.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.4kB dist/web-shell/assets/layout-qEvKgnvU.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-C6lklGdq.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 695.5kB dist/web-shell/assets/mermaid.core-DSCYB_2P.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-FBJOCRG2-DRQbT8w-.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 2.0kB dist/web-shell/assets/pegDiagram-XKGWAZYB-BhD0q0i6.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 6.4kB dist/web-shell/assets/pieDiagram-E7YTZNPT-BvIGQCSd.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-AXDQQJYC-BDQtfpU-.js
npm notice 11.6kB dist/web-shell/assets/queue-DWpnpFgW.svg
npm notice 36.9kB dist/web-shell/assets/r-CwjWoCRV.js
npm notice 97.6kB dist/web-shell/assets/racket-CzouJOBO.js
npm notice 1.6kB dist/web-shell/assets/railroadDiagram-O6MQD6OU-E1g2KIFK.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-EFPCY7ZU-CuerYJOe.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-P5KCCOFB-CqWyCZGA.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.4kB dist/web-shell/assets/sequenceDiagram-WJ2MYXX4-B-YWb8x4.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 998B dist/web-shell/assets/sizeCapture-X5ZJPWSS-BB7YY4Tl.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-HBIQ2CUA-C8LDpNHS.js
npm notice 428B dist/web-shell/assets/stateDiagram-v2-4QOOHH4V-C4CbdvGa.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 117.1kB dist/web-shell/assets/swimlanes-XN3QIQJK-D94vOoxZ.js
npm notice 548B dist/web-shell/assets/swimlanesDiagram-VK2B7HYN--QNSIOC8.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-24CTP7MA-C9C8uEYm.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 42.4kB dist/web-shell/assets/vennDiagram-4TSXK5OY-CYzMHbVW.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 26.1kB dist/web-shell/assets/wardleyDiagram-VM6X3IG4-G9nhtLES.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 44.5kB dist/web-shell/assets/xychartDiagram-S5SC5T6Z-ruD2Wjhg.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 15.8kB dist/web-shell/index.html
npm notice 11.0kB package.json
npm notice 13.9kB 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 @simple-git/args-pathspec
npm notice @simple-git/argv-parser
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.23.3
npm notice filename: qwen-code-qwen-code-0.23.3.tgz
npm notice package size: 38.6 MB
npm notice unpacked size: 149.7 MB
npm notice shasum: 6564f78b060d82402ea6e70949516cf878159de7
npm notice integrity: sha512-zxulBd/q9R6H5[...]HbhtgUS/w7HtA==
npm notice bundled deps: 43
npm notice bundled files: 0
npm notice own files: 5304
npm notice total files: 5304
npm notice
qwen-code-qwen-code-0.23.3.tgz

added 1 package in 4s
==> Starting check()...
npm notice run @qwen-code/mobile-mcp@0.20.1 test
npm notice run c8 node ../../node_modules/@playwright/test/cli.js test
Could not execute adb command, maybe ANDROID_HOME is not set?

Running 61 tests using 1 worker

Could not execute adb command, maybe ANDROID_HOME is not set?
  -   1 test/android.ts:13:7 › android › should be able to get the screen size
  -   2 test/android.ts:25:7 › android › should be able to take screenshot
  -   3 test/android.ts:39:7 › android › should be able to list apps
  -   4 test/android.ts:46:7 › android › should be able to open a url
  -   5 test/android.ts:52:7 › android › should be able to list elements on screen
  -   6 test/android.ts:88:7 › android › should be able to send keys and tap
  -   7 test/android.ts:119:7 › android › should be able to launch and terminate an app
  -   8 test/android.ts:135:7 › android › should handle orientation changes
  ✓   9 test/coord-norm.test.ts:40:5 › normToPx maps midpoint (2ms)
  ✓  10 test/coord-norm.test.ts:49:5 › normToPx maps edges (1ms)
  ✓  11 test/coord-norm.test.ts:59:5 › normToPx rounds to nearest (0ms)
  ✓  12 test/coord-norm.test.ts:69:5 › hasCoordFields returns true for click tools (1ms)
  ✓  13 test/coord-norm.test.ts:82:5 › normToPx respects custom scale (999) (1ms)
  ✓  14 test/coord-norm.test.ts:93:5 › pxToNorm (removed) is no longer exported (1ms)
  ✓  15 test/coord-norm.test.ts:104:5 › denormalizeArgs click uses width for x, height for y (1ms)
  ✓  16 test/coord-norm.test.ts:121:5 › denormalizeArgs swipe converts x, y, and distance by direction (1ms)
  ✓  17 test/coord-norm.test.ts:150:5 › denormalizeArgs leaves non-coord tools untouched (1ms)
  ✓  18 test/coord-norm.test.ts:161:5 › denormalizeArgs ignores missing coord fields (1ms)
  ✓  19 test/coord-norm.test.ts:180:5 › normalizeElementResult and normalizeScreenSizeResult are no longer exported (0ms)
  ✓  20 test/coord-norm.test.ts:192:5 › screen size cache round-trip (0ms)
  ✓  21 test/coord-norm.test.ts:203:5 › screen size cache returns undefined for unknown device (0ms)
  ✓  22 test/coord-norm.test.ts:212:5 › ingestScreenSizeFromResult parses response (0ms)
  ✓  23 test/coord-norm.test.ts:225:5 › isNormalized returns false by default (0ms)
  ✓  24 test/coord-norm.test.ts:236:5 › isNormalized returns true when MOBILE_MCP_COORDINATE_SPACE=1 (0ms)
  ✓  25 test/coord-norm.test.ts:247:5 › coordinateScale defaults to 1000 (0ms)
  ✓  26 test/coord-norm.test.ts:258:5 › coordinateScale reads custom value (1ms)
  ✓  27 test/coord-norm.test.ts:271:5 › rewriteDescription replaces 'in pixels' with normalized wording (1ms)
  ✓  28 test/coord-norm.test.ts:284:5 › coordParamDesc is passthrough when not normalized (0ms)
  ✓  29 test/coord-norm.test.ts:296:5 › coordParamDesc rewrites when normalized (0ms)
go-ios is not installed, no physical iOS devices can be detected
  -  30 test/ios.ts:17:7 › ios › should be able to get screenshot
  -  31 test/iphone-simulator.ts:34:7 › iphone-simulator › should be able to swipe
  -  32 test/iphone-simulator.ts:63:7 › iphone-simulator › should be able to send keys and press enter
  -  33 test/iphone-simulator.ts:93:7 › iphone-simulator › should be able to get the screen size
  -  34 test/iphone-simulator.ts:105:7 › iphone-simulator › should be able to get screenshot
  -  35 test/iphone-simulator.ts:122:7 › iphone-simulator › should be able to open url
  -  36 test/iphone-simulator.ts:140:7 › iphone-simulator › should be able to list apps
  -  37 test/iphone-simulator.ts:149:7 › iphone-simulator › should be able to get elements on screen
  -  38 test/iphone-simulator.ts:164:7 › iphone-simulator › should be able to launch and terminate app
  -  39 test/iphone-simulator.ts:206:7 › iphone-simulator › should throw an error if button is not supported
Invoking mobile_ui_dump with args: {"device":"test-device"}
=> <hierarchy><node text="OK" bounds="[12,34][1080,2160]"/></hierarchy>
Invoking mobile_ui_dump with args: {"device":"test-device","output_path":"/tmp/mobile-ui-dump-a9b77840-fbe0-4661-b817-f218d6197ff4.xml"}
=> UI hierarchy XML saved to: /tmp/mobile-ui-dump-a9b77840-fbe0-4661-b817-f218d6197ff4.xml
  ✓  40 test/mobile-ui-dump.test.ts:12:5 › mobile_ui_dump preserves absolute bounds from UIAutomator (26ms)
  ✓  41 test/mobilecli.test.ts:27:9 › mobilecli › getVersion › should return a version string (3ms)
  ✓  42 test/mobilecli.test.ts:33:9 › mobilecli › getVersion › should return version in correct format (2ms)
  ✓  43 test/mobilecli.test.ts:43:9 › mobilecli › getVersion › should return failed when MOBILECLI_PATH points to invalid location (0ms)
  ✓  44 test/mobilecli.test.ts:57:9 › mobilecli › getVersion › should call executeCommand with --version argument (1ms)
  ✓  45 test/mobilecli.test.ts:85:9 › mobilecli › getDevices › should call executeCommand with devices argument when no options (0ms)
  ✓  46 test/mobilecli.test.ts:93:9 › mobilecli › getDevices › should call executeCommand with platform filter (1ms)
  ✓  47 test/mobilecli.test.ts:101:9 › mobilecli › getDevices › should call executeCommand with type filter (0ms)
  ✓  48 test/mobilecli.test.ts:109:9 › mobilecli › getDevices › should call executeCommand with includeOffline flag (0ms)
  ✓  49 test/mobilecli.test.ts:117:9 › mobilecli › getDevices › should call executeCommand with combined options (0ms)
  ✓  50 test/payload-filter.test.ts:76:5 › filtered terms use deterministic exact round-trip references (118ms)
  ✓  51 test/payload-filter.test.ts:93:5 › multiple filtered terms preserve mixed case and separators (1ms)
  ✓  52 test/payload-filter.test.ts:103:5 › invalid and unrelated references are not decoded (0ms)
  ✓  53 test/payload-filter.test.ts:111:5 › literal reference tokens survive an encode-decode round trip (0ms)
  ✓  54 test/payload-filter.test.ts:119:5 › message transformation preserves envelopes and binary data (3ms)
  ✓  55 test/payload-filter.test.ts:148:5 › message transformation preserves special object keys (1ms)
  ✓  56 test/payload-filter.test.ts:161:5 › transport chains callbacks installed before wrapping (0ms)
  ✓  57 test/payload-filter.test.ts:185:5 › transport rejects decoded key collisions before dispatch (0ms)
  ✓  58 test/png.ts:5:7 › png › should be able to parse png (0ms)
  ✓  59 test/png.ts:13:7 › png › should be able to detect an invalid png (1ms)
  ✓  60 test/server-payload-filter.test.ts:43:5 › MCP boundary preserves payloads when filtering is disabled (6ms)
Invoking mobile_list_apps with args: {"device":"test-device"}
=> Found these apps on device: Q-Wen Dashboard (com.alibaba.qwen)
Invoking mobile_launch_app with args: {"device":"test-device","packageName":"com.alibaba.qwen"}
=> Launched app com.alibaba.qwen
Invoking mobile_launch_app with args: {"device":"test-device","packageName":"com.alibaba.failure"}
Error taking screenshot: Alibaba screenshot setup failed Error: Alibaba screenshot setup failed
    at AndroidRobot.getScreenSize (/startdir/src/qwen-code/packages/mobile-mcp/test/server-payload-filter.test.ts:123:11)
    at /startdir/src/qwen-code/packages/mobile-mcp/src/server.ts:962:40
    at PayloadFilteredMcpServer.executeToolHandler (/startdir/src/qwen-code/packages/mobile-mcp/node_modules/@modelcontextprotocol/sdk/src/server/mcp.ts:352:42)
    at /startdir/src/qwen-code/packages/mobile-mcp/node_modules/@modelcontextprotocol/sdk/src/server/mcp.ts:214:43
    at wrappedHandler (/startdir/src/qwen-code/packages/mobile-mcp/node_modules/@modelcontextprotocol/sdk/src/server/index.ts:262:32)
  ✓  61 test/server-payload-filter.test.ts:93:5 › MCP boundary filters lists, successes, errors, and preserves round trips (380ms)

  18 skipped
  43 passed (2.0s)
-----------------------|---------|----------|---------|---------|-----------------------------------
File                   | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                 
-----------------------|---------|----------|---------|---------|-----------------------------------
All files              |   48.96 |    71.28 |   30.54 |   48.96 |                                   
 mobile-mcp            |     100 |      100 |     100 |     100 |                                   
  playwright.config.ts |     100 |      100 |     100 |     100 |                                   
 mobile-mcp/src        |   48.77 |    71.28 |   30.54 |   48.77 |                                   
  android.ts           |   20.65 |    33.33 |    7.14 |   20.65 | ...58-772,775-806,820-821,832-856 
  coord-norm.ts        |   92.25 |    88.88 |    90.9 |   92.25 | 72-73,96-100,112-116              
  image-utils.ts       |   26.11 |      100 |       0 |   26.11 | ...49-150,153-163,166-176,179-180 
  ios.ts               |   38.79 |    57.14 |   12.12 |   38.79 | ...90-297,300-307,316-325,328-347 
  logger.ts            |   71.42 |       75 |     100 |   71.42 | 5-10                              
  mobile-device.ts     |   43.72 |      100 |       5 |   43.72 | ...24-235,238-251,254-255,258-262 
  mobilecli.ts         |    69.1 |    72.41 |      40 |    69.1 | ...97-204,207-208,220-223,234-237 
  payload-filter.ts    |   96.37 |    90.74 |    90.9 |   96.37 | ...09,221,224-225,242-243,246-247 
  png.ts               |     100 |      100 |     100 |     100 |                                   
  robot.ts             |     100 |      100 |     100 |     100 |                                   
  server.ts            |   59.97 |       50 |      80 |   59.97 | ...,1226-1229,1289-1293,1321-1335 
  utils.ts             |   59.34 |    46.15 |   57.14 |   59.34 | ...,41-42,48-58,68-69,79-80,86-90 
  webdriver-agent.ts   |   14.77 |      100 |       0 |   14.77 | ...30-401,404-471,474-484,487-493 
-----------------------|---------|----------|---------|---------|-----------------------------------
npm notice run @qwen-code/acp-bridge@0.23.3 test
npm notice run vitest run --testTimeout=30000 --no-file-parallelism --exclude=**/{qwenConnectionHandler,useAtCompletion,serve/acp-http/transport,i18n/index,ui/auth/AuthDialog,ui/utils/clipboardUtils,services/FileCommandLoader,services/FileCommandLoader-extension,lsp/LspConfigLoader,utils/pathReader}.test.*

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

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: last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 10ms, idle threshold 10ms)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: completing deferred kill of session "sess:/work/a" (last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 10ms, idle threshold 10ms)
qwen serve: reaping idle session "sess:/work/a" (idle for 0s, threshold 0s)
qwen serve: completing deferred kill of session "sess:/work/a" (child_idle)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: killSession ACP session close notification failed for session "sess:/work/a": [object Object]
qwen serve: channel exited (code=none, signal=none, transport=ok, 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: channel exited (code=none, signal=none, transport=ok, 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: last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 1000ms, idle threshold 1ms)
qwen serve: close-if-unheld for session "sess:/work/a" did not resolve (Session close timed out after 8000ms); leaving it in place for the next snapshot to settle
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: close-if-unheld for session "sess:/work/a" did not resolve (AcpSessionBridge qwen/control/session/close timed out after 10000ms); leaving it in place for the next snapshot to settle
qwen serve: close-if-unheld for session "sess:/work/a" did not resolve (AcpSessionBridge qwen/control/session/close timed out after 10000ms); leaving it in place and deferring the next probe by 60000ms after 2 consecutive failures
qwen serve: session/load timed out after 20ms for "wedged-restore" on channel d9a5ccd8-e8ca-44d2-bf0b-55299e392334; decision=fence_shared
qwen serve: abandoned session/load for "wedged-restore" has not settled 20ms after its deadline; refusing fresh sessions on channel d9a5ccd8-e8ca-44d2-bf0b-55299e392334 until it settles or drains
qwen serve: closing session "sess:/work/a" (reason: last_client_detached)
qwen serve: closeSession ACP session close notification failed for session "sess:/work/a": AcpSessionBridge closeSession timed out after 10000ms
qwen serve: channel exited (code=none, signal=none, transport=ok, 1 session(s) torn down)
qwen serve: deferred close (child_idle) failed for "sess:/work/a": BridgeTimeoutError: AcpSessionBridge closeSession timed out after 10000ms
    at /startdir/src/qwen-code/packages/acp-bridge/src/bridge.ts:15267:37
    at callTimer (file:///startdir/src/qwen-code/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js:2211:25)
    at doTickInner (file:///startdir/src/qwen-code/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js:2814:30)
    at doTick (file:///startdir/src/qwen-code/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js:2895:21)
    at Immediate.<anonymous> (file:///startdir/src/qwen-code/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js:2915:30)
    at processImmediate (node:internal/timers:574:21)
qwen serve: close-if-unheld for session "sess:/work/a" did not resolve (AcpSessionBridge qwen/control/session/close timed out after 10000ms); leaving it in place for the next snapshot to settle
qwen serve: close-if-unheld for session "sess:/work/a" did not resolve (AcpSessionBridge qwen/control/session/close timed out after 10000ms); leaving it in place for the next snapshot to settle
qwen serve: closing session "sess:/work/a" (reason: last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: closing session "sess:/work/a" (reason: last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: closing session "sess:/work/a" (reason: last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: closing session "sess:/work/a" (reason: last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: closing session "sess:/work/a" (reason: last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 20ms, idle threshold 20ms)
qwen serve: reaping idle session "sess:/work/a" (idle for 0s, threshold 0s)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: idle timeout (1ms) expired, killing channel
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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: workspace control timeout; deferring channel retirement until 1 active session(s) drain
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session sess:/work/a cwd changed: /work/a -> /work/a/conversation-managed
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 22222222-2222-4222-8222-222222222222 cwd changed: /work/a -> /work/a/conversation-standalone
qwen serve: session 22222222-2222-4222-8222-222222222222 cwd changed: /work/a/conversation-standalone -> /work/a/conversation-standalone
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, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session lifecycle callback failed: lifecycle sink failed
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: session lifecycle callback failed: lifecycle sink failed
qwen serve: channel exited (code=none, signal=none, transport=ok, 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)
[artifacts] session=sess:/work/a action=remove_denied artifactId=ea192b281419fff5 owner=client_5b1f1c2b-b028-42e6-b304-30b9b227cfa7 requester=client_40ebd7e6-861f-459f-bcc0-33aa575abe17
[artifacts] session=sess:/work/a action=remove_denied artifactId=ea192b281419fff5 owner=client_5b1f1c2b-b028-42e6-b304-30b9b227cfa7 requester=<anonymous>
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, transport=ok, 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: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=1, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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)
[demux] session=sess:/work/a type=client_mcp_message action=forwarded_without_session reason=session_registration_pending
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: agent channel closed mid-request (session sess:/work/a)
sendPrompt: forward failed for session sess:/work/a#2: agent channel closed mid-request (session sess:/work/a#2)
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 control timeout; deferring channel retirement until 1 active session(s) drain
qwen serve: workspace control timeout; deferring channel retirement until 1 active session(s) drain
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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, transport=ok, 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: compaction degraded for session="sess:/work/a"; replay snapshot may lag behind live events: compaction test failure
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[artifacts] session=persisted-artifacts action=restore_warning warning="skipped corrupt artifact record"
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[artifacts] session=persisted-artifact-normalize action=restore_warning warning="skipped artifact without id/title"
[artifacts] session=persisted-artifact-normalize action=restore_warning warning="kept warning"
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[artifacts] session=sess:/work/a action=rewind_restore_warning warning="artifact snapshot rebuild unavailable during rewind: artifact journal read 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)
[artifacts] session=sess:/work/a action=snapshot_failed reason="[object Object]"
[artifacts] session=sess:/work/a action=rewind_snapshot_warning warning="artifact snapshot not persisted"
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=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: updated session metadata "sess:/work/a" displayName=set
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session sess:/work/a cwd changed: /work/a -> /work/b
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)
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 prompt=prompt-first
sendPrompt: prompt prompt-queued exceeded 120ms deadline for session sess:/work/a; agent may still be executing
[pending-prompt] cancel forward failed after removePendingPrompt session=sess:/work/a: agent channel closed mid-request (session sess:/work/a)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=prompt-first
[pending-prompt] session=sess:/work/a removing promptId=prompt-queued state=queued
[pending-prompt] cancel forward failed after removePendingPrompt session=sess:/work/a: agent channel closed mid-request (session sess:/work/a)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=prompt-first
[pending-prompt] session=sess:/work/a removing promptId=prompt-queued state=queued
[pending-prompt] cancel forward failed after removePendingPrompt 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: 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 "persisted-live-refresh-closing" (reason: client_close) by client "client_a0700414-3106-448b-8f34-ff867ce0caef"
qwen serve: closeSession ACP session close notification failed for session "persisted-live-refresh-closing": agent channel closed mid-request (session persisted-live-refresh-closing)
qwen serve: channel exited (code=none, signal=none, transport=ndjson_queue_limit_exceeded, transport_detail=unknown:required=?:available=?:cap=?, 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: channel exited (code=none, signal=none, transport=ok, 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: 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, transport=ok, 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: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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: channel exited (code=none, signal=SIGKILL, transport=ok, 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: 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: idle timeout (5000ms) expired, killing channel
qwen serve: channel exited (code=none, signal=none, transport=ok, 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: channel exited (code=none, signal=none, transport=ok, 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/load timed out after 20ms for "restore-timeout-empty" on channel 0e8af941-4e52-45c6-80ec-43c8203bc2ad; decision=kill_empty
qwen serve: channel exited (code=none, signal=none, transport=ok, 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=1, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session/load timed out after 20ms for "restore-timeout-workspace-control" on channel b3e04d7e-a5a5-4e7b-87dd-12f240ae1d8c; decision=fence_shared
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session/load timed out after 20ms for "restore-timeout-shared" on channel f3b431c8-f854-4a9f-90d8-a7964778f1df; decision=fence_shared
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session/load timed out after 20ms for "wedged" on channel 4c374a64-4ce5-4ec4-81a2-295a7ba93add; decision=fence_shared
qwen serve: abandoned session/load for "wedged" has not settled 20ms after its deadline; refusing fresh sessions on channel 4c374a64-4ce5-4ec4-81a2-295a7ba93add until it settles or drains
qwen serve: closing session "sess:/work/a" (reason: last_client_detached)
qwen serve: closeSession ACP session close notification failed for session "sess:/work/a": AcpSessionBridge closeSession timed out after 10000ms
qwen serve: channel exited (code=none, signal=none, transport=ok, 1 session(s) torn down)
qwen serve: deferred close (last_client_detached) failed for "sess:/work/a": BridgeTimeoutError: AcpSessionBridge closeSession timed out after 10000ms
    at /startdir/src/qwen-code/packages/acp-bridge/src/bridge.ts:15267:37
    at callTimer (file:///startdir/src/qwen-code/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js:2211:25)
    at doTickInner (file:///startdir/src/qwen-code/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js:2814:30)
    at doTick (file:///startdir/src/qwen-code/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js:2895:21)
    at Immediate.<anonymous> (file:///startdir/src/qwen-code/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js:2915:30)
    at processImmediate (node:internal/timers:574:21)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session/load timed out after 20ms for "contested" on channel deacfe49-e96c-4f52-9da5-2f76d5f949b2; decision=fence_shared
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session/load timed out after 20ms for "settled-retry" on channel c2bc48e2-b968-402b-b513-d92de7790912; decision=fence_shared
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session/load timed out after 20ms for "not-reclaimed" on channel 648872c3-66fa-46db-949e-864ec31eb630; decision=fence_shared
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session/load timed out after 20ms for "reclaimed" on channel 65346e13-e650-4b6f-b105-cfea98597f4a; decision=fence_shared
qwen serve: skipping abandoned session/load cleanup for "reclaimed": the id is now owned by a live session
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session/load timed out after 20ms for "never-settles" on channel 33aaa9a4-c4f2-4c89-aa55-62df2b0076e1; decision=fence_shared
qwen serve: closing session "sess:/work/a#2" (reason: client_close)
qwen serve: abandoned session/load for "never-settles" has not settled 20ms after its deadline; refusing fresh sessions on channel 33aaa9a4-c4f2-4c89-aa55-62df2b0076e1 until it settles or drains
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session/load timed out after 20ms for "overdue-a" on channel bcc725cc-8099-46d5-8e51-cdffb7949e39; decision=fence_shared
qwen serve: session/load timed out after 20ms for "within-grace-b" on channel bcc725cc-8099-46d5-8e51-cdffb7949e39; decision=fence_shared
qwen serve: abandoned session/load for "overdue-a" has not settled 20ms after its deadline; refusing fresh sessions on channel bcc725cc-8099-46d5-8e51-cdffb7949e39 until it settles or drains
qwen serve: abandoned session/load for "within-grace-b" has not settled 20ms after its deadline; refusing fresh sessions on channel bcc725cc-8099-46d5-8e51-cdffb7949e39 until it settles or drains
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session/load timed out after 20ms for "recovers" on channel 336de9d8-e38b-4f0d-bdfa-a256d504555b; decision=fence_shared
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: idle timeout (60000ms) expired, killing channel
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session/load timed out after 20ms for "still-hung" on channel 470fbc11-2543-4c3e-9874-78eadf6d733d; decision=fence_shared
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session/load timed out after 90000ms for "restore-hint" on channel a58d7004-6f26-47de-b95d-745328ce8585; decision=fence_shared
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session/load timed out after 20ms for "restore-late-failure" on channel 12cbfc41-bed3-4db0-9eb2-d54d012be622; decision=fence_shared
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session/load timed out after 20ms for "restore-abandoned-id" on channel 1a8a9cda-17d5-47a5-b89a-486d6422f027; decision=fence_shared
qwen serve: quarantining ACP channel after timed-out session/load cleanup failed for "restore-abandoned-id": ACP child refused abandoned restore cleanup
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session/load timed out after 1000ms for "restore-first" on channel cdbadc7d-2f68-4aba-886b-f6e04efec3a1; decision=fence_shared
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session/load timed out after 20ms for "restore-timeout-pending-spawn" on channel 07c52251-6ac7-4f4c-9cef-ef1c208434f2; decision=fence_shared
qwen serve: quarantining ACP channel after timed-out session/load cleanup failed for "restore-timeout-pending-spawn": ACP child refused abandoned restore cleanup
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session/load timed out after 20ms for "restore-close-refused" on channel 7c5c470d-e6c1-4d7d-8624-ec59ebc59943; decision=fence_shared
qwen serve: quarantining ACP channel after timed-out session/load cleanup failed for "restore-close-refused": ACP child refused abandoned restore cleanup
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session/load timed out after 20ms for "restore-cleanup-fails" on channel 140db68b-8af3-4ef7-a1fc-110860b18df4; decision=fence_shared
qwen serve: quarantining ACP channel after timed-out session/load cleanup failed for "restore-cleanup-fails": late close failed
qwen serve: closing session "sess:/work/a" (reason: last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session/load timed out after 20ms for "restore-hangs-through-timeout" on channel 5031a051-7303-4fc5-a337-6c9df28982c3; decision=fence_shared
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, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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 kill failed (killSession "c0:/work/a"): Error: first channel was not reaped
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 liveness failed (acp_channel_liveness_timeout); killing channel
qwen serve: channel exited (code=none, signal=none, transport=acp_channel_liveness_timeout, 2 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
sendPrompt: forward failed for session transport-0:/work/a: agent channel closed mid-request (session transport-0:/work/a)
qwen serve: channel exited (code=none, signal=SIGTERM, transport=ndjson_frame_too_large, 1 session(s) torn down)
qwen serve: channel exited (code=none, signal=SIGTERM, transport=ndjson_queue_limit_exceeded, transport_detail=unknown:required=0:available=?:cap=1, 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: channel exited (code=none, signal=none, transport=ndjson_frame_too_large, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=SIGTERM, transport=ndjson_incomplete_frame, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ndjson_queue_limit_exceeded, transport_detail=unknown:required=?:available=?:cap=?, 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, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: newSession timed out after 20ms on channel d656b8e1-f6f7-4ae3-893e-11265003be6c; decision=fence_shared
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: newSession timed out after 20ms on channel 7976a535-c387-4fd1-b517-fa2752a0ae6b; decision=kill_empty
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: newSession timed out after 20ms on channel ea12d353-0585-4163-a809-9635d6f3c3b9; decision=kill_empty
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: newSession timed out after 20ms on channel 78506e63-b630-4d04-b6b3-3b7a8e383a8a; decision=fence_shared
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: newSession timed out after 20ms for "requested-late" on channel 8384ad05-5259-4117-bcea-8642b4d8d2fb; decision=fence_shared
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: newSession timed out after 20ms on channel 3683c37f-f032-469b-81cf-484db741784f; decision=fence_shared
qwen serve: abandoned newSession has not settled 20ms after its deadline; refusing fresh sessions on channel 3683c37f-f032-469b-81cf-484db741784f until it settles or drains
qwen serve: skipping abandoned newSession cleanup for "restoring": the id is owned by a live session
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: newSession timed out after 20ms on channel 3b54d7b4-f467-402e-af3f-8ab1a3ab820c; decision=fence_shared
qwen serve: skipping abandoned newSession cleanup for "requested-in-flight": the id is owned by a live session
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: newSession timed out after 1000ms on channel b3237190-495e-4a70-b766-feaf0e482990; decision=fence_shared
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: newSession timed out after 20000ms on channel dbf631aa-146e-4908-aa08-4fb9426faa33; decision=fence_shared
qwen serve: quarantining ACP channel after timed-out newSession cleanup failed for "hidden-late": ACP child refused abandoned newSession cleanup
qwen serve: closing session "visible-1" (reason: last_client_detached)
qwen serve: closeSession ACP session close notification failed for session "visible-1": AcpSessionBridge closeSession timed out after 10000ms
qwen serve: channel exited (code=none, signal=none, transport=ok, 1 session(s) torn down)
qwen serve: deferred close (last_client_detached) failed for "visible-1": BridgeTimeoutError: AcpSessionBridge closeSession timed out after 10000ms
    at /startdir/src/qwen-code/packages/acp-bridge/src/bridge.ts:15267:37
    at callTimer (file:///startdir/src/qwen-code/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js:2211:25)
    at doTickInner (file:///startdir/src/qwen-code/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js:2814:30)
    at doTick (file:///startdir/src/qwen-code/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js:2895:21)
    at Immediate.<anonymous> (file:///startdir/src/qwen-code/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js:2915:30)
    at processImmediate (node:internal/timers:574:21)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: newSession timed out after 20ms on channel 68e89444-e69b-4a64-ad9e-ae45eb20611d; decision=fence_shared
qwen serve: abandoned newSession has not settled 20ms after its deadline; refusing fresh sessions on channel 68e89444-e69b-4a64-ad9e-ae45eb20611d until it settles or drains
qwen serve: closing session "visible-1" (reason: last_client_detached)
qwen serve: closeSession ACP session close notification failed for session "visible-1": AcpSessionBridge closeSession timed out after 10000ms
qwen serve: channel exited (code=none, signal=none, transport=ok, 1 session(s) torn down)
qwen serve: deferred close (last_client_detached) failed for "visible-1": BridgeTimeoutError: AcpSessionBridge closeSession timed out after 10000ms
    at /startdir/src/qwen-code/packages/acp-bridge/src/bridge.ts:15267:37
    at callTimer (file:///startdir/src/qwen-code/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js:2211:25)
    at doTickInner (file:///startdir/src/qwen-code/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js:2814:30)
    at doTick (file:///startdir/src/qwen-code/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js:2895:21)
    at Immediate.<anonymous> (file:///startdir/src/qwen-code/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js:2915:30)
    at processImmediate (node:internal/timers:574:21)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: newSession timed out after 20ms on channel ee1d40d6-401e-463d-b2f4-a336c694f583; decision=fence_shared
qwen serve: abandoned newSession has not settled 20ms after its deadline; refusing fresh sessions on channel ee1d40d6-401e-463d-b2f4-a336c694f583 until it settles or drains
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: newSession timed out after 20ms on channel 317ee632-2866-4966-992c-990309dc3a3e; decision=fence_shared
qwen serve: newSession timed out after 20ms on channel 317ee632-2866-4966-992c-990309dc3a3e; decision=fence_shared
qwen serve: abandoned newSession has not settled 20ms after its deadline; refusing fresh sessions on channel 317ee632-2866-4966-992c-990309dc3a3e until it settles or drains
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: newSession timed out after 20ms on channel 8ddbef3b-4bc3-491f-b770-b649d75b8e5f; decision=fence_shared
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: newSession timed out after 20ms on channel f21b5957-9fc0-47b3-a4a3-d357c31d2955; decision=fence_shared
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 persisted-auq: agent channel closed mid-request (session persisted-auq)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session persisted-auq prompt=ce7bb3df-7507-4fc8-8e8f-588180c4e671
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
sendPrompt: forward failed for session persisted-auq-deferred: agent channel closed mid-request (session persisted-auq-deferred)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session persisted-auq-deferred prompt=0c71eae9-957f-4d57-bfd3-9a33815b986a
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 persisted-auq-resume-deferred: agent channel closed mid-request (session persisted-auq-resume-deferred)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session persisted-auq-resume-deferred prompt=bed4a714-9339-439b-a2c8-1cd8673b8590
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: continuation turn blew up
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)
sendPrompt: forward failed for session sess:/work/a: terminated
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: EventBus slow_client_warning {"queueSize":192,"maxQueued":256,"lastEventId":193,"queuedBytes":70142,"maxQueuedBytes":2097152,"threshold":"frames"}
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: EventBus slow_client_warning {"queueSize":192,"maxQueued":256,"lastEventId":193,"queuedBytes":70142,"maxQueuedBytes":2097152,"threshold":"frames"}
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: 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: closing session "sess:/work/a" (reason: last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: killSession ACP session close notification failed for session "sess:/work/a": AcpSessionBridge killSession timed out after 20ms
qwen serve: channel exited (code=none, signal=none, transport=ok, 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)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=none
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 prompt=ec083509-dcdc-4698-a6df-57ce51994caf
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=8c50e6d0-fdeb-4709-ac61-a2b19f52f360
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=afafd148-f9ad-45c7-95c1-76cf457d61d0
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_563a40e3-82a5-48a6-8bf0-0443c6981e53"
qwen serve: channel exited (code=none, signal=none, transport=ok, 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_ecd20159-56ba-49b8-a780-abb76ecbaa29"
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: first prompt failed
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[pending-prompt] session=sess:/work/a removing promptId=394cbd5d-b0fb-420c-b842-8552668a81fe state=queued
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: channel exited (code=none, signal=none, transport=ok, 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, transport=ok, 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: channel exited (code=1, signal=none, transport=ok, 1 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=1, signal=none, transport=ok, 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: killSession ACP session close notification failed for session "s0:/work/a": [object Object]
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)
[pending-prompt] session=sess:/work/a removing promptId=removed-after-promotion state=queued
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[pending-prompt] session=sess:/work/a removing promptId=media-delete-queued state=queued
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[pending-prompt] session=sess:/work/a removing promptId=ea4cb81c-7043-4af1-becd-4adfa6806109 state=running
sendPrompt: forward failed for session sess:/work/a: cancelled
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=ea4cb81c-7043-4af1-becd-4adfa6806109
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[pending-prompt] session=sess:/work/a removing promptId=272b67e4-d3f8-455f-8e44-32c9c0c6f373 state=running
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)
[pending-prompt] session=sess:/work/a removing promptId=prompt-running-remove state=running
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[pending-prompt] session=sess:/work/a removing promptId=prompt-queued-remove state=queued
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
sendPrompt: prompt prompt-deadline-settled exceeded 50ms deadline for session sess:/work/a; agent may still be executing
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
sendPrompt: prompt prompt-deadline-pending exceeded 50ms deadline for session sess:/work/a; agent may still be executing
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
sendPrompt: prompt prompt-both-error exceeded 50ms deadline for session sess:/work/a; agent may still be executing
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
sendPrompt: prompt prompt-supersede-display exceeded 50ms deadline for session sess:/work/a; agent may still be executing
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)
[pending-prompt] session=sess:/work/a removing promptId=prompt-b state=queued
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
sendPrompt: prompt prompt-wedged exceeded 50ms deadline for session sess:/work/a; agent may still be executing
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
sendPrompt: prompt prompt-queued-deadline exceeded 50ms deadline for session sess:/work/a; agent may still be executing
sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=prompt-head
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: closing session "sess:/work/a" (reason: last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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, transport=ok, 0 session(s) torn down)
sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=prompt-a
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[pending-prompt] session=sess:/work/a removing promptId=prompt-removed-running state=running
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=prompt-removed-running
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[pending-prompt] session=sess:/work/a removing promptId=prompt-promoted state=running
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=prompt-a
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=prompt-a
[pending-prompt] session=sess:/work/a removing promptId=prompt-b state=queued
sendPrompt: prompt prompt-a exceeded 60ms deadline for session sess:/work/a; agent may still be executing
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=1, signal=none, transport=ok, 1 session(s) torn down)
sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=prompt-a
[pending-prompt] cancel forward failed after removePendingPrompt 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: 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)
[pending-prompt] session=sess:/work/a removing promptId=prompt-b state=queued
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=prompt-a
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
sendPrompt: forward failed for session sess:/work/a: agent blew up
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
sendPrompt: prompt prompt-a exceeded 30ms deadline for session sess:/work/a; agent may still be executing
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 prompt=prompt-child-admission
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=prompt-first
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=prompt-first
qwen serve: channel exited (code=1, signal=none, transport=ok, 1 session(s) torn down)
sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=prompt-first
[pending-prompt] cancel forward failed after removePendingPrompt session=sess:/work/a: agent channel closed mid-request (session sess:/work/a)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=prompt-standard-cancel
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: 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, transport=ok, 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, transport=ok, 1 session(s) torn down)
sendPrompt: forward failed for session stuck:/work/a: agent channel closed mid-request (session stuck:/work/a)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session stuck:/work/a prompt=ddd6af85-0d12-490a-9d72-9de07427e2c4
[pending-prompt] cancel forward failed after removePendingPrompt 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, transport=ok, 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: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session lifecycle callback failed: host listener boom
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: session lifecycle callback failed: host listener boom
qwen serve: channel exited (code=none, signal=none, transport=ok, 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: 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: branchSession load failed for branch-restore-fails; closing partial live state while preserving the committed session...
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, transport=ok, 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: branchSession load failed for side-admission; closing partial live state while preserving the committed session...
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, transport=ok, 1 session(s) torn down)
qwen serve: source metadata for sess:/work/a during session restore was not persisted (agent channel closed mid-request (session sess:/work/a)) — the source is live-only until restart (reported to the caller via sourcePersisted=false)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 1 session(s) torn down)
qwen serve: source metadata for restore-source-channel-exit during session restore was not persisted (agent channel closed mid-request (session restore-source-channel-exit)) — the source is live-only until restart (reported to the caller via sourcePersisted=false)
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: source metadata for restore-source-failed during session restore was not persisted ([object Object]) — the source is live-only until restart (reported to the caller via sourcePersisted=false)
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: parentSessionId for sess:/work/a was not persisted (unknown) — the parent link is live-only until restart (reported to the caller via parentSessionPersisted=false)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: parentSessionId for sess:/work/a was not persisted (unknown) — the parent link is live-only until restart (reported to the caller via parentSessionPersisted=false)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: parentSessionId for sess:/work/a was not persisted (unknown) — the parent link is live-only until restart (reported to the caller via parentSessionPersisted=false)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: parentSessionId for sess:/work/a was not persisted ([object Object]) — the parent link is live-only until restart (reported to the caller via parentSessionPersisted=false)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: parentSessionId for sess:/work/a was not persisted (unknown) — the parent link is live-only until restart (reported to the caller via parentSessionPersisted=false)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: parentSessionId for sess:/work/a was not persisted ([object Object]) — the parent link is live-only until restart (reported to the caller via parentSessionPersisted=false)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: parentSessionId for sess:/work/a was not persisted (AcpSessionBridge sessionParent timed out after 50ms) — the parent link is live-only until restart (reported to the caller via parentSessionPersisted=false)
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 sess:/work/a cwd changed: /work/a -> /work/a
qwen serve: session sess:/work/a#2 cwd changed: /work/a -> /work/b
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session sess:/work/a cwd changed: /work/a -> /work/b
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session sess:/work/a cwd changed: /work/a -> /work/b
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[reconcile] session=sess:/work/a target=approvalMode action=corrected cached=plan actual=plan
[demux] session=sess:/work/a type=current_mode_update action=promoted mode=plan
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: closing session "sess:/work/a" (reason: approval_mode_initialization_failed)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[reconcile] session=sess:/work/a target=approvalMode action=skipped reason=roundtrip_failed
qwen serve: closing session "sess:/work/a" (reason: approval_mode_initialization_failed)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[reconcile] session=sess:/work/a target=approvalMode action=skipped reason=roundtrip_failed
qwen serve: closing session "sess:/work/a" (reason: last_client_detached)
qwen serve: session reaper started (interval 1ms, idle threshold 1ms)
qwen serve: reaping idle session "sess:/work/a" (idle for 0s, threshold 0s)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[reconcile] session=restore-with-mode 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=skipped reason=roundtrip_failed
qwen serve: completing deferred kill of session "sess:/work/a" (attach_rollback)
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)
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)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: dropping early 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)
[demux] session=sess:/work/a type=session_recording_degraded action=dropped reason=malformed
[demux] session= type=session_recording_degraded action=dropped reason=malformed
[demux] session=sess:/work/a type=session_recording_degraded action=dropped reason=malformed
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: completing deferred kill of session "sess:/work/a" (last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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: completing deferred kill of session "sess:/work/a" (last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: completing deferred kill of session "sess:/work/a" (last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: completing deferred kill of session "sess:/work/a" (last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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, transport=ok, 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: branchSession load failed for branch-transport-failure; closing partial live state while preserving the committed session...
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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, transport=ok, 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: closing session "sess:/work/a" (reason: client_close)
qwen serve: closeSession ACP session close notification failed for session "sess:/work/a": [object Object]
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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: 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, transport=ok, 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: channel exited (code=none, signal=none, transport=ok, 1 session(s) torn down)
qwen serve: closeSession ACP session close notification 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: 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, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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, transport=ok, 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, transport=ok, 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, transport=ok, 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, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: updated session metadata "sess:/work/a" pr=9517 bound (https://github.com/o/r/pull/9517)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: updated session metadata "sess:/work/a" pr=9517 bound (https://github.com/o/r/pull/9517)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: updated session metadata "sess:/work/a" pr=9517 bound (https://github.com/o/r/pull/9517)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: updated session metadata "sess:/work/a" pr=1 bound (https://github.com/o/r/pull/1)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: updated session metadata "sess:/work/a" pr=9500 bound (https://github.com/o/r/pull/9500)
qwen serve: updated session metadata "sess:/work/a" pr=9517 bound (https://github.com/o/r/pull/9517)
qwen serve: updated session metadata "sess:/work/a" pr=9500 bound (https://github.com/o/r/pull/9500?v=2)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: updated session metadata "sess:/work/a" pr=9517 bound (https://github.com/o/r/pull/9517)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: updated session metadata "sess:/work/a" pr=9517 bound (https://github.com/o/r/pull/9517)
qwen serve: updated session metadata "sess:/work/a" pr=9517 bound (https://github.com/o/r/pull/9517)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: updated session metadata "sess:/work/a" pr=9517 bound (https://github.com/o/r/pull/9517)
qwen serve: updated session metadata "sess:/work/a" pr=9517 bound (https://github.com/o/r/pull/9517?v=2)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: updated session metadata "sess:/work/a" pr=9517 bound (https://github.com/repo-a/o/pull/9517)
qwen serve: updated session metadata "sess:/work/a" pr=9517 bound (https://github.com/repo-b/o/pull/9517)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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, transport=ok, 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, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: updated session metadata "sess:/work/a" pr=9500 bound (https://github.com/o/r/pull/9500)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: updated session metadata "sess:/work/a" pr=9500 bound (https://github.com/o/r/pull/9500)
qwen serve: updated session metadata "sess:/work/a" pr=9501 bound (https://github.com/o/r/pull/9501)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: updated session metadata "sess:/work/a" pr=9517 bound (https://github.com/o/r/pull/9517)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: updated session metadata "sess:/work/a" pr=9517 bound (https://github.com/o/r/pull/9517)
qwen serve: updated session metadata "sess:/work/a" pr=9517 bound (https://github.com/o/r/pull/9517)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: updated session metadata "sess:/work/a" pr=5 bound (https://github.com/repo-a/r/pull/5)
qwen serve: updated session metadata "sess:/work/a" pr=5 bound (https://github.com/repo-b/r/pull/5)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: updated session metadata "sess:/work/a" pr=9500 bound (https://github.com/o/r/pull/9500)
qwen serve: updated session metadata "sess:/work/a" pr=9517 bound (https://github.com/o/r/pull/9517)
qwen serve: updated session metadata "sess:/work/a" pr=9500 bound (https://github.com/o/r/pull/9500)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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: updated session metadata "sess:/work/a" pr=9517 bound (https://github.com/o/r/pull/9517)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: updated session metadata "sess:/work/a" pr=1 bound (https://github.com/o/r/pull/1)
qwen serve: updated session metadata "sess:/work/a" pr=2 bound (https://github.com/o/r/pull/2)
qwen serve: updated session metadata "sess:/work/a" pr=3 bound (https://github.com/o/r/pull/3)
qwen serve: updated session metadata "sess:/work/a" pr=4 bound (https://github.com/o/r/pull/4)
qwen serve: updated session metadata "sess:/work/a" pr=5 bound (https://github.com/o/r/pull/5)
qwen serve: updated session metadata "sess:/work/a" pr=6 bound (https://github.com/o/r/pull/6)
qwen serve: updated session metadata "sess:/work/a" pr=7 bound (https://github.com/o/r/pull/7)
qwen serve: updated session metadata "sess:/work/a" pr=8 bound (https://github.com/o/r/pull/8)
qwen serve: updated session metadata "sess:/work/a" pr=9 bound (https://github.com/o/r/pull/9)
qwen serve: updated session metadata "sess:/work/a" pr=10 bound (https://github.com/o/r/pull/10)
qwen serve: updated session metadata "sess:/work/a" pr=11 bound (https://github.com/o/r/pull/11)
qwen serve: updated session metadata "sess:/work/a" pr=12 bound (https://github.com/o/r/pull/12)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: updated session metadata "sess:/work/a" pr=11 bound (https://github.com/o/r/pull/11)
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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, transport=ok, 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, transport=ok, 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, transport=ok, 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, transport=ok, 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, transport=ok, 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, transport=ok, 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, transport=ok, 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, transport=ok, 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, transport=ok, 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)
sendPrompt: forward failed for session sess:/work/a: model unavailable
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 "5611de8d-6a30-4ad6-be2c-86f342843a1f" 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)
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, transport=ok, 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, transport=ok, 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: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=1, signal=none, transport=ok, 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: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[reconcile] session=sess:/work/a target=approvalMode action=skipped reason=roundtrip_failed
qwen serve: closing session "sess:/work/a" (reason: approval_mode_initialization_failed)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: workspace MCP detail timeout for aone; deferring channel retirement until 1 active session(s) drain
qwen serve: workspace MCP detail timeout for aone; deferring channel retirement until 1 active session(s) drain
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: workspace control timeout; deferring channel retirement until 1 active session(s) drain
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: newSession timed out after 50ms on channel 7e1d1b3a-b603-410d-8c40-048a0bcd641b; decision=fence_shared
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: workspace MCP discovery timeout; deferring channel retirement until 1 active session(s) drain
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: workspace MCP authentication timeout for aone; deferring channel retirement until 1 active session(s) drain
qwen serve: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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, transport=ok, 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: idle timeout (10000ms) expired, killing channel
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: idle timeout (600000ms) expired, killing channel
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: idle timeout (600000ms) expired, killing channel
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: idle timeout (600000ms) expired, killing channel
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: idle timeout (2147483647ms) expired, killing channel
qwen serve: channel exited (code=none, signal=none, transport=ok, 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: closing session "sess:/work/a" (reason: client_close)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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, transport=ok, 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, transport=ok, 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)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=84869b5e-87ff-4044-98d4-7012d950db2c
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, transport=ok, 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)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=070d7cfc-7d16-439f-84cb-bfeb5d854a41
qwen serve: session reaper started (interval 1000ms, idle threshold 0ms)
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, transport=ok, 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, transport=ok, 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, transport=ok, 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, transport=ok, 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: reaping idle session "sess:/work/a#2" (idle for 3s, threshold 3s)
qwen serve: reaping idle session "sess:/work/a#3" (idle for 3s, threshold 3s)
qwen serve: closing session "sess:/work/a" (reason: idle_timeout)
qwen serve: closing session "sess:/work/a#2" (reason: idle_timeout)
qwen serve: closing session "sess:/work/a#3" (reason: idle_timeout)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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, transport=ok, 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, transport=ok, 0 session(s) torn down)
qwen serve: closing session "sess:/work/a" (reason: last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: closing session "sess:/work/a" (reason: last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: closing session "sess:/work/a" (reason: last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=510829dc-195f-4a33-939d-21568e7bc760
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=538a19fb-2d34-424e-bcf1-0677c5b601ec
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 1 session(s) torn down)
sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=b8e2c2b4-85f9-4d4f-9e1f-ab5ca8d47177
[pending-prompt] cancel forward failed after removePendingPrompt 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, transport=ok, 1 session(s) torn down)
sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=288c8598-961f-4a99-bfcd-6c688aad320c
[pending-prompt] cancel forward failed after removePendingPrompt 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: closing session "sess:/work/a" (reason: last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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: closing session "sess:/work/a" (reason: client_close)
[mid-turn] session="sess:/work/a" rejected: session closing
qwen serve: channel exited (code=none, signal=none, transport=ok, 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)
[mid-turn] session=sess:/work/a rejected: empty
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" remove missed messageId="34c098f8-9236-414a-85b6-37ef6a36d1ef" (already drained or completed)
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)
[mid-turn] session="sess:/work/a" remove missed messageId="5600cf39-4086-4851-af3b-0b9ecac7a891" (already drained or completed)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[mid-turn] session=sess:/work/a drained=2 echoed=2 injected into running turn
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[mid-turn] session=sess:/work/a rejected: empty
[mid-turn] session="sess:/work/a" rejected id "media-1": text or content mismatch
[mid-turn] session=sess:/work/a drained=2 echoed=2 injected into running turn
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: last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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: last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: channel kill failed (killSession "s0:/work/a"): BridgeTimeoutError: AcpSessionBridge killSession "s0:/work/a" teardown timed out after 10000ms
[pending-prompt] session=sess:/work/a removing promptId=promoted-delete state=running
sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=promoted-delete
[mid-turn] session="sess:/work/a" failed to run promoted message "promoted-delete": "agent channel closed mid-request (session sess:/work/a)"
[pending-prompt] cancel forward failed after removePendingPrompt 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" remove missed messageId="ordinary-pending" (already drained or completed)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[mid-turn] session=sess:/work/a drained=1 echoed=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)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel kill failed (killSession "sess:/work/a"): BridgeTimeoutError: AcpSessionBridge killSession "sess:/work/a" teardown timed out after 10000ms
[mid-turn] session=sess:/work/a drained=1 echoed=1 injected into running turn
[mid-turn] session="sess:/work/a" remove missed messageId="public-mid-turn" (already drained or completed)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[mid-turn] session=sess:/work/a rejected: queue full (depth 20 >= 20)
[mid-turn] session=sess:/work/a rejected: queue full (depth 20 >= 20)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[mid-turn] session="sess:/work/a" rejected id "client-mid-1": text or content mismatch
[mid-turn] session="sess:/work/a" failed to run promoted message "client-mid-1": "Prompt aborted"
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[mid-turn] session=sess:/work/a drained=1 echoed=1 injected into running turn
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[mid-turn] session=sess:/work/a drained=2 echoed=2 injected into running turn
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[mid-turn] session="sess:/work/a" failed to run promoted message "media-snap": "Prompt aborted"
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel kill failed (empty newSession failure): BridgeTimeoutError: AcpSessionBridge empty newSession failure teardown timed out after 10000ms
[mid-turn] session=sess:/work/a rejected: queued inline attachments exceed the 104857600-byte session budget
[mid-turn] session="sess:/work/a" failed to run promoted message "inline-1": "Prompt aborted"
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=9cc4e507-7af4-42cd-b0f6-a1aa08a875bc
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[mid-turn] session=sess:/work/a drained=1 echoed=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)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: channel kill failed (killSession "c0:/work/a"): BridgeTimeoutError: AcpSessionBridge killSession "c0:/work/a" teardown timed out after 10000ms
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" rejected: session closing
qwen serve: closing session "sess:/work/a" (reason: last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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)
[mid-turn] session="sess:/work/a" rejected id "steer-idle": session idle
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
[mid-turn] session="sess:/work/a" rejected id "public-idle": session idle
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" failed to run promoted message "03e8bb0d-9193-4413-83bf-6e74753d576c": "Prompt aborted"
[mid-turn] session="sess:/work/a" failed to run promoted message "ui-visible": "Prompt aborted"
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: last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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: last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: closing session "sess:/work/a" (reason: last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: closing session "sess:/work/a" (reason: last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: closing session "sess:/work/a" (reason: last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: killSession ACP session close notification failed for session "sess:/work/a": [object Object]
 ✓ src/bridge.test.ts (924 tests) 16014ms
   ✓ createAcpSessionBridge — mid-turn message queue (enqueueMidTurnMessage) > bounds the promoted ring across many idle promotions  559ms
[artifacts] session=s1-write-file-persist-fail action=vanish_forget_failed artifactIds=["a8113c2a8de6b644"] reason="disk full"
[artifacts] session=s1-write-file-persist-fail action=vanish_forget_failed artifactIds=["a8113c2a8de6b644"] reason="disk full"
[artifacts] session=s1-get-scoped-forget action=vanish_forget_failed artifactIds=["95bc9708e83cf880","b5b7854fc8aea8a5"] reason="disk full"
[artifacts] session=s1-client-upsert-owner action=upsert_denied artifactId=c2d4ffe4020f3640 owner=client-a requester=client-b
[artifacts] session=s1-client-upsert-owner-batch action=upsert_denied artifactId=7b3e8a786f927b8a owner=client-a requester=client-b
[artifacts] session=s1-client-id-durable action=remove_denied artifactId=f12e2d7d92dcc265 owner=client-a requester=client-b
[artifacts] session=s-dir-leftover action=status_refresh_failed artifactId=746784abc79360a6 reason="path is not a regular file"
[artifacts] session=s11-ephemeral-replacement-failure action=upsert_rollback warning="artifact durable removal not persisted; live changes rolled back" artifactIds=["2dfaa9c7bc96dc41"] error="disk full"
[artifacts] session=s11-restored-client-tombstone action=tombstone_replay_suppressed artifactId=ffe5414ad32cdb7f
[artifacts] session=s11-downgraded-tombstone action=persist_failed sequence=2 artifactIds=["9f693a0b913c7284"] reason="disk full"
[artifacts] session=s11-downgraded-eviction-tombstone action=persist_failed sequence=2 artifactIds=["d5abd84cb8e3bc00"] reason="disk full"
 ✓ src/sessionArtifacts.test.ts (149 tests) 187ms
[demux] session=session-owned-by-new-channel type=session_recording_degraded action=dropped reason=session_not_owned
[demux] session=sess:mode type=current_mode_update action=promoted mode=plan
[demux] session=sess:mode type=current_mode_update action=promoted mode=auto-edit
[artifacts] session=sess:forged-artifacts action=dropped reason="url must use http or https"
[artifacts] session=sess:deferred-artifact-retry action=deferred reason=workspace_not_bound
[artifacts] session=sess:deferred-artifact-retry action=deferred reason=workspace_not_bound
[artifacts] session=sess:deferred-artifact-retry action=dropped reason={"name":"Error","message":"transient artifact failure","stack":"Error: transient artifact failure\n    at /startdir/src/qwen-code/packages/acp-bridge/src/bridgeClient.test.ts:3028:30\n    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11\n    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26"}
[artifacts] session=sess:deferred-artifact-prepare action=deferred reason=workspace_prepare_failed
[artifacts] session=sess:deferred-artifact-cap action=deferred reason=workspace_not_bound
[artifacts] session=sess:deferred-artifact-cap action=deferred reason=workspace_not_bound
[artifacts] session=sess:deferred-artifact-cap action=deferred_truncated reason=workspace_not_bound
[artifacts] session=sess:deferred-artifact-cap action=deferred reason=workspace_not_bound
qwen serve: failed to snapshot pending interaction c0414238-9bd8-452b-8cb2-b5c4b1830458: Cannot read properties of null (reading '_meta')
[mid-turn] session=sess:drain drained=4 echoed=3 injected into running turn
[mid-turn] session=sess:media drained=2 echoed=2 injected into running turn
[mid-turn] session=sess:media-reference drained=1 echoed=1 injected into running turn
[mid-turn] session=sess:shared-media drained=4 echoed=4 injected into running turn
[mid-turn] session=sess:slow-media drained=1 echoed=1 injected into running turn
[mid-turn] session="sess:expired" degraded attachment for message "mid-expired": "Unknown or unavailable session attachment: expired"
[mid-turn] session=sess:expired drained=2 echoed=2 injected into running turn
[mid-turn] session=sess:large-drain drained=1 echoed=1 injected into running turn
[mid-turn] session="sess:emfile" drain failed, requeued 2 message(s): "too many open files"
[mid-turn] session=sess:emfile drained=2 echoed=2 injected into running turn
[mid-turn] session="sess:mixed" degraded attachment for message "mid-mixed": "Unknown or unavailable session attachment: image (1).png"
[mid-turn] session=sess:mixed drained=1 echoed=1 injected into running turn
[mid-turn] session=sess:multi drained=3 echoed=3 injected into running turn
[mid-turn] session=sess:ring drained=3 echoed=3 injected into running turn
 ✓ src/bridgeClient.test.ts (132 tests) 58ms
 ✓ src/compactionEngine.test.ts (132 tests) 37ms
 ✓ src/sessionAttachments.test.ts (82 tests) 417ms
 ✓ src/eventBus.test.ts (59 tests) 74ms
 ✓ src/transcript-replay.test.ts (57 tests) 24ms
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 voter cancellation, session cancellation, or 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 voter cancellation, session cancellation, or 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) 19ms
 ✓ src/ndJsonStream.test.ts (41 tests) 959ms
   ✓ ndJsonStream > cancel while backpressured wakes the pump without a transport error  452ms
 ✓ src/spawnChannel.test.ts (47 tests) 64ms
 ✓ src/process-registry.test.ts (30 tests) 21ms
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: agent channel closed mid-request (session sess:/work/a)
broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a prompt=9b943db3-4227-4978-8a95-0d4e62fe5c36
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: last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 0 session(s) torn down)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: closing session "sess:/work/a" (reason: last_client_detached)
qwen serve: channel exited (code=none, signal=none, transport=ok, 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)
 ✓ src/bridge-worktree-reset.test.ts (12 tests) 85ms
 ✓ src/daemon-memory-budget.test.ts (53 tests) 7ms
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) by client "client_61809c4e-d8f0-4730-84b0-eb46bae8da1c"
qwen serve: channel exited (code=none, signal=none, transport=ok, 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)
 ✓ src/session-sources.test.ts (13 tests) 32ms
 ✓ src/prompt-ledger.test.ts (16 tests) 5ms
 ✓ src/logRedaction.test.ts (39 tests) 6ms
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: prompt ledger append failed for session=sess:/work/a promptId=6bbc63d5-44bf-41c9-9000-136525868e6e: disk full
qwen serve: prompt ledger append failed for session=sess:/work/a promptId=6bbc63d5-44bf-41c9-9000-136525868e6e: disk full
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
 ✓ src/bridge-prompt-ledger.test.ts (8 tests) 24ms
 ✓ src/status.test.ts (18 tests) 4ms
 ✓ src/channel-liveness.test.ts (9 tests) 7ms
 ✓ src/child-heap-policy.test.ts (15 tests) 4ms
 ✓ src/inMemoryChannel.test.ts (8 tests) 109ms
a2ui: dropping command with unrecognized shape (version,noop)
 ✓ src/a2uiExtraction.test.ts (14 tests) 4ms
 ✓ src/journalGrowthPolicy.test.ts (11 tests) 3ms
 ✓ src/workspacePaths.test.ts (10 tests) 4ms
 ✓ src/process-registry.process.test.ts (3 tests) 5382ms
   ✓ ProcessRegistry real process trees > reaps ordinary and detached descendants after graceful escalation  5079ms
 ✓ src/channel-startup-profile.test.ts (4 tests) 3ms
 ✓ src/session-restore-timeout.test.ts (23 tests) 4ms
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/child-env-forwarding.test.ts (8 tests) 6ms
 ✓ src/replayWindowLimits.test.ts (27 tests) 4ms
 ✓ src/json-string-bytes.test.ts (5 tests) 36ms
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
 ✓ src/bridge.sandbox.test.ts (2 tests) 14ms
 ✓ src/daemon-memory-budget-parity-fraction.test.ts (1 test) 2ms
 ✓ src/workspacePaths.sandbox.test.ts (2 tests) 1ms
 ✓ src/daemon-memory-budget-parity.test.ts (1 test) 2ms
 ✓ src/generation-stream.test.ts (4 tests) 3ms
 ✓ src/session-source.test.ts (10 tests) 3ms
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
 ✓ src/bridge-file-capabilities.test.ts (2 tests) 12ms
 ✓ src/channel-control-timeouts.test.ts (2 tests) 1ms

 Test Files  38 passed (38)
      Tests  2013 passed (2013)
   Start at  14:15:41
   Duration  43.78s (transform 2.51s, setup 0ms, collect 15.86s, tests 23.64s, environment 3ms, prepare 1.36s)

npm notice run @qwen-code/audio-capture@0.23.3 test

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

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

 Test Files  1 passed (1)
      Tests  2 passed (2)
   Start at  14:16:25
   Duration  130ms (transform 18ms, setup 0ms, collect 16ms, tests 2ms, environment 0ms, prepare 40ms)

npm notice run @qwen-code/chrome-bridge@0.23.3 test
npm notice run vitest run --config vitest.config.ts --testTimeout=30000 --no-file-parallelism --exclude=**/{qwenConnectionHandler,useAtCompletion,serve/acp-http/transport,i18n/index,ui/auth/AuthDialog,ui/utils/clipboardUtils,services/FileCommandLoader,services/FileCommandLoader-extension,lsp/LspConfigLoader,utils/pathReader}.test.*

 RUN  v3.2.7 /startdir/src/qwen-code/packages/chrome-extension

stderr | src/sidepanel/sidepanel-assets.test.ts > side panel capability status assets > tolerates transient probe errors without tearing down the shell
sidepanel probe failed: Error: capability model failed to load
    at /startdir/src/qwen-code/packages/chrome-extension/src/sidepanel/sidepanel-assets.test.ts:185:13
    at mockCall (file:///startdir/src/qwen-code/node_modules/vitest/node_modules/@vitest/spy/dist/index.js:96:15)
    at deriveCapabilityStatus (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103)
    at probeState (eval at <anonymous> (/startdir/src/qwen-code/packages/chrome-extension/src/sidepanel/sidepanel-assets.test.ts:104:5), <anonymous>:134:10)
    at tick (eval at <anonymous> (/startdir/src/qwen-code/packages/chrome-extension/src/sidepanel/sidepanel-assets.test.ts:104:5), <anonymous>:203:20)
    at /startdir/src/qwen-code/packages/chrome-extension/src/sidepanel/sidepanel-assets.test.ts:189:5
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20

stderr | src/sidepanel/sidepanel-assets.test.ts > side panel capability status assets > tolerates transient probe errors without tearing down the shell
sidepanel probe failed: Error: capability model failed to load
    at /startdir/src/qwen-code/packages/chrome-extension/src/sidepanel/sidepanel-assets.test.ts:185:13
    at mockCall (file:///startdir/src/qwen-code/node_modules/vitest/node_modules/@vitest/spy/dist/index.js:96:15)
    at deriveCapabilityStatus (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103)
    at probeState (eval at <anonymous> (/startdir/src/qwen-code/packages/chrome-extension/src/sidepanel/sidepanel-assets.test.ts:104:5), <anonymous>:134:10)
    at tick (eval at <anonymous> (/startdir/src/qwen-code/packages/chrome-extension/src/sidepanel/sidepanel-assets.test.ts:104:5), <anonymous>:203:20)
    at /startdir/src/qwen-code/packages/chrome-extension/src/sidepanel/sidepanel-assets.test.ts:193:5
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20

stderr | src/sidepanel/sidepanel-assets.test.ts > side panel capability status assets > tolerates transient probe errors without tearing down the shell
sidepanel probe failed: Error: capability model failed to load
    at /startdir/src/qwen-code/packages/chrome-extension/src/sidepanel/sidepanel-assets.test.ts:185:13
    at mockCall (file:///startdir/src/qwen-code/node_modules/vitest/node_modules/@vitest/spy/dist/index.js:96:15)
    at deriveCapabilityStatus (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103)
    at probeState (eval at <anonymous> (/startdir/src/qwen-code/packages/chrome-extension/src/sidepanel/sidepanel-assets.test.ts:104:5), <anonymous>:134:10)
    at tick (eval at <anonymous> (/startdir/src/qwen-code/packages/chrome-extension/src/sidepanel/sidepanel-assets.test.ts:104:5), <anonymous>:203:20)
    at /startdir/src/qwen-code/packages/chrome-extension/src/sidepanel/sidepanel-assets.test.ts:199:5
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20

 ✓ src/sidepanel/sidepanel-assets.test.ts (9 tests) 1172ms
   ✓ side panel capability status assets > renders runtime MCP diagnostics from the live status endpoint  860ms
 ✓ src/sidepanel/capability-status.test.ts (23 tests) 5ms
 ✓ src/background/cdp-bridge.test.ts (7 tests) 518ms
 ✓ src/daemon/config.test.ts (8 tests) 5ms
 ✓ scripts/manifest-version.test.js (19 tests) 61ms
 ✓ scripts/artifact-scan.test.js (8 tests | 1 skipped) 58ms
 ✓ scripts/main-entry.test.js (3 tests) 171ms
 ↓ scripts/package-extension.test.js (2 tests | 2 skipped)

 Test Files  7 passed | 1 skipped (8)
      Tests  76 passed | 3 skipped (79)
   Start at  14:16:26
   Duration  3.68s (transform 68ms, setup 0ms, collect 124ms, tests 1.99s, environment 692ms, prepare 300ms)

npm notice run @qwen-code/qwen-code@0.23.3 test

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

 ✓ src/acp-integration/session/Session.test.ts (875 tests) 123123ms
   ✓ Session > prompt > auto-compress > latches mid-turn drain off after repeated timeouts when the client never responds  6107ms
   ✓ Session > prompt > auto-compress > resets the timeout strike count when a drain succeeds  8148ms
   ✓ Session > prompt > auto-compress > recovers a drain that timed out and injects it on the next batch  2112ms
   ✓ Session > prompt > auto-compress > keeps a logger failure inside late drain recovery from escaping  2125ms
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: 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: Web Shell index send failed: ENOENT: no such file or directory, stat '/tmp/qwen-webshell-JYKq9D/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: GET /brand: ui.brand.name uses an environment placeholder, which brand keys do not resolve — the substitution source is process-wide and a workspace can supply it. Set a literal value instead.
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: ACP preheat resolved without a live channel
qwen serve: ACP preheat resolved without a live channel
qwen serve: [/work/bound] extensions install: background task failed: Could not read <extension-upload-dir>/extension.zip from upload:demo.zip: disk full
qwen serve: [/work/bound] extensions install: background task failed: Could not create the temporary extension upload directory
qwen serve: [/work/bound] extensions install: background task failed: Extension installation cancelled by a new install request
qwen serve: [/work/bound] extensions install: background task failed: Marketplace "empty-marketplace" has no plugins
qwen serve: [/work/bound] extensions install: background task failed: Extension operation cancelled
qwen serve: [/work/bound] extensions install: background task failed: Extension interaction timed out
qwen serve: [/work/bound] extensions install: background task failed: Extension installation cancelled by a new install request
qwen serve: [/work/bound] extensions install: background task failed: Extension installation cancelled by a new install request
qwen serve: [/work/bound] extensions install: background task failed: Extension operation cancelled
qwen serve: [/work/bound] extensions install: Commit succeeded but post-commit work failed: cleanup exploded
qwen serve: [/work/bound] extensions install: background task failed: Extension operation cancelled
qwen serve: [/work/bound] extensions install: background task failed: Only GitHub, Git, npm, and absolute local path extension installs are supported over the daemon endpoint.
qwen serve: [/work/bound] extensions install: background task failed: Local extension sources must be absolute daemon-host paths; relative paths are not supported over the daemon endpoint.
qwen serve: [/work/bound] extensions update: background task failed: Extension "missing-ext" not found
qwen serve: [/work/bound] extensions update: background task failed: Extension "test-ext" has no update
qwen serve: [/work/bound] extensions update: background task failed: Update check failed for extension "test-ext": https://***REDACTED***@example.com/check failed
qwen serve: [/work/bound] extensions uninstall: background task failed: Extension "plain-name" not found
qwen serve: [/work/bound] extensions uninstall: background task failed: Extension "https://example.com/missing" not found
qwen serve: bridge error (GET /session/:id/context session=s-secondary): Error: summary exploded
    at summaryImpl (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:10708:17)
    at Object.getSessionSummary (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:2495:14)
    at scanLiveOwners (/startdir/src/qwen-code/packages/cli/src/serve/workspace-registry.ts:344:24)
    at Object.resolveLiveSessionOwner (/startdir/src/qwen-code/packages/cli/src/serve/workspace-registry.ts:605:11)
    at requireSessionRuntime (/startdir/src/qwen-code/packages/cli/src/serve/routes/session-runtime.ts:54:40)
    at resolveLiveSessionRuntime (/startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:1805:5)
    at resolveOwnerSessionRuntime (/startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:1849:21)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:1960:29
    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)
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: /acp WebSocket transport enabled on /acp
qwen serve: /acp WS established 7f8a4381 (loopback=true, active=1)
qwen serve: /acp dispatch error (session/new): Session "550e8400-e29b-41d4-a716-446655440003" already exists or is being created.
qwen serve: /acp WS closed (7f8a4381)
qwen serve: bridge error (POST /session): Error: spawn boom
    at spawnImpl (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:13516:35)
    at Object.spawnOrAttach (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:2401:28)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:3191:44
qwen serve: workspace_mismatch (POST /session): runtime 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:13883:17)
    at Object.spawnOrAttach (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:2401:28)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:3191:44
    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:607: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: bridge error (POST /session): Error: spawn failed
    at spawnImpl (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:15009:17)
    at Object.spawnOrAttach (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:2401:28)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:3191:44
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
qwen serve: bridge error (POST /session): Error: spawn failed
    at spawnImpl (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:15052:17)
    at Object.spawnOrAttach (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:2401:28)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:3191:44
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
qwen serve: bridge error (POST /session/:id/load session=persisted-secondary): Error: summary exploded
    at summaryImpl (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:16717:17)
    at Object.getSessionSummary (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:2495:14)
    at scanLiveOwners (/startdir/src/qwen-code/packages/cli/src/serve/workspace-registry.ts:344:24)
    at Object.resolveLiveSessionOwner (/startdir/src/qwen-code/packages/cli/src/serve/workspace-registry.ts:605:11)
    at resolveRuntimeForSessionRestore (/startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:1774:41)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:3659:33
    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:607:8)
    at Layer.handleRequest (/startdir/src/qwen-code/node_modules/router/lib/layer.js:152:17)
qwen serve: bridge error (POST /session/:id/load session=wt-session): Error: Active session is outside its worktree
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:4391:27
qwen serve: bridge error (POST /session/:id/load session=wt-session): Error: Active session is outside its worktree
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:4391:27
qwen serve: bridge error (POST /session/:id/load session=wt-session): Error: Active session is outside its worktree
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:4391:27
qwen serve: bridge error (POST /session/:id/load session=wt-session): Error: Worktree sidecar belongs to another workspace
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:4255:25
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
qwen serve: bridge error (POST /session/:id/load session=wt-session): Error: Worktree sidecar workspace is missing or inaccessible
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:4250:25
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
qwen serve: bridge error (POST /session/:id/load session=wt-session): Error: Worktree sidecar is missing or invalid
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:4233:23
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
qwen serve: bridge error (POST /session/:id/load session=wt-session): Error: Worktree marker ownership is invalid
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:4357:23
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
qwen serve: bridge error (POST /session/:id/load session=dead-session): Error: cd failed
    at Object.changeSessionCwdImpl (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:18231:17)
    at Object.changeSessionCwd (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:2973:35)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:4394:56
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
qwen serve: bridge error (POST /session/:id/load session=wt-session): Error: Worktree relocation was rejected
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:4402:27
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
qwen serve: bridge error (POST /session/:id/load session=missing-session): Error: Worktree checkout is missing or inaccessible
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:4292:23
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
qwen serve: bridge error (POST /session/:id/load session=escape-session): Error: Worktree sidecar path failed containment
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:4308:23
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
qwen serve: bridge error (POST /session/:id/load session=root-session): Error: Worktree sidecar path failed containment
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:4308:23
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
qwen serve: organized session list live merge failed; using persisted sessions only: bridge unavailable mid-pass
qwen serve: organized session list live merge failed; using persisted sessions only: bridge unavailable mid-pass
qwen serve: organized session list truncated at 50000 sessions
qwen serve: failed to read session-info for workspace "/work/bound": "ENOTDIR: not a directory, scandir '/tmp/qwen-serve-session-info-CPsJll/projects/-
qwen serve: bridge error (POST /session/:id/sources session=session-A): Error: Source operation failed
    at /startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:24593:25
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:861:59
    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)
qwen serve: bridge error (POST /session/:id/btw session=session-A): Error: btw failed
    at generateSessionBtwImpl (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:25239:17)
    at Object.generateSessionBtw (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:2740:14)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:8762:47
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:1935:19
    at SessionArchiveCoordinator.runSharedMany (/startdir/src/qwen-code/packages/cli/src/serve/server/session-archive.ts:200:20)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:1933:30
    at runOwnerRuntimeActivity (/startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:1867:54)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:1932:15
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
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:26209:17)
    at Object.setSessionLanguage (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:2707:14)
    at app.post.withOwnerMutableSession.cwdBound (/startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:9264:47)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:1935:19
    at SessionArchiveCoordinator.runSharedMany (/startdir/src/qwen-code/packages/cli/src/serve/server/session-archive.ts:200:20)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:1933:30
    at runOwnerRuntimeActivity (/startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:1867:54)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:1932:15
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
qwen serve: bridge error (POST /workspace/channel/reload): Error: relaunch failed
    at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:27345:15)
    at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/node_modules/@vitest/spy/dist/index.js:96:15)
    at Object.spy [as reloadChannelWorker] (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/workspace-channel-control.ts:381: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:607: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)
qwen serve: sessions archive result requested=1 requestedIds=["55555555-bbbb-cccc-dddd-eeeeeeeeeeef"] archived=0 archivedIds=[] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["55555555-bbbb-cccc-dddd-eeeeeeeeeeef":"Session \"55555555-bbbb-cccc-dddd-eeeeeeeeeeef\" is being archived or unarchived;]
qwen serve: bridge error (GET /session/:id/transcript session=55555555-bbbb-cccc-dddd-aeaeaeaeaeae): Error: Transcript session resolution failed across 2 workspace(s)
    at resolveTranscriptSessionRuntime (/startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:2236:13)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:5615:27
    at SessionArchiveCoordinator.runSharedMany (/startdir/src/qwen-code/packages/cli/src/serve/server/session-archive.ts:200:14)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:5612:22
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: deleteSession failed for "aaaa5555-bbbb-cccc-dddd-eeeeeeeeeeee": "Session \"aaaa5555-bbbb-cccc-dddd-eeeeeeeeeeee\" is being archived or unarchived;
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: sessions archive result requested=1 requestedIds=["eeee3333-bbbb-cccc-dddd-eeeeeeeeeeee"] archived=1 archivedIds=["eeee3333-bbbb-cccc-dddd-eeeeeeeeeeee"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: removeSession failed for "aaaa0000-bbbb-cccc-dddd-eeeeeeeeeeee": "disk on fire"
qwen serve: sessions archive result requested=1 requestedIds=["11111111-bbbb-cccc-dddd-eeeeeeeeeeee"] archived=1 archivedIds=["11111111-bbbb-cccc-dddd-eeeeeeeeeeee"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["11111111-bbbb-cccc-dddd-eeeeeeeeeeea"] archived=1 archivedIds=["11111111-bbbb-cccc-dddd-eeeeeeeeeeea"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions unarchive result requested=1 requestedIds=["11111111-bbbb-cccc-dddd-eeeeeeeeeeea"] unarchived=1 unarchivedIds=["11111111-bbbb-cccc-dddd-eeeeeeeeeeea"] alreadyActive=0 alreadyActiveIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["11111111-bbbb-cccc-dddd-eeeeeeeeeeef"] archived=1 archivedIds=["11111111-bbbb-cccc-dddd-eeeeeeeeeeef"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions unarchive result requested=1 requestedIds=["11111111-bbbb-cccc-dddd-eeeeeeeeeeef"] unarchived=1 unarchivedIds=["11111111-bbbb-cccc-dddd-eeeeeeeeeeef"] alreadyActive=0 alreadyActiveIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["11111111-bbbb-cccc-dddd-eeeeeeeeeeef"] archived=1 archivedIds=["11111111-bbbb-cccc-dddd-eeeeeeeeeeef"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["11111111-bbbb-cccc-dddd-eeeeeeeeeeed"] archived=1 archivedIds=["11111111-bbbb-cccc-dddd-eeeeeeeeeeed"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["missing-session"] archived=0 archivedIds=[] alreadyArchived=0 alreadyArchivedIds=[] notFound=1 notFoundIds=["missing-session"] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["22222222-bbbb-cccc-dddd-eeeeeeeeeeee"] archived=0 archivedIds=[] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["22222222-bbbb-cccc-dddd-eeeeeeeeeeee":"flush failed"]
qwen serve: sessions archive result requested=1 requestedIds=["22222222-bbbb-cccc-dddd-eeeeeeeeeeef"] archived=0 archivedIds=[] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["22222222-bbbb-cccc-dddd-eeeeeeeeeeef":"ACP session close channel unavailable for 22222222-bbbb-cccc-dddd-eeeeeeeeeeef"]
qwen serve: sessions archive result requested=1 requestedIds=["22222222-bbbb-cccc-dddd-eeeeeeeeeeee"] archived=0 archivedIds=[] alreadyArchived=0 alreadyArchivedIds=[] notFound=1 notFoundIds=["22222222-bbbb-cccc-dddd-eeeeeeeeeeee"] errors=0 errorIds=[]
qwen serve: sessions unarchive result requested=1 requestedIds=["33333333-bbbb-cccc-dddd-eeeeeeeeeeee"] unarchived=1 unarchivedIds=["33333333-bbbb-cccc-dddd-eeeeeeeeeeee"] alreadyActive=0 alreadyActiveIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["55555555-bbbb-cccc-dddd-eeeeeeeeeeee"] archived=1 archivedIds=["55555555-bbbb-cccc-dddd-eeeeeeeeeeee"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["55555555-bbbb-cccc-dddd-eeeeeeeeeeef"] archived=1 archivedIds=["55555555-bbbb-cccc-dddd-eeeeeeeeeeef"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["55555555-bbbb-cccc-dddd-eeeeeeeeeeee"] archived=0 archivedIds=[] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["55555555-bbbb-cccc-dddd-eeeeeeeeeeee":"Session \"55555555-bbbb-cccc-dddd-eeeeeeeeeeee\" is being archived or unarchived;]
qwen serve: sessions archive result requested=2 requestedIds=["66666666-bbbb-cccc-dddd-eeeeeeeeeeee","77777777-bbbb-cccc-dddd-eeeeeeeeeeee"] archived=2 archivedIds=["66666666-bbbb-cccc-dddd-eeeeeeeeeeee","77777777-bbbb-cccc-dddd-eeeeeeeeeeee"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: bridge error (PATCH /workspaces/:workspace/session/:id/metadata session=550e8400-e29b-41d4-a716-446655440035 workspaceCwd=/work/different): Error: EISDIR: illegal operation on a directory, read '/tmp/qwen-workspace-metadata-prfail-Ibd2EK/projects/-work-different/chats/550e8400-e29b-41d4-a716-446655440035.pr.json'
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: /health deep probe failed for workspace "9f1b7a7fd511cb33": bridge wedged
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:54.967Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:54.967Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.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: same-origin Web Shell HTTP requests work without --allow-origin, but WebSocket-backed features (terminal, voice) and browsers reaching the daemon through a TLS-terminating proxy still need --allow-origin <origin>. A plain-HTTP intermediary that rewrites the Host header (nginx default proxy_set_header, k8s Ingress) needs --allow-origin <origin> for the origin the browser sees, unless it forwards Host verbatim; port translation alone (ssh -L, docker -p) is fine.
qwen serve listening on http://0.0.0.0:33195 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
Local: http://127.0.0.1:33195
Network (alhp0): http://192.168.1.5:33195
Generated bearer token (secret; changes on restart): 9lYmVA9bGiPEOTFIQ5m88g
HTTP is unencrypted. Use the existing TLS options for encrypted remote access.
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=15996 runQwenServeToListenMs=37
Scan to open Web Shell: http://192.168.1.5:33195 (Network (alhp0))
SECRET QR: grants daemon access. Do not share.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
█ ▄▄▄▄▄ ██▀▀ █▀    █▀▀██▀▀▄█▄▀█ ▄▄▄▄▄ █
█ █   █ █▄█ ▄▀▀▄▄▄▄▄▀▄▄▀█▄█▀ ▄█ █   █ █
█ █▄▄▄█ █ ▄ ▄ █ ▀▄▀ █▄█ ▄█▀ ▄▀█ █▄▄▄█ █
█▄▄▄▄▄▄▄█▄▀ █ █ █▄█ ▀ ▀ █ █▄█▄█▄▄▄▄▄▄▄█
██▄▀█▄▀▄▀▄ █    ▀▄▀█▄▀ ▄▀█▀▀ ▄ █  ▀▄███
█▀██▀ ▄▄▀█  ▄▄▀▄▄▀  ▀▀ ▄▄▄█▀   █▄█▄ ███
█   ▀▄▄▄▀▄▄▄▄ █   ▄▄▀██ ▀▀█▄▄ ▀▄▄▀█▀ ▄█
█▄ ▄▀ ▄▄▄▄ █  █▀▀▀█▀ █ ▄▄▀█▀ █  ▄▀▄  ▀█
█▀ ▄▄▀▄▄█▄█▄▄ █ ▀▄ ▀▄ █▀▄▀▀▄ ▄▀▄▀▀▄▄▄██
█▀█▀▄▄▄▄▄▀█▀█ █▄▀▀██▀▄▀▀ ▄█▀▄▀▀▄ █▀ ▀▀█
█▄▄  ▄▀▄ ▀██▄ █▀▀  ▄ ▄ ▀█▄▀▄▀█  █▀▀   █
█▄ ▀ ▄▀▄█ █▄ ▀ ▀█▀  ▄▄▀█▄█▄ ▄███▀█ ▀█▀█
█▀▀ █▄▄▄██▄▀▀▄▄  █▄  █▄▄▀ ▄  ▄▄▄█  ▄▄██
█████▀▀▄▀▄█ █▄██ █▀█ █  ▄ █▀ █  ▄▀▄▀█▀█
█▄▄███▄▄▄ ▀ █ ▀▄▀ ▀ ▄█▀▄  ▀▄▄ ▄▄▄ ▀████
█ ▄▄▄▄▄ ██▄█ ▀█▀ ▄▀█ ██▀▄██ █ █▄█ ▄  ██
█ █   █ █▄  █ ▀  ▄█▀▀▀█▄█▄█ ▀▄▄ ▄▄  ▀██
█ █▄▄▄█ █▀██▀ █▀▀█▀▀█▄ ██▀█▀▄█ ▄▀█ ▀ ██
█▄▄▄▄▄▄▄██████▄▄██▄▄▄▄█▄▄▄████▄███▄▄▄▄█
2026-11-05T14:18:55.023Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.057Z [WARN] [DAEMON] route=GET /capabilities durationMs=0 status=401 request completed
2026-11-05T14:18:55.061Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed
2026-11-05T14:18:55.063Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.068Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.068Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.069Z [ERROR] [DAEMON] daemon startup failed
  Error: Refusing trusted-loopback mode because ::1 bound to non-loopback address 0.0.0.0. Set QWEN_SERVER_TOKEN or pass --token, or bind to an explicit loopback address.
      at Server.handleListening (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:9720:25)
      at Server.wrapper (node:events:639:12)
      at Server.emit (node:events:526:24)
      at emitListeningNT (node:net:2485:10)
      at processTicksAndRejections (node:internal/process/task_queues:89:21)
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: --allow-origin: * (WARNING: `*` admits any cross-origin browser — bearer token gates API routes; the Web Shell static assets stay pre-auth in every mode unless --no-web, and /health stays pre-auth on loopback unless --require-auth is set)
2026-11-05T14:18:55.081Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.081Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.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:38801 (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=16079 runQwenServeToListenMs=2
2026-11-05T14:18:55.082Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.089Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: --allow-origin: https://app.example.com
2026-11-05T14:18:55.091Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.091Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.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:39853 (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=16089 runQwenServeToListenMs=1
2026-11-05T14:18:55.092Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.097Z [INFO] [DAEMON] route=GET /capabilities durationMs=0 status=200 request completed
2026-11-05T14:18:55.097Z [INFO] [DAEMON] daemon stopped
qwen serve listening on http://127.0.0.1:39665 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
2026-11-05T14:18:55.109Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.110Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.110Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.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:37945 (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=16109 runQwenServeToListenMs=1
2026-11-05T14:18:55.111Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.118Z [INFO] [DAEMON] route=GET /capabilities durationMs=0 status=200 request completed
qwen serve: /acp connection established 520d7517 (loopback=true, active=1)
2026-11-05T14:18:55.123Z [INFO] [DAEMON] route=POST /acp durationMs=1 status=200 request completed
2026-11-05T14:18:55.124Z [INFO] [DAEMON] daemon stopped
qwen serve listening on http://127.0.0.1:39791 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
2026-11-05T14:18:55.133Z [INFO] [DAEMON] route=GET /capabilities durationMs=0 status=200 request completed
qwen serve: /acp connection established 096cec62 (loopback=true, active=1)
2026-11-05T14:18:55.135Z [INFO] [DAEMON] route=POST /acp durationMs=1 status=200 request completed
2026-11-05T14:18:55.135Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.137Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.137Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
2026-11-05T14:18:55.137Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid mcpClientBudget: 0. Must be a positive integer.
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4081:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:35037:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.138Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.138Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
2026-11-05T14:18:55.138Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid mcpClientBudget: -5. Must be a positive integer.
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4081:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:35045:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.139Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.139Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
2026-11-05T14:18:55.139Z [ERROR] [DAEMON] daemon startup failed
  Error: mcpBudgetMode="enforce" requires a positive mcpClientBudget. Pass mcpClientBudget=N, or set mcpBudgetMode to "warn" or "off".
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4087:11)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:35056:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.140Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.140Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
2026-11-05T14:18:55.140Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid promptDeadlineMs: 0. Must be a positive integer (milliseconds).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4099:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:35077:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.141Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.141Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
2026-11-05T14:18:55.141Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid promptDeadlineMs: -5. Must be a positive integer (milliseconds).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4099:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:35077:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.142Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.142Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
2026-11-05T14:18:55.142Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid promptDeadlineMs: 1.5. Must be a positive integer (milliseconds).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4099:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:35077:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.143Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.143Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
2026-11-05T14:18:55.143Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid promptDeadlineMs: NaN. Must be a positive integer (milliseconds).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4099:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:35077:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.144Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.144Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
2026-11-05T14:18:55.145Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid maxPendingPromptsPerSession: -5. Must be a non-negative integer (0 / Infinity = unlimited).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4123:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:35095:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.146Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.146Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
2026-11-05T14:18:55.146Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid maxPendingPromptsPerSession: 1.5. Must be a non-negative integer (0 / Infinity = unlimited).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4123:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:35095:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.147Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.147Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
2026-11-05T14:18:55.147Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid maxPendingPromptsPerSession: NaN. Must be a non-negative integer (0 / Infinity = unlimited).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4123:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:35095:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.148Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.148Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
2026-11-05T14:18:55.148Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid writerIdleTimeoutMs: 0. Must be a positive integer (milliseconds).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4151:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:35114:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.149Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.149Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
2026-11-05T14:18:55.149Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid writerIdleTimeoutMs: -5. Must be a positive integer (milliseconds).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4151:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:35114:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.150Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.150Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
2026-11-05T14:18:55.150Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid writerIdleTimeoutMs: 1.5. Must be a positive integer (milliseconds).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4151:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:35114:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.151Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.151Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
2026-11-05T14:18:55.151Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid writerIdleTimeoutMs: NaN. Must be a positive integer (milliseconds).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4151:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:35114:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.152Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.152Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
2026-11-05T14:18:55.152Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid promptDeadlineMs: 2147483648. Exceeds maximum JS timer delay of 2147483647 ms (~24.8 days); Node would silently compress longer delays to 1ms.
      at assertTimerDelayInRange (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:496:11)
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4103:5)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:35131:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.153Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.153Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.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:34589 (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=16151 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:18:55.154Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.163Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed
2026-11-05T14:18:55.164Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.167Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.167Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
2026-11-05T14:18:55.167Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid promptDeadlineMs: 2147483648. Exceeds maximum JS timer delay of 2147483647 ms (~24.8 days); Node would silently compress longer delays to 1ms.
      at assertTimerDelayInRange (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:496:11)
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4103:5)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:35179:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.168Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.168Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.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:46531 (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=16166 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:18:55.169Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.174Z [INFO] [DAEMON] route=GET /capabilities durationMs=0 status=200 request completed
2026-11-05T14:18:55.175Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.176Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.176Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.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:40653 (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=16174 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:18:55.177Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.182Z [INFO] [DAEMON] route=GET /capabilities durationMs=0 status=200 request completed
2026-11-05T14:18:55.182Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.184Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.184Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.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:39321 (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=16182 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:18:55.184Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.189Z [INFO] [DAEMON] route=GET /capabilities durationMs=0 status=200 request completed
2026-11-05T14:18:55.190Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.191Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.191Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.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:34325 (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=16189 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:18:55.191Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.198Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.199Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.199Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.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:39873 (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=16198 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:18:55.200Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.205Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.206Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.206Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.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:43119 (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=16204 runQwenServeToListenMs=1
qwen serve: --require-auth enabled (bearer token mandatory on every route, including loopback /health).
2026-11-05T14:18:55.207Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.212Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.213Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.213Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.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: same-origin Web Shell HTTP requests work without --allow-origin, but WebSocket-backed features (terminal, voice) and browsers reaching the daemon through a TLS-terminating proxy still need --allow-origin <origin>. A plain-HTTP intermediary that rewrites the Host header (nginx default proxy_set_header, k8s Ingress) needs --allow-origin <origin> for the origin the browser sees, unless it forwards Host verbatim; port translation alone (ssh -L, docker -p) is fine.
qwen serve listening on http://0.0.0.0:33145 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
Local: http://127.0.0.1:33145
Network (alhp0): http://192.168.1.5:33145
HTTP is unencrypted. Use the existing TLS options for encrypted remote access.
qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli"
qwen serve: startup timing: processToListenMs=16212 runQwenServeToListenMs=1
2026-11-05T14:18:55.214Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.219Z [WARN] [DAEMON] route=GET /capabilities durationMs=0 status=401 request completed
2026-11-05T14:18:55.220Z [INFO] [DAEMON] route=GET /capabilities durationMs=0 status=200 request completed
2026-11-05T14:18:55.220Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.221Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.221Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.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:38347 (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=16219 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:18:55.222Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.227Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.228Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.228Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.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:45893 (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=16226 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:18:55.229Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.238Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.239Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.239Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.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:38083 (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=16237 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:18:55.240Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.245Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.246Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.246Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.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:44017 (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=16244 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:18:55.247Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.252Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.253Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.253Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.254Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid maxConnections: NaN. Must be >= 0 (0 / Infinity = unlimited).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:8070:11)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:35402:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.254Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.255Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.255Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid maxConnections: -5. Must be >= 0 (0 / Infinity = unlimited).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:8070:11)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:35410:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.256Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.256Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://Localhost:43843 (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=16254 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:18:55.257Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.261Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.262Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.262Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://[::1]:42987 (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=16260 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:18:55.263Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.271Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.272Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.272Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.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: same-origin Web Shell HTTP requests work without --allow-origin, but WebSocket-backed features (terminal, voice) and browsers reaching the daemon through a TLS-terminating proxy still need --allow-origin <origin>. A plain-HTTP intermediary that rewrites the Host header (nginx default proxy_set_header, k8s Ingress) needs --allow-origin <origin> for the origin the browser sees, unless it forwards Host verbatim; port translation alone (ssh -L, docker -p) is fine.
2026-11-05T14:18:55.272Z [ERROR] [DAEMON] daemon startup failed
  Error: Invalid --hostname "[2001:db8::1]:8080": brackets indicate an IPv6 literal but the value isn't a clean [addr] form. Pass the address without a trailing :port (use --port for that), e.g. "--hostname [::1] --port 4170".
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:8047:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:35460:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.274Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.274Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve listening on http://[::1]:44257 (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=16272 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:18:55.275Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.279Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.280Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.280Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.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: same-origin Web Shell HTTP requests work without --allow-origin, but WebSocket-backed features (terminal, voice) and browsers reaching the daemon through a TLS-terminating proxy still need --allow-origin <origin>. A plain-HTTP intermediary that rewrites the Host header (nginx default proxy_set_header, k8s Ingress) needs --allow-origin <origin> for the origin the browser sees, unless it forwards Host verbatim; port translation alone (ssh -L, docker -p) is fine.
2026-11-05T14:18:55.280Z [ERROR] [DAEMON] daemon startup failed
  Error: Invalid --hostname "[]": brackets indicate an IPv6 literal but the value isn't a clean [addr] form. Pass the address without a trailing :port (use --port for that), e.g. "--hostname [::1] --port 4170".
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:8047:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:35506:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.281Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.281Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.282Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:40237 (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=16284 runQwenServeToListenMs=5
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.287Z [INFO] [DAEMON] route=GET /capabilities durationMs=0 status=200 request completed
2026-11-05T14:18:55.288Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.290Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.290Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.290Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:44103 (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=16292 runQwenServeToListenMs=5
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.295Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.296Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.296Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.296Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qwen-runqwen-fs-Agw2mi secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:43767 (mode=http-bridge, workspace=/tmp/qwen-runqwen-fs-Agw2mi)
qwen serve: bound to workspace "/tmp/qwen-runqwen-fs-Agw2mi"
qwen serve: startup timing: processToListenMs=16298 runQwenServeToListenMs=5
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.303Z [INFO] [DAEMON] route=GET /file durationMs=2 status=200 request completed
2026-11-05T14:18:55.304Z [WARN] [DAEMON] route=GET /file durationMs=1 status=400 request completed
2026-11-05T14:18:55.304Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.308Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.308Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.309Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qwen-runqwen-rest-fs-IF5qwJ secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:43601 (mode=http-bridge, workspace=/tmp/qwen-runqwen-rest-fs-IF5qwJ)
qwen serve: bound to workspace "/tmp/qwen-runqwen-rest-fs-IF5qwJ"
qwen serve: startup timing: processToListenMs=16311 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: fs audit emit is the default no-op — 1 event(s) dropped so far. Latest type=fs.denied (errorKind=path_not_found intent=read pathHash=9b0cd3ab7dbdbe00). Inject deps.fsFactory in createServeApp to wire audit into the EventBus.
2026-11-05T14:18:55.314Z [WARN] [DAEMON] route=GET /file durationMs=0 status=404 request completed
2026-11-05T14:18:55.315Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.316Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.316Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.316Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qwen-runqwen-trust-4EMJ4V secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:36729 (mode=http-bridge, workspace=/tmp/qwen-runqwen-trust-4EMJ4V)
qwen serve: bound to workspace "/tmp/qwen-runqwen-trust-4EMJ4V"
qwen serve: startup timing: processToListenMs=16318 runQwenServeToListenMs=5
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.321Z [INFO] [DAEMON] route=GET /file durationMs=1 status=200 request completed
2026-11-05T14:18:55.322Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.324Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.324Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.325Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:36833 (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=16326 runQwenServeToListenMs=5
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.329Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.330Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.330Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.330Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:34733 (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=16332 runQwenServeToListenMs=5
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.334Z [INFO] [DAEMON] daemon stopped
(node:4895) PromiseRejectionHandledWarning: Promise rejection was handled asynchronously (rejection id: 872)
(Use `node --trace-warnings ...` to show where the warning was created)
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.336Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.336Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.337Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:35081 (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=16339 runQwenServeToListenMs=5
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.341Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.345Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.345Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.346Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:43547 (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=16348 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.352Z [INFO] [DAEMON] sessionId=sess-A connectReason=unknown streamId=2165424d-0f44-43ec-bca9-b969c46fd3e4 SSE stream opened
2026-11-05T14:18:55.354Z [INFO] [DAEMON] daemon stopped
2026-11-05T14:18:55.354Z [INFO] [DAEMON] sessionId=sess-A backpressureCount=0 closeReason=client_disconnect connectReason=unknown durationMs=2.3922099999999773 eventFramesWriteSettled=2 lastEventIdWritten=2 maxDrainWaitMs=0 maxLivePublishToWriteSettledMs=0 slowWarningCount=0 streamId=2165424d-0f44-43ec-bca9-b969c46fd3e4 SSE stream closed
qwen serve: bridge iterator error (session sess-A): iterator failed
qwen serve: bridge iterator error (session sess-A): iterator failed after terminal event
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.779Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.779Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.779Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:38315 (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=16782 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.785Z [INFO] [DAEMON] sessionId=subagent.cGFyZW50LTE.YWdlbnQtMQ connectReason=unknown lastEventId=7 streamId=69e99d62-6140-429a-90ff-937af94153d0 SSE stream opened
2026-11-05T14:18:55.786Z [INFO] [DAEMON] daemon stopped
2026-11-05T14:18:55.786Z [INFO] [DAEMON] sessionId=subagent.cGFyZW50LTE.YWdlbnQtMQ backpressureCount=0 closeReason=client_disconnect connectReason=unknown durationMs=1.2719429999997374 eventFramesWriteSettled=1 lastEventIdWritten=1 maxDrainWaitMs=0 maxLivePublishToWriteSettledMs=0 slowWarningCount=0 streamId=69e99d62-6140-429a-90ff-937af94153d0 SSE stream closed
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.787Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.787Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.788Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:46709 (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=16790 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.797Z [INFO] [DAEMON] sessionId=subagent.cGFyZW50LTE.YWdlbnQtMQ connectReason=unknown streamId=7a3d9865-08f0-41ae-aee6-f4fd033f4708 SSE stream opened
2026-11-05T14:18:55.798Z [INFO] [DAEMON] daemon stopped
2026-11-05T14:18:55.798Z [INFO] [DAEMON] sessionId=subagent.cGFyZW50LTE.YWdlbnQtMQ backpressureCount=0 closeReason=client_disconnect connectReason=unknown durationMs=1.258748000000196 eventFramesWriteSettled=1 lastEventIdWritten=1 maxDrainWaitMs=0 maxLivePublishToWriteSettledMs=0 slowWarningCount=0 streamId=7a3d9865-08f0-41ae-aee6-f4fd033f4708 SSE stream closed
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.800Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.800Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.800Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:38787 (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=16802 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.805Z [INFO] [DAEMON] sessionId=sess-A connectReason=unknown streamId=43035c83-8bd3-4abf-a080-09bd024306e7 SSE stream opened
2026-11-05T14:18:55.806Z [INFO] [DAEMON] daemon stopped
2026-11-05T14:18:55.806Z [INFO] [DAEMON] sessionId=sess-A backpressureCount=0 closeReason=client_disconnect connectReason=unknown durationMs=0.9552540000004228 eventFramesWriteSettled=1 lastEventIdWritten=1 maxDrainWaitMs=0 maxLivePublishToWriteSettledMs=0 slowWarningCount=0 streamId=43035c83-8bd3-4abf-a080-09bd024306e7 SSE stream closed
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.807Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.807Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.808Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:33079 (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=16810 runQwenServeToListenMs=5
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.812Z [INFO] [DAEMON] sessionId=sess-A connectReason=unknown streamId=792e1df5-49ad-4e40-9e3a-daafa8306116 SSE stream opened
2026-11-05T14:18:55.813Z [INFO] [DAEMON] daemon stopped
2026-11-05T14:18:55.813Z [INFO] [DAEMON] sessionId=sess-A backpressureCount=0 closeReason=client_disconnect connectReason=unknown durationMs=0.9261589999987336 eventFramesWriteSettled=1 lastEventIdWritten=1 maxDrainWaitMs=0 maxLivePublishToWriteSettledMs=0 slowWarningCount=0 streamId=792e1df5-49ad-4e40-9e3a-daafa8306116 SSE stream closed
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.814Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.814Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.815Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:45395 (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=16816 runQwenServeToListenMs=5
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.819Z [INFO] [DAEMON] sessionId=sess-A connectReason=unknown streamId=7f5d61e3-f7e9-4c22-a9e8-95ff22da4648 SSE stream opened
2026-11-05T14:18:55.820Z [INFO] [DAEMON] daemon stopped
2026-11-05T14:18:55.820Z [INFO] [DAEMON] sessionId=sess-A backpressureCount=0 closeReason=client_disconnect connectReason=unknown durationMs=0.8061329999982263 eventFramesWriteSettled=1 lastEventIdWritten=1 maxDrainWaitMs=0 maxLivePublishToWriteSettledMs=1792653767929 slowWarningCount=0 streamId=7f5d61e3-f7e9-4c22-a9e8-95ff22da4648 SSE stream closed
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.821Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.821Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.822Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:42089 (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=16823 runQwenServeToListenMs=5
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.826Z [INFO] [DAEMON] sessionId=sess-A connectReason=unknown lastEventId=17 streamId=248938bd-0c9f-4be9-8411-dc45b10f9649 SSE stream opened
2026-11-05T14:18:55.827Z [INFO] [DAEMON] daemon stopped
2026-11-05T14:18:55.827Z [INFO] [DAEMON] sessionId=sess-A backpressureCount=0 closeReason=client_disconnect connectReason=unknown durationMs=0.8962929999979679 eventFramesWriteSettled=1 lastEventIdWritten=42 maxDrainWaitMs=0 maxLivePublishToWriteSettledMs=0 slowWarningCount=0 streamId=248938bd-0c9f-4be9-8411-dc45b10f9649 SSE stream closed
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.831Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.832Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.832Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:43539 (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=16834 runQwenServeToListenMs=9
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.838Z [INFO] [DAEMON] sessionId=sess-A connectReason=unknown lastEventId=17 streamId=3751c2a5-8828-403f-8175-f329a1972999 SSE stream opened
2026-11-05T14:18:55.839Z [INFO] [DAEMON] daemon stopped
2026-11-05T14:18:55.839Z [INFO] [DAEMON] sessionId=sess-A backpressureCount=0 closeReason=client_disconnect connectReason=unknown durationMs=1.2490399999987858 eventFramesWriteSettled=1 lastEventIdWritten=1 maxDrainWaitMs=0 maxLivePublishToWriteSettledMs=0 slowWarningCount=0 streamId=3751c2a5-8828-403f-8175-f329a1972999 SSE stream closed
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.840Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.840Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.841Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:43719 (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=16844 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: rejected X-Qwen-Event-Epoch not a valid token! (expected [A-Za-z0-9_-]{1,64})
2026-11-05T14:18:55.847Z [INFO] [DAEMON] sessionId=sess-A connectReason=unknown lastEventId=17 streamId=e03d04df-4fef-4a09-8fe8-62ab6747ee41 SSE stream opened
2026-11-05T14:18:55.847Z [INFO] [DAEMON] daemon stopped
2026-11-05T14:18:55.848Z [INFO] [DAEMON] sessionId=sess-A backpressureCount=0 closeReason=client_disconnect connectReason=unknown durationMs=0.9950000000026193 eventFramesWriteSettled=1 lastEventIdWritten=1 maxDrainWaitMs=0 maxLivePublishToWriteSettledMs=0 slowWarningCount=0 streamId=e03d04df-4fef-4a09-8fe8-62ab6747ee41 SSE stream closed
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.848Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.848Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.849Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:37513 (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=16851 runQwenServeToListenMs=5
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.854Z [INFO] [DAEMON] sessionId=sess-A connectReason=unknown streamId=f0b6e1e3-6995-44e8-9d9a-5782823f14cb SSE stream opened
2026-11-05T14:18:55.854Z [INFO] [DAEMON] daemon stopped
2026-11-05T14:18:55.855Z [INFO] [DAEMON] sessionId=sess-A backpressureCount=0 closeReason=client_disconnect connectReason=unknown durationMs=0.8209910000005038 eventFramesWriteSettled=1 lastEventIdWritten=1 maxDrainWaitMs=0 maxLivePublishToWriteSettledMs=0 slowWarningCount=0 streamId=f0b6e1e3-6995-44e8-9d9a-5782823f14cb SSE stream closed
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.855Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.855Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.856Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:35397 (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=16858 runQwenServeToListenMs=5
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.861Z [INFO] [DAEMON] sessionId=sess-A connectReason=unknown streamId=942d0fae-aab3-4b79-9307-ea3bc1dc9cb1 SSE stream opened
2026-11-05T14:18:55.861Z [INFO] [DAEMON] daemon stopped
2026-11-05T14:18:55.861Z [INFO] [DAEMON] sessionId=sess-A backpressureCount=0 closeReason=client_disconnect connectReason=unknown durationMs=0.7692740000020422 eventFramesWriteSettled=1 lastEventIdWritten=1 maxDrainWaitMs=0 maxLivePublishToWriteSettledMs=0 slowWarningCount=0 streamId=942d0fae-aab3-4b79-9307-ea3bc1dc9cb1 SSE stream closed
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.862Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.862Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.863Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:34079 (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=16865 runQwenServeToListenMs=5
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.870Z [INFO] [DAEMON] sessionId=sess-A connectReason=unknown streamId=5f27716c-08e1-4374-a12a-60bae6bc2939 SSE stream opened
2026-11-05T14:18:55.871Z [INFO] [DAEMON] daemon stopped
2026-11-05T14:18:55.872Z [INFO] [DAEMON] sessionId=sess-A backpressureCount=0 closeReason=client_disconnect connectReason=unknown durationMs=1.1589490000005753 eventFramesWriteSettled=1 lastEventIdWritten=1 maxDrainWaitMs=0 maxLivePublishToWriteSettledMs=0 slowWarningCount=0 streamId=5f27716c-08e1-4374-a12a-60bae6bc2939 SSE stream closed
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.873Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.873Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.873Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:34145 (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=16875 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: rejected ?maxQueued "" (not a decimal integer)
2026-11-05T14:18:55.879Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=0 status=400 request completed
2026-11-05T14:18:55.879Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.880Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.880Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.881Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:42279 (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=16883 runQwenServeToListenMs=5
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: rejected ?maxQueued "abc" (not a decimal integer)
2026-11-05T14:18:55.886Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=0 status=400 request completed
2026-11-05T14:18:55.886Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.887Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.887Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.888Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:38321 (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=16890 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: rejected ?maxQueued "0" (outside [16, 2048])
2026-11-05T14:18:55.893Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=0 status=400 request completed
qwen serve: rejected ?maxQueued "15" (outside [16, 2048])
2026-11-05T14:18:55.894Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=0 status=400 request completed
qwen serve: rejected ?maxQueued "2049" (outside [16, 2048])
2026-11-05T14:18:55.894Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=0 status=400 request completed
qwen serve: rejected ?maxQueued "9999" (outside [16, 2048])
2026-11-05T14:18:55.895Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=0 status=400 request completed
2026-11-05T14:18:55.895Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.896Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.896Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.897Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:39299 (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=16899 runQwenServeToListenMs=5
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.905Z [WARN] [DAEMON] route=GET /session/missing/events sessionId=missing durationMs=1 status=404 request completed
2026-11-05T14:18:55.905Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.962Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.962Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.963Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:40431 (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=16965 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.968Z [INFO] [DAEMON] sessionId=sess-A connectReason=unknown streamId=30c018d5-d167-408e-807a-b482d2e3cf5f SSE stream opened
qwen serve: bridge iterator error (session sess-A): agent died
2026-11-05T14:18:55.968Z [INFO] [DAEMON] sessionId=sess-A backpressureCount=0 closeReason=iterator_error connectReason=unknown durationMs=0.20532800000000861 eventFramesWriteSettled=2 lastEventIdWritten=1 maxDrainWaitMs=0 maxLivePublishToWriteSettledMs=0 slowWarningCount=0 streamId=30c018d5-d167-408e-807a-b482d2e3cf5f SSE stream closed
2026-11-05T14:18:55.969Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:55.971Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:55.971Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:55.971Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:42193 (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=16974 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:55.977Z [INFO] [DAEMON] sessionId=sess-A connectReason=unknown streamId=53be0b31-c6fd-4ffc-8ff4-7473bc8b0fa5 SSE stream opened
qwen serve: bridge iterator error (session sess-A): AcpSessionBridge initialize timed out after 5000ms [init_timeout]
2026-11-05T14:18:55.977Z [INFO] [DAEMON] sessionId=sess-A backpressureCount=0 closeReason=iterator_error connectReason=unknown durationMs=0.23914199999853736 eventFramesWriteSettled=2 lastEventIdWritten=1 maxDrainWaitMs=0 maxLivePublishToWriteSettledMs=0 slowWarningCount=0 streamId=53be0b31-c6fd-4ffc-8ff4-7473bc8b0fa5 SSE stream closed
2026-11-05T14:18:55.977Z [INFO] [DAEMON] daemon stopped
qwen serve listening on http://127.0.0.1:44819 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
2026-11-05T14:18:55.985Z [INFO] [DAEMON] daemon stopped
2026-11-05T14:18:55.985Z [INFO] [DAEMON] sessionId=sess-A backpressureCount=0 closeReason=client_disconnect connectReason=unknown durationMs=1.114175000002433 eventFramesWriteSettled=1 maxDrainWaitMs=0 maxLivePublishToWriteSettledMs=0 slowWarningCount=0 streamId=6e297d3a-6e88-48cf-9d7f-c9988cb3f7b3 SSE stream closed
qwen serve listening on http://127.0.0.1:34581 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
2026-11-05T14:18:55.997Z [INFO] [DAEMON] daemon stopped
2026-11-05T14:18:55.997Z [INFO] [DAEMON] sessionId=sess-A backpressureCount=0 closeReason=client_disconnect connectReason=unknown durationMs=1.2367469999990135 eventFramesWriteSettled=1 maxDrainWaitMs=0 maxLivePublishToWriteSettledMs=0 slowWarningCount=0 streamId=9efe72a8-1474-4fbf-9a9c-a547dbf76d58 SSE stream closed
qwen serve listening on http://127.0.0.1:39637 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
2026-11-05T14:18:56.006Z [INFO] [DAEMON] daemon stopped
qwen serve listening on http://127.0.0.1:40095 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli)
2026-11-05T14:18:56.013Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:56.015Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:56.015Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:56.015Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:45111 (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=17017 runQwenServeToListenMs=5
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:56.020Z [INFO] [DAEMON] sessionId=sess-A connectReason=unknown lastEventId=17 streamId=6895e4f4-8f8c-48eb-b794-873784c0f1f5 SSE stream opened
2026-11-05T14:18:56.020Z [INFO] [DAEMON] sessionId=sess-A backpressureCount=0 closeReason=source_complete connectReason=unknown durationMs=0.1653230000010808 eventFramesWriteSettled=0 maxDrainWaitMs=0 maxLivePublishToWriteSettledMs=0 slowWarningCount=0 streamId=6895e4f4-8f8c-48eb-b794-873784c0f1f5 SSE stream closed
2026-11-05T14:18:56.021Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:56.022Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:56.022Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:56.022Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:41351 (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=17025 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: rejected Last-Event-ID "abc" (not a decimal integer)
2026-11-05T14:18:56.028Z [INFO] [DAEMON] sessionId=sess-A connectReason=unknown streamId=d0ff4c9e-2c1c-4949-b4e3-09a0775a6361 SSE stream opened
2026-11-05T14:18:56.028Z [INFO] [DAEMON] sessionId=sess-A backpressureCount=0 closeReason=source_complete connectReason=unknown durationMs=0.15295899999910034 eventFramesWriteSettled=0 maxDrainWaitMs=0 maxLivePublishToWriteSettledMs=0 slowWarningCount=0 streamId=d0ff4c9e-2c1c-4949-b4e3-09a0775a6361 SSE stream closed
qwen serve: rejected Last-Event-ID "-1" (not a decimal integer)
2026-11-05T14:18:56.029Z [INFO] [DAEMON] sessionId=sess-A connectReason=unknown streamId=b5e884ff-f1d4-4869-90c1-91a68cd40b68 SSE stream opened
2026-11-05T14:18:56.029Z [INFO] [DAEMON] sessionId=sess-A backpressureCount=0 closeReason=source_complete connectReason=unknown durationMs=0.16313799999988987 eventFramesWriteSettled=0 maxDrainWaitMs=0 maxLivePublishToWriteSettledMs=0 slowWarningCount=0 streamId=b5e884ff-f1d4-4869-90c1-91a68cd40b68 SSE stream closed
qwen serve: rejected Last-Event-ID "1.5e10z" (not a decimal integer)
2026-11-05T14:18:56.029Z [INFO] [DAEMON] sessionId=sess-A connectReason=unknown streamId=8285b244-e51c-41b4-a58d-f45598a828b2 SSE stream opened
2026-11-05T14:18:56.030Z [INFO] [DAEMON] sessionId=sess-A backpressureCount=0 closeReason=source_complete connectReason=unknown durationMs=0.20346500000232481 eventFramesWriteSettled=0 maxDrainWaitMs=0 maxLivePublishToWriteSettledMs=0 slowWarningCount=0 streamId=8285b244-e51c-41b4-a58d-f45598a828b2 SSE stream closed
2026-11-05T14:18:56.030Z [INFO] [DAEMON] daemon stopped
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: fs audit emit is the default no-op — 1 event(s) dropped so far. Latest type=fs.access (intent=list pathHash=6566bb72cdde37ed). 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=c25343f553453d09). Inject deps.fsFactory in createServeApp to wire audit into the EventBus.
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=51fd47f0... clientId=- status=started expiresInMs=600000
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=1284ad45... clientId=- status=started expiresInMs=600000
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=ad278d69... clientId=- status=started expiresInMs=600000
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=ad278d69... clientId=- status=cancelled
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=12a3590d... clientId=- status=started expiresInMs=600000
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=2881bfa1... clientId=sdk-A status=started expiresInMs=600000
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=2881bfa1... clientId=sdk-B status=started hint="take-over (per-provider singleton; original initiator=sdk-A)"
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=5d8f4014... clientId=- status=started expiresInMs=600000
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=0e072446... clientId=- status=started expiresInMs=600000
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=2a5403b1... clientId=- status=started expiresInMs=600000
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=2a5403b1... clientId=- status=cancelled
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=68983d2b... clientId=- status=started expiresInMs=600000
qwen serve: model-provider ACP child sync failed
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=b3cbf63d... clientId=sdk-A status=started expiresInMs=600000
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=f09dd2ce... clientId=- status=started expiresInMs=600000
[serve] auth.device-flow: provider=qwen-oauth deviceFlowId=101e283e... clientId=- status=started expiresInMs=600000
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:56.479Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:56.479Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:56.479Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:34963 (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=17481 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:56.484Z [INFO] [DAEMON] sessionId=sess-A promptId=dc61969c-678c-4c1d-9de2-5365eeee643c prompt enqueued
2026-11-05T14:18:56.485Z [INFO] [DAEMON] route=POST /session/sess-A/prompt sessionId=sess-A durationMs=0 status=202 request completed
2026-11-05T14:18:56.685Z [INFO] [DAEMON] daemon stopped
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: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:57.067Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:57.067Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:57.068Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:40271 (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=18070 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:57.074Z [INFO] [DAEMON] sessionId=sess-A connectReason=unknown streamId=20a16cf5-3a13-4bc7-9fa1-958a11ea3bde SSE stream opened
2026-11-05T14:18:57.324Z [WARN] [DAEMON] sessionId=sess-A connectReason=unknown idleForMs=250 streamId=20a16cf5-3a13-4bc7-9fa1-958a11ea3bde timeoutMs=200 SSE writer idle timeout
2026-11-05T14:18:57.324Z [INFO] [DAEMON] sessionId=sess-A backpressureCount=0 closeReason=writer_idle_timeout connectReason=unknown durationMs=250.53818500000125 eventFramesWriteSettled=1 maxDrainWaitMs=0 maxLivePublishToWriteSettledMs=0 slowWarningCount=0 streamId=20a16cf5-3a13-4bc7-9fa1-958a11ea3bde terminalEventType=client_evicted SSE stream closed
2026-11-05T14:18:57.325Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:57.326Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:57.326Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:57.327Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:33837 (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=18330 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:57.337Z [INFO] [DAEMON] sessionId=sess-A connectReason=unknown streamId=826def2d-e01d-44c0-ab6c-82b5dcfa1472 SSE stream opened
2026-11-05T14:18:57.948Z [INFO] [DAEMON] daemon stopped
2026-11-05T14:18:57.949Z [INFO] [DAEMON] sessionId=sess-A backpressureCount=0 closeReason=client_disconnect connectReason=unknown durationMs=612.0995340000009 eventFramesWriteSettled=1 lastEventIdWritten=1 maxDrainWaitMs=0 maxLivePublishToWriteSettledMs=0 slowWarningCount=0 streamId=826def2d-e01d-44c0-ab6c-82b5dcfa1472 SSE stream closed
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:57.950Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:57.950Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:57.951Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:38713 (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=18954 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:57.957Z [INFO] [DAEMON] sessionId=sess-A connectReason=unknown streamId=b4f69803-ca6c-48ff-972b-9f78c62c9f79 SSE stream opened
2026-11-05T14:18:58.669Z [INFO] [DAEMON] daemon stopped
2026-11-05T14:18:58.669Z [INFO] [DAEMON] sessionId=sess-A backpressureCount=0 closeReason=client_disconnect connectReason=unknown durationMs=711.9875390000016 eventFramesWriteSettled=5 lastEventIdWritten=5 maxDrainWaitMs=0 maxLivePublishToWriteSettledMs=0 slowWarningCount=0 streamId=b4f69803-ca6c-48ff-972b-9f78c62c9f79 SSE stream closed
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:18:58.672Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:18:58.672Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-server-suite-1tutnk/runtime/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:18:58.672Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:33033 (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=19675 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:18:58.678Z [INFO] [DAEMON] sessionId=sess-A connectReason=unknown streamId=668c8a8e-91b8-4bdf-9fae-0e64ada702d0 SSE stream opened
2026-11-05T14:18:59.039Z [INFO] [DAEMON] daemon stopped
2026-11-05T14:18:59.040Z [INFO] [DAEMON] sessionId=sess-A backpressureCount=1 closeReason=client_disconnect connectReason=unknown durationMs=361.46980399999666 eventFramesWriteSettled=1 lastEventIdWritten=1 maxDrainWaitMs=149.98256500000207 maxLivePublishToWriteSettledMs=0 slowWarningCount=0 streamId=668c8a8e-91b8-4bdf-9fae-0e64ada702d0 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:40656:15)
    at Object.spawnOrAttach (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:2401:28)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:3191:44
    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:607: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: Conversations runtime boot failed: The Conversations root could not be verified. <- /private/root changed
qwen serve: Conversations runtime boot failed: The Conversations runtime is temporarily unavailable. <- /private/runtime publication failed
qwen serve: bridge error (POST /session/:id/load session=live-active-root): Error: Active Live session is outside its isolated conversation directory.
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:4035:23
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
    at SessionArchiveCoordinator.runSharedMany (/startdir/src/qwen-code/packages/cli/src/serve/server/session-archive.ts:200:14)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:3809:25
qwen serve: Conversations runtime boot failed: The Conversations runtime is temporarily unavailable. <- boot publication failed
qwen serve: Conversations runtime boot failed: task handler bind failed
qwen serve: Conversations runtime boot failed: Live Voice is shutting down.
qwen serve: Conversations runtime boot failed: speech handler bind failed
qwen serve: Conversations runtime boot failed: Live Voice is shutting down.
qwen serve: Conversations runtime boot failed: Live Voice is shutting down.
qwen serve: Conversations runtime boot failed: The Conversations root could not be verified. <- runtime unavailable
qwen serve: Conversations runtime boot failed: Live Voice is shutting down.
 ✓ src/serve/server.test.ts (1276 tests) 17458ms
   ✓ createServeApp > GET /workspace/:id/sessions > refreshes after TTL when a file changes after the scan already read it  2053ms
   ✓ createServeApp > GET /workspace/:id/sessions > reports organized session truncation in the response  1101ms
   ✓ T2.9 SSE writer idle timeout (issue #4514) > does not evict when the writer idle timeout is unset (legacy contract)  624ms
   ✓ T2.9 SSE writer idle timeout (issue #4514) > does NOT evict when active writes keep refreshing lastWriteAt (#4514 T2.9 wenshao review)  721ms
   ✓ T2.9 SSE writer idle timeout (issue #4514) > does NOT evict when a back-pressured write drains within the idle budget  370ms
qwen serve: getMcpClientAccounting failed: manager.getMcpClientAccounting is not a function
qwen serve: getMcpClientAccounting failed: manager.getMcpClientAccounting is not a function
qwen serve: getMcpClientAccounting failed: manager.getMcpClientAccounting is not a function
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 (700 tests) 47793ms
 ✓ src/commands/review/compose-review.test.ts (738 tests) 4326ms
   ✓ composeReview — fixedFindings > escapeTagOpeners — tag openers go inert; code spans, autolinks, comparisons and comment grammar stay (#9940 review, audit 5 and 6)  757ms
   ✓ convergence telemetry — volume, carried in the marker > clamps the count at its origin, so every surface agrees  1848ms
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:19:59.902Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:19:59.902Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /build/.qwen/debug/daemon/daemon.log
2026-11-05T14:19:59.922Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-live-task-keepalive-amnxxu/workspace secondary= daemon workspace roots initialized
2026-11-05T14:19:59.954Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: bound to workspace "/tmp/qws-live-task-keepalive-amnxxu/workspace"
qwen serve: startup timing: processToListenMs=1729 runQwenServeToListenMs=59
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve listening on http://127.0.0.1:40317 (mode=http-bridge, workspace=/tmp/qws-live-task-keepalive-amnxxu/workspace)
2026-11-05T14:20:00.012Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:00.015Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:00.015Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /build/.qwen/debug/daemon/daemon.log
2026-11-05T14:20:00.016Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-conversations-marker-t6RMKA/workspace secondary= daemon workspace roots initialized
2026-11-05T14:20:00.022Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:34669 (mode=http-bridge, workspace=/tmp/qws-conversations-marker-t6RMKA/workspace)
qwen serve: bound to workspace "/tmp/qws-conversations-marker-t6RMKA/workspace"
qwen serve: startup timing: processToListenMs=1797 runQwenServeToListenMs=9
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:00.073Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:00.077Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:00.077Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:00.079Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-skill-settings-I2NNS8 secondary= daemon workspace roots initialized
2026-11-05T14:20:00.086Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: bound to workspace "/tmp/qws-skill-settings-I2NNS8"
qwen serve: startup timing: processToListenMs=1860 runQwenServeToListenMs=11
qwen serve listening on http://127.0.0.1:40107 (mode=http-bridge, workspace=/tmp/qws-skill-settings-I2NNS8)
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:00.096Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:00.098Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:00.098Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:00.099Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-skill-dual-zPf4KE secondary= daemon workspace roots initialized
2026-11-05T14:20:00.104Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:43695 (mode=http-bridge, workspace=/tmp/qws-skill-dual-zPf4KE)
qwen serve: bound to workspace "/tmp/qws-skill-dual-zPf4KE"
qwen serve: startup timing: processToListenMs=1879 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:00.107Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:00.109Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:00.109Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:00.110Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-skill-batch-zRGUBt secondary= daemon workspace roots initialized
2026-11-05T14:20:00.114Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:36781 (mode=http-bridge, workspace=/tmp/qws-skill-batch-zRGUBt)
qwen serve: bound to workspace "/tmp/qws-skill-batch-zRGUBt"
qwen serve: startup timing: processToListenMs=1888 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:00.119Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:01.762Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:01.762Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-dl-8gxdzm/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:20:01.763Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-dl-8gxdzm secondary= daemon workspace roots initialized
2026-11-05T14:20:01.770Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:40281 (mode=http-bridge, workspace=/tmp/qws-dl-8gxdzm)
qwen serve: bound to workspace "/tmp/qws-dl-8gxdzm"
qwen serve: startup timing: processToListenMs=3544 runQwenServeToListenMs=19
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:01.855Z [WARN] [DAEMON] route=GET /missing-0 durationMs=6 status=404 request completed
2026-11-05T14:20:01.859Z [WARN] [DAEMON] route=GET /missing-1 durationMs=2 status=404 request completed
2026-11-05T14:20:01.860Z [WARN] [DAEMON] route=GET /missing-2 durationMs=0 status=404 request completed
2026-11-05T14:20:01.860Z [WARN] [DAEMON] route=GET /missing-3 durationMs=0 status=404 request completed
2026-11-05T14:20:01.861Z [WARN] [DAEMON] route=GET /missing-4 durationMs=0 status=404 request completed
2026-11-05T14:20:01.861Z [WARN] [DAEMON] route=GET /missing-5 durationMs=0 status=404 request completed
2026-11-05T14:20:01.862Z [WARN] [DAEMON] route=GET /missing-6 durationMs=0 status=404 request completed
2026-11-05T14:20:01.862Z [WARN] [DAEMON] route=GET /missing-7 durationMs=0 status=404 request completed
2026-11-05T14:20:01.863Z [WARN] [DAEMON] route=GET /missing-8 durationMs=0 status=404 request completed
2026-11-05T14:20:01.863Z [WARN] [DAEMON] route=GET /missing-9 durationMs=0 status=404 request completed
2026-11-05T14:20:01.864Z [WARN] [DAEMON] route=GET /missing-10 durationMs=0 status=404 request completed
2026-11-05T14:20:01.865Z [WARN] [DAEMON] route=GET /missing-11 durationMs=0 status=404 request completed
2026-11-05T14:20:01.865Z [WARN] [DAEMON] route=GET /missing-12 durationMs=0 status=404 request completed
2026-11-05T14:20:01.865Z [WARN] [DAEMON] route=GET /missing-13 durationMs=0 status=404 request completed
2026-11-05T14:20:01.866Z [WARN] [DAEMON] route=GET /missing-14 durationMs=0 status=404 request completed
2026-11-05T14:20:01.867Z [WARN] [DAEMON] route=GET /missing-15 durationMs=0 status=404 request completed
2026-11-05T14:20:01.867Z [WARN] [DAEMON] route=GET /missing-16 durationMs=0 status=404 request completed
2026-11-05T14:20:01.868Z [WARN] [DAEMON] route=GET /missing-17 durationMs=0 status=404 request completed
2026-11-05T14:20:01.868Z [WARN] [DAEMON] route=GET /missing-18 durationMs=0 status=404 request completed
2026-11-05T14:20:01.869Z [WARN] [DAEMON] route=GET /missing-19 durationMs=0 status=404 request completed
2026-11-05T14:20:01.869Z [WARN] [DAEMON] route=GET /missing-20 durationMs=0 status=404 request completed
2026-11-05T14:20:01.870Z [WARN] [DAEMON] route=GET /missing-21 durationMs=0 status=404 request completed
2026-11-05T14:20:01.870Z [WARN] [DAEMON] route=GET /missing-22 durationMs=0 status=404 request completed
2026-11-05T14:20:01.871Z [WARN] [DAEMON] route=GET /missing-23 durationMs=0 status=404 request completed
2026-11-05T14:20:01.871Z [WARN] [DAEMON] route=GET /missing-24 durationMs=0 status=404 request completed
2026-11-05T14:20:01.872Z [WARN] [DAEMON] route=GET /missing-25 durationMs=0 status=404 request completed
2026-11-05T14:20:01.872Z [WARN] [DAEMON] route=GET /missing-26 durationMs=0 status=404 request completed
2026-11-05T14:20:01.873Z [WARN] [DAEMON] route=GET /missing-27 durationMs=0 status=404 request completed
2026-11-05T14:20:01.873Z [WARN] [DAEMON] route=GET /missing-28 durationMs=0 status=404 request completed
2026-11-05T14:20:01.874Z [WARN] [DAEMON] route=GET /missing-29 durationMs=0 status=404 request completed
2026-11-05T14:20:01.874Z [WARN] [DAEMON] route=GET /missing-30 durationMs=0 status=404 request completed
2026-11-05T14:20:01.875Z [WARN] [DAEMON] route=GET /missing-31 durationMs=0 status=404 request completed
2026-11-05T14:20:01.875Z [WARN] [DAEMON] route=GET /missing-32 durationMs=0 status=404 request completed
2026-11-05T14:20:01.935Z [WARN] [DAEMON] route=GET /missing-33 durationMs=1 status=404 request completed
2026-11-05T14:20:01.935Z [WARN] [DAEMON] route=GET /missing-34 durationMs=0 status=404 request completed
2026-11-05T14:20:01.936Z [WARN] [DAEMON] route=GET /missing-35 durationMs=0 status=404 request completed
2026-11-05T14:20:01.936Z [WARN] [DAEMON] route=GET /missing-36 durationMs=0 status=404 request completed
2026-11-05T14:20:01.937Z [WARN] [DAEMON] route=GET /missing-37 durationMs=0 status=404 request completed
2026-11-05T14:20:01.937Z [WARN] [DAEMON] route=GET /missing-38 durationMs=0 status=404 request completed
2026-11-05T14:20:01.937Z [WARN] [DAEMON] route=GET /missing-39 durationMs=0 status=404 request completed
2026-11-05T14:20:01.938Z [WARN] [DAEMON] route=GET /missing-40 durationMs=0 status=404 request completed
2026-11-05T14:20:01.938Z [WARN] [DAEMON] route=GET /missing-41 durationMs=0 status=404 request completed
2026-11-05T14:20:01.938Z [WARN] [DAEMON] route=GET /missing-42 durationMs=0 status=404 request completed
2026-11-05T14:20:01.939Z [WARN] [DAEMON] route=GET /missing-43 durationMs=0 status=404 request completed
2026-11-05T14:20:01.939Z [WARN] [DAEMON] route=GET /missing-44 durationMs=0 status=404 request completed
2026-11-05T14:20:01.940Z [WARN] [DAEMON] route=GET /missing-45 durationMs=0 status=404 request completed
2026-11-05T14:20:01.940Z [WARN] [DAEMON] route=GET /missing-46 durationMs=0 status=404 request completed
2026-11-05T14:20:01.940Z [WARN] [DAEMON] route=GET /missing-47 durationMs=0 status=404 request completed
2026-11-05T14:20:01.941Z [WARN] [DAEMON] route=GET /missing-48 durationMs=0 status=404 request completed
2026-11-05T14:20:01.941Z [WARN] [DAEMON] route=GET /missing-49 durationMs=0 status=404 request completed
2026-11-05T14:20:01.941Z [WARN] [DAEMON] route=GET /missing-50 durationMs=0 status=404 request completed
2026-11-05T14:20:01.942Z [WARN] [DAEMON] route=GET /missing-51 durationMs=0 status=404 request completed
2026-11-05T14:20:01.942Z [WARN] [DAEMON] route=GET /missing-52 durationMs=0 status=404 request completed
2026-11-05T14:20:01.943Z [WARN] [DAEMON] route=GET /missing-53 durationMs=0 status=404 request completed
2026-11-05T14:20:01.943Z [WARN] [DAEMON] route=GET /missing-54 durationMs=0 status=404 request completed
2026-11-05T14:20:01.943Z [WARN] [DAEMON] route=GET /missing-55 durationMs=0 status=404 request completed
2026-11-05T14:20:01.944Z [WARN] [DAEMON] route=GET /missing-56 durationMs=0 status=404 request completed
2026-11-05T14:20:01.944Z [WARN] [DAEMON] route=GET /missing-57 durationMs=0 status=404 request completed
2026-11-05T14:20:01.944Z [WARN] [DAEMON] route=GET /missing-58 durationMs=0 status=404 request completed
2026-11-05T14:20:01.945Z [WARN] [DAEMON] route=GET /missing-59 durationMs=0 status=404 request completed
2026-11-05T14:20:01.949Z [WARN] [DAEMON] status2xx=0 status3xx=0 status4xx=10 status5xx=0 statusOther=0 suppressed=10 access logs suppressed
2026-11-05T14:20:01.949Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:01.959Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:01.959Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.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:42215 (mode=http-bridge, workspace=/tmp/qws-tv-pibiz3)
qwen serve: bound to workspace "/tmp/qws-tv-pibiz3"
qwen serve: startup timing: processToListenMs=3734 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: runtime startup failed: Invalid telemetry configuration: Invalid QWEN_TELEMETRY_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH: must be a positive integer no greater than 104857600, got ''.
2026-11-05T14:20:01.961Z [ERROR] [DAEMON] runtime startup failed
  Error: Invalid telemetry configuration: Invalid QWEN_TELEMETRY_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH: must be a positive integer no greater than 104857600, got ''.
      at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4950:15)
2026-11-05T14:20:01.972Z [ERROR] [DAEMON] daemon startup failed
  Error: Invalid telemetry configuration: Invalid QWEN_TELEMETRY_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH: must be a positive integer no greater than 104857600, got ''.
      at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4950:15)
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:01.975Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:01.975Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-ws-b9uD2g/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:34675 (mode=http-bridge, workspace=/tmp/qws-ws-b9uD2g/primary)
qwen serve: bound to workspace "/tmp/qws-ws-b9uD2g/primary"
qwen serve: startup timing: processToListenMs=3749 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:01.976Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-b9uD2g/primary secondary= daemon workspace roots initialized
2026-11-05T14:20:01.983Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:01.989Z [INFO] [DAEMON] route=GET /capabilities durationMs=4 status=200 request completed
qwen serve: fs audit emit is the default no-op — 1 event(s) dropped so far. Latest type=fs.access (intent=write pathHash=5e7a4e000af7df1e). Inject deps.fsFactory in createServeApp to wire audit into the EventBus.
qwen serve: fs audit emit is the default no-op — 1 event(s) dropped so far. Latest type=fs.access (intent=write pathHash=d2df864776ba684b). Inject deps.fsFactory in createServeApp to wire audit into the EventBus.
2026-11-05T14:20:02.045Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.049Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.049Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-runtime-drain-CRQ6nD/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:44713 (mode=http-bridge, workspace=/tmp/qws-runtime-drain-CRQ6nD/primary)
qwen serve: bound to workspace "/tmp/qws-runtime-drain-CRQ6nD/primary"
qwen serve: startup timing: processToListenMs=3824 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.050Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-drain-CRQ6nD/primary secondary= daemon workspace roots initialized
2026-11-05T14:20:02.056Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.057Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.059Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.059Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-injected-fs-Ab566U/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:41097 (mode=http-bridge, workspace=/tmp/qws-injected-fs-Ab566U/workspace)
qwen serve: bound to workspace "/tmp/qws-injected-fs-Ab566U/workspace"
qwen serve: startup timing: processToListenMs=3833 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.060Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-injected-fs-Ab566U/workspace secondary= daemon workspace roots initialized
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.065Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:02.066Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.071Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.071Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-voice-capability-5JDRQl/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:37687 (mode=http-bridge, workspace=/tmp/qws-voice-capability-5JDRQl/workspace)
qwen serve: bound to workspace "/tmp/qws-voice-capability-5JDRQl/workspace"
qwen serve: startup timing: processToListenMs=3846 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.072Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-voice-capability-5JDRQl/workspace secondary= daemon workspace roots initialized
2026-11-05T14:20:02.077Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.078Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed
2026-11-05T14:20:02.081Z [INFO] [DAEMON] route=GET /capabilities durationMs=2 status=200 request completed
2026-11-05T14:20:02.081Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.083Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.083Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-hot-remove-tSILYg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:41805 (mode=http-bridge, workspace=/tmp/qws-hot-remove-tSILYg/primary)
qwen serve: bound to workspace "/tmp/qws-hot-remove-tSILYg/primary"
qwen serve: startup timing: processToListenMs=3858 runQwenServeToListenMs=1
2026-11-05T14:20:02.085Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-hot-remove-tSILYg/primary secondary= daemon workspace roots initialized
2026-11-05T14:20:02.090Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.098Z [INFO] [DAEMON] route=POST /workspaces durationMs=6 status=201 request completed
qwen serve: fs audit emit is the default no-op — 1 event(s) dropped so far. Latest type=fs.access (intent=write pathHash=83e1a2b72cf46a4c). Inject deps.fsFactory in createServeApp to wire audit into the EventBus.
2026-11-05T14:20:02.101Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed
2026-11-05T14:20:02.103Z [INFO] [DAEMON] route=DELETE /workspaces/1c8e3106b137900e durationMs=1 status=200 request completed
2026-11-05T14:20:02.104Z [INFO] [DAEMON] route=GET /capabilities durationMs=0 status=200 request completed
2026-11-05T14:20:02.106Z [INFO] [DAEMON] route=POST /workspaces durationMs=1 status=201 request completed
qwen serve: fs audit emit is the default no-op — 1 event(s) dropped so far. Latest type=fs.access (intent=write pathHash=3fcb9468212a0e11). Inject deps.fsFactory in createServeApp to wire audit into the EventBus.
2026-11-05T14:20:02.159Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.163Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.163Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-runtime-failure-6F1cK5/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:36337 (mode=http-bridge, workspace=/tmp/qws-runtime-failure-6F1cK5/primary)
qwen serve: bound to workspace "/tmp/qws-runtime-failure-6F1cK5/primary"
qwen serve: startup timing: processToListenMs=3937 runQwenServeToListenMs=2
2026-11-05T14:20:02.164Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-failure-6F1cK5/primary secondary= daemon workspace roots initialized
2026-11-05T14:20:02.170Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: POST /workspaces failed for /tmp/qws-runtime-failure-6F1cK5/secondary: workspace service construction failed
2026-11-05T14:20:02.177Z [WARN] [DAEMON] route=POST /workspaces durationMs=1 status=500 request completed
2026-11-05T14:20:02.178Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.181Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.181Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-ws-vnf2sW/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:39905 (mode=http-bridge, workspace=/tmp/qws-ws-vnf2sW/primary)
qwen serve: bound to workspace "/tmp/qws-ws-vnf2sW/primary"
qwen serve: startup timing: processToListenMs=3956 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.182Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-vnf2sW/primary secondary= daemon workspace roots initialized
2026-11-05T14:20:02.187Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.188Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.190Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.190Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:37735 (mode=http-bridge, workspace=/tmp/qws-channel-idle-timeout-VsoWDw)
qwen serve: bound to workspace "/tmp/qws-channel-idle-timeout-VsoWDw"
qwen serve: startup timing: processToListenMs=3964 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.191Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-idle-timeout-VsoWDw secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
2026-11-05T14:20:02.200Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.200Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.203Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.203Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-ws-3GVw5x/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:46855 (mode=http-bridge, workspace=/tmp/qws-ws-3GVw5x/primary)
qwen serve: bound to workspace "/tmp/qws-ws-3GVw5x/primary"
qwen serve: startup timing: processToListenMs=3977 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.204Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-3GVw5x/primary secondary= daemon workspace roots initialized
2026-11-05T14:20:02.209Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.210Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.211Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.211Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-ws-xmjEnV/debug/daemon/daemon.log
2026-11-05T14:20:02.212Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-xmjEnV/primary secondary= daemon workspace roots initialized
2026-11-05T14:20:02.218Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:42445 (mode=http-bridge, workspace=/tmp/qws-ws-xmjEnV/primary)
qwen serve: bound to workspace "/tmp/qws-ws-xmjEnV/primary"
qwen serve: startup timing: processToListenMs=3992 runQwenServeToListenMs=8
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.223Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed
2026-11-05T14:20:02.224Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.227Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.227Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-tv-4h2TsQ/debug/daemon/daemon.log
2026-11-05T14:20:02.227Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-tv-4h2TsQ secondary= daemon workspace roots initialized
2026-11-05T14:20:02.232Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:38891 (mode=http-bridge, workspace=/tmp/qws-tv-4h2TsQ)
qwen serve: bound to workspace "/tmp/qws-tv-4h2TsQ"
qwen serve: startup timing: processToListenMs=4006 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.233Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.235Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.235Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-tm-g4mPHX/debug/daemon/daemon.log
2026-11-05T14:20:02.235Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-tm-g4mPHX secondary= daemon workspace roots initialized
2026-11-05T14:20:02.240Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:42615 (mode=http-bridge, workspace=/tmp/qws-tm-g4mPHX)
qwen serve: bound to workspace "/tmp/qws-tm-g4mPHX"
qwen serve: startup timing: processToListenMs=4015 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.241Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.243Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.243Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-pt-m5i6uS/debug/daemon/daemon.log
2026-11-05T14:20:02.243Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid permissionResponseTimeoutMs: NaN. Must be a non-negative integer (milliseconds, 0 = disabled / wait forever).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4209:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:5270:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: memory budget 4096 MB (flag, 63364 MB available via host)
2026-11-05T14:20:02.271Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.271Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:38789 (mode=http-bridge, workspace=/tmp/qws-mem-qSxjow)
qwen serve: bound to workspace "/tmp/qws-mem-qSxjow"
qwen serve: startup timing: processToListenMs=4046 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.272Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-mem-qSxjow secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
2026-11-05T14:20:02.278Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.282Z [INFO] [DAEMON] route=GET /daemon/status durationMs=3 status=200 request completed
2026-11-05T14:20:02.283Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve listening on http://127.0.0.1:33981 (mode=http-bridge, workspace=/tmp/qws-mem-IaBgNE)
2026-11-05T14:20:02.295Z [INFO] [DAEMON] daemon stopped
qwen serve listening on http://127.0.0.1:34965 (mode=http-bridge, workspace=/tmp/qws-mem-HGTsLy)
2026-11-05T14:20:02.306Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: memory budget 4096 MB (flag, 16384 MB available via host)
2026-11-05T14:20:02.307Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.307Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:39793 (mode=http-bridge, workspace=/tmp/qws-mem-aj3bHs)
qwen serve: bound to workspace "/tmp/qws-mem-aj3bHs"
qwen serve: startup timing: processToListenMs=4081 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.308Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-mem-aj3bHs secondary= daemon workspace roots initialized
2026-11-05T14:20:02.313Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.313Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: memory budget 4096 MB (flag, 8192 MB available via host)
2026-11-05T14:20:02.314Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.314Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:43485 (mode=http-bridge, workspace=/tmp/qws-mem-I2pCUG)
qwen serve: bound to workspace "/tmp/qws-mem-I2pCUG"
qwen serve: startup timing: processToListenMs=4089 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.315Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-mem-I2pCUG secondary= daemon workspace roots initialized
2026-11-05T14:20:02.320Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.321Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: memory budget 4096 MB (flag, 8192 MB available via host)
2026-11-05T14:20:02.322Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.322Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:36581 (mode=http-bridge, workspace=/tmp/qws-mem-Q32tUm)
qwen serve: bound to workspace "/tmp/qws-mem-Q32tUm"
qwen serve: startup timing: processToListenMs=4096 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.323Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-mem-Q32tUm secondary= daemon workspace roots initialized
2026-11-05T14:20:02.327Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.332Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: memory budget 4096 MB (flag, 16384 MB available via host)
2026-11-05T14:20:02.333Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.333Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:45659 (mode=http-bridge, workspace=/tmp/qws-mem-wNocgO/primary)
qwen serve: bound to workspace "/tmp/qws-mem-wNocgO/primary"
qwen serve: startup timing: processToListenMs=4108 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.334Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-mem-wNocgO/primary secondary= daemon workspace roots initialized
2026-11-05T14:20:02.339Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.340Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: memory budget 1023 MB (flag, 1023 MB available via host); capped down from the configured 1024 MB; below the 1024 MB minimum budget
2026-11-05T14:20:02.341Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.341Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:45623 (mode=http-bridge, workspace=/tmp/qws-mem-4KTi8a)
qwen serve: bound to workspace "/tmp/qws-mem-4KTi8a"
qwen serve: startup timing: processToListenMs=4116 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.342Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-mem-4KTi8a secondary= daemon workspace roots initialized
2026-11-05T14:20:02.347Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.347Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: memory budget 4096 MB (flag, 8192 MB available via host)
2026-11-05T14:20:02.348Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.348Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:36547 (mode=http-bridge, workspace=/tmp/qws-mem-mjtSe3/primary)
qwen serve: bound to workspace "/tmp/qws-mem-mjtSe3/primary"
qwen serve: startup timing: processToListenMs=4123 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.349Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-mem-mjtSe3/primary secondary= daemon workspace roots initialized
2026-11-05T14:20:02.354Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.355Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.356Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.356Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-it-G80Ex5/debug/daemon/daemon.log
2026-11-05T14:20:02.356Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid initializeTimeoutMs: 0. Must be a positive integer (milliseconds).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4190:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6006:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.357Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.358Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-it-KX5Hbt/debug/daemon/daemon.log
2026-11-05T14:20:02.358Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid initializeTimeoutMs: NaN. Must be a positive integer (milliseconds).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4190:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6038:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.359Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.359Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-it-NgJJI4/debug/daemon/daemon.log
2026-11-05T14:20:02.359Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid initializeTimeoutMs: 2147483648. Exceeds maximum JS timer delay of 2147483647 ms (~24.8 days); Node would silently compress longer delays to 1ms.
      at assertTimerDelayInRange (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:496:11)
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4194:5)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6070:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.360Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.360Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-it-jVbAIW/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:40181 (mode=http-bridge, workspace=/tmp/qws-it-jVbAIW)
qwen serve: bound to workspace "/tmp/qws-it-jVbAIW"
qwen serve: startup timing: processToListenMs=4135 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.361Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-it-jVbAIW secondary= daemon workspace roots initialized
2026-11-05T14:20:02.365Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.366Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.375Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.376Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-tls-iO360Q/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:20:02.376Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-tls-iO360Q secondary= daemon workspace roots initialized
2026-11-05T14:20:02.382Z [ERROR] [DAEMON] daemon startup failed
  Error: --tls-cert "/tmp/qws-tls-iO360Q/cert.pem" and --tls-key "/tmp/qws-tls-iO360Q/key.pem" could not be loaded (do they match?): error:05800074:x509 certificate routines::key values mismatch
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:9681:11
      at new Promise (<anonymous>)
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:8217:16)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6523:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
2026-11-05T14:20:02.382Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.385Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.385Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on https://127.0.0.1:44619 (mode=http-bridge, workspace=/tmp/qws-tls-EwE7B7)
qwen serve: bound to workspace "/tmp/qws-tls-EwE7B7"
qwen serve: startup timing: processToListenMs=4160 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.392Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-tls-EwE7B7 secondary= daemon workspace roots initialized
2026-11-05T14:20:02.396Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: runtime startup failed: Daemon runtime stopped before mounting.
2026-11-05T14:20:02.397Z [ERROR] [DAEMON] runtime startup failed
  Error: Daemon runtime stopped before mounting.
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:9048:17
      at waitForRuntimeStartingForShutdown (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:2519:3)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:9363:17
2026-11-05T14:20:02.398Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.400Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.400Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:02.400Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid maxSessions: NaN. Must be a number >= 0 (0 / Infinity = unlimited).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4107:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6660:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.402Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.402Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:02.403Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid maxSessions: -1. Must be a number >= 0 (0 / Infinity = unlimited).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4107:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6660:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.404Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.404Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:02.404Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid maxTotalSessions: NaN. Must be a non-negative integer (0 / Infinity = unlimited).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4115:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6660:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.405Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.405Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:02.405Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid maxTotalSessions: -1. Must be a non-negative integer (0 / Infinity = unlimited).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4115:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6660:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.407Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.407Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:02.407Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid maxTotalSessions: 1.5. Must be a non-negative integer (0 / Infinity = unlimited).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4115:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6660:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.409Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.409Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:02.409Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid eventRingSize: 0. Must be a positive integer in [1, 1000000].
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4134:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6660:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.411Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.411Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:02.411Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid eventRingSize: 1.5. Must be a positive integer in [1, 1000000].
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4134:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6660:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.412Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.412Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:02.412Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid eventRingSize: Infinity. Must be a positive integer in [1, 1000000].
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4134:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6660:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.413Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.414Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:02.414Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid compactedReplayMaxBytes: 0. Must be a positive safe integer in [1, 268435456].
      at normalizeCompactedReplayMaxBytes (/startdir/src/qwen-code/packages/acp-bridge/src/replayWindowLimits.ts:50:11)
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4141:5)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6660:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.415Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.415Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:02.416Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid compactedReplayMaxBytes: 1.5. Must be a positive safe integer in [1, 268435456].
      at normalizeCompactedReplayMaxBytes (/startdir/src/qwen-code/packages/acp-bridge/src/replayWindowLimits.ts:50:11)
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4141:5)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6660:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.417Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.417Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:02.417Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid compactedReplayMaxBytes: Infinity. Must be a positive safe integer in [1, 268435456].
      at normalizeCompactedReplayMaxBytes (/startdir/src/qwen-code/packages/acp-bridge/src/replayWindowLimits.ts:50:11)
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4141:5)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6660:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.427Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.427Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:02.427Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid externalToolGuard: omit it for off mode or set mode to 'required'.
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4222:11)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6794:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.428Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.428Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:02.438Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid external tool guard endpoint: expected an origin-only loopback HTTP(S) URL.
      at normalizeEndpoint (/startdir/src/qwen-code/packages/cli/src/serve/external-tool-guard-provider.ts:79:11)
      at new RequiredExternalToolGuard (/startdir/src/qwen-code/packages/cli/src/serve/external-tool-guard-provider.ts:179:21)
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4256:22)
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6819:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.447Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.447Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-rt-G0ExJD/debug/daemon/daemon.log
2026-11-05T14:20:02.447Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid sessionReapIntervalMs: -1. Must be a non-negative integer (milliseconds, 0 = disabled).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4169:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at runWithReaperOption (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6870:14)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6903:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.451Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.451Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-rt-4d5ymo/debug/daemon/daemon.log
2026-11-05T14:20:02.451Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid sessionReapIntervalMs: 1.5. Must be a non-negative integer (milliseconds, 0 = disabled).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4169:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at runWithReaperOption (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6870:14)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6903:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.456Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.456Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-rt-ueeilP/debug/daemon/daemon.log
2026-11-05T14:20:02.456Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid sessionReapIntervalMs: NaN. Must be a non-negative integer (milliseconds, 0 = disabled).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4169:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at runWithReaperOption (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6870:14)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6903:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.458Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.458Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-rt-Ip3c0Y/debug/daemon/daemon.log
2026-11-05T14:20:02.458Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid sessionReapIntervalMs: Infinity. Must be a non-negative integer (milliseconds, 0 = disabled).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4169:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at runWithReaperOption (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6870:14)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6903:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.459Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.459Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-rt-wSa1Ci/debug/daemon/daemon.log
2026-11-05T14:20:02.459Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid sessionIdleTimeoutMs: -1. Must be a non-negative integer (milliseconds, 0 = disabled).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4176:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at runWithReaperOption (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6870:14)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6903:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.460Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.460Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-rt-xNMuZB/debug/daemon/daemon.log
2026-11-05T14:20:02.460Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid sessionIdleTimeoutMs: 1.5. Must be a non-negative integer (milliseconds, 0 = disabled).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4176:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at runWithReaperOption (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6870:14)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6903:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.462Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.462Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-rt-H3MKgN/debug/daemon/daemon.log
2026-11-05T14:20:02.462Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid sessionIdleTimeoutMs: NaN. Must be a non-negative integer (milliseconds, 0 = disabled).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4176:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at runWithReaperOption (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6870:14)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6903:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.463Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.463Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-rt-SvvE0g/debug/daemon/daemon.log
2026-11-05T14:20:02.463Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid sessionIdleTimeoutMs: Infinity. Must be a non-negative integer (milliseconds, 0 = disabled).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4176:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at runWithReaperOption (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6870:14)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6903:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.464Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.464Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-rt-AoiBYn/debug/daemon/daemon.log
2026-11-05T14:20:02.464Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid sessionPromptSettledCloseGraceMs: -1. Must be a non-negative integer (milliseconds, 0 = disabled).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4183:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at runWithReaperOption (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6870:14)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6903:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.465Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.465Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-rt-k6XZhm/debug/daemon/daemon.log
2026-11-05T14:20:02.465Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid sessionPromptSettledCloseGraceMs: 1.5. Must be a non-negative integer (milliseconds, 0 = disabled).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4183:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at runWithReaperOption (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6870:14)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6903:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.467Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.467Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-rt-bqpfNo/debug/daemon/daemon.log
2026-11-05T14:20:02.467Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid sessionPromptSettledCloseGraceMs: NaN. Must be a non-negative integer (milliseconds, 0 = disabled).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4183:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at runWithReaperOption (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6870:14)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6903:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.468Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.468Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-rt-M6BYnm/debug/daemon/daemon.log
2026-11-05T14:20:02.468Z [ERROR] [DAEMON] daemon startup failed
  TypeError: Invalid sessionPromptSettledCloseGraceMs: Infinity. Must be a non-negative integer (milliseconds, 0 = disabled).
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4183:13)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at runWithReaperOption (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6870:14)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6903:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.469Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.469Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-rt-o7K52x/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:20:02.471Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-rt-o7K52x secondary= daemon workspace roots initialized
2026-11-05T14:20:02.476Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:38547 (mode=http-bridge, workspace=/tmp/qws-rt-o7K52x)
qwen serve: bound to workspace "/tmp/qws-rt-o7K52x"
qwen serve: startup timing: processToListenMs=4250 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.476Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.478Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.478Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-rt-XYiILt/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:20:02.479Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-rt-XYiILt secondary= daemon workspace roots initialized
2026-11-05T14:20:02.484Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:36035 (mode=http-bridge, workspace=/tmp/qws-rt-XYiILt)
qwen serve: bound to workspace "/tmp/qws-rt-XYiILt"
qwen serve: startup timing: processToListenMs=4258 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.484Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.486Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.486Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-rt-YRu2fC/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:20:02.486Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-rt-YRu2fC secondary= daemon workspace roots initialized
2026-11-05T14:20:02.492Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:37739 (mode=http-bridge, workspace=/tmp/qws-rt-YRu2fC)
qwen serve: bound to workspace "/tmp/qws-rt-YRu2fC"
qwen serve: startup timing: processToListenMs=4266 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.492Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.493Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.493Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:34027 (mode=http-bridge, workspace=/tmp/qws-runtime-trust-race-5JcJ9t)
qwen serve: bound to workspace "/tmp/qws-runtime-trust-race-5JcJ9t"
qwen serve: startup timing: processToListenMs=4268 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.494Z [WARN] [DAEMON] workspace=/tmp/qws-runtime-trust-race-5JcJ9t workspace file writes are disabled because the bound workspace is not trusted
2026-11-05T14:20:02.494Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-trust-race-5JcJ9t secondary= daemon workspace roots initialized
2026-11-05T14:20:02.499Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.500Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.506Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.507Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:40651 (mode=http-bridge, workspace=/tmp/qws-runtime-trust-blocked-qmWZ2F)
qwen serve: bound to workspace "/tmp/qws-runtime-trust-blocked-qmWZ2F"
qwen serve: startup timing: processToListenMs=4281 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.507Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-trust-blocked-qmWZ2F secondary= daemon workspace roots initialized
2026-11-05T14:20:02.512Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.513Z [ERROR] [DAEMON] workspace trust reconciliation failed for /tmp/qws-runtime-trust-blocked-qmWZ2F
  Error: replacement failed
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:7105:15)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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 createDynamicWorkspaceRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:6823:28)
      at Object.buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:7849:18)
      at replace (/startdir/src/qwen-code/packages/cli/src/serve/workspace-trust-reconciler.ts:133:37)
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
      at applySnapshot (/startdir/src/qwen-code/packages/cli/src/serve/workspace-trust-reconciler.ts:316:7)
      at drain (/startdir/src/qwen-code/packages/cli/src/serve/workspace-trust-reconciler.ts:324:7)
      at PathMutexRegistry.runExclusive (/startdir/src/qwen-code/packages/cli/src/serve/fs/path-mutex-registry.ts:20:14)
2026-11-05T14:20:02.563Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.566Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.566Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:37727 (mode=http-bridge, workspace=/tmp/qws-runtime-acp-cleanup-ONV4ZN)
qwen serve: bound to workspace "/tmp/qws-runtime-acp-cleanup-ONV4ZN"
qwen serve: startup timing: processToListenMs=4340 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.567Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-acp-cleanup-ONV4ZN secondary= daemon workspace roots initialized
2026-11-05T14:20:02.572Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.573Z [ERROR] [DAEMON] workspace trust reconciliation failed for /tmp/qws-runtime-acp-cleanup-ONV4ZN
  AggregateError: Workspace bridge shutdown could not be confirmed.
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:7470:25
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
2026-11-05T14:20:02.623Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.626Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.626Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:40023 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-krVZXu)
qwen serve: bound to workspace "/tmp/qws-runtime-fail-krVZXu"
qwen serve: startup timing: processToListenMs=4401 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.627Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-krVZXu secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:02.628Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:7223:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:02.628Z [ERROR] [DAEMON] daemon startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:7223:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.630Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.630Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:34225 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-close-G3351a)
qwen serve: bound to workspace "/tmp/qws-runtime-fail-close-G3351a"
qwen serve: startup timing: processToListenMs=4404 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.631Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-close-G3351a secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:02.631Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:7244:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:02.631Z [ERROR] [DAEMON] daemon startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:7244:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: --allow-origin: chrome-extension://qwen-test-extension (WARNING: these browser origins receive full API authority without a bearer token in trusted loopback mode and can execute code as the daemon user)
2026-11-05T14:20:02.635Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.635Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:45269 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-1cen27)
qwen serve: bound to workspace "/tmp/qws-runtime-fail-1cen27"
qwen serve: startup timing: processToListenMs=4409 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.636Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-1cen27 secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:02.636Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6957:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:02.638Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: --allow-origin: chrome-extension://qwen-test-extension (WARNING: these browser origins receive full API authority without a bearer token in trusted loopback mode and can execute code as the daemon user)
2026-11-05T14:20:02.640Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.640Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:44635 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-edtxO2)
qwen serve: bound to workspace "/tmp/qws-runtime-fail-edtxO2"
qwen serve: startup timing: processToListenMs=4414 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.641Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-edtxO2 secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:02.641Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6957:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:02.642Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: --allow-origin: chrome-extension://qwen-test-extension (WARNING: these browser origins receive full API authority without a bearer token in trusted loopback mode and can execute code as the daemon user)
2026-11-05T14:20:02.644Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.644Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:46625 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-s03BQ0)
qwen serve: bound to workspace "/tmp/qws-runtime-fail-s03BQ0"
qwen serve: startup timing: processToListenMs=4418 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.645Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-s03BQ0 secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:02.645Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6957:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:02.646Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: --allow-origin: chrome-extension://qwen-test-extension (WARNING: these browser origins receive full API authority without a bearer token in trusted loopback mode and can execute code as the daemon user)
2026-11-05T14:20:02.648Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.648Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:45077 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-pO9gVM)
qwen serve: bound to workspace "/tmp/qws-runtime-fail-pO9gVM"
qwen serve: startup timing: processToListenMs=4423 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.649Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-pO9gVM secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:02.649Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6957:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:02.651Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: --allow-origin: chrome-extension://qwen-test-extension (WARNING: these browser origins receive full API authority without a bearer token in trusted loopback mode and can execute code as the daemon user)
2026-11-05T14:20:02.652Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.652Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:34439 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-FCKfU9)
qwen serve: bound to workspace "/tmp/qws-runtime-fail-FCKfU9"
qwen serve: startup timing: processToListenMs=4427 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: client-hosted MCP tools are accepted over the WebSocket without auth. Set QWEN_SERVE_CLIENT_MCP_OVER_WS=0 to disable.
2026-11-05T14:20:02.653Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-FCKfU9 secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:02.653Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6957:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:02.654Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: --allow-origin: chrome-extension://qwen-test-extension (WARNING: these browser origins receive full API authority without a bearer token in trusted loopback mode and can execute code as the daemon user)
2026-11-05T14:20:02.656Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.656Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:39591 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-KDFK57)
qwen serve: bound to workspace "/tmp/qws-runtime-fail-KDFK57"
qwen serve: startup timing: processToListenMs=4431 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: client-hosted MCP tools are accepted over the WebSocket without auth. Set QWEN_SERVE_CLIENT_MCP_OVER_WS=0 to disable.
2026-11-05T14:20:02.657Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-KDFK57 secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:02.658Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6957:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:02.659Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: --allow-origin: chrome-extension://qwen-test-extension (WARNING: these browser origins receive full API authority without a bearer token in trusted loopback mode and can execute code as the daemon user)
2026-11-05T14:20:02.661Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.661Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:43875 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-zobLjq)
qwen serve: bound to workspace "/tmp/qws-runtime-fail-zobLjq"
qwen serve: startup timing: processToListenMs=4435 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: client-hosted MCP tools are accepted over the WebSocket without auth. Set QWEN_SERVE_CLIENT_MCP_OVER_WS=0 to disable.
2026-11-05T14:20:02.666Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-zobLjq secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:02.666Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6957:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:02.668Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: --allow-origin: chrome-extension://qwen-test-extension (WARNING: these browser origins receive full API authority without a bearer token in trusted loopback mode and can execute code as the daemon user)
2026-11-05T14:20:02.671Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.671Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:46841 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-wookut)
qwen serve: bound to workspace "/tmp/qws-runtime-fail-wookut"
qwen serve: startup timing: processToListenMs=4445 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.672Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-wookut secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:02.672Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6957:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:02.674Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: --allow-origin: chrome-extension://qwen-test-extension (WARNING: these browser origins receive full API authority without a bearer token in trusted loopback mode and can execute code as the daemon user)
2026-11-05T14:20:02.676Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.676Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:38699 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-wLCqXp)
qwen serve: bound to workspace "/tmp/qws-runtime-fail-wLCqXp"
qwen serve: startup timing: processToListenMs=4451 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.677Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-wLCqXp secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:02.678Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6957:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:02.679Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: --allow-origin: http://localhost:5173 (WARNING: these browser origins receive full API authority without a bearer token in trusted loopback mode and can execute code as the daemon user)
2026-11-05T14:20:02.681Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.682Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:35339 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-y7Ffgm)
qwen serve: bound to workspace "/tmp/qws-runtime-fail-y7Ffgm"
qwen serve: startup timing: processToListenMs=4456 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.683Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-y7Ffgm secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:02.683Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6957:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:02.684Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: --allow-origin: chrome-extension://qwen-test-extension (WARNING: these browser origins receive full API authority without a bearer token in trusted loopback mode and can execute code as the daemon user)
2026-11-05T14:20:02.688Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.688Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:38189 (mode=http-bridge, workspace=/tmp/qws-runtime-child-env-nSefMk)
qwen serve: bound to workspace "/tmp/qws-runtime-child-env-nSefMk"
qwen serve: startup timing: processToListenMs=4463 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.689Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-child-env-nSefMk secondary= daemon workspace roots initialized
2026-11-05T14:20:02.695Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.700Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.703Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.703Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: required external tool guard handshake succeeded.
qwen serve listening on http://127.0.0.1:33799 (mode=http-bridge, workspace=/tmp/qws-guard-provider-fylFM5)
qwen serve: bound to workspace "/tmp/qws-guard-provider-fylFM5"
qwen serve: startup timing: processToListenMs=4480 runQwenServeToListenMs=4
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.707Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-guard-provider-fylFM5 secondary= daemon workspace roots initialized
2026-11-05T14:20:02.712Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.713Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.715Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.715Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:35667 (mode=http-bridge, workspace=/tmp/qws-memory-project-scope-Y7JCKo/primary)
qwen serve: bound to workspace "/tmp/qws-memory-project-scope-Y7JCKo/primary"
qwen serve: startup timing: processToListenMs=4490 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.716Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-memory-project-scope-Y7JCKo/primary secondary= daemon workspace roots initialized
2026-11-05T14:20:02.717Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:02.718Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.720Z [INFO] [DAEMON] projectMemoryScope=git-root projectMemoryScopeRaw=git-root projectMemoryScopeSource=option project memory scope resolved
2026-11-05T14:20:02.720Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:46509 (mode=http-bridge, workspace=/tmp/qws-memory-project-scope-aIMJMA/primary)
qwen serve: bound to workspace "/tmp/qws-memory-project-scope-aIMJMA/primary"
qwen serve: startup timing: processToListenMs=4495 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.721Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-memory-project-scope-aIMJMA/primary secondary= daemon workspace roots initialized
2026-11-05T14:20:02.722Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:02.722Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.724Z [INFO] [DAEMON] projectMemoryScope=git-root projectMemoryScopeRaw=git-root projectMemoryScopeSource=environment project memory scope resolved
2026-11-05T14:20:02.724Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:43511 (mode=http-bridge, workspace=/tmp/qws-memory-project-scope-JNPEFB/primary)
qwen serve: bound to workspace "/tmp/qws-memory-project-scope-JNPEFB/primary"
qwen serve: startup timing: processToListenMs=4499 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.725Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-memory-project-scope-JNPEFB/primary secondary= daemon workspace roots initialized
2026-11-05T14:20:02.726Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:02.726Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.729Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.729Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:41007 (mode=http-bridge, workspace=/tmp/qws-memory-project-scope-AHKPDd/primary)
qwen serve: bound to workspace "/tmp/qws-memory-project-scope-AHKPDd/primary"
qwen serve: startup timing: processToListenMs=4503 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.730Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-memory-project-scope-AHKPDd/primary secondary= daemon workspace roots initialized
2026-11-05T14:20:02.730Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:02.731Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.733Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.733Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:33991 (mode=http-bridge, workspace=/tmp/qws-memory-project-scope-9oZUqy/primary)
qwen serve: bound to workspace "/tmp/qws-memory-project-scope-9oZUqy/primary"
qwen serve: startup timing: processToListenMs=4507 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.736Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-memory-project-scope-9oZUqy/primary secondary= daemon workspace roots initialized
2026-11-05T14:20:02.737Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:02.738Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.740Z [INFO] [DAEMON] projectMemoryScope=git-root projectMemoryScopeRaw=workspce projectMemoryScopeSource=environment project memory scope resolved
2026-11-05T14:20:02.740Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:39417 (mode=http-bridge, workspace=/tmp/qws-memory-project-scope-0ujbKE/primary)
qwen serve: bound to workspace "/tmp/qws-memory-project-scope-0ujbKE/primary"
qwen serve: startup timing: processToListenMs=4514 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.741Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-memory-project-scope-0ujbKE/primary secondary= daemon workspace roots initialized
2026-11-05T14:20:02.742Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:02.742Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.744Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.744Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-runtime-env-reload-8xRcuj/debug/daemon/daemon.log
2026-11-05T14:20:02.745Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-env-reload-8xRcuj secondary= daemon workspace roots initialized
2026-11-05T14:20:02.746Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:41251 (mode=http-bridge, workspace=/tmp/qws-runtime-env-reload-8xRcuj)
qwen serve: bound to workspace "/tmp/qws-runtime-env-reload-8xRcuj"
qwen serve: startup timing: processToListenMs=4520 runQwenServeToListenMs=3
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: model-provider ACP child sync failed
2026-11-05T14:20:02.747Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.749Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.749Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-runtime-env-fallback-5AvCMq/debug/daemon/daemon.log
2026-11-05T14:20:02.750Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-env-fallback-5AvCMq secondary= daemon workspace roots initialized
2026-11-05T14:20:02.750Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: bound to workspace "/tmp/qws-runtime-env-fallback-5AvCMq"
qwen serve: startup timing: processToListenMs=4524 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve listening on http://127.0.0.1:36505 (mode=http-bridge, workspace=/tmp/qws-runtime-env-fallback-5AvCMq)
2026-11-05T14:20:02.750Z [WARN] [DAEMON] error="runtime env rebuild failed" failed to rebuild runtime env snapshot before daemon env reload; preserving previous runtime env
2026-11-05T14:20:02.750Z [WARN] [DAEMON] error="runtime env rebuild failed" failed to rebuild runtime env snapshot before daemon env reload; preserving previous runtime env
2026-11-05T14:20:02.751Z [WARN] [DAEMON] failedFiles="[object Object]" workspace=/tmp/qws-runtime-env-fallback-5AvCMq one or more runtime env files could not be read
2026-11-05T14:20:02.751Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.753Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.753Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /build/.qwen/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:35235 (mode=http-bridge, workspace=/tmp/qws-secondary-env-reload-30KGIj/primary)
qwen serve: bound to workspace "/tmp/qws-secondary-env-reload-30KGIj/primary"
qwen serve: startup timing: processToListenMs=4528 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.754Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-secondary-env-reload-30KGIj/primary secondary= daemon workspace roots initialized
2026-11-05T14:20:02.755Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
2026-11-05T14:20:02.757Z [WARN] [DAEMON] failedFiles="[object Object]" workspace=/tmp/qws-secondary-env-reload-30KGIj/secondary one or more runtime env files could not be read
2026-11-05T14:20:02.757Z [INFO] [DAEMON] daemon stopped
qwen serve listening on http://127.0.0.1:36083 (mode=http-bridge, workspace=/tmp/qws-restored-workspace-iTzz7h/primary)
qwen serve listening on http://127.0.0.1:38491 (mode=http-bridge, workspace=/tmp/qws-restored-read-error-FLiNXx/primary)
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.935Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.935Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-env-capacity-UOoBuY/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:46827 (mode=http-bridge, workspace=/tmp/qws-env-capacity-UOoBuY/workspace-0)
qwen serve: bound to workspace "/tmp/qws-env-capacity-UOoBuY/workspace-0"
qwen serve: startup timing: processToListenMs=4709 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.936Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-env-capacity-UOoBuY/workspace-0 secondary= daemon workspace roots initialized
2026-11-05T14:20:02.936Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:02.937Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.940Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.940Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-legacy-total-3lCNtS/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:41447 (mode=http-bridge, workspace=/tmp/qws-legacy-total-3lCNtS/workspace-0)
qwen serve: bound to workspace "/tmp/qws-legacy-total-3lCNtS/workspace-0"
qwen serve: startup timing: processToListenMs=4714 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.940Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-legacy-total-3lCNtS/workspace-0 secondary= daemon workspace roots initialized
2026-11-05T14:20:02.941Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:02.941Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.944Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.944Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-restored-at-limit-DpHxu2/debug/daemon/daemon.log
qwen serve: bound to workspace "/tmp/qws-restored-at-limit-DpHxu2/workspace-0"
qwen serve: startup timing: processToListenMs=4718 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.944Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-restored-at-limit-DpHxu2/workspace-0 secondary= daemon workspace roots initialized
2026-11-05T14:20:02.945Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:34985 (mode=http-bridge, workspace=/tmp/qws-restored-at-limit-DpHxu2/workspace-0)
2026-11-05T14:20:02.946Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.948Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.948Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-runtime-roots-m2YEb1/debug/daemon/daemon.log
2026-11-05T14:20:02.949Z [WARN] [DAEMON] workspace=/tmp/qws-runtime-roots-m2YEb1/untrusted-secondary excluding untrusted secondary workspace root from file-system access
2026-11-05T14:20:02.949Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-roots-m2YEb1/primary secondary=/tmp/qws-runtime-roots-m2YEb1/trusted-secondary daemon workspace roots initialized
2026-11-05T14:20:02.949Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:43109 (mode=http-bridge, workspace=/tmp/qws-runtime-roots-m2YEb1/primary)
qwen serve: bound to workspace "/tmp/qws-runtime-roots-m2YEb1/primary"
qwen serve: startup timing: processToListenMs=4723 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.949Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.952Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.952Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-runtime-roots-XNhR9o/debug/daemon/daemon.log
2026-11-05T14:20:02.953Z [WARN] [DAEMON] workspace=/tmp/qws-runtime-roots-XNhR9o/parent excluding untrusted secondary workspace root from file-system access
2026-11-05T14:20:02.953Z [INFO] [DAEMON] ideEnvPresent=true primary=/tmp/qws-runtime-roots-XNhR9o/primary secondary=/tmp/qws-runtime-roots-XNhR9o/parent/trusted-child daemon workspace roots initialized
2026-11-05T14:20:02.953Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:43299 (mode=http-bridge, workspace=/tmp/qws-runtime-roots-XNhR9o/primary)
qwen serve: bound to workspace "/tmp/qws-runtime-roots-XNhR9o/primary"
qwen serve: startup timing: processToListenMs=4727 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.953Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.956Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.956Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-runtime-roots-xJ9bpo/debug/daemon/daemon.log
2026-11-05T14:20:02.956Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-roots-xJ9bpo/primary secondary=/tmp/qws-runtime-roots-xJ9bpo/secondary daemon workspace roots initialized
2026-11-05T14:20:02.957Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:34777 (mode=http-bridge, workspace=/tmp/qws-runtime-roots-xJ9bpo/primary)
qwen serve: bound to workspace "/tmp/qws-runtime-roots-xJ9bpo/primary"
qwen serve: startup timing: processToListenMs=4731 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.957Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.959Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.959Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-runtime-roots-MXqh9O/debug/daemon/daemon.log
qwen serve: could not read full settings for runtime startup (settings unavailable); falling back to defaults.
2026-11-05T14:20:02.959Z [WARN] [DAEMON] workspace=/tmp/qws-runtime-roots-MXqh9O/secondary excluding untrusted secondary workspace root from file-system access
2026-11-05T14:20:02.959Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-roots-MXqh9O/primary secondary= daemon workspace roots initialized
2026-11-05T14:20:02.960Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:37713 (mode=http-bridge, workspace=/tmp/qws-runtime-roots-MXqh9O/primary)
qwen serve: bound to workspace "/tmp/qws-runtime-roots-MXqh9O/primary"
qwen serve: startup timing: processToListenMs=4734 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.960Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: --allow-origin: http://localhost:5173 (WARNING: these browser origins receive full API authority without a bearer token in trusted loopback mode and can execute code as the daemon user)
2026-11-05T14:20:02.962Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.962Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:35865 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-QwgWFW)
qwen serve: bound to workspace "/tmp/qws-runtime-fail-QwgWFW"
qwen serve: startup timing: processToListenMs=4736 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.963Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-QwgWFW secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:02.963Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6957:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:02.964Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.974Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.974Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:42097 (mode=http-bridge, workspace=/tmp/qws-runtime-starting-route-encTKs)
qwen serve: bound to workspace "/tmp/qws-runtime-starting-route-encTKs"
qwen serve: startup timing: processToListenMs=4749 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.976Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-starting-route-encTKs secondary= daemon workspace roots initialized
2026-11-05T14:20:02.980Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: runtime startup failed: Daemon runtime stopped before mounting.
2026-11-05T14:20:02.981Z [ERROR] [DAEMON] runtime startup failed
  Error: Daemon runtime stopped before mounting.
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:9048:17
      at waitForRuntimeStartingForShutdown (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:2519:3)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:9363:17
2026-11-05T14:20:02.981Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.983Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.983Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-runtime-starting-caps-vwBzF7/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:44969 (mode=http-bridge, workspace=/tmp/qws-runtime-starting-caps-vwBzF7/primary)
qwen serve: bound to workspace "/tmp/qws-runtime-starting-caps-vwBzF7/primary"
qwen serve: startup timing: processToListenMs=4758 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.985Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-starting-caps-vwBzF7/primary secondary= daemon workspace roots initialized
2026-11-05T14:20:02.991Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:02.992Z [INFO] [DAEMON] route=GET /capabilities durationMs=0 status=200 request completed
2026-11-05T14:20:02.992Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:02.995Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:02.995Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-health-first-CMFL9V/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:34375 (mode=http-bridge, workspace=/tmp/qws-health-first-CMFL9V)
qwen serve: bound to workspace "/tmp/qws-health-first-CMFL9V"
qwen serve: startup timing: processToListenMs=4769 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:02.995Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:03.248Z [INFO] [DAEMON] deferred runtime: health served, scheduling start in 50ms
2026-11-05T14:20:03.298Z [INFO] [DAEMON] deferred runtime: health timer fired, starting
2026-11-05T14:20:03.299Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-health-first-CMFL9V secondary= daemon workspace roots initialized
2026-11-05T14:20:03.303Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:03.350Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed
2026-11-05T14:20:03.350Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:03.354Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:03.354Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-brand-hold-HdzRUX/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:37535 (mode=http-bridge, workspace=/tmp/qws-brand-hold-HdzRUX)
qwen serve: bound to workspace "/tmp/qws-brand-hold-HdzRUX"
qwen serve: startup timing: processToListenMs=5128 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:03.354Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
qwen serve: managed scratch workspaces are unavailable: Managed scratch root conflicts with a startup workspace
2026-11-05T14:20:03.505Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-brand-hold-HdzRUX secondary= daemon workspace roots initialized
2026-11-05T14:20:03.510Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:03.511Z [INFO] [DAEMON] route=GET /brand durationMs=1 status=200 request completed
2026-11-05T14:20:03.512Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:03.515Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:03.515Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:35811 (mode=http-bridge, workspace=/tmp/qws-health-deep-first-V8l1uA)
qwen serve: bound to workspace "/tmp/qws-health-deep-first-V8l1uA"
qwen serve: startup timing: processToListenMs=5289 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:03.515Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:03.519Z [INFO] [DAEMON] deferred runtime: health served, scheduling start in 50ms
2026-11-05T14:20:03.570Z [INFO] [DAEMON] deferred runtime: health timer fired, starting
2026-11-05T14:20:03.571Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-health-deep-first-V8l1uA secondary= daemon workspace roots initialized
2026-11-05T14:20:03.575Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:03.622Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:03.626Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:03.626Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:46743 (mode=http-bridge, workspace=/tmp/qws-health-dedupe-yubDGf)
qwen serve: bound to workspace "/tmp/qws-health-dedupe-yubDGf"
qwen serve: startup timing: processToListenMs=5400 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:03.626Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:03.627Z [INFO] [DAEMON] deferred runtime: health served, scheduling start in 50ms
2026-11-05T14:20:03.676Z [INFO] [DAEMON] deferred runtime: health timer fired, starting
2026-11-05T14:20:03.677Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-health-dedupe-yubDGf secondary= daemon workspace roots initialized
2026-11-05T14:20:03.682Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:03.783Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:03.786Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:03.786Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:34635 (mode=http-bridge, workspace=/tmp/qws-runtime-route-start-MwmhRu)
qwen serve: bound to workspace "/tmp/qws-runtime-route-start-MwmhRu"
qwen serve: startup timing: processToListenMs=5561 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:03.787Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:03.837Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-route-start-MwmhRu secondary= daemon workspace roots initialized
2026-11-05T14:20:03.838Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:03.839Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:03.842Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:03.842Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:35467 (mode=http-bridge, workspace=/tmp/qws-runtime-route-auth-8xh7jG)
qwen serve: bound to workspace "/tmp/qws-runtime-route-auth-8xh7jG"
qwen serve: startup timing: processToListenMs=5616 runQwenServeToListenMs=1
2026-11-05T14:20:03.842Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:03.844Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-route-auth-8xh7jG secondary= daemon workspace roots initialized
2026-11-05T14:20:03.844Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:03.845Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:03.847Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:03.847Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /tmp/qws-deferred-webshell-rr5qP4/web-shell
qwen serve listening on http://127.0.0.1:34979 (mode=http-bridge, workspace=/tmp/qws-deferred-webshell-rr5qP4)
qwen serve: bound to workspace "/tmp/qws-deferred-webshell-rr5qP4"
qwen serve: startup timing: processToListenMs=5622 runQwenServeToListenMs=1
2026-11-05T14:20:03.848Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:03.849Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-deferred-webshell-rr5qP4 secondary= daemon workspace roots initialized
2026-11-05T14:20:03.853Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:03.854Z [INFO] [DAEMON] route=HEAD /session/abc sessionId=abc durationMs=1 status=200 request completed
2026-11-05T14:20:03.856Z [INFO] [DAEMON] route=GET /session/abc sessionId=abc durationMs=1 status=200 request completed
2026-11-05T14:20:03.856Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:03.859Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:03.859Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /tmp/qws-deferred-root-mAZh4Z/web-shell
qwen serve listening on http://127.0.0.1:38011 (mode=http-bridge, workspace=/tmp/qws-deferred-root-mAZh4Z)
qwen serve: bound to workspace "/tmp/qws-deferred-root-mAZh4Z"
qwen serve: startup timing: processToListenMs=5633 runQwenServeToListenMs=2
2026-11-05T14:20:03.859Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:03.864Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-deferred-root-mAZh4Z secondary= daemon workspace roots initialized
2026-11-05T14:20:03.868Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:03.869Z [INFO] [DAEMON] route=GET / durationMs=0 status=200 request completed
2026-11-05T14:20:03.869Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:03.872Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:03.872Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /tmp/qws-bootstrap-selforigin-1n1a6Q/web-shell
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: same-origin Web Shell HTTP requests work without --allow-origin, but WebSocket-backed features (terminal, voice) and browsers reaching the daemon through a TLS-terminating proxy still need --allow-origin <origin>. A plain-HTTP intermediary that rewrites the Host header (nginx default proxy_set_header, k8s Ingress) needs --allow-origin <origin> for the origin the browser sees, unless it forwards Host verbatim; port translation alone (ssh -L, docker -p) is fine.
qwen serve listening on http://0.0.0.0:39309 (mode=http-bridge, workspace=/tmp/qws-bootstrap-selforigin-1n1a6Q)
qwen serve: bound to workspace "/tmp/qws-bootstrap-selforigin-1n1a6Q"
qwen serve: startup timing: processToListenMs=5647 runQwenServeToListenMs=1
2026-11-05T14:20:03.872Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:03.874Z [INFO] [DAEMON] deferred runtime: cancelled, server closed before startup
2026-11-05T14:20:03.875Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:03.877Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:03.877Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /tmp/qws-bootstrap-order-Hns5ah/web-shell
qwen serve listening on http://127.0.0.1:40995 (mode=http-bridge, workspace=/tmp/qws-bootstrap-order-Hns5ah)
qwen serve: bound to workspace "/tmp/qws-bootstrap-order-Hns5ah"
qwen serve: startup timing: processToListenMs=5651 runQwenServeToListenMs=1
2026-11-05T14:20:03.877Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:03.878Z [INFO] [DAEMON] deferred runtime: cancelled, server closed before startup
2026-11-05T14:20:03.878Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:03.880Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:03.880Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /tmp/qws-deferred-root-alias-NnU7Pv/web-shell
qwen serve listening on http://127.0.0.1:38045 (mode=http-bridge, workspace=/tmp/qws-deferred-root-alias-NnU7Pv)
qwen serve: bound to workspace "/tmp/qws-deferred-root-alias-NnU7Pv"
qwen serve: startup timing: processToListenMs=5654 runQwenServeToListenMs=1
2026-11-05T14:20:03.880Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:03.881Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-deferred-root-alias-NnU7Pv secondary= daemon workspace roots initialized
2026-11-05T14:20:03.886Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:03.886Z [INFO] [DAEMON] route=GET // durationMs=0 status=200 request completed
2026-11-05T14:20:03.887Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:03.889Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:03.889Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /tmp/qws-deferred-predicate-fail-cn7Uto/web-shell
qwen serve listening on http://127.0.0.1:46759 (mode=http-bridge, workspace=/tmp/qws-deferred-predicate-fail-cn7Uto)
qwen serve: bound to workspace "/tmp/qws-deferred-predicate-fail-cn7Uto"
qwen serve: startup timing: processToListenMs=5663 runQwenServeToListenMs=1
2026-11-05T14:20:03.889Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:03.890Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-deferred-predicate-fail-cn7Uto secondary= daemon workspace roots initialized
2026-11-05T14:20:03.895Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:03.895Z [INFO] [DAEMON] route=GET /session/abc sessionId=abc durationMs=0 status=200 request completed
2026-11-05T14:20:03.896Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:03.898Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:03.898Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /tmp/qws-deferred-assets-KSqNC4/web-shell
qwen serve listening on http://127.0.0.1:42193 (mode=http-bridge, workspace=/tmp/qws-deferred-assets-KSqNC4)
qwen serve: bound to workspace "/tmp/qws-deferred-assets-KSqNC4"
qwen serve: startup timing: processToListenMs=5673 runQwenServeToListenMs=1
2026-11-05T14:20:03.898Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:03.900Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-deferred-assets-KSqNC4 secondary= daemon workspace roots initialized
2026-11-05T14:20:03.904Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:03.909Z [INFO] [DAEMON] route=GET /assets/fixture.js durationMs=1 status=200 request completed
2026-11-05T14:20:03.909Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:03.912Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:03.912Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /tmp/qws-deferred-assets-bare-VusQX1/web-shell
qwen serve listening on http://127.0.0.1:37455 (mode=http-bridge, workspace=/tmp/qws-deferred-assets-bare-VusQX1)
qwen serve: bound to workspace "/tmp/qws-deferred-assets-bare-VusQX1"
qwen serve: startup timing: processToListenMs=5687 runQwenServeToListenMs=1
2026-11-05T14:20:03.913Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:03.914Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-deferred-assets-bare-VusQX1 secondary= daemon workspace roots initialized
2026-11-05T14:20:03.918Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:03.919Z [INFO] [DAEMON] route=GET /assets durationMs=0 status=301 request completed
2026-11-05T14:20:03.919Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:03.922Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:03.922Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /tmp/qws-deferred-shapes-VEPqEH/web-shell
qwen serve listening on http://127.0.0.1:42033 (mode=http-bridge, workspace=/tmp/qws-deferred-shapes-VEPqEH)
qwen serve: bound to workspace "/tmp/qws-deferred-shapes-VEPqEH"
qwen serve: startup timing: processToListenMs=5696 runQwenServeToListenMs=1
2026-11-05T14:20:03.922Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:03.923Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-deferred-shapes-VEPqEH secondary= daemon workspace roots initialized
2026-11-05T14:20:03.927Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:03.928Z [INFO] [DAEMON] route=GET /Session/abc/ durationMs=0 status=200 request completed
2026-11-05T14:20:03.928Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:03.931Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:03.931Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /tmp/qws-deferred-query-TKMXxc/web-shell
qwen serve listening on http://127.0.0.1:45251 (mode=http-bridge, workspace=/tmp/qws-deferred-query-TKMXxc)
qwen serve: bound to workspace "/tmp/qws-deferred-query-TKMXxc"
qwen serve: startup timing: processToListenMs=5705 runQwenServeToListenMs=1
2026-11-05T14:20:03.931Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:03.932Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-deferred-query-TKMXxc secondary= daemon workspace roots initialized
2026-11-05T14:20:03.936Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:03.937Z [INFO] [DAEMON] route=GET /session/abc/ sessionId=abc durationMs=0 status=200 request completed
2026-11-05T14:20:03.937Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:03.940Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:03.940Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /tmp/qws-deferred-webshell-gate-wthHsl/web-shell
qwen serve listening on http://127.0.0.1:37833 (mode=http-bridge, workspace=/tmp/qws-deferred-webshell-gate-wthHsl)
qwen serve: bound to workspace "/tmp/qws-deferred-webshell-gate-wthHsl"
qwen serve: startup timing: processToListenMs=5714 runQwenServeToListenMs=1
2026-11-05T14:20:03.940Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:03.941Z [INFO] [DAEMON] deferred runtime: cancelled, server closed before startup
2026-11-05T14:20:03.941Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:03.944Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:03.944Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:35633 (mode=http-bridge, workspace=/tmp/qws-deferred-noweb-f8QCkT)
qwen serve: bound to workspace "/tmp/qws-deferred-noweb-f8QCkT"
qwen serve: startup timing: processToListenMs=5718 runQwenServeToListenMs=1
2026-11-05T14:20:03.944Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:03.945Z [INFO] [DAEMON] deferred runtime: cancelled, server closed before startup
2026-11-05T14:20:03.945Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:03.947Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:03.947Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /tmp/qws-deferred-webshell-fail-SuYwBw/web-shell
qwen serve listening on http://127.0.0.1:37079 (mode=http-bridge, workspace=/tmp/qws-deferred-webshell-fail-SuYwBw)
qwen serve: bound to workspace "/tmp/qws-deferred-webshell-fail-SuYwBw"
qwen serve: startup timing: processToListenMs=5721 runQwenServeToListenMs=1
2026-11-05T14:20:03.947Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:03.948Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-deferred-webshell-fail-SuYwBw secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:03.948Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.createBridge (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:9941:15)
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:758:21)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:03.953Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:03.959Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:03.959Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:44709 (mode=http-bridge, workspace=/tmp/qws-runtime-webhook-start-5ZZa4H)
qwen serve: bound to workspace "/tmp/qws-runtime-webhook-start-5ZZa4H"
qwen serve: startup timing: processToListenMs=5733 runQwenServeToListenMs=4
2026-11-05T14:20:03.960Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:03.962Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-webhook-start-5ZZa4H secondary= daemon workspace roots initialized
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:03.970Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:03.970Z [INFO] [DAEMON] channelName=dingtalk-main eventType=ci_failed source="github ci" targetRef=default channel webhook task accepted
2026-11-05T14:20:03.971Z [INFO] [DAEMON] route=POST /channels/dingtalk-main/webhooks/github%20ci durationMs=1 status=202 request completed
2026-11-05T14:20:03.971Z [INFO] [DAEMON] daemon stopped
qwen serve listening on http://127.0.0.1:44925 (mode=http-bridge, workspace=/tmp/qws-runtime-webhook-auth-laKLEm)
qwen serve listening on http://127.0.0.1:36771 (mode=http-bridge, workspace=/tmp/qws-runtime-webhook-log-MH9gg2)
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: --allow-origin: http://localhost:5173
2026-11-05T14:20:03.984Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:03.984Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:42503 (mode=http-bridge, workspace=/tmp/qws-runtime-preflight-a4BDPw)
qwen serve: bound to workspace "/tmp/qws-runtime-preflight-a4BDPw"
qwen serve: startup timing: processToListenMs=5758 runQwenServeToListenMs=1
2026-11-05T14:20:03.984Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:03.985Z [INFO] [DAEMON] deferred runtime: cancelled, server closed before startup
2026-11-05T14:20:03.985Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:03.988Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:03.988Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:44099 (mode=http-bridge, workspace=/tmp/qws-bootstrap-method-vTbXHt)
qwen serve: bound to workspace "/tmp/qws-bootstrap-method-vTbXHt"
qwen serve: startup timing: processToListenMs=5762 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:03.988Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:03.989Z [INFO] [DAEMON] deferred runtime: cancelled, server closed before startup
2026-11-05T14:20:03.989Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:03.991Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:03.991Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:45095 (mode=http-bridge, workspace=/tmp/qws-bootstrap-trailing-AZlURd)
qwen serve: bound to workspace "/tmp/qws-bootstrap-trailing-AZlURd"
qwen serve: startup timing: processToListenMs=5765 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:03.991Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:03.992Z [INFO] [DAEMON] deferred runtime: health served, scheduling start in 50ms
2026-11-05T14:20:03.992Z [INFO] [DAEMON] deferred runtime: cancelled, server closed before startup
2026-11-05T14:20:03.992Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:03.994Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:03.994Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:46681 (mode=http-bridge, workspace=/tmp/qws-runtime-route-fail-nMAiKv)
qwen serve: bound to workspace "/tmp/qws-runtime-route-fail-nMAiKv"
qwen serve: startup timing: processToListenMs=5769 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:03.995Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:03.995Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-route-fail-nMAiKv secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:03.996Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:10509:15)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:03.996Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:03.999Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:03.999Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:44165 (mode=http-bridge, workspace=/tmp/qws-health-fallback-MSIkgg)
qwen serve: bound to workspace "/tmp/qws-health-fallback-MSIkgg"
qwen serve: startup timing: processToListenMs=5774 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:04.000Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:04.999Z [INFO] [DAEMON] deferred runtime: fallback timer fired, starting
2026-11-05T14:20:05.000Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-health-fallback-MSIkgg secondary= daemon workspace roots initialized
2026-11-05T14:20:05.006Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:05.006Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:05.016Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:05.016Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-health-close-C43ufq/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:41559 (mode=http-bridge, workspace=/tmp/qws-health-close-C43ufq)
qwen serve: bound to workspace "/tmp/qws-health-close-C43ufq"
qwen serve: startup timing: processToListenMs=6790 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:05.016Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:05.016Z [INFO] [DAEMON] deferred runtime: cancelled, server closed before startup
2026-11-05T14:20:05.016Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:06.120Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:06.120Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:43497 (mode=http-bridge, workspace=/tmp/qws-health-close-after-uAMp1y)
qwen serve: bound to workspace "/tmp/qws-health-close-after-uAMp1y"
qwen serve: startup timing: processToListenMs=7895 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:06.121Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:06.122Z [INFO] [DAEMON] deferred runtime: health served, scheduling start in 50ms
2026-11-05T14:20:06.122Z [INFO] [DAEMON] deferred runtime: cancelled, server closed before startup
2026-11-05T14:20:06.122Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:06.226Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:06.226Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:35425 (mode=http-bridge, workspace=/tmp/qws-health-reconciler-close-KB8yLk)
qwen serve: bound to workspace "/tmp/qws-health-reconciler-close-KB8yLk"
qwen serve: startup timing: processToListenMs=8001 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:06.227Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:06.227Z [INFO] [DAEMON] deferred runtime: health served, scheduling start in 50ms
2026-11-05T14:20:06.278Z [INFO] [DAEMON] deferred runtime: health timer fired, starting
2026-11-05T14:20:06.279Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-health-reconciler-close-KB8yLk secondary= daemon workspace roots initialized
2026-11-05T14:20:06.279Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:06.280Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:06.283Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:06.283Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:46461 (mode=http-bridge, workspace=/tmp/qws-maintenance-drain-k2enA8)
qwen serve: bound to workspace "/tmp/qws-maintenance-drain-k2enA8"
qwen serve: startup timing: processToListenMs=8057 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:06.284Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-maintenance-drain-k2enA8 secondary= daemon workspace roots initialized
2026-11-05T14:20:06.284Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:06.285Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:06.287Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:06.287Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:40753 (mode=http-bridge, workspace=/tmp/qws-maintenance-failure-BK7cjV)
qwen serve: bound to workspace "/tmp/qws-maintenance-failure-BK7cjV"
qwen serve: startup timing: processToListenMs=8061 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:06.288Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-maintenance-failure-BK7cjV secondary= daemon workspace roots initialized
2026-11-05T14:20:06.288Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:06.289Z [ERROR] [DAEMON] daemon shutdown incomplete
  Error: maintenance drain failed
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:10782:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/node_modules/@vitest/spy/dist/index.js:96:15)
      at Object.spy [as sealMaintenanceAndWait] (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:9219:51
      at new Promise (<anonymous>)
      at close (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:9178:26)
      at drainHost (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:9695:31)
      at ServeAppLifecycleController.startDrain (/startdir/src/qwen-code/packages/cli/src/serve/serve-app-lifecycle.ts:223:14)
      at ServeAppLifecycleController.closeOnce (/startdir/src/qwen-code/packages/cli/src/serve/serve-app-lifecycle.ts:197:12)
      at ServeAppLifecycleController.close (/startdir/src/qwen-code/packages/cli/src/serve/serve-app-lifecycle.ts:105:26)
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:06.292Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:06.292Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: bound to workspace "/tmp/qws-health-close-running-TZipte"
qwen serve: startup timing: processToListenMs=8066 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:06.292Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
qwen serve listening on http://127.0.0.1:32941 (mode=http-bridge, workspace=/tmp/qws-health-close-running-TZipte)
2026-11-05T14:20:06.293Z [INFO] [DAEMON] deferred runtime: health served, scheduling start in 50ms
2026-11-05T14:20:06.343Z [INFO] [DAEMON] deferred runtime: health timer fired, starting
2026-11-05T14:20:06.393Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-health-close-running-TZipte secondary= daemon workspace roots initialized
2026-11-05T14:20:06.398Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: runtime startup failed: Daemon runtime stopped before mounting.
2026-11-05T14:20:06.399Z [ERROR] [DAEMON] runtime startup failed
  Error: Daemon runtime stopped before mounting.
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:9048:17
      at waitForRuntimeStartingForShutdown (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:2519:3)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:9363:17
2026-11-05T14:20:06.399Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:06.402Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:06.402Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:37211 (mode=http-bridge, workspace=/tmp/qws-health-close-late-app-NKQz2e)
qwen serve: bound to workspace "/tmp/qws-health-close-late-app-NKQz2e"
qwen serve: startup timing: processToListenMs=8177 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:06.403Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:06.403Z [INFO] [DAEMON] deferred runtime: health served, scheduling start in 50ms
2026-11-05T14:20:06.453Z [INFO] [DAEMON] deferred runtime: health timer fired, starting
2026-11-05T14:20:11.504Z [WARN] [DAEMON] 5000ms runtime-startup wait reached during shutdown; continuing listener close
2026-11-05T14:20:11.504Z [INFO] [DAEMON] daemon stopped
2026-11-05T14:20:11.505Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-health-close-late-app-NKQz2e secondary= daemon workspace roots initialized
2026-11-05T14:20:11.506Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:11.506Z [WARN] [DAEMON] scheduled-task keepalive dispose error: keepalive dispose failed
qwen serve: runtime startup failed: Daemon runtime stopped before mounting.
2026-11-05T14:20:11.506Z [ERROR] [DAEMON] runtime startup failed
  Error: Daemon runtime stopped before mounting.
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:9048:17
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:11.559Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:11.559Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: bound to workspace "/tmp/qws-health-fail-once-poALOm"
qwen serve: startup timing: processToListenMs=13333 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:11.559Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:20:11.560Z [INFO] [DAEMON] deferred runtime: health served, scheduling start in 50ms
qwen serve listening on http://127.0.0.1:34217 (mode=http-bridge, workspace=/tmp/qws-health-fail-once-poALOm)
2026-11-05T14:20:11.609Z [INFO] [DAEMON] deferred runtime: health timer fired, starting
2026-11-05T14:20:11.610Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-health-fail-once-poALOm secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:11.611Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:10998:15)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:11.712Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:11.716Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:11.716Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-runtime-fail-log-xTzPpd/debug/daemon/daemon.log
qwen serve: bound to workspace "/tmp/qws-runtime-fail-log-xTzPpd"
qwen serve: startup timing: processToListenMs=13490 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:11.717Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-log-xTzPpd secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:39681 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-log-xTzPpd)
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:11.717Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:11044:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:11.718Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:11.720Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:11.720Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:34829 (mode=http-bridge, workspace=/tmp/qws-runtime-flush-pending-S6O54s)
qwen serve: bound to workspace "/tmp/qws-runtime-flush-pending-S6O54s"
qwen serve: startup timing: processToListenMs=13495 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:11.721Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-flush-pending-S6O54s secondary= daemon workspace roots initialized
2026-11-05T14:20:11.726Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:11.731Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:11.735Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:11.735Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: bound to workspace "/tmp/qws-runtime-queue-wait-kwzrm0"
qwen serve: startup timing: processToListenMs=13510 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:11.737Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-queue-wait-kwzrm0 secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:34545 (mode=http-bridge, workspace=/tmp/qws-runtime-queue-wait-kwzrm0)
2026-11-05T14:20:11.751Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:11.754Z [INFO] [DAEMON] route=GET /daemon/status durationMs=1 status=200 request completed
2026-11-05T14:20:11.755Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:11.762Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:11.762Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: bound to workspace "/tmp/qws-runtime-timeout-025mcd"
qwen serve: startup timing: processToListenMs=13536 runQwenServeToListenMs=4
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: runtime startup failed: Daemon runtime startup timed out after 1ms.
2026-11-05T14:20:11.763Z [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:8698:13)
      at listOnTimeout (node:internal/timers:685:17)
      at processTimers (node:internal/timers:618:7)
qwen serve listening on http://127.0.0.1:42793 (mode=http-bridge, workspace=/tmp/qws-runtime-timeout-025mcd)
2026-11-05T14:20:11.765Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-timeout-025mcd secondary= daemon workspace roots initialized
2026-11-05T14:20:11.771Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:11.815Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
qwen serve: daemon log disabled — init failed: ENOTDIR: not a directory, lstat '/tmp/qws-runtime-fail-PqAKlf/blocked-log-base/daemon'
2026-11-05T14:20:11.820Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:11.820Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → (disabled)
qwen serve listening on http://127.0.0.1:39945 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-PqAKlf)
qwen serve: bound to workspace "/tmp/qws-runtime-fail-PqAKlf"
qwen serve: startup timing: processToListenMs=13595 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:11.822Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-PqAKlf secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:11.822Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:11301:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:11.829Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:11.833Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:11.833Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: bound to workspace "/tmp/qws-bootstrap-growth-gnvflW"
qwen serve: startup timing: processToListenMs=13607 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve listening on http://127.0.0.1:39065 (mode=http-bridge, workspace=/tmp/qws-bootstrap-growth-gnvflW)
2026-11-05T14:20:11.834Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-bootstrap-growth-gnvflW secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:11.834Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:11518:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:11.835Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:11.836Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:11.836Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: bound to workspace "/tmp/qws-bootstrap-growth-gnvflW"
qwen serve: startup timing: processToListenMs=13611 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve listening on http://127.0.0.1:46241 (mode=http-bridge, workspace=/tmp/qws-bootstrap-growth-gnvflW)
2026-11-05T14:20:11.837Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-bootstrap-growth-gnvflW secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:11.837Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:11518:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:11.839Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:11.842Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:11.842Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: bound to workspace "/tmp/qws-bootstrap-picker-qdKmRl"
qwen serve: startup timing: processToListenMs=13617 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve listening on http://127.0.0.1:44071 (mode=http-bridge, workspace=/tmp/qws-bootstrap-picker-qdKmRl)
2026-11-05T14:20:11.843Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-bootstrap-picker-qdKmRl secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:11.843Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:11601:15)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:11.845Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:11.849Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:11.849Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:37955 (mode=http-bridge, workspace=/tmp/qws-bootstrap-picker-kWBQsB)
qwen serve: bound to workspace "/tmp/qws-bootstrap-picker-kWBQsB"
qwen serve: startup timing: processToListenMs=13623 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:11.850Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-bootstrap-picker-kWBQsB secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:11.850Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:11601:15)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:11.852Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:11.855Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:11.855Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: bound to workspace "/tmp/qws-bootstrap-open-ed2asK"
qwen serve: startup timing: processToListenMs=13629 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:11.855Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-bootstrap-open-ed2asK secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:11.856Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:11656:15)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
qwen serve listening on http://127.0.0.1:41689 (mode=http-bridge, workspace=/tmp/qws-bootstrap-open-ed2asK)
2026-11-05T14:20:11.857Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:11.860Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:11.860Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: bound to workspace "/tmp/qws-bootstrap-open-YLNRNm"
qwen serve: startup timing: processToListenMs=13635 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:11.861Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-bootstrap-open-YLNRNm secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:11.861Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:11656:15)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:11.863Z [INFO] [DAEMON] daemon stopped
qwen serve listening on http://127.0.0.1:46549 (mode=http-bridge, workspace=/tmp/qws-bootstrap-open-YLNRNm)
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:11.866Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:11.866Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:35237 (mode=http-bridge, workspace=/tmp/qws-bootstrap-terminal-sZCmi2)
qwen serve: bound to workspace "/tmp/qws-bootstrap-terminal-sZCmi2"
qwen serve: startup timing: processToListenMs=13641 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:11.867Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-bootstrap-terminal-sZCmi2 secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:11.867Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:11709:15)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:11.869Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:11.872Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:11.872Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: bound to workspace "/tmp/qws-bootstrap-terminal-5Au3sY"
qwen serve: startup timing: processToListenMs=13646 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve listening on http://127.0.0.1:38123 (mode=http-bridge, workspace=/tmp/qws-bootstrap-terminal-5Au3sY)
2026-11-05T14:20:11.873Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-bootstrap-terminal-5Au3sY secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime boom
2026-11-05T14:20:11.873Z [ERROR] [DAEMON] runtime startup failed
  Error: runtime boom
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:11709:15)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:5574:15)
2026-11-05T14:20:11.875Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:11.878Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:11.878Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:46683 (mode=http-bridge, workspace=/tmp/qws-runtime-partial-fail-4Dk6lW)
qwen serve: bound to workspace "/tmp/qws-runtime-partial-fail-4Dk6lW"
qwen serve: startup timing: processToListenMs=13652 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:11.879Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-partial-fail-4Dk6lW secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime app boom
2026-11-05T14:20:11.879Z [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:11775:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:7588:25)
2026-11-05T14:20:11.879Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:11.879Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:11.882Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:11.882Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: bound to workspace "/tmp/qws-runtime-partial-fail-auyck3/primary"
qwen serve: startup timing: processToListenMs=13657 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve listening on http://127.0.0.1:33667 (mode=http-bridge, workspace=/tmp/qws-runtime-partial-fail-auyck3/primary)
2026-11-05T14:20:11.883Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-partial-fail-auyck3/primary secondary= daemon workspace roots initialized
qwen serve: runtime startup failed: runtime app boom
2026-11-05T14:20:11.884Z [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:11817:13)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:7588:25)
2026-11-05T14:20:11.884Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:11.884Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:11.886Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:11.886Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:34681 (mode=http-bridge, workspace=/tmp/qws-runtime-close-jYPeLl)
qwen serve: bound to workspace "/tmp/qws-runtime-close-jYPeLl"
qwen serve: startup timing: processToListenMs=13661 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:11.887Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-close-jYPeLl secondary= daemon workspace roots initialized
2026-11-05T14:20:11.893Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: runtime startup failed: Daemon runtime stopped before mounting.
2026-11-05T14:20:11.894Z [ERROR] [DAEMON] runtime startup failed
  Error: Daemon runtime stopped before mounting.
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:9048:17
      at waitForRuntimeStartingForShutdown (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:2519:3)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:9363:17
2026-11-05T14:20:11.894Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:11.897Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:11.897Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:40229 (mode=http-bridge, workspace=/tmp/qws-runtime-monitor-close-HviYgL)
qwen serve: bound to workspace "/tmp/qws-runtime-monitor-close-HviYgL"
qwen serve: startup timing: processToListenMs=13671 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:11.898Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-monitor-close-HviYgL secondary= daemon workspace roots initialized
2026-11-05T14:20:11.903Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: runtime startup failed: Daemon runtime stopped before mounting.
2026-11-05T14:20:11.905Z [ERROR] [DAEMON] runtime startup failed
  Error: Daemon runtime stopped before mounting.
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:9048:17
      at waitForRuntimeStartingForShutdown (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:2519:3)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:9363:17
2026-11-05T14:20:11.905Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:11.909Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:11.909Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
qwen serve: bound to workspace "/tmp/qws-pr-refresh-degrade-HkILQE"
qwen serve: startup timing: processToListenMs=13684 runQwenServeToListenMs=1
2026-11-05T14:20:11.910Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
qwen serve listening on http://127.0.0.1:41069 (mode=http-bridge, workspace=/tmp/qws-pr-refresh-degrade-HkILQE)
2026-11-05T14:20:11.911Z [INFO] [DAEMON] deferred runtime: health served, scheduling start in 50ms
2026-11-05T14:20:11.961Z [INFO] [DAEMON] deferred runtime: health timer fired, starting
2026-11-05T14:20:11.962Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-pr-refresh-degrade-HkILQE secondary= daemon workspace roots initialized
2026-11-05T14:20:11.967Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.119Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:12.123Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.123Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-ws-ud272g/debug/daemon/daemon.log
2026-11-05T14:20:12.124Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-ud272g secondary= daemon workspace roots initialized
2026-11-05T14:20:12.129Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:43577 (mode=http-bridge, workspace=/tmp/qws-ws-ud272g)
qwen serve: bound to workspace "/tmp/qws-ws-ud272g"
qwen serve: startup timing: processToListenMs=13904 runQwenServeToListenMs=8
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.130Z [INFO] [DAEMON] daemon stopped
qwen serve: temporary bearer authentication enabled for this Web Shell launch; use an explicit shared token for additional clients.
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:12.131Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.132Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:12.132Z [ERROR] [DAEMON] daemon startup failed
  Error: --open-with-auth requires built Web Shell assets.
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4308:11)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:12079:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:12.133Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.133Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-ws-MZVcV2/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:20:12.134Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-MZVcV2 secondary= daemon workspace roots initialized
2026-11-05T14:20:12.139Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:46579 (mode=http-bridge, workspace=/tmp/qws-ws-MZVcV2)
qwen serve: bound to workspace "/tmp/qws-ws-MZVcV2"
qwen serve: startup timing: processToListenMs=13913 runQwenServeToListenMs=6
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.139Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:12.140Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.140Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-ws-JjtsgS/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist
2026-11-05T14:20:12.141Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-JjtsgS secondary= daemon workspace roots initialized
2026-11-05T14:20:12.146Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:45801 (mode=http-bridge, workspace=/tmp/qws-ws-JjtsgS)
qwen serve: bound to workspace "/tmp/qws-ws-JjtsgS"
qwen serve: startup timing: processToListenMs=13920 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.146Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:12.151Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.151Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-ws-J7S6gR/debug/daemon/daemon.log
2026-11-05T14:20:12.152Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-J7S6gR secondary= daemon workspace roots initialized
2026-11-05T14:20:12.157Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:44821 (mode=http-bridge, workspace=/tmp/qws-ws-J7S6gR)
qwen serve: bound to workspace "/tmp/qws-ws-J7S6gR"
qwen serve: startup timing: processToListenMs=13931 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.157Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:12.158Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.158Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-ws-r8GYCk/debug/daemon/daemon.log
2026-11-05T14:20:12.159Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-r8GYCk secondary= daemon workspace roots initialized
2026-11-05T14:20:12.163Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:43101 (mode=http-bridge, workspace=/tmp/qws-ws-r8GYCk)
qwen serve: bound to workspace "/tmp/qws-ws-r8GYCk"
qwen serve: startup timing: processToListenMs=13937 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.163Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:12.165Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.165Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-ws-zbCQuG/debug/daemon/daemon.log
2026-11-05T14:20:12.165Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-zbCQuG secondary= daemon workspace roots initialized
2026-11-05T14:20:12.170Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:40845 (mode=http-bridge, workspace=/tmp/qws-ws-zbCQuG)
qwen serve: bound to workspace "/tmp/qws-ws-zbCQuG"
qwen serve: startup timing: processToListenMs=13944 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.170Z [INFO] [DAEMON] daemon stopped
qwen serve listening on http://127.0.0.1:40959 (mode=http-bridge, workspace=/tmp/qws-ws-dC0VLZ)
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:12.178Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.178Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-ws-hxeWfc/debug/daemon/daemon.log
2026-11-05T14:20:12.178Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-hxeWfc secondary= daemon workspace roots initialized
2026-11-05T14:20:12.183Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:38279 (mode=http-bridge, workspace=/tmp/qws-ws-hxeWfc)
qwen serve: bound to workspace "/tmp/qws-ws-hxeWfc"
qwen serve: startup timing: processToListenMs=13957 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.183Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:12.189Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.190Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-ws-mfzRR9/debug/daemon/daemon.log
2026-11-05T14:20:12.190Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-mfzRR9 secondary= daemon workspace roots initialized
2026-11-05T14:20:12.195Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:44043 (mode=http-bridge, workspace=/tmp/qws-ws-mfzRR9)
qwen serve: bound to workspace "/tmp/qws-ws-mfzRR9"
qwen serve: startup timing: processToListenMs=13969 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.195Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:12.196Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.196Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-ws-j88nR2/debug/daemon/daemon.log
2026-11-05T14:20:12.197Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-j88nR2 secondary= daemon workspace roots initialized
2026-11-05T14:20:12.201Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:40849 (mode=http-bridge, workspace=/tmp/qws-ws-j88nR2)
qwen serve: bound to workspace "/tmp/qws-ws-j88nR2"
qwen serve: startup timing: processToListenMs=13976 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.202Z [INFO] [DAEMON] daemon stopped
qwen serve listening on http://127.0.0.1:43125 (mode=http-bridge, workspace=/tmp/qws-ws-T2YKkO)
qwen serve listening on http://127.0.0.1:45775 (mode=http-bridge, workspace=/tmp/qws-ws-o9pNHi)
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:20:12.269Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.269Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-ws-cROCQi/debug/daemon/daemon.log
2026-11-05T14:20:12.269Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-cROCQi secondary= daemon workspace roots initialized
2026-11-05T14:20:12.274Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: bound to workspace "/tmp/qws-ws-cROCQi"
qwen serve: startup timing: processToListenMs=14048 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve listening on http://127.0.0.1:46127 (mode=http-bridge, workspace=/tmp/qws-ws-cROCQi)
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.274Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:12.280Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.280Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-ws-ob5NPs/debug/daemon/daemon.log
2026-11-05T14:20:12.280Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-ob5NPs secondary= daemon workspace roots initialized
2026-11-05T14:20:12.285Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:42201 (mode=http-bridge, workspace=/tmp/qws-ws-ob5NPs)
qwen serve: bound to workspace "/tmp/qws-ws-ob5NPs"
qwen serve: startup timing: processToListenMs=14059 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.285Z [WARN] [DAEMON] availableBytes=20 maxQueuedBytes=220 maxQueuedMessages=2 queueSaturationGraceMs=10000 requiredBytes=200 ACP NDJSON decoded queue saturated
2026-11-05T14:20:12.286Z [WARN] [DAEMON] bytes=262144 direction=outbound messageKind=notification method=session/update sessionUpdate=agent_message_chunk sourceClass=session_update_notification thresholdBytes=262144 large ACP pipe frame observed
2026-11-05T14:20:12.287Z [INFO] [DAEMON] route=GET /daemon/status durationMs=1 status=200 request completed
2026-11-05T14:20:12.288Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:12.291Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.292Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-channel-capacity-pXnY8g/debug/daemon/daemon.log
2026-11-05T14:20:12.294Z [ERROR] [DAEMON] daemon startup failed
  Error: listener created
      at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:12743:15)
      at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/node_modules/@vitest/spy/dist/index.js:96:15)
      at Object.spy [as httpServerFactory] (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:9690:21
      at new Promise (<anonymous>)
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:8217:16)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:12747:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:12.301Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.301Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-channel-capacity-GZnDkk/debug/daemon/daemon.log
2026-11-05T14:20:12.303Z [ERROR] [DAEMON] daemon startup failed
  ChannelControlWorkspaceLimitError: Channel control supports at most 25 workspace owners; a transition also counts owners retained for recovery. Narrow the channel selection or reduce the number of channel-owning workspaces; for a runtime transition at capacity, successfully stop the channels on an existing owner before enabling a new one.
      at assertChannelControlWorkspaceCapacity (/startdir/src/qwen-code/packages/cli/src/serve/channel-control-capacity.ts:31:11)
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:8210:7)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:12747:7
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:12.309Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.309Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:12.309Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-tls-Pw1pab secondary= daemon workspace roots initialized
2026-11-05T14:20:12.314Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on https://127.0.0.1:43185 (mode=http-bridge, workspace=/tmp/qws-channel-tls-Pw1pab)
qwen serve: bound to workspace "/tmp/qws-channel-tls-Pw1pab"
qwen serve: startup timing: processToListenMs=14089 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.379Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:12.384Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.384Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:12.386Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-url-certify-cJoVEV secondary= daemon workspace roots initialized
2026-11-05T14:20:12.393Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:37305 (mode=http-bridge, workspace=/tmp/qws-channel-url-certify-cJoVEV)
qwen serve: bound to workspace "/tmp/qws-channel-url-certify-cJoVEV"
qwen serve: startup timing: processToListenMs=14172 runQwenServeToListenMs=14
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.398Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:12.407Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.407Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://0.0.0.0:43099 (mode=http-bridge, workspace=/tmp/qws-quickstart-args-wSst6w)
qwen serve: bound to workspace "/tmp/qws-quickstart-args-wSst6w"
qwen serve: startup timing: processToListenMs=14181 runQwenServeToListenMs=1
2026-11-05T14:20:12.408Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-quickstart-args-wSst6w secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
2026-11-05T14:20:12.413Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.414Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:12.416Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.416Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:12.417Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
2026-11-05T14:20:12.422Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:33089 (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=14196 runQwenServeToListenMs=6
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.422Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:12.425Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.425Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:12.425Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-quickstart-aton-WI3Y6q secondary= daemon workspace roots initialized
2026-11-05T14:20:12.430Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://0:44133 (mode=http-bridge, workspace=/tmp/qws-quickstart-aton-WI3Y6q)
qwen serve: bound to workspace "/tmp/qws-quickstart-aton-WI3Y6q"
qwen serve: startup timing: processToListenMs=14204 runQwenServeToListenMs=6
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.431Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:12.433Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.433Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: Web Shell UI served from /tmp/qws-quickstart-web-lCD6qe/web-shell
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: same-origin Web Shell HTTP requests work without --allow-origin, but WebSocket-backed features (terminal, voice) and browsers reaching the daemon through a TLS-terminating proxy still need --allow-origin <origin>. A plain-HTTP intermediary that rewrites the Host header (nginx default proxy_set_header, k8s Ingress) needs --allow-origin <origin> for the origin the browser sees, unless it forwards Host verbatim; port translation alone (ssh -L, docker -p) is fine.
2026-11-05T14:20:12.434Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-quickstart-web-lCD6qe secondary= daemon workspace roots initialized
2026-11-05T14:20:12.439Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://0.0.0.0:45699 (mode=http-bridge, workspace=/tmp/qws-quickstart-web-lCD6qe)
qwen serve: bound to workspace "/tmp/qws-quickstart-web-lCD6qe"
qwen serve: startup timing: processToListenMs=14213 runQwenServeToListenMs=6
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.439Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:12.446Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.446Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:12.446Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-requireauth-gen-ZbK887 secondary= daemon workspace roots initialized
2026-11-05T14:20:12.452Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://0.0.0.0:41113 (mode=http-bridge, workspace=/tmp/qws-requireauth-gen-ZbK887)
qwen serve: bound to workspace "/tmp/qws-requireauth-gen-ZbK887"
qwen serve: startup timing: processToListenMs=14226 runQwenServeToListenMs=7
qwen serve: --require-auth enabled (bearer token mandatory on every route, including loopback /health).
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.452Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
qwen serve: --allow-origin: * (WARNING: `*` admits any cross-origin browser — bearer token gates API routes; the Web Shell static assets stay pre-auth in every mode unless --no-web, and /health stays pre-auth on loopback unless --require-auth is set)
2026-11-05T14:20:12.455Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.455Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:12.456Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-anyorigin-gen-JXJuoX secondary= daemon workspace roots initialized
2026-11-05T14:20:12.461Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://0.0.0.0:43799 (mode=http-bridge, workspace=/tmp/qws-anyorigin-gen-JXJuoX)
qwen serve: bound to workspace "/tmp/qws-anyorigin-gen-JXJuoX"
qwen serve: startup timing: processToListenMs=14235 runQwenServeToListenMs=6
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.461Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
qwen serve: --allow-origin: https://app.example.com
2026-11-05T14:20:12.464Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.464Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:12.464Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-remoteorigin-gen-wDxBJV secondary= daemon workspace roots initialized
2026-11-05T14:20:12.469Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://0.0.0.0:34823 (mode=http-bridge, workspace=/tmp/qws-remoteorigin-gen-wDxBJV)
qwen serve: bound to workspace "/tmp/qws-remoteorigin-gen-wDxBJV"
qwen serve: startup timing: processToListenMs=14244 runQwenServeToListenMs=7
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.470Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:12.476Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.476Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:12.476Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
2026-11-05T14:20:12.481Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:46599 (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=14255 runQwenServeToListenMs=6
qwen serve: --require-auth enabled (bearer token mandatory on every route, including loopback /health).
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.481Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:12.488Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.488Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:12.488Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized
2026-11-05T14:20:12.494Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:43709 (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=14268 runQwenServeToListenMs=8
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.495Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:12.498Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.498Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:12.499Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-localhost-tls-eaWmw1 secondary= daemon workspace roots initialized
2026-11-05T14:20:12.504Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on https://localhost:36121 (mode=http-bridge, workspace=/tmp/qws-channel-localhost-tls-eaWmw1)
qwen serve: bound to workspace "/tmp/qws-channel-localhost-tls-eaWmw1"
qwen serve: startup timing: processToListenMs=14279 runQwenServeToListenMs=8
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.571Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:12.576Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.576Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:12.576Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-localhost-http-9VlkNL secondary= daemon workspace roots initialized
2026-11-05T14:20:12.582Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://localhost:34227 (mode=http-bridge, workspace=/tmp/qws-channel-localhost-http-9VlkNL)
qwen serve: bound to workspace "/tmp/qws-channel-localhost-http-9VlkNL"
qwen serve: startup timing: processToListenMs=14356 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.582Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:12.586Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.586Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:12.586Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-url-refuse-lkMQIl secondary= daemon workspace roots initialized
2026-11-05T14:20:12.591Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:38035 (mode=http-bridge, workspace=/tmp/qws-channel-url-refuse-lkMQIl)
qwen serve: bound to workspace "/tmp/qws-channel-url-refuse-lkMQIl"
qwen serve: startup timing: processToListenMs=14368 runQwenServeToListenMs=9
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: runtime startup failed: Channels cannot start: --hostname "127.0.0.1" is not a loopback bind
2026-11-05T14:20:12.594Z [ERROR] [DAEMON] runtime startup failed
  Error: Channels cannot start: --hostname "127.0.0.1" is not a loopback bind
      at channelWorkerUrlCertifier (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:13372:17)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:8806:13
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
2026-11-05T14:20:12.595Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:12.599Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.599Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-channel-gap-WbcPon/debug/daemon/daemon.log
2026-11-05T14:20:12.600Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-gap-WbcPon secondary= daemon workspace roots initialized
2026-11-05T14:20:12.604Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on https://[::1]:41003 (mode=http-bridge, workspace=/tmp/qws-channel-gap-WbcPon)
qwen serve: bound to workspace "/tmp/qws-channel-gap-WbcPon"
qwen serve: startup timing: processToListenMs=14379 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.656Z [WARN] [DAEMON] --tls-cert "/tmp/qws-channel-gap-WbcPon/cert.pem" has no subjectAltName covering "::1", the host channel workers dial — every worker handshake will fail ERR_TLS_CERT_ALTNAME_INVALID. Reissue the certificate with that host in its SANs and restart.
2026-11-05T14:20:12.657Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:12.662Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.662Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-channel-gap-q9CB0V/debug/daemon/daemon.log
2026-11-05T14:20:12.663Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-gap-q9CB0V secondary= daemon workspace roots initialized
2026-11-05T14:20:12.668Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on https://127.0.0.1:40563 (mode=http-bridge, workspace=/tmp/qws-channel-gap-q9CB0V)
qwen serve: bound to workspace "/tmp/qws-channel-gap-q9CB0V"
qwen serve: startup timing: processToListenMs=14442 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.717Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:12.722Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.722Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-channel-gap-CqSInt/debug/daemon/daemon.log
2026-11-05T14:20:12.723Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-gap-CqSInt secondary= daemon workspace roots initialized
2026-11-05T14:20:12.728Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on https://127.0.0.1:33895 (mode=http-bridge, workspace=/tmp/qws-channel-gap-CqSInt)
qwen serve: bound to workspace "/tmp/qws-channel-gap-CqSInt"
qwen serve: startup timing: processToListenMs=14502 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.754Z [WARN] [DAEMON] Channel worker TLS verification failed against the exact CA bundle workers receive (INVALID_PURPOSE): unsuitable certificate purpose
2026-11-05T14:20:12.754Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:12.759Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:12.759Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-channel-gap-MXipTW/debug/daemon/daemon.log
2026-11-05T14:20:12.760Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-gap-MXipTW secondary= daemon workspace roots initialized
2026-11-05T14:20:12.764Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on https://127.0.0.1:41077 (mode=http-bridge, workspace=/tmp/qws-channel-gap-MXipTW)
qwen serve: bound to workspace "/tmp/qws-channel-gap-MXipTW"
qwen serve: startup timing: processToListenMs=14541 runQwenServeToListenMs=9
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:12.767Z [WARN] [DAEMON] NODE_TLS_REJECT_UNAUTHORIZED=0 disables certificate verification for channel workers; skipping the worker TLS trust check.
2026-11-05T14:20:12.767Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.053Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.053Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-channel-inspect-KBKNv6/debug/daemon/daemon.log
2026-11-05T14:20:14.054Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-inspect-KBKNv6 secondary= daemon workspace roots initialized
2026-11-05T14:20:14.059Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on https://127.0.0.1:35121 (mode=http-bridge, workspace=/tmp/qws-channel-inspect-KBKNv6)
qwen serve: bound to workspace "/tmp/qws-channel-inspect-KBKNv6"
qwen serve: startup timing: processToListenMs=15833 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:14.059Z [WARN] [DAEMON] Channel worker TLS trust-gap inspection could not run: Inspecting NODE_EXTRA_CA_CERTS requires Node.js 22.15.0 or newer. Continuing with the live handshake probe only.
2026-11-05T14:20:14.060Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.064Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.064Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:14.065Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-tls-close-xNyygD secondary= daemon workspace roots initialized
2026-11-05T14:20:14.069Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on https://127.0.0.1:45699 (mode=http-bridge, workspace=/tmp/qws-channel-tls-close-xNyygD)
qwen serve: bound to workspace "/tmp/qws-channel-tls-close-xNyygD"
qwen serve: startup timing: processToListenMs=15843 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: runtime startup failed: Daemon stopped while the channel worker TLS trust check was running.
2026-11-05T14:20:14.091Z [ERROR] [DAEMON] runtime startup failed
  Error: Daemon stopped while the channel worker TLS trust check was running.
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:8878:21
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
2026-11-05T14:20:14.091Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.095Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.095Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:14.096Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-tls-lazy-7hzWpG secondary= daemon workspace roots initialized
2026-11-05T14:20:14.101Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on https://127.0.0.1:34237 (mode=http-bridge, workspace=/tmp/qws-channel-tls-lazy-7hzWpG)
qwen serve: bound to workspace "/tmp/qws-channel-tls-lazy-7hzWpG"
qwen serve: startup timing: processToListenMs=15875 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:14.124Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.164Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.164Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-channel-gap-yZWwpk/debug/daemon/daemon.log
2026-11-05T14:20:14.165Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-gap-yZWwpk secondary= daemon workspace roots initialized
2026-11-05T14:20:14.171Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on https://127.0.0.1:33305 (mode=http-bridge, workspace=/tmp/qws-channel-gap-yZWwpk)
qwen serve: bound to workspace "/tmp/qws-channel-gap-yZWwpk"
qwen serve: startup timing: processToListenMs=15946 runQwenServeToListenMs=44
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:14.222Z [WARN] [DAEMON] --tls-cert "/tmp/qws-channel-gap-yZWwpk/cert.pem" is issued by another CA (CN=qwen wiring test root CA), not self-signed, and no NODE_EXTRA_CA_CERTS is set, so nothing in the channel workers' bundle anchors their trust — every worker handshake to the daemon will fail UNABLE_TO_VERIFY_LEAF_SIGNATURE unless the issuing CA is already in the workers' default trust store. Point NODE_EXTRA_CA_CERTS at the issuing CA (for mkcert: "$(mkcert -CAROOT)/rootCA.pem") and restart.
2026-11-05T14:20:14.223Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.228Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.228Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-channel-gap-Anbx0Z/debug/daemon/daemon.log
2026-11-05T14:20:14.229Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-gap-Anbx0Z secondary= daemon workspace roots initialized
2026-11-05T14:20:14.233Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on https://127.0.0.1:34379 (mode=http-bridge, workspace=/tmp/qws-channel-gap-Anbx0Z)
qwen serve: bound to workspace "/tmp/qws-channel-gap-Anbx0Z"
qwen serve: startup timing: processToListenMs=16008 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:14.348Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.353Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.353Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-channel-gap-Qd3ceT/debug/daemon/daemon.log
2026-11-05T14:20:14.354Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-gap-Qd3ceT secondary= daemon workspace roots initialized
2026-11-05T14:20:14.358Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: bound to workspace "/tmp/qws-channel-gap-Qd3ceT"
qwen serve: startup timing: processToListenMs=16133 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve listening on https://127.0.0.1:34937 (mode=http-bridge, workspace=/tmp/qws-channel-gap-Qd3ceT)
(node:5004) Warning: qwen: failed to merge NODE_EXTRA_CA_CERTS "/tmp/qws-no-such-ca-file.pem" with the daemon cert "/tmp/qws-channel-gap-Qd3ceT/cert.pem": ENOENT: no such file or directory, stat '/tmp/qws-no-such-ca-file.pem'; channel workers will trust only the daemon cert
(Use `node --trace-warnings ...` to show where the warning was created)
2026-11-05T14:20:14.414Z [WARN] [DAEMON] NODE_EXTRA_CA_CERTS "/tmp/qws-no-such-ca-file.pem" could not be read by the daemon (ENOENT), so channel workers receive no CA from it — a root-owned or mode-600 file is the usual cause, and its contents are not the problem. Every worker handshake to the daemon will fail UNABLE_TO_VERIFY_LEAF_SIGNATURE unless the issuing CA is already in the workers' default trust store. Fix that file's permissions or path and restart.
2026-11-05T14:20:14.414Z [WARN] [DAEMON] --tls-cert "/tmp/qws-channel-gap-Qd3ceT/cert.pem" is issued by another CA (CN=qwen wiring test root CA), not self-signed, and NODE_EXTRA_CA_CERTS "/tmp/qws-no-such-ca-file.pem" could not be read, so whatever it carries reached nobody, so nothing in the channel workers' bundle anchors their trust — every worker handshake to the daemon will fail UNABLE_TO_VERIFY_LEAF_SIGNATURE unless the issuing CA is already in the workers' default trust store. Make NODE_EXTRA_CA_CERTS readable by the daemon as described above and restart.
2026-11-05T14:20:14.415Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.421Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.421Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:14.422Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-webhook-gQabuF secondary= daemon workspace roots initialized
2026-11-05T14:20:14.427Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:43041 (mode=http-bridge, workspace=/tmp/qws-channel-webhook-gQabuF)
qwen serve: bound to workspace "/tmp/qws-channel-webhook-gQabuF"
qwen serve: startup timing: processToListenMs=16201 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:14.428Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.433Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.433Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:14.433Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-webhook-disabled-Yb7h3x secondary= daemon workspace roots initialized
2026-11-05T14:20:14.438Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:41715 (mode=http-bridge, workspace=/tmp/qws-channel-webhook-disabled-Yb7h3x)
qwen serve: bound to workspace "/tmp/qws-channel-webhook-disabled-Yb7h3x"
qwen serve: startup timing: processToListenMs=16212 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:14.438Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.445Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.445Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:14.446Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-runtime-control-FhIbo5 secondary= daemon workspace roots initialized
2026-11-05T14:20:14.451Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:45593 (mode=http-bridge, workspace=/tmp/qws-channel-runtime-control-FhIbo5)
qwen serve: bound to workspace "/tmp/qws-channel-runtime-control-FhIbo5"
qwen serve: startup timing: processToListenMs=16225 runQwenServeToListenMs=6
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:14.452Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed
2026-11-05T14:20:14.753Z [INFO] [DAEMON] route=GET /workspace/channels durationMs=300 status=200 request completed
2026-11-05T14:20:14.756Z [INFO] [DAEMON] route=PUT /workspace/channel durationMs=1 status=201 request completed
2026-11-05T14:20:14.757Z [INFO] [DAEMON] route=GET /capabilities durationMs=0 status=200 request completed
2026-11-05T14:20:14.758Z [INFO] [DAEMON] route=PUT /workspace/channel durationMs=0 status=200 request completed
2026-11-05T14:20:14.759Z [INFO] [DAEMON] route=DELETE /workspace/channel durationMs=0 status=200 request completed
2026-11-05T14:20:14.759Z [INFO] [DAEMON] route=GET /capabilities durationMs=0 status=200 request completed
2026-11-05T14:20:14.760Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.766Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.766Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:14.767Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-runtime-race-WZBdRL secondary= daemon workspace roots initialized
2026-11-05T14:20:14.771Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: bound to workspace "/tmp/qws-channel-runtime-race-WZBdRL"
qwen serve: startup timing: processToListenMs=16546 runQwenServeToListenMs=7
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve listening on http://127.0.0.1:45639 (mode=http-bridge, workspace=/tmp/qws-channel-runtime-race-WZBdRL)
2026-11-05T14:20:14.773Z [INFO] [DAEMON] route=PUT /workspace/channel durationMs=1 status=201 request completed
2026-11-05T14:20:14.774Z [INFO] [DAEMON] route=PUT /workspace/channel durationMs=0 status=200 request completed
2026-11-05T14:20:14.774Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.779Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.779Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:14.780Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-runtime-fifo-9TJ0NM secondary= daemon workspace roots initialized
2026-11-05T14:20:14.785Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: bound to workspace "/tmp/qws-channel-runtime-fifo-9TJ0NM"
qwen serve: startup timing: processToListenMs=16559 runQwenServeToListenMs=7
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve listening on http://127.0.0.1:40327 (mode=http-bridge, workspace=/tmp/qws-channel-runtime-fifo-9TJ0NM)
2026-11-05T14:20:14.786Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.794Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.794Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:14.795Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-runtime-drain-Knh2IK secondary= daemon workspace roots initialized
2026-11-05T14:20:14.799Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:35825 (mode=http-bridge, workspace=/tmp/qws-channel-runtime-drain-Knh2IK)
qwen serve: bound to workspace "/tmp/qws-channel-runtime-drain-Knh2IK"
qwen serve: startup timing: processToListenMs=16574 runQwenServeToListenMs=6
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:14.800Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.803Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.803Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:14.804Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-runtime-unknown-Rcpg1x secondary= daemon workspace roots initialized
2026-11-05T14:20:14.809Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: bound to workspace "/tmp/qws-channel-runtime-unknown-Rcpg1x"
qwen serve: startup timing: processToListenMs=16583 runQwenServeToListenMs=6
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve listening on http://127.0.0.1:42817 (mode=http-bridge, workspace=/tmp/qws-channel-runtime-unknown-Rcpg1x)
2026-11-05T14:20:14.811Z [WARN] [DAEMON] route=PUT /workspace/channel durationMs=1 status=400 request completed
2026-11-05T14:20:14.811Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.815Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.815Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:14.816Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-runtime-conflict-zAhG6h secondary= daemon workspace roots initialized
2026-11-05T14:20:14.820Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: bound to workspace "/tmp/qws-channel-runtime-conflict-zAhG6h"
qwen serve: startup timing: processToListenMs=16594 runQwenServeToListenMs=6
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve listening on http://127.0.0.1:35757 (mode=http-bridge, workspace=/tmp/qws-channel-runtime-conflict-zAhG6h)
2026-11-05T14:20:14.821Z [WARN] [DAEMON] route=PUT /workspace/channel durationMs=1 status=409 request completed
2026-11-05T14:20:14.822Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.826Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.826Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:14.827Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-runtime-race-f0atKB secondary= daemon workspace roots initialized
2026-11-05T14:20:14.831Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: bound to workspace "/tmp/qws-channel-runtime-race-f0atKB"
qwen serve: startup timing: processToListenMs=16605 runQwenServeToListenMs=6
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve listening on http://127.0.0.1:34279 (mode=http-bridge, workspace=/tmp/qws-channel-runtime-race-f0atKB)
2026-11-05T14:20:14.835Z [WARN] [DAEMON] route=PUT /workspace/channel durationMs=1 status=409 request completed
2026-11-05T14:20:14.835Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.840Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.840Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:14.841Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-fail-HHCfdM secondary= daemon workspace roots initialized
2026-11-05T14:20:14.846Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:38059 (mode=http-bridge, workspace=/tmp/qws-channel-worker-fail-HHCfdM)
qwen serve: bound to workspace "/tmp/qws-channel-worker-fail-HHCfdM"
qwen serve: startup timing: processToListenMs=16620 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: runtime startup failed: worker boom
2026-11-05T14:20:14.846Z [ERROR] [DAEMON] runtime startup failed
  ChannelWorkerControlError: worker boom
      at applySelection (/startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:444:15)
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
      at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:544:9
2026-11-05T14:20:14.847Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.851Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.851Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:14.852Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-reload-02e0TJ secondary= daemon workspace roots initialized
2026-11-05T14:20:14.857Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:34659 (mode=http-bridge, workspace=/tmp/qws-channel-worker-reload-02e0TJ)
qwen serve: bound to workspace "/tmp/qws-channel-worker-reload-02e0TJ"
qwen serve: startup timing: processToListenMs=16631 runQwenServeToListenMs=6
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:14.859Z [INFO] [DAEMON] route=POST /workspace/channel/reload durationMs=1 status=200 request completed
2026-11-05T14:20:14.859Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.863Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.863Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-channel-worker-plan-pIGO9V/debug/daemon/daemon.log
2026-11-05T14:20:14.864Z [ERROR] [DAEMON] daemon startup failed
  Error: Channel "telegram" is configured in multiple registered workspaces (/tmp/qws-channel-worker-plan-pIGO9V/primary, /tmp/qws-channel-worker-plan-pIGO9V/secondary). Define it in one workspace's settings or set an explicit "cwd".
      at resolveChannelWorkspaceGroupsAtListen (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:8196:27)
      at onListening (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:9498:34)
      at Server.handleListening (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:9739:9)
      at Server.wrapper (node:events:639:12)
      at Server.emit (node:events:526:24)
      at emitListeningNT (node:net:2485:10)
      at processTicksAndRejections (node:internal/process/task_queues:89:21)
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.868Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.868Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-dynamic-worker-pidfile-0wBpOM/debug/daemon/daemon.log
qwen serve: bound to workspace "/tmp/qws-dynamic-worker-pidfile-0wBpOM/primary"
qwen serve: startup timing: processToListenMs=16643 runQwenServeToListenMs=1
2026-11-05T14:20:14.869Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-dynamic-worker-pidfile-0wBpOM/primary secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:43049 (mode=http-bridge, workspace=/tmp/qws-dynamic-worker-pidfile-0wBpOM/primary)
2026-11-05T14:20:14.873Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:14.875Z [INFO] [DAEMON] route=POST /workspaces durationMs=1 status=201 request completed
2026-11-05T14:20:14.877Z [INFO] [DAEMON] route=PUT /workspace/channel durationMs=1 status=201 request completed
2026-11-05T14:20:14.877Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.885Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.885Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-channel-worker-groups-7M5kXh/debug/daemon/daemon.log
2026-11-05T14:20:14.886Z [INFO] [DAEMON] channels=telegram workspace=/tmp/qws-channel-worker-groups-7M5kXh/primary channel worker group assigned
2026-11-05T14:20:14.886Z [INFO] [DAEMON] channels=feishu workspace=/tmp/qws-channel-worker-groups-7M5kXh/secondary channel worker group assigned
qwen serve: bound to workspace "/tmp/qws-channel-worker-groups-7M5kXh/primary"
qwen serve: startup timing: processToListenMs=16660 runQwenServeToListenMs=1
2026-11-05T14:20:14.886Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
qwen serve listening on http://127.0.0.1:45773 (mode=http-bridge, workspace=/tmp/qws-channel-worker-groups-7M5kXh/primary)
2026-11-05T14:20:14.887Z [WARN] [DAEMON] channelName=feishu reason="secret mismatch" source=github-ci deferred webhook auth failed
2026-11-05T14:20:14.888Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-groups-7M5kXh/primary secondary= daemon workspace roots initialized
2026-11-05T14:20:14.893Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:14.894Z [INFO] [DAEMON] route=GET /capabilities durationMs=0 status=200 request completed
2026-11-05T14:20:14.895Z [INFO] [DAEMON] channels=telegram pid=1234 workspace=/tmp/qws-channel-worker-groups-7M5kXh/primary channel worker ready
2026-11-05T14:20:14.895Z [INFO] [DAEMON] route=GET /capabilities durationMs=0 status=200 request completed
2026-11-05T14:20:14.895Z [INFO] [DAEMON] channels=feishu pid=5678 workspace=/tmp/qws-channel-worker-groups-7M5kXh/secondary channel worker ready
2026-11-05T14:20:14.896Z [INFO] [DAEMON] channelName=feishu eventType=check_failed source=github-ci targetRef=default channel webhook task accepted
2026-11-05T14:20:14.896Z [INFO] [DAEMON] route=POST /channels/feishu/webhooks/github-ci durationMs=0 status=202 request completed
2026-11-05T14:20:14.897Z [INFO] [DAEMON] route=GET /capabilities durationMs=0 status=200 request completed
2026-11-05T14:20:14.897Z [WARN] [DAEMON] route=DELETE /workspaces/623c78419753e400 durationMs=0 status=409 request completed
2026-11-05T14:20:14.899Z [INFO] [DAEMON] route=DELETE /workspaces/623c78419753e400 durationMs=1 status=200 request completed
2026-11-05T14:20:14.900Z [WARN] [DAEMON] channelName=feishu source=github-ci channel webhook authentication failed
2026-11-05T14:20:14.900Z [WARN] [DAEMON] route=POST /channels/feishu/webhooks/github-ci durationMs=0 status=401 request completed
2026-11-05T14:20:14.900Z [WARN] [DAEMON] channel worker [/tmp/qws-channel-worker-groups-7M5kXh/secondary] stderr: Ignored stale channel worker exit (generation=2).
2026-11-05T14:20:14.902Z [INFO] [DAEMON] route=POST /workspaces durationMs=1 status=201 request completed
2026-11-05T14:20:14.903Z [INFO] [DAEMON] route=GET /capabilities durationMs=0 status=200 request completed
2026-11-05T14:20:14.903Z [INFO] [DAEMON] route=PUT /workspace/channel durationMs=1 status=200 request completed
2026-11-05T14:20:14.904Z [INFO] [DAEMON] channelName=feishu eventType=check_failed source=github-ci targetRef=default channel webhook task accepted
2026-11-05T14:20:14.904Z [INFO] [DAEMON] route=POST /channels/feishu/webhooks/github-ci durationMs=0 status=202 request completed
2026-11-05T14:20:14.904Z [WARN] [DAEMON] channel worker exited (workspace=/tmp/qws-channel-worker-groups-7M5kXh/secondary, state=failed, pid=unknown, code=null, signal=null, error=worker stopped, restartCount=0, nextRestartAt=none, staleHeartbeatAt=none)
2026-11-05T14:20:14.905Z [INFO] [DAEMON] route=DELETE /workspaces/623c78419753e400 durationMs=0 status=200 request completed
2026-11-05T14:20:14.905Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.910Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.910Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:14.911Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-ygqpfK secondary= daemon workspace roots initialized
2026-11-05T14:20:14.916Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:37909 (mode=http-bridge, workspace=/tmp/qws-channel-worker-ygqpfK)
qwen serve: bound to workspace "/tmp/qws-channel-worker-ygqpfK"
qwen serve: startup timing: processToListenMs=16690 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:14.916Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.921Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.921Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:14.921Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-force-jXgWlm secondary= daemon workspace roots initialized
2026-11-05T14:20:14.926Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:45647 (mode=http-bridge, workspace=/tmp/qws-channel-worker-force-jXgWlm)
qwen serve: bound to workspace "/tmp/qws-channel-worker-force-jXgWlm"
qwen serve: startup timing: processToListenMs=16700 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:14.926Z [WARN] [DAEMON] received SIGTERM, draining
2026-11-05T14:20:14.926Z [WARN] [DAEMON] received SIGHUP during drain — forcing exit
2026-11-05T14:20:14.927Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.934Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.934Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:14.934Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-sighup-shutdown-m4khsq secondary= daemon workspace roots initialized
2026-11-05T14:20:14.939Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: bound to workspace "/tmp/qws-sighup-shutdown-m4khsq"
qwen serve: startup timing: processToListenMs=16713 runQwenServeToListenMs=9
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve listening on http://127.0.0.1:40309 (mode=http-bridge, workspace=/tmp/qws-sighup-shutdown-m4khsq)
2026-11-05T14:20:14.939Z [WARN] [DAEMON] received SIGHUP, draining
2026-11-05T14:20:14.939Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.944Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.944Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-channel-worker-stuck-ZIQetQ/debug/daemon/daemon.log
2026-11-05T14:20:14.944Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-stuck-ZIQetQ secondary= daemon workspace roots initialized
2026-11-05T14:20:14.949Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:43235 (mode=http-bridge, workspace=/tmp/qws-channel-worker-stuck-ZIQetQ)
qwen serve: bound to workspace "/tmp/qws-channel-worker-stuck-ZIQetQ"
qwen serve: startup timing: processToListenMs=16723 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:14.949Z [WARN] [DAEMON] received SIGTERM, draining
2026-11-05T14:20:14.950Z [ERROR] [DAEMON] channel worker stop error
  ChannelWorkerControlError: Channel worker did not exit after SIGKILL.
      at classifyFailure (/startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:346:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:836:17
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
2026-11-05T14:20:14.950Z [ERROR] [DAEMON] shutdown error
  ChannelWorkerControlError: Channel worker did not exit after SIGKILL.
      at classifyFailure (/startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:346:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:836:17
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
2026-11-05T14:20:14.950Z [ERROR] [DAEMON] refusing to exit while a channel worker or service lease remains; signal again to retry after the child exits (another signal during that retry forces exit)
2026-11-05T14:20:14.950Z [WARN] [DAEMON] received SIGTERM, draining
2026-11-05T14:20:14.950Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.954Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.954Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:14.955Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-acp-error-GlLDBt secondary= daemon workspace roots initialized
2026-11-05T14:20:14.959Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:44409 (mode=http-bridge, workspace=/tmp/qws-channel-acp-error-GlLDBt)
qwen serve: bound to workspace "/tmp/qws-channel-acp-error-GlLDBt"
qwen serve: startup timing: processToListenMs=16734 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:14.960Z [WARN] [DAEMON] received SIGTERM, draining
2026-11-05T14:20:14.960Z [ERROR] [DAEMON] ACP process registry shutdown error
  Error: ACP process shutdown failed
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:15475:7
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
2026-11-05T14:20:14.960Z [ERROR] [DAEMON] daemon shutdown incomplete
  Error: ACP process shutdown failed
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:15475:7
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
2026-11-05T14:20:14.960Z [ERROR] [DAEMON] shutdown error
  Error: ACP process shutdown failed
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:15475:7
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.964Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.964Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:14.965Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-combined-error-QtrF2E secondary= daemon workspace roots initialized
2026-11-05T14:20:14.969Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:37385 (mode=http-bridge, workspace=/tmp/qws-channel-combined-error-QtrF2E)
qwen serve: bound to workspace "/tmp/qws-channel-combined-error-QtrF2E"
qwen serve: startup timing: processToListenMs=16746 runQwenServeToListenMs=8
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:14.972Z [WARN] [DAEMON] received SIGTERM, draining
2026-11-05T14:20:14.972Z [ERROR] [DAEMON] channel worker stop error
  ChannelWorkerControlError: Channel worker did not exit after SIGKILL.
      at classifyFailure (/startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:346:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:836:17
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
2026-11-05T14:20:14.972Z [ERROR] [DAEMON] ACP process registry shutdown error
  Error: ACP process shutdown failed
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:15555:7
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
2026-11-05T14:20:14.972Z [ERROR] [DAEMON] shutdown error
  ChannelWorkerControlError: Channel worker did not exit after SIGKILL.
      at classifyFailure (/startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:346:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:836:17
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
2026-11-05T14:20:14.972Z [ERROR] [DAEMON] refusing to exit while a channel worker or service lease remains; signal again to retry after the child exits (another signal during that retry forces exit)
2026-11-05T14:20:14.972Z [WARN] [DAEMON] received SIGTERM, draining
2026-11-05T14:20:14.972Z [ERROR] [DAEMON] ACP process registry shutdown error
  Error: ACP process shutdown failed
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:15555:7
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
2026-11-05T14:20:14.973Z [ERROR] [DAEMON] daemon shutdown incomplete
  Error: ACP process shutdown failed
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:15555:7
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
2026-11-05T14:20:14.973Z [ERROR] [DAEMON] shutdown error
  Error: ACP process shutdown failed
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:15555:7
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.978Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.978Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:14.979Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-aggregate-error-3zQ1Ar secondary= daemon workspace roots initialized
2026-11-05T14:20:14.984Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:46573 (mode=http-bridge, workspace=/tmp/qws-channel-aggregate-error-3zQ1Ar)
qwen serve: bound to workspace "/tmp/qws-channel-aggregate-error-3zQ1Ar"
qwen serve: startup timing: processToListenMs=16758 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:14.984Z [WARN] [DAEMON] received SIGTERM, draining
2026-11-05T14:20:14.985Z [ERROR] [DAEMON] channel worker stop error
  ChannelWorkerControlError: Channel worker did not exit after SIGKILL.
      at classifyFailure (/startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:346:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:836:17
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
2026-11-05T14:20:14.985Z [ERROR] [DAEMON] shutdown error
  AggregateError: Serve app shutdown is incomplete.
      at ServeAppLifecycleController.closeOnce (/startdir/src/qwen-code/packages/cli/src/serve/serve-app-lifecycle.ts:214:13)
2026-11-05T14:20:14.985Z [ERROR] [DAEMON] refusing to exit while a channel worker or service lease remains; signal again to retry after the child exits (another signal during that retry forces exit)
2026-11-05T14:20:14.985Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:14.990Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:14.990Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-channel-log-stuck-QknQ12/debug/daemon/daemon.log
2026-11-05T14:20:14.991Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-log-stuck-QknQ12 secondary= daemon workspace roots initialized
2026-11-05T14:20:14.996Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:42405 (mode=http-bridge, workspace=/tmp/qws-channel-log-stuck-QknQ12)
qwen serve: bound to workspace "/tmp/qws-channel-log-stuck-QknQ12"
qwen serve: startup timing: processToListenMs=16771 runQwenServeToListenMs=8
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:14.998Z [WARN] [DAEMON] route=GET /blocked-access-log durationMs=0 status=404 request completed
2026-11-05T14:20:14.999Z [ERROR] [DAEMON] channel worker stop error
  ChannelWorkerControlError: Channel worker did not exit after SIGKILL.
      at classifyFailure (/startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:346:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:836:17
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
2026-11-05T14:20:15.249Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:15.254Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:15.254Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:15.255Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-bridge-stuck-nO43W4 secondary= daemon workspace roots initialized
2026-11-05T14:20:15.260Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:36533 (mode=http-bridge, workspace=/tmp/qws-channel-bridge-stuck-nO43W4)
qwen serve: bound to workspace "/tmp/qws-channel-bridge-stuck-nO43W4"
qwen serve: startup timing: processToListenMs=17035 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:15.261Z [ERROR] [DAEMON] channel worker stop error
  ChannelWorkerControlError: Channel worker did not exit after SIGKILL.
      at classifyFailure (/startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:346:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:836:17
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
2026-11-05T14:20:15.261Z [WARN] [DAEMON] error="bridge still draining" reason=daemon_shutdown workspace=/tmp/qws-channel-bridge-stuck-nO43W4 workspace bridge required forceful shutdown
2026-11-05T14:20:15.261Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:15.266Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:15.266Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:15.267Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-fallback-ZRGUDE secondary= daemon workspace roots initialized
2026-11-05T14:20:15.272Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:35733 (mode=http-bridge, workspace=/tmp/qws-channel-worker-fallback-ZRGUDE)
qwen serve: bound to workspace "/tmp/qws-channel-worker-fallback-ZRGUDE"
qwen serve: startup timing: processToListenMs=17049 runQwenServeToListenMs=10
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:15.276Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:15.282Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:15.282Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:15.283Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-fallback-cE6Ujt secondary= daemon workspace roots initialized
2026-11-05T14:20:15.287Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:38355 (mode=http-bridge, workspace=/tmp/qws-channel-worker-fallback-cE6Ujt)
qwen serve: bound to workspace "/tmp/qws-channel-worker-fallback-cE6Ujt"
qwen serve: startup timing: processToListenMs=17062 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:15.288Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:15.293Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:15.293Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:15.294Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-pidfile-m4aIM7 secondary= daemon workspace roots initialized
2026-11-05T14:20:15.298Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:35243 (mode=http-bridge, workspace=/tmp/qws-channel-worker-pidfile-m4aIM7)
qwen serve: bound to workspace "/tmp/qws-channel-worker-pidfile-m4aIM7"
qwen serve: startup timing: processToListenMs=17072 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:15.298Z [WARN] [DAEMON] failed to write channel worker pidfile metadata: disk full
2026-11-05T14:20:15.299Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:15.303Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:15.303Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:15.304Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-ready-9bJYRl secondary= daemon workspace roots initialized
2026-11-05T14:20:15.308Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:37051 (mode=http-bridge, workspace=/tmp/qws-channel-worker-ready-9bJYRl)
qwen serve: bound to workspace "/tmp/qws-channel-worker-ready-9bJYRl"
qwen serve: startup timing: processToListenMs=17083 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:15.309Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:15.313Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:15.314Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-channel-worker-log-Impgip/debug/daemon/daemon.log
2026-11-05T14:20:15.314Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-log-Impgip secondary= daemon workspace roots initialized
2026-11-05T14:20:15.318Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:34189 (mode=http-bridge, workspace=/tmp/qws-channel-worker-log-Impgip)
qwen serve: bound to workspace "/tmp/qws-channel-worker-log-Impgip"
qwen serve: startup timing: processToListenMs=17095 runQwenServeToListenMs=8
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:15.321Z [WARN] [DAEMON] channel worker stderr: adapter failed with <redacted>
2026-11-05T14:20:15.321Z [WARN] [DAEMON] channel worker exited (state=exited, pid=1234, code=1, signal=null, error=ipc failed, restartCount=2, nextRestartAt=2026-07-01T01:00:05.000Z, staleHeartbeatAt=2026-07-01T01:00:00.000Z)
2026-11-05T14:20:15.321Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:15.327Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:15.327Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:15.328Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-loopback-eay8zq secondary= daemon workspace roots initialized
2026-11-05T14:20:15.332Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://0.0.0.0:38209 (mode=http-bridge, workspace=/tmp/qws-channel-worker-loopback-eay8zq)
qwen serve: bound to workspace "/tmp/qws-channel-worker-loopback-eay8zq"
qwen serve: startup timing: processToListenMs=17107 runQwenServeToListenMs=6
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:15.333Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:15.338Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:15.338Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:15.338Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-timeout-2Sd82E secondary= daemon workspace roots initialized
2026-11-05T14:20:15.342Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:42375 (mode=http-bridge, workspace=/tmp/qws-channel-worker-timeout-2Sd82E)
qwen serve: bound to workspace "/tmp/qws-channel-worker-timeout-2Sd82E"
qwen serve: startup timing: processToListenMs=17117 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: runtime startup failed: Daemon runtime startup timed out after 1ms.
2026-11-05T14:20:15.344Z [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:8698:13)
      at listOnTimeout (node:internal/timers:685:17)
      at processTimers (node:internal/timers:618:7)
2026-11-05T14:20:15.344Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:15.349Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:15.349Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:15.349Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-status-pKOcAI secondary= daemon workspace roots initialized
2026-11-05T14:20:15.353Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:35913 (mode=http-bridge, workspace=/tmp/qws-channel-worker-status-pKOcAI)
qwen serve: bound to workspace "/tmp/qws-channel-worker-status-pKOcAI"
qwen serve: startup timing: processToListenMs=17128 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:15.354Z [WARN] [DAEMON] channel worker exited (state=exited, pid=1234, code=1, signal=null, error=ipc failed, restartCount=0, nextRestartAt=none, staleHeartbeatAt=none)
2026-11-05T14:20:15.355Z [INFO] [DAEMON] route=GET /daemon/status durationMs=1 status=200 request completed
2026-11-05T14:20:15.356Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:15.361Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:15.361Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:15.361Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-fail-kd6CjQ secondary= daemon workspace roots initialized
2026-11-05T14:20:15.366Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:37519 (mode=http-bridge, workspace=/tmp/qws-channel-worker-fail-kd6CjQ)
qwen serve: bound to workspace "/tmp/qws-channel-worker-fail-kd6CjQ"
qwen serve: startup timing: processToListenMs=17143 runQwenServeToListenMs=8
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: runtime startup failed: worker failed before ready
2026-11-05T14:20:15.369Z [ERROR] [DAEMON] runtime startup failed
  ChannelWorkerControlError: worker failed before ready
      at applySelection (/startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:444:15)
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
      at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:544:9
2026-11-05T14:20:15.369Z [ERROR] [DAEMON] daemon startup failed
  ChannelWorkerControlError: worker failed before ready
      at applySelection (/startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:444:15)
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
      at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:544:9
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:15.374Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:15.374Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:15.374Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-untrusted-kGwbkP secondary= daemon workspace roots initialized
2026-11-05T14:20:15.379Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:15.379Z [ERROR] [DAEMON] daemon startup failed
  Error: Primary workspace "/tmp/qws-channel-untrusted-kGwbkP" is not trusted; cannot host channels.
      at resolveChannelWorkspaceGroupsAtListen (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:8133:11)
      at onListening (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:9498:34)
      at Server.handleListening (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:9739:9)
      at Server.wrapper (node:events:639:12)
      at Server.emit (node:events:526:24)
      at emitListeningNT (node:net:2485:10)
      at processTicksAndRejections (node:internal/process/task_queues:89:21)
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:15.384Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:15.384Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:15.384Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-startup-cleanup-K8tmso secondary= daemon workspace roots initialized
2026-11-05T14:20:15.388Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:15.389Z [ERROR] [DAEMON] daemon startup failed
  AggregateError: Primary workspace "/tmp/qws-channel-startup-cleanup-K8tmso" is not trusted; cannot host channels.
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:9508:19
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:15.393Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:15.393Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:15.394Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-retained-08A7lh secondary= daemon workspace roots initialized
2026-11-05T14:20:15.398Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:35135 (mode=http-bridge, workspace=/tmp/qws-channel-worker-retained-08A7lh)
qwen serve: bound to workspace "/tmp/qws-channel-worker-retained-08A7lh"
qwen serve: startup timing: processToListenMs=17172 runQwenServeToListenMs=6
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: runtime startup failed: worker failed before ready
2026-11-05T14:20:15.398Z [ERROR] [DAEMON] runtime startup failed
  ChannelWorkerControlError: worker failed before ready
      at applySelection (/startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:444:15)
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
      at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:544:9
2026-11-05T14:20:15.399Z [ERROR] [DAEMON] channel worker stop after runtime startup error failed
  ChannelWorkerControlError: Channel worker did not exit after SIGKILL.
      at classifyFailure (/startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:346:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:836:17
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
2026-11-05T14:20:15.399Z [ERROR] [DAEMON] channel worker stop error
  ChannelWorkerControlError: Channel worker did not exit after SIGKILL.
      at classifyFailure (/startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:346:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:836:17
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
2026-11-05T14:20:15.399Z [ERROR] [DAEMON] shutdown after runtime startup error failed
  ChannelWorkerControlError: Channel worker did not exit after SIGKILL.
      at classifyFailure (/startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:346:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:836:17
      at processTicksAndRejections (node:internal/process/task_queues:104:5)
2026-11-05T14:20:15.399Z [ERROR] [DAEMON] runtime startup failed, but qwen serve remains alive to retain the channel service lease until worker exit is confirmed
2026-11-05T14:20:16.443Z [WARN] [DAEMON] received SIGTERM, draining
2026-11-05T14:20:16.443Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:16.450Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:16.450Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:16.450Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-busy-REfttA secondary= daemon workspace roots initialized
2026-11-05T14:20:16.455Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:16.458Z [ERROR] [DAEMON] daemon startup failed
  Error: Channel service is already running under qwen serve (PID 9999). Stop it before enabling daemon-managed channels.
      at channelServicePidfileConflictError (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:1996:5)
      at reserveChannelServicePidfile (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3508:13)
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:8214:5)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:16470:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:16.474Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:16.474Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:16.475Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-stale-0mZN9H secondary= daemon workspace roots initialized
2026-11-05T14:20:16.482Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:43097 (mode=http-bridge, workspace=/tmp/qws-channel-worker-stale-0mZN9H)
qwen serve: bound to workspace "/tmp/qws-channel-worker-stale-0mZN9H"
qwen serve: startup timing: processToListenMs=18258 runQwenServeToListenMs=19
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:16.485Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:16.523Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:16.524Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:16.524Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-listen-8kz3Se secondary= daemon workspace roots initialized
2026-11-05T14:20:16.530Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:16.531Z [ERROR] [DAEMON] daemon startup failed
  RangeError: options.port should be >= 0 and < 65536. Received type number (-1).
      at Server.listen (node:net:2613:5)
      at tryListen (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:9776:16)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:9798:5
      at new Promise (<anonymous>)
      at runQwenServeImpl (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:8217:16)
      at Module.runQwenServe (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3210:12)
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:16550:5
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve listening on http://127.0.0.1:44125 (mode=http-bridge, workspace=/tmp/qws-port-retry-S2g5cY)
2026-11-05T14:20:16.539Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:16.545Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:16.545Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:16.545Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-port-no-retry-79gbkh secondary= daemon workspace roots initialized
2026-11-05T14:20:16.546Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:16.546Z [ERROR] [DAEMON] daemon startup failed
  Error: permission denied
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:16643:25
      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)
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:16.558Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:16.558Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:16.558Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-port0-no-retry-KW449e secondary= daemon workspace roots initialized
2026-11-05T14:20:16.559Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:16.559Z [ERROR] [DAEMON] daemon startup failed
  Error: address in use
      at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:16728:25
      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)
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:16.564Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:16.564Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:16.565Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-crash-5ugfYD secondary= daemon workspace roots initialized
2026-11-05T14:20:16.570Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:33357 (mode=http-bridge, workspace=/tmp/qws-channel-worker-crash-5ugfYD)
qwen serve: bound to workspace "/tmp/qws-channel-worker-crash-5ugfYD"
qwen serve: startup timing: processToListenMs=18344 runQwenServeToListenMs=7
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:16.571Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:16.576Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:16.576Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
2026-11-05T14:20:16.577Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-unhandled-YsMvIf secondary= daemon workspace roots initialized
2026-11-05T14:20:16.582Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve listening on http://127.0.0.1:36743 (mode=http-bridge, workspace=/tmp/qws-channel-worker-unhandled-YsMvIf)
qwen serve: bound to workspace "/tmp/qws-channel-worker-unhandled-YsMvIf"
qwen serve: startup timing: processToListenMs=18357 runQwenServeToListenMs=8
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:16.583Z [INFO] [DAEMON] daemon stopped
qwen serve listening on http://127.0.0.1:33023 (mode=http-bridge, workspace=/tmp/qws-allow-origin-5SyMWU)
2026-11-05T14:20:16.597Z [INFO] [DAEMON] daemon stopped
qwen serve listening on http://127.0.0.1:43523 (mode=http-bridge, workspace=/tmp/qws-startup-runtime-dir-6SU5Er)
qwen serve listening on http://127.0.0.1:35239 (mode=http-bridge, workspace=/tmp/qws-startup-log-dep-VNu0yd)
qwen serve listening on http://127.0.0.1:35547 (mode=http-bridge, workspace=/tmp/qws-startup-storage-dir-Kb5Dgv)
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:16.653Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:16.653Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: bound to workspace "/tmp/qws-startup-preheat-RzeQo6"
qwen serve: startup timing: processToListenMs=18428 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:16.654Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-startup-preheat-RzeQo6 secondary= daemon workspace roots initialized
qwen serve listening on http://127.0.0.1:43865 (mode=http-bridge, workspace=/tmp/qws-startup-preheat-RzeQo6)
2026-11-05T14:20:16.659Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:16.661Z [INFO] [DAEMON] route=GET /daemon/status durationMs=1 status=200 request completed
2026-11-05T14:20:16.662Z [INFO] [DAEMON] route=GET /daemon/status durationMs=0 status=200 request completed
2026-11-05T14:20:16.663Z [INFO] [DAEMON] route=GET /daemon/status durationMs=0 status=200 request completed
2026-11-05T14:20:16.663Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:16.669Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:16.669Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:44597 (mode=http-bridge, workspace=/tmp/qws-startup-default-preheat-zE69AZ)
qwen serve: bound to workspace "/tmp/qws-startup-default-preheat-zE69AZ"
qwen serve: startup timing: processToListenMs=18443 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:16.670Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-startup-default-preheat-zE69AZ secondary= daemon workspace roots initialized
2026-11-05T14:20:16.675Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:16.676Z [INFO] [DAEMON] route=GET /daemon/status durationMs=1 status=200 request completed
2026-11-05T14:20:16.677Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:16.683Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:16.683Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:40539 (mode=http-bridge, workspace=/tmp/qws-startup-untrusted-L6cizC)
qwen serve: bound to workspace "/tmp/qws-startup-untrusted-L6cizC"
qwen serve: startup timing: processToListenMs=18457 runQwenServeToListenMs=1
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:20:16.684Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-startup-untrusted-L6cizC secondary= daemon workspace roots initialized
qwen serve: /acp WebSocket transport enabled on /acp
2026-11-05T14:20:16.690Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
2026-11-05T14:20:16.694Z [INFO] [DAEMON] route=GET /daemon/status durationMs=1 status=200 request completed
2026-11-05T14:20:16.695Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp, NODE_OPTIONS
2026-11-05T14:20:16.701Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:20:16.701Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp,NODE_OPTIONS scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qws-run-serve-tests-79uUKg/debug/daemon/daemon.log
qwen serve: bound to workspace "/tmp/qws-startup-preheat-A0XkGe"
qwen serve: startup timing: processToListenMs=18475 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
qwen serve listening on http://127.0.0.1:46161 (mode=http-bridge, workspace=/tmp/qws-startup-preheat-A0XkGe)
2026-11-05T14:20:16.702Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-startup-preheat-A0XkGe secondary= daemon workspace roots initialized
2026-11-05T14:20:16.707Z [WARN] [DAEMON] session-pr-refresh load failed: [vitest] There was an error when mocking a module. If you are using "vi.mock" factory, make sure there are no top level variables inside, since this call is hoisted to top of the file. Read more: https://vitest.dev/api/vi.html#vi-mock
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: ACP preheat failed, will retry on first session: preheat boom
2026-11-05T14:20:16.708Z [INFO] [DAEMON] route=GET /daemon/status durationMs=1 status=200 request completed
2026-11-05T14:20:16.709Z [INFO] [DAEMON] route=GET /daemon/status durationMs=0 status=200 request completed
2026-11-05T14:20:16.710Z [INFO] [DAEMON] daemon stopped
 ✓ src/serve/run-qwen-serve.test.ts (396 tests) 16833ms
   ✓ runQwenServe runtime startup failures > keeps health responsive before starting deferred runtime work  359ms
   ✓ runQwenServe runtime startup failures > starts deferred runtime on fallback when no health probe arrives  1011ms
   ✓ runQwenServe runtime startup failures > does not start deferred runtime after close before first health  1110ms
   ✓ runQwenServe runtime startup failures > disposes a deferred runtime app that finishes after the shutdown wait  5156ms
   ✓ runQwenServe channel worker supervisor > normalizes a killed TLS trust probe to the generic failure code  1257ms
   ✓ runQwenServe channel worker supervisor > enables, queries, idempotently reapplies, and stops channels after boot  321ms
   ✓ runQwenServe channel worker supervisor > keeps the serve owner alive when failed startup cannot confirm worker exit  1056ms
 ✓ src/commands/review/agent-prompt.test.ts (312 tests) 345ms
 ✓ src/nonInteractiveCli.test.ts (163 tests | 1 skipped) 1645ms
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440111"] archived=0 archivedIds=[] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440111":"Session \"550e8400-e29b-41d4-a716-446655440111\" exists in both active and archiv]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440202"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440202"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655441202"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655441202"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions unarchive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440203"] unarchived=1 unarchivedIds=["550e8400-e29b-41d4-a716-446655440203"] alreadyActive=0 alreadyActiveIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions unarchive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655441203"] unarchived=1 unarchivedIds=["550e8400-e29b-41d4-a716-446655441203"] alreadyActive=0 alreadyActiveIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440205"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440205"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655441205"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655441205"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions unarchive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440206"] unarchived=1 unarchivedIds=["550e8400-e29b-41d4-a716-446655440206"] alreadyActive=0 alreadyActiveIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions unarchive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655441206"] unarchived=1 unarchivedIds=["550e8400-e29b-41d4-a716-446655441206"] alreadyActive=0 alreadyActiveIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440208"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440208"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655441208"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655441208"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions unarchive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440209"] unarchived=1 unarchivedIds=["550e8400-e29b-41d4-a716-446655440209"] alreadyActive=0 alreadyActiveIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions unarchive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655441209"] unarchived=1 unarchivedIds=["550e8400-e29b-41d4-a716-446655441209"] alreadyActive=0 alreadyActiveIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=2 requestedIds=["550e8400-e29b-41d4-a716-446655440211","550e8400-e29b-41d4-a716-446655440212"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440211"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440212":"Session storage entry for \"550e8400-e29b-41d4-a716-446655440212\" is not a regul]
qwen serve: sessions archive result requested=2 requestedIds=["550e8400-e29b-41d4-a716-446655440211","550e8400-e29b-41d4-a716-446655440212"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440211"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440212":"Session storage entry for \"550e8400-e29b-41d4-a716-446655440212\" is not a regul]
qwen serve: sessions archive result requested=2 requestedIds=["550e8400-e29b-41d4-a716-446655440217","550e8400-e29b-41d4-a716-446655440218"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440217"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440218":"permission denied"]
qwen serve: sessions archive result requested=2 requestedIds=["550e8400-e29b-41d4-a716-446655440217","550e8400-e29b-41d4-a716-446655440218"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440217"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440218":"permission denied"]
qwen serve: sessions archive result requested=2 requestedIds=["550e8400-e29b-41d4-a716-446655440217","550e8400-e29b-41d4-a716-446655440218"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440217"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440218":"The session transcript changed outside its active writer."]
qwen serve: sessions archive result requested=2 requestedIds=["550e8400-e29b-41d4-a716-446655440217","550e8400-e29b-41d4-a716-446655440218"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440217"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440218":"The session transcript changed outside its active writer."]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440215"] archived=0 archivedIds=[] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440215":"Session \"550e8400-e29b-41d4-a716-446655440215\" does not have unambiguous worksp]
qwen serve: sessions archive result requested=2 requestedIds=["550e8400-e29b-41d4-a716-446655440213","550e8400-e29b-41d4-a716-446655440214"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440213"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440214":"Session transcript identity could not be verified on this filesystem."]
qwen serve: sessions archive result requested=2 requestedIds=["550e8400-e29b-41d4-a716-446655440213","550e8400-e29b-41d4-a716-446655440214"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440213"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440214":"Session transcript identity could not be verified on this filesystem."]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440210"] archived=0 archivedIds=[] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440210":"Workspace runtime generation is no longer active."]
qwen serve: bridge error (POST /session/:id/resume session=550e8400-e29b-41d4-a716-446655440106): Error: Live conversation directory relocation was rejected.
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:4049:25
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
    at SessionArchiveCoordinator.runSharedMany (/startdir/src/qwen-code/packages/cli/src/serve/server/session-archive.ts:200:14)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:3809:25
qwen serve: bridge error (POST /session/:id/resume session=550e8400-e29b-41d4-a716-446655440107): Error: Live conversation directory relocation was rejected.
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:4049:25
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
    at SessionArchiveCoordinator.runSharedMany (/startdir/src/qwen-code/packages/cli/src/serve/server/session-archive.ts:200:14)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:3809:25
qwen serve: bridge error (POST /session/:id/resume session=550e8400-e29b-41d4-a716-446655440108): Error: Live conversation directory relocation was rejected.
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:4049:25
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
    at SessionArchiveCoordinator.runSharedMany (/startdir/src/qwen-code/packages/cli/src/serve/server/session-archive.ts:200:14)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:3809:25
qwen serve: bridge error (POST /session/:id/load session=550e8400-e29b-41d4-a716-446655440109): Error: Live conversation child was replaced by a symlink.
    at Object.materializeConversationDirectory (/startdir/src/qwen-code/packages/cli/src/serve/multi-workspace-sessions.test.ts:3059:21)
    at materializeLiveConversationDirectory (/startdir/src/qwen-code/packages/cli/src/serve/server.ts:2958:48)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:3977:43
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
    at SessionArchiveCoordinator.runSharedMany (/startdir/src/qwen-code/packages/cli/src/serve/server/session-archive.ts:200:14)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:3809:25
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440130"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440130"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=2 requestedIds=["550e8400-e29b-41d4-a716-446655440140","550e8400-e29b-41d4-a716-446655440141"] archived=2 archivedIds=["550e8400-e29b-41d4-a716-446655440140","550e8400-e29b-41d4-a716-446655440141"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: session-org: Failed to read session organization store at /tmp/qwen-multi-workspace-sessions-c9OA2V/projects/-work-secondary/session-organization.v1.json: Expected property name or '}' in JSON at position 1 (line 1 column 2)
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440283"] archived=0 archivedIds=[] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440283":"Session \"550e8400-e29b-41d4-a716-446655440283\" is being archived or unarchived;]
qwen serve: deleteSession failed for "550e8400-e29b-41d4-a716-446655440283": "Session \"550e8400-e29b-41d4-a716-446655440283\" is being archived or unarchived;
qwen serve: sessions unarchive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440289"] unarchived=0 unarchivedIds=[] alreadyActive=0 alreadyActiveIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440289":"Session \"550e8400-e29b-41d4-a716-446655440289\" is being archived or unarchived;]
qwen serve: deleteSession failed for "550e8400-e29b-41d4-a716-446655440289": "Session \"550e8400-e29b-41d4-a716-446655440289\" is being archived or unarchived;
qwen serve: sessions unarchive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440290"] unarchived=1 unarchivedIds=["550e8400-e29b-41d4-a716-446655440290"] alreadyActive=0 alreadyActiveIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440164"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440164"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: session-org: Failed to read session organization store at /tmp/qwen-multi-workspace-sessions-IJCaJE/projects/-work-secondary/session-organization.v1.json: Expected property name or '}' in JSON at position 1 (line 1 column 2)
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440120"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440120"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions unarchive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440120"] unarchived=1 unarchivedIds=["550e8400-e29b-41d4-a716-446655440120"] alreadyActive=0 alreadyActiveIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440122"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440122"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions unarchive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440122"] unarchived=1 unarchivedIds=["550e8400-e29b-41d4-a716-446655440122"] alreadyActive=0 alreadyActiveIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440123"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440123"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440210"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440210"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
 ✓ src/serve/multi-workspace-sessions.test.ts (158 tests) 2975ms
   ✓ multi-workspace session dispatch > exports only the selected workspace archived transcript in every format  734ms
 ✓ src/commands/review/submit.test.ts (197 tests) 225ms
 ✓ src/config/settings.test.ts (197 tests) 113ms
 ✓ src/config/config.test.ts (417 tests) 925ms
WARNING: could not read the a1 version from "" — the review provider requires a1 >= 0.1.90; continuing.
WARNING: could not read the a1 version from "" — the review provider requires a1 >= 0.1.90; continuing.
 ✓ src/commands/review/fetch-pr.test.ts (167 tests) 93ms
 ✓ src/commands/review/pr-context.test.ts (175 tests) 53ms
 ✓ src/agent-view/supervisor-process.test.ts (86 tests) 1510ms
   ✓ Agent View supervisor process helpers > fails attach quickly for an active session with a stale persisted PTY host  509ms
   ✓ Agent View supervisor process helpers > fails closed when worker liveness data is unreadable  304ms
 ✓ src/commands/review/build-test.test.ts (109 tests) 20389ms
   ✓ runBuildTest > attempts every suite with the REMAINING budget and names only the never-attempted  2003ms
   ✓ runBuildTest > names budget-stopped UNTESTABLE suites in notRun too  2002ms
   ✓ runBuildTest > discloses a budget-stopped single-root suite instead of claiming no test script  2002ms
   ✓ runBuildTest > --resume: the ceiling is per call, not per run > keeps reporting work left when a retry is killed AGAIN by the budget  2002ms
   ✓ runBuildTest > --resume: the ceiling is per call, not per run > counts an unattempted RETRY as work left, not as nothing  2002ms
   ✓ runBuildTest > --resume: the ceiling is per call, not per run > the caveat names BOTH halves when work is unattempted AND re-clamped  6002ms
   ✓ runBuildTest > --resume: the ceiling is per call, not per run > runs the AFFECTED pending suite first — the fresh path's invariant  2002ms
   ✓ runBuildTest > --resume: the ceiling is per call, not per run > retires its own clause whole across a SECOND resume  2002ms
 ✓ src/commands/review/lib/worktree.test.ts (124 tests) 3201ms
(node:20386) Warning: qwen: failed to merge NODE_EXTRA_CA_CERTS "/tmp/qwen-ca-fallback-T7RCq6/missing-operator.pem" with the daemon cert "/tmp/qwen-ca-fallback-T7RCq6/daemon.pem": ENOENT: no such file or directory, stat '/tmp/qwen-ca-fallback-T7RCq6/missing-operator.pem'; channel workers will trust only the daemon cert
(Use `node --trace-warnings ...` to show where the warning was created)
(node:20386) Warning: qwen: failed to merge NODE_EXTRA_CA_CERTS "/tmp/qwen-ca-fused-Ertwp6/operator.pem" with the daemon cert "/tmp/qwen-ca-fused-Ertwp6/daemon.pem": it holds no PEM certificate block Node can load (every -----BEGIN/END CERTIFICATE----- marker must sit alone on its own line and every block must decode, and a DER file is never read at all); channel workers will trust only the daemon cert
(node:20386) Warning: qwen: failed to merge NODE_EXTRA_CA_CERTS "/tmp/qwen-ca-badb64-6I1Aon/operator.pem" with the daemon cert "/tmp/qwen-ca-badb64-6I1Aon/daemon.pem": it holds no PEM certificate block Node can load (every -----BEGIN/END CERTIFICATE----- marker must sit alone on its own line and every block must decode, and a DER file is never read at all); channel workers will trust only the daemon cert
(node:20386) Warning: qwen: failed to merge NODE_EXTRA_CA_CERTS "/tmp/qwen-ca-inspect-yM2IFw/operator.pem" with the daemon cert "/tmp/qwen-ca-inspect-yM2IFw/daemon.pem": ENOENT: no such file or directory, stat '/tmp/qwen-ca-inspect-yM2IFw/operator.pem'; channel workers will trust only the daemon cert
(node:20386) Warning: qwen: failed to merge NODE_EXTRA_CA_CERTS "/tmp/qwen-ca-inspect-yM2IFw/operator.pem" with the daemon cert "/tmp/qwen-ca-inspect-yM2IFw/daemon.pem": Inspecting NODE_EXTRA_CA_CERTS failed before its contents could be judged.; channel workers will trust only the daemon cert
(node:20386) Warning: qwen: failed to merge NODE_EXTRA_CA_CERTS "/tmp/qwen-ca-dedup-tOn5Xc/operator.pem" with the daemon cert "/tmp/qwen-ca-dedup-tOn5Xc/daemon.pem": it holds no PEM certificate block Node can load (every -----BEGIN/END CERTIFICATE----- marker must sit alone on its own line and every block must decode, and a DER file is never read at all); channel workers will trust only the daemon cert
(node:20386) Warning: qwen: failed to merge NODE_EXTRA_CA_CERTS "/tmp/qwen-ca-family-H0Y7RH/operator.pem" with the daemon cert "/tmp/qwen-ca-family-H0Y7RH/daemon.pem": ENOENT: no such file or directory, stat '/tmp/qwen-ca-family-H0Y7RH/operator.pem'; channel workers will trust only the daemon cert
(node:20386) Warning: qwen: failed to merge NODE_EXTRA_CA_CERTS "/tmp/qwen-ca-family-H0Y7RH/operator.pem" with the daemon cert "/tmp/qwen-ca-family-H0Y7RH/daemon.pem": it holds no PEM certificate block Node can load (every -----BEGIN/END CERTIFICATE----- marker must sit alone on its own line and every block must decode, and a DER file is never read at all); channel workers will trust only the daemon cert
(node:20386) Warning: qwen: failed to merge NODE_EXTRA_CA_CERTS "/tmp/qwen-ca-relapse-tVwvd1/operator.pem" with the daemon cert "/tmp/qwen-ca-relapse-tVwvd1/daemon.pem": it holds no PEM certificate block Node can load (every -----BEGIN/END CERTIFICATE----- marker must sit alone on its own line and every block must decode, and a DER file is never read at all); channel workers will trust only the daemon cert
(node:20386) Warning: qwen: failed to merge NODE_EXTRA_CA_CERTS "/tmp/qwen-ca-relapse-tVwvd1/operator.pem" with the daemon cert "/tmp/qwen-ca-relapse-tVwvd1/daemon.pem": it holds no PEM certificate block Node can load (every -----BEGIN/END CERTIFICATE----- marker must sit alone on its own line and every block must decode, and a DER file is never read at all); channel workers will trust only the daemon cert
(node:20386) Warning: qwen: failed to merge NODE_EXTRA_CA_CERTS "/tmp/qwen-ca-cause-FBFHwt/operator.pem" with the daemon cert "/tmp/qwen-ca-cause-FBFHwt/daemon.pem": it holds no PEM certificate block Node can load (every -----BEGIN/END CERTIFICATE----- marker must sit alone on its own line and every block must decode, and a DER file is never read at all); channel workers will trust only the daemon cert
(node:20386) Warning: qwen: failed to merge NODE_EXTRA_CA_CERTS "/tmp/qwen-ca-nodaemon-JyOvMX/operator.pem" with the daemon cert "/tmp/qwen-ca-nodaemon-JyOvMX/daemon.pem": the daemon cert holds no PEM certificate block to merge into; channel workers will trust only the daemon cert
(node:20386) Warning: qwen: failed to merge NODE_EXTRA_CA_CERTS "/tmp/qwen-ca-enospc-ahvv0X/operator.pem" with the daemon cert "/tmp/qwen-ca-enospc-ahvv0X/daemon.pem": ENOSPC: no space left on device; channel workers will trust only the daemon cert
 ✓ src/serve/channel-worker-supervisor.test.ts (107 tests) 1377ms
 ✓ src/serve/routes/session-pr-backfill.test.ts (101 tests) 1362ms
]0;Qwen - cli                                                                      ]2;Qwen - cli                                                                      ]0;Qwen - cli                                                                      ]2;Qwen - cli                                                                      ]0;Qwen - cli                                                                      ]2;Qwen - cli                                                                      ]0;Qwen - cli                                                                      ]2;Qwen - cli                                                                      ]0;Qwen - cli                                                                      ]2;Qwen - cli                                                                      (node:21249) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 unhandledRejection listeners added to [process]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
(node:21249) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 SIGHUP listeners added to [process]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
]0;Qwen - cli                                                                      ]2;Qwen - cli                                                                      ]0;Qwen - cli                                                                      ]2;Qwen - cli                                                                      ]0;Qwen - cli                                                                      ]2;Qwen - cli                                                                      ]0;Qwen - root                                                                     ]2;Qwen - root                                                                     (node:21249) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 exit listeners added to [process]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
]0;Qwen - root                                                                     ]2;Qwen - root                                                                     ]0;Qwen - root                                                                     ]2;Qwen - root                                                                     ]0;Qwen - root                                                                     ]2;Qwen - root                                                                     ]0;Qwen - root                                                                     ]2;Qwen - root                                                                     ]0;Qwen - root                                                                     ]2;Qwen - root                                                                     ]0;Qwen - root                                                                     ]2;Qwen - root                                                                     ]0;Qwen - root                                                                     ]2;Qwen - root                                                                     ]0;Qwen - root                                                                     ]2;Qwen - root                                                                     ]0;Qwen - root                                                                     ]2;Qwen - root                                                                     ]0;Qwen - root                                                                     ]2;Qwen - root                                                                     ]0;Qwen - root                                                                     ]2;Qwen - root                                                                     ]0;Qwen - root                                                                     ]2;Qwen - root                                                                     ]0;Qwen - root                                                                     ]2;Qwen - root                                                                     ]0;Qwen - root                                                                     ]2;Qwen - root                                                                     ]0;Qwen - root                                                                     ]2;Qwen - root                                                                     ]0;Qwen - root                                                                     ]2;Qwen - root                                                                     ]0;Qwen - root                                                                     ]2;Qwen - root                                                                     ]0;Qwen - root                                                                     ]2;Qwen - root                                                                     ]0;Qwen - root                                                                     ]2;Qwen - root                                                                     ]0;Qwen - root                                                                     ]2;Qwen - root                                                                     ]0;Qwen - root                                                                     ]2;Qwen - root                                                                     ]0;Qwen - root                                                                     ]2;Qwen - root                                                                      ✓ src/llm.test.tsx (88 tests) 8278ms
   ✓ llm.tsx main function > relaunches before config load and preserves only private managed ACP activation  527ms
   ✓ llm.tsx main function > carries the Conversations marker through the relaunch only with the private capability  504ms
   ✓ llm.tsx main function > does not accept the Conversations marker without the private capability  504ms
   ✓ llm.tsx main function > rejects a Conversations marker whose value is not the exact enable value  504ms
   ✓ llm.tsx main function > scrubs a marker re-introduced by environment loading before the relaunch  504ms
   ✓ llm.tsx main function > should skip full settings discovery in bare mode  533ms
   ✓ llm.tsx main function > passes the outer session ID into the sandbox child process  504ms
   ✓ llm.tsx main function > starts a fresh CLI after the host update completes  504ms
   ✓ llm.tsx main function > passes host update capability into a container sandbox  503ms
   ✓ llm.tsx main function > does not pass an empty session ID into the sandbox child process  503ms
   ✓ llm.tsx main function > does not inject sandbox session ID when argv contains --continue  503ms
   ✓ llm.tsx main function > does not inject sandbox session ID when argv contains -c  503ms
   ✓ llm.tsx main function > does not inject sandbox session ID when argv contains --resume  503ms
   ✓ llm.tsx main function > does not inject sandbox session ID when argv contains -r  504ms
   ✓ llm.tsx main function > does not inject sandbox session ID when argv contains --session-id  504ms
   ✓ llm.tsx main function > inserts the sandbox session ID before the argument separator  501ms
 ✓ src/serve/workspace-service/__tests__/facade.test.ts (132 tests) 177ms
 ✓ src/commands/channel/daemon-worker.test.ts (110 tests) 1824ms
 ✓ src/serve/daemon-git-worktree-guard.test.ts (463 tests | 4 skipped) 226ms
 ✓ src/commands/review/submit-aone.test.ts (97 tests) 67ms
 ✓ src/serve/routes/workspace-management.test.ts (142 tests) 1213ms
 ✓ src/commands/review/check-coverage.test.ts (107 tests) 122ms
 ✓ src/serve/conversations/standalone-session-service.test.ts (98 tests) 263ms
 ✓ src/serve/fs/workspace-file-system.test.ts (149 tests) 369ms
qwen serve: POST /scheduled-tasks/zhriscle/run could not create a fresh session: spawn failed
qwen serve: POST /scheduled-tasks/ex9djf7y/run could not create a fresh session: No session with id "sess-2"
qwen serve: POST /scheduled-tasks/hvh6e9zo/run could not create a fresh session: spawn failed
qwen serve: failed to persist scheduled-task session '10000000-0000-4000-8000-000000000001': disk full
qwen serve: POST /scheduled-tasks failed to create a task for session '10000000-0000-4000-8000-000000000001': Malformed JSON in /tmp/sched-route-xWIFiR/tmp/326e70e5ace8446d87cc700d0aecae1160c3a659d268d1633a2616e5bec322dc/scheduled_tasks.json — fix or delete the file; refusing to treat it as an empty schedule.
qwen serve: failed to look up scheduled-task session '10000000-0000-4000-8000-000000000001': lookup failed
qwen serve: POST /scheduled-tasks failed to create the task's session: spawn failed
qwen serve: POST /scheduled-tasks failed: Malformed JSON in /tmp/sched-route-giRdAc/tmp/2319b825cc51d74a25428cb3562991503e120499302f53de101465135fb40d80/scheduled_tasks.json — fix or delete the file; refusing to treat it as an empty schedule.
qwen serve: POST /scheduled-tasks failed: Malformed JSON in /tmp/sched-route-uArU8r/tmp/8c0005f8ef0b8a2ce238ee8edaffa6e9f25555a4c911bb40c0987bd1926bafc6/scheduled_tasks.json — fix or delete the file; refusing to treat it as an empty schedule.
qwen serve: GET /scheduled-tasks failed: Malformed JSON in /tmp/sched-route-ETBue7/tmp/dc54e7f0899e35e58c0edd3a17e4da2bd0bdcd34a062975a01173eb78ee22d0a/scheduled_tasks.json — fix or delete the file; refusing to treat it as an empty schedule.
qwen serve: GET /scheduled-tasks failed: Invalid task entry at index 0 in /tmp/sched-route-PpBxbe/tmp/5658c39447bd03b71316ffdad2ce238d814bb9283660cba30c80f1668987f503/scheduled_tasks.json — fix or delete the entry; refusing to drop it from the schedule.
qwen serve: failed to resolve scheduled-task session owner '10000000-0000-4000-8000-000000000001': owner lookup failed
 ✓ src/serve/routes/scheduled-tasks.test.ts (116 tests) 737ms
fatal: '/tmp/efficacy-iso-MJPEdQ/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
Wrote test-efficacy report to /tmp/efficacy-iso-oiX9tE/out.json (0 unreachable, 1 probed, 0 mutant(s), 1 hunk probe(s), 0 finding(s))
fatal: '/tmp/efficacy-iso-oiX9tE/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
Wrote test-efficacy report to /tmp/efficacy-iso-fB9BsC/out.json (0 unreachable, 1 probed, 0 mutant(s), 1 hunk probe(s), 0 finding(s))
  the positive control could not be set up (the probe target was relinked, the probe tree could not be restored, or packages/lib/src/f.test.ts could not be read in it), so the harness was NOT validated this run — read every survivor below as unconfirmed by a control
fatal: '/tmp/efficacy-iso-fB9BsC/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
Wrote test-efficacy report to /tmp/efficacy-iso-4hdtrh/out.json (0 unreachable, 1 probed, 0 mutant(s), 1 hunk probe(s), 2 finding(s))
  [test] inert: packages/lib/src/f.test.ts
  [test] hunk-survived: packages/lib/src/f.ts
fatal: '/tmp/efficacy-iso-4hdtrh/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
Wrote test-efficacy report to /tmp/efficacy-iso-c1E7sq/out.json (0 unreachable, 1 probed, 0 mutant(s), 1 hunk probe(s), 2 finding(s))
  [test] inert: packages/lib/src/f.test.ts
  [test] hunk-survived: packages/lib/src/f.ts
  dependency farm incomplete: exposed 0/1 dependencies into the probe tree (1 failed to link) — probe results may not be evidence
fatal: '/tmp/efficacy-iso-c1E7sq/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
Wrote test-efficacy report to /tmp/efficacy-iso-lnDlf1/out.json (0 unreachable, 1 probed, 0 mutant(s), 2 hunk probe(s), 3 finding(s))
  [test] inert: packages/lib/src/f.test.ts
  [test] hunk-survived: packages/lib/src/f.ts
  [test] hunk-survived: packages/lib/src/f.ts
fatal: '/tmp/efficacy-iso-lnDlf1/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
Wrote test-efficacy report to /tmp/efficacy-iso-K4z4KC/out.json (0 unreachable, 2 probed, 0 mutant(s), 1 hunk probe(s), 1 finding(s))
  [test] inert: packages/lib/src/other.test.ts
fatal: '/tmp/efficacy-iso-K4z4KC/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
Wrote test-efficacy report to /tmp/efficacy-iso-MtyDlH/out.json (0 unreachable, 1 probed, 1 mutant(s), 0 hunk probe(s), 2 finding(s))
  [test] inert: packages/lib/src/f.test.ts
  [test] mutant-survived: packages/lib/src/f.ts
fatal: '/tmp/efficacy-iso-MtyDlH/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
Wrote test-efficacy report to /tmp/efficacy-iso-uy3nR6/out.json (0 unreachable, 1 probed, 1 mutant(s), 0 hunk probe(s), 2 finding(s))
  [test] inert: packages/lib/src/f.test.ts
  [test] mutant-survived: packages/lib/src/f.ts
fatal: '/tmp/efficacy-iso-uy3nR6/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
Wrote test-efficacy report to /tmp/efficacy-iso-4CtB8o/out.json (0 unreachable, 1 probed, 1 mutant(s), 0 hunk probe(s), 0 finding(s))
fatal: '/tmp/efficacy-iso-4CtB8o/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
fatal: '/tmp/efficacy-iso-JWl88M/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
Wrote test-efficacy report to /tmp/efficacy-iso-Z0kDUk/out.json (0 unreachable, 2 probed, 1 mutant(s), 0 hunk probe(s), 2 finding(s))
  [test] inert: packages/lib/src/f.test.ts
  [test] mutant-survived: packages/lib/src/f.ts
fatal: '/tmp/efficacy-iso-Z0kDUk/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
Wrote test-efficacy report to /tmp/efficacy-iso-tsAx02/out.json (0 unreachable, 1 probed, 0 mutant(s), 0 hunk probe(s), 0 finding(s))
  positive control FAILED (the injected always-failing test did not turn the run red — a dead runner, a collector that skipped it, or a reporter that dropped the failure): nothing here can kill, every would-be survivor is reported inconclusive, and the remaining mutant/hunk window was not spent
fatal: '/tmp/efficacy-iso-tsAx02/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
Wrote test-efficacy report to /tmp/efficacy-iso-cZz6HL/out.json (0 unreachable, 2 probed, 2 mutant(s), 0 hunk probe(s), 2 finding(s))
  [test] inert: packages/lib/src/g.test.ts
  [test] mutant-survived: packages/lib/src/g.ts
fatal: '/tmp/efficacy-iso-cZz6HL/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
Wrote test-efficacy report to /tmp/efficacy-iso-1XyVmp/out.json (0 unreachable, 1 probed, 1 mutant(s), 0 hunk probe(s), 1 finding(s))
  [test] mutant-survived: packages/lib/src/f.ts
  the positive control could not be set up (the probe target was relinked, the probe tree could not be restored, or packages/lib/src/f.test.ts could not be read in it), so the harness was NOT validated this run — read every survivor below as unconfirmed by a control
fatal: '/tmp/efficacy-iso-1XyVmp/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
fatal: '/tmp/efficacy-iso-SYBmHX/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
fatal: '/tmp/efficacy-iso-WhEIoJ/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
Wrote test-efficacy report to /tmp/efficacy-iso-tbVIUy/out.json (0 unreachable, 1 probed, 2 mutant(s), 0 hunk probe(s), 1 finding(s))
  [test] inert: packages/lib/src/f.test.ts
fatal: '/tmp/efficacy-iso-tbVIUy/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
Wrote test-efficacy report to /tmp/efficacy-iso-dYeoDa/out.json (0 unreachable, 1 probed, 1 mutant(s), 0 hunk probe(s), 2 finding(s))
  [test] inert: packages/lib/src/f.test.ts
  [test] mutant-survived: packages/lib/src/fø.ts
fatal: '/tmp/efficacy-iso-dYeoDa/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
fatal: '/tmp/efficacy-iso-Vig1MZ/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
Wrote test-efficacy report to /tmp/efficacy-iso-oDbpN2/out.json (0 unreachable, 1 probed, 0 mutant(s), 0 hunk probe(s), 1 finding(s))
  [test] inert: packages/lib/src/f.test.ts
  mutant selection failed: git -c core.quotePath=false diff --unified=0 --no-color --src-prefix=a/ --dst-prefix=b/ --no-ext-diff --no-textconv no-such-base-rev 4385e89f2cdc1b360c09bb10f13f013a32fe952d -- packages/lib/src/f.ts failed: fatal: bad revision 'no-such-base-rev'
 — no mutants were run
fatal: '/tmp/efficacy-iso-oDbpN2/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
Wrote test-efficacy report to /tmp/efficacy-iso-QrTqjt/out.json (0 unreachable, 1 probed, 0 mutant(s), 1 hunk probe(s), 0 finding(s))
fatal: '/tmp/efficacy-iso-QrTqjt/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
Wrote test-efficacy report to /tmp/efficacy-iso-RJOsx5/out.json (0 unreachable, 1 probed, 0 mutant(s), 1 hunk probe(s), 2 finding(s))
  [test] inert: packages/lib/src/f.test.ts
  [test] hunk-survived: packages/lib/src/f.ts
fatal: '/tmp/efficacy-iso-RJOsx5/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
Wrote test-efficacy report to /tmp/efficacy-iso-5uGdBy/out.json (0 unreachable, 1 probed, 0 mutant(s), 1 hunk probe(s), 0 finding(s))
  the positive control could not be set up (the probe target was relinked, the probe tree could not be restored, or packages/lib/src/f.test.ts could not be read in it), so the harness was NOT validated this run — read every survivor below as unconfirmed by a control
fatal: '/tmp/efficacy-iso-5uGdBy/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
Wrote test-efficacy report to /tmp/efficacy-iso-zkMa2j/out.json (0 unreachable, 1 probed, 0 mutant(s), 0 hunk probe(s), 0 finding(s))
  positive control FAILED (the injected always-failing test did not turn the run red — a dead runner, a collector that skipped it, or a reporter that dropped the failure): nothing here can kill, every would-be survivor is reported inconclusive, and the remaining mutant/hunk window was not spent
fatal: '/tmp/efficacy-iso-zkMa2j/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
Wrote test-efficacy report to /tmp/efficacy-iso-EUZMiu/out.json (0 unreachable, 1 probed, 0 mutant(s), 1 hunk probe(s), 0 finding(s))
  the positive control could not be set up (the probe target was relinked, the probe tree could not be restored, or packages/lib/src/f.test.ts could not be read in it), so the harness was NOT validated this run — read every survivor below as unconfirmed by a control
fatal: '/tmp/efficacy-iso-EUZMiu/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
Wrote test-efficacy report to /tmp/efficacy-iso-syYXf7/out.json (0 unreachable, 1 probed, 0 mutant(s), 0 hunk probe(s), 0 finding(s))
  positive control FAILED (the injected always-failing test did not turn the run red — a dead runner, a collector that skipped it, or a reporter that dropped the failure): nothing here can kill, every would-be survivor is reported inconclusive, and the remaining mutant/hunk window was not spent
fatal: '/tmp/efficacy-iso-syYXf7/wt-probe' is not a working tree
fatal: '/tmp/efficacy-iso-Or4Lp5/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
fatal: '/tmp/efficacy-iso-Ol1NdQ/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
fatal: '/tmp/efficacy-iso-8Vw7a3/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
Wrote test-efficacy report to /tmp/efficacy-iso-vFHgbc/out.json (0 unreachable, 1 probed, 0 mutant(s), 1 hunk probe(s), 2 finding(s))
  [test] inert: packages/lib/src/f.test.ts
  [test] hunk-survived: packages/lib/src/f.ts
fatal: '/tmp/efficacy-iso-vFHgbc/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
Wrote test-efficacy report to /tmp/efficacy-iso-flPicE/out.json (0 unreachable, 1 probed, 0 mutant(s), 1 hunk probe(s), 2 finding(s))
  [test] inert: packages/lib/src/f.test.ts
  [test] hunk-survived: packages/lib/src/f.ts
fatal: '/tmp/efficacy-iso-flPicE/wt-probe' is not a working tree
fatal: '/tmp/efficacy-iso-mFkZXs/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
fatal: '/tmp/efficacy-iso-v09fqF/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
fatal: '/tmp/efficacy-iso-wPeFb1/wt-probe' is not a working tree
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-l8Sfkc'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
fatal: '/tmp/efficacy-iso-0mtADb/wt-probe' is not a working tree
fatal: '/tmp/efficacy-iso-66F1lx/wt-probe' is not a working tree
fatal: '/tmp/efficacy-iso-CsJHZs/wt-probe' is not a working tree
fatal: '/tmp/efficacy-iso-WMI46m/wt-probe' is not a working tree
 ✓ src/commands/review/test-efficacy.integration.test.ts (39 tests) 5712ms
   ✓ test-efficacy probe isolation (#6832) > reports mutants skipped for cap when candidates exceed MAX_MUTANTS  426ms
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-PTtHQe'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-PTtHQe'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
NOTE: review settings could not be loaded (ENOENT: no such file or directory, lstat '/tmp/git-isolated-home-PTtHQe'); this review uses the defaults — attribution on, no auto-posting, no effort or round-cap override. Fix the settings file to restore them.
 ✓ src/commands/review/test-efficacy.test.ts (140 tests) 584ms
   ✓ runnerFailureReason > calls a suite killed at the deadline one that did not survive  304ms
 ✓ src/commands/review/lib/retirement.test.ts (146 tests) 81ms
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440002"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440002"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440102"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440102"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440050"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440050"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: scheduled task lifecycle update failed action=archive workspace="/tmp/qwen-workspace-LOYNJT" session="550e8400-e29b-41d4-a716-446655440051" error="EISDIR: illegal operation on a directory, read '/tmp/qwen-archive-test-FkzmP9/tmp
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440051"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440051"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440051":"EISDIR: illegal operation on a directory, read '/tmp/qwen-archive-test-FkzmP9/tmp]
qwen serve: sessions archive result requested=2 requestedIds=["550e8400-e29b-41d4-a716-446655440003","550e8400-e29b-41d4-a716-446655440004"] archived=0 archivedIds=[] alreadyArchived=1 alreadyArchivedIds=["550e8400-e29b-41d4-a716-446655440003"] notFound=1 notFoundIds=["550e8400-e29b-41d4-a716-446655440004"] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440103"] archived=0 archivedIds=[] alreadyArchived=1 alreadyArchivedIds=["550e8400-e29b-41d4-a716-446655440103"] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440005"] archived=0 archivedIds=[] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440005":"This session is already open in another Qwen process."]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440005"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440005"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440006"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440006"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440106"] archived=0 archivedIds=[] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440106":"Session storage entry for \"550e8400-e29b-41d4-a716-446655440106\" is not a regul]
qwen serve: sessions archive result requested=2 requestedIds=["550e8400-e29b-41d4-a716-446655440008","550e8400-e29b-41d4-a716-446655440009"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440009"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440008":"This session is already open in another Qwen process."]
qwen serve: sessions archive result requested=2 requestedIds=["550e8400-e29b-41d4-a716-446655440023","550e8400-e29b-41d4-a716-446655440024"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440023"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440024":"Session \"550e8400-e29b-41d4-a716-446655440024\" is being archived or unarchived;]
qwen serve: sessions archive result requested=2 requestedIds=["550e8400-e29b-41d4-a716-446655440019","550e8400-e29b-41d4-a716-446655440020"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440020"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440019":"classification failed"]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440017"] archived=0 archivedIds=[] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440017":"agent flush failed"]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440010"] archived=0 archivedIds=[] alreadyArchived=1 alreadyArchivedIds=["550e8400-e29b-41d4-a716-446655440010"] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440016"] archived=0 archivedIds=[] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440016":"Session \"550e8400-e29b-41d4-a716-446655440016\" exists in both active and archiv]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440116"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440116"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: session maintenance lease release failed action=archive workspace="/tmp/qwen-workspace-qCLS4A" session="550e8400-e29b-41d4-a716-446655440006" errorKind="session_writer_lost" mutationApplied=true
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440006"] archived=0 archivedIds=[] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440006":"Write ownership for this session was lost."]
qwen serve: scheduled task lifecycle update failed action=archive workspace="/tmp/qwen-workspace-OUZ38b" session="550e8400-e29b-41d4-a716-446655440018" error="EISDIR: illegal operation on a directory, read '/tmp/qwen-archive-test-k1AQ3y/tmp
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440018"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440018"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440018":"EISDIR: illegal operation on a directory, read '/tmp/qwen-archive-test-k1AQ3y/tmp]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440007"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440007"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions archive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440063"] archived=0 archivedIds=[] alreadyArchived=1 alreadyArchivedIds=["550e8400-e29b-41d4-a716-446655440063"] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions unarchive result requested=3 requestedIds=["550e8400-e29b-41d4-a716-446655440011","550e8400-e29b-41d4-a716-446655440012","550e8400-e29b-41d4-a716-446655440013"] unarchived=1 unarchivedIds=["550e8400-e29b-41d4-a716-446655440011"] alreadyActive=1 alreadyActiveIds=["550e8400-e29b-41d4-a716-446655440012"] notFound=1 notFoundIds=["550e8400-e29b-41d4-a716-446655440013"] errors=0 errorIds=[]
qwen serve: sessions unarchive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440113"] unarchived=0 unarchivedIds=[] alreadyActive=1 alreadyActiveIds=["550e8400-e29b-41d4-a716-446655440113"] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions unarchive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440114"] unarchived=0 unarchivedIds=[] alreadyActive=1 alreadyActiveIds=["550e8400-e29b-41d4-a716-446655440114"] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions unarchive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440115"] unarchived=0 unarchivedIds=[] alreadyActive=1 alreadyActiveIds=["550e8400-e29b-41d4-a716-446655440115"] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions unarchive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440111"] unarchived=1 unarchivedIds=["550e8400-e29b-41d4-a716-446655440111"] alreadyActive=0 alreadyActiveIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions unarchive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440117"] unarchived=1 unarchivedIds=["550e8400-e29b-41d4-a716-446655440117"] alreadyActive=0 alreadyActiveIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions unarchive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440015"] unarchived=0 unarchivedIds=[] alreadyActive=0 alreadyActiveIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440015":"This session is already open in another Qwen process."]
qwen serve: sessions unarchive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440014"] unarchived=0 unarchivedIds=[] alreadyActive=0 alreadyActiveIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440014":"unarchive failed"]
qwen serve: sessions unarchive result requested=2 requestedIds=["550e8400-e29b-41d4-a716-446655440021","550e8400-e29b-41d4-a716-446655440022"] unarchived=1 unarchivedIds=["550e8400-e29b-41d4-a716-446655440022"] alreadyActive=0 alreadyActiveIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440021":"classification failed"]
qwen serve: sessions unarchive result requested=2 requestedIds=["550e8400-e29b-41d4-a716-446655440025","550e8400-e29b-41d4-a716-446655440026"] unarchived=1 unarchivedIds=["550e8400-e29b-41d4-a716-446655440025"] alreadyActive=0 alreadyActiveIds=[] notFound=0 notFoundIds=[] errors=1 errorIds=["550e8400-e29b-41d4-a716-446655440026":"Session \"550e8400-e29b-41d4-a716-446655440026\" is being archived or unarchived;]
qwen serve: sessions unarchive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440060"] unarchived=1 unarchivedIds=["550e8400-e29b-41d4-a716-446655440060"] alreadyActive=0 alreadyActiveIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: sessions unarchive result requested=1 requestedIds=["550e8400-e29b-41d4-a716-446655440062"] unarchived=0 unarchivedIds=[] alreadyActive=1 alreadyActiveIds=["550e8400-e29b-41d4-a716-446655440062"] notFound=0 notFoundIds=[] errors=0 errorIds=[]
qwen serve: scheduled task lifecycle update failed action=delete workspace="/tmp/qwen-workspace-OInPgi" session="550e8400-e29b-41d4-a716-446655440171" error="EISDIR: illegal operation on a directory, read '/tmp/qwen-archive-test-5gltHZ/tmp
qwen serve: scheduled task lifecycle update failed action=delete workspace="/tmp/qwen-workspace-GF3om2" session="550e8400-e29b-41d4-a716-446655440086" error="EISDIR: illegal operation on a directory, read '/tmp/qwen-archive-test-qDZv73/tmp
 ✓ src/serve/server/session-archive.test.ts (100 tests) 1269ms
 ✓ src/commands/review/presubmit.test.ts (121 tests) 30ms
Preparing worktree (detached HEAD b594eb7)
Preparing worktree (detached HEAD b594eb7)
Preparing worktree (detached HEAD b594eb7)
warning: in the working copy of '.gitattributes', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'f.txt', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of '.gitattributes', LF will be replaced by CRLF the next time Git touches it
warning: in the working copy of 'f.txt', LF will be replaced by CRLF the next time Git touches it
 ✓ src/commands/review/revert-hunk.test.ts (73 tests) 1797ms
 ✓ src/commands/review/capture-local.incremental.test.ts (75 tests) 9294ms
   ✓ capture-local — the decided stops are machine-readable > certifies a restored SUBMODULE pointer instead of refusing it for ever  418ms
 ✓ src/ui/commands/modelCommand.test.ts (111 tests) 77ms
findings: 1 total — 0 Critical, 1 Suggestion, 0 Nice to have; 0 low-confidence. Wrote /tmp/review-findings-h39YNB/findings.json
findings: f1 held back from Critical — test-delta measured packages/cli/src/ui/auth/AuthDialog.test.tsx as failing on the merge base too
findings: wrote 1 anchor request(s) for Step 7 to /tmp/review-findings-ca4Amn/anchors.json
findings: 2 total — 2 Critical, 0 Suggestion, 0 Nice to have; 1 low-confidence. Wrote /tmp/review-findings-ca4Amn/findings.json
findings: demoted filed at low confidence — a confirmed finding carried neither a witness nor a 'not run' reason (Step 4's witness rule)
findings: wrote 1 anchor request(s) for Step 7 to /tmp/review-findings-WotFIQ/anchors.json
findings: 1 total — 0 Critical, 1 Suggestion, 0 Nice to have; 0 low-confidence. Wrote /tmp/review-findings-WotFIQ/findings.json
findings: held held back from Critical — test-delta measured packages/cli/src/ui/auth/AuthDialog.test.tsx as failing on the merge base too
findings: wrote 1 anchor request(s) for Step 7 to /tmp/review-findings-ceTOjz/anchors.json
findings: 1 total — 1 Critical, 0 Suggestion, 0 Nice to have; 0 low-confidence. Wrote /tmp/review-findings-ceTOjz/findings.json
findings: wrote 1 anchor request(s) for Step 7 to /tmp/review-findings-WhpRmh/anchors.json
findings: 1 total — 1 Critical, 0 Suggestion, 0 Nice to have; 0 low-confidence. Wrote /tmp/review-findings-WhpRmh/findings.json
findings: wrote 1 anchor request(s) for Step 7 to /tmp/review-findings-fRcRbT/anchors.json
findings: 1 total — 1 Critical, 0 Suggestion, 0 Nice to have; 0 low-confidence. Wrote /tmp/review-findings-fRcRbT/findings.json
findings: 1 total — 1 Critical, 0 Suggestion, 0 Nice to have; 1 low-confidence. Wrote /tmp/review-findings-NtDiqA/findings.json
findings: f1 filed at low confidence — a confirmed finding carried neither a witness nor a 'not run' reason (Step 4's witness rule)
findings: no holds applied — The test-delta file at "/tmp/review-findings-QbxoQR/bad.json" is not valid JSON: Unexpected end of JSON input
findings: 1 total — 1 Critical, 0 Suggestion, 0 Nice to have; 1 low-confidence. Wrote /tmp/review-findings-QbxoQR/findings.json
findings: f1 filed at low confidence — a confirmed finding carried neither a witness nor a 'not run' reason (Step 4's witness rule)
findings: 1 total — 0 Critical, 1 Suggestion, 0 Nice to have; 0 low-confidence. Wrote /tmp/review-findings-wzBliD/a.json
findings: R1-1 held back from Critical — test-delta measured packages/cli/src/ui/auth/AuthDialog.test.tsx as failing on the merge base too
findings: 1 total — 0 Critical, 1 Suggestion, 0 Nice to have; 0 low-confidence. Wrote /tmp/review-findings-wzBliD/b.json
findings: R1-1 held back from Critical — test-delta measured packages/cli/src/ui/auth/AuthDialog.test.tsx as failing on the merge base too
outcomes: 1 fixed, 0 skipped, 0 no change needed
findings: 1 total — 1 Critical, 0 Suggestion, 0 Nice to have; 1 low-confidence. Wrote /tmp/review-findings-OWi1bV/nested/deeper/findings.json
findings: f1 filed at low confidence — a confirmed finding carried neither a witness nor a 'not run' reason (Step 4's witness rule)
findings: 1 total — 1 Critical, 0 Suggestion, 0 Nice to have; 1 low-confidence. Wrote /tmp/review-findings-NWpypo/nested/deeper/findings.json
findings: f1 filed at low confidence — a confirmed finding carried neither a witness nor a 'not run' reason (Step 4's witness rule)
findings: 2 total — 1 Critical, 1 Suggestion, 0 Nice to have; 2 low-confidence. Wrote /tmp/review-findings-sUfyeW/nested/deeper/findings.json
findings: f1 filed at low confidence — a confirmed finding carried neither a witness nor a 'not run' reason (Step 4's witness rule)
findings: f2 filed at low confidence — a confirmed finding carried neither a witness nor a 'not run' reason (Step 4's witness rule)
outcomes: 1 fixed, 1 skipped, 0 no change needed
findings: wrote 1 anchor request(s) for Step 7 to /tmp/review-findings-vw74LK/anchors.json
findings: 1 total — 1 Critical, 0 Suggestion, 0 Nice to have; 0 low-confidence. Wrote /tmp/review-findings-vw74LK/findings.json
 ✓ src/commands/review/findings.test.ts (130 tests) 35ms
qwen serve: fast-path bootstrap failed, falling back to full startup: Failed to read serve fast path settings from /tmp/qws-fast-path-home-XqLlUf/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.
qwen: .env file /tmp/qws-fast-path-loader-env-uzeL3C/.env cannot set loader-affecting env vars; ignored: NODE_OPTIONS, npm_config_node_options, NPM_CONFIG_NODE_OPTIONS, npm_config_node-options
qwen: .env file /tmp/qws-fast-path-loader-env-fcixnN/.qwen/.env cannot set loader-affecting env vars; ignored: NODE_PATH
qwen: settings.env (/tmp/qws-fast-path-loader-env-fcixnN) cannot set loader-affecting env vars; ignored: LD_PRELOAD, NPM_CONFIG_NODE_OPTIONS, npm_config_node-options
qwen: .env file /tmp/qws-fast-path-home-SpLMOf/.env cannot set loader-affecting env vars; ignored: NODE_OPTIONS, npm_config_node_options
qwen: .env file /tmp/qws-fast-path-loader-consume-Z7r1RE/.env cannot set loader-affecting env vars; ignored: NODE_OPTIONS
qwen: .env file /tmp/qws-fast-path-loader-accum-1-6YuZpe/.env cannot set loader-affecting env vars; ignored: NODE_OPTIONS
qwen: .env file /tmp/qws-fast-path-loader-accum-2-2mrhaE/.env cannot set loader-affecting env vars; ignored: LD_PRELOAD
qwen: settings.env (/tmp/qws-fast-path-loader-accum-2-2mrhaE) cannot set loader-affecting env vars; ignored: LD_PRELOAD, NODE_OPTIONS
 ✓ src/serve/fast-path.test.ts (95 tests) 451ms
   ✓ CLI entry import boundary > keeps the runQwenServe static source graph free of ACP runtime modules  403ms
 ✓ src/peerMessaging/peer-messaging.test.ts (82 tests) 9317ms
   ✓ PeerMessaging > does not let held expiry receipts crowd out backlog corrections  871ms
   ✓ held message expiry > expires a held message and receipts the sender  381ms
   ✓ held message expiry > does not call a listing stale when only an expiry removed an entry  383ms
   ✓ held message expiry > calls a listing stale when an expiry lets a handle reassign  875ms
   ✓ PeerMessaging drops > receipts or refuses a drop that arrives while the session closes  1604ms
   ✓ PeerMessaging drops > flushes a folded batch whose receipt is slow before close resolves  1202ms
 ✓ src/commands/review/cleanup.test.ts (78 tests) 28ms
qwen serve: [/tmp/qwen-extension-management-v2-sRupXm/primary] extensions set_extension_state: background task failed: Skill "foreign" does not belong to extension "demo"
qwen serve: extension generation reconciliation failed for workspace 4a4a2b62441baf1a: 1 extension session refresh(es) failed
qwen serve: [/tmp/qwen-extension-management-v2-WjrVVB/primary] extensions install: background task failed: Local extension sources must be absolute daemon-host paths; relative paths are not supported over the daemon endpoint.
qwen serve: [/tmp/qwen-extension-management-v2-jIK1UD/primary] extensions install: background task failed: `ref` and `autoUpdate` are not applicable for local extensions.
qwen serve: [/tmp/qwen-extension-management-v2-ebWsCm/primary] extensions install: background task failed: `ref` and `autoUpdate` are not applicable for local extensions.
 ✓ src/serve/routes/workspace-qualified-extensions.test.ts (51 tests) 637ms
 ✓ src/commands/channel/start.test.ts (52 tests) 1002ms
 ✓ src/serve/server/session-pr-refresh.test.ts (63 tests) 1647ms
   ✓ refreshWorkspaceSessionPrStates > keeps sweeping archived sessions when a sidecar write fails  700ms
 ✓ src/commands/review/lib/thread-lifecycle.test.ts (98 tests) 351ms
 ✓ src/commands/review/parse-args.test.ts (154 tests) 63ms
 ✓ src/commands/review/lib/platform/aone.test.ts (114 tests) 25ms
qwen serve: settings_changed broadcast to workspace /tmp/qwen-workspace-qualified-rest-CXn43O/primary failed: Primary workspace runtime is unavailable.
qwen serve: bridge error (POST /workspaces/:workspace/skills/enable): Error: disk full
    at /startdir/src/qwen-code/packages/cli/src/serve/workspace-qualified-rest.test.ts:1672:31
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: POST /workspaces/:workspace/memory refused — existing file /tmp/qwen-workspace-qualified-rest-h1sJU5/secondary/QWEN.md is 17825792 bytes (cap 16777216)
 ✓ src/serve/workspace-qualified-rest.test.ts (47 tests) 561ms
 ✓ src/ui/utils/export/export-transcript-document.test.ts (73 tests) 5893ms
   ✓ ExportTranscriptDocumentV1 > degrades instead of aborting when JSON escaping exceeds the envelope  1937ms
   ✓ ExportTranscriptDocumentV1 > marks visible text budget degradation before rendering  598ms
   ✓ ExportTranscriptDocumentV1 > rejects schema and semantic safety violations  430ms
 ✓ src/serve/daemon-status.test.ts (54 tests) 33ms
 ✓ src/commands/review/lib/convergence.test.ts (93 tests) 14ms
 ✓ src/ui/components/background-view/BackgroundTasksDialog.test.tsx (86 tests) 1873ms
 ✓ src/serve/auth/device-flow.test.ts (47 tests) 17ms
 ✓ src/commands/review/lib/review-footer.test.ts (100 tests) 93ms
 ✓ src/ui/components/messages/ToolMessage.test.tsx (95 tests) 714ms
 ✓ src/ui/opentui/live-session.test.ts (62 tests) 331ms
   ✓ livePromptEvents > waits for the chat an in-flight startup initialization creates  301ms
 ✓ src/commands/review/scratch-tree.test.ts (67 tests) 4525ms
 ✓ src/commands/review/cost-ledger.test.ts (65 tests) 39ms
 ✓ src/cli.test.ts (78 tests) 944ms
   ✓ bootstrap import boundaries > resolves and pins managed updates from the configured home  494ms
 ✓ src/ui/hooks/atCommandProcessor.test.ts (71 tests) 104ms
qwen serve: /acp session stream detached (sess-1), grace=10000ms
qwen serve: /acp session reclaimed within grace (sess-1)
qwen serve: /acp replay deferral armed (sess-1, from id 5)
qwen serve: /acp replay deferral armed (sess-1, from id 5)
qwen serve: /acp replay deferral armed (sess-1, from id 3)
qwen serve: /acp replay deferral armed (sess-1, from id 3)
qwen serve: /acp session stream detached (sess-1), grace=10000ms
qwen serve: /acp session reclaimed within grace (sess-1)
qwen serve: /acp resource guard: ACP pre-attach frame limit
qwen serve: /acp resource guard: ACP pre-attach frame limit
qwen serve: /acp resource guard session teardown failed: detach failed
qwen serve: /acp resource guard: ACP pre-attach frame limit
qwen serve: /acp resource guard: ACP pre-attach frame limit
qwen serve: /acp resource guard: ACP pre-attach connection budget
qwen serve: /acp resource guard: ACP pre-attach connection budget
qwen serve: /acp resource guard: ACP pre-attach connection budget
qwen serve: /acp response serialization failed
qwen serve: /acp resource guard: ACP response serialization failed
qwen serve: /acp response serialization failed
qwen serve: /acp resource guard: ACP response serialization failed
qwen serve: /acp response serialization failed
qwen serve: /acp resource guard: ACP response serialization failed
qwen serve: /acp resource guard: ACP pre-attach daemon budget
qwen serve: /acp resource guard: ACP pre-attach daemon budget
qwen serve: /acp resource guard: ACP pre-attach frame limit
qwen serve: /acp response serialization failed
qwen serve: /acp resource guard: ACP response serialization failed
qwen serve: /acp session stream detached (sess-1), grace=10000ms
qwen serve: /acp response serialization failed
qwen serve: /acp resource guard: ACP response serialization failed
qwen serve: /acp response serialization failed
qwen serve: /acp response serialization failed
qwen serve: /acp delivered receipt callback failed
qwen serve: /acp discarded receipt callback failed
qwen serve: /acp session stream detached (sess-1), grace=10000ms
qwen serve: /acp session reclaimed within grace (sess-1)
qwen serve: /acp session stream detached (sess-1), grace=10000ms
qwen serve: /acp session grace expired (sess-1), no reconnect within 10000ms — tearing down
qwen serve: /acp session stream detached (sess-1), grace=10000ms
qwen serve: /acp session reclaimed within grace (sess-1)
qwen serve: /acp session stream detached (sess-1), grace=10000ms
qwen serve: /acp session reclaimed within grace (sess-1)
qwen serve: /acp replay deferral armed (sess-1, from id 5)
qwen serve: /acp session stream detached (sess-1), grace=10000ms
qwen serve: /acp session reclaimed within grace (sess-1)
qwen serve: /acp replay deferral armed (sess-1, from id 5)
qwen serve: /acp replay deferral armed (sess-1, from id 5)
qwen serve: /acp replay deferral armed (sess-1, from id 5)
qwen serve: /acp replay deferral armed (sess-1, from id 5)
qwen serve: /acp replay deferral armed (sess-1, from id 5)
qwen serve: /acp session stream detached (sess-1), grace=10000ms
qwen serve: /acp session grace expired (sess-1), no reconnect within 10000ms — tearing down
qwen serve: /acp session stream detached (sess-1), grace=10000ms
qwen serve: /acp session grace expired (sess-1), no reconnect within 10000ms — tearing down
qwen serve: /acp teardown failed during grace expiry (sess-1): boom
qwen serve: /acp session stream detached (sess-1), grace=10000ms
qwen serve: /acp session grace expired (sess-1), no reconnect within 10000ms — tearing down
qwen serve: /acp onSessionGraceExpired failed during grace expiry (sess-1): boom
 ✓ src/serve/acp-http/connection-registry.test.ts (63 tests) 259ms
 ✓ src/serve/acp-http/workspace-qualified-acp.test.ts (53 tests) 458ms
 ✓ src/commands/review/lib/ledger.test.ts (99 tests) 64ms
 ✓ src/ui/components/SettingsDialog.test.tsx (64 tests) 3508ms
   ✓ SettingsDialog > Settings Toggling > toggles an unset WebSearch setting off and resets it to auto  453ms
   ✓ SettingsDialog > Settings Toggling > persists resetting an explicit WebSearch setting to auto  436ms
 ✓ src/ui/components/messages/ToolGroupMessage.test.tsx (65 tests) 537ms
 ✓ src/commands/review/run.test.ts (63 tests) 52ms
 ✓ src/serve/channel-settings-store.test.ts (85 tests) 282ms
qwen serve: bridge error (POST /session/:id/worktree-reset session=619f0989-28e4-4b07-b78c-47de22829c03): Error: Bridge does not support worktree reset
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:4651:19
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
    at Object.runSharedMany (/startdir/src/qwen-code/packages/cli/src/serve/routes/session-worktree-reset.test.ts:271:49)
    at worktreeResetHandler (/startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:4631:7)
qwen serve: bridge error (POST /session/:id/worktree-reset session=0d6aae9e-8344-4670-b4fa-053e06f34bbe): Error: no space left on device
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session-worktree-reset.test.ts:698:27
    at mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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 /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:4824:25
    at Object.runSharedMany (/startdir/src/qwen-code/packages/cli/src/serve/routes/session-worktree-reset.test.ts:271:49)
    at worktreeResetHandler (/startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:4631:7)
qwen serve: bridge error (POST /session/:id/worktree-reset session=9d1ab84c-d3ec-42fe-898b-d05945e17657): Error: Client disconnected before the worktree ownership flip
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:4976:25
    at Object.runSharedMany (/startdir/src/qwen-code/packages/cli/src/serve/routes/session-worktree-reset.test.ts:271:49)
    at worktreeResetHandler (/startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:4631:7)
qwen serve: bridge error (POST /session/:id/worktree-reset session=d0709ecc-6c41-4d49-91cb-82747448ab7d): Error: client teardown failed
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session-worktree-reset.test.ts:1118:7
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
qwen serve: bridge error (POST /session/:id/worktree-reset session=ec376ffb-8606-4787-a76c-01c391681955): Error: Worktree ownership moved to the replacement, but the marker commit did not finish cleanly; retry the reset to complete the transfer
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:5022:27
    at Object.runSharedMany (/startdir/src/qwen-code/packages/cli/src/serve/routes/session-worktree-reset.test.ts:271:49)
    at worktreeResetHandler (/startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:4631:7)
 ✓ src/serve/routes/session-worktree-reset.test.ts (31 tests) 967ms
   ✓ POST /session/:id/load worktree classifications > serializes a source-less restore behind an in-flight reset  519ms
 ✓ src/nonInteractive/io/BaseJsonOutputAdapter.test.ts (109 tests) 84ms
 ✓ src/ui/utils/MarkdownDisplay.test.tsx (186 tests) 1663ms
 ✓ src/services/insight/generators/DataProcessor.test.ts (51 tests) 29ms
 ✓ src/commands/review/pr-context-persist.test.ts (36 tests) 12ms
 ✓ src/ui/utils/resumeHistoryUtils.test.ts (58 tests) 13ms
 ✓ src/services/review-worktree-lease.test.ts (46 tests) 512ms
 ✓ src/serve/create-sub-session.test.ts (42 tests) 1103ms
 ✓ src/utils/modelConfigUtils.test.ts (66 tests) 36ms
 ✓ src/serve/channel-worker-group.test.ts (47 tests) 147ms
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)
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)
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)
 ✓ src/serve/routes/workspace-file-write.test.ts (68 tests) 1751ms
   ✓ POST /file/upload > publishes no file when the client disconnects during admission  314ms
   ✓ POST /file/upload > frees gate slots when clients disconnect mid body-buffering  512ms
 ✓ src/commands/review/lib/narrow-diff.integration.test.ts (32 tests) 1088ms
 ✓ src/commands/review/lib/path-rules.test.ts (243 tests) 21ms
 ✓ src/commands/review/drive.test.ts (62 tests) 2857ms
   ✓ readiness > polls until the probe passes, and reports how long that took  1502ms
   ✓ readiness > polls at a bounded RATE — the wait cannot depend on the platform  1001ms
 ✓ src/ui/components/MainContent.test.tsx (33 tests) 519ms
 ✓ src/ui/voice/voice-transcriber.test.ts (61 tests) 29ms
Wrote null repository context to /tmp/repo-context-ltRLhL/context.json
Wrote repository context (fake-provider) to /tmp/repo-context-0SJmzL/context.json
Wrote repository context (manifest) to /tmp/repo-context-bRhbL3/base-enabled/context.json
Wrote null repository context to /tmp/repo-context-bRhbL3/base-disabled/context.json
Wrote repository context (fake-provider) to /tmp/repo-context-N8q3C5/context.json
Wrote repository context (fake-provider) to /tmp/repo-context-S7YadN/base-enabled/context.json
Wrote null repository context to /tmp/repo-context-S7YadN/base-disabled/context.json
Wrote null repository context to /tmp/repo-context-gng93l/context.json
Wrote repository context (manifest) to /tmp/repo-context-jNTnVY/pr/context.json
Wrote repository context (manifest) to /tmp/repo-context-jNTnVY/local/context.json
Wrote null repository context to /tmp/repo-context-PfHrVs/context.json
Wrote null repository context to /tmp/repo-context-LZUsap/null-base/context.json
Wrote null repository context to /tmp/repo-context-LZUsap/null-base-fetch-failed/context.json
Wrote repository context (fake-provider) to /tmp/repo-context-LlivJ4/context.json
Wrote repository context (fake-provider) to /tmp/repo-context-LlivJ4/context.json
Wrote repository context (fake-provider) to /tmp/repo-context-diLybq/context.json
Wrote repository context (fake-provider) to /tmp/repo-context-OFVEJd/context.json
Wrote repository context (manifest) to /tmp/repo-context-K2ywzj/context.json
Wrote null repository context to /tmp/repo-context-1bpwi5/context.json
Wrote null repository context to /tmp/repo-context-DO4VCU/pr/context.json
Wrote null repository context to /tmp/repo-context-DO4VCU/local/context.json
Wrote repository context (fake-provider) to /tmp/repo-context-WgiyOF/context.json
Wrote repository context (manifest) to /tmp/repo-context-du45uy/context.json
Wrote repository context (fake-provider) to /tmp/repo-context-Hkh9EH/context.json
Wrote repository context (fake-provider) to /tmp/repo-context-pCqoep/fresh-subdir/context.json
Wrote repository context (fake-provider) to /tmp/repo-context-S0ae88/context.json
Wrote repository context (manifest) to /tmp/repo-context-bPBpHT/sha256/context.json
Wrote null repository context to /tmp/repo-context-o5awav/pr/context.json
Wrote null repository context to /tmp/repo-context-o5awav/local/context.json
Wrote null repository context to /tmp/repo-context-epoch-8AM1Pb/ctx.json
Wrote repository context (fake-provider) to /tmp/repo-context-skip-AK51Hb/ctx.json
Wrote null repository context to /tmp/repo-context-epoch-sub-ms-Z0Ncqw/ctx.json
 ✓ src/commands/review/repo-context.test.ts (47 tests) 575ms
 ✓ src/commands/review/lib/budget.test.ts (82 tests) 20ms
 ✓ src/nonInteractive/session.test.ts (42 tests) 783ms
(node:186755) ExperimentalWarning: FFI is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ src/ui/opentui/dialog-data.test.ts (59 tests) 18ms
{
  "found": true,
  "heading": "## Test Plan",
  "claims": [
    {
      "kind": "path",
      "text": "packages/cli/src/a.test.ts",
      "verdict": "reproduces",
      "note": "the diff changes this file"
    }
  ],
  "diffHash": "df087996d45b03e7eb8c133c0298fd98d35113fca26aaba58612fef3cc212cad",
  "note": "checked 1 claim(s): 0 contradicted, 0 differing, 1 reproduced, 0 unchecked"
}
test-plan: checked 1 claim(s): 0 contradicted, 0 differing, 1 reproduced, 0 unchecked
 ✓ src/commands/review/test-plan.test.ts (96 tests) 52ms
 ✓ src/nonInteractiveCliCommands.test.ts (52 tests) 36ms
 ✓ src/commands/review/ab-drive.test.ts (52 tests | 9 skipped) 8047ms
   ✓ runAbDrive, harnessed > polls the per-arm readiness probe and refuses to drive an arm that never comes up  1001ms
   ✓ runAbDrive, harnessed > applies the readiness gate to arm b too — the mirrored negative  1001ms
   ✓ runAbDrive, harnessed > a timed-out arm is killed before the other arm starts — and fails the gate  1002ms
   ✓ runAbDrive, harnessed > the mirrored asymmetric case: arm a completes, arm b hangs  1001ms
   ✓ runAbDrive, harnessed > a timed-out arm reports exitCode null even with a planted rc value  1001ms
   ✓ runAbDrive, harnessed > per-arm shared-ready failure bails THAT arm — tearing its instance down — and still drives the other  1001ms
   ✓ runAbDrive, harnessed > a shared process that never becomes ready stops a --shared-once run outright  1001ms
   ✓ runAbDrive, harnessed > does not hang when the arm log path is a FIFO — reads non-blocking  1004ms
 ✓ src/services/web-shell-brand.test.ts (90 tests) 29ms
[external-agent fixture] Error handling request {
[external-agent fixture]   jsonrpc: '2.0',
[external-agent fixture]   id: 2,
[external-agent fixture]   method: 'session/set_mode',
[external-agent fixture]   params: { sessionId: 'fixture', modeId: 'default' }
[external-agent fixture] } {
[external-agent fixture]   code: -32603,
[external-agent fixture]   message: 'Internal error',
[external-agent fixture]   data: { details: 'cannot set mode' }
[external-agent fixture] }
 ✓ src/external-agents/acp-subagent-executor.test.ts (63 tests) 45730ms
   ✓ real ACP subprocess > bounds and reaps a init-hang handshake  10053ms
   ✓ real ACP subprocess > bounds and reaps a session-hang handshake  10079ms
   ✓ real ACP subprocess > bounds and reaps a mode-hang handshake  10057ms
   ✓ real ACP subprocess > drops session updates that arrive after a timeout declared the turn over  5242ms
   ✓ real ACP subprocess > awaits verified disposal of a SIGTERM-resistant descendant  5090ms
 ✓ src/serve/live/live-task-service.test.ts (28 tests) 120ms
qwen: .env file /tmp/qwen-runtime-env-F6NWTf/.env cannot set loader-affecting env vars; ignored: NODE_OPTIONS, NPM_CONFIG_NODE_OPTIONS
qwen: settings.env (/tmp/qwen-runtime-env-F6NWTf) cannot set loader-affecting env vars; ignored: BASH_ENV, NPM_CONFIG_NODE_OPTIONS
qwen: settings.env (/tmp/qwen-runtime-env-P8iG0R) cannot set loader-affecting env vars; ignored: BASH_ENV, NODE_OPTIONS
qwen: .env file /tmp/qwen-runtime-env-KHCt2x/.env cannot set loader-affecting env vars; ignored: NODE_OPTIONS, npm_config_node_options, NODE_PATH, LD_PRELOAD
qwen: .env file /tmp/qwen-runtime-env-mxWnBM/.env cannot set loader-affecting env vars; ignored: OPENSSL_CONF, NODE_REPL_EXTERNAL_MODULE, npm_config_node_gyp, npm_config_init_module
qwen: .env file /tmp/qwen-runtime-env-0HyLco/.qwen/.env cannot set loader-affecting env vars; ignored: NODE_OPTIONS, NODE_PATH, LD_PRELOAD
qwen: .env file /tmp/qwen-runtime-env-O6l6xW/.env cannot set loader-affecting env vars; ignored: NODE_OPTIONS, npm_config_node_options
qwen: .env file /tmp/qwen-runtime-env-60iFFG/.env cannot set loader-affecting env vars; ignored: NPM_CONFIG_NODE_OPTIONS, Node_Options, npm_config_node-options
qwen: .env file /tmp/qwen-runtime-env-DattDH/.env cannot set loader-affecting env vars; ignored: npm_config_userconfig, ZDOTDIR
qwen: settings.env (/tmp/qwen-runtime-env-BRuPVY) cannot set loader-affecting env vars; ignored: BASH_FUNC_id%%
 ✓ src/config/environment.test.ts (41 tests) 25ms
2026-11-05T14:24:49.234Z [ERROR] [DAEMON] route=POST /x route failed
  Error: boom
      at /startdir/src/qwen-code/packages/cli/src/serve/daemon-logger.test.ts:515:17
      at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
2026-11-05T14:24:49.239Z [INFO] [DAEMON] msg-0
2026-11-05T14:24:49.239Z [INFO] [DAEMON] msg-1
2026-11-05T14:24:49.239Z [INFO] [DAEMON] msg-2
2026-11-05T14:24:49.239Z [INFO] [DAEMON] msg-3
2026-11-05T14:24:49.239Z [INFO] [DAEMON] msg-4
2026-11-05T14:24:49.239Z [INFO] [DAEMON] msg-5
2026-11-05T14:24:49.239Z [INFO] [DAEMON] msg-6
2026-11-05T14:24:49.239Z [INFO] [DAEMON] msg-7
2026-11-05T14:24:49.239Z [INFO] [DAEMON] msg-8
2026-11-05T14:24:49.239Z [INFO] [DAEMON] msg-9
2026-11-05T14:24:49.239Z [INFO] [DAEMON] msg-10
2026-11-05T14:24:49.239Z [INFO] [DAEMON] msg-11
2026-11-05T14:24:49.239Z [INFO] [DAEMON] msg-12
2026-11-05T14:24:49.239Z [INFO] [DAEMON] msg-13
2026-11-05T14:24:49.239Z [INFO] [DAEMON] msg-14
2026-11-05T14:24:49.239Z [INFO] [DAEMON] msg-15
2026-11-05T14:24:49.239Z [INFO] [DAEMON] msg-16
2026-11-05T14:24:49.239Z [INFO] [DAEMON] msg-17
2026-11-05T14:24:49.239Z [INFO] [DAEMON] msg-18
2026-11-05T14:24:49.239Z [INFO] [DAEMON] msg-19
2026-11-05T14:24:49.239Z [INFO] [DAEMON] msg-20
2026-11-05T14:24:49.239Z [INFO] [DAEMON] msg-21
2026-11-05T14:24:49.239Z [INFO] [DAEMON] msg-22
2026-11-05T14:24:49.239Z [INFO] [DAEMON] msg-23
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-24
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-25
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-26
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-27
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-28
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-29
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-30
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-31
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-32
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-33
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-34
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-35
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-36
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-37
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-38
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-39
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-40
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-41
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-42
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-43
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-44
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-45
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-46
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-47
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-48
2026-11-05T14:24:49.240Z [INFO] [DAEMON] msg-49
qwen serve: daemon stable log is owned by another daemon instance; using a fallback log for runId=22222222222222222222222222222222
 ✓ src/serve/daemon-logger.test.ts (58 tests) 108ms
qwen: Skipped replay of a goal card whose condition is empty.
 ✓ src/acp-integration/session/history-replayer.test.ts (52 tests) 31ms
qwen serve: DELETE /workspace/agents/"partial-target" partial — removed=project remaining=user:/tmp/qwen-serve-agents-HTdiNk/global/agents/partial-target.md
 ✓ src/serve/workspace-agents.test.ts (49 tests) 188ms
 ✓ src/ui/commands/doctorCommand.test.ts (49 tests) 38ms
 ✓ src/agent-view/pty-host-process.test.ts (50 tests) 1993ms
   ✓ Agent View PTY host process server > only resolves exited on SIGKILL for a connected (childless) handle  422ms
   ✓ Agent View PTY host process server > rejects promptly when the host closes without a response  504ms
 ✓ src/ui/commands/statsCommand.test.ts (39 tests) 85ms
 ✓ src/commands/review/publish-assets.test.ts (39 tests) 20ms
 ✓ src/acp-integration/session/emitters/tool-call-emitter.test.ts (69 tests) 18ms
(node:187633) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 resize listeners added to [Stdout]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ src/ui/components/shared/VirtualizedList.test.tsx (32 tests) 1863ms
 ✓ src/serve/live/live-session-coordinator.test.ts (26 tests) 1595ms
 ✓ src/nonInteractive/io/StreamJsonOutputAdapter.test.ts (55 tests) 31ms
 ✓ src/ui/utils/commandUtils.test.ts (81 tests) 52ms
 ✓ src/commands/review/lib/anchors.test.ts (70 tests) 130ms
 ✓ src/serve/server/telemetry.test.ts (68 tests) 39ms
 ✓ src/commands/review/lib/sandboxed-exec.test.ts (39 tests | 1 skipped) 20ms
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: 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)
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-voice.test.ts (40 tests) 608ms
 ✓ src/acp-integration/service/filesystem.test.ts (34 tests) 23ms
 ✓ src/ui/opentui/commands-dispatch.test.ts (58 tests) 27ms
 ✓ src/commands/review/lib/deadline.test.ts (59 tests) 18ms
 ✓ src/serve/channel-worker-manager.test.ts (46 tests) 485ms
 ✓ src/config/settingsUtils.test.ts (64 tests) 11ms
 ✓ src/ui/components/shared/vim-buffer-actions.test.ts (74 tests) 12ms
 ✓ src/commands/channel/pidfile.test.ts (67 tests) 311ms
 ✓ src/acp-integration/session/SubAgentTracker.test.ts (39 tests) 605ms
qwen serve: --rate-limit-prompt must be a positive integer.
qwen serve: --rate-limit-mutation must be a positive integer.
qwen serve: --rate-limit-read must be a positive integer.
qwen serve: --rate-limit-window-ms must be an integer >= 1000.
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: --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: --token is visible in the process command line; prefer the QWEN_SERVER_TOKEN env var for any non-trivial deployment.

Local Control is on. Scan this QR code from the same network:

en0: http://192.168.1.20:4170/#token=pairing
QR

Keep this terminal open. Sleep inhibition is unavailable here, so the host may sleep. Traffic is unencrypted — use it only on a network you trust. Turn Local Control off from the Web Shell Settings card, or press Ctrl+C to exit the daemon.
qwen serve: Local Control requires the Web Shell.
qwen serve: --channel all cannot be combined with channel names.
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/commands/serve.test.ts (70 tests) 3479ms
   ✓ serve startup import boundary > reaches listening through the dev entrypoint without loading interactive Ink internals first  2294ms
 ✓ src/commands/review/lib/run-ledger.test.ts (72 tests) 30ms
 ✓ src/ui/commands/exportCommand.test.ts (40 tests) 47ms
 ✓ src/ui/commands/languageCommand.test.ts (62 tests) 45ms
 ✓ src/config/shared-env-keys.test.ts (50 tests) 14ms
 ✓ src/ui/components/messages/ToolConfirmationMessage.test.tsx (43 tests) 912ms
 ✓ src/serve/bridge-file-system-adapter.test.ts (42 tests) 50ms
 ✓ src/ui/standalone-update.test.ts (66 tests) 44ms
 ✓ src/serve/live/live-host-coordinator.test.ts (47 tests) 429ms
recover-findings: the CLI did not export QWEN_CODE_PROJECT_DIR / QWEN_CODE_SESSION_ID, so this run cannot find the harness's record of what its agents did
 ✓ src/commands/review/recover-findings.test.ts (39 tests) 42ms
 ✓ src/commands/review/save-artifact.test.ts (67 tests | 1 skipped) 56ms
 ✓ src/commands/review/emit-workflow.test.ts (40 tests) 243ms
 ✓ src/ui/daemon/daemon-tui-adapter.test.ts (20 tests) 25ms
(node:200383) [DEP0205] DeprecationWarning: `module.register()` is deprecated. Use `module.registerHooks()` instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:200405) [DEP0205] DeprecationWarning: `module.register()` is deprecated. Use `module.registerHooks()` instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
(node:200417) [DEP0205] DeprecationWarning: `module.register()` is deprecated. Use `module.registerHooks()` instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
 ✓ src/serve/conversations/conversation-runtime-ownership.test.ts (37 tests) 1552ms
   ✓ Conversation runtime ownership > arbitrates real child processes and reclaims a crashed owner after grace  440ms
   ✓ Conversation runtime ownership > fails closed for an active foreign owner and permits a later retry  1013ms
 ✓ src/acp-integration/session-model-persistence.test.ts (33 tests) 12ms
 ✓ src/commands/mcp/reconnect.test.ts (32 tests) 17ms
 ✓ src/ui/utils/TableRenderer.test.tsx (74 tests) 719ms
 ✓ src/ui/commands/copyCommand.test.ts (43 tests) 22ms
 ✓ src/serve/workspace-runtime-coordinator.test.ts (44 tests) 1787ms
   ✓ WorkspaceRuntimeCoordinator > replays MCP reconciliation interrupted while draining  302ms
 ✓ src/ui/commands/peers-command.test.ts (64 tests) 30ms
 ✓ src/config/settingsWatcher.test.ts (46 tests) 26ms
 ✓ src/commands/review/lib/manifest-repository-context.test.ts (60 tests) 2690ms
   ✓ manifest repository context provider > fails closed when cumulative matching work exceeds the budget  419ms
 ✓ src/serve/prompt-terminal-ledger.test.ts (34 tests) 30ms
 ✓ src/agent-view/supervisor-server.test.ts (28 tests) 266ms
 ✓ src/nonInteractive/control/controllers/permissionController.test.ts (34 tests) 622ms
 ✓ src/config/settingsSchema.test.ts (54 tests) 13ms
 ✓ src/serve/live/qwen-realtime-session.test.ts (23 tests) 19ms
 ✓ src/commands/review/lib/diff-plan.test.ts (47 tests) 19ms
 ✓ src/serve/scheduled-task-keepalive.test.ts (28 tests) 336ms
 ✓ src/nonInteractive/control/ControlDispatcher.test.ts (36 tests) 17ms
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: 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)
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)
 ✓ src/serve/routes/workspace-file-read.test.ts (45 tests) 345ms
 ✓ src/serve/virtual-subagent-sessions.test.ts (22 tests) 278ms
{
  "port": 35915,
  "baseUrl": "http://127.0.0.1:35915/v1",
  "logPath": "/tmp/mp-IiD1Ga/req.jsonl",
  "note": "mock provider on port 35915; every request is appended to /tmp/mp-IiD1Ga/req.jsonl as JSONL — diff those between two trees and the difference is evidence"
}
mock-provider: mock provider on port 35915; every request is appended to /tmp/mp-IiD1Ga/req.jsonl as JSONL — diff those between two trees and the difference is evidence
mock-provider: /startdir/src/qwen-code/packages/cli/src/commands/review/__fixtures__/mock-responder-empty.mjs exports no `respond` function — a responder module must export `respond(req)` (or a default export of the same shape)
 ✓ src/commands/review/mock-provider.test.ts (36 tests) 1199ms
   ✓ the entry points nothing had driven > the CLI handler writes the report, and its TTL is in SECONDS  1001ms
 ✓ src/ui/components/StandaloneSessionPicker.test.tsx (22 tests) 289ms
 ✓ src/serve/channel-management-service.test.ts (33 tests) 231ms
 ✓ src/nonInteractive/nonInteractiveHelpers.test.ts (45 tests) 12ms
 ✓ src/commands/review/lib/transcripts.test.ts (38 tests) 17ms
qwen serve: failed to update the live Session Workflow setting for /workspace: channel closed
qwen serve: failed to update the live Session Workflow setting for /workspace: channel closed
qwen serve: failed to update the live Session Workflow setting for /workspace: bridge channel closed
 ✓ src/serve/routes/workspace-settings.test.ts (34 tests) 163ms
fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
 ✓ src/commands/review/lib/local-diff.integration.test.ts (37 tests) 1273ms
 ✓ src/commands/review/host-execution.canary.test.ts (17 tests) 533ms
 ✓ src/serve/pem-certificate-blocks.test.ts (52 tests) 2055ms
 ✓ src/commands/review/lib/roster.test.ts (79 tests) 10ms
 ✓ src/utils/installationInfo.test.ts (41 tests) 10ms
 ✓ src/ui/utils/historyMapping.test.ts (38 tests) 5ms
 ✓ src/utils/errors.test.ts (42 tests) 35ms
 ✓ src/config/hot-reload.test.ts (38 tests) 20ms
 ✓ src/ui/components/background-view/LiveAgentPanel.test.tsx (29 tests) 289ms
 ✓ src/ui/opentui/item-projection.test.ts (39 tests) 12ms
 ✓ src/nonInteractive/io/JsonOutputAdapter.test.ts (37 tests) 33ms
Preparing worktree (checking out 'topic')
fatal: 'wt' is a missing but already registered worktree;
use 'add -f' to override, or 'prune' or 'remove' to clear
error: cannot delete branch 'qwen-review/pr-1' used by worktree at '/tmp/review-wt-23GjaX/wt'
 ✓ src/commands/review/lib/git.integration.test.ts (19 tests) 432ms
[channel-registry] Invalid management metadata in "invalid-session-scope-default" channel: Channel defaultSessionScope is invalid.
 ✓ src/commands/channel/channel-registry.test.ts (42 tests) 249ms
 ✓ src/commands/channel/config-utils.test.ts (58 tests) 12ms
 ✓ src/serve/workspace-providers-status.test.ts (34 tests) 56ms
 ✓ src/ui/components/SkillReviewDialog.test.tsx (33 tests) 2001ms
   ✓ SkillReviewDialog > auto-refreshes the preview when the staged file changes on disk  423ms
qwen serve: bridge error (POST /workspace/config/skills/install): Error: failed
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/workspace-skills.test.ts:441:57
    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)
qwen serve: bridge error (DELETE /workspace/config/skills/:name): Error: failed
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/workspace-skills.test.ts:463:55
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
 ✓ src/serve/routes/workspace-skills.test.ts (25 tests) 78ms
 ✓ src/config/trustedFolders.test.ts (42 tests) 18ms
 ✓ src/services/SkillCommandLoader.test.ts (35 tests) 18ms
 ✓ src/commands/review/extract-step.test.ts (50 tests) 29ms
qwen serve: Conversations quarantine observer failed; runtime disposal will continue.
 ✓ src/serve/conversations/conversation-runtime-manager.test.ts (33 tests) 20ms
 ✓ src/ui/auth/ProviderSetupSteps.test.tsx (20 tests) 606ms
 ✓ src/ui/components/messages/AskUserQuestionDialog.test.tsx (35 tests | 1 skipped) 2584ms
 ✓ src/commands/review/presubmit.aone.test.ts (33 tests) 11ms
 ✓ src/serve/conversations/conversation-workspace.test.ts (27 tests) 42ms
 ✓ src/services/prompt-processors/shellProcessor.test.ts (35 tests) 23ms
 ✓ src/commands/review/lib/local-anchor.integration.test.ts (20 tests) 492ms
 ✓ src/commands/review/dedup-candidates.test.ts (42 tests) 24ms
libpng: invalid IHDR data
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
second line
 ✓ src/ui/utils/terminal-image-renderer.test.ts (32 tests) 154ms
 ✓ src/commands/review/lib/audit-layers.test.ts (25 tests) 22ms
 ✓ src/acp-integration/session/history-replay-page.test.ts (23 tests) 63ms
 ✓ src/services/McpPromptLoader.test.ts (47 tests) 11ms
 ✓ src/ui/utils/terminal-resize-reflow.test.ts (38 tests) 63ms
 ✓ src/ui/commands/clearCommand.test.ts (16 tests) 20ms
 ✓ src/ui/opentui/live-session-model.test.ts (49 tests) 10ms
 ✓ src/serve/routes/workspace-channel-management.test.ts (17 tests) 205ms
 ✓ src/ui/utils/osc8.test.ts (99 tests) 8ms
 ✓ src/ui/opentui/input-prompt-model.test.ts (77 tests) 13ms
 ✓ src/ui/components/Footer.test.tsx (34 tests) 353ms
 ✓ src/commands/review/lib/stale-bundle.test.ts (28 tests) 23ms
 ✓ src/serve/workspace-registry.test.ts (22 tests) 10ms
qwen serve: bridge error (POST /workspace/git/commit): Error: cannot stage all changes: failed to snapshot index (write-tree failed)
    at sendGitError (/startdir/src/qwen-code/packages/cli/src/serve/routes/workspace-git-branches.ts:102:24)
    at handleCommit (/startdir/src/qwen-code/packages/cli/src/serve/routes/workspace-git-branches.ts:346:5)
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
qwen serve: bridge error (POST /workspace/git/commit): Error: cannot stage all changes: failed to snapshot index (write-tree failed)
    at sendGitError (/startdir/src/qwen-code/packages/cli/src/serve/routes/workspace-git-branches.ts:102:24)
    at handleCommit (/startdir/src/qwen-code/packages/cli/src/serve/routes/workspace-git-branches.ts:346:5)
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
qwen serve: bridge error (POST /workspace/git/commit): Error: cannot stage all changes: failed to snapshot index (write-tree failed)
    at sendGitError (/startdir/src/qwen-code/packages/cli/src/serve/routes/workspace-git-branches.ts:102:24)
    at handleCommit (/startdir/src/qwen-code/packages/cli/src/serve/routes/workspace-git-branches.ts:346:5)
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
 ✓ src/serve/routes/workspace-git-branches.test.ts (36 tests) 1122ms
 ✓ src/ui/commands/workflowsCommand.test.ts (32 tests) 20ms
 ✓ src/commands/review/issue-9206-repro.test.ts (10 tests) 78ms
qwen serve: voice websocket accepted
qwen serve: voice websocket start received
qwen serve: voice websocket stop received
qwen serve: voice websocket finalized successfully
qwen serve: voice websocket slot released
qwen serve: voice websocket accepted
qwen serve: voice websocket accepted
qwen serve: voice websocket start received
qwen serve: voice websocket stop received
qwen serve: voice websocket finalized successfully
qwen serve: voice websocket slot released
qwen serve: voice websocket accepted
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
qwen serve: voice websocket accepted
qwen serve: voice websocket start received
qwen serve: voice websocket failed: Voice transcription failed. Please try again.
qwen serve: voice websocket slot released
qwen serve: voice websocket accepted
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
qwen serve: voice websocket accepted
qwen serve: voice websocket start received
qwen serve: voice websocket abort received
qwen serve: voice websocket slot released
qwen serve: voice websocket accepted
qwen serve: voice websocket start received
qwen serve: voice websocket abort received
qwen serve: voice websocket slot released
qwen serve: voice websocket accepted
qwen serve: voice websocket stop received
qwen serve: voice websocket abort received
qwen serve: voice websocket slot released
qwen serve: voice websocket accepted
qwen serve: voice websocket start received
qwen serve: voice websocket slot released
qwen serve: voice websocket accepted
qwen serve: voice websocket start received
qwen serve: voice websocket slot released
qwen serve: voice websocket accepted
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
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
qwen serve: voice websocket accepted
qwen serve: voice websocket start received
qwen serve: voice websocket failed: Queued voice audio exceeded the memory limit.
qwen serve: voice websocket accepted
qwen serve: voice websocket start received
qwen serve: voice websocket failed: Voice session exceeded the time limit.
qwen serve: voice websocket slot released
qwen serve: voice websocket accepted
qwen serve: voice websocket accepted
qwen serve: voice websocket accepted
qwen serve: voice websocket accepted
qwen serve: voice websocket accepted
qwen serve: voice websocket accepted
qwen serve: voice websocket accepted
qwen serve: voice websocket accepted
qwen serve: voice websocket failed: Voice session exceeded the time limit.
qwen serve: voice websocket slot released
qwen serve: voice websocket failed: Voice session exceeded the time limit.
qwen serve: voice websocket slot released
qwen serve: voice websocket failed: Voice session exceeded the time limit.
qwen serve: voice websocket slot released
qwen serve: voice websocket failed: Voice session exceeded the time limit.
qwen serve: voice websocket slot released
qwen serve: voice websocket failed: Voice session exceeded the time limit.
qwen serve: voice websocket slot released
qwen serve: voice websocket failed: Voice session exceeded the time limit.
qwen serve: voice websocket slot released
qwen serve: voice websocket failed: Voice session exceeded the time limit.
qwen serve: voice websocket slot released
qwen serve: voice websocket failed: Voice session exceeded the time limit.
qwen serve: voice websocket slot released
qwen serve: voice websocket accepted
qwen serve: voice websocket accepted
qwen serve: voice websocket accepted
qwen serve: voice websocket accepted
qwen serve: voice websocket accepted
qwen serve: voice websocket accepted
qwen serve: voice websocket accepted
qwen serve: voice websocket accepted
qwen serve: voice websocket accepted
qwen serve: voice websocket rejected
qwen serve: voice websocket slot released
qwen serve: voice websocket accepted
qwen serve: voice websocket accepted
qwen serve: voice websocket stop received
qwen serve: voice websocket finalized successfully
qwen serve: voice websocket slot released
qwen serve: voice websocket accepted
qwen serve: voice websocket accepted
qwen serve: voice websocket accepted
qwen serve: voice websocket accepted
qwen serve: voice websocket accepted
qwen serve: voice websocket accepted
qwen serve: voice websocket accepted
qwen serve: voice websocket accepted
qwen serve: voice websocket rejected
qwen serve: voice websocket rejected
qwen serve: voice websocket accepted
qwen serve: voice websocket slot released
qwen serve: voice websocket accepted
qwen serve: voice websocket slot released
qwen serve: voice websocket accepted
qwen serve: voice websocket slot released
qwen serve: voice websocket accepted
qwen serve: voice websocket start received
qwen serve: voice websocket stop received
qwen serve: voice websocket finalized successfully
qwen serve: voice websocket slot released
qwen serve: voice websocket accepted
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
qwen serve: voice websocket accepted
qwen serve: voice websocket start received
 ✓ src/serve/voice/voice-ws.test.ts (26 tests) 18ms
 ✓ src/serve/workspace-registration-store.test.ts (33 tests | 1 skipped) 1402ms
   ✓ WorkspaceRegistrationStore > reads 255 named records independently of admission and preserves them on rejected add  720ms
 ✓ src/ui/components/HistoryItemDisplay.test.tsx (38 tests) 395ms
 ✓ src/serve/routes/terminal.test.ts (27 tests) 18ms
 ✓ src/utils/memoryDiagnostics.test.ts (23 tests) 31ms
 ✓ src/serve/workspace-skill-management.test.ts (27 tests) 108ms
 ✓ src/ui/handleAutoUpdate.test.ts (32 tests) 215ms
 ✓ src/acp-integration/session/tasksSnapshot.test.ts (18 tests) 14ms
 ✓ src/commands/review/lib/layer-audit-gate.test.ts (22 tests) 20ms
 ✓ src/commands/review/test-delta.test.ts (31 tests) 20ms
 ✓ src/i18n/languageUtils.test.ts (58 tests) 12ms
 ✓ src/commands/review/lib/inline-counts.test.ts (22 tests) 9ms
 ✓ src/config/extension-file-watcher.test.ts (23 tests) 14ms
 ✓ src/commands/review/lib/workspace-scope.test.ts (33 tests) 7ms
 ✓ src/ui/opentui/event-adapter.test.ts (50 tests) 10ms
 ✓ src/ui/commands/directoryCommand.test.tsx (28 tests) 13ms
 ✓ src/startup/startup-prefetch.test.ts (31 tests) 55ms
 ✓ src/acp-integration/model-configuration.test.ts (109 tests) 14ms
 ✓ src/ui/utils/mermaidImageRenderer.test.ts (25 tests) 472ms
 ✓ src/commands/review/issue-context.test.ts (29 tests) 52ms
a1 transient error (attempt 1/2), retrying in 3000ms…
a1 transient error (attempt 2/2), retrying in 6000ms…
 ✓ src/commands/review/lib/platform/aone-client.test.ts (38 tests) 11ms
 ✓ src/ui/commands/summaryCommand.test.ts (35 tests) 36ms
 ✓ src/ui/commands/contextCommand.test.ts (18 tests) 29ms
 ✓ src/startup/worktreeStartup.test.ts (20 tests) 1768ms
 ✓ src/services/BundledSkillLoader.test.ts (30 tests) 14ms
 ✓ src/serve/conversations/standalone-deletion-journal.test.ts (25 tests) 51ms
 ✓ src/agent-view/pty-host.test.ts (36 tests) 28ms
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/config/mcpApprovals.test.ts (31 tests | 11 skipped) 13ms
 ✓ src/agent-view/worker-sideband.test.ts (25 tests) 19ms
 ✓ src/commands/review/lib/workspaces.test.ts (47 tests) 15ms
qwen serve: [/work/bound] extensions install: failed to broadcast failure: bridge.broadcastExtensionsChanged is not a function
qwen serve: [/work/bound] extensions install: background task failed: generation closed
 ✓ src/serve/routes/workspace-extensions-controller.test.ts (14 tests) 374ms
 ✓ src/serve/auth.test.ts (43 tests) 7ms
 ✓ src/ui/components/messages/CompactToolGroupDisplay.test.tsx (48 tests) 142ms
 ✓ src/serve/acp-http/client-mcp-ws.test.ts (11 tests) 139ms
 ✓ src/services/housekeeping/scheduler.test.ts (26 tests) 20ms
 ✓ src/ui/commands/diffCommand.test.ts (26 tests) 11ms
 ✓ src/serve/fs/paths.test.ts (36 tests) 20ms
 ✓ src/acp-integration/acpAgent.worktree.test.ts (3 tests) 164ms
 ✓ src/serve/routes/workspace-setup-github.test.ts (17 tests) 171ms
 ✓ src/ui/components/MemoryDialog.test.tsx (17 tests) 351ms
 ✓ src/validateNonInterActiveAuth.test.ts (13 tests) 13ms
 ✓ src/ui/utils/InlineMarkdownRenderer.test.tsx (32 tests) 287ms
qwen serve: DELETE /workspace/models error (authType=openai, modelId=gpt-4o): disk full
qwen serve: DELETE /workspace/models error (authType=openai, modelId=gpt-4o): partial
 ✓ src/serve/routes/workspace-models.test.ts (24 tests) 64ms
 ✓ src/serve/server/aone-mrs.test.ts (32 tests) 64ms
 ✓ src/ui/keyMatchers.test.ts (48 tests) 11ms
 ✓ src/serve/auth/qwen-device-flow-provider.test.ts (12 tests) 6ms
 ✓ src/ui/commands/renameCommand.test.ts (25 tests) 16ms
 ✓ src/serve/local-path-open.test.ts (42 tests) 29ms
 ✓ src/ui/components/shared/MaxSizedBox.test.tsx (30 tests) 599ms
   ✓ <MaxSizedBox /> overflow registration (#10640) > keeps the hidden-lines marker but skips registration when registerOverflow is false  310ms
 ✓ src/ui/utils/customBanner.test.ts (40 tests) 18ms
 ✓ src/acp-integration/session/emitters/MessageEmitter.test.ts (30 tests) 10ms
 ✓ src/serve/workspace-git-state.test.ts (18 tests) 524ms
 ✓ src/serve/routes/standalone-sessions.test.ts (25 tests) 626ms
 ✓ src/serve/cdp-tunnel/cdp-browser-emulator.test.ts (25 tests) 10ms
 ✓ src/ui/commands/config-command.test.ts (41 tests) 17ms
 ✓ src/acp-integration/skill-management.test.ts (10 tests) 18ms
 ✓ src/ui/utils/updateCheck.test.ts (39 tests) 15ms
 ✓ src/serve/routes/a2ui-action.test.ts (22 tests) 52ms
 ✓ src/serve/rate-limit.test.ts (28 tests) 417ms
   ✓ rateLimit > fail-open > passes through when bucket map is at capacity  404ms
 ✓ src/ui/ink-cursor-rendering.test.tsx (28 tests) 70ms
[?25h ✓ src/commands/review/base-tree.test.ts (20 tests) 793ms
 ✓ src/ui/opentui/shell-mode.test.ts (19 tests) 12ms
 ✓ src/config/jsonSchemaArg.test.ts (40 tests) 158ms
 ✓ src/runtime/workspace-remember-errors.test.ts (41 tests) 13ms
 ✓ src/serve/server/error-response.test.ts (45 tests) 15ms
 ✓ src/ui/components/agent-view/agentHistoryAdapter.test.ts (36 tests) 7ms
 ✓ src/config/migration/versions/v2-to-v3.test.ts (31 tests) 7ms
 ✓ src/acp-integration/session/Session.worktree.test.ts (8 tests) 24ms
 ✓ src/ui/commands/advisor-command.test.ts (26 tests) 27ms
 ✓ src/ui/utils/textUtils.test.ts (43 tests) 17ms
Error parsing settings file.
Settings file may be corrupted: CloseBraceExpected at offset 118
 ✓ src/utils/jsonc-editor.test.ts (33 tests) 19ms
 ✓ src/ui/components/StatsDisplay.test.tsx (17 tests) 233ms
 ✓ src/config/auth.test.ts (28 tests) 17ms
hopping into sandbox (command: docker) ...
Checking for sandbox image: example.com/qwen-code:latest
Sandbox image example.com/qwen-code:latest found locally.
ContainerName (regular): qwen-code-latest-8809acc4
hopping into sandbox (command: docker) ...
Checking for sandbox image: sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Sandbox image sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa found locally.
ContainerName (regular): sha256-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa-dbb70cc0
hopping into sandbox (command: docker) ...
Checking for sandbox image: example.com/qwen-code:latest
Sandbox image example.com/qwen-code:latest found locally.
ContainerName (regular): qwen-code-latest-e991c8d3
hopping into sandbox (command: docker) ...
Checking for sandbox image: example.com/qwen-code:latest
Sandbox image example.com/qwen-code:latest found locally.
ContainerName (regular): qwen-code-latest-2af289f5
hopping into sandbox (command: docker) ...
Checking for sandbox image: ghcr.io/qwenlm/qwen-code@sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
Sandbox image ghcr.io/qwenlm/qwen-code@sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef found locally.
ContainerName (regular): qwen-code-f6e720f3
using macos seatbelt (profile: permissive-open) ...
using macos seatbelt (profile: permissive-open) ...
 ✓ src/serve/sandbox.test.ts (30 tests) 262ms
 ✓ src/ui/commands/goalCommand.test.ts (65 tests) 17ms
 ✓ src/agent-view/supervisor-runner.test.ts (10 tests) 252ms
 ✓ src/commands/channel/memory-intent-classifier.test.ts (38 tests) 1029ms
   ✓ BridgeChannelMemoryIntentClassifier > keeps all IDs and a 500-entry long-metadata manifest within the code-point budget  984ms
 ✓ src/ui/commands/cdCommand.test.ts (22 tests) 39ms
 ✓ src/commands/review/script-lint.mock.test.ts (19 tests) 12ms
 ✓ src/ui/utils/backgroundWorkUtils.test.ts (26 tests) 9ms
 ✓ src/ui/components/ModelStatsDisplay.test.tsx (17 tests) 224ms
 ✓ src/serve/remote-quickstart.test.ts (26 tests) 11ms
 ✓ src/ui/components/shared/ScrollableList.test.tsx (15 tests) 813ms
 ✓ src/utils/housekeeping/cleanup.test.ts (27 tests) 71ms
 ✓ src/commands/mcp/add.test.ts (29 tests) 73ms
 ✓ src/ui/components/MainContent.show-more-lines.test.tsx (5 tests) 459ms
   ✓ ctrl+s hint honesty for capped shell output (#10640) > does not show the hint when the only hidden lines come from the ui.shellOutputMaxLines cap  348ms
 ✓ src/agent-view/supervisor-store.test.ts (17 tests) 40ms
 ✓ src/ui/components/Composer.test.tsx (23 tests) 197ms
 ✓ src/ui/commands/output-style-command.test.ts (24 tests) 16ms
 ✓ src/ui/components/hooks/constants.test.ts (51 tests) 9ms
 ✓ src/ui/components/InputPrompt.suggestionMouse.test.tsx (11 tests) 274ms
 ✓ src/ui/contexts/AgentViewContext.test.tsx (10 tests) 170ms
qwen serve: bridge error (GET /workspaces/:workspace/github/prs): Error: boom
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/workspace-github-prs.test.ts:300:51
    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/serve/routes/workspace-github-prs.test.ts (19 tests) 97ms
 ✓ src/ui/voice/voice-keyterms.test.ts (28 tests) 11ms
 ✓ src/acp-integration/session/repeated-tool-failure-guard.test.ts (38 tests) 6ms
 ✓ src/commands/review/meta.test.ts (24 tests) 32ms
 ✓ src/serve/acp-http/client-mcp-sender-registry.test.ts (19 tests) 11ms
 ✓ src/serve/server/persisted-session-list-cache.test.ts (19 tests) 12ms
 ✓ src/serve/workspace-service/__tests__/integration.test.ts (14 tests) 125ms
qwen serve: POST /workspace/memory refused — existing file /tmp/qwen-serve-memory-FYsZm7/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-qATQUs/workspace/QWEN.md'
qwen serve: POST /workspace/memory failed (scope=workspace mode=append): Error: EACCES: permission denied, open '/tmp/qwen-serve-memory-qATQUs/workspace/QWEN.md'
qwen serve: GET /workspace/memory failed: Error: boom
    at collectStatus (/startdir/src/qwen-code/packages/cli/src/serve/workspace-memory.test.ts:401:17)
    at /startdir/src/qwen-code/packages/cli/src/serve/workspace-memory.ts:201:28
    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)
    at Layer.handleRequest (/startdir/src/qwen-code/node_modules/router/lib/layer.js:152:17)
    at /startdir/src/qwen-code/node_modules/router/index.js:295:15
    at processParams (/startdir/src/qwen-code/node_modules/router/index.js:582:12)
    at next (/startdir/src/qwen-code/node_modules/router/index.js:291:5)
 ✓ src/serve/workspace-memory.test.ts (17 tests) 70ms
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.
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
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.
PROCESS_EXIT_CALLED
Fatal error: Failed to relaunch the CLI process.
PROCESS_EXIT_CALLED
Fatal error: Failed to relaunch the CLI process.
PROCESS_EXIT_CALLED
 ✓ src/utils/relaunch.test.ts (16 tests) 163ms
 ✓ src/ui/systemInfo.test.ts (23 tests) 13ms
 ✓ src/ui/utils/todoSnapshot.test.ts (24 tests) 5ms
gh transient error (attempt 1/2), retrying in 3000ms…
gh transient error (attempt 2/2), retrying in 6000ms…
gh transient error (attempt 1/2), retrying in 3000ms…
gh transient error (attempt 2/2), retrying in 6000ms…
gh transient error (attempt 1/2), retrying in 3000ms…
 ✓ src/commands/review/lib/gh.test.ts (26 tests) 3011ms
   ✓ ghWithInputRetried() DOES retry (idempotent writes) > retries a transient HTTP 500 and succeeds on the second attempt  3001ms
 ✓ src/serve/workspace-trust-reconciler.test.ts (12 tests) 10ms
 ✓ src/commands/review/comment-status.handler.test.ts (12 tests) 10ms
 ✓ src/utils/managed-npm-update.test.ts (14 tests) 233ms
 ✓ src/ui/commands/btwCommand.test.ts (23 tests) 35ms
 ✓ src/commands/review/lib/remote-match.test.ts (43 tests) 5ms
 ✓ src/serve/process-env-guard.test.ts (3 tests) 2626ms
   ✓ serve process.env guard > allows only documented process-scoped process.env expressions  2615ms
 ✓ src/serve/live/discovery.test.ts (17 tests) 66ms
 ✓ src/ui/utils/pending-rendered-height.test.ts (37 tests) 9ms
 ✓ src/services/CommandService.test.ts (17 tests) 8ms
 ✓ src/ui/opentui/messages.test.tsx (43 tests) 16ms
 ✓ src/commands/sessions/list.test.ts (25 tests) 21ms
 ✓ src/serve/large-pipe-frame-observer.test.ts (16 tests) 12ms
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/config/config.integration.test.ts (27 tests) 61ms
 ✓ src/ui/commands/commands.test.ts (40 tests) 9ms
 ✓ src/ui/components/LoadingIndicator.test.tsx (28 tests) 273ms
 ✓ src/commands/review/workflow-script.test.ts (16 tests) 11ms
 ✓ src/ui/opentui/opentui-host.test.ts (27 tests) 113ms
 ✓ src/commands/review/comment-status.aone.test.ts (18 tests) 8ms
 ✓ src/ui/commands/tasksCommand.test.ts (11 tests) 9ms
[Channel] Permission relay failed for req-1: send failed
[Channel] Session session-1 died, updating routing state
 ✓ src/commands/channel/runtime.test.ts (27 tests) 111ms
 ✓ src/serve/session-id-admission.test.ts (14 tests) 9ms
 ✓ src/commands/review/comment-status.test.ts (20 tests) 7ms
 ✓ src/commands/review/lib/prebuild.test.ts (24 tests) 21ms
 ✓ src/serve/routes/channel-webhooks.test.ts (25 tests) 52ms
 ✓ src/config/migration/index.test.ts (30 tests) 6ms
 ✓ src/dualOutput/DualOutputBridge.test.ts (22 tests) 35ms
 ✓ src/ui/commands/compressCommand.test.ts (17 tests) 13ms
(node:272403) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification.
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ src/serve/server/self-origin.test.ts (24 tests) 64ms
 ✓ src/commands/review/lib/assets.test.ts (62 tests) 7ms
 ✓ src/serve/external-tool-guard-provider.test.ts (21 tests) 139ms
 ✓ src/utils/startupProfiler.test.ts (21 tests) 26ms
 ✓ src/commands/extensions/install.test.ts (17 tests) 13ms
 ✓ src/agent-view/terminal-bridge.test.ts (17 tests) 17ms
 ✓ src/ui/commands/arenaCommand.test.ts (16 tests) 23ms
 ✓ src/ui/voice/qwen-asr-realtime-session.test.ts (14 tests) 11ms
qwen serve: POST /language persist error: disk full
qwen serve: POST /language persist error: read-only file system
qwen serve: POST /language persist error: disk full
qwen serve: POST /language daemon i18n switch failed: boom
qwen serve: POST /language fan-out failed for workspace /broken: transport closed
qwen serve: POST /language event publish failed for workspace /broken: event bus closed
 ✓ src/serve/routes/user-language.test.ts (12 tests) 41ms
 ✓ src/serve/routes/workspace-permissions.test.ts (11 tests) 48ms
 ✓ src/ui/components/messages/DiffRenderer.test.tsx (17 tests) 285ms
 ✓ src/serve/workspace-skills-status.test.ts (14 tests) 45ms
 ✓ src/ui/model/streaming-model.test.ts (20 tests) 7ms
 ✓ src/services/housekeeping/non-interactive-scheduler.test.ts (14 tests) 112ms
Wrote diff plan to /tmp/plan-diff-roOFNz/no-clock.json
Diff: 9004 lines (9004 source, 0 test, 0 docs, 0 generated) -> 23 review chunk(s)
Wrote diff plan to /tmp/plan-diff-roOFNz/with-clock.json
Wrote diff plan to /tmp/plan-diff-iHznHx/ceiling.json
Wrote diff plan to /tmp/plan-diff-iHznHx/ceiling-4.json
Wrote diff plan to /tmp/plan-diff-iHznHx/ceiling-20.json
Diff: 9004 lines (9004 source, 0 test, 0 docs, 0 generated) -> 23 review chunk(s)
Diff: 124 lines (124 source, 0 test, 0 docs, 0 generated) -> 1 review chunk(s)
Diff: 124 lines (124 source, 0 test, 0 docs, 0 generated) -> 1 review chunk(s)
Diff: 124 lines (124 source, 0 test, 0 docs, 0 generated) -> 1 review chunk(s)
Wrote diff plan to /tmp/plan-diff-pjTYI2/bad-empty.json
Diff: 9004 lines (9004 source, 0 test, 0 docs, 0 generated) -> 23 review chunk(s)
Wrote diff plan to /tmp/plan-diff-pjTYI2/bad-empty.json
Diff: 9004 lines (9004 source, 0 test, 0 docs, 0 generated) -> 23 review chunk(s)
Wrote diff plan to /tmp/plan-diff-pjTYI2/bad-soon.json
Diff: 9004 lines (9004 source, 0 test, 0 docs, 0 generated) -> 23 review chunk(s)
Wrote diff plan to /tmp/plan-diff-pjTYI2/bad-0.json
Diff: 9004 lines (9004 source, 0 test, 0 docs, 0 generated) -> 23 review chunk(s)
Wrote diff plan to /tmp/plan-diff-pjTYI2/bad--1.json
Diff: 9004 lines (9004 source, 0 test, 0 docs, 0 generated) -> 23 review chunk(s)
Wrote diff plan to /tmp/plan-diff-HrE6hd/plan.json
Diff: 1204 lines (1204 source, 0 test, 0 docs, 0 generated) -> 4 review chunk(s)
Wrote diff plan to /tmp/plan-diff-g3tIAg/plan.json
Diff: 64 lines (64 source, 0 test, 0 docs, 0 generated) -> 1 review chunk(s)
Wrote diff plan to /tmp/plan-diff-2ylF8H/plan.json
Diff: 64 lines (64 source, 0 test, 0 docs, 0 generated) -> 1 review chunk(s)
plan-diff: --host is not a hostname: "ghe.example.com; touch /tmp/pwned"
effort: medium (from --effort)
Wrote diff plan to /tmp/plan-diff-yWhUrK/plan.json
Diff: 64 lines (64 source, 0 test, 0 docs, 0 generated) -> 1 review chunk(s)
effort: medium (from parse-args report)
Wrote diff plan to /tmp/plan-diff-92xo0D/plan.json
Diff: 64 lines (64 source, 0 test, 0 docs, 0 generated) -> 1 review chunk(s)
Wrote diff plan to /tmp/plan-diff-1j85Wv/plan.json
Diff: 64 lines (64 source, 0 test, 0 docs, 0 generated) -> 1 review chunk(s)
plan-diff: --pr and --repo go together — the roster requires the issue-fidelity agent only when the plan carries the full PR identity.
Wrote diff plan to /tmp/plan-diff-cP4B1B/plan.json
Diff: 2004 lines (2004 source, 0 test, 0 docs, 0 generated) -> 6 review chunk(s)
Wrote diff plan to /tmp/plan-diff-Q1XA0J/plan.json
Diff: 116 lines (14 source, 24 test, 34 docs, 44 generated) -> 1 review chunk(s)
Wrote diff plan to /tmp/plan-diff-0ZeHCe/plan.json
Diff: 54 lines (54 source, 0 test, 0 docs, 0 generated) -> 1 review chunk(s)
plan-diff: diff-plan: chunks do not tile the diff (0 chunks over 2 lines). Refusing to plan a review with a coverage hole.
WARNING: the diff is empty — 0 chunks. Reviewing from this plan would examine no code. Review the file's current contents instead.
Diff: 0 lines (0 source, 0 test, 0 docs, 0 generated) -> 0 review chunk(s)
plan-diff: Cannot read diff file /tmp/plan-diff-D8GvAb/absent.diff: ENOENT: no such file or directory, open '/tmp/plan-diff-D8GvAb/absent.diff'
Wrote diff plan to /tmp/plan-diff-qc4ExU/plan.json
 ✓ src/commands/review/plan-diff.test.ts (16 tests) 45ms
 ✓ src/acp-integration/session/acp-tool-result-text-projection.test.ts (32 tests) 586ms
   ✓ ACP tool-result text projection > bounds pathological many-block content without collapsing it  339ms
 ✓ src/nonInteractive/tool-result-boundary-diagnostics.test.ts (11 tests) 6ms
 ✓ src/config/claudeMcpImport.test.ts (14 tests) 13ms
 ✓ src/serve/routes/workspace-git-diff.test.ts (16 tests) 80ms
 ✓ src/serve/daemon-git-worktree-guard.win32-lane.test.ts (479 tests | 49 skipped) 184ms
 ✓ src/ui/utils/restoreGoal.test.ts (34 tests) 14ms
 ✓ src/ui/utils/statsDataService.test.ts (17 tests) 6ms
 ✓ src/runtime/live-session-source.test.ts (49 tests) 6ms
 ✓ src/ui/components/QwenOAuthProgress.test.tsx (18 tests) 221ms
 ✓ src/ui/commands/aboutCommand.test.ts (12 tests) 10ms
 ✓ src/ui/components/messages/InlineParallelAgentsDisplay.test.tsx (12 tests) 138ms
 ✓ src/config/daemon-trust-policy.test.ts (16 tests) 1367ms
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:29:45.936Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:29:45.937Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-serve-live-W8CzBU/debug/daemon/daemon.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:34183 (mode=http-bridge, workspace=/tmp/qwen-serve-live-W8CzBU/workspace)
qwen serve: bound to workspace "/tmp/qwen-serve-live-W8CzBU/workspace"
qwen serve: startup timing: processToListenMs=1072 runQwenServeToListenMs=25
2026-11-05T14:29:46.277Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qwen-serve-live-W8CzBU/workspace secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
2026-11-05T14:29:46.335Z [INFO] [DAEMON] route=GET /live/status durationMs=4 status=200 request completed
2026-11-05T14:29:46.348Z [INFO] [DAEMON] route=POST /live/setup durationMs=7 status=200 request completed
2026-11-05T14:29:46.351Z [INFO] [DAEMON] route=GET /capabilities durationMs=2 status=200 request completed
2026-11-05T14:29:46.355Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:29:46.361Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:29:46.361Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-serve-live-stable-6sfAlB/custom-runtime/debug/daemon/daemon.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:43479 (mode=http-bridge, workspace=/tmp/qwen-serve-live-stable-6sfAlB/workspace)
qwen serve: bound to workspace "/tmp/qwen-serve-live-stable-6sfAlB/workspace"
qwen serve: startup timing: processToListenMs=1478 runQwenServeToListenMs=2
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:29:46.363Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qwen-serve-live-stable-6sfAlB/workspace secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
2026-11-05T14:29:48.376Z [INFO] [DAEMON] daemon stopped
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:29:48.385Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:29:48.386Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /tmp/qwen-serve-live-handoff-VaEqpT/runtime-one/debug/daemon/daemon.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:45727 (mode=http-bridge, workspace=/tmp/qwen-serve-live-handoff-VaEqpT/workspace-one)
qwen serve: bound to workspace "/tmp/qwen-serve-live-handoff-VaEqpT/workspace-one"
qwen serve: startup timing: processToListenMs=3503 runQwenServeToListenMs=9
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:29:48.388Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qwen-serve-live-handoff-VaEqpT/workspace-one secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
2026-11-05T14:29:48.411Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
qwen serve: daemon log → /tmp/qwen-serve-live-handoff-VaEqpT/runtime-two/debug/daemon/daemon.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:45813 (mode=http-bridge, workspace=/tmp/qwen-serve-live-handoff-VaEqpT/workspace-two)
qwen serve: bound to workspace "/tmp/qwen-serve-live-handoff-VaEqpT/workspace-two"
qwen serve: startup timing: processToListenMs=3529 runQwenServeToListenMs=8
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:29:48.413Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qwen-serve-live-handoff-VaEqpT/workspace-two secondary= daemon workspace roots initialized
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
qwen serve: /acp WebSocket transport enabled on /acp
qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms)
2026-11-05T14:29:48.422Z [WARN] [DAEMON] failed to publish Live Host discovery at /tmp/qwen-serve-live-handoff-VaEqpT/stable-qwen-home: Live discovery is owned by active daemon pid 276882.
2026-11-05T14:29:48.423Z [INFO] [DAEMON] daemon stopped
2026-11-05T14:29:48.466Z [INFO] [DAEMON] daemon stopped
 ✓ src/serve/live/run-qwen-serve-live.test.ts (3 tests) 2542ms
   ✓ qwen serve Live Host discovery > publishes the authenticated listener and removes only its own record  433ms
   ✓ qwen serve Live Host discovery > publishes a stable Host locator alongside a custom runtime record  2017ms
 ✓ src/utils/apiPreconnect.test.ts (26 tests) 30ms
 ✓ src/commands/sessions/controllers.test.ts (21 tests) 20ms
 ✓ src/commands/review/capture-local.test.ts (15 tests) 109ms
 ✓ src/ui/commands/update-command.test.ts (20 tests) 18ms
 ✓ src/commands/review/lib/review-digest-covers-only-bundled.test.ts (6 tests) 4ms
 ✓ src/config/lsp-config-watcher.test.ts (13 tests) 11ms
 ✓ src/ui/commands/doctorChecks.test.ts (18 tests) 12ms
 ✓ src/commands/review/lib/local-anchor.test.ts (22 tests) 8ms
 ✓ src/ui/opentui/commands-registry.test.ts (15 tests) 35ms
 ✓ src/utils/earlyInputCapture.test.ts (34 tests) 9ms
 ✓ src/config/sandboxConfig.test.ts (18 tests) 8ms
 ✓ src/services/BuiltinCommandLoader.test.ts (14 tests) 8ms
the bodyreview body ✓ src/commands/review/comment-body.test.ts (18 tests) 25ms
 ✓ src/serve/routes/workspace-local-control.test.ts (13 tests) 128ms
 ✓ src/commands/review/lib/import-graph.test.ts (23 tests) 5ms
 ✓ src/ui/utils/markdownUtilities.test.ts (35 tests) 6ms
 ✓ src/serve/live/live-host-installer.test.ts (11 tests) 68ms
 ✓ src/ui/opentui/session-switch.test.ts (9 tests) 11ms
 ✓ src/ui/themes/detect-terminal-theme.test.ts (29 tests) 9ms
 ✓ src/serve/routes/goals.test.ts (16 tests) 85ms
 ✓ src/utils/acpModelUtils.test.ts (31 tests) 7ms
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: fs audit emit is the default no-op — 1 event(s) dropped so far. Latest type=fs.denied (errorKind=untrusted_workspace intent=write pathHash=b7a1c34d3d88d4b9). Inject deps.fsFactory in createServeApp to wire audit into the EventBus.
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.
(node:277802) 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: 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: 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: 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: 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.
 ✓ src/serve/server-default-bridge-wiring.test.ts (7 tests) 1862ms
   ✓ createServeApp default bridge wiring > wires the internally-created bridge lifecycle into the workspace registry  399ms
 ✓ src/config/settings-cache.test.ts (13 tests) 34ms
 ✓ src/ui/components/agent-view/AgentComposer.queuedMessages.test.tsx (8 tests) 263ms
 ✓ src/ui/commands/restoreCommand.test.ts (16 tests) 24ms
 ✓ src/commands/review/capture-local.toctou.test.ts (7 tests) 293ms
 ✓ src/serve/routes/workspace-channel-observed-contacts.test.ts (9 tests) 34ms
 ✓ src/acp-integration/session/rewrite/LlmRewriter.test.ts (15 tests) 5ms
 ✓ src/ui/hooks/atCommandProcessor.session.test.ts (10 tests) 11ms
 ✓ src/commands/review/lib/diff-plan.integration.test.ts (9 tests) 82ms
 ✓ src/acp-integration/session/permissionUtils.test.ts (15 tests) 7ms
 ✓ src/utils/sessionPaths.test.ts (8 tests) 15ms
 ✓ src/ui/selection/screen-buffer.test.tsx (20 tests) 290ms
 ✓ src/serve/workspace-route-runtime.test.ts (28 tests) 11ms
 ✓ src/services/setup-github.test.ts (11 tests) 24ms
qwen serve: bridge error (GET /workspace/git/log): Error: boom
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/workspace-git-log.test.ts:113:39
    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)
qwen serve: bridge error (GET /workspace/git/log/commit): Error: boom
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/workspace-git-log.test.ts:296: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)
 ✓ src/serve/routes/workspace-git-log.test.ts (16 tests) 33ms
qwen serve: runtime startup failed after listener was ready: runtime boom
 ✓ src/serve/fast-path-open.test.ts (7 tests) 381ms
 ✓ src/serve/server/fs-factory.test.ts (13 tests) 13ms
 ✓ src/ui/commands/curator-command.test.ts (15 tests) 6ms
 ✓ src/commands/extensions/consent.test.ts (22 tests) 8ms
 ✓ src/commands/extensions/settings.test.ts (20 tests) 28ms
 ✓ src/ui/components/StatusLineDialog.test.tsx (8 tests) 307ms
 ✓ src/commands/review/lib/repository-context.test.ts (12 tests) 13ms
 ✓ src/serve/server/access-log.test.ts (11 tests) 14ms
 ✓ src/utils/cpuProfiler.test.ts (21 tests) 19ms
 ✓ src/ui/components/hooks/HooksManagementDialog.test.tsx (8 tests) 1388ms
   ✓ HooksManagementDialog > should navigate from matcher detail to config detail  326ms
   ✓ HooksManagementDialog > should navigate directly from a non-matcher hook to config detail  652ms
 ✓ src/commands/sessions/ps.test.ts (20 tests) 19ms
 ✓ src/serve/routes/workspace-qualified-voice.test.ts (8 tests) 48ms
 ✓ src/services/voice-service.test.ts (12 tests) 9ms
 ✓ src/commands/review/lib/paths.test.ts (19 tests) 5ms
 ✓ src/ui/utils/export/normalize.test.ts (8 tests) 4ms
 ✓ src/ui/commands/learn-command.test.ts (17 tests) 10ms
 ✓ src/ui/components/RewindSelector.test.tsx (10 tests) 315ms
 ✓ src/serve/fs/audit.test.ts (13 tests) 5ms
 ✓ src/services/commandMetadata.test.ts (37 tests) 5ms
 ✓ src/acp-integration/session/Session.review-lease.test.ts (4 tests) 18ms
 ✓ src/ui/commands/extensionsCommand.test.ts (12 tests) 9ms
 ✓ src/ui/components/messages/ConversationMessages.test.tsx (23 tests) 226ms
 ✓ src/commands/mcp/list.test.ts (9 tests) 8ms
 ✓ src/serve/env-snapshot.test.ts (15 tests) 233ms
 ✓ src/serve/routes/session-telemetry.test.ts (9 tests) 45ms
 ✓ src/ui/components/messages/CompressionMessage.test.tsx (14 tests) 179ms
 ✓ src/acp-integration/session/daemon-todo-stop-guard.test.ts (20 tests) 5ms
 ✓ src/acp-integration/child-heap-probe.test.ts (13 tests) 77ms
 ✓ src/serve/serve-app-lifecycle.test.ts (11 tests) 117ms
 ✓ src/serve/cdp-tunnel/cdp-reverse-link.test.ts (14 tests) 10ms
 ✓ src/serve/daemon-metrics-ring.test.ts (17 tests) 6ms
 ✓ src/ui/components/hooks/HookConfigDetailStep.test.tsx (17 tests) 207ms
 ✓ src/ui/opentui/session-rewind.test.ts (25 tests) 5ms
 ✓ src/ui/statusLinePresets.test.ts (18 tests) 4ms
 ✓ src/serve/fs/contract.test.ts (10 tests) 8ms
 ✓ src/utils/conversation-directory-identity.test.ts (13 tests) 20ms
 ✓ src/commands/review/lib/platform/registry.test.ts (18 tests) 5ms
 ✓ src/ui/themes/color-utils.test.ts (23 tests) 5ms
 ✓ src/serve/routes/live.test.ts (9 tests) 42ms
 ✓ src/serve/channel-workspace-grouping.test.ts (17 tests) 5ms
 ✓ src/ui/opentui/a11y-screen-reader.test.ts (27 tests) 20ms
 ✓ src/ui/commands/effort-command.test.ts (16 tests) 10ms
qwen serve: /acp SSE onClose threw: onClose boom
qwen serve: /acp SSE write failed, closing stream: EPIPE
qwen serve: /acp SSE write failed, closing stream: EPIPE
qwen serve: /acp SSE write failed, closing stream: EPIPE
 ✓ src/serve/acp-http/sse-stream.test.ts (17 tests) 484ms
 ✓ src/utils/housekeeping/throttledOnce.test.ts (14 tests) 62ms
 ✓ src/utils/warningHandler.test.ts (13 tests) 97ms
 ✓ src/commands/review/lib/same-file.test.ts (9 tests) 5ms
 ✓ src/ui/commands/compressFastCommand.test.ts (11 tests) 9ms
 ✓ src/commands/review/lib/prompt-record.test.ts (14 tests) 4ms
 ✓ src/utils/runBudget.test.ts (63 tests) 9ms
qwen serve: /acp WS error: test error
 ✓ src/serve/acp-http/ws-stream.test.ts (22 tests) 111ms
 ✓ src/serve/native-directory-picker.test.ts (21 tests) 8ms
 ✓ src/commands/extensions/update.test.ts (15 tests) 15ms
 ✓ src/ui/hooks/extension-mention-ref.test.ts (24 tests) 6ms
 ✓ src/ui/commands/forkCommand.test.ts (15 tests) 22ms
 ✓ src/ui/components/hooks/HookDetailStep.test.tsx (14 tests) 157ms
 ✓ src/ui/themes/theme-manager.test.ts (19 tests) 8ms
 ✓ src/commands/review/script-lint.test.ts (17 tests | 3 skipped) 5ms
 ✓ src/ui/commands/skillsCommand.test.ts (10 tests) 7ms
 ✓ src/services/skill-args-file.test.ts (14 tests) 6ms
 ✓ src/acp-integration/session/emitters/PlanEmitter.test.ts (20 tests) 6ms
 ✓ src/commands/review/lib/review-settings.test.ts (22 tests) 10ms
 ✓ src/ui/opentui/start-opentui-ui.test.tsx (4 tests) 7ms
 ✓ src/commands/channel/stop.test.ts (11 tests) 8ms
 ✓ src/commands/review/lib/report.test.ts (15 tests) 11ms
 ✓ src/commands/review/lib/resume.test.ts (25 tests) 3ms
Wrote resolved anchors to /tmp/resolve-anchors-lPCMeL/out.json
Wrote resolved anchors to /tmp/resolve-anchors-s3LL4f/nested/deeper/anchors.json
Anchors: 0/0 resolved
Wrote resolved anchors to /tmp/resolve-anchors-3S9cko/out.json
Anchors: 2/2 resolved
 ✓ src/commands/review/resolve-anchors.test.ts (16 tests) 9ms
qwen serve: create_sub_session failed: cwd relocation failed
qwen serve: create_sub_session failed: cwd relocation failed
qwen serve: create_sub_session failed: cwd relocation failed
 ✓ src/serve/live/live-worker-workspace.test.ts (5 tests) 15ms
 ✓ src/serve/routes/session-prompt-terminals.test.ts (5 tests) 51ms
 ✓ src/config/extension-refresh-state.test.ts (10 tests) 5ms
 ✓ src/ui/voice/voice-stream-session.test.ts (12 tests) 10ms
 ✓ src/ui/layouts/DefaultAppLayout.test.tsx (10 tests) 97ms
 ✓ src/services/command-migration-tool.test.ts (14 tests) 22ms
 ✓ src/ui/components/ShellConfirmationDialog.test.tsx (12 tests) 162ms
 ✓ src/commands/update.test.ts (10 tests) 745ms
   ✓ update command > prints the package-manager update command even when auto-update is disabled  742ms
 ✓ src/config/migration/versions/v3-to-v4.test.ts (32 tests) 5ms
 ✓ src/utils/gitUtils.test.ts (34 tests) 9ms
 ✓ src/ui/utils/historyUtils.test.ts (21 tests) 4ms
 ✓ src/ui/commands/insightCommand.test.ts (5 tests) 8ms
 ✓ src/ui/commands/ideCommand.test.ts (8 tests) 9ms
 ✓ src/utils/osc.test.ts (30 tests) 4ms
 ✓ src/ui/components/BaseTextInput.test.tsx (16 tests) 133ms
 ✓ src/ui/utils/formatters.test.ts (40 tests) 6ms
 ✓ src/serve/live/realtime-startup-context.test.ts (5 tests) 6ms
 ✓ src/commands/review/fetch-diff.test.ts (11 tests) 16ms
 ✓ src/ui/components/background-view/BackgroundTasksPill.test.tsx (22 tests) 3ms
 ✓ src/ui/opentui/link-click.test.ts (16 tests) 6ms
 ✓ src/serve/cdp-tunnel/cdp-ws.test.ts (10 tests) 208ms
 ✓ src/ui/voice/native-audio-recorder.test.ts (12 tests) 8ms
 ✓ src/ui/components/hooks/HandlerListBody.test.tsx (11 tests) 130ms
 ✓ src/serve/routes/workspace-local-open.test.ts (11 tests) 38ms
fatal: not a git repository (or any parent up to mount point /)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
 ✓ src/commands/review/match-remote.test.ts (11 tests) 94ms
 ✓ src/utils/writeWithBackup.test.ts (13 tests) 6ms
 ✓ src/serve/routes/session-runtime.test.ts (10 tests) 7ms
 ✓ src/services/prompt-processors/injectionParser.test.ts (21 tests) 5ms
 ✓ src/ui/components/TerminalImage.test.tsx (9 tests) 357ms
 ✓ src/agent-view/attach-lease.test.ts (12 tests) 13ms
qwen serve: bridge error (GET /workspace/git): Error: git failed
    at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/routes/workspace-git.test.ts:98:27)
    at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/node_modules/@vitest/spy/dist/index.js:96:15)
    at Object.spy [as getStatus] (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/workspace-git.ts:44:42
    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)
    at Layer.handleRequest (/startdir/src/qwen-code/node_modules/router/lib/layer.js:152:17)
    at /startdir/src/qwen-code/node_modules/router/index.js:295:15
qwen serve: bridge error (GET /workspaces/:workspace/git): Error: qualified git failed
    at Object.<anonymous> (/startdir/src/qwen-code/packages/cli/src/serve/routes/workspace-git.test.ts:234:27)
    at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/node_modules/@vitest/spy/dist/index.js:96:15)
    at Object.spy [as getStatus] (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103)
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/workspace-git.ts:107:44
    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)
    at Layer.handleRequest (/startdir/src/qwen-code/node_modules/router/lib/layer.js:152:17)
    at /startdir/src/qwen-code/node_modules/router/index.js:295:15
 ✓ src/serve/routes/workspace-git.test.ts (9 tests) 28ms
qwen serve: GET /usage/dashboard failed: boom
 ✓ src/serve/routes/usage-stats.test.ts (7 tests) 230ms
 ✓ src/config/migration/versions/v1-to-v2.test.ts (20 tests) 5ms
 ✓ src/services/prompt-processors/atFileProcessor.test.ts (11 tests) 9ms
qwen serve: bridge error (POST /workspace/runtime/ensure): Error: child failed
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/workspace-runtime.test.ts:142:7
    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)
qwen serve: bridge error (POST /workspace/runtime/ensure): WorkspaceRuntimeStillStartingError: Workspace runtime is still starting
    at /startdir/src/qwen-code/packages/cli/src/serve/routes/workspace-runtime.test.ts:160:7
    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/serve/routes/workspace-runtime.test.ts (11 tests) 34ms
 ✓ src/serve/daemon-status-provider.test.ts (4 tests) 250ms
 ✓ src/ui/components/background-view/agent-forest.test.ts (20 tests) 4ms
 ✓ src/ui/utils/terminalRedrawOptimizer.test.ts (15 tests) 5ms
 ✓ src/ui/utils/export/collect.test.ts (5 tests) 7ms
 ✓ src/ui/components/PluginChoicePrompt.test.tsx (13 tests) 167ms
 ✓ src/serve/fs/policy.test.ts (18 tests) 11ms
 ✓ src/ui/opentui/help-content.test.ts (15 tests) 5ms
 ✓ src/ui/commands/lspCommand.test.ts (10 tests) 7ms
 ✓ src/ui/commands/voice-command.test.ts (11 tests) 6ms
 ✓ src/serve/local-control/service.test.ts (5 tests) 9ms
 ✓ src/ui/components/SettingsCorruptedDialog.test.tsx (8 tests) 976ms
 ✓ src/remoteInput/RemoteInputWatcher.test.ts (10 tests) 628ms
 ✓ src/ui/commands/setupGithubCommand.test.ts (9 tests) 14ms
 ✓ src/ui/utils/windowTitle.test.ts (28 tests) 5ms
 ✓ src/ui/commands/bugCommand.test.ts (5 tests) 6ms
(node:305090) ExperimentalWarning: FFI is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ src/ui/opentui/dialogs-mcp.test.ts (18 tests) 4ms
 ✓ src/commands/review/run-skill-parity.test.ts (2 tests) 3ms
 ✓ src/ui/utils/asciiCharts.test.ts (21 tests) 22ms
 ✓ src/i18n/mustTranslateKeys.test.ts (20 tests) 175ms
 ✓ src/ui/model/stream-aggregation.test.ts (11 tests) 6ms
 ✓ src/commands/review/lib/certification.test.ts (22 tests) 4ms
 ✓ src/ui/components/Header.test.tsx (19 tests) 215ms
 ✓ src/acp-integration/skill-source-download.test.ts (14 tests) 14ms
 ✓ src/ui/opentui/opentui-runtime.test.ts (8 tests) 8ms
 ✓ src/ui/utils/computeStats.test.ts (12 tests) 3ms
 ✓ src/ui/components/hooks/matcherGrouping.test.ts (13 tests) 4ms
 ✓ src/ui/opentui/theme-parity.test.ts (14 tests) 10ms
 ✓ src/ui/commands/hooksCommand.test.ts (9 tests) 8ms
 ✓ src/commands/extensions/sources.test.ts (11 tests) 17ms
 ✓ src/serve/local-bind-addresses.test.ts (11 tests) 5ms
 ✓ src/commands/extensions/new.test.ts (9 tests) 19ms
 ✓ src/commands/channel/observed-contact-store.test.ts (11 tests) 7ms
 ✓ src/commands/review/lib/npm-toolchain.test.ts (7 tests) 6ms
 ✓ src/ui/opentui/commands-context.test.ts (7 tests) 3ms
 ✓ src/acp-integration/active-work-reporter.test.ts (10 tests) 7ms
 ✓ src/core/initializer.test.ts (14 tests) 5ms
 ✓ src/serve/permission-audit.test.ts (10 tests) 5ms
 ✓ src/ui/components/agent-view/AgentTabBar.test.tsx (7 tests) 89ms
 ✓ src/serve/rest-integration-docs-contract.test.ts (6 tests) 21ms
 ✓ src/serve/routes/brand.test.ts (7 tests) 25ms
 ✓ src/commands/review/comment-status.integration.test.ts (8 tests) 253ms
 ✓ src/ui/components/hooks/HookMatcherDetailStep.test.tsx (8 tests) 104ms
 ✓ src/ui/components/GoalPill.test.tsx (15 tests) 241ms
 ✓ src/utils/costCalculator.test.ts (18 tests) 3ms
 ✓ src/ui/components/messages/DiffStatsDisplay.test.tsx (8 tests) 90ms
 ✓ src/serve/workspace-inputs.test.ts (34 tests) 9ms
 ✓ src/commands/extensions/utils.test.ts (12 tests) 5ms
 ✓ src/ui/opentui/key-map.test.ts (20 tests) 5ms
 ✓ src/ui/utils/highlight.test.ts (18 tests) 3ms
 ✓ src/ui/voice/voice-recorder.test.ts (8 tests) 7ms
 ✓ src/ui/utils/software-cursor.test.ts (18 tests) 6ms
 ✓ src/ui/opentui/resume-session.test.ts (7 tests) 3ms
 ✓ src/ui/components/FindingsDisplay.test.tsx (13 tests) 131ms
 ✓ src/serve/daemon-memory-pressure.test.ts (16 tests) 4ms
qwen serve: Voice runtime disposal timed out with 1 active lease(s).
 ✓ src/serve/voice/workspace-voice-coordinator.test.ts (8 tests) 6ms
 ✓ src/ui/opentui/input-prompt-key.test.ts (17 tests) 4ms
 ✓ src/serve/fs/errors.test.ts (20 tests) 4ms
 ✓ src/ui/layouts/ScreenReaderAppLayout.test.tsx (9 tests) 91ms
 ✓ src/config/loadedSettingsAdapter.test.ts (5 tests) 5ms
 ✓ src/ui/components/AnsiOutput.test.tsx (9 tests) 105ms
 ✓ src/ui/commands/approvalModeCommand.test.ts (14 tests) 136ms
 ✓ src/ui/utils/export/markdown-document-policy.test.ts (21 tests) 79ms
 ✓ src/ui/selection/selection-text.test.ts (16 tests) 4ms
 ✓ src/ui/commands/initCommand.test.ts (6 tests) 111ms
 ✓ src/ui/components/mcp/utils.test.ts (16 tests) 4ms
 ✓ src/ui/components/SessionPreview.test.tsx (7 tests) 748ms
 ✓ src/ui/opentui/renderer-selection.test.ts (18 tests) 5ms
 ✓ src/commands/review/lib/manifest-repository-context.committed.test.ts (5 tests) 29ms
 ✓ src/serve/acp-http/dispatch-error.test.ts (10 tests) 4ms
 ✓ src/ui/opentui/osc8-parity.test.ts (17 tests) 4ms
(node:314519) ExperimentalWarning: FFI is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ src/ui/opentui/dialogs-settings.test.ts (18 tests) 7ms
 ✓ src/ui/models/availableModels.test.ts (15 tests) 5ms
 ✓ src/ui/commands/mcpCommand.test.ts (10 tests) 7ms
 ✓ src/serve/live/live-setup-controller.test.ts (7 tests) 8ms
 ✓ src/ui/opentui/dialogs-core.test.ts (19 tests) 4ms
 ✓ src/config/migration/versions/v5-to-v4.test.ts (17 tests) 5ms
 ✓ src/nonInteractive/io/StreamJsonInputReader.test.ts (11 tests) 7ms
 ✓ src/ui/utils/mouse.test.ts (17 tests) 4ms
 ✓ src/serve/server/git-branch-ops.test.ts (16 tests) 264ms
 ✓ src/acp-integration/session/recovered-goal-update.test.ts (8 tests) 5ms
(node:316074) ExperimentalWarning: FFI is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ src/ui/opentui/dialogs-model.test.ts (19 tests) 7ms
 ✓ src/serve/managed-scratch-workspace.test.ts (7 tests) 7ms
 ✓ src/ui/opentui/early-input.test.ts (16 tests) 6ms
 ✓ src/ui/opentui/slash-gateway.test.ts (21 tests) 6ms
 ✓ src/ui/utils/synchronizedOutput.test.ts (19 tests) 5ms
 ✓ src/ui/opentui/theme.test.ts (8 tests) 4ms
 ✓ src/ui/opentui/opentui-assets.test.ts (11 tests) 6ms
 ✓ src/config/skill-settings.test.ts (11 tests) 3ms
 ✓ src/utils/paths.test.ts (12 tests) 4ms
 ✓ src/utils/terminalSequence.test.ts (26 tests) 5ms
 ✓ src/ui/components/messages/GoalStatusMessage.test.tsx (15 tests) 130ms
 ✓ src/services/saved-workflow-loader.test.ts (11 tests) 4ms
 ✓ src/serve/model-providers-edit.test.ts (12 tests) 3ms
 ✓ src/ui/components/subagents/create/DescriptionInput.test.tsx (4 tests) 74ms
 ✓ src/services/commandUtils.test.ts (14 tests) 3ms
 ✓ src/utils/deepMerge.test.ts (13 tests) 3ms
 ✓ src/commands/channel/pairing.test.ts (5 tests) 7ms
 ✓ src/ui/components/background-view/liveAgentPanelVisibility.test.ts (15 tests) 3ms
 ✓ src/ui/components/shared/RadioButtonSelect.test.tsx (5 tests) 50ms
 ✓ src/serve/routes/channel-notify.test.ts (11 tests) 37ms
 ✓ src/ui/components/Tips.test.ts (9 tests) 4ms
 ✓ src/commands/extensions/disable.test.ts (10 tests) 19ms
 ✓ src/ui/components/AppHeader.test.tsx (6 tests) 99ms
 ✓ src/config/extension-runtime-reload.test.ts (6 tests) 5ms
 ✓ src/nonInteractive/io/StreamJsonOutputAdapter.dualOutput.test.ts (6 tests) 5ms
 ✓ src/commands/review/capture-local.visibility.test.ts (3 tests) 130ms
 ✓ src/ui/components/hooks/HooksListStep.test.tsx (9 tests) 113ms
 ✓ src/commands/review/lib/agent-identity.test.ts (7 tests) 2ms
 ✓ src/ui/commands/importConfigCommand.test.ts (10 tests) 4ms
 ✓ src/ui/components/ConsentPrompt.test.tsx (9 tests) 102ms
 ✓ src/ui/utils/input-mouse.test.ts (9 tests) 4ms
 ✓ src/config/migration/scheduler.test.ts (7 tests) 6ms
 ✓ src/commands/review/lib/local-anchor.oracle.test.ts (5 tests) 3ms
 ✓ src/config/mcpJson.test.ts (11 tests) 6ms
 ✓ src/commands/review/run-classify.integration.test.ts (6 tests) 44ms
 ✓ src/ui/voice/voice-refine.test.ts (11 tests) 6ms
 ✓ src/ui/components/shared/ErrorBoundary.test.tsx (8 tests) 90ms
 ✓ src/ui/opentui/kitty-negotiation.test.ts (10 tests) 65ms
 ✓ src/config/modelProvidersScope.test.ts (11 tests) 3ms
 ✓ src/serve/voice/resolve-voice-config.test.ts (3 tests) 311ms
 ✓ src/ui/components/OutputStyleDialog.test.tsx (9 tests) 137ms
 ✓ src/serve/scheduled-task-session-lifecycle.test.ts (7 tests) 13ms
 ✓ src/acp-integration/plan-mode-config.test.ts (1 test) 68ms
 ✓ src/ui/opentui/mouse-hit.test.ts (13 tests) 4ms
 ✓ src/ui/opentui/theme-auto.test.ts (9 tests) 6ms
 ✓ src/ui/hooks/session-completion.test.ts (8 tests) 4ms
 ✓ src/acp-integration/live/capture-screen-context.test.ts (5 tests) 23ms
 ✓ src/ui/commands/planCommand.test.ts (7 tests) 6ms
 ✓ src/serve/sse-last-event-id.test.ts (25 tests) 5ms
 ✓ src/commands/mcp/approve.test.ts (7 tests) 15ms
 ✓ src/ui/components/SettingInputPrompt.test.tsx (7 tests) 101ms
 ✓ src/ui/components/background-view/liveAgentPanelLayout.measurement.test.tsx (2 tests) 146ms
 ✓ src/commands/channel/reload.test.ts (6 tests) 6ms
 ✓ src/utils/cleanup.test.ts (9 tests) 155ms
 ✓ src/ui/opentui/a11y-plain-text.test.ts (19 tests) 4ms
 ✓ src/commands/extensions/enable.test.ts (10 tests) 16ms
 ✓ src/ui/components/background-view/workflow-save-overlay.test.tsx (7 tests) 194ms
 ✓ src/ui/utils/lowlightLoader.test.ts (5 tests) 12ms
 ✓ src/ui/commands/resumeCommand.test.ts (9 tests) 6ms
 ✓ src/acp-integration/session/tool-call-preparation-tracker.test.ts (6 tests) 5ms
 ✓ src/ui/components/agent-view/AgentChatView.test.tsx (6 tests) 78ms
 ✓ src/serve/extension-operation-scheduler.test.ts (8 tests) 176ms
 ✓ src/ui/components/mcp/steps/ResourceListStep.test.tsx (5 tests) 158ms
 ✓ src/commands/channel/channel-registry-builtins.test.ts (2 tests) 202ms
 ✓ src/ui/voice/sox-recorder.test.ts (5 tests) 5ms
 ✓ src/commands/channel/set.test.ts (6 tests) 7ms
 ✓ src/ui/components/StickyTodoList.test.tsx (6 tests) 100ms
 ✓ src/ui/utils/findings-coalescing.test.ts (6 tests) 2ms
 ✓ src/serve/skill-details-redaction.test.ts (9 tests) 3ms
 ✓ src/ui/App.test.tsx (7 tests) 75ms
 ✓ src/ui/opentui/client-tool-run.test.ts (3 tests) 4ms
 ✓ src/ui/components/arena/ArenaCards.test.tsx (2 tests) 62ms
 ✓ src/serve/session-attachments-root.test.ts (12 tests) 3ms
 ✓ src/ui/components/ToolStatsDisplay.test.tsx (5 tests) 87ms
 ✓ src/ui/utils/CodeColorizer.test.ts (18 tests) 3ms
 ✓ src/ui/components/messages/ToolGroupMessage.heightBudget.test.tsx (2 tests) 76ms
 ✓ src/agent-view/supervisor-dispatch.test.ts (4 tests) 24ms
 ✓ src/ui/update-relaunch.test.ts (6 tests) 106ms
 ✓ src/commands/review/lib/merge-base.test.ts (9 tests) 4ms
(node:328727) ExperimentalWarning: FFI is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ src/ui/opentui/dialogs-permissions.test.ts (12 tests) 5ms
 ✓ src/serve/mcp-app-sandbox.test.ts (6 tests) 28ms
 ✓ src/serve/total-session-admission.test.ts (5 tests) 3ms
 ✓ src/ui/opentui/slash-dispatch.test.ts (5 tests) 33ms
 ✓ src/ui/opentui/commands-output.test.ts (8 tests) 3ms
 ✓ src/ui/utils/MermaidDiagram.test.tsx (5 tests) 195ms
 ✓ src/ui/components/StatsEfficiencyTab.test.tsx (4 tests) 85ms
 ✓ src/services/FileCommandLoader-markdown.test.ts (4 tests) 16ms
 ✓ src/ui/voice/voice-keyterms-race.test.ts (3 tests) 705ms
 ✓ src/commands/channel/status.test.ts (4 tests) 7ms
 ✓ src/ui/opentui/mouse-scrollbar.test.ts (14 tests) 4ms
 ✓ src/services/markdown-command-parser.test.ts (13 tests) 9ms
 ✓ src/utils/acp-startup-profiler.test.ts (4 tests) 4ms
 ✓ src/commands/review/lib/local-anchor.batch.test.ts (3 tests) 15ms
 ✓ src/ui/opentui/session-compaction.test.ts (13 tests) 3ms
 ✓ src/ui/commands/docsCommand.test.ts (6 tests) 6ms
 ✓ src/commands/review/lib/round-model.test.ts (8 tests) 2ms
 ✓ src/agent-view/presentation.test.ts (4 tests) 11ms
 ✓ src/ui/components/ApprovalModeDialog.test.tsx (9 tests) 114ms
 ✓ src/ui/utils/sessionPickerUtils.test.ts (16 tests) 6ms
 ✓ src/ui/components/views/ContextUsage.test.tsx (5 tests) 155ms
 ✓ src/ui/components/agent-view/AgentComposer.test.tsx (3 tests) 47ms
 ✓ src/ui/components/views/McpStatus.test.tsx (12 tests) 138ms
 ✓ src/commands/review/lib/run-ledger.race.test.ts (4 tests) 6ms
 ✓ src/serve/channel-loop-mcp-ipc.test.ts (4 tests) 5ms
 ✓ src/ui/commands/toolsCommand.test.ts (6 tests) 6ms
 ✓ src/config/daemon-trust-policy-monitor.test.ts (5 tests) 56ms
 ✓ src/services/notificationService.test.ts (9 tests) 4ms
 ✓ src/services/tips/tipScheduler.test.ts (7 tests) 3ms
 ✓ src/commands/review/lib/platform/github.test.ts (8 tests) 3ms
 ✓ src/ui/components/SessionSummaryDisplay.test.tsx (3 tests) 74ms
 ✓ src/utils/json-string-byte-projection.test.ts (14 tests) 81ms
 ✓ src/serve/local-control/lan-interfaces.test.ts (3 tests) 3ms
 ✓ src/ui/utils/export/formatters/html.test.ts (3 tests) 227ms
 ✓ src/ui/utils/measure-element-position.test.tsx (6 tests) 172ms
 ✓ src/nonInteractive/chat-recording-failure.test.ts (5 tests) 7ms
 ✓ src/ui/commands/historyCommand.test.ts (5 tests) 125ms
 ✓ src/ui/utils/mouse-hit.test.ts (8 tests) 4ms
 ✓ src/ui/utils/modelsBySource.test.ts (7 tests) 3ms
 ✓ src/services/tips/tipHistory.test.ts (11 tests) 4ms
 ✓ src/ui/utils/hyperlink-at.test.ts (14 tests) 3ms
 ✓ src/ui/commands/arenaCommand.agentComplete.test.ts (1 test) 6ms
 ✓ src/agent-view/managed-detach.test.ts (5 tests) 4ms
 ✓ src/ui/components/mcp/steps/ServerListStep.test.tsx (5 tests) 84ms
 ✓ src/ui/opentui/mouse-caret.test.ts (12 tests) 4ms
 ✓ src/ui/components/shared/TextInput.test.tsx (6 tests) 65ms
 ✓ src/serve/cdp-tunnel/acceptance/acceptance-helpers.test.ts (9 tests) 317ms
qwen serve: temporary bearer authentication enabled for this Web Shell launch; use an explicit shared token for additional clients.
qwen serve: temporary bearer authentication enabled for this Web Shell launch; use an explicit shared token for additional clients.
qwen serve: temporary bearer authentication enabled for this Web Shell launch; use an explicit shared token for additional clients.
qwen serve: temporary bearer authentication enabled for this Web Shell launch; use an explicit shared token for additional clients.
qwen serve: temporary bearer authentication enabled for this Web Shell launch; use an explicit shared token for additional clients.
qwen serve: temporary bearer authentication enabled for this Web Shell launch; use an explicit shared token for additional clients.
qwen serve: temporary bearer authentication enabled for this Web Shell launch; use an explicit shared token for additional clients.
 ✓ src/serve/open-with-auth.test.ts (14 tests) 6ms
 ✓ src/ui/hooks/useShowMemoryCommand.test.ts (4 tests) 11ms
 ✓ src/commands/channel/channel-descriptor-sdk-mirror.test.ts (2 tests) 240ms
 ✓ src/ui/commands/dreamCommand.test.ts (5 tests) 6ms
 ✓ src/commands/review/script-lint-isolation.test.ts (2 tests) 4ms
 ✓ src/ui/contexts/VimModeContext.test.tsx (4 tests) 58ms
 ✓ src/ui/components/agent-view/AgentChatContent.fullDetail.test.tsx (2 tests) 53ms
 ✓ src/serve/live/provider-credentials.test.ts (10 tests) 4ms
 ✓ src/ui/voice/voice-stream-retry.test.ts (6 tests) 6ms
 ✓ src/acp-integration/generation.test.ts (3 tests) 5ms
 ✓ src/ui/components/shared/BaseSelectionList.mouse.test.tsx (5 tests) 71ms
 ✓ src/commands/review/lib/incremental-scope.test.ts (3 tests) 4ms
 ✓ src/config/normalizeDisabledTools.test.ts (16 tests) 3ms
 ✓ src/peerMessaging/inbound-policy-scope.test.ts (10 tests) 3ms
 ✓ src/serve/workflow-session-gate.test.ts (6 tests) 4ms
 ✓ src/nonInteractive/control/controllers/sdkMcpController.test.ts (1 test) 5ms
 ✓ src/ui/components/mcp/steps/ResourceDetailStep.test.tsx (6 tests) 65ms
 ✓ src/ui/components/EffortDialog.test.tsx (7 tests) 111ms
qwen serve: POST /workspace/generate failed: Error: upstream failed
    at Object.generateWorkspaceContent (/startdir/src/qwen-code/packages/cli/src/serve/workspace-generation.test.ts:88:15)
    at generateWorkspaceContent.next (<anonymous>)
    at /startdir/src/qwen-code/packages/cli/src/serve/workspace-generation.ts:83:24
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
 ✓ src/serve/workspace-generation.test.ts (7 tests) 26ms
 ✓ src/ui/selection/selection-span.test.ts (9 tests) 3ms
 ✓ src/ui/opentui/exit-guard.test.ts (9 tests) 6ms
 ✓ src/serve/server/device-flow-registry.test.ts (3 tests) 5ms
 ✓ src/ui/components/extensions/steps/ExtensionListStep.test.tsx (5 tests) 70ms
 ✓ src/ui/utils/goal-runtime.test.ts (8 tests) 6ms
 ✓ src/utils/readStdin.test.ts (5 tests) 98ms
 ✓ src/ui/components/shared/ToolElapsedTime.test.tsx (8 tests) 80ms
 ✓ src/ui/selection/use-text-selection-render.test.tsx (1 test) 143ms
[?25h ✓ src/ui/components/hooks/sourceLabels.test.ts (10 tests) 3ms
 ✓ src/ui/opentui/exit-lifecycle.test.ts (6 tests) 26ms
 ✓ src/ui/utils/inline-image-parts.test.ts (7 tests) 3ms
 ✓ src/utils/classify-api-error.test.ts (18 tests) 3ms
 ✓ src/ui/components/PrepareLabel.test.tsx (6 tests) 63ms
 ✓ src/acp-integration/extension-skills.test.ts (4 tests) 2ms
 ✓ src/ui/opentui/sticky-todos.test.ts (8 tests) 2ms
 ✓ src/serve/channel-delivery-authorization.test.ts (4 tests) 2ms
 ✓ src/commands/extensions/link.test.ts (5 tests) 13ms
(node:338560) ExperimentalWarning: FFI is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ src/ui/opentui/dialogs-theme.test.ts (10 tests) 4ms
 ✓ src/ui/commands/reload-plugins-command.test.ts (3 tests) 5ms
 ✓ src/ui/components/QueuedMessageDisplay.test.tsx (7 tests) 108ms
 ✓ src/ui/opentui/opentui-error-boundary.test.tsx (5 tests) 4ms
qwen serve: /cdp tunnel — extension bridge 'b' superseded the stale 'a'
qwen serve: /cdp tunnel — extension bridge 'b' superseded the stale 'a'
qwen serve: /cdp tunnel — extension bridge 'b' superseded the stale 'a'
 ✓ src/serve/cdp-tunnel/cdp-tunnel-registry.test.ts (8 tests) 5ms
 ✓ src/utils/userPromptExpansionHook.test.ts (12 tests) 3ms
 ✓ src/runtime/workspace-skills-mapping.test.ts (6 tests) 3ms
 ✓ src/commands/channel/startup-failure-format.test.ts (4 tests) 5ms
 ✓ src/serve/server/telemetry-catalog.test.ts (1 test) 10ms
 ✓ src/commands/review/lib/worktree-reader.test.ts (6 tests) 3ms
 ✓ src/ui/components/hooks/HooksDisabledStep.test.tsx (8 tests) 90ms
 ✓ src/serve/pem-certificate-blocks-oracle.test.ts (10 tests) 7ms
 ✓ src/commands/auth.test.ts (9 tests) 16ms
 ✓ src/serve/server/session-export.test.ts (3 tests) 4ms
 ✓ src/ui/utils/approvalModeDisplay.test.ts (5 tests) 15ms
 ✓ src/ui/opentui/diff-render.test.ts (5 tests) 3ms
 ✓ src/ui/commands/forgetCommand.test.ts (6 tests) 4ms
 ✓ src/test-utils/latency-budget.test.ts (6 tests) 3ms
 ✓ src/commands/mcp/remove.test.ts (4 tests) 14ms
 ✓ src/ui/opentui/transcript-adapter.test.ts (5 tests) 2ms
 ✓ src/ui/components/shared/DescriptiveRadioButtonSelect.test.tsx (4 tests) 63ms
 ✓ src/runtime/channel-delivery-ipc.test.ts (10 tests) 4ms
 ✓ src/commands/review/lib/workflow-batch.test.ts (7 tests) 15ms
 ✓ src/ui/utils/kittyProtocolDetector.test.ts (3 tests) 5ms
 ✓ src/ui/themes/theme.test.ts (5 tests) 2ms
 ✓ src/config/mcpServers.test.ts (6 tests) 3ms
 ✓ src/acp-integration/session/history-replayer.conformance.test.ts (1 test) 7ms
 ✓ src/serve/routes/session-turn-failure.test.ts (10 tests) 3ms
 ✓ src/commands/review.test.ts (5 tests) 3ms
 ✓ src/commands/extensions.test.tsx (11 tests) 28ms
No extensions installed.
 ✓ src/ui/app-container-controls-dep.test.ts (3 tests) 2ms
 ✓ src/ui/utils/terminal-buffer.test.ts (7 tests) 2ms
 ✓ src/acp-integration/session/rewrite/TurnBuffer.test.ts (12 tests) 4ms
 ✓ src/ui/components/views/ExtensionsList.test.tsx (9 tests) 91ms
 ✓ src/agent-view/current-cli-argv.test.ts (4 tests) 6ms
 ✓ src/ui/utils/inline-math.test.ts (9 tests) 4ms
 ✓ src/serve/channel-worker-startup-ipc.test.ts (3 tests) 2ms
 ✓ src/commands/review/lib/receipt.test.ts (11 tests) 3ms
 ✓ src/serve/routes/workspace-lifecycle.test.ts (2 tests) 23ms
 ✓ src/ui/components/extensions/steps/ActionSelectionStep.test.tsx (5 tests) 71ms
 ✓ src/commands/review/lib/diff-flags.test.ts (4 tests) 2ms
 ✓ src/ui/opentui/mcp-progressive.test.ts (5 tests) 5ms
 ✓ src/commands/extensions/list.test.ts (4 tests) 22ms
 ✓ src/ui/opentui/text-batcher.test.ts (6 tests) 255ms
 ✓ src/utils/headlessSafetyWarnings.test.ts (7 tests) 2ms
 ✓ src/acp-integration/authPreflight.test.ts (4 tests) 3ms
 ✓ src/utils/startupWarnings.test.ts (5 tests) 4ms
 ✓ src/ui/components/ThemeDialog.test.tsx (2 tests) 273ms
 ✓ src/ui/components/messages/AdvisorMessage.test.tsx (3 tests) 142ms
 ✓ src/ui/hooks/useTerminalNotification.test.ts (6 tests) 4ms
 ✓ src/ui/components/StatsSessionTab.test.tsx (3 tests) 72ms
 ✓ src/services/insight/generators/StaticInsightGenerator.test.ts (1 test) 5ms
 ✓ src/commands/sessions.test.ts (3 tests) 6ms
 ✓ src/ui/opentui/clipboard.test.ts (6 tests) 4ms
 ✓ src/ui/utils/list-mouse.test.ts (12 tests) 2ms
 ✓ src/services/insight/generators/TemplateRenderer.test.ts (3 tests) 2ms
 ✓ src/ui/opentui/mouse-rows.test.ts (6 tests) 4ms
 ✓ src/ui/utils/displayUtils.test.ts (8 tests) 3ms
 ✓ src/commands/review/lib/md-field.test.ts (5 tests) 3ms
 ✓ src/ui/components/ContextSummaryDisplay.test.tsx (4 tests) 52ms
 ✓ src/ui/commands/terminalSetupCommand.test.ts (5 tests) 3ms
 ✓ src/ui/components/DialogManager.test.tsx (2 tests) 56ms
 ✓ src/ui/components/TodoDisplay.test.tsx (6 tests) 73ms
 ✓ src/services/tips/tipRegistry.test.ts (5 tests) 2ms
 ✓ src/ui/utils/mermaidVisualRenderer.test.ts (4 tests) 9ms
 ✓ src/serve/server/request-helpers.sandbox.test.ts (3 tests) 3ms
 ✓ src/ui/components/IdeTrustChangeDialog.test.tsx (6 tests) 132ms
 ✓ src/acp-integration/session/rewrite/config.test.ts (5 tests) 2ms
 ✓ src/ui/commands/branchCommand.test.ts (6 tests) 4ms
(node:345043) ExperimentalWarning: FFI is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ src/ui/opentui/dialogs-memory-status.test.ts (5 tests) 2ms
 ✓ src/services/insight/dates.test.ts (8 tests) 11ms
 ✓ src/commands/review/lib/git.test.ts (5 tests) 3ms
qwen serve: scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them: npm_config_userconfig, NODE_OPTIONS, npm_config_globalconfig, npm_config_init_module, npm_config_prefix, npm_config_node_gyp
2026-11-05T14:36:04.958Z [INFO] [DAEMON] projectMemoryScope=workspace projectMemoryScopeRaw=workspace projectMemoryScopeSource=default project memory scope resolved
2026-11-05T14:36:04.958Z [INFO] [DAEMON] removedKeys=npm_config_userconfig,NODE_OPTIONS,npm_config_globalconfig,npm_config_init_module,npm_config_prefix,npm_config_node_gyp scrubbed inherited loader env vars from the daemon process; session subprocesses will not inherit them
qwen serve: daemon log → /build/.qwen/debug/daemon/daemon.log
qwen serve listening on http://127.0.0.1:42631 (mode=http-bridge, workspace=/tmp/qws-broken-pipe-rqtcwe)
qwen serve: bound to workspace "/tmp/qws-broken-pipe-rqtcwe"
qwen serve: startup timing: processToListenMs=1070 runQwenServeToListenMs=48
qwen serve: trusted loopback mode; local callers have full API access without bearer authentication, including code execution as the daemon user. Use --require-auth with QWEN_SERVER_TOKEN on shared or untrusted hosts.
2026-11-05T14:36:04.999Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms
2026-11-05T14:36:05.000Z [INFO] [DAEMON] deferred runtime: cancelled, server closed before startup
2026-11-05T14:36:05.001Z [INFO] [DAEMON] daemon stopped
 ✓ src/serve/serve-broken-pipe.test.ts (1 test) 56ms
 ✓ src/config/trust-precedence.test.ts (5 tests) 3ms
 ✓ src/ui/commands/rememberCommand.test.ts (5 tests) 5ms
 ✓ src/serve/run-qwen-serve.sandbox.test.ts (3 tests) 2ms
 ✓ src/ui/components/SkillStatsDisplay.test.tsx (2 tests) 46ms
 ✓ src/ui/components/mcp/steps/ServerDetailStep.test.tsx (4 tests) 68ms
 ✓ src/config/path-freshness.test.ts (3 tests) 2ms
 ✓ src/ui/opentui/input-history.test.ts (6 tests) 2ms
 ✓ src/serve/routes/workspace-trust.test.ts (2 tests) 21ms
(node:345779) ExperimentalWarning: FFI is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ src/ui/opentui/dialogs-misc.test.tsx (5 tests) 2ms
 ✓ src/ui/components/DebugModeNotification.test.tsx (2 tests) 28ms
 ✓ src/ui/systemInfoFields.test.ts (2 tests) 3ms
 ✓ src/utils/stdioHelpers.test.ts (6 tests) 5ms
 ✓ src/runtime/channel-delivery.test.ts (12 tests) 4ms
 ✓ src/commands/review/lib/build-budget.test.ts (4 tests) 2ms
 ✓ src/runtime/scheduled-task-run.test.ts (5 tests) 3ms
 ✓ src/serve/web-shell-static.test.ts (3 tests) 3ms
 ✓ src/config/session-id.test.ts (21 tests) 3ms
 ✓ src/commands/mcp.test.ts (3 tests) 7ms
 ✓ src/ui/commands/authCommand.test.ts (6 tests) 4ms
 ✓ src/ui/components/messages/BtwMessage.test.tsx (5 tests) 66ms
 ✓ src/commands/review/load-rules.test.ts (6 tests) 2ms
 ✓ src/commands/extensions/uninstall.test.ts (2 tests) 8ms
 ✓ src/utils/userStartupWarnings.test.ts (3 tests) 7ms
 ✓ src/commands/channel/pidfile-lock.test.ts (3 tests) 164ms
 ✓ src/serve/server/activity-timestamp.test.ts (3 tests) 2ms
 ✓ src/config/keyBindings.test.ts (4 tests) 6ms
 ✓ src/acp-integration/authMethods.test.ts (6 tests) 3ms
 ✓ src/ui/hooks/mcpResourceRef.test.ts (7 tests) 2ms
 ✓ src/commands/review/lib/diff-plan.slice.test.ts (3 tests) 4ms
 ✓ src/serve/acp-http/json-rpc.test.ts (9 tests) 2ms
 ✓ src/serve/serve-token.test.ts (5 tests) 3ms
 ✓ src/serve/routes/health.test.ts (2 tests) 22ms
 ✓ src/services/prompt-stash.test.ts (4 tests) 5ms
 ✓ src/core/theme.test.ts (5 tests) 3ms
 ✓ src/serve/acp-http/pre-attach-budget.test.ts (3 tests) 2ms
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.
 ✓ src/serve/server-acp-child-extra-args.test.ts (2 tests) 37ms
 ✓ src/ui/components/WorktreeExitDialog.test.tsx (1 test) 37ms
 ✓ src/ui/components/AutoAcceptIndicator.test.tsx (6 tests) 84ms
 ✓ src/ui/components/subagents/manage/AgentSelectionStep.test.tsx (1 test) 47ms
 ✓ src/acp-integration/live/live-task-tools.test.ts (3 tests) 20ms
 ✓ src/commands/sessions/common.test.ts (3 tests) 3ms
 ✓ src/ui/hooks/session-mention-ref.test.ts (9 tests) 3ms
 ✓ src/serve/pem-certificate-blocks-legacy.test.ts (5 tests) 4ms
 ✓ src/ui/voice/voice-model.test.ts (4 tests) 2ms
 ✓ src/ui/commands/themeCommand.test.ts (3 tests) 3ms
 ✓ src/ui/utils/theme-background.test.ts (3 tests) 2ms
 ✓ src/ui/components/mcp/steps/ToolListStep.test.tsx (1 test) 44ms
 ✓ src/test-utils/mockCommandContext.test.ts (3 tests) 3ms
 ✓ src/serve/server-workspace-service.test.ts (1 test) 32ms
 ✓ src/serve/channel-selection.test.ts (7 tests) 4ms
 ✓ src/core/auth.test.ts (3 tests) 3ms
 ✓ src/ui/components/ProviderUpdatePrompt.test.tsx (2 tests) 62ms
 ✓ src/ui/commands/statuslineCommand.test.ts (4 tests) 4ms
 ✓ src/config/top-level-options.test.ts (3 tests) 3ms
 ✓ src/ui/selection/selection-coords.test.ts (6 tests) 3ms
 ✓ src/ui/commands/helpCommand.test.ts (3 tests) 4ms
 ✓ src/serve/channel-worker-diagnostics.test.ts (3 tests) 3ms
qwen serve: unhandled error: URIError: unmarked
    at /startdir/src/qwen-code/packages/cli/src/serve/server/error-handlers.test.ts:17:13
    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)
    at Layer.handleRequest (/startdir/src/qwen-code/node_modules/router/lib/layer.js:152:17)
    at /startdir/src/qwen-code/node_modules/router/index.js:295:15
    at processParams (/startdir/src/qwen-code/node_modules/router/index.js:582:12)
    at next (/startdir/src/qwen-code/node_modules/router/index.js:291:5)
    at router.handle (/startdir/src/qwen-code/node_modules/router/index.js:186:3)
 ✓ src/serve/server/error-handlers.test.ts (3 tests) 19ms
 ✓ src/ui/voice/voice-availability.test.ts (6 tests) 2ms
 ✓ src/ui/components/mcp/MCPHealthPill.test.tsx (6 tests) 2ms
 ✓ src/ui/components/LoopDetectionConfirmation.test.tsx (2 tests) 52ms
 ✓ src/serve/capabilities-docs-contract.test.ts (2 tests) 4ms
 ✓ src/ui/components/views/ToolsList.test.tsx (3 tests) 44ms
 ✓ src/utils/load-undici.test.ts (3 tests) 6ms
 ✓ src/utils/processUtils.test.ts (4 tests) 3ms
 ✓ src/ui/components/KeyboardShortcuts.test.tsx (3 tests) 62ms
 ✓ src/test-utils/slow-test-host.test.ts (3 tests) 2ms
 ✓ src/serve/acp-http/safe-ws-send.test.ts (4 tests) 4ms
 ✓ src/ui/commands/quitCommand.test.ts (1 test) 4ms
 ✓ src/ui/opentui/markdown-heal.test.ts (6 tests) 3ms
 ✓ src/utils/normalize-part-list.test.ts (7 tests) 2ms
 ✓ src/serve/acp-http/dispatch.sandbox.test.ts (2 tests) 3ms
 ✓ src/services/command-factory.test.ts (2 tests) 10ms
 ✓ src/services/prompt-processors/argumentProcessor.test.ts (2 tests) 3ms
 ✓ src/utils/resolvePath.test.ts (7 tests) 2ms
 ✓ src/ui/commands/vimCommand.test.ts (3 tests) 3ms
 ✓ src/ui/utils/workflow-keyword.test.ts (11 tests) 2ms
 ✓ src/utils/standalone-update-verify.test.ts (3 tests) 3ms
 ✓ src/ui/utils/latexRenderer.test.ts (4 tests) 4ms
 ✓ src/ui/utils/tool-display-map.test.ts (2 tests) 2ms
 ✓ src/serve/conversations/conversation-runtime-activity.test.ts (2 tests) 3ms
 ✓ src/config/acp-channel-fallback.test.ts (6 tests) 2ms
 ✓ src/ui/components/approvalModeVisuals.test.ts (3 tests) 2ms
 ✓ src/ui/components/messages/StatusMessages.test.tsx (1 test) 42ms
 ✓ src/utils/midTurnUserMessage.test.ts (3 tests) 2ms
 ✓ src/ui/components/RespondingSpinner.test.tsx (2 tests) 30ms
 ✓ src/ui/utils/CodeColorizer.semantic.test.tsx (1 test) 34ms
 ✓ src/ui/components/mcp/MCPManagementDialog.test.tsx (1 test) 40ms
 ✓ src/ui/commands/settingsCommand.test.ts (2 tests) 3ms
 ✓ src/acp-integration/runtimeOutputDirContext.test.ts (1 test) 2ms
 ✓ src/ui/commands/permissionsCommand.test.ts (3 tests) 3ms
 ✓ src/ui/commands/goal-pause-reason-wire-key.test.ts (2 tests) 2ms
 ✓ src/ui/commands/trustCommand.test.ts (3 tests) 4ms
 ✓ src/commands/channel/channel-cwd.test.ts (4 tests) 2ms
 ✓ src/serve/acp-child-extra-args.test.ts (2 tests) 2ms
 ✓ src/ui/utils/layoutUtils.test.ts (4 tests) 2ms
 ✓ src/ui/commands/editorCommand.test.ts (2 tests) 3ms
 ✓ src/acp-integration/live/live-speak-to-user.test.ts (1 test) 18ms
 ✓ src/utils/shell-args.test.ts (4 tests) 2ms
 ✓ src/ui/commands/deleteCommand.test.ts (2 tests) 3ms
 ✓ src/commands/channel/private-parent-capability-wire-key.test.ts (1 test) 1ms
 ✓ src/ui/components/VoiceIndicator.test.tsx (2 tests) 43ms
 ✓ src/serve/server/request-helpers.test.ts (1 test) 2ms
 ✓ src/ui/components/ExternalAuthProgress.test.tsx (1 test) 34ms
 ✓ src/acp-integration/live/live-backend-instructions.test.ts (2 tests) 2ms
 ✓ src/ui/commands/memoryCommand.test.ts (2 tests) 3ms
 ✓ src/commands/channel/channel-prompt-wire-key.test.ts (1 test) 1ms
 ✓ src/commands/channel/display-text-wire-key.test.ts (1 test) 1ms
 ✓ src/ui/components/CronPill.test.tsx (2 tests) 60ms
 ✓ src/commands/channel/channel-btw-wire-key.test.ts (1 test) 1ms
 ✓ src/ui/hooks/use-llm-stream.test.tsx (279 tests) 5177ms
]0;Qwen - workspace                                                                ]2;Qwen - workspace                                                                ]0;Qwen - workspace                                                                ]2;Qwen - workspace                                                                 ✓ src/ui/AppContainer.test.tsx (192 tests) 5027ms
 ✓ src/ui/components/InputPrompt.test.tsx (215 tests) 59949ms
   ✓ InputPrompt > onTabConsumerChange reporting (issue #4171) > reports true while the followup prompt suggestion is visible  718ms
   ✓ InputPrompt > onTabConsumerChange reporting (issue #4171) > reports false again after the autocomplete dropdown is dismissed  353ms
   ✓ InputPrompt > onSuggestionsVisibilityChange stays narrow (autocomplete only) > stays false when only a followup prompt suggestion is visible  719ms
   ✓ InputPrompt > should set the buffer text when a shell history command is retrieved  320ms
   ✓ InputPrompt > should call shellHistory.addCommandToHistory on submit in shell mode  322ms
   ✓ InputPrompt > should NOT call shell history methods when not in shell mode  623ms
   ✓ InputPrompt > should call completion.navigateUp for up arrow when suggestions are showing  474ms
   ✓ InputPrompt > should call completion.navigateDown for down arrow when suggestions are showing  473ms
   ✓ InputPrompt > should NOT call completion navigation when suggestions are not showing  774ms
   ✓ InputPrompt > clipboard image paste > should handle Ctrl+V when clipboard has an image  323ms
   ✓ InputPrompt > clipboard image paste > should handle Cmd+V when clipboard has an image  320ms
   ✓ InputPrompt > clipboard image paste > keeps generated attachment references out of submitted provenance  330ms
   ✓ InputPrompt > clipboard image paste > should not insert anything when clipboard has no image  322ms
   ✓ InputPrompt > clipboard image paste > should show the native clipboard error only once across remounts  791ms
   ✓ InputPrompt > clipboard image paste > should handle image save failure gracefully  321ms
   ✓ InputPrompt > clipboard image paste > should insert image path at cursor position with proper spacing  322ms
   ✓ InputPrompt > clipboard image paste > should handle errors during clipboard operations gracefully  321ms
   ✓ InputPrompt > should complete a partial parent command  322ms
   ✓ InputPrompt > should append a sub-command when the parent command is already complete  324ms
   ✓ InputPrompt > should handle the "backspace" edge case correctly  322ms
   ✓ InputPrompt > should complete a partial argument for a command  320ms
   ✓ InputPrompt > should autocomplete on Enter when suggestions are active, without submitting  325ms
   ✓ InputPrompt > should complete a command based on its altNames  321ms
   ✓ InputPrompt > should not submit on Enter when the buffer is empty or only contains whitespace  322ms
   ✓ InputPrompt > should submit directly on Enter when isPerfectMatch is true  322ms
   ✓ InputPrompt > should submit a live exact slash command when completion is stale  323ms
   ✓ InputPrompt > should not submit a live partial slash command when completion is stale  322ms
   ✓ InputPrompt > should submit a perfect match on Enter when suggestions were not navigated  322ms
   ✓ InputPrompt > should fill and submit an export format selected with arrow navigation  475ms
   ✓ InputPrompt > should keep cycling export formats after arrow navigation fills input  475ms
   ✓ InputPrompt > should keep cycling export formats with Ctrl+P/N after arrow navigation fills input  626ms
   ✓ InputPrompt > should keep export format suggestions visible after arrow navigation fills input  326ms
   ✓ InputPrompt > should not clobber manually edited buffer when arrow is pressed after export fill  777ms
   ✓ InputPrompt > should wrap to jsonl when pressing Up from the /export Phase 1 popup  325ms
   ✓ InputPrompt > should wrap Phase 2 cycling backward when pressing Up repeatedly  626ms
   ✓ InputPrompt > should seed Phase 2 cycling when Tab accepts a format in the /export popup  628ms
   ✓ InputPrompt > should not overwrite /export html with extra args when Down is pressed  475ms
   ✓ InputPrompt > should reset export cycling state on Escape so arrows no longer cycle  625ms
   ✓ InputPrompt > should reset export cycling state on Ctrl+C so new input is not overwritten  626ms
   ✓ InputPrompt > should cycle export format on Down when /export <fmt> was typed manually (not via popup)  537ms
   ✓ InputPrompt > should not arm export cycling from restored history text  324ms
   ✓ InputPrompt > should trigger export-specific arrow navigation even when completion suggestions are a superset  324ms
   ✓ InputPrompt > should fall through to generic accept when Tab targets a non-export item in the /export superset popup  325ms
   ✓ InputPrompt > should fall through to generic completion when suggestions are missing an export format  323ms
   ✓ InputPrompt > should trigger Phase 1 export popup even when /export has trailing spaces  323ms
   ✓ InputPrompt > should autocomplete on Enter when user arrow-navigated a perfect-match suggestion list  474ms
   ✓ InputPrompt > should submit directly on Enter after arrow-navigate + backspace + retype to perfect match  810ms
   ✓ InputPrompt > should submit directly on Enter for a perfect match without prior arrow navigation  323ms
   ✓ InputPrompt > should dismiss completion on Enter after accepting @path suggestion  323ms
   ✓ InputPrompt > should autocomplete @path on Tab without submitting or resetting completion  323ms
   ✓ InputPrompt > should NOT switch category on left/right when availableCategories <= 2  475ms
   ✓ InputPrompt > should NOT switch category on left/right when availableCategories is exactly 2  476ms
   ✓ InputPrompt > should switch category on plain arrows before Vim handling  477ms
   ✓ InputPrompt > should NOT switch category on bare arrows while command search is active  627ms
   ✓ InputPrompt > should hide category tabs and keep bare arrows for attachments  776ms
   ✓ InputPrompt > should NOT consume Ctrl+left/right for category switching (#8069)  477ms
   ✓ InputPrompt > should reset history navigation after submitting on Enter  322ms
   ✓ InputPrompt > should submit directly on Enter when a complete leaf command is typed  323ms
   ✓ InputPrompt > should autocomplete an @-path on Enter without submitting  325ms
   ✓ InputPrompt > should add a newline on enter when the line ends with a backslash  323ms
   ✓ InputPrompt > should clear the buffer on Ctrl+C if it has text  322ms
   ✓ InputPrompt > should NOT clear the buffer on Ctrl+C if it is empty  322ms
   ✓ InputPrompt > vim mode > should not call buffer.handleInput when vim handles the input  324ms
   ✓ InputPrompt > vim mode > should call buffer.handleInput when vim does not handle the input  326ms
   ✓ InputPrompt > vim mode > should call handleInput when vim mode is disabled  324ms
   ✓ InputPrompt > vim mode > should toggle shortcuts when vim passes through ? on an empty prompt  322ms
   ✓ InputPrompt > unfocused paste > should handle bracketed paste when not focused  322ms
   ✓ InputPrompt > unfocused paste > should ignore regular keypresses when not focused  325ms
   ✓ InputPrompt > multiline paste > should handle multiline paste 'with \n newlines'  323ms
   ✓ InputPrompt > multiline paste > should handle multiline paste 'with extra slashes before \n newlines'  324ms
   ✓ InputPrompt > multiline paste > should handle multiline paste 'with \r\n newlines'  325ms
   ✓ InputPrompt > paste auto-submission protection > should prevent auto-submission immediately after paste with newlines  626ms
   ✓ InputPrompt > paste auto-submission protection > should not interfere with normal Enter key submission when no recent paste  323ms
   ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should clear buffer on second ESC press  374ms
   ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should handle ESC in shell mode by disabling shell mode  326ms
   ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should handle ESC when completion suggestions are showing  326ms
   ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should not call onEscapePromptChange when not provided  324ms
   ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should not interfere with existing keyboard shortcuts  477ms
   ✓ InputPrompt > reverse search > invokes reverse search on Ctrl+R  338ms
   ✓ InputPrompt > reverse search > resets reverse search state on Escape  379ms
   ✓ InputPrompt > reverse search > completes the highlighted entry on Tab and exits reverse-search  338ms
   ✓ InputPrompt > reverse search > does not fall through to shell history on Ctrl+P/N while reverse search is active  627ms
   ✓ InputPrompt > Ctrl+E keyboard shortcut > should move cursor to end of current line in multiline input  328ms
   ✓ InputPrompt > Ctrl+E keyboard shortcut > should move cursor to end of current line for single line input  326ms
   ✓ InputPrompt > command search (Ctrl+R when not in shell) > enters command search on Ctrl+R and shows suggestions  332ms
   ✓ InputPrompt > command search (Ctrl+R when not in shell) > invalidates provenance before submitting a command-history match  330ms
   ✓ InputPrompt > command search (Ctrl+R when not in shell) > shows command search suggestions over active export suggestions  476ms
   ✓ InputPrompt > command search (Ctrl+R when not in shell) > expands and collapses long suggestion via Right/Left arrows  331ms
   ✓ InputPrompt > command search (Ctrl+R when not in shell) > renders match window and expanded view (snapshots)  477ms
   ✓ InputPrompt > command search (Ctrl+R when not in shell) > does not show expand/collapse indicator for short suggestions  326ms
   ✓ InputPrompt > should still allow input when shell is not focused  326ms
   ✓ InputPrompt > large paste placeholder > should create placeholder for paste > 1000 characters  327ms
   ✓ InputPrompt > large paste placeholder > should create placeholder for paste > 10 lines  326ms
   ✓ InputPrompt > large paste placeholder > should use sequential IDs for multiple pastes of same size  475ms
   ✓ InputPrompt > large paste placeholder > should handle mixed pastes with different character counts  628ms
   ✓ InputPrompt > Ctrl+Y retry shortcut > should trigger handleRetryLastPrompt on Ctrl+Y  326ms
   ✓ InputPrompt > Ctrl+Y retry shortcut > should NOT trigger retry on plain y key  329ms
   ✓ InputPrompt > Ctrl+Y retry shortcut > should NOT trigger retry on Ctrl+R (reverse search)  325ms
   ✓ InputPrompt > Ctrl+Y retry shortcut > should handle Ctrl+Y when feedback dialog is open  328ms
   ✓ InputPrompt > queue input editing > should pop queued messages into input on Up arrow when queue is non-empty  328ms
   ✓ InputPrompt > queue input editing > should prepend queued messages before existing input text  328ms
   ✓ InputPrompt > queue input editing > should pop queued messages on ESC when queue is non-empty  324ms
   ✓ InputPrompt > queue input editing > should fall through to history when pop returns null (race condition)  326ms
   ✓ InputPrompt > queue input editing > should navigate history on Up arrow when queue is empty  326ms
   ✓ InputPrompt > queue input editing > should not intercept Ctrl+P when queue is non-empty  328ms
   ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+P with cursor mid-line snaps to col 0 without touching history  327ms
   ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+N with cursor not at end-of-line snaps to end without touching history  327ms
   ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+P at col 0 walks history and parks the cursor at offset 0  329ms
   ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+P/N and arrows do not change input history while a tool confirmation owns navigation  778ms
   ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+N falls through to the agent tab bar when there is no newer history  328ms
   ✓ InputPrompt > two-step edge transition for history navigation > arrow Down applies the same snap-before-history rule as Ctrl+N  325ms
   ✓ InputPrompt > two-step edge transition for history navigation > arrow Down at end-of-line walks history  328ms
   ✓ InputPrompt > two-step edge transition for history navigation > arrow Down falls through to the agent tab bar when there is no newer history  327ms
   ✓ 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)  331ms
   ✓ 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  327ms
   ✓ InputPrompt > two-step edge transition for history navigation > arrow Down skips terminal bg agents after the live panel visibility window (#5067)  328ms
   ✓ InputPrompt > two-step edge transition for history navigation > arrow Down focuses the background-tasks pill when only the pill is shown (workflow-only session)  327ms
   ✓ InputPrompt > two-step edge transition for history navigation > Down at the bottom of the live agent panel descends to the agent tab bar  328ms
   ✓ 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  329ms
   ✓ InputPrompt > two-step edge transition for history navigation > Down from an expired live panel falls through to the tab bar  328ms
   ✓ InputPrompt > two-step edge transition for history navigation > Enter on the live panel maps the DISPLAYED row back to its bg entry index  329ms
   ✓ InputPrompt > two-step edge transition for history navigation > arrow Up applies the same two-step rule as Ctrl+P (snap before navigate)  328ms
   ✓ InputPrompt > two-step edge transition for history navigation > suppresses completion menu navigation for history-restored text until edited  653ms
   ✓ InputPrompt > ESC during active agent response (#8201) > does not pop queued messages into input when responding  330ms
   ✓ InputPrompt > ESC during active agent response (#8201) > does not silently clear typed input on single ESC when responding  328ms
   ✓ InputPrompt > ESC during active agent response (#8201) > does not pop the queue or clear the buffer on ESC when responding with an empty buffer  334ms
   ✓ InputPrompt > ESC during active agent response (#8201) > does not pop queued messages on ESC when responding with typed text AND a queue (#8201)  329ms
 ✓ src/ui/hooks/slashCommandProcessor.test.ts (131 tests) 8499ms
   ✓ useSlashCommandProcessor > Initialization and Command Loading > rebuilds commands when an MCP server connects (surfaces MCP prompts in /)  305ms
   ✓ useSlashCommandProcessor > Initialization and Command Loading > ignores non-connected MCP status changes (no rebuild)  404ms
   ✓ useSlashCommandProcessor > Lifecycle > skips content auto-refresh while package reload is needed  356ms
   ✓ useSlashCommandProcessor > Lifecycle > cancels pending content auto-refresh when manual reload starts  356ms
 ✓ src/ui/components/shared/text-buffer.test.ts (159 tests) 99ms
 ✓ src/ui/contexts/KeypressContext.test.tsx (118 tests) 2833ms
   ✓ KeypressContext - Kitty Protocol > Enter key handling > auto-recovers from a stuck paste mode via idle timeout  1253ms
   ✓ KeypressContext - Kitty Protocol > Enter key handling > does not drop paste content that ends with a partial paste-end marker on idle flush  1203ms
 ✓ src/ui/hooks/vim.test.ts (132 tests) 308ms
 ✓ src/ui/components/ModelDialog.test.tsx (60 tests) 209ms
 ✓ src/ui/opentui/opentui-app-shell.test.tsx (46 tests) 168ms
 ✓ src/serve/workspace-remember.test.ts (42 tests) 211ms
(node:391164) ExperimentalWarning: FFI is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ src/ui/opentui/input-prompt.test.tsx (64 tests) 134ms
 ✓ src/ui/hooks/useStatusLine.test.ts (82 tests) 110ms
 ✓ src/ui/hooks/useResumeCommand.test.ts (16 tests) 36ms
 ✓ src/ui/hooks/useMessageQueue.test.ts (53 tests) 59ms
 ✓ src/ui/hooks/useProviderUpdates.test.ts (31 tests) 335ms
 ✓ src/ui/hooks/useHistoryManager.test.ts (30 tests) 54ms
 ✓ src/ui/hooks/useCommandCompletion.test.ts (39 tests) 94ms
 ✓ src/ui/hooks/useBranchCommand.test.ts (39 tests) 58ms
 ✓ src/ui/hooks/session-swap-telemetry.test.ts (10 tests) 37ms
 ✓ src/ui/hooks/useSelectionList.test.ts (53 tests) 57ms
 ✓ src/ui/hooks/useToolScheduler.test.ts (24 tests) 97ms
 ✓ src/ui/hooks/useSlashCompletion.test.ts (30 tests) 660ms
 ✓ src/ui/selection/use-text-selection.test.tsx (41 tests) 39ms
 ✓ src/ui/components/extensions/ExtensionsManagerDialog.test.tsx (23 tests) 2251ms
 ✓ src/ui/hooks/use-voice-input.test.ts (24 tests) 112ms
 ✓ src/ui/hooks/shellCommandProcessor.test.ts (24 tests) 345ms
 ✓ src/ui/components/shared/text-buffer-external-editor.test.ts (36 tests) 40ms
 ✓ src/ui/hooks/useBackgroundTaskView.test.ts (18 tests) 27ms
 ✓ src/ui/hooks/useAutoAcceptIndicator.test.ts (21 tests) 69ms
 ✓ src/ui/hooks/useDeleteCommand.test.ts (20 tests) 31ms
 ✓ src/ui/context-menu/ContentMouseController.test.tsx (29 tests) 40ms
 ✓ src/ui/opentui/dialogs-modes.test.tsx (15 tests) 199ms
 ✓ src/nonInteractive/control/controllers/systemController.test.ts (25 tests) 21ms
 ✓ src/ui/hooks/useExtensionUpdates.test.ts (16 tests) 336ms
 ✓ src/ui/components/shared/BaseSelectionList.test.tsx (26 tests) 304ms
 ✓ src/acp-integration/session/rewrite/MessageRewriteMiddleware.test.ts (16 tests) 10ms
 ✓ src/ui/startInteractiveUI.test.tsx (15 tests) 73ms
 ✓ src/ui/hooks/useSessionSearchInput.test.ts (36 tests) 31ms
(node:396964) ExperimentalWarning: FFI is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ src/ui/opentui/dialogs-auth.test.tsx (14 tests) 174ms
 ✓ src/ui/hooks/useCompletion.test.ts (26 tests) 29ms
 ✓ src/ui/auth/useAuth.test.ts (26 tests) 28ms
 ✓ src/ui/hooks/use-output-style-command.test.ts (15 tests) 601ms
 ✓ src/ui/opentui/dialogs-confirm.test.tsx (12 tests) 39ms
 ✓ src/ui/hooks/useQwenAuth.test.ts (17 tests) 24ms
 ✓ src/ui/opentui/dialogs-extensions.test.tsx (15 tests) 92ms
 ✓ src/ui/opentui/opentui-dialog-mount.test.tsx (9 tests) 44ms
 ✓ src/ui/hooks/useLoadingIndicator.test.ts (11 tests) 28ms
 ✓ src/ui/hooks/useAttentionNotifications.test.ts (13 tests) 22ms
 ✓ src/ui/opentui/live-turn.test.ts (14 tests) 128ms
 ✓ src/ui/opentui/followup-generation.test.ts (17 tests) 25ms
 ✓ src/ui/opentui/opentui-footer.test.tsx (18 tests) 33ms
 ✓ src/ui/hooks/useTrustModify.test.ts (11 tests) 20ms
 ✓ src/ui/hooks/useMouseEvents.test.tsx (11 tests) 24ms
 ✓ src/ui/opentui/transcript-view.test.tsx (8 tests) 31ms
 ✓ src/ui/hooks/useShellHistory.test.ts (9 tests) 742ms
 ✓ src/ui/opentui/folder-trust-gate.test.tsx (8 tests) 41ms
 ✓ src/ui/components/Help.test.tsx (8 tests) 225ms
 ✓ src/ui/hooks/useKeypress.test.ts (15 tests) 38ms
 ✓ src/ui/hooks/useGitBranchName.test.ts (12 tests) 28ms
 ✓ src/ui/contexts/SessionContext.test.tsx (7 tests) 73ms
 ✓ src/ui/components/extensions/views/ExtensionActionsView.test.tsx (6 tests) 92ms
 ✓ src/ui/hooks/useEditorSettings.test.ts (10 tests) 19ms
 ✓ src/ui/components/SuggestionsDisplay.test.tsx (10 tests) 119ms
 ✓ src/ui/hooks/useMcpApproval.test.ts (11 tests) 24ms
 ✓ src/ui/hooks/useSessionPicker.test.tsx (8 tests) 26ms
 ✓ src/ui/opentui/dialogs-shared.test.tsx (10 tests) 22ms
 ✓ src/ui/hooks/useReverseSearchCompletion.test.tsx (10 tests) 25ms
 ✓ src/ui/hooks/useExportCompletion.test.ts (20 tests) 17ms
 ✓ src/ui/hooks/useInputHistory.test.ts (11 tests) 19ms
 ✓ src/ui/components/shared/RowMouseController.test.tsx (9 tests) 18ms
Error saving trusted folders file.
invalid trusted folders file
 ✓ src/ui/hooks/useFolderTrust.test.ts (10 tests) 22ms
 ✓ src/ui/components/TrustDialog.test.tsx (7 tests) 219ms
 ✓ src/ui/hooks/useIdeTrustListener.test.ts (5 tests) 18ms
 ✓ src/ui/hooks/useTurnDiffs.test.ts (7 tests) 274ms
 ✓ src/ui/hooks/useSlashCompletion.integration.test.ts (4 tests) 220ms
 ✓ src/ui/hooks/useCommandCompletion.slashChurn.test.ts (5 tests) 491ms
 ✓ src/ui/hooks/useMemoryMonitor.test.ts (8 tests) 19ms
 ✓ src/ui/hooks/usePhraseCycler.test.ts (9 tests) 20ms
 ✓ src/ui/hooks/useTimer.test.ts (13 tests) 22ms
 ✓ src/ui/components/arena/ArenaSelectDialog.test.tsx (5 tests) 301ms
 ✓ src/ui/context-menu/ContextMenuContext.test.tsx (14 tests) 20ms
 ✓ src/ui/components/shared/TextInputMouseController.test.tsx (7 tests) 15ms
 ✓ src/ui/components/SuggestionsDisplay.mouse.test.tsx (7 tests) 85ms
 ✓ src/ui/components/DiffDialog.test.tsx (2 tests) 47ms
 ✓ src/ui/hooks/useReactToolScheduler.test.tsx (9 tests) 13ms
 ✓ src/ui/context-menu/ContextMenuOverlay.test.tsx (6 tests) 403ms
 ✓ src/ui/hooks/useAwaySummary.test.ts (3 tests) 66ms
 ✓ src/ui/hooks/use-effort-command.test.ts (6 tests) 20ms
 ✓ src/ui/opentui/opentui-header.test.tsx (6 tests) 64ms
 ✓ src/ui/components/extensions/tabs/DiscoverTab.test.tsx (2 tests) 92ms
 ✓ src/ui/hooks/useTerminalSize.test.ts (5 tests) 21ms
 ✓ src/ui/hooks/useFocus.test.ts (6 tests) 20ms
 ✓ src/ui/components/FolderTrustDialog.test.tsx (9 tests) 179ms
 ✓ src/ui/hooks/useWelcomeBack.test.ts (4 tests) 170ms
 ✓ src/ui/hooks/use-wake-repaint.test.ts (8 tests) 19ms
 ✓ src/ui/hooks/useSessionPicker.test.ts (4 tests) 15ms
 ✓ src/ui/hooks/useModelCommand.test.ts (8 tests) 16ms
 ✓ src/ui/components/CompletionCategoryMouseController.test.tsx (4 tests) 13ms
 ✓ src/ui/hooks/useConfigInitMessage.test.ts (7 tests) 16ms
 ✓ src/ui/components/extensions/tabs/SourcesTab.test.tsx (1 test) 68ms
 ✓ src/ui/hooks/useWorktreeSession.test.tsx (4 tests) 321ms
 ✓ src/ui/hooks/useFollowupSuggestions.test.tsx (2 tests) 14ms
 ✓ src/ui/components/extensions/tabs/InstalledTab.test.tsx (1 test) 49ms
 ✓ src/ui/hooks/useThemeCommand.test.ts (2 tests) 14ms
 ✓ src/ui/hooks/useAnimatedScrollbar.test.ts (6 tests) 17ms
 ✓ src/ui/opentui/use-update-notice-flush.test.ts (3 tests) 13ms
 ✓ src/ui/hooks/useBatchedScroll.test.ts (4 tests) 13ms
 ✓ src/ui/hooks/use-mouse-tracking-enabled.test.tsx (4 tests) 13ms
 ✓ src/ui/hooks/useDialogClose.test.ts (2 tests) 11ms
 ✓ src/ui/contexts/VirtualViewportContext.test.tsx (2 tests) 11ms

 Test Files  1030 passed (1030)
      Tests  29827 passed | 81 skipped (29908)
   Start at  14:16:30
   Duration  1535.58s (transform 22.29s, setup 52.34s, collect 617.23s, tests 563.15s, environment 21.26s, prepare 46.20s)

JUNIT report written to /startdir/src/qwen-code/packages/cli/junit.xml
 % Coverage report from v8
npm notice run @qwen-code/qwen-code-core@0.23.3 test

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

 ✓ src/core/llm-chat.test.ts (427 tests) 21756ms
   ✓ LlmChat > should correctly retry and append to an existing history mid-conversation  2021ms
   ✓ LlmChat > should retry if the model returns a completely empty stream (no chunks)  2024ms
   ✓ LlmChat > should discard valid partial content from a failed attempt upon retry  2025ms
   ✓ LlmChat > discards a completed protocol-tagged response and retries before persistence  2024ms
   ✓ LlmChat > retries a JSON tool protocol leak: 'array with a different first argument…'  2022ms
   ✓ LlmChat > retries a JSON tool protocol leak: 'single object with trailing prose'  2025ms
   ✓ LlmChat > retries when a preparation interrupts a partial JSON protocol leak  2025ms
   ✓ LlmChat > retries when a function call interrupts a partial JSON protocol leak  2024ms
   ✓ LlmChat > output token recovery > should pop dangling recovery message and emit STOP chunk when recovery throws  2030ms
 ✓ src/core/coreToolScheduler.test.ts (407 tests) 2302ms
 ✓ src/core/client.test.ts (389 tests) 17927ms
 ✓ src/config/config.test.ts (662 tests) 3626ms
   ✓ Server Config (config.ts) > bounds the re-assert retry and is a no-op with no registration  505ms
   ✓ Server Config (config.ts) > gives up on the peer inbox advertise after a bounded retry  505ms
 ✓ src/tools/shell.test.ts (324 tests) 3673ms
Preparing worktree (new branch 'review-pr-1')
Preparing worktree (new branch 'review-pr-1')
Preparing worktree (new branch 'review-pr-1')
Preparing worktree (new branch 'review-pr-1')
Preparing worktree (new branch 'review-pr-1')
Preparing worktree (detached HEAD 403bbe5)
Preparing worktree (new branch 'review-pr-1')
Preparing worktree (new branch 'review-pr-1')
Preparing worktree (new branch 'review-pr-1')
 ✓ src/tools/agent/agent.test.ts (288 tests) 1543ms
 ✓ src/core/openaiContentGenerator/pipeline.test.ts (236 tests) 204ms
 ✓ src/services/sessionService.test.ts (251 tests) 425ms
 ✓ src/core/openaiContentGenerator/converter.test.ts (234 tests) 167ms
 ✓ src/goals/goal-runtime.test.ts (171 tests) 1353ms
 ✓ src/core/anthropicContentGenerator/anthropicContentGenerator.test.ts (175 tests) 1885ms
 ✓ src/agents/runtime/workflow-orchestrator.test.ts (201 tests) 1693ms
   ✓ WorkflowOrchestrator > keeps a paused run alive past the wall-clock budget and completes it after resume  604ms
 ✓ src/services/chatCompressionService.test.ts (146 tests) 142ms
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/mcp-client-manager.test.ts (122 tests) 861ms
 ✓ src/extension/extensionManager.test.ts (158 tests) 965ms
 ✓ src/services/session-transcript-reader.test.ts (140 tests) 391ms
 ✓ src/services/shellExecutionService.test.ts (153 tests) 383ms
 ✓ src/tools/mcp-client.test.ts (131 tests) 1837ms
   ✓ mcp-client > listMcpPrompts (F2 pure helper) > exhausts retries on persistent transient errors and returns []  602ms
   ✓ mcp-client > listMcpResources > exhausts retries on persistent transient errors and returns []  605ms
 ✓ src/hooks/hookEventHandler.test.ts (144 tests) 74ms
 ✓ src/permissions/permission-manager.test.ts (423 tests) 88ms
 ✓ src/agents/background-agent-resume.test.ts (56 tests) 495ms
 ✓ src/core/anthropicContentGenerator/converter.test.ts (114 tests) 24ms
 ✓ src/extension/github.test.ts (157 tests) 1333ms
   ✓ git extension helpers > extractFile > should cancel while extracting a tar archive  605ms
 ✓ src/agents/runtime/agent-headless.test.ts (68 tests) 886ms
 ✓ src/utils/fileUtils.test.ts (192 tests) 343ms
 ✓ src/services/session-writer-lease.test.ts (109 tests | 2 skipped) 6167ms
   ✓ SessionWriterLease > reclaims a dead writer only inside the same Linux identity domain  446ms
   ✓ SessionWriterLease > fails closed when a primary candidate is abandoned during sealing  1925ms
   ✓ SessionWriterLease > fails closed when a primary candidate is abandoned during rollback  961ms
 ✓ src/telemetry/session-tracing.test.ts (185 tests) 39ms
 ✓ src/core/loggingContentGenerator/loggingContentGenerator.test.ts (79 tests) 99ms
 ✓ src/services/loopDetectionService.test.ts (145 tests) 372ms
 ✓ src/services/chatRecordingService.test.ts (128 tests) 171ms
 ✓ src/subagents/subagent-manager.test.ts (202 tests) 193ms
 ✓ src/agents/background-tasks.test.ts (149 tests) 35ms
 ✓ src/agents/runtime/workflow-sandbox.test.ts (169 tests) 32186ms
   ✓ createWorkflowSandbox security > synchronous infinite loop is aborted by vm timeout  30019ms
   ✓ createWorkflowSandbox security > re-arms with the banked remainder on resume, not a fresh budget  403ms
   ✓ createWorkflowSandbox security > survives a second pause after resume without burning banked budget  453ms
 ✓ src/core/openaiContentGenerator/provider/dashscope.test.ts (169 tests) 53ms
 ✓ src/core/openaiResponsesContentGenerator/responses-pipeline.test.ts (126 tests) 212ms
 ✓ src/tools/mcp-tool.test.ts (107 tests) 178ms
 ✓ src/skills/bundled/review/SKILL.test.ts (68 tests) 64ms
 ✓ src/services/cronScheduler.test.ts (128 tests) 2303ms
   ✓ CronScheduler > durable enabled flag > drops a live job when the file flips it to disabled on reload  304ms
   ✓ CronScheduler > durable ownership > reloads durable tasks when the file changes on disk  302ms
 ✓ src/extension/extension-store.test.ts (96 tests) 612ms
 ✓ src/models/modelsConfig.test.ts (83 tests) 23ms
 ✓ src/tools/workflow/workflow.test.ts (85 tests) 304ms
 ✓ src/agents/workflow-run-registry.test.ts (119 tests) 88ms
 ✓ src/tools/skill.test.ts (109 tests) 184ms
 ✓ src/utils/gitDiff.test.ts (127 tests) 1545ms
 ✓ src/agents/team/test-utils/coordination-harness.test.ts (88 tests) 865ms
 ✓ src/telemetry/loggers.test.ts (87 tests) 68ms
 ✓ src/ipc/inbound-gate.test.ts (141 tests) 61ms
 ✓ src/utils/schemaValidator.test.ts (133 tests) 205ms
Rebasing (1/1)error: could not apply c7fcf33... edit a.txt
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", then run "git rebase --continue".
hint: You can instead skip this commit: run "git rebase --skip".
hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
hint: Disable this message with "git config set advice.mergeConflict false"
Could not apply c7fcf33... # edit a.txt
error: could not apply b5155e0... edit a.txt
hint: After resolving the conflicts, mark them with
hint: "git add/rm <pathspec>", then run
hint: "git cherry-pick --continue".
hint: You can instead skip this commit with "git cherry-pick --skip".
hint: To abort and get back to the state before "git cherry-pick",
hint: run "git cherry-pick --abort".
hint: Disable this message with "git config set advice.mergeConflict false"
fatal: ambiguous argument '@{upstream}': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
error: patch failed: a.txt:1
error: a.txt: patch does not apply
hint: Use 'git am --show-current-patch=diff' to see the failed patch
hint: When you have resolved this problem, run "git am --continue".
hint: If you prefer to skip this patch, run "git am --skip" instead.
hint: To restore the original branch and stop patching, run "git am --abort".
hint: Disable this message with "git config set advice.mergeConflict false"
error: could not revert e0623a2... edit a.txt
hint: After resolving the conflicts, mark them with
hint: "git add/rm <pathspec>", then run
hint: "git revert --continue".
hint: You can instead skip this commit with "git revert --skip".
hint: To abort and get back to the state before "git revert",
hint: run "git revert --abort".
hint: Disable this message with "git config set advice.mergeConflict false"
 ✓ src/utils/git-branches.test.ts (106 tests) 6060ms
 ✓ src/tools/mcp-transport-pool.test.ts (39 tests) 169ms

+----------------- 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 (89 tests) 2041ms
   ✓ getQwenOAuthClient - Enhanced Error Scenarios > should handle different authentication failure reasons - timeout  2007ms
 ✓ src/services/microcompaction/microcompact.test.ts (82 tests) 27ms
 ✓ src/lsp/NativeLspService.test.ts (33 tests) 299ms
 ✓ src/ipc/uds-inbox.test.ts (77 tests) 4132ms
   ✓ framing > re-arms the deadline from each complete line, not from each byte  482ms
   ✓ inbox auth > re-arms the deadline from the auth line, so a slow sender still lands  533ms
   ✓ client errors > gives up on a peer that dribbles bytes back instead of closing  501ms
   ✓ client errors > drops sends beyond the concurrent cap instead of opening unbounded connections  1015ms
 ✓ src/tools/write-file.test.ts (85 tests) 116ms
 ✓ src/services/session-registry.test.ts (114 tests) 147ms
 ✓ src/goals/goal-tools.test.ts (57 tests) 97ms
 ✓ src/agents/runtime/workflow-runner.test.ts (56 tests) 813ms
 ✓ src/hooks/hookSystem.test.ts (95 tests) 56ms
 ✓ src/skills/skill-manager.test.ts (84 tests) 55ms
 ✓ src/tools/read-file.test.ts (87 tests) 173ms
 ✓ src/tools/edit.test.ts (86 tests) 373ms
 ✓ src/tools/web-search.test.ts (103 tests) 108ms
 ✓ src/telemetry/sdk.test.ts (78 tests) 292ms
 ✓ src/core/client-goal.test.ts (48 tests) 69ms
 ✓ src/tools/web-fetch.test.ts (97 tests) 283ms
 ✓ src/tools/tool-registry.test.ts (60 tests) 76ms
 ✓ src/telemetry/uiTelemetry.test.ts (70 tests) 19ms
 ✓ src/agents/runtime/agent-core.test.ts (48 tests) 128ms
 ✓ src/utils/retry.test.ts (90 tests) 41ms
 ✓ src/services/memoryPressureMonitor.test.ts (72 tests) 40ms
 ✓ src/memory/manager.test.ts (48 tests) 116ms
 ✓ src/tools/ripGrep.test.ts (81 tests) 154ms
 ✓ src/core/openaiResponsesContentGenerator/responses-converter.test.ts (93 tests) 15ms
 ✓ src/hooks/hookRunner.test.ts (65 tests) 105ms
 ✓ src/services/session-pr-service.test.ts (99 tests) 727ms
 ✓ src/config/storage.test.ts (101 tests) 51ms
 ✓ src/core/prompts.test.ts (156 tests) 35ms
 ✓ src/tools/todoWrite.test.ts (57 tests) 102ms
 ✓ src/utils/atomicFileWrite.test.ts (83 tests) 65ms
 ✓ src/extension/claude-converter.test.ts (52 tests) 39ms
 ✓ src/permissions/autoMode.test.ts (98 tests) 30ms
 ✓ src/utils/shell-utils.test.ts (172 tests) 27ms
 ✓ src/tools/monitor.test.ts (81 tests) 39ms
 ✓ src/ide/ide-client.test.ts (65 tests) 94ms
 ✓ src/services/postCompactAttachments.test.ts (67 tests) 26ms
 ✓ src/core/baseLlmClient.test.ts (59 tests) 25ms
 ✓ src/lsp/LspServerManager.test.ts (46 tests) 230ms
 ✓ src/qwen/qwenContentGenerator.test.ts (43 tests) 173ms
 ✓ src/tools/readManyFiles.test.ts (52 tests) 100ms
 ✓ src/core/turn.test.ts (44 tests) 20ms
 ✓ src/agents/forkedAgent.agent.test.ts (22 tests) 26ms
 ✓ src/utils/filesearch/crawler.test.ts (48 tests) 429ms
 ✓ src/memory/memoryDiscovery.test.ts (52 tests) 66ms
 ✓ src/ipc/peer-send.test.ts (73 tests) 83ms
 ✓ src/services/sessionService.corruption.test.ts (69 tests) 93ms
 ✓ src/agents/backends/InProcessBackend.test.ts (50 tests) 64ms
 ✓ src/goals/goal-reducer.test.ts (106 tests) 22ms
 ✓ src/mcp/oauth-provider.test.ts (27 tests) 165ms
 ✓ src/utils/sessionStorageUtils.test.ts (81 tests) 31ms
 ✓ src/models/modelRegistry.test.ts (81 tests) 16ms
 ✓ src/utils/shellAstParser.test.ts (548 tests) 352ms
 ✓ src/utils/memoryImportProcessor.test.ts (37 tests) 34ms
 ✓ src/services/backgroundShellRegistry.test.ts (65 tests) 57ms
 ✓ src/tools/glob.test.ts (60 tests) 2832ms
 ✓ src/services/fileHistoryService.test.ts (51 tests) 93ms
 ✓ src/memory/forget.test.ts (24 tests) 73ms
 ✓ src/core/openaiContentGenerator/streamingToolCallParser.test.ts (89 tests) 17ms
 ✓ src/memory/remember.test.ts (37 tests) 55ms
 ✓ src/telemetry/log-to-span-processor.test.ts (55 tests) 30ms
 ✓ src/tools/lsp.test.ts (73 tests) 239ms
[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/tools/tool-search.test.ts (53 tests) 63ms
 ✓ src/services/visionBridge/vision-bridge-service.test.ts (65 tests) 77ms
 ✓ src/core/toolHookTriggers.test.ts (62 tests) 13ms
 ✓ src/skills/bundled/loop/loop-task-file.test.ts (38 tests) 36ms
 ✓ src/extension/npm.test.ts (51 tests) 132ms
 ✓ src/utils/paths.test.ts (145 tests | 1 skipped) 20ms
 ✓ src/skills/bundled/loop/loop-tick-resolver.test.ts (38 tests) 38ms
 ✓ src/hooks/hookAggregator.test.ts (51 tests) 10ms
 ✓ src/hooks/hookPlanner.test.ts (71 tests) 13ms
 ✓ src/memory/channel-memory.test.ts (52 tests) 230ms
 ✓ src/tools/grep.test.ts (59 tests) 214ms
 ✓ src/tools/send-message.test.ts (53 tests) 62ms
 ✓ src/core/logger.test.ts (52 tests) 80ms
 ✓ src/goals/goal-evidence.test.ts (31 tests) 24ms
 ✓ src/extension/extensionSettings.test.ts (34 tests) 108ms
 ✓ src/hooks/hook-runner.process.test.ts (20 tests) 22581ms
   ✓ HookRunner process tree cancellation > reaps a descendant that ignores SIGTERM before returning  2068ms
   ✓ HookRunner process tree cancellation > enforces a surviving hook timeout after the parent exits  7172ms
   ✓ HookRunner process tree cancellation > preserves a prompt exit 124 when the parent event loop is delayed past the deadline  1326ms
   ✓ HookRunner process tree cancellation > forwards abort through a surviving hook supervisor  2112ms
   ✓ HookRunner process tree cancellation > reaps a surviving hook when its supervisor is stopped before abort  2155ms
   ✓ HookRunner process tree cancellation > keeps supervising a surviving hook group after its root exits  5077ms
 ✓ src/utils/read-text-range.test.ts (47 tests) 572ms
 ✓ src/permissions/shell-semantics.test.ts (109 tests) 21ms
 ✓ src/core/environmentContext.test.ts (65 tests) 33ms
 ✓ src/telemetry/metrics.test.ts (50 tests) 74ms
 ✓ src/models/modelConfigResolver.test.ts (56 tests) 12ms
 ✓ src/services/monitorRegistry.test.ts (58 tests) 27ms
 ✓ src/utils/editor.test.ts (152 tests) 24ms
 ✓ src/skills/skill-curator.test.ts (37 tests) 91ms
 ✓ src/agents/agent-transcript.test.ts (40 tests) 16ms
 ✓ src/telemetry/qwen-logger/qwen-logger.test.ts (44 tests) 24ms
 ✓ src/agents/team/tasks.test.ts (56 tests) 83ms
 ✓ src/hooks/hookRegistry.test.ts (39 tests) 19ms
 ✓ src/services/fileReadCache.test.ts (59 tests) 31ms
 ✓ src/services/usageHistoryService.test.ts (33 tests) 25ms
 ✓ src/qwen/sharedTokenManager.test.ts (32 tests) 258ms
 ✓ src/tools/notebook-edit.test.ts (32 tests) 83ms
 ✓ src/services/session-artifact-persistence.test.ts (32 tests) 23ms
 ✓ src/memory/memory-scoped-agent-config.test.ts (28 tests) 44ms
 ✓ src/goals/goalJudge.test.ts (44 tests) 16ms
 ✓ src/tools/record-artifact.test.ts (49 tests) 148ms
 ✓ src/agents/forkedAgent.cache.test.ts (23 tests) 10ms
 ✓ src/providers/__tests__/provider-config.test.ts (67 tests) 14ms
 ✓ src/skills/skill-load.test.ts (68 tests) 19ms
 ✓ src/services/commitAttribution.test.ts (58 tests) 12ms
 ✓ src/utils/pdf.test.ts (50 tests) 23ms
 ✓ src/agents/arena/ArenaManager.test.ts (30 tests) 6058ms
   ✓ ArenaManager > backend initialization > should emit SESSION_UPDATE with type warning when backend detection returns warning  507ms
   ✓ ArenaManager > chat history forwarding > passes approvalMode to in-process backend spawn configs  502ms
   ✓ ArenaManager > chat history forwarding > should pass chatHistory to backend spawnAgent calls  504ms
   ✓ ArenaManager > chat history forwarding > should pass undefined chatHistory when not provided  503ms
   ✓ ArenaManager > chat history forwarding > builds the in-process worker prompt with headless mode and the active style  505ms
   ✓ ArenaManager > chat history forwarding > does not let a style strip the coding instructions from a peer  504ms
   ✓ ArenaManager > chat history forwarding > gives a peer no style when a custom system prompt replaces the main one  504ms
   ✓ ArenaManager > chat history forwarding > does not embed the auto-memory section in the worker system prompt  504ms
   ✓ ArenaManager > active session lifecycle > collects diff summaries and fallback approach summaries  1004ms
   ✓ ArenaManager > active session lifecycle > cancel should stop backend and move session to CANCELLED  503ms
   ✓ ArenaManager > active session lifecycle > cleanup should release backend and worktree resources after start  503ms
 ✓ src/agents/runtime/agent-interactive.test.ts (25 tests) 874ms
 ✓ src/permissions/classifier-transcript.test.ts (27 tests) 8ms
 ✓ src/core/contentGenerator.test.ts (28 tests) 958ms
   ✓ createContentGenerator > should defer Gemini content generator creation until first use  655ms
 ✓ src/services/gitWorktreeService.test.ts (41 tests) 14ms
 ✓ src/extension/archive-safety.test.ts (36 tests) 3624ms
   ✓ assertTarArchiveLinksAreSafe > accepts an archive with exactly the entry-count limit  1026ms
   ✓ assertTarArchiveLinksAreSafe > rejects an archive just over the entry-count limit  1045ms
   ✓ assertTarArchiveLinksAreSafe > bounds retained archive path metadata  1466ms
 ✓ src/followup/speculation.test.ts (21 tests) 671ms
 ✓ src/goals/goal-checkpoint-verifier.test.ts (19 tests) 17ms
 ✓ src/core/openaiContentGenerator/provider/default.test.ts (54 tests) 17ms
 ✓ src/services/chatRecordingService.autoTitle.test.ts (23 tests) 71ms
 ✓ src/services/chatRecordingService.customTitle.test.ts (24 tests) 271ms
 ✓ src/tools/agent/agent-override.test.ts (25 tests) 33ms
 ✓ src/services/web-terminal-registry.test.ts (29 tests) 34ms
 ✓ src/core/tokenLimits.test.ts (90 tests) 10ms
 ✓ src/tools/truncation.test.ts (40 tests) 32ms
 ✓ src/services/git-worktree-service-marker.test.ts (27 tests) 111ms
 ✓ src/services/compactionInputSlimming.test.ts (43 tests) 7ms
 ✓ src/services/sessionTitle.test.ts (32 tests) 26ms
 ✓ src/memory/extract.test.ts (21 tests) 44ms
 ✓ src/utils/runtimeFetchOptions.test.ts (69 tests) 17ms
 ✓ src/services/fileSystemService.test.ts (68 tests) 23ms
 ✓ src/services/shellContextEnv.test.ts (37 tests) 14ms
 ✓ src/telemetry/gen-ai-content.test.ts (27 tests) 60ms
 ✓ src/agents/runtime/workflow-saved.test.ts (52 tests) 45ms
 ✓ src/utils/debugLogger.test.ts (41 tests) 29ms
 ✓ src/services/tokenUsageService.test.ts (18 tests) 334ms
 ✓ src/goals/goalHook.test.ts (38 tests) 25ms
 ✓ src/utils/ripgrepUtils.test.ts (34 tests) 11ms
 ✓ src/core/llm-content-generator/llm-content-generator.test.ts (24 tests) 10ms
 ✓ src/services/sessionService.rename.test.ts (20 tests) 12ms
 ✓ src/utils/github-prs.test.ts (53 tests) 15ms
 ✓ src/ipc/peer-drop-reports.test.ts (32 tests) 27ms
 ✓ src/agents/team/TeamManager.ghost-member.test.ts (9 tests) 629ms
 ✓ src/services/gitWorktreeService.symlinks.integ.test.ts (15 tests) 2295ms
 ✓ src/telemetry/daemon-tracing.test.ts (28 tests) 34ms
 ✓ src/core/output-style-files.test.ts (54 tests) 38ms
 ✓ src/agents/workflow-snapshot.test.ts (27 tests) 52ms
 ✓ src/telemetry/config.test.ts (47 tests) 10ms
 ✓ src/utils/openaiLogger.test.ts (40 tests) 117ms
 ✓ src/services/cronTasksFile.test.ts (50 tests) 163ms
 ✓ src/lsp/NativeLspService.integration.test.ts (30 tests) 9ms
 ✓ src/utils/toolResultDisplayCompaction.test.ts (46 tests) 23ms
 ✓ src/memory/skillReviewAgentPlanner.test.ts (33 tests) 27ms
 ✓ src/extension/marketplace.test.ts (33 tests) 16ms
 ✓ src/tools/tool-response-finalizer.test.ts (25 tests) 11ms
 ✓ src/memory/recall.test.ts (51 tests) 13ms
 ✓ src/providers/__tests__/install.test.ts (22 tests) 20ms
 ✓ src/tools/report-findings.test.ts (35 tests) 112ms
(node:449044) 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/config/config-session-env.test.ts (19 tests) 2834ms
   ✓ Config sessionEnvClaimed guard > first Config sets process.env QWEN_CODE_SESSION_ID to its sessionId  586ms
 ✓ src/utils/filesearch/fileSearch.test.ts (29 tests) 169ms
 ✓ src/ipc/peer-controllers.test.ts (47 tests) 87ms
 ✓ src/tools/exitPlanMode.test.ts (33 tests) 14ms
 ✓ src/agents/team/TeamManager.model-routing.test.ts (9 tests) 38ms
 ✓ src/hooks/promptHookRunner.test.ts (27 tests) 126ms
 ✓ src/tools/session-mcp-view.test.ts (24 tests) 9ms
 ✓ src/ipc/peer-directory.test.ts (53 tests) 16ms
 ✓ src/services/image-generation-service.test.ts (21 tests) 45ms
 ✓ src/services/worktreeSessionService.test.ts (32 tests) 28ms
 ✓ src/core/session-start-profiler.test.ts (21 tests) 28ms
 ✓ src/config/rulesDiscovery.test.ts (36 tests) 31ms
 ✓ src/agents/team/teamHelpers.test.ts (52 tests) 95ms
 ✓ src/tools/mcp-client-v2.test.ts (10 tests) 5276ms
   ✓ configured MCP SDK v2 negotiation > preserves the default discovery budget for legacy initialization  5156ms
 ✓ src/utils/workspaceContext.test.ts (46 tests) 19ms
 ✓ src/utils/memoryDiagnostics.test.ts (12 tests) 52ms
 ✓ src/utils/notebook.test.ts (30 tests) 18ms
 ✓ src/hooks/sessionHooksManager.test.ts (36 tests) 9ms
 ✓ src/core/openaiContentGenerator/provider/deepseek.test.ts (29 tests) 8ms
 ✓ src/tools/askUserQuestion.test.ts (24 tests) 8ms
 ✓ src/utils/git-ignore.test.ts (19 tests) 5625ms
   ✓ isGitIgnored > kills a wedged probe at the caller’s deadline and reads it as not-ignored  505ms
   ✓ isGitIgnored > kills a wedged probe at the default deadline  5029ms
 ✓ src/services/session-organization-service.test.ts (25 tests) 50ms
 ✓ src/utils/schemaConverter.test.ts (33 tests) 6ms
 ✓ src/core/message-display-dispatcher.test.ts (18 tests) 13ms
 ✓ src/utils/gitDirect.test.ts (68 tests) 38ms
 ✓ src/agents/backends/ITermBackend.test.ts (46 tests) 22ms
 ✓ src/core/xml-tool-call-fallback.test.ts (42 tests) 7ms
 ✓ src/config/config.safe-mode.test.ts (25 tests) 24ms
 ✓ src/tools/zoom-image.test.ts (19 tests) 177ms
 ✓ src/goals/goal-continuation-prompt.test.ts (19 tests) 12ms
 ✓ src/tools/exit-worktree.test.ts (19 tests) 1493ms
 ✓ src/extension/qoder-converter.test.ts (25 tests) 26ms
 ✓ src/utils/sideQuery.test.ts (23 tests) 34ms
 ✓ src/core/openaiContentGenerator/errorHandler.test.ts (45 tests) 23ms
 ✓ src/core/openaiResponsesContentGenerator/responses-reasoning-rejection.test.ts (76 tests) 15ms
 ✓ src/utils/secure-browser-launcher.test.ts (31 tests) 14ms
 ✓ src/memory/recall-eval.test.ts (8 tests) 24ms
 ✓ src/services/sleepInhibitor.test.ts (23 tests) 869ms
 ✓ src/agents/arena/ArenaAgentClient.test.ts (21 tests) 18ms
 ✓ src/memory/prompt.test.ts (33 tests) 6ms
 ✓ src/mcp/oauth-token-storage.test.ts (31 tests) 70ms
 ✓ src/tools/tool-result-boundary-diagnostics.test.ts (18 tests) 41ms
 ✓ src/tools/ls.test.ts (30 tests) 72ms
 ✓ src/core/client.telemetrySwap.test.ts (10 tests) 8ms
 ✓ src/utils/no-follow-open.test.ts (17 tests) 21ms
 ✓ src/ipc/peer-envelope.test.ts (40 tests) 6ms
 ✓ src/extension/variables.test.ts (22 tests) 23ms
 ✓ src/utils/fetch.test.ts (64 tests) 3337ms
   ✓ fetchWithPolicy retry > retries once on 403 and returns the successful second response  503ms
   ✓ fetchWithPolicy retry > retries once on 429 and returns the successful second response  502ms
   ✓ fetchWithPolicy retry > returns the original 403 when the retry also fails  502ms
   ✓ fetchWithPolicy retry > retries once on transient network errors (ECONNRESET)  503ms
   ✓ fetchWithPolicy retry > retries once on transient network errors (EAI_AGAIN)  503ms
   ✓ fetchWithPolicy retry abort handling > retries once on undici socket errors (UND_ERR_SOCKET)  503ms
 ✓ src/utils/rateLimit.test.ts (55 tests) 28ms
 ✓ src/tools/list-agents.test.ts (24 tests) 29ms
Preparing worktree (new branch 'review-pr-1')
Preparing worktree (new branch 'review-pr-1')
Preparing worktree (new branch 'review-pr-1')
Preparing worktree (new branch 'review-pr-1')
Preparing worktree (new branch 'review-pr-1')
Preparing worktree (new branch 'evil')
Preparing worktree (new branch 'review-pr-1')
Preparing worktree (new branch 'fbranch')
Preparing worktree (new branch 'sbranch')
 ✓ src/services/gitWorktreeService.linked.integ.test.ts (14 tests) 317ms
 ✓ src/ipc/peer-frames.test.ts (68 tests) 9ms
 ✓ src/memory/extractionAgentPlanner.test.ts (18 tests) 11ms
 ✓ src/core/permissionFlow.test.ts (31 tests) 10ms
 ✓ src/telemetry/tracer.test.ts (31 tests) 19ms
 ✓ src/mcp/oauth-utils.test.ts (33 tests) 10ms
 ✓ src/tools/team-lifecycle.test.ts (5 tests) 552ms
   ✓ Team lifecycle E2E > full lifecycle: create → tasks → messages → list → update → delete  545ms
 ✓ src/utils/systemEncoding.test.ts (41 tests) 10ms
 ✓ src/utils/conversation-branches.test.ts (21 tests) 7ms
 ✓ src/agents/backends/TmuxBackend.test.ts (27 tests) 16ms
 ✓ src/services/session-reference-service.test.ts (24 tests) 8ms
 ✓ src/utils/jsonl-utils.test.ts (40 tests) 25ms
 ✓ src/memory/recall-delivery-eval.test.ts (7 tests) 436ms
 ✓ src/mcp/token-storage/file-token-storage.test.ts (25 tests) 588ms
 ✓ src/tools/task-stop.test.ts (14 tests) 28ms
 ✓ src/utils/github-pr-issues.test.ts (16 tests) 11ms
 ✓ src/hooks/httpHookRunner.test.ts (21 tests) 25ms
 ✓ src/utils/retryErrorClassification.test.ts (39 tests) 7ms
 ✓ src/utils/shellReadOnlyChecker.test.ts (230 tests) 134ms
 ✓ src/tools/skill-utils.test.ts (28 tests) 11ms
 ✓ src/telemetry/detailed-span-attributes.test.ts (47 tests) 9ms
 ✓ src/ipc/peer-admission.test.ts (24 tests) 8ms
 ✓ src/utils/sedEditParser.test.ts (38 tests) 9ms
 ✓ src/utils/gitIgnoreParser.test.ts (35 tests) 27ms
 ❯ src/services/sessionService.search.test.ts (20 tests | 1 failed) 90ms
   ✓ SessionService.searchSessionContent > returns no hits for an empty query or a missing chats dir 2ms
   ✓ SessionService.searchSessionContent > matches user message text case-insensitively 4ms
   ✓ SessionService.searchSessionContent > matches assistant message text 1ms
   ✓ SessionService.searchSessionContent > prefers the user prompt displayText payload when present 0ms
   ✓ SessionService.searchSessionContent > skips subtype records and non-message records 0ms
   ✓ SessionService.searchSessionContent > does not match sessions belonging to a different project 1ms
   ✓ SessionService.searchSessionContent > orders hits by recency and honors maxResults 1ms
   ✓ SessionService.searchSessionContent > honors maxFiles by scanning only the most recent sessions 0ms
   ✓ SessionService.searchSessionContent > ellipsizes the snippet around the match in long messages 1ms
   ✓ SessionService.searchSessionContent > collapses whitespace in snippets to a single line 0ms
   ✓ SessionService.searchSessionContent > normalizes whitespace runs in the query for both matching and the snippet 2ms
   ✓ SessionService.searchSessionContent > keeps the snippet window correct when lowercasing changes string length 0ms
   ✓ SessionService.searchSessionContent > matches supplementary-plane case pairs in both directions 1ms
   ✓ SessionService.searchSessionContent > matches Greek text ending in sigma for every sigma query form 1ms
   ✓ SessionService.searchSessionContent > never splits a surrogate pair at a snippet boundary 0ms
   ✓ SessionService.searchSessionContent > never ends the snippet window on a lone lead surrogate 0ms
   ✓ SessionService.searchSessionContent > does not match text stripped by the user-prompt display projection 1ms
   × SessionService.searchSessionContent > aborts mid-scan when the signal fires during a large file 66ms
     → promise resolved "[ { …(2) } ]" instead of rejecting
   ✓ SessionService.searchSessionContent > yields and honors aborts while stat-ing a large chats dir 4ms
   ✓ SessionService.searchSessionContent > stops scanning when the signal aborts 0ms
 ✓ src/memory/writeContextFile.test.ts (17 tests) 16ms
 ✓ src/memory/skillReviewNudge.integration.test.ts (18 tests) 13ms
 ✓ src/subagents/validation.test.ts (41 tests) 9ms
 ✓ src/core/openaiResponsesContentGenerator/index.test.ts (23 tests) 41ms
 ✓ src/core/plan-mode-shell-policy.test.ts (19 tests) 30ms
 ✓ src/hooks/asyncHookRegistry.test.ts (20 tests) 7ms
 ✓ src/permissions/classifier.test.ts (24 tests) 9ms
 ✓ src/agents/team/mailbox.test.ts (19 tests) 54ms
 ✓ src/permissions/classifier-prompts/system-prompt.test.ts (24 tests) 6ms
 ✓ src/memory/store.test.ts (17 tests) 24ms
 ✓ src/agents/runtime/workflow-stall.test.ts (26 tests) 27ms
 ↓ src/agents/runtime/workflow-p4a-meta-live.live.test.ts (6 tests | 6 skipped)
 ✓ src/utils/process-liveness.test.ts (30 tests) 21ms
 ✓ src/tools/artifact/artifact-tool.test.ts (20 tests) 152ms
 ✓ src/followup/suggestionGenerator.test.ts (24 tests) 7ms
 ✓ src/skills/skill-activation.test.ts (22 tests) 645ms
   ✓ extractToolFilePaths → SkillActivationRegistry integration > activates a skill keyed on src/**/*.ts from glob({ path: "src", pattern: "**/*.ts" })  635ms
 ✓ src/services/toolUseSummary.test.ts (34 tests) 25ms
 ✓ src/telemetry/daemon-metrics.test.ts (22 tests) 36ms
 ✓ src/core/nonInteractiveToolExecutor.test.ts (10 tests) 17ms
 ✓ src/core/loggingContentGenerator/context-usage-snapshot.test.ts (9 tests) 5ms
 ✓ src/utils/partUtils.test.ts (47 tests) 6ms
 ✓ src/services/image-payload-references.test.ts (19 tests) 6ms
 ✓ src/tools/exit-worktree.session.integ.test.ts (8 tests) 1795ms
 ✓ src/utils/abortController.test.ts (26 tests | 1 skipped) 15ms
 ✓ src/tools/task-update.test.ts (18 tests) 78ms
 ✓ src/agents/team/TeamManager.plan-approval.test.ts (11 tests) 21ms
 ✓ src/tools/enter-worktree.test.ts (26 tests) 29ms
 ✓ src/services/usage-dashboard-service.test.ts (9 tests) 12ms
 ✓ src/agents/runtime/workflow-meta-literal.test.ts (78 tests) 10ms
 ✓ src/skills/bundled/goal-draft/SKILL.test.ts (12 tests) 15ms
 ✓ src/hooks/functionHookRunner.test.ts (20 tests) 79ms
 ✓ src/permissions/denialTracking.test.ts (43 tests) 5ms
 ✓ src/models/content-generator-config.test.ts (19 tests) 6ms
 ✓ src/subagents/agent-frontmatter-schema.test.ts (35 tests) 5ms
 ✓ src/extension/sourceRegistry.test.ts (23 tests) 8ms
 ✓ src/ide/ideContext.test.ts (23 tests) 8ms
 ✓ src/utils/transcript-records.test.ts (27 tests) 14ms
 ✓ src/agents/background-notification-queue.test.ts (21 tests) 5ms
 ✓ src/utils/generateContentResponseUtilities.test.ts (37 tests) 6ms
 ✓ src/subagents/subagent-manager-override.test.ts (8 tests) 13ms
 ✓ src/tools/mcp-classifier-input.test.ts (24 tests) 10ms
 ✓ src/core/openaiContentGenerator/http400-media-wedge.test.ts (10 tests) 96ms
 ✓ src/services/visionBridge/tool-result-vision-bridge.test.ts (12 tests) 8ms
 ✓ src/memory/memoryLifecycle.integration.test.ts (3 tests) 44ms
 ✓ src/utils/getFolderStructure.test.ts (17 tests) 20ms
 ✓ src/memory/relevanceSelector.test.ts (13 tests) 19ms
 ✓ src/utils/request-tokenizer/textTokenizer.test.ts (36 tests) 23ms
 ✓ src/core/__tests__/openaiTimeoutHandling.test.ts (11 tests) 19ms
 ✓ src/utils/errors.test.ts (44 tests) 23ms
 ✓ src/utils/nextSpeakerChecker.test.ts (13 tests) 28ms
 ✓ src/core/modalityDefaults.test.ts (59 tests) 8ms
 ✓ src/mcp/token-storage/keychain-token-storage.test.ts (24 tests) 107ms
 ✓ src/subagents/builtin-agents.test.ts (16 tests) 5ms
 ✓ src/telemetry/gen-ai-exchange.test.ts (13 tests) 6ms
 ✓ src/followup/followupState.test.ts (18 tests) 11ms
 ✓ src/core/openaiContentGenerator/pipeline.concurrent.test.ts (2 tests) 15ms
 ✓ src/tools/enterPlanMode.test.ts (21 tests) 23ms
 ✓ src/agents/runtime/agent-statistics.test.ts (33 tests) 14ms
 ✓ src/utils/ignorePatterns.test.ts (29 tests) 7ms
 ✓ src/memory/userMemory.test.ts (13 tests) 19ms
 ✓ src/agents/team/test-utils/fake-agent.test.ts (28 tests) 8ms
 ✓ src/hooks/registerSkillHooks.test.ts (13 tests) 4ms
 ✓ src/agents/runtime/workflow-journal.test.ts (22 tests) 17ms
 ✓ src/permissions/dangerousRules.test.ts (110 tests) 7ms
 ✓ src/memory/refresh.test.ts (9 tests) 11ms
 ✓ src/telemetry/event-loop-lag.test.ts (16 tests) 27ms
 ✓ src/core/openaiContentGenerator/openaiContentGenerator.test.ts (12 tests) 11ms
 ✓ src/agents/team/TeamManager.initial-result.test.ts (6 tests) 324ms
 ✓ src/memory/team-memory-sync.test.ts (10 tests) 557ms
 ✓ src/core/reasoning-effort.test.ts (95 tests) 7ms
 ✓ src/tools/read-mcp-resource.test.ts (15 tests) 32ms
 ✓ src/hooks/promptHookIntegration.test.ts (9 tests) 116ms
 ✓ src/utils/yaml-parser.test.ts (38 tests) 31ms
 ✓ src/core/outbound-dynamic-headers.test.ts (38 tests) 10ms
 ✓ src/utils/shell-ast-parser-lazy.test.ts (5 tests) 217ms
 ✓ src/permissions/destructive-commands.test.ts (31 tests) 6ms
 ✓ src/extension/agent-plugins-v1/mcp.test.ts (11 tests) 11ms
 ✓ src/ipc/uds-inbox-bind-failures.test.ts (5 tests) 10ms
 ✓ src/mcp/token-storage/hybrid-token-storage.test.ts (13 tests) 10ms
 ✓ src/services/memoryDiagnosticsDumper.test.ts (11 tests) 16ms
 ✓ src/utils/binary-content.test.ts (73 tests) 8ms
 ✓ src/tools/cron-create.test.ts (18 tests) 235ms
 ✓ src/services/session-sources.test.ts (32 tests) 161ms
 ✓ src/agents/runtime/agent-context.test.ts (22 tests) 10ms
 ✓ src/tools/tool-result-retention.test.ts (19 tests) 4ms
 ✓ src/agents/backends/iterm-it2.test.ts (19 tests) 7ms
 ✓ src/utils/filesearch/fzfWorkerHandle.test.ts (13 tests) 98ms
 ✓ src/utils/filesearch/ignore.test.ts (21 tests) 14ms
 ✓ src/extension/extension-runtime-refresh.test.ts (9 tests) 7ms
 ✓ src/utils/errorParsing.test.ts (25 tests) 4ms
 ✓ src/tools/file-read-permission.test.ts (20 tests) 13ms
 ✓ src/tools/modifiable-tool.test.ts (11 tests) 13ms
 ✓ src/core/openaiContentGenerator/taggedThinkingParser.test.ts (27 tests) 4ms
 ✓ src/skills/skill-curator.rollback.test.ts (5 tests) 44ms
 ✓ src/tools/agent/fork-subagent.test.ts (21 tests) 5ms
 ✓ src/memory/indexer.test.ts (8 tests) 21ms
 ✓ src/utils/envVarResolver.test.ts (27 tests) 5ms
 ✓ src/tools/loop-wakeup.test.ts (19 tests) 42ms
 ✓ src/utils/runtimeStatus.test.ts (21 tests) 14ms
 ✓ src/tools/toAutoClassifierInput.test.ts (14 tests) 3ms
 ✓ src/services/branch-points.test.ts (18 tests) 4ms
 ✓ src/confirmation-bus/message-bus.test.ts (15 tests) 66ms
 ✓ src/utils/runtimeStatus.config.test.ts (6 tests) 294ms
 ✓ src/memory/dreamAgentPlanner.test.ts (10 tests) 39ms
 ✓ src/services/fileReadCache.integration.test.ts (3 tests) 27ms
 ✓ src/telemetry/resource-attributes.test.ts (35 tests) 8ms
 ✓ src/core/openaiContentGenerator/prefix-caching.test.ts (21 tests) 4ms
 ✓ src/tools/agent/fork-profile.test.ts (35 tests) 26ms
 ✓ src/tools/task-list.test.ts (15 tests) 54ms
 ✓ src/memory/team-index.test.ts (10 tests) 20ms
 ✓ src/output/json-formatter.test.ts (15 tests) 4ms
 ✓ src/tools/create-sub-session.test.ts (14 tests) 34ms
 ✓ src/utils/quotaErrorDetection.test.ts (29 tests) 4ms
 ✓ src/utils/cronParser.test.ts (31 tests) 19ms
 ✓ src/core/openaiContentGenerator/provider/cerebras.test.ts (5 tests) 55ms
 ✓ src/tools/mcp-pool-key.test.ts (25 tests) 4ms
 ✓ src/tools/image-gen.test.ts (8 tests) 34ms
 ✓ src/utils/terminalSerializer.test.ts (20 tests) 46ms
 ✓ src/providers/__tests__/model-discovery.test.ts (21 tests) 8ms
 ✓ src/tools/artifact/oss-publisher.test.ts (16 tests) 18ms
 ✓ src/core/openaiContentGenerator/provider/zai.test.ts (15 tests) 5ms
 ✓ src/tools/mcp-retry.test.ts (38 tests) 1266ms
   ✓ retryWithBackoff > retries up to maxRetries and then throws  604ms
 ✓ src/agents/runtime/agent-core.skill-gate.test.ts (11 tests) 5ms
 ✓ src/telemetry/context-usage.test.ts (10 tests) 3ms
 ✓ src/services/fileDiscoveryService.test.ts (15 tests) 16ms
 ✓ src/telemetry/gen-ai-request.test.ts (23 tests) 5ms
 ✓ src/utils/gitUtils.test.ts (12 tests) 7ms
 ✓ src/memory/learn-skill-agent.test.ts (36 tests) 10ms
 ✓ src/core/toolCallIdUtils.test.ts (11 tests) 4ms
 ✓ src/services/runtimeSampleRing.test.ts (10 tests) 6ms
 ✓ src/goals/goal-verifier.test.ts (13 tests) 8ms
 ✓ src/services/chatRecordingService.parentSession.test.ts (8 tests) 8ms
 ✓ src/services/cronTasksLock.test.ts (15 tests) 14ms
 ✓ src/memory/recall-scan-latency.test.ts (1 test) 208ms
 ✓ src/agents/team/test-utils/fake-backend.test.ts (18 tests) 60ms
 ✓ src/goals/goalLoop.integration.test.ts (2 tests) 5ms
 ✓ src/services/tokenEstimation.test.ts (20 tests) 3ms
 ✓ src/memory/channel-memory-document.test.ts (24 tests) 8ms
 ✓ src/hooks/urlValidator.test.ts (25 tests) 7ms
 ✓ src/agents/worktree-pin.test.ts (10 tests) 9ms
 ✓ src/tools/tools.test.ts (13 tests) 5ms
 ✓ src/tools/cron-list.test.ts (10 tests) 40ms
 ✓ src/tools/team-create.test.ts (12 tests) 50ms
 ✓ src/followup/speculationToolGate.test.ts (32 tests) 34ms
 ✓ src/utils/retryPolicy.test.ts (20 tests) 15ms
 ✓ src/tools/mcp-workspace-budget.test.ts (17 tests) 5ms
 ✓ src/memory/team-paths.test.ts (10 tests) 6ms
 ✓ src/ipc/uds-client.test.ts (10 tests) 14ms
 ✓ src/tools/team-create-reclaim-race.test.ts (2 tests) 57ms
 ✓ src/core/environmentContext.mcp-subagent.test.ts (3 tests) 117ms
 ✓ src/utils/modelId.test.ts (26 tests) 4ms
 ✓ src/utils/qwenIgnoreParser.test.ts (12 tests) 11ms
 ✓ src/hooks/ssrfGuard.test.ts (27 tests) 9ms
 ✓ src/utils/filesearch/crawlCache.test.ts (13 tests) 23ms
 ✓ src/tools/client-mcp-registrar.test.ts (5 tests) 36ms
 ✓ src/services/api-user-prompt.test.ts (17 tests) 4ms
 ✓ src/utils/subagentGenerator.test.ts (9 tests) 24ms
 ✓ src/agents/runtime/workflow-dispatch-scheduler.test.ts (13 tests) 163ms
 ✓ src/telemetry/trace-context.test.ts (18 tests) 4ms
 ✓ src/tools/diffOptions.test.ts (16 tests) 5ms
 ✓ src/tools/askUserQuestion.integration.test.ts (1 test) 9ms
 ✓ src/tools/shell.backgroundStatus.test.ts (3 tests) 1837ms
   ✓ background shell status sidecar (integration, real spawn) > reports running (with pid) while a quiet child keeps the output file empty, then completed  1629ms
 ✓ src/hooks/envInterpolator.test.ts (34 tests) 7ms
 ✓ src/utils/contextLengthError.test.ts (30 tests) 5ms
 ✓ src/agents/runtime/review-workflow.test.ts (16 tests) 12ms
 ✓ src/core/turn-interruption.test.ts (15 tests) 5ms
 ✓ src/config/config.workflow-registration.test.ts (6 tests) 19ms
 ✓ src/mcp/token-storage/base-token-storage.test.ts (14 tests) 13ms
[warn] Corrupt extension state file /tmp/ext-prefs-p9QtbP/nested/extension-preferences.json moved aside to /tmp/ext-prefs-p9QtbP/nested/extension-preferences.json.corrupted
 ✓ src/extension/extensionPreferences.test.ts (11 tests) 10ms
 ✓ src/utils/runtimeDiagnostics.test.ts (4 tests) 4ms
 ✓ src/telemetry/gen-ai-provider.test.ts (64 tests) 4ms
 ✓ src/extension/gemini-converter.test.ts (11 tests) 5ms
 ✓ src/tools/mcp-resource-content.test.ts (13 tests) 5ms
 ✓ src/providers/__tests__/presets/alibaba-token-plan.test.ts (5 tests) 5ms
 ✓ src/utils/safeJsonStringify.test.ts (17 tests) 3ms
 ✓ src/utils/editHelper.test.ts (17 tests) 5ms
 ✓ src/core/output-styles.test.ts (21 tests) 4ms
 ✓ src/ipc/socket-path.test.ts (13 tests) 5ms
 ✓ src/hooks/detectTodoChanges.test.ts (12 tests) 4ms
 ✓ src/followup/overlayFs.test.ts (15 tests) 13ms
 ✓ src/utils/image-view.test.ts (10 tests) 64ms
 ✓ src/memory/pending-skills.test.ts (11 tests) 14ms
 ✓ src/goals/goal-persistence.test.ts (13 tests) 4ms
 ✓ src/agents/runtime/subagent-plan-tool-policy.test.ts (6 tests) 4ms
 ✓ src/utils/workspace-artifact-directory.test.ts (9 tests) 10ms
 ✓ src/extension/extension-git-client.test.ts (12 tests) 21ms
 ✓ src/providers/__tests__/presets/custom-provider.test.ts (12 tests) 5ms
 ✓ src/core/goal-turn-integration.test.ts (3 tests) 7ms
 ✓ src/models/reproduce-401.test.ts (3 tests) 5ms
 ✓ src/tools/request-shutdown.test.ts (9 tests) 21ms
 ✓ src/agents/runtime/workflow-budget.test.ts (20 tests) 4ms
 ✓ src/core/openaiContentGenerator/http413-payload.test.ts (2 tests) 56ms
 ✓ src/followup/smoke.test.ts (21 tests) 8ms
 ✓ src/tools/artifact/html.test.ts (38 tests) 4ms
 ✓ src/tools/display-image.test.ts (7 tests) 29ms
 ✓ src/tools/artifact/host-publisher.test.ts (17 tests) 9ms
 ✓ src/test-utils/mockWorkspaceContext.test.ts (9 tests) 5ms
Error: Unsupported mode "midnight". Use "light" or "dark".
 ✓ src/skills/bundled/dataviz/scripts/validate_palette.test.js (19 tests) 107ms
 ✓ src/tools/team-delete.test.ts (7 tests) 1029ms
 ✓ src/core/outbound-session-id.test.ts (14 tests) 9ms
 ✓ src/core/anthropicContentGenerator/usage.test.ts (10 tests) 3ms
 ✓ src/config/config.workflows.test.ts (4 tests) 7ms
 ✓ src/utils/errorReporting.test.ts (8 tests) 8ms
 ✓ src/mcp/sa-impersonation-provider.test.ts (8 tests) 6ms
 ✓ src/providers/__tests__/presets/alibaba-standard.test.ts (10 tests) 5ms
 ✓ src/ide/ide-installer.test.ts (10 tests) 6ms
 ✓ src/core/openaiContentGenerator/provider/mimo.test.ts (9 tests) 5ms
 ✓ src/tools/team-plan-approval.test.ts (9 tests) 5ms
 ✓ src/tools/task-create.test.ts (9 tests) 31ms
 ✓ src/permissions/trusted-user-answers.test.ts (11 tests) 4ms
 ✓ src/extension/extension-converter.test.ts (4 tests) 9ms
 ✓ src/hooks/types.test.ts (15 tests) 4ms
 ✓ src/utils/runtime-fetch-options.no-proxy.test.ts (3 tests) 32ms
 ✓ src/extension/i18n.test.ts (16 tests) 3ms
 ✓ src/memory/secret-scanner.test.ts (29 tests) 135ms
 ✓ src/ide/process-utils.test.ts (6 tests) 3ms
 ✓ src/extension/extension-git-credentials.test.ts (4 tests) 152ms
 ✓ src/core/ask-user-question-restore.test.ts (8 tests) 3ms
 ✓ src/utils/proxyUtils.test.ts (23 tests) 4ms
 ✓ src/skills/skill-manager.read-model.test.ts (3 tests) 33ms
 ✓ src/utils/textUtils.test.ts (25 tests) 3ms
 ✓ src/utils/cronDisplay.test.ts (7 tests) 3ms
 ✓ src/utils/terminalSafe.test.ts (16 tests) 4ms
 ✓ src/config/session-source-tool-activation.test.ts (4 tests) 19ms
 ✓ src/goals/goal-checkpoint.test.ts (7 tests) 4ms
 ✓ src/resources/resource-registry.test.ts (11 tests) 7ms
 ✓ src/utils/safeJsonParse.test.ts (14 tests) 4ms
 ✓ src/skills/bundled/loop/SKILL.test.ts (7 tests) 10ms
 ✓ src/skills/skill-install-artifacts.test.ts (2 tests) 9ms
 ✓ src/core/message-display-buffer.test.ts (9 tests) 3ms
 ✓ src/tools/enter-worktree.session.integ.test.ts (2 tests) 469ms
 ✓ src/core/tool-invocation-guard.test.ts (11 tests) 5ms
 ✓ src/skills/bundled/computer-use/SKILL.test.ts (6 tests) 8ms
 ✓ src/ide/detect-ide.test.ts (14 tests) 3ms
 ✓ src/memory/scan.test.ts (4 tests) 15ms
 ✓ src/core/openaiContentGenerator/provider/minimax.test.ts (9 tests) 3ms
 ✓ src/providers/__tests__/presets/moonshot.test.ts (6 tests) 5ms
 ✓ src/goals/goal-legacy-projection.test.ts (13 tests) 4ms
 ✓ src/goals/goal-protocol.test.ts (8 tests) 3ms
 ✓ src/tools/mcp-discovery-timeout.test.ts (14 tests) 6ms
 ✓ src/core/permission-helpers.test.ts (8 tests) 4ms
 ✓ src/tools/send-message.broadcast.test.ts (3 tests) 31ms
 ✓ src/extension/override.test.ts (16 tests) 3ms
 ✓ src/prompts/prompt-registry.test.ts (11 tests) 7ms
 ✓ src/agents/team/identity.test.ts (15 tests) 3ms
 ✓ src/utils/projectPath.test.ts (12 tests) 4ms
 ✓ src/extension/settings.test.ts (10 tests) 3ms
 ✓ src/core/loggingContentGenerator/streamContentDetection.test.ts (16 tests) 3ms
 ✓ src/utils/sanitize-child-env.test.ts (10 tests) 3ms
 ✓ src/tools/grepReadTracking.test.ts (7 tests) 7ms
 ✓ src/utils/xml.test.ts (11 tests) 5ms
 ✓ src/utils/conversation-chain.test.ts (8 tests) 3ms
 ✓ src/services/generatedFiles.test.ts (11 tests) 3ms
 ✓ src/utils/request-payload-error.test.ts (8 tests) 3ms
 ✓ src/utils/thoughtUtils.test.ts (15 tests) 3ms
 ✓ src/extension/zip-extraction.test.ts (3 tests) 6ms
 ✓ src/tools/record-source.test.ts (5 tests) 41ms
 ✓ src/services/visionBridge/image-part-utils.test.ts (18 tests) 3ms
 ✓ src/mcp/configHash.test.ts (16 tests) 3ms
 ✓ src/skills/skill-curator.reread.test.ts (1 test) 13ms
 ✓ src/tools/cron-delete.test.ts (7 tests) 37ms
 ✓ src/utils/configResolver.test.ts (12 tests) 3ms
 ✓ src/hooks/trustedHooks.test.ts (5 tests) 3ms
 ✓ src/telemetry/file-exporters.test.ts (3 tests) 4ms
 ✓ src/core/session-recovery.test.ts (4 tests) 4ms
 ✓ src/core/openaiContentGenerator/provider/mistral.test.ts (4 tests) 4ms
 ✓ src/agents/team/promptAddendum.test.ts (6 tests) 2ms
 ✓ src/agents/arena/diff-summary.test.ts (8 tests) 3ms
 ✓ src/tools/pid-descendants.test.ts (6 tests) 513ms
   ✓ pid-descendants > integration: spawn-and-enumerate > enumerates one level of children via process-tree snapshot  506ms
 ✓ src/extension/agent-plugins-v1/manifest.test.ts (6 tests) 5ms
 ✓ src/services/gitWorktreeService.hooks.integ.test.ts (3 tests) 550ms
 ✓ src/providers/__tests__/presets/grok.test.ts (6 tests) 5ms
 ✓ src/services/attributionTrailer.test.ts (4 tests) 4ms
 ✓ src/utils/osc8.test.ts (13 tests) 3ms
 ✓ src/providers/__tests__/presets/idealab.test.ts (6 tests) 4ms
 ✓ src/hooks/user-prompt-submit-context.test.ts (13 tests) 3ms
 ✓ src/telemetry/event-loop-lag-metrics.test.ts (4 tests) 11ms
 ✓ src/core/openaiContentGenerator/provider/modelscope.test.ts (5 tests) 3ms
 ✓ src/extension/redaction.test.ts (13 tests) 2ms
 ✓ src/core/prompt-tool-examples.test.ts (2 tests) 36ms
 ✓ src/tools/web-fetch-preapproved.test.ts (13 tests) 3ms
 ✓ src/skills/skill-paths.test.ts (7 tests) 6ms
 ✓ src/utils/toml-to-markdown-converter.test.ts (11 tests) 12ms
 ✓ src/mcp/google-auth-provider.test.ts (8 tests) 8ms
 ✓ src/core/inlineMediaLimit.test.ts (13 tests) 3ms
 ✓ src/utils/filesearch/result-cache.test.ts (6 tests) 5ms
 ✓ src/test-utils/latency-budget.test.ts (6 tests) 3ms
 ✓ src/utils/projectRoot.test.ts (5 tests) 7ms
 ✓ src/memory/team-memory-git-status.test.ts (5 tests) 35ms
 ✓ src/hooks/combinedAbortSignal.test.ts (8 tests) 305ms
 ✓ src/core/llm-request.test.ts (14 tests) 2ms
 ✓ src/extension/network-policy.test.ts (15 tests) 9ms
 ✓ src/skills/skill-load.real-parser.test.ts (7 tests) 11ms
 ✓ src/telemetry/session-context.test.ts (9 tests) 3ms
 ✓ src/config/installationManager.test.ts (4 tests) 4ms
 ✓ src/agents/team/leaderPermissionBridge.test.ts (7 tests) 3ms
 ✓ src/extension/storage.test.ts (5 tests) 3ms
 ✓ src/hooks/stopHookCap.test.ts (9 tests) 3ms
 ✓ src/memory/extractAgent.test.ts (1 test) 9ms
 ✓ src/utils/invocation-context.test.ts (12 tests) 3ms
 ✓ src/skills/bundled/zvec-grep-install/SKILL.test.ts (2 tests) 6ms
 ✓ src/lsp/NativeLspClient.test.ts (2 tests) 3ms
 ✓ src/extension/agent-plugins-v1/skills.test.ts (3 tests) 9ms
 ✓ src/tools/tool-utils.test.ts (13 tests) 2ms
 ✓ src/memory/dream.test.ts (3 tests) 10ms
 ✓ src/core/llm-content-generator/index.test.ts (3 tests) 4ms
 ✓ src/tools/tool-response-finalizer.integration.test.ts (2 tests) 7ms
 ✓ src/goals/activeGoalStore.test.ts (8 tests) 2ms
 ✓ src/skills/symlinkScope.test.ts (5 tests) 2ms
 ✓ src/skills/bundled-skills.integration.test.ts (17 tests) 12ms
 ✓ src/hooks/instructionsLoadedCallback.test.ts (4 tests) 4ms
 ✓ src/tools/syntheticOutput.test.ts (7 tests) 18ms
 ✓ src/memory/const.test.ts (5 tests) 2ms
 ✓ src/utils/bundlePaths.test.ts (4 tests) 2ms
 ✓ src/providers/__tests__/presets/modelscope.test.ts (3 tests) 4ms
 ✓ src/telemetry/sanitize.test.ts (10 tests) 2ms
 ✓ src/goals/goal-runtime.integration.test.ts (2 tests) 7ms
 ✓ src/utils/extract-text-from-contents.test.ts (6 tests) 2ms
 ✓ src/services/session-file-history-state.test.ts (2 tests) 11ms
 ✓ src/goals/goal-tool-result-provenance.test.ts (8 tests) 3ms
 ✓ src/services/sessionRecap.test.ts (1 test) 3ms
 ✓ src/services/session-service-writer-lease.test.ts (2 tests) 9ms
 ✓ src/providers/__tests__/presets/alibaba-coding-plan.test.ts (3 tests) 4ms
 ✓ src/utils/projectSummary.test.ts (3 tests) 15ms
 ✓ src/utils/workspace-artifact-path.test.ts (8 tests) 2ms
 ✓ src/providers/__tests__/presets/deepseek.test.ts (3 tests) 4ms
 ✓ src/ipc/uds-inbox-sweep-liveness.test.ts (2 tests) 6ms
 ✓ src/tools/mcp-status.test.ts (6 tests) 2ms
 ✓ src/core/openaiContentGenerator/provider/grok.test.ts (8 tests) 4ms
 ✓ src/utils/shell-pager-env.test.ts (8 tests) 2ms
 ✓ src/utils/ripgrepUtils.real.test.ts (2 tests) 12ms
 ✓ src/agents/subagent-result.test.ts (18 tests) 3ms
 ✓ src/utils/language-detection.test.ts (6 tests) 2ms
 ✓ src/providers/__tests__/presets/zai.test.ts (3 tests) 4ms
 ✓ src/utils/formatters.test.ts (14 tests) 3ms
 ✓ src/core/genai-compat.test.ts (7 tests) 4ms
 ✓ src/memory/team-memory-secret-guard.test.ts (4 tests) 3ms
 ✓ src/providers/__tests__/presets/openrouter.test.ts (5 tests) 2ms
 ✓ src/extension/corruptFile.test.ts (2 tests) 5ms
 ✓ src/providers/__tests__/presets/requesty.test.ts (5 tests) 2ms
 ✓ src/test-utils/mockWorkspaceContext.fallback.test.ts (3 tests) 2ms
 ✓ src/agents/backends/tmux-commands.test.ts (8 tests) 3ms
 ✓ src/tools/artifact/local-publisher.test.ts (3 tests) 4ms
 ✓ src/telemetry/session-events.test.ts (5 tests) 11ms
 ✓ src/skills/bundled/loop/autonomous-loop.test.ts (3 tests) 2ms
 ✓ src/tools/tool-call-repeat-key.test.ts (3 tests) 3ms
 ✓ src/tools/zoom-image.sharp-failure.test.ts (1 test) 22ms
 ✓ src/utils/asyncMessageQueue.test.ts (7 tests) 2ms
 ✓ src/providers/__tests__/presets/minimax.test.ts (4 tests) 4ms
 ✓ src/tools/artifact/create-publisher.test.ts (5 tests) 2ms
 ✓ src/telemetry/telemetry.test.ts (2 tests) 24ms
 ✓ src/utils/load-simple-git.test.ts (3 tests) 7ms
 ✓ src/lsp/LspConnectionFactory.test.ts (2 tests) 50ms
 ✓ src/utils/startupEventSink.test.ts (4 tests) 4ms
 ✓ src/utils/request-tokenizer/supportedImageFormats.test.ts (2 tests) 2ms
 ✓ src/ipc/peer-routing.test.ts (4 tests) 2ms
 ✓ src/telemetry/api-activity-tracker.test.ts (3 tests) 2ms
 ✓ src/utils/internalPromptIds.test.ts (9 tests) 2ms
 ✓ src/lsp/configHash.test.ts (3 tests) 3ms
 ✓ src/agents/workflow-resume-call.test.ts (4 tests) 2ms
 ✓ src/telemetry/trace-id-utils.test.ts (8 tests) 4ms
 ✓ src/services/sync-file-encoding.test.ts (9 tests) 21ms
 ✓ src/utils/messageInspectors.test.ts (5 tests) 2ms
 ✓ src/telemetry/telemetry-utils.test.ts (6 tests) 2ms
 ✓ src/utils/load-iconv-lite.test.ts (3 tests) 7ms
 ✓ src/services/tool-write-origin.test.ts (9 tests) 2ms
 ✓ src/subagents/types.test.ts (3 tests) 2ms
 ✓ src/hooks/context-usage.test.ts (8 tests) 2ms
 ✓ src/utils/load-xterm-headless.test.ts (3 tests) 7ms
 ✓ src/index.test.ts (1 test) 2ms
 ✓ src/core/tool-call-preparation.test.ts (3 tests) 2ms
 ✓ src/skills/bundled/workflow-creator/SKILL.test.ts (2 tests) 6ms
 ✓ src/agents/workflow-failure-lines.test.ts (2 tests) 2ms
 ✓ src/tools/artifact/publisher.test.ts (5 tests) 2ms
 ✓ src/core/plan-mode-entry-policy.test.ts (8 tests) 2ms
 ✓ src/services/worktreeCleanup.test.ts (3 tests) 2ms
 ✓ src/memory/entries.test.ts (1 test) 2ms
 ✓ src/core/openaiContentGenerator/constants.test.ts (5 tests) 2ms
 ✓ src/core/tool-call-arguments.test.ts (8 tests) 2ms
 ✓ src/utils/getPty.test.ts (1 test) 2ms
 ✓ src/core/openaiContentGenerator/provider/openrouter.test.ts (6 tests) 2ms
 ✓ src/utils/env.test.ts (12 tests) 2ms
 ✓ src/models/image-generation-capability.test.ts (6 tests) 2ms
 ✓ src/goals/goal-turn-context.test.ts (1 test) 2ms
 ✓ src/telemetry/tool-call-decision.test.ts (1 test) 1ms

⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯

 FAIL  src/services/sessionService.search.test.ts > SessionService.searchSessionContent > aborts mid-scan when the signal fires during a large file
AssertionError: promise resolved "[ { …(2) } ]" instead of rejecting

- Expected: 
Error {
  "message": "rejected promise",
}

+ Received: 
[
  {
    "sessionId": "550e8400-e29b-41d4-a716-446655440000",
    "snippet": "needle at the end",
  },
]

 ❯ src/services/sessionService.search.test.ts:417:7
    415|       await expect(
    416|         service.searchSessionContent('needle', { signal: controller.si…
    417|       ).rejects.toThrow();
       |       ^
    418|     } finally {
    419|       clearTimeout(timer);

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


 Test Files  1 failed | 658 passed | 1 skipped (660)
      Tests  1 failed | 24956 passed | 10 skipped (24967)
   Start at  14:42:12
   Duration  446.42s (transform 11.20s, setup 1.19s, collect 119.62s, tests 214.51s, environment 72ms, prepare 28.36s)

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.23.3
npm error location /startdir/src/qwen-code/packages/core
npm error command failed
npm error command sh -c vitest run --testTimeout=30000 --no-file-parallelism '--exclude=**/{qwenConnectionHandler,useAtCompletion,serve/acp-http/transport,i18n/index,ui/auth/AuthDialog,ui/utils/clipboardUtils,services/FileCommandLoader,services/FileCommandLoader-extension,lsp/LspConfigLoader,utils/pathReader}.test.*'

npm notice run @qwen-code/node-repl-mcp@0.1.3 test

 RUN  v3.2.7 /startdir/src/qwen-code/packages/node-repl

 ✓ src/kernel-manager.test.ts (46 tests) 6287ms
   ✓ NodeReplKernelManager > revalidates a module root after earlier queued work completes  345ms
   ✓ NodeReplKernelManager > interrupts timed-out and cancelled cells without replacing the kernel  3067ms
 ✓ src/node-repl.semantics.test.ts (18 tests) 859ms
 ✓ src/mcp-server.test.ts (13 tests) 970ms
   ✓ node_repl MCP server > dispose() kills the kernel child process  547ms
 ✓ src/cell-transform.test.ts (16 tests) 56ms
 ✓ src/output-adapter.test.ts (12 tests) 45ms
 ✓ src/protocol.test.ts (14 tests) 637ms
 ✓ src/node-repl.scale.test.ts (2 tests) 728ms
   ✓ node_repl scale & isolation > isolates 10 concurrent kernels (no binding/pid/output cross-talk)  602ms
 ✓ src/node-repl.napi.test.ts (1 test) 2018ms
 ✓ src/node-repl.lines.test.ts (4 tests) 204ms
 ✓ src/win-path.test.ts (10 tests) 3ms
 ✓ src/node-repl.reload.test.ts (2 tests) 110ms
 ✓ src/security-policy.test.ts (4 tests) 3ms
 ✓ src/debug-log.test.ts (3 tests) 2ms
 ✓ src/tokenizer.test.ts (7 tests) 2ms

 Test Files  14 passed (14)
      Tests  152 passed (152)
   Start at  14:49:40
   Duration  13.74s (transform 135ms, setup 0ms, collect 318ms, tests 11.92s, environment 1ms, prepare 500ms)

npm notice run @qwen-code/qwen-live@0.1.0 test

 RUN  v3.2.7 /startdir/src/qwen-code/packages/qwen-live

 ✓ src/realtime/realtime-session.test.ts (38 tests) 30ms
 ✓ src/orchestrator/live-session.test.ts (41 tests) 8791ms
   ✓ LiveSession > actively reminds after a direct response leaves permission unresolved  1107ms
   ✓ LiveSession > cancels a pending reminder when a delayed permission tool call arrives  2360ms
   ✓ LiveSession > resubscribes after the event stream ends without session_closed  1056ms
 ✓ src/adaptor/qwen-code-adaptor.test.ts (44 tests) 20ms
 ✓ src/host/live-host-coordinator.test.ts (43 tests) 427ms
 ✓ src/adaptor/acp-adaptor.test.ts (14 tests) 621ms
 ✓ src/permissions/permission-broker.test.ts (20 tests) 7ms
 ✓ src/orchestrator/injector.test.ts (25 tests) 17ms
 ✓ src/host/live-host-installer.test.ts (11 tests) 66ms
 ✓ src/host/discovery.test.ts (14 tests) 50ms
qwen-live listening on http://127.0.0.1:45597
qwen-live listening on http://127.0.0.1:37161
qwen-live listening on http://127.0.0.1:34049
qwen-live listening on http://127.0.0.1:40129
qwen-live listening on http://127.0.0.1:40373
 ✓ src/daemon.test.ts (7 tests) 44ms
 ✓ src/tools/handles.test.ts (12 tests) 15ms
 ✓ src/config.test.ts (9 tests) 13ms
 ✓ src/tools/dispatcher.test.ts (14 tests) 5ms
 ✓ src/log/session-log.test.ts (5 tests) 13ms
 ↓ src/manual/qodercli-acp.test.ts (2 tests | 2 skipped)
 ✓ src/realtime/sanitize.test.ts (3 tests) 1ms

 Test Files  15 passed | 1 skipped (16)
      Tests  300 passed | 2 skipped (302)
   Start at  14:49:54
   Duration  12.81s (transform 459ms, setup 0ms, collect 988ms, tests 10.12s, environment 1ms, prepare 572ms)

npm notice run @qwen-code/sdk@0.1.11 test

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

 ✓ test/unit/DaemonClient.test.ts  (424 tests) 1963ms
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/daemonUi.test.ts  (365 tests) 80ms
 ✓ test/unit/DaemonSessionClient.test.ts  (83 tests) 401ms
 ✓ test/unit/daemonEvents.test.ts  (114 tests) 17ms
2026-11-05 14:50:10 [ERROR] [ProcessTransport] Failed to initialize CLI process: Transport start aborted
2026-11-05 14:50:10 [ERROR] [ProcessTransport] Failed to initialize CLI process: Transport start aborted
2026-11-05 14:50:10 [ERROR] [ProcessTransport] CLI process error: Spawn failed
2026-11-05 14:50:10 [ERROR] [ProcessTransport] CLI process exited with code 1
2026-11-05 14:50:10 [ERROR] [ProcessTransport] CLI process terminated by signal SIGTERM
2026-11-05 14:50:10 [ERROR] [ProcessTransport] CLI process error: Process error
2026-11-05 14:50:10 [DEBUG] [ProcessTransport] Spawning CLI (native): qwen --input-format stream-json --output-format stream-json --channel=SDK
2026-11-05 14:50:10 [ERROR] [ProcessTransport] CLI process exited with code 1
2026-11-05 14:50:10 [ERROR] [ProcessTransport] CLI process error: Process error
2026-11-05 14:50:10 [ERROR] [ProcessTransport] CLI process exited with code 1
2026-11-05 14:50:10 [ERROR] [ProcessTransport] CLI process terminated by signal SIGKILL
2026-11-05 14:50:10 [INFO]  [ProcessTransport] CLI process started successfully
2026-11-05 14:50:10 [DEBUG] [ProcessTransport] Forking CLI (node): /path/to/cli.js --input-format stream-json --output-format stream-json --channel=SDK
2026-11-05 14:50:10 [INFO]  [ProcessTransport] CLI process started successfully
 ✓ test/unit/ProcessTransport.test.ts  (86 tests) 60ms
 ✓ test/unit/AcpHttpTransport.test.ts  (49 tests) 36ms
2026-11-05 14:50:11 [ERROR] [Query] Control response error for request 427f7921-6a15-4a9d-8dab-5d80d4416241: Test error
2026-11-05 14:50:11 [ERROR] [Query] Initialization error: Test error
2026-11-05 14:50:23 [ERROR] [Query] Initialization error: Query is closed
2026-11-05 14:50:35 [ERROR] [Query] Control response error for request 58c2f43f-9899-48b1-87ca-ebf52221fa79: Malformed error
 ✓ test/unit/Query.test.ts  (66 tests) 24409ms
 ✓ test/unit/acpRouteTable.test.ts  (110 tests) 17ms
 ✓ test/unit/daemon-public-surface.test.ts  (21 tests) 5ms
[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
[serve-bridge] Tool error: string error
[serve-bridge] SSE stream ended unexpectedly for session 550e8400-e29b-41d4-a716-446655440000: GET /session/:id/events: HTTP 404
[serve-bridge] Tool error: DaemonCapabilityMissingError: DaemonCapabilities.session_id_override is missing — daemon does not advertise the session_id_override feature. The daemon you are connected to likely predates the feature that added this field; upgrade the daemon or fall back to a different code path that doesn't require it.
    at DaemonClient.requireCapability (/startdir/src/qwen-code/packages/sdk-typescript/src/daemon/DaemonClient.ts:1265:13)
    at DaemonClient.createOrAttachSession (/startdir/src/qwen-code/packages/sdk-typescript/src/daemon/DaemonClient.ts:3047:7)
    at /startdir/src/qwen-code/packages/sdk-typescript/src/daemon-mcp/serve-bridge/tools/session.ts:39:25
    at Object.handler (/startdir/src/qwen-code/packages/sdk-typescript/src/daemon-mcp/serve-bridge/helpers.ts:45:14)
    at /startdir/src/qwen-code/packages/sdk-typescript/test/unit/serve-bridge.test.ts:248:24
    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 runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15)
[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:462: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:492: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/serve-bridge.test.ts  (38 tests) 32ms
 ✓ test/unit/RestSseTransport.test.ts  (47 tests) 99ms
 ✓ test/unit/DaemonClientStandalone.test.ts  (31 tests) 30ms
 ✓ test/unit/DaemonClient.upload.test.ts  (28 tests) 17ms
 ✓ test/unit/daemon-transcript-projection.test.ts  (17 tests) 19ms
 ✓ test/daemon-ui-transcript.test.ts  (22 tests) 8ms
 ✓ test/unit/AcpWsTransport.test.ts  (34 tests) 11ms
 ✓ test/unit/DaemonAuthFlow.test.ts  (14 tests) 13065ms
 ✓ test/unit/cliPath.test.ts  (33 tests) 9ms
 ✓ test/unit/daemon-sse.test.ts  (18 tests) 7ms
 ✓ test/unit/AutoReconnectTransport.test.ts  (19 tests) 18ms
 ✓ test/unit/DaemonClientVoice.test.ts  (8 tests) 31ms
 ✓ test/unit/createSdkMcpServer.test.ts  (18 tests) 12ms
2026-11-05 14:50:50 [ERROR] [Query] Transport finalized with pending requests rejected {"pendingControl":1,"pendingMcp":0,"error":"Transport closed before control response"}
2026-11-05 14:50:50 [ERROR] [Query] Transport finalized with pending requests rejected {"pendingControl":1,"pendingMcp":0,"error":"transport read crashed"}
2026-11-05 14:50:50 [ERROR] [Query] Transport finalized with pending requests rejected {"pendingControl":0,"pendingMcp":1,"error":"Transport closed before control response"}
2026-11-05 14:50:50 [ERROR] [Query] Control response error for request dc8b041c-b0f9-4b85-9037-9c03b34b2a29: no turn to continue
 ✓ test/query.test.ts  (7 tests) 30ms
 ✓ test/unit/negotiateTransport.test.ts  (15 tests) 26ms
 ✓ test/unit/AcpEventDenormalizer.test.ts  (20 tests) 4ms
 ✓ test/unit/Stream.test.ts  (22 tests) 9ms
 ✓ test/unit/transcriptStoreChanges.test.ts  (11 tests) 7ms
 ✓ test/unit/queryOptionsSchema.test.ts  (81 tests) 7ms
 ✓ test/unit/DaemonClientLive.test.ts  (3 tests) 6ms
 ✓ test/unit/createQuery.test.ts  (5 tests) 14ms
 ✓ test/unit/isSubagentSessionNotFound.test.ts  (15 tests) 1ms
 ✓ test/unit/serve-bridge-bin.test.ts  (2 tests) 71ms
 ✓ test/unit/SessionSources.test.ts  (2 tests) 5ms
 ✓ test/unit/sessionPr.test.ts  (4 tests) 2ms
 ✓ test/unit/daemon-transports-surface.test.ts  (4 tests) 2ms
 ✓ test/unit/DaemonWorkspaceManagement.test.ts  (1 test) 5ms
 ✓ test/unit/approval-mode-drift.test.ts  (1 test) 1ms
 ✓ test/unit/acpTransportUtils.test.ts  (3 tests) 1ms
 ✓ test/unit/daemon-pending-interaction-types.test.ts  (1 test) 1ms

 Test Files  39 passed (39)
      Tests  1842 passed (1842)
   Start at  14:50:07
   Duration  47.78s (transform 2.41s, setup 3ms, collect 4.11s, tests 40.54s, environment 3ms, prepare 1.12s)

npm notice run qwen-code-vscode-ide-companion@0.23.3 test

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

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)

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...

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)

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 > writes webview log messages through the extension host logger
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > writes webview log messages through the extension host logger
[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)

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

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)

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)

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)

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)

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)

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)

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)

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/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)

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)

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 > settles a matching pending permission when the tool call becomes terminal
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > settles a matching pending permission when the tool call becomes terminal
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > rejects one workflow approval without cancelling the parent prompt
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > rejects one workflow approval without cancelling the parent prompt
[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)

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)

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

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider transcript forwarding > forwards agent transcriptUpdate notifications to the webview
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider transcript forwarding > forwards agent transcriptUpdate notifications to the webview
[WebViewProvider] Attempting connection...

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 > WebViewProvider initial model inheritance > does not apply a discontinued initial model to the new session
[WebViewProvider] Initializing with new session (skipping restoration)

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > does not apply a discontinued initial model to the new session
[WebViewProvider] ACP session created successfully

stderr | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > does not apply a discontinued initial model to the new session
[WebViewProvider] Skipping discontinued initial model: qwen3-coder-plus(qwen-oauth)

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > does not apply a discontinued initial model to the new session
[WebViewProvider] Initializing empty conversation

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > does not apply a discontinued initial model to the new session
[WebViewProvider] Empty conversation initialized: null

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > still applies a runtime snapshot id that wraps a discontinued model
[WebViewProvider] Initializing with new session (skipping restoration)

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > still applies a runtime snapshot id that wraps a discontinued model
[WebViewProvider] ACP session created successfully

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > still applies a runtime snapshot id that wraps a discontinued model
[WebViewProvider] Initializing empty conversation

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > still applies a runtime snapshot id that wraps a discontinued model
[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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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...

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/providers/WebViewProvider.test.ts > WebViewProvider.handleAuthInteractive credential rollback > disconnects the agent after rolling back rejected credentials
[WebViewProvider] authInteractive: provider=deepseek, host=api.deepseek.com

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/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:2201:13
    at mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:1466:9)
    at WebViewProvider.handleAuthInteractive (/startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.ts:1518:9)
    at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.test.ts:2217: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:2254:13)
    at WebViewProvider.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:1503:18)
    at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.test.ts:2257: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:2201:13
    at mockCall (file:///startdir/src/qwen-code/node_modules/vitest/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:1466:9)
    at WebViewProvider.handleAuthInteractive (/startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.ts:1540:7)
    at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.test.ts:2257: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 web-shell daemon bootstrap > canonicalizes a symlinked workspace before bootstrapping the daemon
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell daemon bootstrap > canonicalizes a symlinked workspace before bootstrapping the daemon
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell daemon bootstrap > ships restorable legacy conversation ids in the bootstrap payload
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell daemon bootstrap > ships restorable legacy conversation ids in the bootstrap payload
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell daemon bootstrap > omits the legacy allowlist when no restorable conversation exists
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell daemon bootstrap > omits the legacy allowlist when no restorable conversation exists
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell daemon bootstrap > restores a session id persisted under the pre-canonicalization key
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell daemon bootstrap > restores a session id persisted under the pre-canonicalization key
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell daemon bootstrap > keeps the binding when the bootstrap is interrupted before the echo
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell daemon bootstrap > keeps the binding when the bootstrap is interrupted before the echo
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell daemon bootstrap > does not let the alias id overwrite an existing canonical one
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell daemon bootstrap > does not let the alias id overwrite an existing canonical one
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell daemon bootstrap > leaves the stored id alone when the folder is not symlinked
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell daemon bootstrap > leaves the stored id alone when the folder is not symlinked
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell daemon bootstrap > surfaces the failure to an attached webview when another host switches the shared daemon workspace
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell daemon bootstrap > surfaces the failure to an attached webview when another host switches the shared daemon workspace
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell daemon bootstrap > surfaces the failure to an attached webview when another host switches the shared daemon workspace
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell daemon bootstrap > surfaces the failure to an attached webview when another host switches the shared daemon workspace
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell daemon bootstrap > does not notify a host about a workspace switch it triggers itself
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell daemon bootstrap > does not notify a host about a workspace switch it triggers itself
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell daemon bootstrap > keeps notifying live hosts after another host disposes
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell daemon bootstrap > keeps notifying live hosts after another host disposes
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell daemon bootstrap > keeps notifying live hosts after another host disposes
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell daemon bootstrap > keeps notifying live hosts after another host disposes
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell permission bridge > routes accept to the request-owner webview
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)
[WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell permission bridge > routes accept to the request-owner webview
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell permission bridge > routes cancel as a reject decision
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell permission bridge > routes cancel as a reject decision
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell permission bridge > does not vote when a diff command has no exact request id
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell permission bridge > does not vote when a diff command has no exact request id
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell permission bridge > does not route an unknown request id to the active webview
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell permission bridge > does not route an unknown request id to the active webview
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell permission bridge > does not vote when the trigger is the original workspace file
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell permission bridge > does not vote when the trigger is the original workspace file
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell permission bridge > does not vote before permission ownership state arrives
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell permission bridge > does not vote before permission ownership state arrives
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell permission bridge > reports hasPendingPermission from the webview-pushed state
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell permission bridge > reports hasPendingPermission from the webview-pushed state
[WebViewProvider] Attempting connection...

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell permission bridge > clears the pending flag when the hosting view is disposed
[WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar)

stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider web-shell permission bridge > clears the pending flag when the hosting view is disposed
[WebViewProvider] Attempting connection...

 ✓ src/webview/providers/WebViewProvider.test.ts (72 tests) 1600ms
   ✓ WebViewProvider.handleAuthInteractive credential rollback > restores the snapshot when the reconnect leaves authState !== true  303ms
   ✓ WebViewProvider.handleAuthInteractive credential rollback > disconnects the agent after rolling back rejected credentials  302ms
   ✓ WebViewProvider.handleAuthInteractive credential rollback > does NOT restore when the reconnect authenticates (authState === true)  303ms
   ✓ WebViewProvider.handleAuthInteractive credential rollback > swallows a rollback write failure so the authError message still sends  309ms
   ✓ WebViewProvider.handleAuthInteractive credential rollback > rolls back + disconnects + reports authError when doInitializeAgentConnection throws (outer catch)  303ms
stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > sends inline file contents to ACP without exposing them in the user display
[SessionMessageHandler] handleSendMessage called { textLength: 24, attachmentCount: 0 }

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > sends inline file contents to ACP without exposing them in the user display
[SessionMessageHandler] No active conversation, creating one...

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > sends inline files when the user text is empty
[SessionMessageHandler] handleSendMessage called { textLength: 0, attachmentCount: 0 }

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > sends inline files when the user text is empty
[SessionMessageHandler] No active conversation, creating one...

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 { textLength: 0, attachmentCount: 1 }

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 { textLength: 6, attachmentCount: 1 }

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 > echoes the user prompt into the ACP transcript as a user_message_chunk
[SessionMessageHandler] handleSendMessage called { textLength: 16, attachmentCount: 0 }

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > echoes the user prompt into the ACP transcript as a user_message_chunk
[SessionMessageHandler] No active conversation, creating one...

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > echoes attached prompt images into the transcript as inline image chunks
[SessionMessageHandler] handleSendMessage called { textLength: 12, attachmentCount: 1 }

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > echoes attached prompt images into the transcript as inline image chunks
[SessionMessageHandler] No active conversation, creating one...

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > keeps the send flowing when a prompt image cannot be read back for the echo
[SessionMessageHandler] handleSendMessage called { textLength: 12, attachmentCount: 0 }

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > keeps the send flowing when a prompt image cannot be read back for the echo
[SessionMessageHandler] No active conversation, creating one...

stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > keeps the send flowing when a prompt image cannot be read back for the echo
[SessionMessageHandler] Failed to read image for transcript echo: /tmp/clipboard/clipboard-1.png Error: ENOENT
    at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/handlers/SessionMessageHandler.test.ts:540:50
    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 > skips oversized context images without reading them into memory
[SessionMessageHandler] handleSendMessage called { textLength: 13, attachmentCount: 0 }

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > skips oversized context images without reading them into memory
[SessionMessageHandler] No active conversation, creating one...

stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > skips oversized context images without reading them into memory
[SessionMessageHandler] Skipping oversized image for transcript echo: /workspace/huge.tiff 10485761

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > sends image file context as prompt image blocks
[SessionMessageHandler] handleSendMessage called { textLength: 11, attachmentCount: 0 }

stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > sends image file context as prompt image blocks
[SessionMessageHandler] Failed to read image for transcript echo: /workspace/screen shot.png Error: ENOENT
    at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/handlers/SessionMessageHandler.test.ts:540:50
    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 > does not switch to a colliding ACP session id when rename fails
[SessionMessageHandler] handleSendMessage called { textLength: 12, attachmentCount: 0 }

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 { textLength: 12, attachmentCount: 0 }

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 > 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:843: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 > publishes the fresh ACP session id as liveSessionId in the load-failure fallback boundary
[SessionMessageHandler] Switching to session: archived-session

stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > publishes the fresh ACP session id as liveSessionId in the load-failure fallback boundary
[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:896: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 > publishes the live session id on the first-send conversationLoaded boundary
[SessionMessageHandler] handleSendMessage called { textLength: 5, attachmentCount: 0 }

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > publishes the live session id on the first-send conversationLoaded boundary
[SessionMessageHandler] No active conversation, creating one...

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 { textLength: 12, attachmentCount: 0 }

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > prefers the active ACP session id over the local conversation id when exporting
[SessionMessageHandler] handleSendMessage called { textLength: 12, attachmentCount: 0 }

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > canonicalizes the workspace fallback before exporting
[SessionMessageHandler] handleSendMessage called { textLength: 12, attachmentCount: 0 }

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > still exports when the workspace folder no longer resolves
[SessionMessageHandler] handleSendMessage called { textLength: 12, attachmentCount: 0 }

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > surfaces a non-ENOENT workspace realpath failure instead of exporting
[SessionMessageHandler] handleSendMessage called { textLength: 12, attachmentCount: 0 }

stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > surfaces a non-ENOENT workspace realpath failure instead of exporting
[SessionMessageHandler] Failed to export session: Error: EACCES: permission denied, realpath '/workspace'
    at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/handlers/SessionMessageHandler.test.ts:1187:9
    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) {
  code: 'EACCES'
}

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > reports bare /export as a missing subcommand instead of exporting
[SessionMessageHandler] handleSendMessage called { textLength: 7, attachmentCount: 0 }

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > reports export failures back to the user
[SessionMessageHandler] handleSendMessage called { textLength: 10, attachmentCount: 0 }

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:1258: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 > tags the timeout message localOnly so the notice slot renders it
[SessionMessageHandler] handleSendMessage called { textLength: 5, attachmentCount: 0 }

stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > tags the timeout message localOnly so the notice slot renders it
[SessionMessageHandler] Error sending message: Error: Request timeout
    at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/handlers/SessionMessageHandler.test.ts:1307: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)
[SessionMessageHandler] Request timed out; suppressing popup

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > re-surfaces the user message as a local notice when the agent is not connected
[SessionMessageHandler] handleSendMessage called { textLength: 5, attachmentCount: 0 }

stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > re-surfaces the user message as a local notice when the agent is not connected
[SessionMessageHandler] Agent not connected

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > re-surfaces the user message as a local notice when session creation fails
[SessionMessageHandler] handleSendMessage called { textLength: 5, attachmentCount: 0 }

stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > re-surfaces the user message as a local notice when session creation fails
[SessionMessageHandler] Failed to create session before sending message: Error: spawn failed
    at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/handlers/SessionMessageHandler.test.ts:1398:51
    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 { textLength: 12, attachmentCount: 0 }

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)

stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > preserves the drive-letter colon in Windows exported file links
[SessionMessageHandler] handleSendMessage called { textLength: 10, attachmentCount: 0 }

 ✓ src/webview/handlers/SessionMessageHandler.test.ts (31 tests) 20ms
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' }

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' }

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/services/daemonIdeConnection.test.ts (19 tests) 37ms
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-EBSg85/.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:186:17)
    at createFileSettingsAdapter (/startdir/src/qwen-code/packages/vscode-ide-companion/src/services/settingsWriter.ts:438:14)
    at Module.applyProviderInstallPlanToFile (/startdir/src/qwen-code/packages/vscode-ide-companion/src/services/settingsWriter.ts:547:20)
    at /startdir/src/qwen-code/packages/vscode-ide-companion/src/services/settingsWriter.test.ts:300: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-iWJEUP/.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:186:17)
    at Module.snapshotSettingsForRollback (/startdir/src/qwen-code/packages/vscode-ide-companion/src/services/settingsWriter.ts:565:28)
    at /startdir/src/qwen-code/packages/vscode-ide-companion/src/services/settingsWriter.test.ts:457: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 (18 tests) 15ms
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/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 the active group when neither neighbor exists
[FileMessageHandler] Created and opened readonly file: [object Object] in viewColumn: -1

 ✓ src/webview/handlers/FileMessageHandler.test.ts (10 tests) 8ms
 ✓ src/services/qwenSessionUpdateHandler.test.ts (19 tests) 8ms
 ✓ src/ide-server.test.ts (13 tests | 1 skipped) 46ms
 ✓ src/open-files-manager.test.ts (17 tests) 11ms
 ✓ src/extension.test.ts (15 tests) 25ms
 ✓ src/webview/handlers/AuthMessageHandler.test.ts (11 tests) 7ms
 ✓ scripts/generate-notices.test.js (25 tests) 13ms
 ✓ src/utils/paths.test.ts (18 tests) 6ms
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 session: 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 session: session-2
[QwenAgentManager] New session created with ID: session-2

stdout | src/services/qwenAgentManager.test.ts > QwenAgentManager.getSessionMessages > projects UserPromptSubmit provenance while mapping JSONL history
[QwenAgentManager] Session list item for filePath lookup: {
  id: 'session-1',
  sessionId: 'session-1',
  filePath: '/tmp/qwen-agent-manager-vyuvoR/session.jsonl'
}

stdout | src/services/qwenAgentManager.test.ts > QwenAgentManager.getSessionMessages > projects UserPromptSubmit provenance while mapping JSONL history
[QwenAgentManager] JSONL records read: 1 /tmp/qwen-agent-manager-vyuvoR/session.jsonl
[QwenAgentManager] JSONL messages reconstructed: 1

 ✓ src/services/qwenAgentManager.test.ts (12 tests) 8ms
stdout | src/services/acpConnection.test.ts > AcpConnection process spawning > runs the managed ACP child in Electron Node mode
[ACP] Spawning command: /usr/bin/node /usr/bin/node --acp --channel=VSCode

 ✓ src/services/acpConnection.test.ts (18 tests) 5ms
 ✓ src/webview/utils/copyTranscript.test.ts (19 tests) 4ms
 ✓ src/commands/index.test.ts (8 tests) 4ms
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:111: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 (13 tests) 8ms
 ✓ src/utils/acpModelInfo.test.ts (15 tests) 4ms
 ✓ src/services/qwenDaemonProcess.test.ts (7 tests) 5ms
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/conversationStore.test.ts (8 tests) 5ms
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) 6ms
 ✓ src/services/sessionExportService.test.ts (9 tests) 5ms
 ✓ src/utils/tokenLimits.test.ts (15 tests) 4ms
 ✓ src/diff-manager.test.ts (5 tests) 5ms
 ✓ src/utils/editorGroupUtils.test.ts (12 tests) 3ms
 ✓ src/webview/providers/WebViewContent.test.ts (11 tests) 3ms
 ✓ src/webview/utils/discontinuedModel.test.ts (13 tests) 3ms
 ✓ src/utils/logger.test.ts (5 tests) 5ms
 ✓ src/services/subscriptionPlanDefinitions.test.ts (3 tests) 4ms
 ✓ src/webview/hooks/useVSCode.test.ts (3 tests) 7ms
 ✓ src/services/qwenSessionReader.test.ts (1 test) 5ms
 ✓ src/services/qwenTranscriptText.test.ts (4 tests) 2ms
 ✓ src/package.test.ts (3 tests) 2ms
 ✓ src/webview/providers/ChatWebviewViewProvider.test.ts (2 tests) 2ms
 ✓ src/webview/providers/ChatProviderRegistry.test.ts (2 tests) 2ms
 ✓ src/utils/imageSupport.bundle.test.ts (2 tests) 580ms
   ✓ imageSupport browser bundling > does not leave qwen-code-core runtime imports in the embedded webview bundle  572ms
 ✓ src/webview/providers/chatViewRegistration.test.ts (1 test) 2ms
 ✓ src/utils/imageSupport.test.ts (2 tests) 2ms
 ✓ src/utils/file-path.test.ts (4 tests) 1ms
 ✓ src/utils/errorMessage.test.ts (2 tests) 1ms
stderr | src/webview/EmbeddedApp.test.tsx > EmbeddedApp host wiring > routes auth and session-change host actions to the extension
An update to EmbeddedApp 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 EmbeddedApp 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

 ✓ src/webview/EmbeddedApp.test.tsx (20 tests) 229ms
 ✓ src/webview/components/SessionHistoryDropdown.test.tsx (3 tests) 52ms
 ✓ src/webview/utils/fileLinks.test.ts (16 tests) 4ms
 ✓ src/webview/strings.test.ts (2 tests) 2ms

 Test Files  44 passed (44)
      Tests  516 passed | 1 skipped (517)
   Start at  14:50:55
   Duration  22.13s (transform 2.22s, setup 0ms, collect 13.92s, tests 2.77s, environment 654ms, prepare 1.60s)

npm notice run @qwen-code/web-shell@0.23.3 test

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

stderr | App.test.tsx > artifact panel fullscreen > releases plan handoff after mode or permission failure so both controls can retry
[web-shell] mode failed Error: mode failed
    at /startdir/src/qwen-code/packages/web-shell/client/App.test.tsx:7383:7
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20

stderr | App.test.tsx > artifact panel fullscreen > releases plan handoff after mode or permission failure so both controls can retry
[web-shell] permission failed Error: permission failed
    at /startdir/src/qwen-code/packages/web-shell/client/App.test.tsx:7390:7
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20

stderr | App.test.tsx > artifact panel fullscreen > rethrows a rejected permission submission so the overlay re-arms
[web-shell] daemon unavailable Error: daemon unavailable
    at /startdir/src/qwen-code/packages/web-shell/client/App.test.tsx:7488:21
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
An update to App 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 | App.test.tsx > App shell command queueing > reports an error and skips the command when session creation fails
[web-shell] no session Error: no session
    at /startdir/src/qwen-code/packages/web-shell/client/App.test.tsx:12044:7
    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)

stderr | App.test.tsx > App shell command queueing > continues draining after a command fails
[web-shell] boom Error: boom
    at /startdir/src/qwen-code/packages/web-shell/client/App.test.tsx:12579:30
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20

stderr | App.test.tsx > App session callbacks > waits for session loading to finish before requesting status
An update to App 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 | App.test.tsx > App session callbacks > waits for session loading to finish before requesting status
An update to App 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 App 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 | App.test.tsx > App session callbacks > uses the session catalog title when the connection has no display name
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > uses the session catalog title when the connection has no display name
An update to App 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 App 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 | App.test.tsx > App session callbacks > uses the session catalog title when the connection has no display name
An update to Popper 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 Presence 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 | App.test.tsx > App session callbacks > does not query a workspace catalog for a Live session title
An update to App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > keeps the persistent chat header opt-in for existing integrations
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > keeps the persistent chat header opt-in for existing integrations
An update to App 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 App 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 | App.test.tsx > App session callbacks > shows the Plan entry only when explicitly configured and hides it on removal
An update to App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > shows the Plan entry only when explicitly configured and hides it on removal
An update to App 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 App 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 | App.test.tsx > App session callbacks > appends composer actions without replacing context-sensitive defaults
An update to App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > lets a custom renderer replace the complete persistent chat header
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > lets a custom renderer replace the complete persistent chat header
An update to App 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 App 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 | App.test.tsx > App session callbacks > keeps legacy task status for a custom header without explicit header configuration
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > keeps legacy task status for a custom header without explicit header configuration
An update to App 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 App 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 | App.test.tsx > App session callbacks > controls the built-in chat header actions through header items
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > controls the built-in chat header actions through header items
An update to App 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 App 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 | App.test.tsx > App session callbacks > hides the complete chat header when header items are empty
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > hides the complete chat header when header items are empty
An update to App 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 App 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 | App.test.tsx > App session callbacks > opens environment information without restoring composer Git information
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > opens environment information without restoring composer Git information
An update to App 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 App 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 | App.test.tsx > App session callbacks > keeps the right-panel action visible and opens a review-only empty state
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > keeps the right-panel action visible and opens a review-only empty state
An update to App 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 App 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 | App.test.tsx > App session callbacks > shows the manual terminal action when configured and advertised
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > shows the manual terminal action when configured and advertised
An update to App 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 App 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 | App.test.tsx > App session callbacks > hides the manual terminal action without the capability
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > hides the manual terminal action without the capability
An update to App 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 App 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 | App.test.tsx > App session callbacks > hides the manual terminal action when it is not configured
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > hides the manual terminal action when it is not configured
An update to App 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 App 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 | App.test.tsx > App session callbacks > opens the latest reviewable turn from the empty right panel
An update to App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > opens the latest reviewable turn from the empty right panel
An update to App 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 App 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 | App.test.tsx > App session callbacks > floats environment information in ultrawide mode
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > floats environment information in ultrawide mode
An update to App 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 App 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 | App.test.tsx > App session callbacks > keeps the environment action visible without dynamic activity
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > keeps the environment action visible without dynamic activity
An update to App 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 App 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 | App.test.tsx > App session callbacks > keeps the environment action visible for a clean working tree
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > keeps the environment action visible for a clean working tree
An update to App 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 App 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 | App.test.tsx > App session callbacks > shows the environment action for a background task in the transcript
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > shows the environment action for a background task in the transcript
An update to App 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 App 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 | App.test.tsx > App session callbacks > opens an environment monitor in the right panel
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > opens an environment monitor in the right panel
An update to App 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 App 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 | App.test.tsx > App session callbacks > opens an environment shell task in the right panel
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > opens an environment shell task in the right panel
An update to App 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 App 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 | App.test.tsx > App session callbacks > restores the environment panel open state per session
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > restores the environment panel open state per session
An update to App 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 App 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 | App.test.tsx > App session callbacks > updates the header when session metadata supplies a generated title
An update to App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > updates the header when session metadata supplies a generated title
An update to App 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 App 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 | App.test.tsx > App session callbacks > stops refreshing the generated title after the catalog resolves it
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > stops refreshing the generated title after the catalog resolves it
An update to App 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 App 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 | App.test.tsx > App session callbacks > stops refreshing the generated title after the catalog resolves it
An update to Popper 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 Presence 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 | App.test.tsx > App session callbacks > defers title refresh while the page is hidden
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > defers title refresh while the page is hidden
An update to App 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 App 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 | App.test.tsx > App session callbacks > defers title refresh while the page is hidden
An update to Popper 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 Presence 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 | App.test.tsx > App session callbacks > keeps a newer standalone draft when an older session load fails
[web-shell] stale load failed Error: stale load failed
    at /startdir/src/qwen-code/packages/web-shell/client/App.test.tsx:15852:19
    at Proxy.process.env.NODE_ENV.exports.act (/startdir/src/qwen-code/node_modules/react/cjs/react.development.js:814:22)
    at /startdir/src/qwen-code/packages/web-shell/client/App.test.tsx:15851:11
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20

stderr | App.test.tsx > App session callbacks > closes the Add workspace dialog when navigation enters a standalone chat
An update to App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > closes workspace model settings when navigation enters a standalone chat
An update to App 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 | App.test.tsx > App session callbacks > rejects when the daemon does not confirm persistent registration
An update to App 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 | App.test.tsx > App session callbacks > rejects when the daemon does not confirm persistent registration
An update to App 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 | App.test.tsx > App session callbacks > surfaces an inline error when an added folder cannot refresh capabilities
An update to App 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 | App.test.tsx > App session callbacks > surfaces an inline error when an added folder cannot refresh capabilities
[web-shell] refresh failed Error: refresh failed
    at /startdir/src/qwen-code/packages/web-shell/client/App.test.tsx:16761:7
    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)
An update to App 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 | App.test.tsx > App session callbacks > surfaces an inline error when an added folder cannot refresh capabilities
An update to App 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 | App.test.tsx > App session callbacks > retries only capability refresh after a committed scratch cannot reconcile
[web-shell] refresh failed Error: refresh failed
    at /startdir/src/qwen-code/packages/web-shell/client/App.test.tsx:16802:30
    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)

stderr | App.test.tsx > App session callbacks > rejects an untrusted draft workspace before its cleanup effect runs
An update to App 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 App 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 App 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 | App.test.tsx > App session callbacks > rejects an untrusted draft workspace before its cleanup effect runs
[web-shell] The selected workspace is unavailable or untrusted Error: The selected workspace is unavailable or untrusted
    at /startdir/src/qwen-code/packages/web-shell/client/App.tsx:9368:15
    at /startdir/src/qwen-code/packages/web-shell/client/App.tsx:9464:5
    at /startdir/src/qwen-code/packages/web-shell/client/App.tsx:9674:36
    at submitPromptFromEditor (/startdir/src/qwen-code/packages/web-shell/client/App.tsx:14011:9)
    at Object.current (/startdir/src/qwen-code/packages/web-shell/client/App.tsx:15108:16)
    at Object.onSubmit (/startdir/src/qwen-code/packages/web-shell/client/App.tsx:15191:40)
    at /startdir/src/qwen-code/packages/web-shell/client/App.test.tsx:17187:40
    at Proxy.process.env.NODE_ENV.exports.act (/startdir/src/qwen-code/node_modules/react/cjs/react.development.js:814:22)
    at /startdir/src/qwen-code/packages/web-shell/client/App.test.tsx:17186:5
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20

stderr | App.test.tsx > App session callbacks > keeps composer git status stable across an equivalent refresh
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > keeps composer git status stable across an equivalent refresh
An update to App 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 App 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 | App.test.tsx > App session callbacks > keeps composer git status stable across an equivalent refresh
An update to Popper 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 Presence 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 | App.test.tsx > App session callbacks > removes declaration-only enables from a mixed pending mutation
An update to App 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 App 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 | App.test.tsx > App session callbacks > removes declaration-only enables from a mixed pending mutation
An update to App 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 | App.test.tsx > App session callbacks > revalidates a partial Skill mutation only within its workspace
An update to App 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 App 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 | App.test.tsx > App session callbacks > revalidates a partial Skill mutation only within its workspace
An update to App 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 | App.test.tsx > App session callbacks > revalidates a partial Skill mutation only within its workspace
An update to App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > revalidates a partial Skill mutation only within its workspace
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > revalidates a partial Skill mutation only within its workspace
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > revalidates a partial Skill mutation only within its workspace
An update to App 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 App 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 App 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 | App.test.tsx > App session callbacks > revalidates a partial Skill mutation only within its workspace
An update to Popper 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 Presence 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 | App.test.tsx > App session callbacks > revalidates a partial Skill mutation only within its workspace
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > revalidates a partial Skill mutation only within its workspace
An update to App 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 App 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 App 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 | App.test.tsx > App session callbacks > revalidates a partial Skill mutation only within its workspace
An update to Popper 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 Presence 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 | App.test.tsx > App session callbacks > keeps an automatic recap when an existing-session switch fails
[web-shell] target restore failed Error: target restore failed
    at /startdir/src/qwen-code/packages/web-shell/client/App.test.tsx:19499:7
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20

stderr | App.test.tsx > App session callbacks > renames a /clear successor from persisted manual title provenance
An update to App 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 App 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 App 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 | App.test.tsx > App session callbacks > renames a /clear successor from persisted manual title provenance
An update to App 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 | App.test.tsx > App session callbacks > renames a /clear successor from persisted manual title provenance
An update to App 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 App 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 | App.test.tsx > App session callbacks > attaches a /clear successor when carrying its title fails
An update to App 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 App 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 App 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 | App.test.tsx > App session callbacks > attaches a /clear successor when carrying its title fails
An update to App 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 | App.test.tsx > App session callbacks > attaches a /clear successor when carrying its title fails
An update to App 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 App 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 | App.test.tsx > App session callbacks > does not carry an automatic title across /clear
An update to App 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 App 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 App 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 | App.test.tsx > App session callbacks > does not carry an automatic title across /clear
An update to App 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 | App.test.tsx > App session callbacks > does not carry an automatic title across /clear
An update to App 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 App 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 | App.test.tsx > App session callbacks > discards an armed /clear carry when a shrink-fold lands on a split pane
An update to App 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 App 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 App 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 | App.test.tsx > App session callbacks > discards an armed /clear carry when a shrink-fold lands on a split pane
An update to App 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 | App.test.tsx > App session callbacks > discards an armed /clear carry when a shrink-fold lands on a split pane
An update to App 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 App 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 | App.test.tsx > App session callbacks > does not notify session change when missing-session new chat fails
[web-shell] network Error: network
    at /startdir/src/qwen-code/packages/web-shell/client/App.test.tsx:20145:59
    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)

stderr | App.test.tsx > App session callbacks > cancels a default submission when navigation occurs during session preparation
An update to App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > commits the first prompt after creating its session
An update to App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > commits the first prompt after creating its session
An update to App 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 App 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 | App.test.tsx > App session callbacks > commits the first prompt after creating its session
An update to App 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 App 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 App 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 | App.test.tsx > App session callbacks > commits the first prompt after creating its session
An update to App 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 | App.test.tsx > App session callbacks > commits the first prompt after creating its session
An update to App 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 | App.test.tsx > App session callbacks > commits the first prompt after creating its session
An update to Popper 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 Presence 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 | App.test.tsx > App session callbacks > lets a selected session bypass a stale preparation promise
[web-shell] Session changed before attach: expected session-created, found session-selected Error: Session changed before attach: expected session-created, found session-selected
    at createAndAttachSessionForPrompt (/startdir/src/qwen-code/packages/web-shell/client/utils/sessionPreparation.ts:139:13)
    at /startdir/src/qwen-code/packages/web-shell/client/App.tsx:9380:9

stderr | App.test.tsx > App session callbacks > lets a selected session bypass creation before its id is allocated
[web-shell] Session changed before attach: expected session-created, found session-selected Error: Session changed before attach: expected session-created, found session-selected
    at createAndAttachSessionForPrompt (/startdir/src/qwen-code/packages/web-shell/client/utils/sessionPreparation.ts:139:13)
    at /startdir/src/qwen-code/packages/web-shell/client/App.tsx:9380:9

stderr | App.test.tsx > App session callbacks > clears a shared rejected preparation so a later submit can retry
[web-shell] create failed Error: create failed
    at /startdir/src/qwen-code/packages/web-shell/client/App.test.tsx:23102:26
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20
[web-shell] create failed Error: create failed
    at /startdir/src/qwen-code/packages/web-shell/client/App.test.tsx:23102:26
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20

stderr | App.test.tsx > App session callbacks > reports a host slash command error and continues default handling
[web-shell] host handler exploded Error: host handler exploded
    at /startdir/src/qwen-code/packages/web-shell/client/App.test.tsx:25204:19
    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)

stderr | App.test.tsx > App session callbacks > dispatches turn_complete only for the session that was streaming
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > dispatches turn_complete only for the session that was streaming
An update to App 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 App 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 | App.test.tsx > App session callbacks > captures a main-session workspace that becomes available mid-turn
An update to App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > captures a main-session workspace that becomes available mid-turn
An update to App 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 App 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 | App.test.tsx > App session callbacks > reports failure when the current session cannot be cleared
[web-shell] locked Error: locked
    at /startdir/src/qwen-code/packages/web-shell/client/App.test.tsx:27658:59
    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)

stderr | App.test.tsx > App session callbacks > routes a split pane review download through its stamped workspace identity
Error: Not implemented: navigation (except hash changes)
    at module.exports (/startdir/src/qwen-code/node_modules/jsdom/lib/jsdom/browser/not-implemented.js:9:17)
    at navigateFetch (/startdir/src/qwen-code/node_modules/jsdom/lib/jsdom/living/window/navigation.js:77:3)
    at exports.navigate (/startdir/src/qwen-code/node_modules/jsdom/lib/jsdom/living/window/navigation.js:55:3)
    at Timeout._onTimeout (/startdir/src/qwen-code/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHyperlinkElementUtils-impl.js:80:7)
    at listOnTimeout (node:internal/timers:685:17)
    at processTimers (node:internal/timers:618:7) undefined

stderr | App.test.tsx > App session callbacks > routes AskUserQuestion submission errors to an error toast
[web-shell] Submit option is unavailable Error: Submit option is unavailable
    at /startdir/src/qwen-code/packages/web-shell/client/App.test.tsx:31246:9
    at Proxy.process.env.NODE_ENV.exports.act (/startdir/src/qwen-code/node_modules/react/cjs/react.development.js:814:22)
    at /startdir/src/qwen-code/packages/web-shell/client/App.test.tsx:31244:5
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20

stderr | App.test.tsx > App session callbacks > does not report an existing title loaded during a session switch as a rename
An update to App 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 | App.test.tsx > App session callbacks > does not report an existing title loaded during a session switch as a rename
An update to App 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 App 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 | App.test.tsx > App session callbacks > does not report an existing title when the same session id changes workspace
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > App session callbacks > does not report an existing title when the same session id changes workspace
An update to App 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 App 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 | App.test.tsx > App session callbacks > reports a recovered standalone load failure without reverting to archived
[web-shell] load failed Error: load failed
    at /startdir/src/qwen-code/packages/web-shell/client/App.test.tsx:32492:54
    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)

stderr | App.test.tsx > App prompt send failure retry > keeps an unknown lazy-session admission scoped to its allocated session
An update to App 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 App 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 App 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 | App.test.tsx > App prompt send failure retry > keeps an unknown lazy-session admission scoped to its allocated session
An update to App 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 | App.test.tsx > App prompt send failure retry > keeps an unknown lazy-session admission scoped to its allocated session
An update to App 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 App 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 | App.test.tsx > App /goal command > drops a lazy /goal create when another session wins allocation
[web-shell] Session changed while attaching: expected session-created, found other-session Error: Session changed while attaching: expected session-created, found other-session
    at createAndAttachSessionForPrompt (/startdir/src/qwen-code/packages/web-shell/client/utils/sessionPreparation.ts:151:13)
    at /startdir/src/qwen-code/packages/web-shell/client/App.tsx:9380:9

stderr | App.test.tsx > App /goal command > keeps a Goal control busy latch owned by its own session
[web-shell] The goal is no longer available. Error: The goal is no longer available.
    at /startdir/src/qwen-code/packages/web-shell/client/App.tsx:13660:17

stderr | App.test.tsx > App /goal command > rejects a Goal edit when the same session replaces the goal
[web-shell] The goal is no longer available. Error: The goal is no longer available.
    at /startdir/src/qwen-code/packages/web-shell/client/App.tsx:13652:17

stderr | App.test.tsx > App /goal command > forgets a rejected goal session after leaving the Goals page
An update to App 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 App 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 App 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 App 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 | App.test.tsx > App /goal command > forgets a rejected goal session after leaving the Goals page
An update to App 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 App 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 | App.test.tsx > App /goal command > forgets a rejected goal session after leaving the Goals page
An update to App 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 | App.test.tsx > App /goal command > forgets a rejected goal session after leaving the Goals page
An update to App 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 | App.test.tsx > App /goal command > does not reuse a session selected while goal creation is in flight
An update to App 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 App 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 App 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 App 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 | App.test.tsx > App /goal command > does not reuse a session selected while goal creation is in flight
An update to App 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 App 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 | App.test.tsx > App /goal command > does not reuse a session selected while goal creation is in flight
An update to App 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 | App.test.tsx > App /goal command > does not reuse a session selected while goal creation is in flight
An update to App 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 | App.test.tsx > App /goal command > does not dispatch a Goal control after the session changes during refresh
[web-shell] The goal is no longer available. Error: The goal is no longer available.
    at /startdir/src/qwen-code/packages/web-shell/client/App.tsx:13660:17

stderr | App.test.tsx > App /goal command > does not drop the goal into the current session when the new session fails
[web-shell] daemon unreachable Error: daemon unreachable
    at /startdir/src/qwen-code/packages/web-shell/client/App.test.tsx:35625:7
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20

stderr | App.test.tsx > App workflow history entry > does not prime the current chat when workflow session creation fails
[web-shell] boom Error: boom
    at /startdir/src/qwen-code/packages/web-shell/client/App.test.tsx:35719:59
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20

stderr | App.test.tsx > App manual-run orchestration (scheduled tasks) > "create via chat" does NOT prime the composer when the new session fails
[web-shell] boom Error: boom
    at /startdir/src/qwen-code/packages/web-shell/client/App.test.tsx:36172:59
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20

stderr | App.test.tsx > fileUploadEnabled customization plumbing > passes the upload drop preference to composers
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > fileUploadEnabled customization plumbing > passes the upload drop preference to composers
An update to App 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 App 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 | App.test.tsx > fileUploadEnabled customization plumbing > passes the attach drop preference to composers
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > fileUploadEnabled customization plumbing > passes the attach drop preference to composers
An update to App 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 App 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 | App.test.tsx > fileUploadEnabled customization plumbing > reaches the composer customization when the host disables upload
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > fileUploadEnabled customization plumbing > reaches the composer customization when the host disables upload
An update to App 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 App 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 | App.test.tsx > fileUploadEnabled customization plumbing > leaves the customization unset when the prop is omitted
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > fileUploadEnabled customization plumbing > leaves the customization unset when the prop is omitted
An update to App 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 App 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 | App.test.tsx > fileUploadEnabled customization plumbing > reaches the composer customization with the upload directory
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > fileUploadEnabled customization plumbing > reaches the composer customization with the upload directory
An update to App 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 App 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 | App.test.tsx > fileUploadEnabled customization plumbing > leaves the upload directory unset when the prop is omitted
An update to App 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 App 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 App 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 App 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 App 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 App 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 App 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 App 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 | App.test.tsx > fileUploadEnabled customization plumbing > leaves the upload directory unset when the prop is omitted
An update to App 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 App 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

 ✓ App.test.tsx (861 tests) 49552ms
stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes idle connection state without auto connect
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not read turn metadata from a legacy daemon
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps the session connected when initial turn metadata fails
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > adds an exact provisional turn after prompt admission
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > skips malformed persisted events while locating a healthy historical turn
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > skips malformed persisted events while locating a healthy historical turn
[DaemonSessionProvider] Skipped malformed navigation history event TypeError: Cannot convert object to primitive value
    at oi (/startdir/src/qwen-code/packages/sdk-typescript/dist/daemon/index.js:10:20410)
    at Za (/startdir/src/qwen-code/packages/sdk-typescript/dist/daemon/index.js:10:17769)
    at yn (/startdir/src/qwen-code/packages/sdk-typescript/dist/daemon/index.js:10:5964)
    at normalizeAndFilterEvent (/startdir/src/qwen-code/packages/web-shell/client/daemon/session/DaemonSessionProvider.tsx:4947:22)
    at Object.materializeTranscriptEvents (/startdir/src/qwen-code/packages/web-shell/client/daemon/session/DaemonSessionProvider.tsx:1309:13)
    at Object.materialize (/startdir/src/qwen-code/packages/web-shell/client/daemon/session/turn-navigation-store.ts:250:23)
    at HistoricalTranscriptPageTable.materializePage (/startdir/src/qwen-code/packages/web-shell/client/daemon/session/transcript-page-table.ts:774:33)
    at HistoricalTranscriptPageTable.admitAnchorPage (/startdir/src/qwen-code/packages/web-shell/client/daemon/session/transcript-page-table.ts:379:31)
    at HistoricalTranscriptPageTable.admitAnchor (/startdir/src/qwen-code/packages/web-shell/client/daemon/session/transcript-page-table.ts:349:19)
    at Object.locateOrdinal (/startdir/src/qwen-code/packages/web-shell/client/daemon/session/turn-navigation-store.ts:877:32)

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not rerender streaming state consumers for equivalent transcript updates
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | 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 | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > resumes standalone sessions through the dedicated route
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps standalone working-directory failures target-scoped
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > fails a Live load once when runtime ownership is ambiguous
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > reloads a controlled standalone session once after a baseUrl change
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > reloads a controlled standalone session once after a baseUrl change
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles a workspace load when the daemon reports a canonical cwd
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4171
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4171
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > forwards the host source type on workspace session restore
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > omits restore-time attribution for standalone sessions
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not inherit a failed controlled target in a baseUrl-only provider
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not inherit a failed controlled target in a baseUrl-only provider
[DaemonSessionProvider] retriable SSE error, preserving session for delta resume (sessionId=undefined)

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

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > surfaces direct standalone create recovery without retrying
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > preserves action-created standalone recovery across baseUrl-only dependency churn
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears stale standalone identity after a plain fresh-create failure
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not restore model preview when live context lacks reasoning capability
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > restores workspace reasoning preview after clearing live context models
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > populates skill slash commands during deferred connect (before first prompt)
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > can send immediately after creating a session from the empty state
[DaemonSessionProvider] SSE stream ended

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > can send immediately after creating a session from the empty state
[DaemonSessionProvider] SSE stream ended

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

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > restores usage-limited semantics from canonical goal state metadata
[DaemonSessionProvider] SSE stream ended

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps legacy aborted semantics without a usage-limited canonical state
[DaemonSessionProvider] SSE stream ended

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

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > prevents double submit while a prompt is running
[DaemonSessionProvider] SSE stream ended

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > returns safe pending prompt results when no session is connected
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes mid-turn message removal through the matching session owner
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > forwards the persisted client id of the target session on cross-session removal
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

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

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not restart the event stream after prompt acceptance by default
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not restart the event stream after prompt acceptance by default
[DaemonSessionProvider] SSE stream ended

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

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

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > preserves the Plan execution mode when prompt restart reuses metadata
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > preserves the Plan execution mode when prompt restart reuses metadata
[DaemonSessionProvider] SSE stream ended

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > preserves live Plan policy when context is rejected and workspace mode is default
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > preserves live Plan policy when context is rejected and workspace mode is default
[DaemonSessionProvider] SSE stream ended

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > preserves live Plan policy when context is missing modes and workspace mode is plan
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > preserves live Plan policy when context is missing modes and workspace mode is plan
[DaemonSessionProvider] SSE stream ended

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > restarts the event stream when aborting the subscription throws
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > restarts the event stream when aborting the subscription throws
[DaemonSessionProvider] SSE stream ended

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > rebuilds the SSE stream immediately when a prompt is submitted while the stream is down
[DaemonSessionProvider] SSE stream ended

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > rebuilds the SSE stream immediately when a prompt is submitted while the stream is down
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > rebuilds the SSE stream immediately when a prompt is submitted while the stream is down
[DaemonSessionProvider] SSE stream ended

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > shows waiting state when a queued prompt starts before assistant output
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > shows waiting state when a queued prompt starts before assistant output
[DaemonSessionProvider] SSE stream ended

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

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

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

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

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

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

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > sends image prompt content through the daemon action
[DaemonSessionProvider] SSE stream ended

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > passes retry prompts through the daemon action
[DaemonSessionProvider] SSE stream ended

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

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

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

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

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > only invalidates session artifacts from standalone session events
[DaemonSessionProvider] SSE stream ended

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

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > only invalidates session artifacts from live session events
[DaemonSessionProvider] SSE stream ended

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

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > deduplicates skill toggle settings events from the generic settings signal
[DaemonSessionProvider] SSE stream ended

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > deduplicates skill toggle settings events from the generic settings signal
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > retains every distinct skill mutation from one replay batch
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > logs settings reloads without inserting daemon debug blocks
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > treats prompt abort during cancel as cancellation and keeps busy until cancel completes
[DaemonSessionProvider] SSE stream ended

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > coalesces a burst of streamed chunks into one complete ordered transcript
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > coalesces streamed chunks arriving within the dispatch window
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > flushes buffered transcript events on unmount instead of dropping them
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > flushes buffered transcript events on unmount instead of dropping them
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps the burst in one block when a malformed_payload debug event interleaves
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

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

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

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

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

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

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not re-arm catchingUp after injecting replay for a resumed session
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears prompt state and transcript when reconnect attaches a different session
[DaemonSessionProvider] terminal session error (sessionId=session-a, status=404, message=missing session)

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

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > requests summary live replay for summary transcript mode
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

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

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > uses bounded replay truncation for pagination without hiding scope undefined incorrectly
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > uses bounded replay truncation for pagination without hiding scope future_scope incorrectly
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps replay-derived pagination state across a same-session reconnect
[DaemonSessionProvider] SSE stream ended

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps replay-derived pagination state across a same-session reconnect
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps history-sourced unrecognized diagnostics on the sidechannel when paging (#8823)
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps history-sourced unrecognized diagnostics on the sidechannel when paging (#8823)
An update to Harness 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 | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > uses history_truncated marker recordId as pagination anchor when session_updates lack one
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > prefers session_update recordId over marker recordId for pagination anchor
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > renders bounded replay truncation when no pagination anchor is available
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > uses daemon historyAnchorRecordId when neither marker nor session_updates carry a recordId
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > repairs a truncated live turn after a matching complete terminal
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > repairs a truncated live turn after a matching cancelled terminal
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > repairs a truncated live turn after a matching error terminal
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not repair a live marker for a non-matching queued terminal
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > uses a bounded full-snapshot fallback after the marker block is trimmed
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps the retained transcript and reports one repair failure for missing input
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps the retained transcript and reports one repair failure for missing terminal
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps the retained transcript and reports one repair failure for degraded
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps the retained transcript and reports one repair failure for network error
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps the retained transcript and reports one repair failure for auth error
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps the retained transcript and reports one repair failure for missing session
[DaemonSessionProvider] terminal session error (sessionId=undefined, status=404, message=Session not found)

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

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

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps restored active prompts streaming after an SSE stream end
[DaemonSessionProvider] SSE stream ended

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps restored active prompts streaming after an 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps local prompts active when a restored prompt completes
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps local prompts active when a restored prompt completes
[DaemonSessionProvider] SSE stream ended

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps restored active prompts busy after shell commands finish
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles restored active prompts when turn_complete arrives
[DaemonSessionProvider] SSE stream ended

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles restored active prompts when turn_complete arrives
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles restored active prompts when turn_complete arrives
[DaemonSessionProvider] SSE stream ended

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > attaches a live branch point only to its restored prompt response
[DaemonSessionProvider] SSE stream ended

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > attaches a live branch point only to its restored prompt response
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles restored active prompts when turn_error arrives
[DaemonSessionProvider] SSE stream ended

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles restored active prompts when prompt_cancelled arrives
[DaemonSessionProvider] SSE stream ended

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles restored active prompts when prompt_cancelled arrives
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps local prompts active when a restored prompt is cancelled
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps local prompts active when a restored prompt is cancelled
[DaemonSessionProvider] SSE stream ended

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not revive settled restored active prompts after SSE reconnect
[DaemonSessionProvider] SSE stream ended

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not revive settled restored active prompts after SSE reconnect
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > reloads restored active prompts after epoch reset
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

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

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears restored active prompts when epoch reload is idle
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps restored active prompts streaming after retriable SSE errors
[DaemonSessionProvider] retriable SSE error, preserving session for delta resume (sessionId=session-1)

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps restored active prompts streaming after retriable SSE errors
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps locally submitted prompts active after retriable SSE errors
[DaemonSessionProvider] retriable SSE error, preserving session for delta resume (sessionId=session-1)

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps locally submitted prompts active after retriable SSE errors
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps restored active prompts streaming after resync requests
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

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

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | 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 | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > resets tokenCount when reconnect attaches a different session without replay usage
[DaemonSessionProvider] terminal session error (sessionId=session-usage-a, status=404, message=missing session)

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > closes a chunk still buffered when the daemon settles the turn
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > closes a chunk still buffered when the daemon settles the turn
[DaemonSessionActions] settled turn from daemon prompt state (sessionId=session-1, daemonActivePrompt=false)

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > keeps the pane loading while the daemon reports the prompt in flight
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > keeps the pane loading while the daemon reports the prompt in flight
[DaemonSessionProvider] settle skipped: daemon reports the prompt in flight

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > settles on the daemon reporting the prompt finished without a terminal event
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > settles on the daemon reporting the prompt finished without a terminal event
[DaemonSessionProvider] settle skipped: daemon reports the prompt in flight

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > settles on the daemon reporting the prompt finished without a terminal event
[DaemonSessionActions] settled turn from daemon prompt state (sessionId=session-1, daemonActivePrompt=false)

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > survives a replay_complete that lands mid-turn
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > survives a replay_complete that lands mid-turn
[DaemonSessionProvider] settle skipped: daemon reports the prompt in flight

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > survives a non-epoch resync that lands mid-turn
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > survives a non-epoch resync that lands mid-turn
[DaemonSessionProvider] settle skipped: daemon reports the prompt in flight

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > survives a non-epoch resync that lands mid-turn
[DaemonSessionProvider] ring eviction detected, reloading session (sessionId=session-resync-active)

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > does not revive a backstop-settled restored prompt on reconnect
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > does not revive a backstop-settled restored prompt on reconnect
[DaemonSessionActions] settled turn from daemon prompt state (sessionId=session-restored-backstop, daemonActivePrompt=false)

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > does not revive a backstop-settled restored prompt on reconnect
[DaemonSessionProvider] SSE stream ended

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > survives a same-session reload that carries a replay snapshot
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > survives a same-session reload that carries a replay snapshot
[DaemonSessionProvider] settle skipped: daemon reports the prompt in flight

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > survives a same-session reload that carries a replay snapshot
[DaemonSessionProvider] ring eviction detected, reloading session (sessionId=session-replay-reload)

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > survives a same-session reload that carries a replay snapshot
[DaemonSessionProvider] settle skipped: daemon reports the prompt in flight

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > still settles on silence when no daemon prompt state is available
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > settles a restored prompt when the daemon reports the turn finished
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > settles a restored prompt when the daemon reports the turn finished
[DaemonSessionActions] settled turn from daemon prompt state (sessionId=session-1, daemonActivePrompt=false)

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > keeps daemon authority across a switch to another running turn
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > keeps daemon authority across a switch to another running turn
[DaemonSessionProvider] settle skipped: daemon reports the prompt in flight

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > does not settle a new session from the previous session signal
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > does not consume stale idle authority for a newly loaded session
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > does not consume stale idle authority for a newly loaded session
[DaemonSessionActions] settled turn from daemon prompt state (sessionId=session-a, daemonActivePrompt=false)

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > settles a restored prompt from the first fresh idle observation
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > settles a restored prompt from the first fresh idle observation
[DaemonSessionActions] settled turn from daemon prompt state (sessionId=session-b, daemonActivePrompt=false)

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > does not reuse stale idle authority after returning to a session
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > settles authority that starts before the session finishes loading
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > settles authority that starts before the session finishes loading
[DaemonSessionActions] settled turn from daemon prompt state (sessionId=session-b, daemonActivePrompt=false)

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > settles authority that starts before the session finishes loading
[DaemonSessionProvider] SSE stream ended

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > keeps an observed turn loading across a transport close
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > keeps an observed turn loading across a transport close
[DaemonSessionProvider] SSE stream ended
[DaemonSessionProvider] settle skipped: daemon reports the prompt in flight

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > keeps an observed turn loading across a transport close
[DaemonSessionActions] settled turn from daemon prompt state (sessionId=session-1, daemonActivePrompt=undefined)

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > keeps an observed turn loading across a retriable connect error
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > observed turn loading across silent tool gaps (#9487) > keeps an observed turn loading across a retriable connect error
[DaemonSessionProvider] settle skipped: daemon reports the prompt in flight
[DaemonSessionProvider] retriable SSE error, preserving session for delta resume (sessionId=session-1)

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | 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:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > creates a session from the active session client when already attached
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears the current session without creating a replacement session
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps preserved commands when the next supported-commands fetch fails
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > ignores streamed events from a session after it is cleared
[DaemonSessionProvider] detach failed: [TypeError: fetch failed] {
  [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170
      at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2083:16) {
    errno: -111,
    code: 'ECONNREFUSED',
    syscall: 'connect',
    address: '127.0.0.1',
    port: 4170
  }
}

stderr | 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
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 | 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
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 | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > retries restore_in_progress loads after the advertised delay
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
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 | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > caps an oversized restore_in_progress retry delay
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
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 | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not retry a closing session when auto-reconnect is disabled
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
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 | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not retry a closing session when auto-reconnect is disabled
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 | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not retry a closing session when auto-reconnect is disabled
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 | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not retry a closing session when auto-reconnect is disabled
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 | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not retry a missing session
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
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 | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not retry a missing session
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 | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not retry a missing session
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 | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not retry a missing session
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 | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not retry a closing session after a newer switch
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
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 | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not retry a closing session after a newer switch
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
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 | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > uses recent HTTP status when heartbeat threshold ends with transport failure
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 | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > preserves missing-session heartbeat status across later HTTP failures
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

stdout | 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 | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not attach a session after its load watchdog expires
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
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

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > surfaces a restore 504 without treating the session as missing
[DaemonSessionProvider] retriable SSE error, preserving session for delta resume (sessionId=undefined)

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears transcript immediately for default session switches
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
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

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps the cleared target and exposes the error when load fails
[DaemonSessionProvider] retriable SSE error, preserving session for delta resume (sessionId=undefined)

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not retry a failed controlled session load until the host changes it
[DaemonSessionProvider] retriable SSE error, preserving session for delta resume (sessionId=undefined)

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

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

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

stdout | 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 | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears an existing error during autoReconnect backoff
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

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears an existing error during autoReconnect backoff
[DaemonSessionProvider] retriable SSE error, preserving session for delta resume (sessionId=session-1)

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears an existing error during autoReconnect backoff
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 | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears an existing error during autoReconnect backoff
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 | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears an existing error during autoReconnect backoff
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 | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears an existing error during autoReconnect backoff
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 | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears an existing error during autoReconnect backoff
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

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears an existing error during autoReconnect backoff
[DaemonSessionProvider] SSE stream ended

stderr | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears an existing error during autoReconnect backoff
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

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

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > deduplicates live and snapshot recording degradation notices
[DaemonSessionProvider] SSE stream ended

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears a degraded notice after an authoritative healthy snapshot
[DaemonSessionProvider] SSE stream ended

stdout | daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > allows a later degraded snapshot to restore a dismissed notice
[DaemonSessionProvider] SSE stream ended

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 ✓ daemon/session/DaemonSessionProvider.test.tsx (320 tests) 5413ms
   ✓ DaemonSessionProvider > keeps restored active prompts streaming after resync requests  891ms
   ✓ DaemonSessionProvider > reloads stale transcript after epoch-reset resync  1184ms
stderr | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar workspace removal > delegates Add workspace to the App-owned dialog
An update to WorkspaceSection 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 WorkspaceSection 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar workspace removal > shows only the locked workspace without registration controls
An update to WorkspaceSection 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar workspace removal > hides removal when the daemon does not publish the feature
An update to WorkspaceSection 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 WorkspaceSection 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar workspace removal > exposes removal for an untrusted removable workspace
An update to WorkspaceSection 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 WorkspaceSection 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar workspace removal > never offers removal on the primary workspace menu
An update to WorkspaceSection 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 WorkspaceSection 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar workspace removal > offers a worktree task only on workspaces that report a git branch
An update to WebShellSidebar 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 WebShellSidebar 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar workspace removal > passes the explicit primary cwd to a primary workspace worktree task
An update to WebShellSidebar 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar workspace removal > keeps the action wrapper visible while its menu is open
An update to WorkspaceSection 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 WorkspaceSection 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar workspace removal > offers rename on registration-backed rows only
An update to WorkspaceSection 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 WorkspaceSection 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar workspace removal > keeps plain folder headers when the overview is switched off
An update to WorkspaceSection 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 WorkspaceSection 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar workspace removal > opens management pages for the primary workspace only
An update to WorkspaceSection 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 WorkspaceSection 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar goals entry > renders the Goals footer button and invokes onOpenGoals
An update to WorkspaceSection 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 WorkspaceSection 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar workflows entry > uses the project or session Workflows capability for draft
An update to WorkspaceSection 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 WorkspaceSection 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar workflows entry > uses the project or session Workflows capability for standalone
An update to WorkspaceSection 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 WorkspaceSection 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar workflows entry > uses the project or session Workflows capability for live
An update to WorkspaceSection 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 WorkspaceSection 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar workflows entry > uses the project or session Workflows capability for workspace
An update to WorkspaceSection 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 WorkspaceSection 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar workflows entry > uses the project or session Workflows capability for legacy
An update to WorkspaceSection 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 WorkspaceSection 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar workflows entry > hides workflows when the current session has not enabled them
An update to WorkspaceSection 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 WorkspaceSection 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar primary workspace header > does not tag the primary workspace with a redundant "Primary" badge
An update to WorkspaceSection 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 WorkspaceSection 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar session source switch > returns to task sessions when the switch is hidden at runtime
An update to WorkspaceSection 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 WorkspaceSection 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar Live group > hides Live sessions by default
An update to WorkspaceSection 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 WorkspaceSection 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar standalone grouping > hides standalone UI when the daemon does not advertise it
An update to WorkspaceSection 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 WorkspaceSection 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar standalone grouping > keeps project lists mounted while Projects is collapsed
An update to StandaloneRecents 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 StandaloneRecents 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 StandaloneRecents 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 StandaloneRecents 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 WorkspaceSection 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 WorkspaceSection 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar standalone grouping > renders standalone chats with the shared session row
An update to StandaloneRecents 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 StandaloneRecents 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 StandaloneRecents 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 StandaloneRecents 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 WorkspaceSection 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 WorkspaceSection 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar standalone grouping > renders standalone chats with the shared session row
An update to WorkspaceSection 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 WorkspaceSection 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar standalone grouping > renders standalone chats with the shared session row
An update to Popper 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 Presence 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 Popper 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 Presence 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 Popover 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 WorkspaceSection 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 WorkspaceSection 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 | components/sidebar/WebShellSidebar.workspace-removal.test.tsx > WebShellSidebar standalone grouping > retries a failed standalone archive load from the shared retry
[web-shell] standalone session list failed: Error: offline
    at /startdir/src/qwen-code/packages/web-shell/client/components/sidebar/WebShellSidebar.workspace-removal.test.tsx:6945:50
    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)
[web-shell] standalone session list failed: Error: offline
    at /startdir/src/qwen-code/packages/web-shell/client/components/sidebar/WebShellSidebar.workspace-removal.test.tsx:6945:50
    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)

 ✓ components/sidebar/WebShellSidebar.workspace-removal.test.tsx (136 tests) 5148ms
   ✓ WebShellSidebar workspace removal > does not reopen the details popover after a workspace menu selection  845ms
   ✓ WebShellSidebar standalone grouping > renders standalone chats with the shared session row  391ms
stderr | components/MessageList.dom.test.tsx > MessageList — turn collapse (DOM) > clears the retry block of a failed previous-session load on switch
An update to ForwardRef(MessageList2) 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 ForwardRef(MessageList2) 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

 ✓ components/MessageList.dom.test.tsx (171 tests) 2964ms
   ✓ MessageList — turn collapse (DOM) > releases pagination when a virtual anchor never mounts  569ms
   ✓ MessageList — turn collapse (DOM) > does not auto-load again when an underfill page adds no content  564ms
stderr | hooks/useQueuedPrompts.midTurnReconcile.test.tsx > useQueuedPrompts mid-turn reconciliation (session_mid_turn_message_query) > removes a cross-client started prompt when its refresh fails
Failed to refresh pending prompts Error: pending refresh failed
    at /startdir/src/qwen-code/packages/web-shell/client/hooks/useQueuedPrompts.midTurnReconcile.test.tsx:388:9
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20

stderr | hooks/useQueuedPrompts.midTurnReconcile.test.tsx > useQueuedPrompts mid-turn reconciliation (session_mid_turn_message_query) > does not resend when a capable daemon reconciliation is unavailable
Failed to refresh mid-turn messages Error: reconciliation unavailable
    at /startdir/src/qwen-code/packages/web-shell/client/hooks/useQueuedPrompts.midTurnReconcile.test.tsx:1101:7
    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)

stderr | hooks/useQueuedPrompts.midTurnReconcile.test.tsx > useQueuedPrompts mid-turn reconciliation (session_mid_turn_message_query) > does not resend when a capable daemon reconciliation is unavailable
Failed to refresh mid-turn messages Error: reconciliation unavailable
    at /startdir/src/qwen-code/packages/web-shell/client/hooks/useQueuedPrompts.midTurnReconcile.test.tsx:1101:7
    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)

stderr | hooks/useQueuedPrompts.midTurnReconcile.test.tsx > useQueuedPrompts mid-turn reconciliation (session_mid_turn_message_query) > does not resend when a capable daemon reconciliation is unavailable
Failed to refresh mid-turn messages Error: reconciliation unavailable
    at /startdir/src/qwen-code/packages/web-shell/client/hooks/useQueuedPrompts.midTurnReconcile.test.tsx:1101:7
    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)

stderr | hooks/useQueuedPrompts.midTurnReconcile.test.tsx > useQueuedPrompts mid-turn reconciliation (session_mid_turn_message_query) > drops the local row when admission and reconciliation both fail
Failed to refresh mid-turn messages Error: reconciliation unavailable
    at /startdir/src/qwen-code/packages/web-shell/client/hooks/useQueuedPrompts.midTurnReconcile.test.tsx:1461:7
    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)

stderr | hooks/useQueuedPrompts.midTurnReconcile.test.tsx > useQueuedPrompts mid-turn reconciliation (session_mid_turn_message_query) > drops the local row when admission and reconciliation both fail
Failed to refresh mid-turn messages Error: reconciliation unavailable
    at /startdir/src/qwen-code/packages/web-shell/client/hooks/useQueuedPrompts.midTurnReconcile.test.tsx:1461:7
    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)

stderr | hooks/useQueuedPrompts.midTurnReconcile.test.tsx > useQueuedPrompts mid-turn reconciliation (session_mid_turn_message_query) > keeps a promoted row visible when pending-prompt refresh fails
Failed to refresh pending prompts Error: pending snapshot unavailable
    at /startdir/src/qwen-code/packages/web-shell/client/hooks/useQueuedPrompts.midTurnReconcile.test.tsx:1673:9
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20

stderr | hooks/useQueuedPrompts.midTurnReconcile.test.tsx > useQueuedPrompts mid-turn reconciliation (session_mid_turn_message_query) > keeps promoted media available when the pending-prompt refresh fails
Failed to refresh pending prompts Error: pending snapshot unavailable
    at /startdir/src/qwen-code/packages/web-shell/client/hooks/useQueuedPrompts.midTurnReconcile.test.tsx:3810:9
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20

 ✓ hooks/useQueuedPrompts.midTurnReconcile.test.tsx (103 tests) 153ms
 ✓ components/ChatEditor.test.tsx (140 tests) 1908ms
 ✓ components/SessionOverviewPanel.test.tsx (120 tests) 3122ms
stderr | components/messages/EnhancedMarkdownTable.test.tsx > EnhancedMarkdownTable > quick copies the visible sorted table
An update to EnhancedTable 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 | components/messages/EnhancedMarkdownTable.test.tsx > EnhancedMarkdownTable > sanitizes spreadsheet formulas when copying TSV
An update to EnhancedTable 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 EnhancedTable 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 | components/messages/EnhancedMarkdownTable.test.tsx > EnhancedMarkdownTable > quick copy skips hidden columns
An update to EnhancedTable 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 | components/messages/EnhancedMarkdownTable.test.tsx > EnhancedMarkdownTable > reorders columns and quick copies in the visible order
An update to EnhancedTable 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 | components/messages/EnhancedMarkdownTable.test.tsx > EnhancedMarkdownTable > keeps hidden columns out of reordered selections
An update to EnhancedTable 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 | components/messages/EnhancedMarkdownTable.test.tsx > EnhancedMarkdownTable > copies the full long cell value instead of the expanded preview text
An update to EnhancedTable 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 | components/messages/EnhancedMarkdownTable.test.tsx > EnhancedMarkdownTable > flattens cell-internal newlines when copying a selection
An update to EnhancedTable 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 | components/messages/EnhancedMarkdownTable.test.tsx > EnhancedMarkdownTable > flattens cell-internal tabs when copying a selection
An update to EnhancedTable 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 | components/messages/EnhancedMarkdownTable.test.tsx > EnhancedMarkdownTable > copies reordered selections after freezing the first column
An update to EnhancedTable 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 | components/messages/EnhancedMarkdownTable.test.tsx > EnhancedMarkdownTable > selection copy skips hidden columns between selected cells
An update to EnhancedTable 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 | components/messages/EnhancedMarkdownTable.test.tsx > EnhancedMarkdownTable > stops extending a selection after window blur
An update to EnhancedTable 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 | components/messages/EnhancedMarkdownTable.test.tsx > EnhancedMarkdownTable > selects cells with touch drag
An update to EnhancedTable 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

 ✓ components/messages/EnhancedMarkdownTable.test.tsx (130 tests) 2361ms
stderr | components/ChatPane.test.tsx > ChatPane > builds the control request from the freshly fetched Goal
An update to ChatPane 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 | components/ChatPane.test.tsx > ChatPane > builds the control request from the freshly fetched Goal
An update to ChatPane 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 | components/ChatPane.test.tsx > ChatPane > releases plan handoff on failure and owner replacement
Failed to submit permission choice Error: permission failed
    at /startdir/src/qwen-code/packages/web-shell/client/components/ChatPane.test.tsx:3073:44
    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)

stderr | components/ChatPane.test.tsx > ChatPane > releases plan handoff on failure and owner replacement
Failed to set approval mode Error: mode failed
    at /startdir/src/qwen-code/packages/web-shell/client/components/ChatPane.test.tsx:3087:43
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20

stderr | components/ChatPane.test.tsx > ChatPane > drives THIS pane's approval mode when one is picked
An update to ChatPane 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

 ✓ components/ChatPane.test.tsx (144 tests) 724ms
stderr | components/artifacts/ArtifactPanel.test.tsx > ArtifactPanel monitor tab > stays stopped when the post-cancel refresh fails
[web-shell] failed to refresh stopped monitor: Error: refresh failed
    at /startdir/src/qwen-code/packages/web-shell/client/components/artifacts/ArtifactPanel.test.tsx:2531:44
    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)

stderr | components/artifacts/ArtifactPanel.test.tsx > ArtifactPanel monitor tab > shows a cancel error when the stop request throws
[web-shell] failed to cancel monitor: Error: network
    at /startdir/src/qwen-code/packages/web-shell/client/components/artifacts/ArtifactPanel.test.tsx:2702: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 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)

 ✓ components/artifacts/ArtifactPanel.test.tsx (66 tests) 401ms
 ✓ components/messages/ToolGroup.test.tsx (107 tests) 233ms
stderr | hooks/useMessages.test.ts > background agent task reconciliation > treats a missing background agent as terminal after repeated misses
[web-shell] background agent reconciliation retry scheduled {
  sessionId: 'session-1',
  callIds: [ 'agent-call' ],
  errors: [ 'HTTP 404 session_not_found' ]
}

stderr | hooks/useMessages.test.ts > background agent task reconciliation > recovers a missing background agent that registers after a first miss
[web-shell] background agent reconciliation retry scheduled {
  sessionId: 'session-1',
  callIds: [ 'agent-call' ],
  errors: [ 'HTTP 404 session_not_found' ]
}

stderr | hooks/useMessages.test.ts > background agent task reconciliation > does not fail an agent while its launch approval is unanswered
[web-shell] background agent reconciliation retry scheduled {
  sessionId: 'session-1',
  callIds: [ 'agent-call' ],
  errors: [ 'HTTP 404 session_not_found' ]
}

stderr | hooks/useMessages.test.ts > background agent task reconciliation > resets accumulated missing-agent misses when an approval engages
[web-shell] background agent reconciliation retry scheduled {
  sessionId: 'session-1',
  callIds: [ 'agent-call-a' ],
  errors: [ 'HTTP 404 session_not_found' ]
}

stderr | hooks/useMessages.test.ts > background agent task reconciliation > resets accumulated missing-agent misses when an approval engages
[web-shell] background agent reconciliation retry scheduled {
  sessionId: 'session-1',
  callIds: [ 'agent-call-a' ],
  errors: [ 'HTTP 404 session_not_found' ]
}

stderr | hooks/useMessages.test.ts > background agent task reconciliation > does not count a late 404 after approval engages
[web-shell] background agent reconciliation retry scheduled {
  sessionId: 'session-1',
  callIds: [ 'agent-call' ],
  errors: [ 'HTTP 404 session_not_found' ]
}

stderr | hooks/useMessages.test.ts > background agent task reconciliation > keeps the missing-agent grace when an unrelated permission re-probes
[web-shell] background agent reconciliation retry scheduled {
  sessionId: 'session-1',
  callIds: [ 'agent-call' ],
  errors: [ 'HTTP 404 session_not_found' ]
}

stderr | hooks/useMessages.test.ts > background agent task reconciliation > keeps the missing-agent grace when an unrelated permission re-probes
[web-shell] background agent reconciliation retry scheduled {
  sessionId: 'session-1',
  callIds: [ 'agent-call' ],
  errors: [ 'HTTP 404 session_not_found' ]
}

stderr | hooks/useMessages.test.ts > background agent task reconciliation > gives a session-level 404 the same grace as a missing agent
[web-shell] background agent reconciliation retry scheduled {
  sessionId: 'session-1',
  callIds: [ 'agent-call' ],
  errors: [ 'HTTP 404 session_not_found' ]
}

stderr | hooks/useMessages.test.ts > background agent task reconciliation > recovers a session-level 404 when the next round reaches the daemon
[web-shell] background agent reconciliation retry scheduled {
  sessionId: 'session-1',
  callIds: [ 'agent-call' ],
  errors: [ 'HTTP 404 session_not_found' ]
}

stderr | hooks/useMessages.test.ts > background agent task reconciliation > does not consume grace misses for a superseded round
[web-shell] background agent reconciliation retry scheduled {
  sessionId: 'session-1',
  callIds: [ 'agent-call' ],
  errors: [ 'HTTP 404 session_not_found' ]
}

stderr | hooks/useMessages.test.ts > background agent task reconciliation > applies successful resolutions when another pending Agent fails
[web-shell] background agent reconciliation retry scheduled {
  sessionId: 'session-1',
  callIds: [ 'agent-b' ],
  errors: [ 'not found' ]
}

stderr | hooks/useMessages.test.ts > background agent task reconciliation > applies successful resolutions when another pending Agent fails
[web-shell] background agent reconciliation retry scheduled {
  sessionId: 'session-1',
  callIds: [ 'agent-b' ],
  errors: [ 'not found' ]
}

stderr | hooks/useMessages.test.ts > background agent task reconciliation > keeps retry tolerance for the completion query of a long-running agent
[web-shell] background agent reconciliation retry scheduled {
  sessionId: 'session-1',
  callIds: [ 'agent-call' ],
  errors: [ 'HTTP 500 internal_error' ]
}

stderr | hooks/useMessages.test.ts > background agent task reconciliation > re-arms the missing-agent grace after a successful response
[web-shell] background agent reconciliation retry scheduled {
  sessionId: 'session-1',
  callIds: [ 'agent-call' ],
  errors: [ 'HTTP 404 session_not_found' ]
}

stderr | hooks/useMessages.test.ts > background agent task reconciliation > re-arms the missing-agent grace after a successful response
[web-shell] background agent reconciliation retry scheduled {
  sessionId: 'session-1',
  callIds: [ 'agent-call' ],
  errors: [ 'HTTP 404 session_not_found' ]
}

 ✓ hooks/useMessages.test.ts (52 tests) 81ms
stderr | hooks/useAtMentionMenu.test.tsx > useAtMentionMenu > backs from MCP resources to the MCP server list
An update to Harness 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 | hooks/useAtMentionMenu.test.tsx > useAtMentionMenu > closes without dispatching when accept uses stale document positions
[@mention] stale insertion range { from: 0, to: 1, docLength: 0 }

stderr | hooks/useAtMentionMenu.test.tsx > useAtMentionMenu > does not load resources when reopening a disabled MCP server ref
[@mention] file provider unavailable: workspace actions are not configured

 ✓ hooks/useAtMentionMenu.test.tsx (84 tests) 109ms
stderr | hooks/useQueuedPrompts.dom.test.tsx > useQueuedPrompts default mid-turn insertion > stops the release chain when the Goal re-activates mid-drain
An update to Harness 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 | hooks/useQueuedPrompts.dom.test.tsx > useQueuedPrompts default mid-turn insertion > stashes the undrained release chain when the session changes mid-drain
An update to Harness 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 | hooks/useQueuedPrompts.dom.test.tsx > useQueuedPrompts default mid-turn insertion > stashes a chain link that bails before the owner change commits
An update to Harness 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

 ✓ hooks/useQueuedPrompts.dom.test.tsx (72 tests) 81ms
stderr | components/sidebar/WorkspaceSection.test.tsx > WorkspaceSection label > prefers the workspace display name over the cwd basename
An update to WorkspaceSection 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 | components/sidebar/WorkspaceSection.test.tsx > WorkspaceSection label > restores and writes the workspace expansion preference
An update to WorkspaceSection 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 | components/sidebar/WorkspaceSection.test.tsx > WorkspaceSection label > does not carry a load error across a source switch
[WorkspaceSection] session poll failed for /tmp/project: Error: tasks unavailable
    at Object.<anonymous> (/startdir/src/qwen-code/packages/web-shell/client/components/sidebar/WorkspaceSection.test.tsx:436:28)
    at Object.mockCall (file:///startdir/src/qwen-code/node_modules/vitest/node_modules/@vitest/spy/dist/index.js:96:15)
    at Object.spy [as listWorkspaceSessionsPage] (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103)
    at SessionCatalogStore.fetchPage (/startdir/src/qwen-code/packages/web-shell/client/session-catalog/session-catalog-store.ts:1327:12)
    at SessionCatalogStore.startJob (/startdir/src/qwen-code/packages/web-shell/client/session-catalog/session-catalog-store.ts:1192:26)
    at SessionCatalogStore.drainQueue (/startdir/src/qwen-code/packages/web-shell/client/session-catalog/session-catalog-store.ts:1180:12)
    at SessionCatalogStore.ensureScheduled (/startdir/src/qwen-code/packages/web-shell/client/session-catalog/session-catalog-store.ts:1161:10)
    at SessionCatalogStore.requestBackground (/startdir/src/qwen-code/packages/web-shell/client/session-catalog/session-catalog-store.ts:1115:10)
    at SessionCatalogStore.subscribe (/startdir/src/qwen-code/packages/web-shell/client/session-catalog/session-catalog-store.ts:408:12)
    at /startdir/src/qwen-code/packages/web-shell/client/session-catalog/session-catalog-hooks.ts:73:20

stderr | components/sidebar/WorkspaceSection.test.tsx > WorkspaceSection git chip > renders a clickable git chip for a trusted repo
An update to BranchPickerPopover 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 BranchPickerPopover 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 BranchPickerPopover 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 BranchPickerPopover 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 WorkspaceSection 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

 ✓ components/sidebar/WorkspaceSection.test.tsx (55 tests) 2144ms
   ✓ WorkspaceSection content search > merges content hits not in the loaded catalog and forwards the snippet  354ms
   ✓ WorkspaceSection content search > keeps the catalog entry for a content hit already listed locally  355ms
   ✓ WorkspaceSection content search > renders a pinned ghost hit instead of dropping it with excludePinned  355ms
   ✓ WorkspaceSection content search > drops a hit row after its session is deleted while the query stays active  707ms
 ✓ hooks/useComposerCore.dom.test.tsx (67 tests) 562ms
 ✓ daemon/workspace/DaemonWorkspaceProvider.test.tsx (48 tests) 94ms
 ✓ session-catalog/session-catalog-store.test.ts (58 tests) 33ms
 ✓ components/sidebar/WebShellSidebar.session-pinning.test.tsx (32 tests) 2307ms
   ✓ WebShellSidebar content-search ghosts > renders a pinned ghost hit with its snippet in the flat list  418ms
   ✓ WebShellSidebar content-search ghosts > renders a pinned ghost hit in the Ungrouped section when organization is enabled  424ms
   ✓ WebShellSidebar content-search ghosts > renders a pinned content hit exactly once, whoever the Pinned section carries  430ms
   ✓ WebShellSidebar content-search ghosts > mounts the rename form for a pinned ghost row in the org section renderer  438ms
 ✓ components/messages/Markdown.test.ts (85 tests) 1646ms
   ✓ Markdown code highlighting while streaming > keeps a growing block plain and highlights it once settled  426ms
   ✓ Markdown code highlighting while streaming > applies Shiki highlighting once a code block has settled  305ms
   ✓ Markdown code highlighting while streaming > drops stale highlighted HTML when the code is replaced (regeneration)  606ms
 ✓ components/messages/tools/ParallelAgentsGroup.test.tsx (44 tests) 144ms
 ✓ components/BranchPickerPopover.test.tsx (52 tests) 316ms
 ✓ components/sidebar/WebShellSidebar.collapse-persist.test.tsx (33 tests) 2131ms
   ✓ WebShellSidebar collapsed session group persistence > keeps project sessions available from the collapsed sidebar  320ms
 ✓ components/dialogs/ScheduledTasksDialog.test.tsx (57 tests) 432ms
 ✓ components/messages/AskUserQuestion.test.tsx (70 tests) 273ms
stderr | components/SplitView.test.tsx > SplitView > stops reporting a crashed pane even though its slot remains
Error: pane exploded
    at ChatPane (/startdir/src/qwen-code/packages/web-shell/client/components/SplitView.test.tsx:105:39)
    at Object.react_stack_bottom_frame (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:25904:20)
    at renderWithHooks (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:7662:22)
    at updateFunctionComponent (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:10166:19)
    at beginWork (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:11778:18)
    at runWithFiberInDEV (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:874:13)
    at performUnitOfWork (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:17641:22)
    at workLoopSync (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:17469:41)
    at renderRootSync (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:17450:11)
    at performWorkOnRoot (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:16583:35) {
  [stack]: [Getter/Setter],
  [message]: 'pane exploded'
}

The above error occurred in the <ChatPane> component.

React will try to recreate this component tree from scratch using the error boundary you provided, ErrorBoundary.

[web-shell] split-pane:s1 failed: Error: pane exploded
    at ChatPane (/startdir/src/qwen-code/packages/web-shell/client/components/SplitView.test.tsx:105:39)
    at Object.react_stack_bottom_frame (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:25904:20)
    at renderWithHooks (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:7662:22)
    at updateFunctionComponent (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:10166:19)
    at beginWork (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:11778:18)
    at runWithFiberInDEV (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:874:13)
    at performUnitOfWork (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:17641:22)
    at workLoopSync (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:17469:41)
    at renderRootSync (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:17450:11)
    at performWorkOnRoot (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:16583:35) 
    at ChatPane (/startdir/src/qwen-code/packages/web-shell/client/components/SplitView.test.tsx:68:39)
    at div (<anonymous>)
    at DaemonSessionProvider (/startdir/src/qwen-code/packages/web-shell/client/components/SplitView.test.tsx:3:120)
    at ErrorBoundary (/startdir/src/qwen-code/packages/web-shell/client/components/ErrorBoundary.tsx:11:1)
    at div (<anonymous>)
    at div (<anonymous>)
    at div (<anonymous>)
    at SplitView (/startdir/src/qwen-code/packages/web-shell/client/components/SplitView.tsx:35:3)
    at I18nProvider (/startdir/src/qwen-code/packages/web-shell/client/i18n.tsx:6284:3)

stderr | components/SplitView.test.tsx > SplitView > isolates a crashing pane so the rest of the split survives
Error: pane exploded
    at ChatPane (/startdir/src/qwen-code/packages/web-shell/client/components/SplitView.test.tsx:105:39)
    at Object.react_stack_bottom_frame (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:25904:20)
    at renderWithHooks (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:7662:22)
    at updateFunctionComponent (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:10166:19)
    at beginWork (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:11778:18)
    at runWithFiberInDEV (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:874:13)
    at performUnitOfWork (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:17641:22)
    at workLoopSync (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:17469:41)
    at renderRootSync (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:17450:11)
    at performWorkOnRoot (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:16583:35) {
  [stack]: [Getter/Setter],
  [message]: 'pane exploded'
}

The above error occurred in the <ChatPane> component.

React will try to recreate this component tree from scratch using the error boundary you provided, ErrorBoundary.

[web-shell] split-pane:s1 failed: Error: pane exploded
    at ChatPane (/startdir/src/qwen-code/packages/web-shell/client/components/SplitView.test.tsx:105:39)
    at Object.react_stack_bottom_frame (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:25904:20)
    at renderWithHooks (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:7662:22)
    at updateFunctionComponent (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:10166:19)
    at beginWork (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:11778:18)
    at runWithFiberInDEV (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:874:13)
    at performUnitOfWork (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:17641:22)
    at workLoopSync (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:17469:41)
    at renderRootSync (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:17450:11)
    at performWorkOnRoot (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:16583:35) 
    at ChatPane (/startdir/src/qwen-code/packages/web-shell/client/components/SplitView.test.tsx:68:39)
    at div (<anonymous>)
    at DaemonSessionProvider (/startdir/src/qwen-code/packages/web-shell/client/components/SplitView.test.tsx:3:120)
    at ErrorBoundary (/startdir/src/qwen-code/packages/web-shell/client/components/ErrorBoundary.tsx:11:1)
    at div (<anonymous>)
    at div (<anonymous>)
    at div (<anonymous>)
    at SplitView (/startdir/src/qwen-code/packages/web-shell/client/components/SplitView.tsx:35:3)
    at I18nProvider (/startdir/src/qwen-code/packages/web-shell/client/i18n.tsx:6284:3)

 ✓ components/SplitView.test.tsx (57 tests) 206ms
stderr | components/messages/PlanExecutionView.test.tsx > PlanExecutionView > gates parent and nested detail buttons with live child task=false
An update to PlanExecutionView 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 PlanExecutionView 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 PlanExecutionView 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 | components/messages/PlanExecutionView.test.tsx > PlanExecutionView > gates parent and nested detail buttons with live child task=true
An update to PlanExecutionView 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 PlanExecutionView 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 PlanExecutionView 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

 ✓ components/messages/PlanExecutionView.test.tsx (32 tests) 147ms
stderr | components/messages/TasksStatusMessage.test.tsx > TasksStatusMessage workflow details > cancels the row the user focused, not the one selection started on
[web-shell] failed to cancel task: TypeError: Cannot read properties of undefined (reading 'sessionId')
    at /startdir/src/qwen-code/packages/web-shell/client/components/messages/TasksStatusMessage.tsx:539:20

 ✓ components/messages/TasksStatusMessage.test.tsx (29 tests) 2373ms
   ✓ TasksStatusMessage workflow details > cancels the row the user focused, not the one selection started on  408ms
   ✓ TasksStatusMessage nested-agent tree > cancels a foreground child of a background parent on the first press  605ms
   ✓ TasksStatusMessage nested-agent tree > requires a second press to cancel a user-blocking agent  605ms
   ✓ TasksStatusMessage nested-agent tree > caps the detail progress list at the newest MAX_DISPLAYED_ACTIVITIES rows  403ms
stderr | session-catalog/workspace-session-live-state.test.tsx > useWorkspaceSessionLiveState > does not hot-loop when a staged commit is persistently refused
[session-catalog] failed to refresh catalog: TypeError: Cannot read properties of undefined (reading 'sessions')
    at SessionCatalogStore.fetchPage (/startdir/src/qwen-code/packages/web-shell/client/session-catalog/session-catalog-store.ts:1334:22)

 ✓ session-catalog/workspace-session-live-state.test.tsx (34 tests) 80ms
stderr | components/messages/ToolApproval.test.tsx > ToolApproval accessibility > does not apply approval shortcuts to a focused workflow node
An update to PlanExecutionView 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 | components/messages/ToolApproval.test.tsx > ToolApproval accessibility > leaves Enter to native button activation (no double-press guard)
An update to ToolApproval 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

 ✓ components/messages/ToolApproval.test.tsx (53 tests) 198ms
stderr | components/dialogs/DaemonStatusDialog.test.tsx > DaemonStatusDialog > moves between tabs with arrow / Home / End keys (roving tabindex)
Error: [vitest] No "useUsageDashboard" export is defined on the "@qwen-code/web-shell/daemon-react-sdk" mock. Did you forget to return it from "vi.mock"?
If you need to partially mock a module, you can use "importOriginal" helper inside:

    at VitestMocker.createError (file:///startdir/src/qwen-code/node_modules/vitest/dist/chunks/execute.B7h3T_Hc.js:284:17)
    at Object.get (file:///startdir/src/qwen-code/node_modules/vitest/dist/chunks/execute.B7h3T_Hc.js:330:16)
    at UsageDashboardTab (/startdir/src/qwen-code/packages/web-shell/client/components/dialogs/UsageDashboardTab.tsx:202:49)
    at Object.react_stack_bottom_frame (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:25904:20)
    at renderWithHooks (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:7662:22)
    at updateFunctionComponent (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:10166:19)
    at beginWork (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:11778:18)
    at runWithFiberInDEV (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:874:13)
    at performUnitOfWork (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:17641:22)
    at workLoopSync (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:17469:41) {
  [stack]: [Getter/Setter],
  [message]: '[vitest] No "useUsageDashboard" export is defined on the "@qwen-code/web-shell/daemon-react-sdk" mock. Did you forget to return it from "vi.mock"?\n' +
    'If you need to partially mock a module, you can use "importOriginal" helper inside:\n',
  codeFrame: 'vi.mock(import("@qwen-code/web-shell/daemon-react-sdk"), async (importOriginal) => {\n' +
    '  const actual = await importOriginal()\n' +
    '  return {\n' +
    '    ...actual,\n' +
    '    // your mocked methods\n' +
    '  }\n' +
    '})'
}

The above error occurred in the <UsageDashboardTab> component.

React will try to recreate this component tree from scratch using the error boundary you provided, ErrorBoundary.

[web-shell] daemon-usage failed: Error: [vitest] No "useUsageDashboard" export is defined on the "@qwen-code/web-shell/daemon-react-sdk" mock. Did you forget to return it from "vi.mock"?
If you need to partially mock a module, you can use "importOriginal" helper inside:

    at VitestMocker.createError (file:///startdir/src/qwen-code/node_modules/vitest/dist/chunks/execute.B7h3T_Hc.js:284:17)
    at Object.get (file:///startdir/src/qwen-code/node_modules/vitest/dist/chunks/execute.B7h3T_Hc.js:330:16)
    at UsageDashboardTab (/startdir/src/qwen-code/packages/web-shell/client/components/dialogs/UsageDashboardTab.tsx:202:49)
    at Object.react_stack_bottom_frame (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:25904:20)
    at renderWithHooks (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:7662:22)
    at updateFunctionComponent (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:10166:19)
    at beginWork (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:11778:18)
    at runWithFiberInDEV (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:874:13)
    at performUnitOfWork (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:17641:22)
    at workLoopSync (/startdir/src/qwen-code/node_modules/react-dom/cjs/react-dom-client.development.js:17469:41) {
  codeFrame: 'vi.mock(import("@qwen-code/web-shell/daemon-react-sdk"), async (importOriginal) => {\n' +
    '  const actual = await importOriginal()\n' +
    '  return {\n' +
    '    ...actual,\n' +
    '    // your mocked methods\n' +
    '  }\n' +
    '})'
} 
    at UsageDashboardTab (/startdir/src/qwen-code/packages/web-shell/client/components/dialogs/UsageDashboardTab.tsx:274:60)
    at ErrorBoundary (/startdir/src/qwen-code/packages/web-shell/client/components/ErrorBoundary.tsx:11:1)
    at div (<anonymous>)
    at div (<anonymous>)
    at DaemonStatusDialogInner (/startdir/src/qwen-code/packages/web-shell/client/components/dialogs/DaemonStatusDialog.tsx:649:50)
    at ErrorBoundary (/startdir/src/qwen-code/packages/web-shell/client/components/ErrorBoundary.tsx:11:1)
    at DaemonStatusDialog (/startdir/src/qwen-code/packages/web-shell/client/components/dialogs/DaemonStatusDialog.tsx:1540:50)
    at I18nProvider (/startdir/src/qwen-code/packages/web-shell/client/i18n.tsx:6284:3)

 ✓ components/dialogs/DaemonStatusDialog.test.tsx (36 tests) 215ms
 ✓ components/channels/ChannelEditorDialog.test.tsx (29 tests) 798ms
 ✓ components/WorkspaceSessionProvider.test.tsx (28 tests) 68ms
stderr | components/dialogs/GitDialog.test.tsx > GitDialog > binds the created PR to the current session
[GitDialog] PR generation failed: TypeError: Cannot read properties of undefined (reading 'answer')
    at /startdir/src/qwen-code/packages/web-shell/client/components/dialogs/GitDialog.tsx:475:26

stderr | components/dialogs/GitDialog.test.tsx > GitDialog > keeps the PR-creation success when the session binding fails
[GitDialog] PR generation failed: TypeError: Cannot read properties of undefined (reading 'answer')
    at /startdir/src/qwen-code/packages/web-shell/client/components/dialogs/GitDialog.tsx:475:26

 ✓ components/dialogs/GitDialog.test.tsx (16 tests) 328ms
 ✓ hooks/useFileUpload.test.tsx (28 tests) 34ms
 ✓ components/messages/MarkdownChartRenderer.test.tsx (26 tests) 327ms
 ✓ components/panels/EnvironmentPanel.test.tsx (36 tests) 194ms
 ✓ components/sidebar/StandaloneRecents.test.tsx (37 tests) 151ms
 ✓ components/messages/UserMessage.test.tsx (47 tests) 76ms
 ✓ components/sidebar/SessionDetailsTooltip.test.tsx (17 tests) 422ms
 ✓ components/dialogs/AddWorkspaceDialog.test.tsx (36 tests) 369ms
 ✓ voice/VoiceButton.test.tsx (32 tests) 67ms
 ✓ components/dialogs/GoalsDialog.test.tsx (38 tests) 222ms
 ✓ components/channels/ChannelPairingRequests.test.tsx (26 tests) 230ms
 ✓ components/channels/ChannelsManagerPage.test.tsx (18 tests) 460ms
stderr | local-files/useLocalFilesBridge.test.tsx > useLocalFilesBridge connect > picks, persists, and registers against the session
An update to Probe 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 | local-files/useLocalFilesBridge.test.tsx > useLocalFilesBridge connect > picks, persists, and registers against the session
An update to Probe 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 | local-files/useLocalFilesBridge.test.tsx > useLocalFilesBridge connect > keeps the grant when no session exists yet and starts once one appears
An update to Probe 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 | local-files/useLocalFilesBridge.test.tsx > useLocalFilesBridge restore > does not start a bridge from an ungranted handle on session switch
An update to Probe 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 | local-files/useLocalFilesBridge.test.tsx > useLocalFilesBridge teardown > opens one picker when connect is clicked twice
You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);

 ✓ local-files/useLocalFilesBridge.test.tsx (22 tests) 32ms
 ✓ components/messages/WorkflowExecutionView.test.tsx (13 tests) 233ms
 ✓ components/composer/AddMenu.test.tsx (22 tests) 2635ms
   ✓ AddMenu > reference-file submenu > shows the root listing and browses into folders without closing  326ms
   ✓ AddMenu > reference-file submenu > searches the workspace and inserts a file reference on select  338ms
   ✓ AddMenu > MCP submenu > inserts a server-level reference even for servers with resources  303ms
 ✓ voice/useVoiceCapture.test.tsx (23 tests) 44ms
stderr | components/extensions/ExtensionsManagerPage.test.tsx > ExtensionsManagerPage activation refresh > keeps the last known trust when the reload loses the activation projection
Select is changing from controlled to uncontrolled. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.
Select is changing from controlled to uncontrolled. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.

 ✓ components/extensions/ExtensionsManagerPage.test.tsx (13 tests) 640ms
 ✓ components/sidebar/useWorkspaceOverview.test.tsx (23 tests) 31ms
stderr | components/workflows/WorkflowRunsPage.test.tsx > WorkflowRunsPage > drops the previous session's load failure when the session changes
[web-shell] failed to load workflow runs: Error: boom
    at /startdir/src/qwen-code/packages/web-shell/client/components/workflows/WorkflowRunsPage.test.tsx:253: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 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)

 ✓ components/workflows/WorkflowRunsPage.test.tsx (14 tests) 319ms
 ✓ components/artifacts/TokenUsagePanel.test.tsx (34 tests) 162ms
 ✓ components/WebShellTranscript.dom.test.tsx (22 tests) 183ms
 ✓ components/messages/AssistantMessage.test.tsx (26 tests) 191ms
 ✓ hooks/useSessionArtifacts.test.tsx (13 tests) 22ms
 ✓ components/messages/SystemMessage.test.tsx (37 tests) 72ms
 ✓ components/artifacts/CodeReviewArtifactDetail.test.tsx (20 tests) 102ms
 ✓ components/workspaces/useWorkspaceRemoval.test.tsx (17 tests) 25ms
 ✓ session-catalog/session-catalog-hooks.test.tsx (15 tests) 37ms
 ✓ components/artifacts/SideTaskPanel.test.tsx (18 tests) 41ms
 ✓ components/StandaloneAuth.test.tsx (33 tests) 90ms
 ✓ components/workspaces/WorkspacesOverviewPanel.test.tsx (18 tests) 279ms
 ✓ components/artifacts/TurnOutputs.dom.test.tsx (9 tests) 59ms
 ✓ components/messages/SettingsMessage.dom.test.tsx (15 tests) 210ms
 ✓ hooks/useBackgroundTasks.test.tsx (15 tests) 27ms
 ✓ hooks/useComposerCore.mobile.dom.test.tsx (21 tests) 182ms
 ✓ components/QueuedPromptDisplay.test.tsx (27 tests) 58ms
 ✓ components/sidebar/WorkspaceDetailsTooltip.test.tsx (17 tests) 196ms
 ✓ components/TranscriptViewport.scroll.test.tsx (11 tests) 787ms
 ✓ components/MessageItem.dom.test.tsx (13 tests) 36ms
 ✓ daemon/workspace/hooks/useDaemonSkills.test.tsx (9 tests) 20ms
 ✓ components/PaneHeaderActions.test.tsx (11 tests) 186ms
 ✓ main.test.tsx (15 tests) 61ms
 ✓ components/dialogs/GitDiffDialog.test.tsx (14 tests) 168ms
 ✓ components/skills/SkillsManagerPage.test.tsx (11 tests) 434ms
 ✓ hooks/useAnimationFrameTranscriptBlocks.test.tsx (10 tests) 17ms
 ✓ components/artifacts/ContextUsagePanel.test.tsx (20 tests) 109ms
 ✓ utils/imageIngestion.test.ts (53 tests) 10ms
 ✓ components/StreamingStatus.test.tsx (15 tests) 34ms
 ✓ daemon/workspace/hooks/useDaemonChannels.test.tsx (10 tests) 18ms
 ✓ components/sidebar/useSessionContentSearch.test.tsx (15 tests) 24ms
 ✓ boot-watchdog.test.ts (16 tests) 49ms
 ✓ config/daemon.test.ts (27 tests) 17ms
 ✓ index.test.tsx (18 tests) 52ms
 ✓ components/messages/ModelManagementSection.dom.test.tsx (14 tests) 44ms
 ✓ components/terminal/TerminalPanel.test.tsx (19 tests) 48ms
 ✓ hooks/useSessionArtifactsChange.test.tsx (9 tests) 20ms
 ✓ components/artifacts/artifactUtils.test.ts (36 tests) 17ms
 ✓ hooks/useNewSessionSuggestion.test.tsx (19 tests) 23ms
 ✓ components/TranscriptViewport.pending.test.tsx (8 tests) 546ms
 ✓ components/AtMentionPanel.test.tsx (14 tests) 78ms
 ✓ components/dialogs/GitLogDialog.test.tsx (14 tests) 176ms
stderr | components/TranscriptViewport.test.tsx > TranscriptViewport > pins the visible child of an expanded cross-page tool group
An update to ForwardRef(TranscriptViewport2) 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 ForwardRef(TranscriptViewport2) 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 | components/TranscriptViewport.test.tsx > TranscriptViewport > pins the visible child of an expanded cross-page tool group
An update to ForwardRef(TranscriptViewport2) 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 ForwardRef(TranscriptViewport2) 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

 ✓ components/TranscriptViewport.test.tsx (9 tests) 513ms
stderr | components/sidebar/WebShellSidebar.brand.test.tsx > sidebar brand > gives a replacement logo a fresh mount after a decode failure
[web-shell] brand logo could not be rendered; falling back to the built-in mark

 ✓ components/sidebar/WebShellSidebar.brand.test.tsx (10 tests) 117ms
 ✓ hooks/useListboxKeyboard.test.tsx (16 tests) 70ms
 ✓ browser-turn-notifications.test.tsx (9 tests) 185ms
 ✓ components/artifacts/SubagentDetail.integration.test.tsx (5 tests) 34ms
 ✓ components/WebShellTranscript.test.tsx (7 tests) 57ms
 ✓ components/messages/McpApp.dom.test.tsx (7 tests) 76ms
 ✓ components/WorkspaceSessionProvider.loading.test.tsx (6 tests) 2690ms
   ✓ loads once and survives a refresh failure (StrictMode=false, initialFailure='none')  341ms
   ✓ loads once and survives a refresh failure (StrictMode=false, initialFailure='http')  511ms
   ✓ loads once and survives a refresh failure (StrictMode=false, initialFailure='network')  510ms
   ✓ loads once and survives a refresh failure (StrictMode=true, initialFailure='none')  309ms
   ✓ loads once and survives a refresh failure (StrictMode=true, initialFailure='http')  511ms
   ✓ loads once and survives a refresh failure (StrictMode=true, initialFailure='network')  508ms
 ✓ components/sidebar/WorkspaceMenu.test.tsx (10 tests) 250ms
 ✓ components/messages/tools/SubAgentPanel.test.tsx (11 tests) 43ms
 ✓ components/dialogs/ReleaseSessionDialog.test.tsx (6 tests) 63ms
 ✓ components/GlobalTurnNavigation.test.tsx (11 tests) 399ms
 ✓ utils/linkify.test.ts (59 tests) 5ms
 ✓ components/plugins/PluginManagerPage.test.tsx (4 tests) 137ms
 ✓ components/LocalFilesControl.test.tsx (9 tests) 33ms
 ✓ components/sidebar/WebShellSidebar.footer-version.test.tsx (4 tests) 117ms
 ✓ components/dialogs/DialogShell.test.tsx (8 tests) 105ms
 ✓ components/dialogs/UsageDashboardTab.test.tsx (8 tests) 116ms
 ✓ components/LocalFilesPanel.test.tsx (25 tests) 46ms
 ✓ components/dialogs/DeleteSessionDialog.test.tsx (6 tests) 67ms
 ✓ components/dialogs/GitHubPrsDialog.test.tsx (12 tests) 58ms
 ✓ components/GoalStatusStrip.test.tsx (11 tests) 40ms
 ✓ components/artifacts/SourcePreview.test.tsx (7 tests) 85ms
 ✓ components/workflow/SessionWorkflowInspector.test.tsx (3 tests) 49ms
 ✓ components/GitBranchIndicator.test.tsx (11 tests) 46ms
 ✓ hooks/useOtherWorkspaceSessions.test.tsx (6 tests) 15ms
 ✓ components/WorkspaceIndicator.test.tsx (6 tests) 73ms
 ✓ components/messages/ContextUsageMessage.test.tsx (7 tests) 49ms
 ✓ daemon/session/clientLifecycle.test.ts (18 tests) 8ms
 ✓ components/ui/data-table.test.tsx (5 tests) 42ms
 ✓ components/messages/Markdown.mermaid.test.ts (4 tests) 103ms
 ✓ components/messages/ToolApproval.test.ts (6 tests) 23ms
 ✓ components/messages/PlanMessage.test.tsx (8 tests) 34ms
 ✓ live/useLiveVoice.test.tsx (4 tests) 16ms
 ✓ components/LocalControlQrButton.test.tsx (5 tests) 48ms
 ✓ components/sidebar/WorkspaceRenameDialog.test.tsx (7 tests) 104ms
 ✓ live/LiveVoiceButton.test.tsx (5 tests) 82ms
 ✓ components/sidebar/WebShellSidebar.local-files-footer.test.tsx (3 tests) 67ms
 ✓ hooks/useIsTouchComposer.test.tsx (9 tests) 17ms
 ✓ components/WorkspaceSelector.test.tsx (5 tests) 491ms
   ✓ WorkspaceSelector > keeps the trigger tooltip closed after dismissing the menu  372ms
 ✓ components/RootErrorFallback.test.tsx (7 tests) 46ms
 ✓ components/dialogs/SessionRow.test.tsx (7 tests) 39ms
 ✓ components/dialogs/ModelFallbacksDialog.dom.test.tsx (8 tests) 35ms
 ✓ utils/clipboard.test.ts (8 tests) 15ms
 ✓ hooks/useScopedSessions.test.tsx (3 tests) 25ms
 ✓ components/workflow/session-workflow-model.test.ts (8 tests) 10ms
 ✓ components/ChatContextHeader.test.tsx (10 tests) 40ms
 ✓ components/dialogs/ModelDialog.test.tsx (5 tests) 34ms
 ✓ daemon/workspace/hooks/useDaemonResource.test.tsx (5 tests) 12ms
 ✓ voice/use-voice-workspace-settings.test.tsx (4 tests) 11ms
 ✓ components/messages/AuthMessage.dom.test.tsx (5 tests) 47ms
 ✓ components/messages/TodoView.test.tsx (4 tests) 32ms
 ✓ components/ToastHost.test.tsx (5 tests) 22ms
 ✓ components/dialogs/ResumeDialog.test.tsx (4 tests) 44ms
 ✓ components/dialogs/RewindDialog.test.tsx (5 tests) 43ms
 ✓ components/ErrorBoundary.test.tsx (6 tests) 23ms
 ✓ components/ui/react18-ref-compat.test.tsx (30 tests) 54ms
 ✓ components/messages/LinkifiedText.test.tsx (8 tests) 22ms
 ✓ components/messages/Markdown.coldHighlight.test.ts (2 tests) 30ms
 ✓ hooks/useSessionSources.test.tsx (5 tests) 13ms
 ✓ hooks/useFilterInput.test.tsx (3 tests) 21ms
 ✓ components/dialogs/GoalEditDialog.test.tsx (4 tests) 81ms
 ✓ hooks/useExternalLinkOpener.test.ts (5 tests) 21ms
 ✓ live/useLiveVoiceSetup.test.tsx (3 tests) 14ms
 ✓ components/messages/AssistantMessage.thinking-memo.test.tsx (2 tests) 31ms
 ✓ daemon/workspace/hooks/useDaemonProviders.test.tsx (3 tests) 10ms
 ✓ daemon/workspace/hooks/useDaemonMcp.test.tsx (2 tests) 9ms
 ✓ utils/splitUrl.test.ts (16 tests) 6ms
 ✓ components/dialogs/ApprovalModeDialog.test.tsx (5 tests) 31ms
 ✓ components/artifacts/ArtifactIcon.test.tsx (10 tests) 8ms
 ✓ components/Editor.keymap.test.ts (5 tests) 26ms
 ✓ components/artifacts/AgentWorkflow.test.tsx (4 tests) 33ms
 ✓ live/HotkeySetter.test.tsx (4 tests) 32ms
 ✓ components/MessageTimestamp.test.tsx (6 tests) 18ms
 ✓ components/sidebar/SessionGroupSection.test.tsx (3 tests) 28ms
 ✓ components/workflow/SessionWorkflowCockpit.test.tsx (2 tests) 34ms
 ✓ components/panels/TodoPanel.test.tsx (3 tests) 23ms
 ✓ hooks/useIsLargeScreen.test.tsx (4 tests) 17ms
 ✓ components/dialogs/SvgLineChart.test.tsx (4 tests) 22ms
 ✓ main-boot.test.tsx (2 tests) 191ms
 ✓ daemon/workspace/hooks/useDaemonStatusReport.test.tsx (2 tests) 10ms
 ✓ components/workflow/session-workflow-model.index.test.ts (1 test) 2ms
 ✓ components/SessionPrBadge.test.tsx (2 tests) 24ms
 ✓ utils/copyCommand.noClipboard.test.ts (2 tests) 10ms
 ✓ components/dialogs/TokenHeatmap.test.tsx (3 tests) 83ms
 ✓ components/dialogs/ThemeDialog.test.tsx (1 test) 18ms
 ✓ components/dialogs/ToolsDialog.test.tsx (1 test) 22ms
 ✓ utils/externalOpen.test.ts (6 tests) 4ms
 ✓ shadowDom.test.ts (14 tests) 11ms
 ✓ components/ui/management-notice.test.tsx (4 tests) 28ms
 ✓ components/StatusBar.workflow.test.tsx (2 tests) 14ms
 ✓ components/messages/StatusMessage.test.tsx (3 tests) 16ms
 ✓ hooks/useCopiedFlash.test.tsx (3 tests) 11ms
 ✓ components/sidebar/collapsedSessionSections.test.ts (2 tests) 3ms
 ✓ components/sidebar/workspaceExpansion.test.ts (3 tests) 3ms
 ✓ hooks/usePrefersReducedMotion.test.tsx (1 test) 15ms
 ✓ components/WelcomeHeader.test.tsx (3 tests) 13ms
 ✓ components/FileTypeIcon.test.tsx (16 tests) 19ms
 ✓ components/sidebar/sessionDetailsCollisionBoundary.test.ts (4 tests) 7ms
 ✓ test/setup.test.ts (1 test) 2ms
stdout | daemon/session/actions.test.ts > createDaemonSessionActions > setDaemonActivePrompt (#9487) > settles the prompt state when the daemon reports the turn finished
[DaemonSessionActions] settled turn from daemon prompt state (sessionId=session-1, daemonActivePrompt=false)

stdout | daemon/session/actions.test.ts > createDaemonSessionActions > setDaemonActivePrompt (#9487) > settles when the authority itself goes unknown
[DaemonSessionActions] settled turn from daemon prompt state (sessionId=session-1, daemonActivePrompt=undefined)

stdout | daemon/session/actions.test.ts > createDaemonSessionActions > setDaemonActivePrompt (#9487) > never revives a settled turn
[DaemonSessionActions] settled turn from daemon prompt state (sessionId=session-1, daemonActivePrompt=undefined)

stdout | daemon/session/actions.test.ts > createDaemonSessionActions > setDaemonActivePrompt (#9487) > does not carry a true-to-false edge across sessions
[DaemonSessionActions] settled turn from daemon prompt state (sessionId=session-b, daemonActivePrompt=false)

stdout | daemon/session/actions.test.ts > createDaemonSessionActions > setDaemonActivePrompt (#9487) > settles a restored prompt the event stream can no longer settle
[DaemonSessionActions] settled turn from daemon prompt state (sessionId=session-restored, daemonActivePrompt=false)

stdout | daemon/session/actions.test.ts > createDaemonSessionActions > setDaemonActivePrompt (#9487) > keeps the armed passive timer when no assistant block is active
[DaemonSessionActions] settled turn from daemon prompt state (sessionId=session-1, daemonActivePrompt=false)

stdout | daemon/session/actions.test.ts > createDaemonSessionActions > setDaemonActivePrompt (#9487) > closes the active assistant block when settling
[DaemonSessionActions] settled turn from daemon prompt state (sessionId=session-1, daemonActivePrompt=false)

stdout | daemon/session/actions.test.ts > createDaemonSessionActions > keeps legacy mid-turn admission failures best-effort
[enqueueMidTurnMessage] legacy push failed; kept for next turn Error: daemon unavailable
    at /startdir/src/qwen-code/packages/web-shell/client/daemon/session/actions.test.ts:4059:32
    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)

stdout | daemon/session/actions.test.ts > createDaemonSessionActions > resolves undefined when getMidTurnMessages fails instead of throwing
[getMidTurnMessages] reconciliation query failed; keeping current state Error: daemon 500
    at /startdir/src/qwen-code/packages/web-shell/client/daemon/session/actions.test.ts:4073:53
    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)

stderr | daemon/session/actions.test.ts > accepted attachment sources > keeps accepted attachment registration when cancelled admission is cleanup failed
[submitPrompt] removePendingPrompt failed after abort Error: offline
    at /startdir/src/qwen-code/packages/web-shell/client/daemon/session/actions.test.ts:4885:59
    at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:863:59
    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)

 ✓ daemon/session/actions.test.ts (198 tests) 360ms
 ✓ adapters/transcriptToMessages.test.ts (178 tests) 30ms
 ✓ components/MessageList.test.ts (149 tests) 31ms
 ✓ daemon/session/turn-navigation-store.test.ts (70 tests) 3816ms
 ✓ utils/todos.test.ts (84 tests) 11ms
 ✓ daemon/session/mappers.test.ts (62 tests) 9ms
 ✓ daemon/session/transcript-page-table.test.ts (34 tests) 13ms
 ✓ local-files/bridge-client.test.ts (42 tests) 198ms
 ✓ components/artifacts/turnOutputSelectors.test.ts (31 tests) 10ms
 ✓ components/channels/channel-editor-state.test.ts (37 tests) 6ms
 ✓ daemon/workspace/actions.test.ts (22 tests) 11ms
 ✓ utils/sessionPreparation.test.ts (27 tests) 116ms
 ✓ local-files/local-directory.test.ts (51 tests) 10ms
 ✓ completions/slashCompletion.test.ts (23 tests) 14ms
 ✓ components/sidebar/workspaceOverviewModel.test.ts (24 tests) 4ms
 ✓ utils/composerTag.test.ts (30 tests) 4ms
 ✓ components/messages/toolFormatting.test.ts (51 tests) 5ms
 ✓ build-artifact.test.ts (17 tests) 473ms
stderr | index-html.test.ts > brand pre-paint script > leaves the built-in title and logo alone when the cache is corrupt
brand-init: SyntaxError: Expected property name or '}' in JSON at position 1 (line 1 column 2)
    at JSON.parse (<anonymous>)
    at eval (eval at runBrandScript (/startdir/src/qwen-code/packages/web-shell/client/index-html.test.ts:259:5), <anonymous>:4:34)
    at eval (eval at runBrandScript (/startdir/src/qwen-code/packages/web-shell/client/index-html.test.ts:259:5), <anonymous>:4:266)
    at runBrandScript (/startdir/src/qwen-code/packages/web-shell/client/index-html.test.ts:259:48)
    at /startdir/src/qwen-code/packages/web-shell/client/index-html.test.ts:292:12
    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)

 ✓ index-html.test.ts (17 tests) 49ms
stdout | 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)

 ✓ daemon/midTurnInjectedSidechannel.test.ts (19 tests) 5ms
 ✓ local-files/mcp-server.test.ts (26 tests) 6ms
 ✓ daemon/session/session-context.test.ts (9 tests) 4ms
 ✓ midTurnDedup.test.ts (21 tests) 4ms
 ✓ voice/voice-workspace-target.test.ts (24 tests) 5ms
 ✓ adapters/transcriptAdapter.test.ts (13 tests) 4ms
 ✓ components/dialogs/scheduledTasksSchedule.test.ts (17 tests) 20ms
 ✓ daemon/session/selectors.test.ts (9 tests) 4ms
 ✓ daemon/session/DaemonSessionProvider.subagent.test.ts (10 tests) 6ms
 ✓ local-files/directory-handle-store.test.ts (9 tests) 3ms
 ✓ utils/copyCommand.test.ts (13 tests) 5ms
 ✓ components/messages/agentForest.test.ts (19 tests) 4ms
 ✓ constants/localCommands.test.ts (11 tests) 3ms
 ✓ visual-capture-contracts.test.ts (3 tests) 3ms
 ✓ components/artifacts/TurnOutputs.test.ts (23 tests) 3ms
 ✓ daemon/session/turn-notification-context.test.ts (12 tests) 5ms
 ✓ components/sidebar/sessionSearch.test.ts (14 tests) 3ms
 ✓ daemon/workspace/scheduledTasks.actions.test.ts (11 tests) 6ms
 ✓ daemon/workspace/goals.actions.test.ts (11 tests) 5ms
 ✓ utils/ansi.test.ts (9 tests) 3ms
 ✓ components/sidebar/session-action-visibility.test.ts (7 tests) 2ms
 ✓ vite-config.test.ts (9 tests) 3ms
 ✓ utils/goalCondition.test.ts (28 tests) 4ms
 ✓ utils/modelEncoding.test.ts (24 tests) 3ms
 ✓ daemon/session/promptContent.test.ts (12 tests) 3ms
 ✓ adapters/toolClassification.test.ts (22 tests) 3ms
 ✓ components/sidebar/channelSessionGroups.test.ts (4 tests) 2ms
 ✓ local-files/pick-directory.test.ts (10 tests) 4ms
 ✓ daemon/pendingPromptVersion.test.ts (7 tests) 25ms
 ✓ components/sidebar/scheduled-task-session-groups.test.ts (6 tests) 3ms
 ✓ utils/workflowTasks.test.ts (8 tests) 2ms
 ✓ components/sidebar/WebShellSidebar.css.test.ts (6 tests) 15ms
 ✓ components/toolbarDropdown.test.ts (7 tests) 3ms
 ✓ utils/workspace.test.ts (11 tests) 3ms
 ✓ daemon/session/live-journal-repair.test.ts (3 tests) 2ms
 ✓ components/artifacts/codeReviewContract.test.ts (2 tests) 3ms
 ✓ components/messages/McpApp.test.ts (9 tests) 3ms
 ✓ hooks/useComposerCore.test.ts (8 tests) 2ms
 ✓ components/messages/codeHighlighter.retry.test.ts (4 tests) 4ms
 ✓ utils/sessionPath.test.ts (18 tests) 3ms
 ✓ utils/composerInputState.test.ts (7 tests) 2ms
 ✓ utils/taskActivity.test.ts (4 tests) 2ms
 ✓ utils/goalGate.test.ts (4 tests) 2ms
 ✓ components/messages/toolFormatting.agentType.test.ts (4 tests) 2ms
 ✓ local-files/capabilities.test.ts (7 tests) 2ms
 ✓ components/agents/agents-manager-logic.test.ts (7 tests) 2ms
 ✓ components/messages/codeHighlighter.test.ts (6 tests) 68ms
 ✓ utils/goalControlRequest.test.ts (4 tests) 2ms
 ✓ utils/composerTasks.test.ts (2 tests) 1ms
 ✓ index-html-boot.test.ts (2 tests) 79ms
 ✓ components/artifacts/useArtifactWorkspaceTarget.test.ts (9 tests) 2ms
 ✓ components/messages/SettingsMessage.test.ts (10 tests) 2ms
 ✓ utils/workspaceColor.test.ts (5 tests) 2ms
 ✓ utils/monitorTasks.test.ts (4 tests) 2ms
 ✓ utils/escapeIntent.test.ts (9 tests) 2ms
 ✓ components/skills/skills-manager-logic.test.ts (4 tests) 2ms
 ✓ utils/slashSectionPlan.test.ts (6 tests) 2ms
 ✓ components/agents/agent-tool-options.test.ts (3 tests) 2ms
 ✓ utils/unifiedDiff.test.ts (2 tests) 2ms
 ✓ utils/standalone-session-routing.test.ts (3 tests) 3ms
 ✓ utils/localCommandQueue.test.ts (5 tests) 3ms
 ✓ components/messages/toolFormatting.drift.test.ts (2 tests) 2ms
 ✓ utils/composerModels.test.ts (6 tests) 1ms
 ✓ hooks/useQueuedPrompts.test.ts (6 tests) 2ms
 ✓ components/extensions/extensions-manager-logic.test.ts (3 tests) 2ms
 ✓ components/channels/channel-platform.test.ts (2 tests) 2ms
 ✓ utils/modelSwitchMessages.test.ts (3 tests) 2ms
 ✓ components/workflow/SessionWorkflowCockpit.css.test.ts (3 tests) 2ms
 ✓ utils/sessionErrors.test.ts (3 tests) 2ms
 ✓ utils/timeAgo.test.ts (18 tests) 17ms
 ✓ components/GitModePopover.test.tsx (16 tests) 3ms
 ✓ components/composer/prependSkillInvocation.test.ts (6 tests) 2ms
 ✓ utils/bounded-map.test.ts (4 tests) 2ms
 ✓ components/workflow/SessionWorkflowInspector.css.test.ts (2 tests) 1ms
 ✓ components/sidebar/sidebarToggleShortcut.test.ts (5 tests) 2ms
 ✓ utils/gitModeIntent.test.ts (4 tests) 1ms
 ✓ components/artifacts/SubagentDetail.test.tsx (2 tests) 2ms
 ✓ daemon/session/status.test.ts (4 tests) 1ms
 ✓ utils/askUserPermission.test.ts (3 tests) 1ms
 ✓ utils/formatDateTime.test.ts (4 tests) 1ms
 ✓ utils/queueDrain.test.ts (8 tests) 2ms
 ✓ utils/promptAdmission.test.ts (11 tests) 2ms
 ✓ utils/formatTokenCount.test.ts (3 tests) 1ms
 ✓ daemon/session/httpErrors.test.ts (4 tests) 1ms
 ✓ extensions/inputHighlight.test.ts (1 test) 3ms
 ✓ utils/contextUsage.test.ts (1 test) 1ms
 ✓ i18n.test.ts (1 test) 1ms
 ✓ hooks/useAtMentionSources.test.tsx (3 tests) 2ms
 ✓ utils/planMode.test.ts (7 tests) 2ms
 ✓ session-catalog/session-live-state-poll-interval.test.ts (16 tests) 2ms
 ✓ constants/sessions.test.ts (1 test) 1ms
 ✓ utils/cssUrlVar.test.ts (2 tests) 2ms

 Test Files  304 passed (304)
      Tests  7221 passed (7221)
   Start at  14:51:17
   Duration  207.44s (transform 5.77s, setup 1.16s, collect 29.23s, tests 111.90s, environment 31.98s, prepare 10.69s)

JUNIT report written to /startdir/src/qwen-code/packages/web-shell/junit.xml
npm notice run @qwen-code/channel-base@0.23.3 test

 RUN  v3.2.7 /startdir/src/qwen-code/packages/channels/base

[Channel:test-chan] preflight rejected reason=message_prefix_mismatch
[Channel:test-chan] preflight rejected reason=message_prefix_mismatch
[Channel:test-chan] preflight rejected reason=dm_disabled
[Channel:test-chan] preflight rejected reason=sender_denied
[Channel:test-chan] preflight rejected reason=group_disabled
[Channel:test-chan] preflight rejected reason=dm_disabled
[Channel:test-chan] preflight rejected reason=sender_denied
[Channel:test-chan] preflight rejected reason=sender_pairing_required
[test-chan] steer: cancelled active turn for alice in session s-1
[test-chan] steer: cancelled active turn for bob in session s-1
[test-chan] steer: cancelled active turn for bob in session s-1
[test-chan] steer: cancelled active turn for bob in session s-1
[test-chan] permission response failed for request req-1: send failed
[test-chan] permission relay failed for request req-1: send failed
[Channel:test-chan] preflight rejected reason=group_not_allowlisted
[Channel:test-chan] preflight rejected reason=group_pairing_required
[test-chan] worktree reset failed (worktree_reset_active): Could not reset task "feature".
[test-chan] named-session operation failed: Could not load task "feature". The current task was not changed. | cause: daemon rejected with worktree_reset_interrupted
[test-chan] named-session operation failed: Could not load task "feature". No replacement session was created. | cause: daemon rejected with worktree_reset_interrupted
[test-chan] named-session operation failed: Could not load task "feature". The current task was not changed. | cause: daemon rejected with worktree_reset_interrupted
[test-chan] named-session operation failed: Could not load task "feature". The current task was not changed. | cause: daemon rejected with worktree_marker_missing
[test-chan] worktree reset failed (session_not_found): Could not reset task "feature".
[test-chan] named-session operation failed: Could not reset task "feature". | cause: daemon rejected with session_not_found
[test-chan] named-session operation failed: Could not load task "feature". No replacement session was created. | cause: load failed
[test-chan] cancelSession failed for session=s-1: cancel failed
[test-chan] channel memory intent validation failed: iterator unavailable
[test-chan] channel memory intent validation failed: index unavailable
[test-chan] channel memory remove failed for sender=alice chat=chat1 thread=: Channel memory entry changed
[test-chan] channel memory update failed for sender=alice chat=chat1 thread=: unsafe\nbackend failure
[Channel:test-chan] preflight rejected reason=sender_denied
[Channel:test-chan] preflight rejected reason=sender_denied
[Channel:test-chan] preflight rejected reason=sender_denied
[Channel:test-chan] preflight rejected reason=sender_denied
[Channel:test-chan] preflight rejected reason=sender_denied
[test-chan] channel memory read failed for sender=alice chat=chat1 thread=: entry read unavailable
[test-chan] channel memory read failed for sender=alice chat=chat1 thread=: entry listing failed
[Channel:test-chan] preflight rejected reason=sender_denied
[test-chan] channel memory update failed for sender=alice chat=chat1 thread=: unsafe\nbackend failure
[test-chan] channel memory update failed for sender=alice chat=chat1 thread=: backend unavailable
[test-chan] /clear abandoned a wedged turn for session s-1 (chat unknown): it did not wind down within 3000ms
[test-chan] /clear abandoned a wedged turn for session s-1 (chat unknown): it did not wind down within 3000ms
[test-chan] shared session s-1 cleared by User 1 (sender user1)
[test-chan] shared session s-1 cleared by User 1 (sender user1)
[test-chan] shared session s-2 cleared by User 1 (sender user1)
[test-chan] shared session s-1 cleared by User 1 (sender user1)
[test-chan] shared session s-1 cleared by User 1 (sender boss)
[test-chan] shared session s-1 cleared by User 1 (sender boss)
[test-chan] shared session s-1 cleared by User 1 (sender boss)
[Channel:test-chan] preflight rejected reason=sender_denied
[test-chan] dropped queued turn from alice for session s-1: session was cleared before it ran (text: first)
[test-chan] channel memory read failed for sender=alice chat=chat1 thread=: entry listing failed
[test-chan] steer: cancelled active turn for alice in session s-1
[test-chan] turn m-cancel threw after cancellation for session s-1: bridge cancelled
[test-chan] turn m-stop threw after cancellation for session s-1: aborted
[test-chan] steer: cancelled active turn for user1 in session s-1
[test-chan] steer: cancelled active turn for user1 in session s-1
[test-chan] cancelSession failed for session=s-1: cancel failed
[Channel:test-chan] preflight rejected reason=sender_pairing_required
[Channel:test-chan] preflight rejected reason=group_pairing_required
[Channel:test-chan] preflight rejected reason=group_pairing_required
[Channel:test-chan] preflight rejected reason=group_pairing_required
[Channel:test-chan] preflight rejected reason=group_pairing_required
[Channel:test-chan] preflight rejected reason=group_pairing_required
[Channel:test-chan] preflight rejected reason=sender_denied
[Channel:test-chan] preflight rejected reason=sender_pairing_required
[Channel:test-chan] preflight rejected reason=group_pairing_required
[Channel:test-chan] preflight rejected reason=sender_pairing_required
[Channel:test-chan] preflight rejected reason=sender_pairing_required
[Channel:test-chan] preflight rejected reason=group_pairing_required
[test-chan] BTW request failed for session s-1: BTW response session did not match the request
[test-chan] steer: cancelled active turn for user1 in session s-1
[test-chan] steer: cancelled active turn for user1 in session s-1
[test-chan] steer: cancelled active turn for user1 in session s-1
[test-chan] steer denied for intruder in shared session (chat=g1); queuing instead
[test-chan] steer: cancelled active turn for mod in session s-1
[test-chan] steer: cancelled active turn for user1 in session s-1
[test-chan] /clear abandoned a wedged turn for session s-1 (chat chat1, message mA): it did not wind down within 3000ms
[test-chan] /clear abandoned a wedged turn for session s-1 (chat chat1, message mA): it did not wind down within 3000ms
[test-chan] onPromptEnd threw during /clear eviction for session s-1: adapter onPromptEnd boom
[test-chan] /clear abandoned a wedged turn for session s-1 (chat chat1, message mA): it did not wind down within 3000ms
[test-chan] shared session s-1 cleared by User 1 (sender alice)
[test-chan] dropped queued turn from bob for session s-1: session was cleared before it ran (text: task two)
[test-chan] steer: cancelled active turn for user1 in session s-1
[Channel:test-chan] preflight rejected reason=sender_denied
[test-chan] onPromptEnd threw in finally for session s-1: onPromptEnd boom
[test-chan] dropped webhook webhook:github-ci:ci_failed for session s-1: session was cleared before it ran
[test-chan] dropped webhook webhook:github-ci:ci_failed for session s-1: session was cleared before it ran
[test-chan] dropped loop job-1 for session s-1: session was cleared before it ran
[test-chan] retired timed out loop job-1 session s-1 after cancel did not settle
[test-chan] steer: cancelled active turn for alice in session s-1
[test-chan] dropped loop job-1 for session s-1: session was cleared before it ran
 ✓ src/ChannelBase.test.ts (692 tests) 15915ms
   ✓ ChannelBase > response delivery > delivers completion when cancellation outlives the reconciliation timeout  3072ms
   ✓ ChannelBase > loop prompts > runWebhookTask > waits for bridge recovery before resolving a webhook session  500ms
   ✓ ChannelBase > loop prompts > runWebhookTask > rechecks bridge recovery before a webhook prompt starts  551ms
   ✓ ChannelBase > loop prompts > waits for bridge recovery after adapter-specific preflight  502ms
   ✓ ChannelBase > loop prompts > rechecks bridge recovery after inbound preprocessing has started  501ms
   ✓ ChannelBase > loop prompts > rechecks bridge recovery before a loop prompt starts  551ms
 ✓ src/DaemonChannelBridge.test.ts (110 tests) 285ms
[SessionRouter] Failed to restore session old-session for key ch:alice:chat1: Invalid restored session ID
[SessionRouter] Failed to restore session old-session for key ch:alice:chat1: Invalid restored session ID
[SessionRouter] Failed to restore session session-1 for key ch:alice:chat1: Invalid restored session ID
[SessionRouter] Failed to restore session old-session for key ch:alice:chat1: Restored session died before routing completed
[SessionRouter] Failed to restore session old-session for key ch:alice:chat1: Invalid restored session ID
[SessionRouter] Failed to restore session old-bob for key ch:bob:chat2: Restored session died before routing completed
[SessionRouter] Failed to restore session worktree-session for key ch:alice:chat1: Session route operation was invalidated
[SessionRouter] Failed to restore session worktree-session for key ch:alice:chat1: Daemon did not attest the expected worktree for session worktree-session
[SessionRouter] Corrupted persist file at /tmp/qwen-router-PX9L2X/routes.json: Expected property name or '}' in JSON at position 1 (line 1 column 2)
[SessionRouter] Replaced unavailable session old-session for key ch:alice:chat1 after load failed: gone
[SessionRouter] Failed to load session old-session for key ch:alice:chat1 (temporarily gone) and failed to create a replacement (at capacity)
 ✓ src/SessionRouter.test.ts (153 tests) 163ms
[AcpBridge] Channel loop MCP server registration skipped: budget_warning_only
[AcpBridge] [perf] acp agent event loop stall: max=301000ms
[AcpBridge] ACP agent event loop stalled for 301000ms; killing child process to trigger restart
[AcpBridge] Process exited (code=null, signal=SIGKILL)
[AcpBridge] debug line\n[perf] acp agent event loop stall: max=301000ms
[AcpBridge] ACP agent event loop stalled for 301000ms; killing child process to trigger restart
[AcpBridge] [perf] acp agent event loop stall: max=299000ms
[AcpBridge] debug: acp agent event loop stall: max=301000ms
[AcpBridge] [perf] acp agent event loop stall: max=301000ms
[AcpBridge] Process exited (code=1, signal=null)
 ✓ src/AcpBridge.test.ts (58 tests) 13081ms
   ✓ AcpBridge > performs the private-parent capability handshake with the spawned child  1005ms
   ✓ AcpBridge > kills the ACP child when it reports a large event loop stall  1005ms
   ✓ AcpBridge > kills the ACP child when a stall line is coalesced with prior stderr  1006ms
   ✓ AcpBridge > does not kill the ACP child for a small event loop stall warning  1005ms
   ✓ AcpBridge > ignores non-perf stderr that mentions an event loop stall  1005ms
   ✓ AcpBridge > does not kill the ACP child again after it is already killed  1005ms
   ✓ AcpBridge > relays ACP permission requests instead of auto-approving them  1005ms
   ✓ AcpBridge > allows permission request listeners to respond synchronously  1006ms
   ✓ AcpBridge > falls back to the tool call id for permission requests without a session id  1005ms
   ✓ AcpBridge > resolves matching pending permissions as cancelled when a session is cancelled  1001ms
   ✓ AcpBridge > resolves pending permissions as cancelled after the response timeout  1005ms
   ✓ AcpBridge > resolves pending permissions as cancelled when the ACP child exits  1003ms
   ✓ AcpBridge > resolves pending permissions as cancelled on stop  1003ms
 ✓ src/named-session-manager.test.ts (46 tests) 42ms
[PairingStore] legacy migration of support-bot-allowlist.json failed for channel "support-bot": EISDIR: illegal operation on a directory, copyfile '/tmp/pairing-home-kA465i/channels/support-bot-allowlist.json' -> '/tmp/pairing-home-kA465i/channels/pairing-ws-a-mNg6eB-3e416e84e245/support-bot-allowlist.json.478658.migrating'; will retry on next start
[PairingStore] legacy migration of support-bot-pairing.json failed for channel "support-bot": EISDIR: illegal operation on a directory, copyfile '/tmp/pairing-home-NbsvmO/channels/support-bot-pairing.json' -> '/tmp/pairing-home-NbsvmO/channels/pairing-ws-a-r0wKzd-e09d1299602b/support-bot-pairing.json.478658.migrating'; will retry on next start
[PairingStore] legacy migration of support-bot-allowlist.json failed for channel "support-bot": EISDIR: illegal operation on a directory, copyfile '/tmp/pairing-home-8cipEr/channels/support-bot-allowlist.json' -> '/tmp/pairing-home-8cipEr/channels/pairing-ws-a-q5FrSD-3a1374bd1f88/support-bot-allowlist.json.478658.migrating'; will retry on next start
 ✓ src/PairingStore.test.ts (34 tests) 21ms
[scheduler] started, tick interval 1000ms, jobs 0, enabled 0, cleared stale running 0
[scheduler] invalid cron for loop job-1: Error: impossible cron
 ✓ src/ChannelLoopScheduler.test.ts (25 tests) 1036ms
 ✓ src/sanitize.test.ts (49 tests) 20ms
 ✓ src/channel-memory-recall-eval.test.ts (6 tests) 12ms
 ✓ src/message-prefix.test.ts (33 tests) 4ms
 ✓ src/ChannelLoopStore.test.ts (14 tests) 24ms
 ✓ src/channel-memory-recall.test.ts (17 tests) 6ms
 ✓ src/PollingChannelBase.test.ts (11 tests) 117ms
 ✓ src/GroupGate.test.ts (18 tests) 5ms
 ✓ src/ChannelLoopTools.test.ts (12 tests) 6ms
 ✓ src/channel-memory-intent.test.ts (10 tests) 6ms
 ✓ src/group-history-store.test.ts (13 tests) 7ms
 ✓ src/SenderGate.test.ts (16 tests) 5ms
 ✓ src/paths.test.ts (14 tests) 3ms
 ✓ src/DmGate.test.ts (4 tests) 2ms

 Test Files  20 passed (20)
      Tests  1335 passed (1335)
   Start at  14:54:45
   Duration  33.86s (transform 571ms, setup 0ms, collect 894ms, tests 30.76s, environment 2ms, prepare 754ms)

npm notice run @qwen-code/channel-telegram@0.23.3 test

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

[Telegram:telegram] Failed to download document: download unavailable
 ✓ src/TelegramAdapter.test.ts (49 tests) 46ms

 Test Files  1 passed (1)
      Tests  49 passed (49)
   Start at  14:55:19
   Duration  432ms (transform 156ms, setup 0ms, collect 259ms, tests 46ms, environment 0ms, prepare 38ms)

npm notice run @qwen-code/channel-weixin@0.23.3 test

 RUN  v3.2.7 /startdir/src/qwen-code/packages/channels/weixin

[Weixin:weixin] Connected to WeChat (https://wx.invalid)
[Weixin:weixin] Connected to WeChat (https://wx.invalid)
[Weixin:weixin] Connected to WeChat (https://wx.invalid)
[Weixin:weixin] Typing keepalive backstop (600000ms) elapsed for 1 session(s) in chat user-shared
 ✓ src/WeixinAdapter.test.ts (28 tests) 171ms
 ✓ src/send.test.ts (36 tests) 9ms
 ✓ src/accounts.test.ts (18 tests) 8ms
 ✓ src/media.test.ts (11 tests) 4ms
 ✓ src/monitor.test.ts (1 test) 2ms
 ✓ src/api.test.ts (3 tests) 4ms

 Test Files  6 passed (6)
      Tests  97 passed (97)
   Start at  14:55:20
   Duration  1.34s (transform 248ms, setup 0ms, collect 493ms, tests 199ms, environment 1ms, prepare 226ms)

npm notice run @qwen-code/channel-dingtalk@0.23.3 test

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

[DingTalk:test-dingtalk] Connected via stream.
[DingTalk:test-dingtalk] downstream type=SYSTEM topic=disconnect messageId=system-message bytes=89
[DingTalk:test-dingtalk] No sessionWebhook in message, skipping.
[DingTalk:test-dingtalk] No sessionWebhook in message, skipping.
[DingTalk:test-dingtalk] Disconnected.
[DingTalk:test-dingtalk] Disconnected.
[DingTalk:test-dingtalk] Disconnected.
[DingTalk:test-dingtalk] Disconnected.
[DingTalk:test-dingtalk] Disconnected.
[DingTalk:test-dingtalk] message msgId=message-quote conversationId=cid-quote isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=owner-1
[DingTalk:test-dingtalk] message msgId=message-quote conversationId=cid-quote isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=owner-1
[DingTalk:test-dingtalk] file markers projected (final=0, streamed=1)
[DingTalk:test-dingtalk] file markers projected (final=1, streamed=1)
[DingTalk:test-dingtalk] question card creation failed: Error: card unavailable
[DingTalk:test-dingtalk] message msgId=group-name-m1 conversationId=cid123 isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=thread-fallback-m1 conversationId=cid-thread-fallback isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-reply-m1 conversationId=cid-chat-record isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=direct-forward-m1 conversationId=cid-direct-forward isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=direct-forward-JSON conversationId=cid-direct-forward isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=direct-forward-plain text conversationId=cid-direct-forward isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-injection conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-ws-forge-VT conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-ws-forge-FF conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-ws-forge-NBSP conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-ws-forge-OGHAM-SPACE conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-ws-forge-EN-QUAD conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-ws-forge-HAIR-SPACE conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-ws-forge-NNBSP conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-ws-forge-MMSP conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-ws-forge-IDEOGRAPHIC-SPACE conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-nested-brackets conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-long-tag-summary-JSON conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-long-tag-summary-plain-text conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-oversized-tag-sender conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-unpaired-leading-bracket conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-unwrap-left-unpaired-bracket conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-title-forge-SYSTEM conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-title-forge-[SYSTEM] conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-title-forge-[[SYSTEM]] conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-title-only-forge conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-total-cap conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-astral-truncate conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-astral-units conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-shapes conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-misaligned conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-title-only conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-chatRecord conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-records conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-messages conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-bracket-forge conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-bracket-only conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-audio conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-video conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-link conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-share conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-control-only conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-oversized conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-mid-drop conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-overlong-entry conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-header-cap conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-nested-stall conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-unpaired-stall conversationId=cid-chat-record-dm isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-reply-entries conversationId=cid-chat-record isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-reply-budget conversationId=cid-chat-record isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=chat-record-astral-title conversationId=cid-chat-record isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=direct-text conversationId= isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=direct-picture conversationId= isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=direct-chatRecord conversationId= isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=direct-chatRecord conversationId= isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] chat record had no readable content (content keys: none)
[DingTalk:test-dingtalk] message msgId=direct-richText conversationId= isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=direct-picture conversationId= isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=direct-audio conversationId= isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=direct-audio conversationId= isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=direct-richText conversationId= isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=quoted-picture conversationId=cid-quoted-media isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=quoted-file conversationId=cid-quoted-media isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=quoted-audio conversationId=cid-quoted-media isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=quoted-video conversationId=cid-quoted-media isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=quoted-picture conversationId=cid-quoted-media isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=quoted-file conversationId=cid-quoted-media isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=quoted-richText conversationId=cid-quoted-media isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=quoted-combo conversationId=cid-quoted-media isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=quoted-two-images conversationId=cid-quoted-media isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=direct-file conversationId= isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=direct-audio conversationId= isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=direct-video conversationId= isGroup=false isMentioned=false senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=quoted-audio conversationId=cid-quoted-media isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=quoted-video conversationId=cid-quoted-media isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=quoted-file conversationId=cid-quoted-media isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] Connected via stream.
[DingTalk:test-dingtalk] Disconnected.
[DingTalk:test-dingtalk] Connected via stream.
[DingTalk:test-dingtalk] downstream type=SYSTEM topic=disconnect messageId=system-message bytes=89
[DingTalk:test-dingtalk] Disconnected.
[DingTalk:test-dingtalk] Disconnected.
[DingTalk:test-dingtalk] message msgId=structured-mentions conversationId=cid123 isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=bot-only-mention conversationId=cid123 isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=plural-mentions conversationId=cid123 isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=staffid-fallback conversationId=cid123 isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=no-chatbot-id conversationId=cid123 isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] message msgId=empty-text-mention conversationId=cid123 isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-1 senderId=sender-1
[DingTalk:test-dingtalk] Connected via stream.
[DingTalk:test-dingtalk] Disconnected.
[DingTalk:test-dingtalk] status card creation failed: Error: card unavailable
[DingTalk:real-dingtalk] message msgId=rejected-1 conversationId=cid-123 isGroup=true isMentioned=false senderNick=Alice senderStaffId=staff-123 senderId=sender-123
[DingTalk:real-dingtalk] message msgId=command-1 conversationId=cid-123 isGroup=true isMentioned=true senderNick=Alice senderStaffId=staff-123 senderId=sender-123
[DingTalk:real-dingtalk] No webhook for chatId cid-123, cannot send.
[DingTalk:real-dingtalk] No webhook for chatId cid-123, cannot send.
[DingTalk:test-dingtalk] file markers projected (final=1, streamed=0)
[DingTalk:test-dingtalk] file markers projected (final=1, streamed=0)
[DingTalk:test-dingtalk] file markers projected (final=1, streamed=0)
[DingTalk:test-dingtalk] No webhook for chatId dm-user-1, cannot send.
[DingTalk:test-dingtalk] background response delivery failed (attempt 1): DingTalk session webhook unavailable
[DingTalk:test-dingtalk] background response delivery failed (attempt 1): rate limited
[DingTalk:test-dingtalk] background response delivery failed (attempt 1): rate limited
[DingTalk:test-dingtalk] background response delivery failed (attempt 1): rate limited
[DingTalk:test-dingtalk] background response delivery failed (attempt 1): rate limited
[DingTalk:test-dingtalk] access token request failed: gettoken errcode=40001 invalid credential
[DingTalk:test-dingtalk] background response delivery failed (attempt 1): DingTalk access token request failed: gettoken errcode=40001 invalid credential
[DingTalk:test-dingtalk] background response delivery failed (attempt 1): rate limited
[DingTalk:test-dingtalk] background response target resolution failed: owner unavailable
[DingTalk:test-dingtalk] background response target resolution failed: owner unavailable
[DingTalk:test-dingtalk] background response target resolution failed: owner unavailable
[DingTalk:test-dingtalk] background response target resolution failed: owner unavailable
[DingTalk:test-dingtalk] background response target resolution failed: owner unavailable
[DingTalk:test-dingtalk] background response target resolution failed: owner unavailable
[DingTalk:test-dingtalk] background response delivery failed (attempt 1): rate limited
[DingTalk:test-dingtalk] background response target resolution failed: owner unavailable
[DingTalk:test-dingtalk] background response target resolution failed: owner unavailable
[DingTalk:test-dingtalk] file markers projected (final=1, streamed=0)
[DingTalk:test-dingtalk] sendMessage failed: fetch failed
[DingTalk:test-dingtalk] background response delivery failed (attempt 1): fetch failed
[DingTalk:test-dingtalk] file markers projected (final=1, streamed=0)
[DingTalk:test-dingtalk] sendMessage failed: fetch failed
[DingTalk:test-dingtalk] background response delivery failed (attempt 1): fetch failed
[DingTalk:test-dingtalk] sendMessage failed: fetch failed
[DingTalk:test-dingtalk] background response delivery failed (attempt 1): fetch failed
[DingTalk:test-dingtalk] Disconnected.
[DingTalk:test-dingtalk] background response delivery failed (attempt 1): rate limited
[DingTalk:test-dingtalk] background response delivery failed (attempt 1): rate limited
[DingTalk:test-dingtalk] background response delivery failed (attempt 1): rate limited
[DingTalk:test-dingtalk] background response delivery failed (attempt 1): rate limited
[DingTalk:test-dingtalk] background response delivery failed (attempt 1): first failed
[DingTalk:test-dingtalk] background response delivery failed (attempt 2): first retry failed
[DingTalk:test-dingtalk] background response delivery failed (attempt 3): second retry failed
[DingTalk:test-dingtalk] background response delivery failed (attempt 1): late content failed once
[DingTalk:test-dingtalk] background response delivery failed (attempt 1): first failed
[DingTalk:test-dingtalk] background response delivery failed (attempt 2): first retry failed
[DingTalk:test-dingtalk] background response delivery failed (attempt 3): second retry failed
[DingTalk:test-dingtalk] file markers projected (final=1, streamed=1)
[DingTalk:test-dingtalk] outbound file delivery failed (report.txt): DingTalk session webhook unavailable
[DingTalk:test-dingtalk] file markers projected (final=0, streamed=1)
[DingTalk:test-dingtalk] file markers projected (final=1, streamed=0)
[DingTalk:test-dingtalk] outbound file delivery failed (report.txt): DingTalk session webhook unavailable
[DingTalk:test-dingtalk] outbound image upload failed (missing.png): Image file not found: /workspace/missing.png
[DingTalk:test-dingtalk] sendMessage failed: reply fetch timed out
[DingTalk:test-dingtalk] file markers projected (final=1, streamed=0)
[DingTalk:test-dingtalk] file markers projected (final=1, streamed=0)
 ✓ src/DingtalkAdapter.test.ts (356 tests) 6948ms
   ✓ DingtalkChannel status cards > projects granular lifecycle phases into matching reactions and status cards  354ms
 ✓ src/interaction-presenter.test.ts (64 tests) 6465ms
   ✓ DingtalkInteractionPresenter > serializes lifecycle phases into the status card before output  503ms
   ✓ DingtalkInteractionPresenter > renders one escaped source label through running, streaming, and terminal cards  551ms
   ✓ DingtalkInteractionPresenter > adds the group sender only to the final model output  504ms
   ✓ DingtalkInteractionPresenter > finalizes an eagerly created card when a run completes without output  1602ms
   ✓ DingtalkInteractionPresenter > recovers at response boundaries after a transient card stream failure  503ms
   ✓ DingtalkInteractionPresenter > falls back at response boundaries after a permanent card stream failure  502ms
   ✓ DingtalkInteractionPresenter > does not fall back while terminal card recovery owns delivery  1005ms
 ✓ src/status-card-controller.test.ts (49 tests) 346ms
 ✓ src/question-card-controller.test.ts (20 tests) 15ms
 ✓ src/DingtalkConnectionManager.test.ts (26 tests) 18ms
 ✓ src/permission-card-controller.test.ts (25 tests) 68ms
 ✓ src/outbound-image.test.ts (16 tests) 9ms
 ✓ src/interactive-card-types.test.ts (12 tests) 5ms
 ✓ src/interactive-card-client.test.ts (16 tests) 10ms
 ✓ src/markdown.test.ts (25 tests) 5ms
 ✓ src/outbound-file.test.ts (18 tests) 9ms
[DingTalk] downloadMedia rejected: size 62914560 exceeds 52428800 byte limit
[DingTalk] downloadMedia rejected: actual size exceeds 52428800 byte limit
 ✓ src/media.test.ts (4 tests) 10ms
 ✓ src/presentation-phase.test.ts (27 tests) 3ms

 Test Files  13 passed (13)
      Tests  658 passed (658)
   Start at  14:55:22
   Duration  16.29s (transform 498ms, setup 0ms, collect 877ms, tests 13.91s, environment 2ms, prepare 514ms)

npm notice run @qwen-code/channel-wecom@0.23.3 test

 RUN  v3.2.7 /startdir/src/qwen-code/packages/channels/wecom

[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] WebSocket kicked; reconnecting after server kick.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] reconnected after server kick.
[WeCom:bot] Disconnected.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Disconnected.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Disconnected.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Disconnected.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] WebSocket closed; waiting for SDK reconnect.
[WeCom:bot] SDK reconnect did not recover after WebSocket closed; reconnecting adapter.
[WeCom:bot] WebSocket closed; reconnecting after SDK disconnect.
[WeCom:bot] Disconnected.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] WebSocket kicked; reconnecting after server kick.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] reconnected after server kick.
[WeCom:bot] WebSocket kicked; reconnecting after server kick.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] reconnected after server kick.
[WeCom:bot] WebSocket kicked; reconnecting after server kick.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] reconnected after server kick.
[WeCom:bot] WebSocket kicked; reconnecting after server kick.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] reconnected after server kick.
[WeCom:bot] Disconnected.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] WebSocket kicked; reconnecting after server kick.
[WeCom:bot] Disconnected.
[WeCom:bot] reconnect after server kick abandoned: connection generation changed.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Disconnected.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] WebSocket kicked; reconnecting after server kick.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] reconnected after server kick.
[WeCom:bot] Disconnected.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] WebSocket kicked; reconnecting after server kick.
[WeCom:bot] Disconnected.
[WeCom:bot] reconnect after server kick attempt 1 failed: WeCom connection was replaced before authentication.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] WebSocket kicked; reconnecting after server kick.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] reconnected after server kick.
[WeCom:bot] Disconnected.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] WebSocket kicked; reconnecting after server kick.
[WeCom:bot] reconnect after server kick attempt 1 failed: connect failed
[WeCom:bot] reconnect after server kick attempt 2 failed: connect failed
[WeCom:bot] reconnect after server kick attempt 3 failed: connect failed
[WeCom:bot] reconnect after server kick gave up after 3 attempts; retrying later.
[WeCom:bot] WebSocket kicked; reconnecting after server kick.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] reconnected after server kick.
[WeCom:bot] Disconnected.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] WebSocket errcode=45009 errmsg=another client connected; reconnecting after server kick.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] reconnected after server kick.
[WeCom:bot] dropping duplicate message msg-kick-preserve (already in flight).
[WeCom:bot] Disconnected.
[WeCom:bot] WebSocket errcode=45009 errmsg=another client connected; reconnecting after server kick.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Disconnected.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[Channel:bot] preflight rejected reason=group_disabled
[WeCom:bot] dropping message msg-unmentioned-image: preflight rejected.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[bot] blocked ! shell command from alice (sender alice) in chat group-1
[WeCom:bot] message handling failed for msg-preflight-fails: preflight failed
[WeCom:bot] Connected via smart bot.
[WeCom:bot] dropping duplicate message msg-preflight-pending (already in flight).
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Disconnected.
[WeCom:bot] dropping message msg-disconnect-during-download: connection changed during attachment download.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] skipping image attachment: unsafe media URL (example.invalid resolved to private address fe90::1).
[WeCom:bot] Connected via smart bot.
[WeCom:bot] skipping image attachment: unsafe media URL (example.invalid resolved to private address fec0::1).
[WeCom:bot] Connected via smart bot.
[WeCom:bot] skipping image attachment: unsafe media URL (example.invalid resolved to private address ff02::1).
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] skipping image attachment: unsafe media URL (private address 192.0.2.1).
[WeCom:bot] Connected via smart bot.
[WeCom:bot] skipping image attachment: unsafe media URL (private address 2001:db8::1).
[WeCom:bot] Connected via smart bot.
[WeCom:bot] skipping image attachment: unsafe media URL (private address 192.88.99.1).
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Disconnected.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
[WeCom:bot] Connected via smart bot.
 ✓ src/WeComAdapter.test.ts (143 tests) 5019ms
   ✓ WeComChannel > keeps files buffered during a coalesced prompt for the next prompt  304ms

 Test Files  1 passed (1)
      Tests  143 passed (143)
   Start at  14:55:38
   Duration  5.51s (transform 272ms, setup 0ms, collect 363ms, tests 5.02s, environment 0ms, prepare 40ms)

npm notice run @qwen-code/channel-feishu@0.23.3 test

 RUN  v3.2.7 /startdir/src/qwen-code/packages/channels/feishu

[Feishu:test] extractContent parse error (type=text): Unexpected token 'o', "not valid json" is not valid JSON
[Channel:test] preflight rejected reason=message_prefix_mismatch
[Channel:test] preflight rejected reason=message_prefix_mismatch
[Channel:test] preflight rejected reason=group_pairing_required
[Channel:test] preflight rejected reason=sender_pairing_required
[Feishu:test] input-request card finalization error: patch failed
[Feishu:test] Stop rejected: operator=different_user sender=original_user
[Feishu:test] Stop rejected: operator=n/a sender=original_user
[Feishu:test] Stop rejected: operator=some_user sender=n/a
stdout | src/adapter.test.ts > FeishuChannel > connect: WebSocket > rejects invalid credentials before starting WebSocket
[info]: [ 'event-dispatch is ready' ]

stdout | src/adapter.test.ts > FeishuChannel > connect: WebSocket > resolves after the SDK start promise without waiting for onReady
[info]: [ 'event-dispatch is ready' ]

[Feishu:test] getTenantAccessToken failed: HTTP 401
[Feishu:test] Bot open_id: bot_id
[Feishu:test] Connected via WebSocket.
[Feishu:test] Disconnected.
[Feishu:test] Disconnected.
[Feishu:test] Disconnected.
[Feishu:test] Disconnected.
[Feishu:test] getTenantAccessToken failed: HTTP 500
[Feishu:test] deleteCard failed: HTTP 404 msg=om_test_msg_id not found
[Feishu:test] deleteCard failed: HTTP 401 msg=om_test_msg_id unauthorized
[Feishu:test] updateCard failed: HTTP 401 unauthorized
[Feishu:test] getTenantAccessToken error: TypeError: Body is unusable: Body has already been read
[Feishu:test] getTenantAccessToken error: TypeError: Body is unusable: Body has already been read
[Feishu:test] onPromptEnd: no card and no accumulated text for inbound=inbound_1, sent error fallback
[Feishu:test] onPromptEnd: no card and no accumulated text for inbound=inbound_1, sent error fallback
 ✓ src/adapter.test.ts (168 tests) 3117ms
 ✓ src/question-card-controller.test.ts (49 tests) 425ms
 ✓ src/question-card.test.ts (31 tests) 6ms
 ✓ src/markdown.test.ts (28 tests) 5ms
[Feishu] downloadMedia failed: HTTP 404 Not found
[Feishu] downloadMedia rejected: size 62914560 exceeds 52428800 byte limit
[Feishu] downloadMedia rejected: actual size exceeds 52428800 byte limit
[Feishu] downloadMedia error: Network error
 ✓ src/media.test.ts (12 tests) 18ms

 Test Files  5 passed (5)
      Tests  288 passed (288)
   Start at  14:55:44
   Duration  4.74s (transform 363ms, setup 0ms, collect 583ms, tests 3.57s, environment 1ms, prepare 196ms)

npm notice run @qwen-code/channel-qqbot@0.23.3 test

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

[QQ:qq-bot] Unexpected senderOpenId format: uo
[QQ:qq-bot] Unexpected senderOpenId format: uo
[QQ:qq-bot] Slash cmd from Alice (grp-1): /clear
[QQ:qq-bot] Unexpected senderOpenId format: uo
[QQ:qq-bot] Slash cmd from Alice (grp-1): /clear
[QQ:qq-bot] Unexpected senderOpenId format: uo
[QQ:qq-bot] Unexpected senderOpenId format: uo
[QQ:qq-bot] Slash cmd from Alice (grp-1): /help
[QQ:qq-bot] Unexpected senderOpenId format: uo
[QQ:qq-bot] Unexpected senderOpenId format: uo
[QQ:qq-bot] Unexpected senderOpenId format: uo
[QQ:qq-bot] Slash cmd from Alice (grp-1): /compact
[QQ:test-bot] Send failed (HTTP 400: markdown unsupported)

[QQ:test-bot] Plain-text fallback succeeded for test-chat-id
[QQ:test-bot] Send failed (HTTP 400: markdown unsupported)

[QQ:test-bot] Active markdown retry succeeded for test-chat-id
[QQ:test-bot] Send failed (HTTP 500: )

[QQ:test-bot] Plain-text fallback succeeded for test-chat-id
[QQ:test-bot] resolveRoute: channel disposed, dropping message to test-chat-id
[QQ:test-bot] resolveRoute: no chat type for unknown-chat, dropping message
[QQ:test-bot] resolveRoute: invalid chatId rejected (length=12)
[QQ:test-bot] resolveRoute: token refresh failed (auth failed), dropping message to test-chat-id
[QQ:test-bot] Token refresh failed: token endpoint down, will retry

[QQ:test-bot] Token refresh retry failed (attempt 1): still down

[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: gateway down (retry in 2000ms, attempt 1/5)
[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: network down
[QQ:test-bot] <noreply> skipped for test-chat-id
[QQ:test-bot] Send failed (HTTP 400: markdown unsupported)

[QQ:test-bot] Plain-text fallback succeeded for test-chat-id
[QQ:test-bot] replyMsgId entry expired for test-chat-id, reply context expired, sending without msg_id
[QQ:test-bot] replyMsgId entry expired for test-chat-id, reply context expired, sending without msg_id
[QQ:test-bot] Send failed (HTTP 400: markdown rejected)

[QQ:test-bot] Active markdown retry failed (HTTP 500: active md failed) for test-chat-id
[QQ:test-bot] MESSAGE DROPPED: active text fallback failed (HTTP 500: active text failed) for test-chat-id
[QQ:test-bot] Send failed (HTTP 400: markdown rejected)

[QQ:test-bot] MESSAGE DROPPED: rate-limited (429) on active markdown retry for test-chat-id
[QQ:test-bot] Send error: connection reset
[QQ:test-bot] Send error: network error
[QQ:test-bot] <noreply> skipped for test-chat-id
[QQ:test-bot] <noreply> skipped for test-chat-id
[QQ:test-bot] <noreply> skipped for test-chat-id
[QQ:test-bot] MESSAGE DROPPED: rate-limited (429) on markdown attempt for test-chat-id
[QQ:test-bot] MESSAGE DROPPED: rate-limited (429) on markdown attempt for test-chat-id
[QQ:test-bot] sendMessage blocked: active messages disabled for test-chat-id
[QQ:test-bot] Send failed (HTTP 400: bad request)

[QQ:test-bot] MESSAGE DROPPED: active messages disabled for test-chat-id, cannot retry
[QQ:test-bot] WebSocket closed (code=4001)
[QQ:test-bot] Reconnecting in 1000ms (attempt 0/20)
[QQ:test-bot] restoreQQState: accepted 2 chatTypeMap entries (rejected 3)
[QQ:test-bot] restoreQQState: accepted 3 replyMsgId entries (rejected 3)
[QQ:test-bot] restoreQQState: accepted 1 replyMsgId entries (rejected 1)
[QQ:test-bot] restoreQQState: accepted 2 msgSeqMap entries (rejected 5)
[QQ:test-bot] restoreQQState: accepted 2 msgSeqMap entries (rejected 4)
[QQ:test-bot] Failed to restore QQ state: Unexpected token 'o', "not json{{{" is not valid JSON
[QQ:test-bot] Invalid QQ state file (not an object), ignoring
[QQ:test-bot] Invalid QQ state file (not an object), ignoring
[QQ:test-bot] Invalid QQ state file (not an object), ignoring
[QQ:test-bot] Invalid QQ state file (not an object), ignoring
(node:479953) PromiseRejectionHandledWarning: Promise rejection was handled asynchronously (rejection id: 21)
(Use `node --trace-warnings ...` to show where the warning was created)
[QQ:test-bot] Token refresh failed: auth failed, will retry

[QQ:test-bot] Token refresh retry failed (attempt 1): auth failed

[QQ:test-bot] Token refresh retry failed (attempt 2): auth failed

[QQ:test-bot] Token refresh retry failed (attempt 3): auth failed

[QQ:test-bot] Token refresh retry failed (attempt 4): auth failed

[QQ:test-bot] Token refresh retry failed (attempt 5): auth failed

[QQ:test-bot] Token refresh retry failed (attempt 6): auth failed

[QQ:test-bot] Token refresh retry failed (attempt 7): auth failed

[QQ:test-bot] Token refresh retry failed (attempt 8): auth failed

[QQ:test-bot] Token refresh retry failed (attempt 9): auth failed

[QQ:test-bot] Token refresh retry failed (attempt 10): auth failed

[QQ:test-bot] FATAL: token refresh exhausted, reconnecting

[QQ:test-bot] resolveRoute: token refresh failed (auth failed), dropping message to test-chat-id
[QQ:test-bot] resolveRoute: token refresh failed (auth failed), dropping message to test-chat-id
[QQ:test-bot] resolveRoute: token refresh failed (auth failed), dropping message to test-chat-id
[QQ:test-bot] Sending RESUME (session: resume-session-123)
 ✓ src/send.test.ts (98 tests) 40ms
[QQ:test-bot] C2C message dropped: missing author
[QQ:test-bot] Bot C2C message dropped
[QQ:test-bot] Invalid botOpenId format: bot-openid
[QQ:test-bot] Invalid botOpenId format: bot-openid
[QQ:test-bot] Invalid botOpenId format: bot-openid
[QQ:test-bot] Invalid botOpenId format: bot-openid
[QQ:test-bot] Invalid botOpenId format: bot-openid
[QQ:test-bot] Slash cmd from Bob (group-openid-1): /status
[QQ:test-bot] Invalid botOpenId format: bot-openid
[QQ:test-bot] Slash cmd from Bob (group-openid-1): /schedule
[QQ:test-bot] Invalid botOpenId format: 
[QQ:test-bot] Invalid botOpenId format: 
[QQ:test-bot] Group message dropped: missing group_openid
[QQ:test-bot] Invalid botOpenId format: bot-openid
[QQ:test-bot] handleGroup: active messages disabled but @-bot allowed through (passive)
[QQ:test-bot] Bot message dropped in group group-openid-1
[QQ:test-bot] Group group-openid-1: log policy — message from Charlie not forwarded
[QQ:test-bot] Group group-openid-1: log policy — message from Charlie not forwarded
[QQ:test-bot] WARNING: groupAllPolicy is 'all' but sessionScope is 'user' (not 'single'). Forcing sessionScope to 'single' to ensure shared group context.
[QQ:test-bot] WARNING: groupAllPolicy is 'keyword' but sessionScope is 'user' (not 'single'). Forcing sessionScope to 'single' to ensure shared group context.
[QQ:test-bot] Group group-openid-1: keyword policy — no match for message from Charlie
[QQ:test-bot] WARNING: groupAllPolicy is 'keyword' but sessionScope is 'user' (not 'single'). Forcing sessionScope to 'single' to ensure shared group context.
[QQ:test-bot] WARNING: groupAllPolicy is 'keyword' but sessionScope is 'user' (not 'single'). Forcing sessionScope to 'single' to ensure shared group context.
[QQ:test-bot] Group group-openid-1: keyword policy — no match for message from Charlie
[QQ:test-bot] WARNING: groupAllPolicy is 'all' but sessionScope is 'user' (not 'single'). Forcing sessionScope to 'single' to ensure shared group context.
[QQ:test-bot] WARNING: groupAllPolicy is 'all' but sessionScope is 'user' (not 'single'). Forcing sessionScope to 'single' to ensure shared group context.
[QQ:test-bot] Invalid botOpenId format: bot-openid
[QQ:test-bot] WARNING: groupAllPolicy is 'all' but sessionScope is 'user' (not 'single'). Forcing sessionScope to 'single' to ensure shared group context.
[QQ:test-bot] Invalid botOpenId format: bot-openid
[QQ:test-bot] Slash cmd from Charlie (group-openid-1): /help
[QQ:test-bot] WARNING: groupAllPolicy is 'all' but sessionScope is 'user' (not 'single'). Forcing sessionScope to 'single' to ensure shared group context.
[QQ:test-bot] Bot message dropped in group group-openid-1
[QQ:test-bot] WARNING: groupAllPolicy is 'all' but sessionScope is 'user' (not 'single'). Forcing sessionScope to 'single' to ensure shared group context.
[QQ:test-bot] handleGroupAll blocked: active messages disabled for group-openid-1
[QQ:test-bot] WARNING: groupAllPolicy is 'all' but sessionScope is 'user' (not 'single'). Forcing sessionScope to 'single' to ensure shared group context.
[QQ:test-bot] handleGroupAll: @-bot message allowed through (passive) despite active messages disabled for group-openid-1
[QQ:test-bot] WARNING: groupAllPolicy is 'all' but sessionScope is 'user' (not 'single'). Forcing sessionScope to 'single' to ensure shared group context.
[QQ:test-bot] WARNING: groupAllPolicy is 'all' but sessionScope is 'user' (not 'single'). Forcing sessionScope to 'single' to ensure shared group context.
[QQ:test-bot] WARNING: groupAllPolicy is 'keyword' but sessionScope is 'user' (not 'single'). Forcing sessionScope to 'single' to ensure shared group context.
[QQ:test-bot] WARNING: groupAllPolicy is 'keyword' but sessionScope is 'user' (not 'single'). Forcing sessionScope to 'single' to ensure shared group context.
[QQ:test-bot] Group group-openid-1: keyword policy — no keywords configured, message from Charlie not forwarded
[QQ:test-bot] Added to group group-new-1 by admin-1
[QQ:test-bot] Removed from group group-del-1 by admin-1, cleaned 0 stream(s) and 0 cron buffer(s)
[QQ:test-bot] Removed from group group-cron by admin-1, cleaned 2 stream(s) and 2 cron buffer(s)
[QQ:test-bot] Removed from group group-del-stream by admin-1, cleaned 1 stream(s) and 0 cron buffer(s)
[QQ:test-bot] Removed from group group-detect by admin-1, cleaned 1 stream(s) and 0 cron buffer(s)
[QQ:test-bot] Active msg disabled for group group-reject-1
[QQ:test-bot] Active msg enabled for group group-recv-1
[QQ:test-bot] WARNING: groupAllPolicy is 'keyword' but sessionScope is 'user' (not 'single'). Forcing sessionScope to 'single' to ensure shared group context.
[QQ:test-bot] WARNING: groupAllPolicy is 'all' but sessionScope is 'user' (not 'single'). Forcing sessionScope to 'single' to ensure shared group context.
[QQ:test-bot] Server sent INVALID_SESSION, falling back to IDENTIFY
[QQ:test-bot] Server sent INVALID_SESSION, falling back to IDENTIFY
[QQ:test-bot] WARNING: QQ state restore failed — routing maps are empty, group messages may be misrouted
[QQ:test-bot] Ready (0 sessions)
[QQ:test-bot] Server sent INVALID_SESSION, falling back to IDENTIFY
[QQ:test-bot] Server sent INVALID_SESSION, falling back to IDENTIFY
[QQ:test-bot] Ready (0 sessions)
[QQ:test-bot] Ready (warm reconnect, skipping state restore)
[QQ:test-bot] Token refresh failed: token endpoint down, will retry

[QQ:test-bot] Token refresh retry failed (attempt 1): token endpoint down

[QQ:test-bot] Token refresh retry failed (attempt 2): token endpoint down

[QQ:test-bot] Token refresh retry failed (attempt 3): token endpoint down

[QQ:test-bot] Token refresh retry failed (attempt 4): token endpoint down

[QQ:test-bot] Token refresh retry failed (attempt 5): token endpoint down

[QQ:test-bot] Token refresh retry failed (attempt 6): token endpoint down

[QQ:test-bot] Token refresh retry failed (attempt 7): token endpoint down

[QQ:test-bot] Token refresh retry failed (attempt 8): token endpoint down

[QQ:test-bot] Token refresh retry failed (attempt 9): token endpoint down

[QQ:test-bot] Token refresh retry failed (attempt 10): token endpoint down

[QQ:test-bot] FATAL: token refresh exhausted, reconnecting

[QQ:test-bot] Token refresh failed: token endpoint down, will retry

[QQ:test-bot] resolveRoute: no chat type for unknown-chat, dropping message
[QQ:test-bot] Invalid botOpenId format: not-hex!!
[QQ:test-bot] WebSocket closed (code=4009)
[QQ:test-bot] Reconnecting in 1000ms (attempt 0/20)
 ✓ src/events.test.ts (92 tests) 49ms
[QQ:test-bot] Send error: send failed
[QQ:test-bot] toolCallFlush send failed: send failed
[QQ:test-bot] Send error: send failed
[QQ:test-bot] idleFlush send failed: send failed
[QQ:test-bot] Send error: send failed
[QQ:test-bot] idleFlush send failed: send failed
[QQ:test-bot] idleFlush retries exhausted for sess-1
[QQ:test-bot] onResponseComplete deferred (flush in-flight) session=sess-1
[QQ:test-bot] Send error: send failed
[QQ:test-bot] idleFlush send failed: send failed
[QQ:test-bot] Send error: send failed
[QQ:test-bot] idleFlush send failed: send failed
[QQ:test-bot] Send error: send failed
[QQ:test-bot] idleFlush send failed: send failed
[QQ:test-bot] idleFlush retries exhausted for sess-1
[QQ:test-bot] idleFlush discarded (reconnect) session=sess-1
[QQ:test-bot] Send error: network error
[QQ:test-bot] idleFlush send failed: network error
[QQ:test-bot] Send error: persistent error
[QQ:test-bot] idleFlush send failed: persistent error
[QQ:test-bot] Send error: persistent error
[QQ:test-bot] idleFlush send failed: persistent error
[QQ:test-bot] Send error: persistent error
[QQ:test-bot] idleFlush send failed: persistent error
[QQ:test-bot] idleFlush retries exhausted for sess-1
[QQ:test-bot] Send error: fail
[QQ:test-bot] idleFlush send failed: fail
[QQ:test-bot] Send error: fail
[QQ:test-bot] toolCallFlush send failed: fail
[QQ:test-bot] Send error: send failed
[QQ:test-bot] toolCallFlush send failed: send failed
[QQ:test-bot] Send error: fail
[QQ:test-bot] idleFlush send failed: fail
 ✓ src/stream.test.ts (44 tests) 17ms
[QQ:test-bot] Cron text chunk dropped (not ready): should be ignored for session sess-1
[QQ:test-bot] Disconnect: discarding 1 buffered cron message(s)
[QQ:test-bot] resetRoutingState: orphaned cron flow (depth=1) during disconnect
[QQ:test-bot] resetRoutingState: orphaned cron flow (depth=3) during disconnect
 ✓ src/cron.test.ts (20 tests) 13ms
[QQ:test-bot] Failed to restore QQ state: Unexpected token 'o', "not json {{{" is not valid JSON
[QQ:test-bot] restoreQQState: accepted 2 chatTypeMap entries (rejected 1)
[QQ:test-bot] restoreQQState: accepted 1 msgSeqMap entries (rejected 2)
[QQ:test-bot] flushQQState write failed: disk full

 ✓ src/persistence.test.ts (28 tests) 11ms
[QQ] Token request failed (HTTP 401)
 ✓ src/api.test.ts (28 tests) 7ms
 ✓ src/accounts.test.ts (8 tests) 3ms

 Test Files  7 passed (7)
      Tests  318 passed (318)
   Start at  14:55:49
   Duration  1.37s (transform 310ms, setup 0ms, collect 475ms, tests 140ms, environment 1ms, prepare 267ms)

npm notice run @qwen-code/channel-github@0.23.3 test

 RUN  v3.2.7 /startdir/src/qwen-code/packages/channels/github

[Channel:test-github] using local gh credential for github.com
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] listComments(issue:42) failed (attempt 1/3, status=undefined), retrying in 1000ms: rate limit
[Channel:test-github] listComments(issue:42) failed (attempt 2/3, status=undefined), retrying in 2000ms: rate limit
[Channel:test-github] API error processing issue:42, skipping: Error: rate limit
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] listComments(issue:42) failed (attempt 1/3, status=undefined), retrying in 1000ms: rate limit
[Channel:test-github] listComments(issue:42) failed (attempt 2/3, status=undefined), retrying in 2000ms: rate limit
[Channel:test-github] API error processing issue:42, skipping: Error: rate limit
[Channel:test-github] markNotificationsAsRead failed (attempt 1/3, status=undefined), retrying in 1000ms: server error
[Channel:test-github] markNotificationsAsRead failed (attempt 2/3, status=undefined), retrying in 2000ms: server error
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] listComments(issue:2) failed (attempt 1/3, status=undefined), retrying in 1000ms: API error
[Channel:test-github] listComments(issue:2) failed (attempt 2/3, status=undefined), retrying in 2000ms: API error
[Channel:test-github] API error processing issue:2, skipping: Error: API error
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] listNotifications failed (attempt 1/3, status=undefined), retrying in 1000ms: transient
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] listNotifications failed (attempt 1/3, status=undefined), retrying in 1000ms: persistent
[Channel:test-github] listNotifications failed (attempt 2/3, status=undefined), retrying in 2000ms: persistent
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] skipping notification (reason=author not in reasonFilter, subject=https://api.github.com/repos/owner/repo/issues/42)
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] preflight rejected reason=group_pairing_required
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] preflight rejected reason=group_pairing_required
[Channel:test-github] preflight rejected reason=group_pairing_required
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] preflight rejected reason=group_pairing_required
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] handleInbound failed for 1001: Error: agent down
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] listNotifications failed (attempt 1/3, status=undefined), retrying in 1000ms: persistent
[Channel:test-github] listNotifications failed (attempt 2/3, status=undefined), retrying in 2000ms: persistent
[Channel:test-github] poll error (attempt 1), backing off 2000ms: Error: persistent
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] createComment(issue:42) failed (attempt 1/3, status=429), retrying in 1000ms: rate limited
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] createComment(issue:42) failed (attempt 1/3, status=403), retrying in 1000ms: rate limited
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] createComment(issue:42) failed (attempt 1/3, status=429), retrying in 1000ms: rate limited
[Channel:test-github] createComment(issue:42) failed (attempt 2/3, status=429), retrying in 2000ms: rate limited
[Channel:test-github] createComment(issue:42) failed (attempt 1/3, status=429), retrying in 1000ms: rate limited
[Channel:test-github] createComment(issue:42) failed (attempt 2/3, status=429), retrying in 2000ms: rate limited
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] createComment(issue:42) failed (attempt 1/3, status=429), retrying in 1000ms: rate limited
[Channel:test-github] createComment(issue:42) failed (attempt 2/3, status=429), retrying in 2000ms: rate limited
[Channel:test-github] createComment(issue:42) failed (attempt 1/3, status=429), retrying in 1000ms: rate limited
[Channel:test-github] createComment(issue:42) failed (attempt 2/3, status=429), retrying in 2000ms: rate limited
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] createComment(issue:42) failed (attempt 1/3, status=429), retrying in 1000ms: rate limited
[Channel:test-github] createComment(issue:42) failed (attempt 2/3, status=429), retrying in 2000ms: rate limited
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] failed to read pending GitHub deliveries: Expected property name or '}' in JSON at position 1 (line 1 column 2)
[Channel:test-github] failed to update pending GitHub deliveries: Expected property name or '}' in JSON at position 1 (line 1 column 2)
[Channel:test-github] createComment(issue:42) failed (attempt 1/3, status=429), retrying in 1000ms: rate limited
[Channel:test-github] createComment(issue:42) failed (attempt 2/3, status=429), retrying in 2000ms: rate limited
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] legacy GitHub state migration failed: EEXIST: file already exists, mkdir '/tmp/qwen-gh-test-M6QYXN/channels/test-0872effe487c'
[Channel:test-github] failed to read GitHub inbound tasks: ENOTDIR: not a directory, open '/tmp/qwen-gh-test-M6QYXN/channels/test-0872effe487c/test-github-ad83f0bd70302ca6-github-inbound-tasks.json'
[Channel:test-github] failed to read GitHub inbound tasks: ENOTDIR: not a directory, open '/tmp/qwen-gh-test-M6QYXN/channels/test-0872effe487c/test-github-ad83f0bd70302ca6-github-inbound-tasks.json'
[Channel:test-github] failed to read pending GitHub deliveries: ENOTDIR: not a directory, open '/tmp/qwen-gh-test-M6QYXN/channels/test-0872effe487c/test-github-ad83f0bd70302ca6-github-pending-deliveries.json'
[Channel:test-github] inbound task recovery failed, will retry next poll: Error: ENOTDIR: not a directory, open '/tmp/qwen-gh-test-M6QYXN/channels/test-0872effe487c/test-github-ad83f0bd70302ca6-github-inbound-tasks.json'
[Channel:test-github] dropping pending GitHub delivery already recorded as posted: pending
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] handleInbound failed for 1001: Error: ambiguous transport failure
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] publication audit write failed: EISDIR: illegal operation on a directory, open '/tmp/qwen-gh-test-sn2dyx/channels/test-0872effe487c/test-github-ad83f0bd70302ca6-github-audit.jsonl'
[Channel:test-github] publication audit write failed: EISDIR: illegal operation on a directory, open '/tmp/qwen-gh-test-sn2dyx/channels/test-0872effe487c/test-github-ad83f0bd70302ca6-github-audit.jsonl'
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] handleInbound failed for 1001: Error: agent down
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] handleInbound failed for 1001: Error: agent down
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] handleInbound failed for 1001: Error: agent down
[Channel:test-github] handleInbound failed for 1001: Error: agent down
[Channel:test-github] handleInbound failed for 1001: Error: agent down
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] handleInbound failed for 1001: Error: agent down
[Channel:test-github] postErrorComment(owner/repo#42) failed (attempt 1/3, status=undefined), retrying in 1000ms: comment creation outage
[Channel:test-github] postErrorComment(owner/repo#42) failed (attempt 2/3, status=undefined), retrying in 2000ms: comment creation outage
[Channel:test-github] postErrorComment also failed for owner/repo#42, user must re-mention manually: Error: comment creation outage
[Channel:test-github] handleInbound failed for 1001: Error: agent down
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] handleInbound failed for 1001: Error: agent down
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] failed to read GitHub inbound tasks: invalid GitHub inbound task state
[Channel:test-github] inbound task recovery failed, will retry next poll: Error: invalid GitHub inbound task state
[Channel:test-github] failed to read GitHub inbound tasks: invalid GitHub inbound task state
[Channel:test-github] failed to fetch issue for first contact: Error: invalid GitHub inbound task state
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] failed to read GitHub inbound tasks: invalid GitHub inbound task state
[Channel:test-github] inbound task recovery failed, will retry next poll: Error: invalid GitHub inbound task state
[Channel:test-github] failed to read GitHub inbound tasks: invalid GitHub inbound task state
[Channel:test-github] failed to fetch issue for first contact: Error: invalid GitHub inbound task state
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] handleInbound failed for 1001: Error: cancelled
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] createComment(issue:42) failed (attempt 1/3, status=429), retrying in 1000ms: rate limited
[Channel:test-github] createComment(issue:42) failed (attempt 2/3, status=429), retrying in 2000ms: rate limited
[Channel:test-github] handleInbound failed for 1001: Error: rate limited
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] failed to read pending GitHub deliveries: EISDIR: illegal operation on a directory, read
[Channel:test-github] API error processing issue:42, skipping: Error: EISDIR: illegal operation on a directory, read
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] failed to read pending GitHub deliveries: Expected property name or '}' in JSON at position 1 (line 1 column 2)
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] createComment(issue:42) failed (attempt 1/3, status=429), retrying in 1000ms: rate limited
[Channel:test-github] createComment(issue:42) failed (attempt 2/3, status=429), retrying in 2000ms: rate limited
[Channel:test-github] failed to read pending GitHub deliveries: EISDIR: illegal operation on a directory, read
[Channel:test-github] handleInbound failed for 1001: Error: [Channel:test-github] failed to persist pending GitHub delivery: EISDIR: illegal operation on a directory, read
[Channel:test-github] failed to read pending GitHub deliveries: EISDIR: illegal operation on a directory, read
[Channel:test-github] inbound task recovery failed, will retry next poll: Error: EISDIR: illegal operation on a directory, read
[Channel:test-github] inbound task recovery failed, will retry next poll: Error: EISDIR: illegal operation on a directory, read
[Channel:test-github] dropping pending GitHub delivery already recorded as posted: pending-1
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] handleInbound failed for 1001: Error: agent down
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] handleInbound failed for 1002: Error: agent down
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] handleInbound failed for 1001: Error: Cannot read properties of undefined (reading 'id')
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] handleInbound failed for 1001: Error: Cannot read properties of undefined (reading 'id')
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] removeAcknowledgement(1001) failed (attempt 1/3, status=undefined), retrying in 1000ms: 403
[Channel:test-github] removeAcknowledgement(1001) failed (attempt 2/3, status=undefined), retrying in 2000ms: 403
[Channel:test-github] failed to remove acknowledgement from comment 1001: Error: 403
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] acknowledgeComment(1001) failed (attempt 1/3, status=undefined), retrying in 1000ms: 403
[Channel:test-github] acknowledgeComment(1001) failed (attempt 2/3, status=undefined), retrying in 2000ms: 403
[Channel:test-github] failed to acknowledge comment 1001: Error: 403
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] handleInbound failed for event-2001: Error: Cannot read properties of undefined (reading 'id')
[Channel:test-github] handleInbound failed for issue-body-42: Error: Cannot read properties of undefined (reading 'id')
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] using configured token
[Channel:test-github] authenticated as "test-bot"
[Channel:test-github] test-op failed (attempt 1/3, status=429), retrying in 2000ms: HTTP 429
[Channel:test-github] test-op failed (attempt 1/3, status=403), retrying in 6000ms: HTTP 403
[Channel:test-github] test-op failed (attempt 1/3, status=500), retrying in 1000ms: HTTP 500
[Channel:test-github] test-op failed (attempt 2/3, status=502), retrying in 2000ms: HTTP 502
[Channel:test-github] test-op failed (attempt 1/3, status=500), retrying in 1000ms: HTTP 500
[Channel:test-github] test-op failed (attempt 2/3, status=500), retrying in 2000ms: HTTP 500
[Channel:test-ghe] using configured token
[Channel:test-ghe] authenticated as "test-bot"
[Channel:test-ghe] using configured token
[Channel:test-ghe] authenticated as "test-bot"
[Channel:test-ghe] using configured token
[Channel:test-ghe] authenticated as "test-bot"
[Channel:test-ghe] using configured token
[Channel:test-ghe] authenticated as "test-bot"
 ✓ src/GithubAdapter.test.ts (192 tests) 379ms
 ✓ src/mention.test.ts (17 tests) 3ms

 Test Files  2 passed (2)
      Tests  209 passed (209)
   Start at  14:55:51
   Duration  956ms (transform 246ms, setup 0ms, collect 347ms, tests 381ms, environment 0ms, prepare 76ms)

npm notice run @qwen-code/channel-dws@0.23.3 test

 RUN  v3.2.7 /startdir/src/qwen-code/packages/channels/dws

[Channel:test-dws] DWS @ messages stream is degraded; retrying in 2000ms.
[Channel:test-dws] DWS all group messages stream is degraded; retrying in 2000ms.
[Channel:test-dws] DWS @ messages stream error: try again
[Channel:test-dws] DWS @ messages stream error: try much later
[Channel:test-dws] DWS @ messages stream error: subscription is not allowed
[Channel:test-dws] DWS @ messages stream is permanently unavailable; not restarting: subscription is not allowed
[Channel:test-dws] DWS @ messages stream is degraded; retrying in 2000ms.
[Channel:test-dws] DWS @ messages stream is degraded; retrying in 2000ms.
[Channel:test-dws] DWS @ messages stream is degraded; retrying in 2000ms.
[Channel:test-dws] DWS @ messages stream error: retry one
[Channel:test-dws] DWS @ messages stream is degraded; retrying in 4000ms.
[Channel:test-dws] DWS @ messages stream error: retry two
[Channel:test-dws] DWS @ messages stream is degraded; retrying in 8000ms.
[Channel:test-dws] DWS @ messages stream error: retry three
[Channel:test-dws] DWS @ messages stream is degraded; retrying in 16000ms.
[Channel:policy-dws] parked a stale direct message for history polling and pulled the watermark back to 1793890492947: old-message
[Channel:test-dws] parked a stale direct message for history polling and pulled the watermark back to 1793890492952: replayed-document
[Channel:test-dws] parked a stale direct message for history polling and pulled the watermark back to 1793890492956: replayed-in-flight
[Channel:test-dws] parked a stale direct message for history polling and pulled the watermark back to 1793890492957: replayed-between-polls
[classified-order-dws] steer: cancelled active turn for open-alice in session session-1
[Channel:test-dws] DWS message turn failed (attempt 1/5): old lifecycle failed
[Channel:test-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:test-dws] DWS direct messages stream error: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 2/5): agent unavailable
[Channel:test-dws] DWS direct messages stream error: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 3/5): agent unavailable
[Channel:test-dws] DWS direct messages stream error: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 4/5): agent unavailable
[Channel:test-dws] DWS direct messages stream error: agent unavailable
[Channel:test-dws] dropping a DWS message after 5 failed turns: agent unavailable
[Channel:policy-dws] preflight rejected reason=sender_pairing_required
[mention-steer-dws] steer: cancelled active turn for open-alice in session session-1
[ordinary-group-message-steer-dws] steer: cancelled active turn for open-alice in session session-1
[Channel:policy-dws] preflight rejected reason=group_pairing_required
[Channel:test-dws] failed to poll DWS mention history: mention history unavailable
[Channel:test-dws] failed to poll DWS direct-message history: direct history unavailable
[Channel:test-dws] failed to fetch DWS todo task-failing: permission denied
[Channel:todo-outage-dws] failed to poll DWS todos: todo unavailable
[Channel:todo-outage-dws] failed to poll DWS todos: todo unavailable
[Channel:paired-todos] preflight rejected reason=todo_sender_pairing_required
[Channel:paired-todos] preflight rejected reason=todo_sender_pairing_required
[Channel:sticky-todo-pairing-dws] preflight rejected reason=todo_sender_pairing_required
[Channel:sticky-todo-pairing-dws] preflight rejected reason=todo_sender_pairing_required
[Channel:sticky-todo-pairing-dws] preflight rejected reason=todo_sender_pairing_required
[Channel:sticky-todo-pairing-dws] preflight rejected reason=todo_sender_pairing_required
[Channel:revoked-todo-pairing-dws] preflight rejected reason=todo_sender_pairing_required
[Channel:revoked-todo-pairing-dws] preflight rejected reason=todo_sender_pairing_required
[Channel:failed-turn-todo-pairing-dws] preflight rejected reason=todo_sender_pairing_required
[Channel:failed-turn-todo-pairing-dws] failed to process DWS todo task-new: turn failed
[Channel:failed-turn-todo-pairing-dws] DWS message turn failed (attempt 1/5): turn failed
[Channel:failed-turn-todo-pairing-dws] preflight rejected reason=todo_sender_pairing_required
[Channel:backed-off-document-dws] DWS message turn failed (attempt 1/5): comment deleted
[Channel:backed-off-document-dws] pending DWS document notification is degraded; retrying in 2000ms: comment deleted
[Channel:backed-off-document-dws] DWS message turn failed (attempt 2/5): comment deleted
[Channel:backed-off-document-dws] pending DWS document notification is degraded; retrying in 4000ms: comment deleted
[Channel:backed-off-document-dws] DWS message turn failed (attempt 3/5): comment deleted
[Channel:backed-off-document-dws] pending DWS document notification is degraded; retrying in 8000ms: comment deleted
[Channel:policy-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 5000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=running: channel disconnected
[Channel:policy-dws] preflight rejected reason=sender_pairing_required
[Channel:policy-dws] DWS start reaction add failed: reaction denied
[Channel:policy-dws] DWS message turn failed (attempt 1/5): agent unavailable
[policy-dws] steer: cancelled active turn for open-alice in session session-1
[Channel:policy-dws] DWS end reaction add failed: end reaction denied
[Channel:policy-dws] DWS message turn failed (attempt 1/5): first turn failed
[Channel:policy-dws] DWS message turn failed (attempt 1/5): first turn failed
[Channel:policy-dws] DWS message turn failed (attempt 2/5): retry failed
[Channel:policy-dws] DWS message turn failed (attempt 1/5): first turn failed
[Channel:policy-dws] DWS message turn failed (attempt 1/5): first turn failed
[Channel:policy-dws] DWS previous end reaction removal failed: transient removal failure
[Channel:policy-dws] DWS message turn failed (attempt 2/5): retry failed
[Channel:policy-dws] DWS message turn failed (attempt 1/5): first turn failed
[Channel:policy-dws] DWS message turn failed (attempt 1/5): first turn failed
[Channel:policy-dws] DWS message turn failed (attempt 1/5): first turn failed
[Channel:policy-dws] preflight rejected reason=sender_pairing_required
[Channel:policy-dws] preflight rejected reason=sender_pairing_required
[Channel:policy-dws] preflight rejected reason=sender_pairing_required
[Channel:policy-dws] preflight rejected reason=sender_pairing_required
[Channel:policy-dws] pairing notification failed: not sent
[Channel:policy-dws] preflight rejected reason=sender_pairing_required
[Channel:policy-dws] preflight rejected reason=sender_pairing_required
[Channel:policy-dws] pairing notification failed: connection reset
[Channel:policy-dws] preflight rejected reason=sender_pairing_required
[Channel:policy-dws] preflight rejected reason=sender_pairing_required
[Channel:policy-dws] preflight rejected reason=sender_pairing_required
[Channel:policy-dws] preflight rejected reason=sender_pairing_required
[Channel:policy-dws] preflight rejected reason=sender_pairing_required
[Channel:policy-dws] preflight rejected reason=sender_pairing_required
[Channel:policy-dws] preflight rejected reason=sender_pairing_required
[Channel:policy-dws] preflight rejected reason=sender_pairing_required
[Channel:policy-dws] preflight rejected reason=group_not_allowlisted
[Channel:policy-dws] preflight rejected reason=sender_denied
[Channel:policy-dws] preflight rejected reason=group_pairing_required
[Channel:policy-dws] preflight rejected reason=group_pairing_required
[Channel:policy-dws] parked a stale direct message for history polling and pulled the watermark back to 1793890456812: allowed-catch-up
[Channel:test-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:test-dws] DWS direct messages stream error: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 2/5): agent unavailable
[Channel:test-dws] DWS direct messages stream error: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 1/5): comment rejected
[Channel:test-dws] DWS @ messages stream error: comment rejected
[Channel:test-dws] DWS message turn failed (attempt 2/5): comment rejected
[Channel:test-dws] DWS @ messages stream error: comment rejected
[Channel:test-dws] DWS message turn failed (attempt 3/5): comment rejected
[Channel:test-dws] DWS @ messages stream error: comment rejected
[Channel:test-dws] DWS message turn failed (attempt 4/5): comment rejected
[Channel:test-dws] DWS @ messages stream error: comment rejected
[Channel:test-dws] dropping a DWS message after 5 failed turns: comment rejected
[Channel:test-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:pending-mention-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:late-self-pending-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:late-self-filtered-history-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:pending-ambient-group-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:pending-filtered-group-history-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 2/5): agent unavailable
[Channel:test-dws] DWS all group messages stream error: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 3/5): agent unavailable
[Channel:test-dws] DWS all group messages stream error: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 4/5): agent unavailable
[Channel:test-dws] DWS all group messages stream error: agent unavailable
[Channel:test-dws] dropping a DWS message after 5 failed turns: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:pending-direct-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 2/5): agent unavailable
[Channel:test-dws] DWS direct messages stream error: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 3/5): agent unavailable
[Channel:test-dws] DWS direct messages stream error: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 4/5): agent unavailable
[Channel:test-dws] DWS direct messages stream error: agent unavailable
[Channel:test-dws] dropping a DWS message after 5 failed turns: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 2/5): agent unavailable
[Channel:test-dws] DWS direct messages stream error: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 3/5): agent unavailable
[Channel:test-dws] DWS direct messages stream error: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 2/5): agent unavailable
[Channel:test-dws] DWS @ messages stream error: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 3/5): agent unavailable
[Channel:test-dws] DWS @ messages stream error: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 2/5): agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:test-dws] DWS direct messages stream error: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 2/5): agent unavailable
[Channel:test-dws] DWS direct messages stream error: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 3/5): agent unavailable
[Channel:test-dws] DWS direct messages stream error: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 4/5): agent unavailable
[Channel:test-dws] DWS direct messages stream error: agent unavailable
[Channel:test-dws] dropping a DWS message after 5 failed turns: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:test-dws] DWS direct messages stream error: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 2/5): agent unavailable
[Channel:test-dws] DWS direct messages stream error: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 3/5): agent unavailable
[Channel:test-dws] DWS direct messages stream error: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 4/5): agent unavailable
[Channel:test-dws] DWS direct messages stream error: agent unavailable
[Channel:test-dws] dropping a DWS message after 5 failed turns: agent unavailable
[Channel:sender-scoped-document-failure-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:sender-scoped-document-failure-dws] DWS direct messages stream error: agent unavailable
[Channel:sender-scoped-document-failure-dws] DWS message turn failed (attempt 2/5): agent unavailable
[Channel:sender-scoped-document-failure-dws] DWS direct messages stream error: agent unavailable
[Channel:sender-scoped-document-failure-dws] DWS message turn failed (attempt 3/5): agent unavailable
[Channel:sender-scoped-document-failure-dws] DWS direct messages stream error: agent unavailable
[Channel:sender-scoped-document-failure-dws] DWS message turn failed (attempt 4/5): agent unavailable
[Channel:sender-scoped-document-failure-dws] DWS direct messages stream error: agent unavailable
[Channel:sender-scoped-document-failure-dws] dropping a DWS message after 5 failed turns: agent unavailable
[Channel:test-dws] failed to process DWS todo task-poison: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:test-dws] failed to process DWS todo task-poison: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 2/5): agent unavailable
[Channel:test-dws] failed to process DWS todo task-poison: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 3/5): agent unavailable
[Channel:test-dws] failed to process DWS todo task-poison: agent unavailable
[Channel:test-dws] DWS message turn failed (attempt 4/5): agent unavailable
[Channel:test-dws] failed to process DWS todo task-poison: agent unavailable
[Channel:test-dws] dropping a DWS message after 5 failed turns: agent unavailable
[Channel:test-dws] failed to fetch DWS todo task-flaky: transient dws failure
[Channel:test-dws] failed to fetch DWS todo task-flaky: transient dws failure
[Channel:test-dws] failed to fetch DWS todo task-flaky: transient dws failure
[Channel:test-dws] failed to fetch DWS todo task-flaky: transient dws failure
[Channel:test-dws] failed to fetch DWS todo task-flaky: transient dws failure
[Channel:persisted-im-delivery-dws] DWS IM delivery failed; retrying delivery only in 5000ms without rerunning the originating task; conversationId=cid-1 messageId=persisted-reply: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 5000ms without rerunning the originating task; conversationId=cid-1 messageId=rate-limited-direct: rate limited
[Channel:persisted-direct-delivery-dws] DWS IM delivery failed; retrying delivery only in 5000ms without rerunning the originating task; conversationId=cid-1 messageId=persisted-direct-reply: rate limited
[Channel:policy-dws] DWS IM delivery pre-send checkpoint failed; keeping the entry in memory and delivering anyway with the same idempotency key: delivery cursor unavailable
[Channel:paired-group-delivery-dws] preflight rejected reason=group_pairing_required
[Channel:policy-dws] DWS message turn failed (attempt 1/5): agent unavailable
[Channel:policy-dws] DWS message turn failed (attempt 2/5): agent unavailable
[Channel:policy-dws] DWS message turn failed (attempt 3/5): agent unavailable
[Channel:policy-dws] DWS message turn failed (attempt 4/5): agent unavailable
[Channel:policy-dws] dropping a DWS message after 5 failed turns: agent unavailable
[Channel:transient-group-approval-dws] preflight rejected reason=group_pairing_required
[Channel:transient-group-approval-dws] DWS IM delivery failed; retrying delivery only in 5000ms without rerunning the originating task; conversationId=cid-1 messageId=transient-reply: rate limited
[Channel:transient-group-approval-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 5000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=transient-reply: stored pairing approval could not be confirmed
[Channel:transient-group-approval-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 10000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=transient-reply: stored pairing approval could not be confirmed
[Channel:transient-group-approval-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 20000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=transient-reply: stored pairing approval could not be confirmed
[Channel:transient-group-approval-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 40000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=transient-reply: stored pairing approval could not be confirmed
[Channel:transient-group-approval-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 80000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=transient-reply: stored pairing approval could not be confirmed
[Channel:transient-group-approval-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 160000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=transient-reply: stored pairing approval could not be confirmed
[Channel:transient-group-approval-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 300000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=transient-reply: stored pairing approval could not be confirmed
[Channel:transient-group-approval-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 300000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=transient-reply: stored pairing approval could not be confirmed
[Channel:transient-group-approval-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 300000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=transient-reply: stored pairing approval could not be confirmed
[Channel:transient-group-approval-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 300000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=transient-reply: stored pairing approval could not be confirmed
[Channel:transient-group-approval-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 300000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=transient-reply: stored pairing approval could not be confirmed
[Channel:transient-group-approval-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 300000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=transient-reply: stored pairing approval could not be confirmed
[Channel:transient-group-approval-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 300000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=transient-reply: stored pairing approval could not be confirmed
[Channel:transient-group-approval-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 300000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=transient-reply: stored pairing approval could not be confirmed
[Channel:transient-group-approval-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 300000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=transient-reply: stored pairing approval could not be confirmed
[Channel:transient-group-approval-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 300000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=transient-reply: stored pairing approval could not be confirmed
[Channel:transient-group-approval-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 300000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=transient-reply: stored pairing approval could not be confirmed
[Channel:disconnected-im-delivery-deferral-dws] DWS IM delivery failed; retrying delivery only in 5000ms without rerunning the originating task; conversationId=cid-1 messageId=disconnected-reply: rate limited
[Channel:disconnected-im-delivery-deferral-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 5000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=disconnected-reply: channel disconnected
[Channel:disconnected-im-delivery-deferral-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 10000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=disconnected-reply: channel disconnected
[Channel:disconnected-im-delivery-deferral-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 20000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=disconnected-reply: channel disconnected
[Channel:disconnected-im-delivery-deferral-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 40000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=disconnected-reply: channel disconnected
[Channel:disconnected-im-delivery-deferral-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 80000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=disconnected-reply: channel disconnected
[Channel:disconnected-im-delivery-deferral-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 160000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=disconnected-reply: channel disconnected
[Channel:disconnected-im-delivery-deferral-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 300000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=disconnected-reply: channel disconnected
[Channel:disconnected-im-delivery-deferral-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 300000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=disconnected-reply: channel disconnected
[Channel:disconnected-im-delivery-deferral-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 300000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=disconnected-reply: channel disconnected
[Channel:disconnected-im-delivery-deferral-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 300000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=disconnected-reply: channel disconnected
[Channel:disconnected-im-delivery-deferral-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 300000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=disconnected-reply: channel disconnected
[Channel:disconnected-im-delivery-deferral-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 300000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=disconnected-reply: channel disconnected
[Channel:disconnected-im-delivery-deferral-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 300000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=disconnected-reply: channel disconnected
[Channel:disconnected-im-delivery-deferral-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 300000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=disconnected-reply: channel disconnected
[Channel:disconnected-im-delivery-deferral-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 300000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=disconnected-reply: channel disconnected
[Channel:disconnected-im-delivery-deferral-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 300000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=disconnected-reply: channel disconnected
[Channel:disconnected-im-delivery-deferral-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 300000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=disconnected-reply: channel disconnected
[Channel:disconnected-im-delivery-deferral-dws] DWS IM delivery failed; retrying delivery only in 10000ms without rerunning the originating task; conversationId=cid-1 messageId=disconnected-reply: rate limited again
[Channel:transient-sender-approval-dws] preflight rejected reason=sender_pairing_required
[Channel:transient-sender-approval-dws] DWS IM delivery failed; retrying delivery only in 5000ms without rerunning the originating task; conversationId=cid-1 messageId=transient-sender-reply: rate limited
[Channel:transient-sender-approval-dws] DWS IM delivery is locally deferred; retrying the pre-send check in 5000ms without consuming the delivery-attempt budget; conversationId=cid-1 messageId=transient-sender-reply: stored pairing approval could not be confirmed
[Channel:evicted-direct-target-delivery-dws] DWS IM delivery failed; retrying delivery only in 5000ms without rerunning the originating task; conversationId=cid-1 messageId=evicted-direct-target: rate limited
[Channel:evicted-direct-target-delivery-dws] dropping a completed DWS IM reply after a definitive authorization denial: conversationId=cid-1 messageId=evicted-direct-target
[Channel:revoked-group-delivery-dws] DWS IM delivery failed; retrying delivery only in 5000ms without rerunning the originating task; conversationId=cid-1 messageId=revoked-group: rate limited
[Channel:revoked-group-delivery-dws] dropping a completed DWS IM reply after a definitive authorization denial: conversationId=cid-1 messageId=revoked-group
[Channel:disabled-dm-delivery-dws] DWS IM delivery failed; retrying delivery only in 5000ms without rerunning the originating task; conversationId=cid-1 messageId=disabled-dm: rate limited
[Channel:disabled-dm-delivery-dws] dropping a completed DWS IM reply after a definitive authorization denial: conversationId=cid-1 messageId=disabled-dm
[Channel:profile-scoped-im-delivery-dws] DWS IM delivery failed; retrying delivery only in 5000ms without rerunning the originating task; conversationId=cid-1 messageId=old-profile-reply: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 5000ms without rerunning the originating task; conversationId=cid-1 messageId=bounded-content: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 5000ms without rerunning the originating task; conversationId=cid-1 messageId=bounded-content: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 5000ms without rerunning the originating task; conversationId=cid-1 messageId=bounded-content: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 10000ms without rerunning the originating task; conversationId=parked-conversation-0 messageId=parked-message-0: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 10000ms without rerunning the originating task; conversationId=parked-conversation-1 messageId=parked-message-1: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 10000ms without rerunning the originating task; conversationId=parked-conversation-2 messageId=parked-message-2: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 10000ms without rerunning the originating task; conversationId=parked-conversation-3 messageId=parked-message-3: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 10000ms without rerunning the originating task; conversationId=parked-conversation-4 messageId=parked-message-4: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 10000ms without rerunning the originating task; conversationId=parked-conversation-5 messageId=parked-message-5: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 10000ms without rerunning the originating task; conversationId=parked-conversation-6 messageId=parked-message-6: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 10000ms without rerunning the originating task; conversationId=parked-conversation-7 messageId=parked-message-7: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 10000ms without rerunning the originating task; conversationId=parked-conversation-8 messageId=parked-message-8: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 10000ms without rerunning the originating task; conversationId=parked-conversation-9 messageId=parked-message-9: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 10000ms without rerunning the originating task; conversationId=parked-conversation-10 messageId=parked-message-10: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 10000ms without rerunning the originating task; conversationId=parked-conversation-11 messageId=parked-message-11: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 10000ms without rerunning the originating task; conversationId=parked-conversation-12 messageId=parked-message-12: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 10000ms without rerunning the originating task; conversationId=parked-conversation-13 messageId=parked-message-13: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 10000ms without rerunning the originating task; conversationId=parked-conversation-14 messageId=parked-message-14: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 10000ms without rerunning the originating task; conversationId=parked-conversation-15 messageId=parked-message-15: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 5000ms without rerunning the originating task; conversationId=cid-1 messageId=parked-reply: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 5000ms without rerunning the originating task; conversationId=cid-1 messageId=dead-disk-reply: rate limited
[Channel:policy-dws] DWS IM delivery succeeded but its checkpoint failed; retrying with the same idempotency key in 10000ms; conversationId=cid-1 messageId=dead-disk-reply: disk unavailable
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 5000ms without rerunning the originating task; conversationId=cid-1 messageId=backoff-reply: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 10000ms without rerunning the originating task; conversationId=cid-1 messageId=backoff-reply: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 20000ms without rerunning the originating task; conversationId=cid-1 messageId=backoff-reply: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 40000ms without rerunning the originating task; conversationId=cid-1 messageId=backoff-reply: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 80000ms without rerunning the originating task; conversationId=cid-1 messageId=backoff-reply: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 160000ms without rerunning the originating task; conversationId=cid-1 messageId=backoff-reply: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 300000ms without rerunning the originating task; conversationId=cid-1 messageId=backoff-reply: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 300000ms without rerunning the originating task; conversationId=cid-1 messageId=backoff-reply: rate limited
[Channel:policy-dws] DWS IM delivery failed; retrying delivery only in 300000ms without rerunning the originating task; conversationId=cid-1 messageId=backoff-reply: rate limited
[Channel:test-dws] DWS todo comment outcome is unknown; the originating task will not be rerun: timed out
[Channel:test-dws] DWS document reply outcome is unknown; the originating task will not be rerun: timed out
 ✓ src/dws-channel.test.ts (292 tests) 4949ms
 ✓ src/dws-client.test.ts (70 tests) 195ms
 ✓ src/dws-event-stream.test.ts (7 tests) 340ms
 ✓ src/index.test.ts (7 tests) 2ms
 ✓ src/dws-client-process.test.ts (1 test) 3ms
 ✓ src/dws-environment.test.ts (1 test) 1ms

 Test Files  6 passed (6)
      Tests  378 passed (378)
   Start at  14:55:52
   Duration  6.94s (transform 337ms, setup 0ms, collect 757ms, tests 5.49s, environment 1ms, prepare 230ms)

npm notice run @qwen-code/channel-gitlab@0.23.3 test

 RUN  v3.2.7 /startdir/src/qwen-code/packages/channels/gitlab

[Channel:test-gl] warning: action_prompt_template is not configured; no todos will be processed
[Channel:test-gl] warning: action_prompt_template is not configured; no todos will be processed
[Channel:test-gitlab] error processing todo 100: Error: agent failed
[Channel:test-gitlab] error processing todo 1: Error: agent failed
[Channel:test-gitlab] error processing todo 2: Error: agent failed
[Channel:test-gitlab] failed to acknowledge note 1001: Error: 403
[Channel:test-gitlab] failed to remove acknowledgement from note 1001: Error: 403
[Channel:test-gitlab] failed to remove acknowledgement from note 1001: Error: 403
 ✓ src/GitlabAdapter.test.ts (47 tests) 323ms
 ✓ src/mention.test.ts (14 tests) 3ms

 Test Files  2 passed (2)
      Tests  61 passed (61)
   Start at  14:55:59
   Duration  837ms (transform 174ms, setup 0ms, collect 271ms, tests 326ms, environment 0ms, prepare 78ms)

npm notice run @qwen-code/channel-plugin-example@0.23.3 test

 RUN  v3.2.7 /startdir/src/qwen-code/packages/channels/plugin-example

 ✓ src/MockPluginChannel.test.ts (4 tests) 3ms

 Test Files  1 passed (1)
      Tests  4 passed (4)
   Start at  14:56:00
   Duration  151ms (transform 28ms, setup 0ms, collect 32ms, tests 3ms, environment 0ms, prepare 39ms)

npm notice run @qwen-code/external-context@0.23.3 test

 RUN  v3.2.7 /startdir/src/qwen-code/integrations/external-context

 ✓ src/auto-recall.test.ts (32 tests) 1716ms
   ✓ runAutoRecallCli > exits after a provider timeout leaves a proxy CONNECT stalled  1131ms
 ✓ src/mcp.test.ts (24 tests) 89ms
 ✓ src/providers.test.ts (37 tests) 99ms
 ✓ src/provider-extension-local.test.ts (15 tests) 6116ms
   ✓ local provider extension example > serves the exact profile tool with stable failure and cancellation semantics  5421ms
   ✓ local provider extension example > packs an executable that fails fast without provider configuration  655ms
 ✓ src/config.test.ts (27 tests) 17ms
 ✓ src/manifest.test.ts (13 tests) 5ms
 ✓ src/provider-profile.test.ts (9 tests) 64ms
 ✓ src/http-client.test.ts (6 tests) 13ms
 ✓ src/write-confirmation.test.ts (23 tests) 8ms
 ✓ src/context.test.ts (8 tests) 4ms
 ✓ src/main.test.ts (4 tests) 16ms
 ✓ src/proxy.test.ts (3 tests) 12ms

 Test Files  12 passed (12)
      Tests  201 passed (201)
   Start at  14:56:00
   Duration  9.84s (transform 141ms, setup 0ms, collect 443ms, tests 8.16s, environment 1ms, prepare 419ms)

npm notice run @qwen-code/external-context-mem0@0.23.3 test
npm notice run npm run build && vitest run --config vitest.config.ts --testTimeout=30000 --no-file-parallelism --exclude=**/{qwenConnectionHandler,useAtCompletion,serve/acp-http/transport,i18n/index,ui/auth/AuthDialog,ui/utils/clipboardUtils,services/FileCommandLoader,services/FileCommandLoader-extension,lsp/LspConfigLoader,utils/pathReader}.test.*
npm notice run @qwen-code/external-context-mem0@0.23.3 build
npm notice run npm run clean && esbuild src/main.ts src/auto-recall.ts src/write-main.ts src/delete-main.ts --bundle --platform=node --target=node22 --format=esm --banner:js="import { createRequire } from 'node:module'; const require = createRequire(import.meta.url);" --outdir=dist
npm notice run @qwen-code/external-context-mem0@0.23.3 clean
npm notice run node -e "require('node:fs').rmSync('dist',{recursive:true,force:true})"

  dist/delete-main.js    1.2mb ⚠️
  dist/main.js           1.2mb ⚠️
  dist/write-main.js     1.2mb ⚠️
  dist/auto-recall.js  408.5kb

⚡ Done in 48ms

 RUN  v3.2.7 /startdir/src/qwen-code/integrations/external-context-mem0

 ✓ src/schemas.test.ts (24 tests) 30ms
 ✓ src/delete-request-engine.test.ts (82 tests) 29ms
 ✓ src/auto-recall.test.ts (21 tests) 203ms
 ✓ src/auto-recall.integration.test.ts (9 tests) 2211ms
   ✓ Mem0 Auto Recall local provider > exits successfully after a provider timeout during a stalled TLS handshake  1572ms
 ✓ src/delete.integration.test.ts (8 tests) 1897ms
   ✓ packaged deletion MCP through real HTTP > bounds the entire operation without replay: slow-preflight-body  328ms
   ✓ packaged deletion MCP through real HTTP > bounds the entire operation without replay: slow-delete-body  319ms
   ✓ packaged deletion MCP through real HTTP > bounds the entire operation without replay: slow-verification-body  324ms
   ✓ packaged deletion MCP through real HTTP > bounds the entire operation without replay: cumulative-deadline  375ms
 ✓ src/write-request-engine.test.ts (55 tests) 21ms
 ✓ src/write-config.test.ts (17 tests) 17ms
 ✓ src/auto-recall-config.test.ts (7 tests) 18ms
 ✓ src/request-engine.test.ts (11 tests) 16ms
 ✓ src/delete-mcp.test.ts (22 tests) 93ms
 ✓ src/delete-config.test.ts (33 tests) 21ms
 ✓ src/mcp.test.ts (7 tests) 133ms
 ✓ src/write.integration.test.ts (4 tests) 591ms
 ✓ src/write-mcp.test.ts (18 tests) 84ms
 ✓ src/manifest.test.ts (4 tests) 3ms
 ✓ src/profile.test.ts (3 tests) 3ms
 ✓ src/main.test.ts (3 tests) 110ms

 Test Files  17 passed (17)
      Tests  328 passed (328)
   Start at  14:56:11
   Duration  8.21s (transform 149ms, setup 0ms, collect 943ms, tests 5.48s, environment 1ms, prepare 602ms)

==> ERROR: A failure occurred in check().
    Aborting...
==> ERROR: Build failed, check /home/alhp/workspace/chroot/build_8af3d0e3-a719-4a8b-b04e-954577416ab1/build
