==> Synchronizing chroot copy [/home/alhp/workspace/chroot/root] -> [build_a337c4e5-3d5b-4f58-bb4a-bab47fd841c9]...done ==> Making package: qwen-code 0.19.12-1.1 (Wed Aug 26 11:52:17 2026) ==> Retrieving sources... -> Cloning qwen-code git repo... Cloning into bare repository '/home/alhp/workspace/build/x86-64-v4/qwen-code-0.19.12-1/qwen-code'... ==> Validating source files with sha256sums... qwen-code ... Passed ==> Validating source files with b2sums... qwen-code ... 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.19.12-1.1 (Wed Aug 26 09:53:41 2026) ==> Checking runtime dependencies... ==> Installing missing dependencies... resolving dependencies... looking for conflicting packages... Package (6) New Version Net Change extra/ada 3.4.4-1 1.08 MiB extra/c-ares 1.34.8-1 0.53 MiB extra/libuv 1.52.1-1 0.64 MiB extra/simdjson 1:4.6.8-1 7.59 MiB extra/nodejs 26.7.0-1 61.30 MiB extra/ripgrep 15.2.0-1 4.29 MiB Total Installed Size: 75.41 MiB :: Proceed with installation? [Y/n] checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing ada... installing c-ares... installing libuv... installing simdjson... installing nodejs... Optional dependencies for nodejs npm: nodejs package manager installing ripgrep... :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... ==> Checking buildtime dependencies... ==> Installing missing dependencies... resolving dependencies... looking for conflicting packages... Package (11) New Version Net Change extra/node-gyp 13.0.1-1 6.74 MiB extra/nodejs-nopt 10.0.1-1 0.03 MiB extra/oniguruma 6.9.10-1 0.88 MiB extra/perl-error 0.17030-3 0.04 MiB extra/perl-mailtools 2.22-3 0.10 MiB extra/perl-timedate 2.35-1 0.15 MiB extra/semver 7.8.5-1 0.10 MiB extra/zlib-ng 2.3.3-1 0.28 MiB extra/git 2.55.0-1 31.33 MiB extra/jq 1.8.2-1 0.47 MiB extra/npm 12.0.2-1 9.39 MiB Total Installed Size: 49.50 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... ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources... -> Creating working copy of qwen-code git repo... Cloning into 'qwen-code'... done. Updating files: 60% (4362/7207) Updating files: 61% (4397/7207) Updating files: 62% (4469/7207) Updating files: 63% (4541/7207) Updating files: 64% (4613/7207) Updating files: 65% (4685/7207) Updating files: 66% (4757/7207) Updating files: 67% (4829/7207) Updating files: 68% (4901/7207) Updating files: 69% (4973/7207) Updating files: 70% (5045/7207) Updating files: 71% (5117/7207) Updating files: 72% (5190/7207) Updating files: 73% (5262/7207) Updating files: 74% (5334/7207) Updating files: 75% (5406/7207) Updating files: 76% (5478/7207) Updating files: 77% (5550/7207) Updating files: 78% (5622/7207) Updating files: 79% (5694/7207) Updating files: 80% (5766/7207) Updating files: 81% (5838/7207) Updating files: 82% (5910/7207) Updating files: 83% (5982/7207) Updating files: 84% (6054/7207) Updating files: 85% (6126/7207) Updating files: 86% (6199/7207) Updating files: 87% (6271/7207) Updating files: 88% (6343/7207) Updating files: 89% (6415/7207) Updating files: 90% (6487/7207) Updating files: 91% (6559/7207) Updating files: 92% (6631/7207) Updating files: 93% (6703/7207) Updating files: 94% (6775/7207) Updating files: 95% (6847/7207) Updating files: 96% (6919/7207) Updating files: 97% (6991/7207) Updating files: 98% (7063/7207) Updating files: 99% (7135/7207) Updating files: 100% (7207/7207) Updating files: 100% (7207/7207), done. Switched to a new branch 'makepkg' ==> Starting prepare()... npm warn deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported npm warn deprecated prebuild-install@7.1.3: No longer maintained. Please contact the author of the relevant native addon; alternatives are available. npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. npm warn deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead npm warn deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm warn deprecated node-domexception@1.0.0: Use your platform's native DOMException instead npm warn deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options. added 2058 packages, and audited 2079 packages in 1m 598 packages are looking for funding run `npm fund` for details 67 vulnerabilities (3 low, 35 moderate, 26 high, 3 critical) To address issues that do not require attention, run: npm audit fix To address all issues (including breaking changes), run: npm audit fix --force Run `npm audit` for details. patch-package 8.0.1 Applying patches... ink@7.0.3 ✔ ==> Starting build()... npm notice run @qwen-code/qwen-code@0.19.12 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.19.12 generate npm notice run node scripts/generate-git-commit-info.js npm notice run @qwen-code/qwen-code-core@0.19.12 build npm notice run node ../../scripts/build_package.js Successfully copied files. npm notice run @qwen-code/web-templates@0.19.12 build npm notice run node build.mjs && tsc --build --clean && tsc Building web-templates... Building insight assets with Vite... vite v5.4.21 building for production... transforming... Browserslist: browsers data (caniuse-lite) is 9 months old. Please run: npx update-browserslist-db@latest Why you should do it regularly: https://github.com/browserslist/update-db#readme ✓ 7 modules transformed. rendering chunks... computing gzip size... dist/main.css 17.77 kB │ gzip: 4.28 kB dist/main.js 32.65 kB │ gzip: 8.91 kB ✓ built in 463ms 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/channel-base@0.19.12 build npm notice run tsc --build npm notice run @qwen-code/channel-telegram@0.19.12 build npm notice run tsc --build npm notice run @qwen-code/channel-weixin@0.19.12 build npm notice run tsc --build npm notice run @qwen-code/channel-dingtalk@0.19.12 build npm notice run tsc --build npm notice run @qwen-code/channel-wecom@0.19.12 build npm notice run tsc --build npm notice run @qwen-code/channel-feishu@0.19.12 build npm notice run tsc --build npm notice run @qwen-code/channel-qqbot@0.19.12 build npm notice run tsc --build npm notice run @qwen-code/channel-plugin-example@0.19.12 build npm notice run tsc --build npm notice run @qwen-code/audio-capture@0.19.12 build:ts npm notice run tsc --build npm notice run @qwen-code/acp-bridge@0.19.12 build npm notice run node ../../scripts/build_package.js Successfully copied files. npm notice run @qwen-code/sdk@0.1.8 build npm notice run node scripts/build.js npm notice run @qwen-code/qwen-code@0.19.12 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... Compiler option "skipLibCheck" is disabled to properly check generated output Done in 23.64s npm notice run @qwen-code/qwen-code@0.19.12 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:1639) [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/webui@0.19.12 build npm notice run vite build vite v5.4.21 building for production... transforming... Browserslist: browsers data (caniuse-lite) is 9 months old. Please run: npx update-browserslist-db@latest Why you should do it regularly: https://github.com/browserslist/update-db#readme ✓ 196 modules transformed. rendering chunks... [vite:dts] Start generate declaration files... computing gzip size... dist/styles.css 83.27 kB │ gzip: 15.51 kB dist/toolNames-kewwpc1v.js 0.30 kB │ gzip: 0.23 kB │ map: 1.00 kB dist/daemon-react-sdk.js 204.59 kB │ gzip: 36.12 kB │ map: 390.10 kB dist/index.js 392.31 kB │ gzip: 98.47 kB │ map: 841.84 kB [vite:dts] Start rollup declaration files... Analysis will use the bundled TypeScript version 5.8.2 Analysis will use the bundled TypeScript version 5.8.2 [vite:dts] Declaration files built in 12758ms. dist/styles.css 83.27 kB │ gzip: 15.51 kB dist/toolNames-C9pS8yq9.cjs 0.33 kB │ gzip: 0.24 kB │ map: 1.00 kB dist/daemon-react-sdk.cjs 205.96 kB │ gzip: 36.14 kB │ map: 391.70 kB dist/index.cjs 401.74 kB │ gzip: 99.21 kB │ map: 846.92 kB ✓ built in 15.18s npm notice run @qwen-code/web-shell@0.19.12 build npm notice run vite build && vite build --config vite.lib.config.ts && tsc -p tsconfig.lib.json vite v5.4.21 building for production... transforming... ✓ 4827 modules transformed. rendering chunks... computing gzip size... ../dist/assets/insert-DmRbh9Rv.svg 4.16 kB │ gzip: 1.20 kB ../dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff 4.42 kB ../dist/index.html 4.67 kB │ gzip: 2.28 kB ../dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 4.93 kB ../dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 5.21 kB ../dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 5.47 kB ../dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff 5.98 kB ../dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff 6.19 kB ../dist/assets/KaTeX_Size1-Regular-C195tn64.woff 6.50 kB ../dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 6.91 kB ../dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 6.91 kB ../dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf 7.59 kB ../dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff 7.66 kB ../dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff 7.72 kB ../dist/assets/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/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-XGDFJE-X.css 383.00 kB │ gzip: 66.93 kB ../dist/assets/channel-Bi5TehaT.js 0.11 kB │ gzip: 0.13 kB ../dist/assets/init-Gi6I4Gst.js 0.15 kB │ gzip: 0.13 kB ../dist/assets/chunk-QZHKN3VN-BlmThhm-.js 0.19 kB │ gzip: 0.16 kB ../dist/assets/chunk-55IACEB6-3NEQrBAr.js 0.24 kB │ gzip: 0.21 kB ../dist/assets/chunk-4BX2VUAB-DoBgbC9z.js 0.30 kB │ gzip: 0.20 kB ../dist/assets/chunk-FMBD7UC4-D1_crABJ.js 0.37 kB │ gzip: 0.27 kB ../dist/assets/stateDiagram-v2-BHNVJYJU-DrfFMYta.js 0.39 kB │ gzip: 0.29 kB ../dist/assets/classDiagram-4FO5ZUOK-BKhhRdd1.js 0.47 kB │ gzip: 0.32 kB ../dist/assets/classDiagram-v2-Q7XG4LA2-BKhhRdd1.js 0.47 kB │ gzip: 0.32 kB ../dist/assets/chunk-2J33WTMH-YqxOVhS1.js 0.53 kB │ gzip: 0.37 kB ../dist/assets/codeowners-Bp6g37R7.js 0.55 kB │ gzip: 0.32 kB ../dist/assets/infoDiagram-5YYISTIA-DT2mOSvp.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/qmldir-C8lEn-DE.js 1.00 kB │ gzip: 0.45 kB ../dist/assets/fortran-fixed-form-TqA4NnZg.js 1.11 kB │ gzip: 0.54 kB ../dist/assets/ordinal-Cboi1Yqb.js 1.19 kB │ gzip: 0.57 kB ../dist/assets/csv-B0qRVHPH.js 1.22 kB │ gzip: 0.37 kB ../dist/assets/xsl-Dd0NUgwM.js 1.39 kB │ gzip: 0.52 kB ../dist/assets/sparql-bYkjHRlG.js 1.51 kB │ gzip: 0.83 kB ../dist/assets/ini-BjABl1g7.js 1.53 kB │ gzip: 0.50 kB ../dist/assets/git-commit-i4q6IMui.js 1.55 kB │ gzip: 0.67 kB ../dist/assets/dotenv-BjQB5zDj.js 1.70 kB │ gzip: 0.63 kB ../dist/assets/wenyan-7A4Fjokl.js 1.71 kB │ gzip: 1.08 kB ../dist/assets/docker-COcR7UxN.js 1.77 kB │ gzip: 0.60 kB ../dist/assets/hxml-TIA70rKU.js 1.83 kB │ gzip: 0.89 kB ../dist/assets/chunk-ND2GUHAM-BdhgVtBx.js 1.86 kB │ gzip: 0.82 kB ../dist/assets/desktop-DEIpsLCJ.js 2.03 kB │ gzip: 0.79 kB ../dist/assets/edge-D5gP-w-T.js 2.36 kB │ gzip: 0.70 kB ../dist/assets/reg-5LuOXUq_.js 2.37 kB │ gzip: 0.71 kB ../dist/assets/berry-3xVqZejG.js 2.45 kB │ gzip: 0.79 kB ../dist/assets/erb-BYTLMnw6.js 2.61 kB │ gzip: 0.84 kB ../dist/assets/diff-BgYniUM_.js 2.64 kB │ gzip: 0.74 kB ../dist/assets/gleam-B430Bg39.js 2.69 kB │ gzip: 0.85 kB ../dist/assets/diagram-5GNKFQAL-BCbGUPEA.js 2.75 kB │ gzip: 1.37 kB ../dist/assets/hy-BMj5Y0dO.js 2.82 kB │ gzip: 1.19 kB ../dist/assets/json-BQoSv7ci.js 2.92 kB │ gzip: 0.81 kB ../dist/assets/cairo--RitsXJZ.js 2.95 kB │ gzip: 0.81 kB ../dist/assets/log-Cc5clBb7.js 2.97 kB │ gzip: 0.88 kB ../dist/assets/jssm-P4WzXJd0.js 2.97 kB │ gzip: 0.70 kB ../dist/assets/jsonl-DREVFZK8.js 3.10 kB │ gzip: 0.82 kB ../dist/assets/jsonc-TU54ms6u.js 3.20 kB │ gzip: 0.83 kB ../dist/assets/logo-IuBKFhSY.js 3.21 kB │ gzip: 1.49 kB ../dist/assets/genie-ajMbGru0.js 3.38 kB │ gzip: 1.21 kB ../dist/assets/po-BFLt1xDp.js 3.38 kB │ gzip: 0.99 kB ../dist/assets/tasl-CQjiPCtT.js 3.39 kB │ gzip: 0.88 kB ../dist/assets/vala-BFOHcciG.js 3.40 kB │ gzip: 1.19 kB ../dist/assets/mipsasm-BC5c_5Pe.js 3.41 kB │ gzip: 1.28 kB ../dist/assets/arc-_dVIKMdB.js 3.42 kB │ gzip: 1.45 kB ../dist/assets/rel-DJlmqQ1C.js 3.43 kB │ gzip: 1.10 kB ../dist/assets/json5-w8dY5SsB.js 3.54 kB │ gzip: 0.94 kB ../dist/assets/ssh-config-BknIz3MU.js 3.61 kB │ gzip: 1.59 kB ../dist/assets/fluent-Dayu4EKP.js 3.62 kB │ gzip: 0.89 kB ../dist/assets/jsonnet-BfivnA6A.js 3.63 kB │ gzip: 1.07 kB ../dist/assets/narrat-DLbgOhZU.js 3.69 kB │ gzip: 1.12 kB ../dist/assets/turtle-BMR_PYu6.js 3.71 kB │ gzip: 0.98 kB ../dist/assets/splunk-Cf8iN4DR.js 3.92 kB │ gzip: 1.67 kB ../dist/assets/glsl-DBO2IWDn.js 3.94 kB │ gzip: 1.45 kB ../dist/assets/nextflow-B0XVJmRM.js 3.96 kB │ gzip: 1.09 kB ../dist/assets/sdbl-BLhTXw86.js 4.14 kB │ gzip: 2.08 kB ../dist/assets/pascal-JqZropPD.js 4.18 kB │ gzip: 1.69 kB ../dist/assets/smalltalk-DkLiglaE.js 4.20 kB │ gzip: 1.25 kB ../dist/assets/diagram-LMA3HP47-DUMKXgql.js 4.24 kB │ gzip: 1.84 kB ../dist/assets/lean-XBlWyCtg.js 4.29 kB │ gzip: 1.33 kB ../dist/assets/zenscript-HnGAYVZD.js 4.40 kB │ gzip: 1.42 kB ../dist/assets/bicep-DHo0CJ0O.js 4.45 kB │ gzip: 1.08 kB ../dist/assets/http-FRrOvY1W.js 4.65 kB │ gzip: 1.14 kB ../dist/assets/polar-DKykz6zU.js 4.68 kB │ gzip: 1.17 kB ../dist/assets/defaultLocale-DX6XiGOO.js 4.69 kB │ gzip: 2.17 kB ../dist/assets/fennel-bCA53EVm.js 4.82 kB │ gzip: 1.57 kB ../dist/assets/tcl-DQ1-QYvQ.js 5.02 kB │ gzip: 1.68 kB ../dist/assets/bibtex-xW4inM5L.js 5.08 kB │ gzip: 0.81 kB ../dist/assets/pieDiagram-4H26LBE5-YPptloKl.js 5.32 kB │ gzip: 2.36 kB ../dist/assets/fish-w-ucz2PV.js 5.39 kB │ gzip: 1.69 kB ../dist/assets/xml-e3z08dGr.js 5.41 kB │ gzip: 1.22 kB ../dist/assets/qml-D8XfuvdV.js 5.42 kB │ gzip: 1.39 kB ../dist/assets/zig-BVz_zdnA.js 5.46 kB │ gzip: 1.59 kB ../dist/assets/gdresource-BHYsBjWJ.js 5.48 kB │ gzip: 1.37 kB ../dist/assets/awk-eg146-Ew.js 5.49 kB │ gzip: 1.38 kB ../dist/assets/dax-ClGRhx96.js 5.53 kB │ gzip: 2.25 kB ../dist/assets/linear-uIroDsmp.js 5.66 kB │ gzip: 2.31 kB ../dist/assets/jinja-DGy0s7-h.js 5.72 kB │ gzip: 1.42 kB ../dist/assets/powerquery-CSHBycmS.js 5.93 kB │ gzip: 1.52 kB ../dist/assets/verilog-CJaU5se_.js 5.94 kB │ gzip: 1.90 kB ../dist/assets/diagram-2AECGRRQ-DNXSAixC.js 5.97 kB │ gzip: 2.50 kB ../dist/assets/coq-Dsg_Bt_b.js 5.99 kB │ gzip: 2.03 kB ../dist/assets/vb-CdO5JTpU.js 6.26 kB │ gzip: 2.35 kB ../dist/assets/red-bN70gL4F.js 6.26 kB │ gzip: 1.60 kB ../dist/assets/shaderlab-B7qAK45m.js 6.27 kB │ gzip: 2.10 kB ../dist/assets/min-dark-CafNBF8u.js 6.29 kB │ gzip: 1.72 kB ../dist/assets/gdshader-SKMF96pI.js 6.37 kB │ gzip: 1.75 kB ../dist/assets/prisma-B48N-Iqd.js 6.39 kB │ gzip: 1.40 kB ../dist/assets/solarized-light-L9t79GZl.js 6.48 kB │ gzip: 1.74 kB ../dist/assets/wgsl-CB0Krxn9.js 6.49 kB │ gzip: 1.69 kB ../dist/assets/postcss-B3ZDOciz.js 6.52 kB │ gzip: 1.93 kB ../dist/assets/toml-CB2ApiWb.js 6.53 kB │ gzip: 1.30 kB ../dist/assets/proto-zocC4JxJ.js 6.57 kB │ gzip: 1.42 kB ../dist/assets/talonscript-C1XDQQGZ.js 6.71 kB │ gzip: 1.47 kB ../dist/assets/cypher-m2LEI-9-.js 6.81 kB │ gzip: 1.83 kB ../dist/assets/solarized-dark-DXbdFlpD.js 6.85 kB │ gzip: 1.81 kB ../dist/assets/soy-C-lX7w71.js 6.95 kB │ gzip: 1.67 kB ../dist/assets/min-light-CTRr51gU.js 6.97 kB │ gzip: 1.90 kB ../dist/assets/clojure-DxSadP1t.js 7.08 kB │ gzip: 1.48 kB ../dist/assets/ara-7O62HKoU.js 7.25 kB │ gzip: 2.11 kB ../dist/assets/hlsl-ifBTmRxC.js 7.61 kB │ gzip: 2.24 kB ../dist/assets/riscv-QhoSD0DR.js 7.70 kB │ gzip: 2.21 kB ../dist/assets/qss-DhMKtDLN.js 7.82 kB │ gzip: 2.62 kB ../dist/assets/monokai-D4h5O-jR.js 7.88 kB │ gzip: 1.92 kB ../dist/assets/dart-B9wLZaAG.js 7.89 kB │ gzip: 1.93 kB ../dist/assets/systemd-CUnW07Te.js 8.00 kB │ gzip: 2.56 kB ../dist/assets/regexp-DWJ3fJO_.js 8.07 kB │ gzip: 1.46 kB ../dist/assets/haml-B2EZWmdv.js 8.49 kB │ gzip: 1.87 kB ../dist/assets/typst-BVUVsWT6.js 8.55 kB │ gzip: 1.70 kB ../dist/assets/plsql-LKU2TuZ1.js 8.57 kB │ gzip: 3.03 kB ../dist/assets/vue-html-xdeiXROB.js 8.70 kB │ gzip: 1.77 kB ../dist/assets/scheme-BJGe-b2p.js 8.72 kB │ gzip: 2.61 kB ../dist/assets/kotlin-B5lbUyaz.js 8.82 kB │ gzip: 2.14 kB ../dist/assets/andromeeda-C3khCPGq.js 8.86 kB │ gzip: 2.31 kB ../dist/assets/make-Bvotw-X0.js 9.01 kB │ gzip: 1.77 kB ../dist/assets/dark-plus-C3mMm8J8.js 9.10 kB │ gzip: 2.10 kB ../dist/assets/slack-dark-BthQWCQV.js 9.12 kB │ gzip: 1.98 kB ../dist/assets/ts-tags-CipyTH0X.js 9.18 kB │ gzip: 1.24 kB ../dist/assets/plastic-3e1v2bzS.js 9.30 kB │ gzip: 1.99 kB ../dist/assets/tex-rYs2v40G.js 9.37 kB │ gzip: 2.97 kB ../dist/assets/sass-BJ4Li9vH.js 9.41 kB │ gzip: 2.50 kB ../dist/assets/slack-ochin-DqwNpetd.js 9.43 kB │ gzip: 2.11 kB ../dist/assets/jison-BqZprYcd.js 9.72 kB │ gzip: 1.86 kB ../dist/assets/sas-BmTFh92c.js 9.79 kB │ gzip: 4.03 kB ../dist/assets/light-plus-B7mTdjB0.js 9.94 kB │ gzip: 2.29 kB ../dist/assets/gherkin--30QC5Em.js 10.12 kB │ gzip: 5.02 kB ../dist/assets/stateDiagram-AJRCARHV-DTJs_-I2.js 10.36 kB │ gzip: 3.62 kB ../dist/assets/cmake-DbXoA79R.js 10.50 kB │ gzip: 3.57 kB ../dist/assets/dream-maker-C-nORZOA.js 10.61 kB │ gzip: 2.30 kB ../dist/assets/raku-B1bQXN8T.js 10.61 kB │ gzip: 2.99 kB ../dist/assets/rst-4NLicBqY.js 10.65 kB │ gzip: 2.42 kB ../dist/assets/beancount-BwXTMy5W.js 10.76 kB │ gzip: 1.52 kB ../dist/assets/yaml-CVw76BM1.js 10.79 kB │ gzip: 2.29 kB ../dist/assets/diagram-KO2AKTUF-1eujKSDC.js 10.82 kB │ gzip: 4.18 kB ../dist/assets/cadence-DNquZEk8.js 11.03 kB │ gzip: 2.32 kB ../dist/assets/github-light-DAi9KRSo.js 11.18 kB │ gzip: 2.52 kB ../dist/assets/elm-CmHSxxaM.js 11.29 kB │ gzip: 2.21 kB ../dist/assets/dagre-BM42HDAG-C39QNVgC.js 11.40 kB │ gzip: 4.21 kB ../dist/assets/github-dark-DHJKELXO.js 11.41 kB │ gzip: 2.56 kB ../dist/assets/prolog-BY-TUvya.js 11.44 kB │ gzip: 3.87 kB ../dist/assets/laserwave-DUszq2jm.js 11.50 kB │ gzip: 2.60 kB ../dist/assets/puppet-Cza_XSSt.js 11.75 kB │ gzip: 2.23 kB ../dist/assets/hcl-HzYwdGDm.js 11.97 kB │ gzip: 2.51 kB ../dist/assets/handlebars-BQGss363.js 12.27 kB │ gzip: 2.39 kB ../dist/assets/hjson-T-Tgc4AT.js 12.33 kB │ gzip: 1.68 kB ../dist/assets/vesper-BEBZ7ncR.js 12.66 kB │ gzip: 1.98 kB ../dist/assets/luau-Du5NY7AG.js 12.92 kB │ gzip: 3.12 kB ../dist/assets/bat-fje9CFhw.js 12.99 kB │ gzip: 3.25 kB ../dist/assets/apache-Dn00JSTd.js 13.21 kB │ gzip: 3.79 kB ../dist/assets/terraform-BbSNqyBO.js 13.38 kB │ gzip: 3.11 kB ../dist/assets/vitesse-light-CVO1_9PV.js 13.62 kB │ gzip: 3.06 kB ../dist/assets/aurora-x-D-2ljcwZ.js 13.66 kB │ gzip: 2.30 kB ../dist/assets/vitesse-black-Bkuqu6BP.js 13.68 kB │ gzip: 3.08 kB ../dist/assets/v-CAQ2eGtk.js 13.74 kB │ gzip: 2.85 kB ../dist/assets/vitesse-dark-D0r3Knsf.js 13.76 kB │ gzip: 3.08 kB ../dist/assets/synthwave-84-CbfX1IO0.js 14.04 kB │ gzip: 2.88 kB ../dist/assets/github-light-default-D7oLnXFd.js 14.16 kB │ gzip: 3.06 kB ../dist/assets/github-light-high-contrast-BfjtVDDH.js 14.28 kB │ gzip: 3.04 kB ../dist/assets/github-dark-dimmed-DH5Ifo-i.js 14.43 kB │ gzip: 3.14 kB ../dist/assets/github-dark-default-Cuk6v7N8.js 14.44 kB │ gzip: 3.14 kB ../dist/assets/clarity-BHOwM8T6.js 14.55 kB │ gzip: 2.48 kB ../dist/assets/actionscript-3-D_z4Izcz.js 14.56 kB │ gzip: 2.79 kB ../dist/assets/github-dark-high-contrast-E3gJ1_iC.js 14.60 kB │ gzip: 3.10 kB ../dist/assets/pug-CM9l7STV.js 14.89 kB │ gzip: 2.90 kB ../dist/assets/gnuplot-CM8KxXT1.js 14.91 kB │ gzip: 3.31 kB ../dist/assets/ayu-dark-Cv9koXgw.js 14.95 kB │ gzip: 3.09 kB ../dist/assets/nix-shcSOmrb.js 15.55 kB │ gzip: 2.36 kB ../dist/assets/lua-CvWAzNxB.js 15.62 kB │ gzip: 3.16 kB ../dist/assets/diagram-OG6HWLK6-BFktU3_u.js 15.92 kB │ gzip: 5.69 kB ../dist/assets/wasm-C6j12Q_x.js 15.93 kB │ gzip: 2.89 kB ../dist/assets/solidity-C1w2a3ep.js 16.23 kB │ gzip: 3.13 kB ../dist/assets/svelte-MSaWC3Je.js 16.89 kB │ gzip: 2.96 kB ../dist/assets/purescript-Bg-kzb6g.js 17.07 kB │ gzip: 2.64 kB ../dist/assets/kanagawa-wave-DWedfzmr.js 17.12 kB │ gzip: 2.93 kB ../dist/assets/kanagawa-lotus-CfQXZHmo.js 17.13 kB │ gzip: 2.94 kB ../dist/assets/kanagawa-dragon-CkXjmgJE.js 17.13 kB │ gzip: 2.95 kB ../dist/assets/liquid-D3W5UaiH.js 17.17 kB │ gzip: 3.08 kB ../dist/assets/cue-DtFQj3wx.js 17.35 kB │ gzip: 2.08 kB ../dist/assets/ishikawaDiagram-YF4QCWOH-9fy_K4bd.js 17.56 kB │ gzip: 6.63 kB ../dist/assets/rust-Be6lgOlo.js 17.60 kB │ gzip: 3.37 kB ../dist/assets/angular-html-LfdN0zeE.js 17.66 kB │ gzip: 3.51 kB ../dist/assets/graphql-cDcHW_If.js 18.20 kB │ gzip: 2.65 kB ../dist/assets/elixir-CLiX3zqd.js 18.30 kB │ gzip: 3.22 kB ../dist/assets/material-theme-D5KoaKCx.js 18.62 kB │ gzip: 3.13 kB ../dist/assets/material-theme-darker-BfHTSMKl.js 18.63 kB │ gzip: 3.12 kB ../dist/assets/material-theme-ocean-CyktbL80.js 18.63 kB │ gzip: 3.15 kB ../dist/assets/material-theme-lighter-B0m2ddpp.js 18.63 kB │ gzip: 3.13 kB ../dist/assets/material-theme-palenight-Csfq5Kiy.js 18.64 kB │ gzip: 3.14 kB ../dist/assets/gdscript-DfxzS6Rs.js 18.65 kB │ gzip: 3.72 kB ../dist/assets/abap-DsBKuouk.js 18.82 kB │ gzip: 6.20 kB ../dist/assets/marko-z0MBrx5-.js 19.33 kB │ gzip: 3.21 kB ../dist/assets/groovy-DkBy-JyN.js 19.65 kB │ gzip: 3.77 kB ../dist/assets/mdc-DB_EDNY_.js 19.70 kB │ gzip: 6.62 kB ../dist/assets/nushell-D4Tzg5kh.js 19.75 kB │ gzip: 4.95 kB ../dist/assets/matlab-D9-PGadD.js 20.14 kB │ gzip: 3.85 kB ../dist/assets/move-DB_GagMm.js 20.24 kB │ gzip: 4.03 kB ../dist/assets/glimmer-js-D-cwc0-E.js 20.56 kB │ gzip: 2.99 kB ../dist/assets/glimmer-ts-pgjy16dm.js 20.56 kB │ gzip: 2.99 kB ../dist/assets/kusto-mebxcVVE.js 20.63 kB │ gzip: 4.58 kB ../dist/assets/kanban-definition-UN3LZRKU-BP9hHYIj.js 20.70 kB │ gzip: 7.22 kB ../dist/assets/snazzy-light-Bw305WKR.js 20.77 kB │ gzip: 3.85 kB ../dist/assets/viml-m4uW47V2.js 21.02 kB │ gzip: 7.24 kB ../dist/assets/dracula-BzJJZx-M.js 21.07 kB │ gzip: 4.03 kB ../dist/assets/dracula-soft-BXkSAIEj.js 21.08 kB │ gzip: 4.07 kB ../dist/assets/vue-BuYVFjOK.js 21.48 kB │ gzip: 2.88 kB ../dist/assets/rose-pine-CmCqftbK.js 21.76 kB │ gzip: 3.89 kB ../dist/assets/rose-pine-moon-CjDtw9vr.js 21.77 kB │ gzip: 3.91 kB ../dist/assets/rose-pine-dawn-Ds-gbosJ.js 21.77 kB │ gzip: 3.91 kB ../dist/assets/powershell-BIEUsx6d.js 22.26 kB │ gzip: 4.70 kB ../dist/assets/apl-BBq3IX1j.js 22.84 kB │ gzip: 4.18 kB ../dist/assets/twig-NC5TFiHP.js 23.01 kB │ gzip: 4.15 kB ../dist/assets/mindmap-definition-RKZ34NQL-DZB-FWim.js 23.36 kB │ gzip: 7.81 kB ../dist/assets/sankeyDiagram-5OEKKPKP-BB98feeI.js 23.39 kB │ gzip: 8.54 kB ../dist/assets/journeyDiagram-JHISSGLW-CoGSEuhE.js 23.58 kB │ gzip: 8.31 kB ../dist/assets/nim-ZlGxZxc3.js 23.63 kB │ gzip: 3.51 kB ../dist/assets/vhdl-DYoNaHQp.js 23.78 kB │ gzip: 3.88 kB ../dist/assets/graph-qsFoMdT2.js 23.94 kB │ gzip: 8.30 kB ../dist/assets/templ-dwX3ZSMB.js 23.97 kB │ gzip: 5.40 kB ../dist/assets/astro-CqkE3fuf.js 24.07 kB │ gzip: 7.48 kB ../dist/assets/sql-COK4E0Yg.js 24.32 kB │ gzip: 7.70 kB ../dist/assets/one-light-PoHY5YXO.js 25.30 kB │ gzip: 3.68 kB ../dist/assets/razor-CNLDkMZG.js 25.81 kB │ gzip: 3.47 kB ../dist/assets/fsharp-XplgxFYe.js 25.83 kB │ gzip: 4.23 kB ../dist/assets/wardleyDiagram-YWT4CUSO-BVM0Mb99.js 26.10 kB │ gzip: 6.89 kB ../dist/assets/nord-Ddv68eIx.js 26.72 kB │ gzip: 4.41 kB ../dist/assets/system-verilog-C7L56vO4.js 26.77 kB │ gzip: 4.88 kB ../dist/assets/erDiagram-TEJ5UH35-BvJC7DLk.js 26.97 kB │ gzip: 9.29 kB ../dist/assets/bsl-Dgyn0ogV.js 27.44 kB │ gzip: 8.88 kB ../dist/assets/java-xI-RfyKK.js 27.49 kB │ gzip: 4.33 kB ../dist/assets/coffee-dyiR41kL.js 27.75 kB │ gzip: 6.41 kB ../dist/assets/scss-C31hgJw-.js 28.13 kB │ gzip: 4.43 kB ../dist/assets/typespec-BpWG_bgh.js 28.19 kB │ gzip: 2.83 kB ../dist/assets/index-CdC3pjP3.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-PVQCEYII-BQFRDv6R.js 29.94 kB │ gzip: 8.85 kB ../dist/assets/scala-DQVVAn-B.js 30.49 kB │ gzip: 4.30 kB ../dist/assets/applescript-Bu5BbsvL.js 30.78 kB │ gzip: 6.38 kB ../dist/assets/requirementDiagram-4Y6WPE33-BH2En2i9.js 31.20 kB │ gzip: 9.69 kB ../dist/assets/timeline-definition-PNZ67QCA-Cd4AN7O0.js 31.36 kB │ gzip: 10.37 kB ../dist/assets/stylus-BeQkCIfX.js 31.56 kB │ gzip: 8.14 kB ../dist/assets/mermaid-Ci6OQyBP.js 33.06 kB │ gzip: 4.65 kB ../dist/assets/poimandres-CS3Unz2-.js 33.49 kB │ gzip: 5.53 kB ../dist/assets/codeql-sacFqUAJ.js 33.59 kB │ gzip: 4.00 kB ../dist/assets/one-dark-pro-GBQ2dnAY.js 33.74 kB │ gzip: 5.53 kB ../dist/assets/crystal-DtDmRg-F.js 33.75 kB │ gzip: 5.58 kB ../dist/assets/tokyo-night-DBQeEorK.js 34.36 kB │ gzip: 5.99 kB ../dist/assets/quadrantDiagram-W4KKPZXB-dgk3DSzm.js 34.50 kB │ gzip: 10.02 kB ../dist/assets/haxe-C5wWYbrZ.js 35.30 kB │ gzip: 5.94 kB ../dist/assets/houston-DnULxvSX.js 35.42 kB │ gzip: 5.80 kB ../dist/assets/nginx-D_VnBJ67.js 35.73 kB │ gzip: 4.53 kB ../dist/assets/layout-CNYaLpI5.js 35.84 kB │ gzip: 12.85 kB ../dist/assets/erlang-B-DoSBHF.js 36.31 kB │ gzip: 4.43 kB ../dist/assets/r-CwjWoCRV.js 36.87 kB │ gzip: 11.26 kB ../dist/assets/chunk-AQP2D5EJ-m_g3zjgv.js 37.55 kB │ gzip: 12.11 kB ../dist/assets/xychartDiagram-2RQKCTM6-BX31JDSz.js 40.39 kB │ gzip: 11.47 kB ../dist/assets/cobol-PTqiYgYu.js 40.58 kB │ gzip: 11.07 kB ../dist/assets/asm-Dhn9LcZ4.js 40.85 kB │ gzip: 8.20 kB ../dist/assets/vennDiagram-CIIHVFJN-xIG-rUU9.js 41.83 kB │ gzip: 15.44 kB ../dist/assets/shellscript-atvbtKCR.js 42.71 kB │ gzip: 6.35 kB ../dist/assets/d-BoXegm-a.js 43.01 kB │ gzip: 8.35 kB ../dist/assets/haskell-BILxekzW.js 43.21 kB │ gzip: 7.00 kB ../dist/assets/perl-CHQXSrWU.js 44.54 kB │ gzip: 4.86 kB ../dist/assets/catppuccin-mocha-LGGdnPYs.js 45.61 kB │ gzip: 7.76 kB ../dist/assets/catppuccin-latte-DRW-0cLl.js 45.61 kB │ gzip: 7.77 kB ../dist/assets/catppuccin-frappe-CD_QflpE.js 45.62 kB │ gzip: 7.78 kB ../dist/assets/catppuccin-macchiato-C-_shW-Y.js 45.62 kB │ gzip: 7.77 kB ../dist/assets/apex-COJ4H7py.js 46.81 kB │ gzip: 6.79 kB ../dist/assets/ada-727ZlQH0.js 48.53 kB │ gzip: 6.11 kB ../dist/assets/chunk-727SXJPM-DrCZQxp0.js 49.06 kB │ gzip: 15.55 kB ../dist/assets/ruby-DeZ3UC14.js 51.47 kB │ gzip: 7.12 kB ../dist/assets/go-B1SYOhNW.js 52.41 kB │ gzip: 6.43 kB ../dist/assets/imba-bv_oIlVt.js 53.46 kB │ gzip: 10.23 kB ../dist/assets/everforest-dark-BgDCqdQA.js 53.75 kB │ gzip: 8.46 kB ../dist/assets/everforest-light-C8M2exoo.js 53.75 kB │ gzip: 8.46 kB ../dist/assets/css-BPhBrDlE.js 53.80 kB │ gzip: 13.46 kB ../dist/assets/wikitext-DCE3LsBG.js 56.62 kB │ gzip: 4.77 kB ../dist/assets/markdown-UIAJJxZW.js 56.99 kB │ gzip: 5.61 kB ../dist/assets/latex-C-cWTeAZ.js 59.42 kB │ gzip: 6.01 kB ../dist/assets/stata-DorPZHa4.js 61.01 kB │ gzip: 13.69 kB ../dist/assets/flowDiagram-I6XJVG4X-Cgu3PlOt.js 61.17 kB │ gzip: 19.24 kB ../dist/assets/html-C2L_23MC.js 61.33 kB │ gzip: 12.05 kB ../dist/assets/ballerina-Du268qiB.js 61.63 kB │ gzip: 8.36 kB ../dist/assets/ocaml-BNioltXt.js 65.87 kB │ gzip: 5.19 kB ../dist/assets/ganttDiagram-6RSMTGT7-DLNXN5Xh.js 69.29 kB │ gzip: 23.09 kB ../dist/assets/c4Diagram-AAUBKEIU-Dvi58_BU.js 69.95 kB │ gzip: 19.48 kB ../dist/assets/mojo-Tz6hzZYG.js 72.57 kB │ gzip: 10.36 kB ../dist/assets/python-DhUJRlN_.js 73.53 kB │ gzip: 10.44 kB ../dist/assets/c-C3t2pwGQ.js 73.97 kB │ gzip: 10.62 kB ../dist/assets/blockDiagram-GPEHLZMM-BtmvJjzx.js 74.92 kB │ gzip: 21.39 kB ../dist/assets/vyper-nyqBNV6O.js 78.23 kB │ gzip: 12.05 kB ../dist/assets/cose-bilkent-S5V4N54A-Cbjm_00Z.js 81.55 kB │ gzip: 22.35 kB ../dist/assets/hack-D1yCygmZ.js 84.64 kB │ gzip: 27.44 kB ../dist/assets/csharp-D9R-vmeu.js 87.17 kB │ gzip: 10.44 kB ../dist/assets/swift-BSxZ-RaX.js 90.99 kB │ gzip: 14.51 kB ../dist/assets/asciidoc-BPT9niGB.js 93.51 kB │ gzip: 7.40 kB ../dist/assets/racket-CzouJOBO.js 97.61 kB │ gzip: 15.68 kB ../dist/assets/fortran-free-form-DKXYxT9g.js 98.19 kB │ gzip: 12.40 kB ../dist/assets/less-BfCpw3nA.js 102.46 kB │ gzip: 15.22 kB ../dist/assets/objective-c-Deuh7S70.js 107.79 kB │ gzip: 23.27 kB ../dist/assets/blade-a8OxSdnT.js 108.00 kB │ gzip: 28.54 kB ../dist/assets/php-B5ebYQev.js 113.76 kB │ gzip: 28.74 kB ../dist/assets/sequenceDiagram-3UESZ5HK-CunAIGh8.js 117.29 kB │ gzip: 30.92 kB ../dist/assets/mdx-sdHcTMYB.js 140.36 kB │ gzip: 23.83 kB ../dist/assets/architectureDiagram-3BPJPVTR-MuN3nKpL.js 149.54 kB │ gzip: 41.97 kB ../dist/assets/objective-cpp-BUEGK8hf.js 175.60 kB │ gzip: 30.79 kB ../dist/assets/javascript-ySlJ1b_l.js 198.03 kB │ gzip: 17.58 kB ../dist/assets/tsx-B6W0miNI.js 198.75 kB │ gzip: 17.59 kB ../dist/assets/jsx-BAng5TT0.js 201.01 kB │ gzip: 17.70 kB ../dist/assets/typescript-Dj6nwHGl.js 209.02 kB │ gzip: 17.23 kB ../dist/assets/angular-ts-CKsD7JZE.js 211.78 kB │ gzip: 17.82 kB ../dist/assets/wolfram-C3FkfJm5.js 268.60 kB │ gzip: 77.00 kB ../dist/assets/cytoscape.esm-CUqq0XTU.js 443.69 kB │ gzip: 141.74 kB ../dist/assets/wardley-L42UT6IY-D1UyjIcG.js 615.19 kB │ gzip: 147.94 kB ../dist/assets/mermaid.core-BUwoStsA.js 620.55 kB │ gzip: 148.41 kB ../dist/assets/wasm-CG6Dc4jp.js 622.34 kB │ gzip: 231.16 kB ../dist/assets/cpp-BksuvNSY.js 697.52 kB │ gzip: 50.37 kB ../dist/assets/emacs-lisp-BX77sIaO.js 804.67 kB │ gzip: 197.40 kB ../dist/assets/index-C_ouplMQ.js 2,708.13 kB │ gzip: 810.95 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 20.74s vite v5.4.21 building for production... transforming... ✓ 269 modules transformed. rendering chunks... computing gzip size... dist/index.js 2,872.26 kB │ gzip: 502.31 kB ✓ built in 5.53s npm notice run qwen-code-vscode-ide-companion@0.19.12 build npm notice run npm run build:dev npm notice run qwen-code-vscode-ide-companion@0.19.12 build:dev npm notice run npm run check-types && npm run lint && node esbuild.js npm notice run qwen-code-vscode-ide-companion@0.19.12 check-types npm notice run tsc --noEmit npm notice run qwen-code-vscode-ide-companion@0.19.12 lint npm notice run eslint src Browserslist: browsers data (caniuse-lite) is 9 months old. Please run: npx update-browserslist-db@latest Why you should do it regularly: https://github.com/browserslist/update-db#readme npm notice run @qwen-code/chrome-bridge@0.19.12 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/qwen-code@0.19.12 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.19.12 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 extension examples to dist/examples/ Copied Web Shell UI to dist/web-shell/ ✅ All bundle assets copied to dist/ npm notice npm notice 📦 @qwen-code/qwen-code@0.19.12 npm notice Tarball Contents npm notice 11.4kB LICENSE npm notice 9.5kB README.md npm notice 9.0kB dist/bundled/batch/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 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.6kB dist/bundled/new-app/SKILL.md npm notice 931B dist/bundled/qc-helper/docs/_meta.ts npm notice 14.9kB dist/bundled/qc-helper/docs/common-workflow.md npm notice 205B dist/bundled/qc-helper/docs/configuration/_meta.ts npm notice 17.9kB dist/bundled/qc-helper/docs/configuration/auth.md npm notice 37.3kB dist/bundled/qc-helper/docs/configuration/model-providers.md npm notice 3.0kB dist/bundled/qc-helper/docs/configuration/qwen-ignore.md npm notice 209.1kB dist/bundled/qc-helper/docs/configuration/settings.md npm notice 10.3kB dist/bundled/qc-helper/docs/configuration/themes.md npm notice 3.3kB dist/bundled/qc-helper/docs/configuration/trusted-folders.md npm notice 169B dist/bundled/qc-helper/docs/extension/_meta.ts npm notice 10.3kB dist/bundled/qc-helper/docs/extension/extension-releasing.md npm notice 9.3kB dist/bundled/qc-helper/docs/extension/getting-started-extensions.md npm notice 18.5kB dist/bundled/qc-helper/docs/extension/introduction.md npm notice 816B dist/bundled/qc-helper/docs/features/_meta.ts npm notice 15.0kB dist/bundled/qc-helper/docs/features/approval-mode.md npm notice 12.4kB dist/bundled/qc-helper/docs/features/arena.md npm notice 14.5kB dist/bundled/qc-helper/docs/features/auto-mode.md npm notice 191B dist/bundled/qc-helper/docs/features/channels/_meta.ts npm notice 7.6kB dist/bundled/qc-helper/docs/features/channels/dingtalk.md npm notice 6.7kB dist/bundled/qc-helper/docs/features/channels/feishu.md npm notice 30.6kB dist/bundled/qc-helper/docs/features/channels/overview.md npm notice 3.9kB dist/bundled/qc-helper/docs/features/channels/plugins.md npm notice 7.9kB dist/bundled/qc-helper/docs/features/channels/qqbot.md npm notice 4.8kB dist/bundled/qc-helper/docs/features/channels/telegram.md npm notice 4.6kB dist/bundled/qc-helper/docs/features/channels/wecom.md npm notice 4.5kB dist/bundled/qc-helper/docs/features/channels/weixin.md npm notice 29.7kB dist/bundled/qc-helper/docs/features/code-review.md npm notice 49.3kB dist/bundled/qc-helper/docs/features/commands.md npm notice 5.9kB dist/bundled/qc-helper/docs/features/computer-use.md npm notice 22.7kB dist/bundled/qc-helper/docs/features/dual-output.md npm notice 5.4kB dist/bundled/qc-helper/docs/features/followup-suggestions.md npm notice 26.5kB dist/bundled/qc-helper/docs/features/headless.md npm notice 47.6kB dist/bundled/qc-helper/docs/features/hooks.md npm notice 8.5kB dist/bundled/qc-helper/docs/features/language.md npm notice 15.7kB dist/bundled/qc-helper/docs/features/lsp.md npm notice 8.6kB dist/bundled/qc-helper/docs/features/markdown-rendering.md npm notice 24.1kB dist/bundled/qc-helper/docs/features/mcp.md npm notice 11.5kB dist/bundled/qc-helper/docs/features/memory.md npm notice 8.6kB dist/bundled/qc-helper/docs/features/sandbox.md npm notice 8.5kB dist/bundled/qc-helper/docs/features/scheduled-tasks.md npm notice 10.9kB dist/bundled/qc-helper/docs/features/skills.md npm notice 23.8kB dist/bundled/qc-helper/docs/features/status-line.md npm notice 16.7kB dist/bundled/qc-helper/docs/features/structured-output.md npm notice 28.2kB dist/bundled/qc-helper/docs/features/sub-agents.md npm notice 2.3kB dist/bundled/qc-helper/docs/features/tips.md npm notice 1.4kB dist/bundled/qc-helper/docs/features/token-caching.md npm notice 10.5kB dist/bundled/qc-helper/docs/features/tool-use-summaries.md npm notice 22.3kB dist/bundled/qc-helper/docs/features/worktree.md npm notice 103B dist/bundled/qc-helper/docs/ide-integration/_meta.ts npm notice 10.2kB dist/bundled/qc-helper/docs/ide-integration/ide-companion-spec.md npm notice 7.9kB dist/bundled/qc-helper/docs/ide-integration/ide-integration.md npm notice 12.8kB dist/bundled/qc-helper/docs/integration-github-action.md npm notice 2.6kB dist/bundled/qc-helper/docs/integration-jetbrains.md npm notice 1.5kB dist/bundled/qc-helper/docs/integration-vscode.md npm notice 2.3kB dist/bundled/qc-helper/docs/integration-zed.md npm notice 4.9kB dist/bundled/qc-helper/docs/overview.md npm notice 9.0kB dist/bundled/qc-helper/docs/quickstart.md npm notice 15.7kB dist/bundled/qc-helper/docs/qwen-serve-deploy-local.md npm notice 103.2kB dist/bundled/qc-helper/docs/qwen-serve.md npm notice 66B dist/bundled/qc-helper/docs/reference/_meta.ts npm notice 13.6kB 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 12.6kB 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 76.6kB dist/bundled/review/DESIGN.md npm notice 159.9kB 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 700B dist/chunks/acp-startup-profiler-N3RHHXJ3.js npm notice 544.8kB dist/chunks/acpAgent-PQNMECIG.js npm notice 1.9kB dist/chunks/agent-AOB3333Q.js npm notice 1.7kB dist/chunks/agent-headless-YUBDILJK.js npm notice 213.7kB dist/chunks/anthropicContentGenerator-ZZRGFEES.js npm notice 24.8kB dist/chunks/artifact-tool-PHO5XEGZ.js npm notice 11.1kB dist/chunks/askUserQuestion-CEPBT47X.js npm notice 2.1kB dist/chunks/bridge-LOVPMPUP.js npm notice 130.0kB dist/chunks/ca-2SL2BXTK.js npm notice 550B dist/chunks/channel-worker-group-NEUVTPB2.js npm notice 14.0kB dist/chunks/channel-worker-manager-7CQVOVWV.js npm notice 578B dist/chunks/channel-worker-supervisor-3BU2KNCZ.js npm notice 24.4kB dist/chunks/chunk-2JVHCFTA.js npm notice 3.2kB dist/chunks/chunk-2MBMF7JI.js npm notice 1.2kB dist/chunks/chunk-2W3OOD4W.js npm notice 953B dist/chunks/chunk-2X56YUSZ.js npm notice 8.1kB dist/chunks/chunk-3DJY4IFO.js npm notice 64.7kB dist/chunks/chunk-3EXD4GTP.js npm notice 2.0kB dist/chunks/chunk-4CA4WUMS.js npm notice 1.1MB dist/chunks/chunk-4CHDYDG3.js npm notice 6.5kB dist/chunks/chunk-4RPARQ5D.js npm notice 11.2kB dist/chunks/chunk-4V4HBUIS.js npm notice 265B dist/chunks/chunk-4WGODMVR.js npm notice 90.7kB dist/chunks/chunk-4WKAA4KS.js npm notice 315.2kB dist/chunks/chunk-4X7TWKTZ.js npm notice 6.0kB dist/chunks/chunk-4XAKYR2Q.js npm notice 7.3kB dist/chunks/chunk-4XCVGEEX.js npm notice 3.4kB dist/chunks/chunk-5DTTYNB7.js npm notice 932B dist/chunks/chunk-5HBA2Z7V.js npm notice 11.3kB dist/chunks/chunk-5JKH2KER.js npm notice 12.6kB dist/chunks/chunk-5M6IDOMF.js npm notice 789B dist/chunks/chunk-5O2XNYP6.js npm notice 1.7kB dist/chunks/chunk-6AM5D4ME.js npm notice 16.0kB dist/chunks/chunk-6G4IJBAL.js npm notice 1.2kB dist/chunks/chunk-6H67XLET.js npm notice 1.3kB dist/chunks/chunk-6PNHPK52.js npm notice 16.8kB dist/chunks/chunk-6RLROE6G.js npm notice 5.2kB dist/chunks/chunk-7SX6WZNO.js npm notice 8.8kB dist/chunks/chunk-7VT33AO7.js npm notice 10.2kB dist/chunks/chunk-52VNWUZA.js npm notice 17.7kB dist/chunks/chunk-56IEH2X2.js npm notice 50.6kB dist/chunks/chunk-57OAHC2Y.js npm notice 24.3kB dist/chunks/chunk-64CVI7T7.js npm notice 18.7kB dist/chunks/chunk-75DOP5OR.js npm notice 1.2kB dist/chunks/chunk-76BFY7AF.js npm notice 31.4kB dist/chunks/chunk-335ECZTA.js npm notice 1.5kB dist/chunks/chunk-662K2VXU.js npm notice 553.1kB dist/chunks/chunk-A4UCTEB5.js npm notice 46.8kB dist/chunks/chunk-A5ONUKUI.js npm notice 650.9kB dist/chunks/chunk-A6ETKFUI.js npm notice 3.1kB dist/chunks/chunk-ALGGS7UH.js npm notice 474.4kB dist/chunks/chunk-AM7V77YJ.js npm notice 608.4kB dist/chunks/chunk-ANRANWVE.js npm notice 9.7kB dist/chunks/chunk-BABX5XRO.js npm notice 502.4kB dist/chunks/chunk-BDINGTPN.js npm notice 1.5MB dist/chunks/chunk-BEZPRKD3.js npm notice 238.7kB dist/chunks/chunk-BKNPMEN6.js npm notice 433.3kB dist/chunks/chunk-BPZALHVR.js npm notice 11.4kB dist/chunks/chunk-C6RH7FIM.js npm notice 5.7kB dist/chunks/chunk-CMND7IYV.js npm notice 1.0kB dist/chunks/chunk-COH43MRJ.js npm notice 832B dist/chunks/chunk-CPBF7KYF.js npm notice 3.4kB dist/chunks/chunk-CR3C7WXL.js npm notice 756B dist/chunks/chunk-CXAOG665.js npm notice 3.0MB dist/chunks/chunk-CYYBQXP2.js npm notice 5.7MB dist/chunks/chunk-D2JA22YR.js npm notice 3.1kB dist/chunks/chunk-DJ2GSRLV.js npm notice 20.2kB dist/chunks/chunk-DMTGGOSA.js npm notice 3.8kB dist/chunks/chunk-DT3UHVH5.js npm notice 55.3kB dist/chunks/chunk-E2UVIFI2.js npm notice 2.9kB dist/chunks/chunk-E5Z2AVNV.js npm notice 15.8kB dist/chunks/chunk-E65YJU7C.js npm notice 14.1kB dist/chunks/chunk-EFAXBOQO.js npm notice 30.4kB dist/chunks/chunk-EISVEV45.js npm notice 186.6kB dist/chunks/chunk-EITQ2U2W.js npm notice 8.6kB dist/chunks/chunk-EJLEEGFM.js npm notice 486B dist/chunks/chunk-F2RR4HO2.js npm notice 129.5kB dist/chunks/chunk-FCMNKVXT.js npm notice 2.4kB dist/chunks/chunk-FEOZBUMT.js npm notice 9.5kB dist/chunks/chunk-FMUOS4L3.js npm notice 10.8kB dist/chunks/chunk-FYPWEAID.js npm notice 376.2kB dist/chunks/chunk-GAM4MKP5.js npm notice 873.8kB dist/chunks/chunk-GEHSF7MS.js npm notice 29.7kB dist/chunks/chunk-GJCPSCU4.js npm notice 531B dist/chunks/chunk-GLH2NTPB.js npm notice 3.1kB dist/chunks/chunk-GOIAHVEL.js npm notice 7.0kB dist/chunks/chunk-GOXKNSDZ.js npm notice 271B dist/chunks/chunk-GRC5HGPI.js npm notice 23.1kB dist/chunks/chunk-GZM6PHH3.js npm notice 142.4kB dist/chunks/chunk-GZXCZHCT.js npm notice 542.0kB dist/chunks/chunk-H6XPXXMH.js npm notice 7.5kB dist/chunks/chunk-HCCR43AY.js npm notice 6.2kB dist/chunks/chunk-HGT6JR3U.js npm notice 1.7kB dist/chunks/chunk-HLXIHTJ7.js npm notice 19.3kB dist/chunks/chunk-HTHUX2T5.js npm notice 3.2kB dist/chunks/chunk-HTO4JFDZ.js npm notice 8.4kB dist/chunks/chunk-I7RRHHYG.js npm notice 35.7kB dist/chunks/chunk-I7XUYRNT.js npm notice 2.2kB dist/chunks/chunk-IDS7MSUP.js npm notice 29.6kB dist/chunks/chunk-IPSYOJEB.js npm notice 1.8kB dist/chunks/chunk-IV5FJ4Q5.js npm notice 2.7kB dist/chunks/chunk-IY2XUYF3.js npm notice 8.1kB dist/chunks/chunk-J2MKYJKZ.js npm notice 2.5kB dist/chunks/chunk-J2S4EL5Y.js npm notice 233.0kB dist/chunks/chunk-J4MOFEOK.js npm notice 24.2kB dist/chunks/chunk-J6NT5YTN.js npm notice 9.4kB dist/chunks/chunk-JCJPZMJV.js npm notice 8.3kB dist/chunks/chunk-JESCGQM3.js npm notice 891B dist/chunks/chunk-JX6JAQDV.js npm notice 361.5kB dist/chunks/chunk-K5J34BO3.js npm notice 20.4kB dist/chunks/chunk-KANTXY7B.js npm notice 671B dist/chunks/chunk-KW7NOTN6.js npm notice 1.1MB dist/chunks/chunk-L573Z2QZ.js npm notice 39.3kB dist/chunks/chunk-LHO2ORTX.js npm notice 45.8kB dist/chunks/chunk-LKR7QQ63.js npm notice 9.5kB dist/chunks/chunk-LPHGXXZX.js npm notice 459B dist/chunks/chunk-LXXMOYPL.js npm notice 3.5kB dist/chunks/chunk-M5GB774H.js npm notice 1.3kB dist/chunks/chunk-MR3PXB6E.js npm notice 166.9kB dist/chunks/chunk-MYNZ22UW.js npm notice 347B dist/chunks/chunk-NHDKSOEY.js npm notice 2.8kB dist/chunks/chunk-NQE3N65C.js npm notice 16.0kB dist/chunks/chunk-NUHSLBJZ.js npm notice 2.0kB dist/chunks/chunk-OA4JVLSA.js npm notice 18.8kB dist/chunks/chunk-OEHCAWUA.js npm notice 9.6kB dist/chunks/chunk-OSSDHJDU.js npm notice 947B dist/chunks/chunk-OWAK7LMW.js npm notice 329.3kB dist/chunks/chunk-OWBXP3VT.js npm notice 22.1kB dist/chunks/chunk-PEJWA3QQ.js npm notice 6.2kB dist/chunks/chunk-PL7MAZ42.js npm notice 928B dist/chunks/chunk-Q7YDKOGY.js npm notice 17.8kB dist/chunks/chunk-QC2PFHP4.js npm notice 7.6kB dist/chunks/chunk-QHTIBUWB.js npm notice 93.2kB dist/chunks/chunk-QMGX2KO2.js npm notice 1.2kB dist/chunks/chunk-QR6U5QPP.js npm notice 1.5kB dist/chunks/chunk-QRUIS3DN.js npm notice 9.2kB dist/chunks/chunk-QSG4ZFG4.js npm notice 7.2kB dist/chunks/chunk-QSWDGAIC.js npm notice 423B dist/chunks/chunk-QUPXZXLV.js npm notice 3.1kB dist/chunks/chunk-R3VWUU2E.js npm notice 2.2kB dist/chunks/chunk-RDCIQI3P.js npm notice 430B dist/chunks/chunk-RKUWKYED.js npm notice 1.0kB dist/chunks/chunk-RXFQM6FQ.js npm notice 56.0kB dist/chunks/chunk-S3TWXGKA.js npm notice 15.9kB dist/chunks/chunk-SGPFJMRP.js npm notice 706B dist/chunks/chunk-SZRN75WQ.js npm notice 260.8kB dist/chunks/chunk-T2NCM2ET.js npm notice 5.0kB dist/chunks/chunk-T3KX6LVT.js npm notice 1.2kB dist/chunks/chunk-T4TZQJ7W.js npm notice 61.0kB dist/chunks/chunk-TB6UDU4T.js npm notice 7.1kB dist/chunks/chunk-TDKQP3M6.js npm notice 1.2kB dist/chunks/chunk-TJTKSVIV.js npm notice 6.5kB dist/chunks/chunk-TLAFEHOA.js npm notice 1.0kB dist/chunks/chunk-TYAMGABM.js npm notice 1.2MB dist/chunks/chunk-TYQMGACW.js npm notice 78.6kB dist/chunks/chunk-UDXSXLER.js npm notice 37.4kB dist/chunks/chunk-UE5TZ55T.js npm notice 34.2kB dist/chunks/chunk-UKAOCG5E.js npm notice 14.4kB dist/chunks/chunk-UOA2IHRI.js npm notice 19.3kB dist/chunks/chunk-URK542T4.js npm notice 3.4kB dist/chunks/chunk-V4IF6ZEQ.js npm notice 47.1kB dist/chunks/chunk-V4PCIS25.js npm notice 537B dist/chunks/chunk-V6WHFGST.js npm notice 12.6kB dist/chunks/chunk-VAJS2E2D.js npm notice 1.5kB dist/chunks/chunk-VDDGDZMA.js npm notice 10.5kB dist/chunks/chunk-VGC4I5JJ.js npm notice 870B dist/chunks/chunk-VJNBRRZG.js npm notice 12.6kB dist/chunks/chunk-VL5ZA2JI.js npm notice 845B dist/chunks/chunk-W6CQPLWM.js npm notice 1.2kB dist/chunks/chunk-W7FJ3N32.js npm notice 8.1kB dist/chunks/chunk-W7H223ZZ.js npm notice 67.9kB dist/chunks/chunk-WBL3FJEU.js npm notice 2.4kB dist/chunks/chunk-WEPXQKGP.js npm notice 20.8kB dist/chunks/chunk-WHQNBBWW.js npm notice 3.9kB dist/chunks/chunk-WKIIHV4B.js npm notice 13.3kB dist/chunks/chunk-X6YQWCIJ.js npm notice 85.0kB dist/chunks/chunk-XAAEDML2.js npm notice 195.3kB dist/chunks/chunk-XFSFZCM5.js npm notice 19.0kB dist/chunks/chunk-XSPFQQRE.js npm notice 4.6kB dist/chunks/chunk-XU457J4V.js npm notice 16.8kB dist/chunks/chunk-XUUBZK7S.js npm notice 1.7kB dist/chunks/chunk-XVNQMZ2I.js npm notice 2.6kB dist/chunks/chunk-XWRJCPHC.js npm notice 395B dist/chunks/chunk-YAF2MQZ6.js npm notice 171.4kB dist/chunks/chunk-YDQIQ75U.js npm notice 3.3kB dist/chunks/chunk-YQ3U5MUC.js npm notice 122.8kB dist/chunks/chunk-YS2ZE3HQ.js npm notice 53.8kB dist/chunks/chunk-YYSHUUHX.js npm notice 15.7kB dist/chunks/chunk-ZQ6XBCU6.js npm notice 202B dist/chunks/cli-entry-path-4VJ3Y6T2.js npm notice 90.5kB dist/chunks/computer-use-C3JRVS2T.js npm notice 570B dist/chunks/config-utils-6PJUXHLI.js npm notice 1.9kB dist/chunks/contextCommand-AWCF3I56.js npm notice 8.5kB dist/chunks/create-sub-session-DIJOV6HV.js npm notice 12.4kB dist/chunks/create-sub-session-FMWGQXH5.js npm notice 8.9kB dist/chunks/cron-create-X462ERYA.js npm notice 2.9kB dist/chunks/cron-delete-SL5UJUM3.js npm notice 4.5kB dist/chunks/cron-list-3MD6SVXI.js npm notice 2.1kB dist/chunks/daemon-status-provider-IUNHIF7A.js npm notice 351.9kB dist/chunks/daemon-ZW6LHOXT.js npm notice 133.0kB dist/chunks/de-I7ZIYXZC.js npm notice 747.0kB dist/chunks/devtools-4QFYJT6U.js npm notice 499.8kB dist/chunks/dist-3DQNQJ6H.js npm notice 22.8kB dist/chunks/dist-IEQSDXS7.js npm notice 189.9kB dist/chunks/dist-IGZMVS5R.js npm notice 128.7kB dist/chunks/dist-J2H4KTLB.js npm notice 119.9kB dist/chunks/dist-NUXRQHC5.js npm notice 258B dist/chunks/dist-PZV5RKM6.js npm notice 4.8MB dist/chunks/dist-XLE6ODMB.js npm notice 1.9kB dist/chunks/earlyInputCapture-PAVDZ4WW.js npm notice 33.1kB dist/chunks/edit-NVFKCUBR.js npm notice 154.0kB dist/chunks/en-XE34GKAA.js npm notice 8.8kB dist/chunks/enter-worktree-KJJ5H7W7.js npm notice 7.8kB dist/chunks/enterPlanMode-MYU7XUON.js npm notice 2.4kB dist/chunks/environment-D4URTCUS.js npm notice 2.0kB dist/chunks/errors-75ZCOSVH.js npm notice 18.2kB dist/chunks/exit-worktree-GOKOLI2J.js npm notice 13.2kB dist/chunks/exitPlanMode-DYOWCATN.js npm notice 15.6kB dist/chunks/fast-path-RDKOJF34.js npm notice 646B dist/chunks/fast-path-settings-DAOVFADC.js npm notice 4.8kB dist/chunks/fileFromPath-UDALK7FM.js npm notice 137.4kB dist/chunks/fr-X7KDVZIY.js npm notice 111.0kB dist/chunks/gemini-3YICMI5C.js npm notice 8.8kB dist/chunks/geminiContentGenerator-ADZTXEKV.js npm notice 1.5kB dist/chunks/getMachineId-bsd-EXV7SWPA.js npm notice 1.5kB dist/chunks/getMachineId-darwin-IUOMFXU3.js npm notice 1.3kB dist/chunks/getMachineId-linux-K7XJYFHL.js npm notice 1.0kB dist/chunks/getMachineId-unsupported-EA5FDRJ6.js npm notice 1.7kB dist/chunks/getMachineId-win-KBA6RAI5.js npm notice 13.0kB dist/chunks/glob-B7EGAVOT.js npm notice 22.2kB dist/chunks/grep-XYLWTWF2.js npm notice 1.9kB dist/chunks/handleAutoUpdate-CL7V7YDW.js npm notice 2.2kB dist/chunks/i18n-2GKCGFB6.js npm notice 2.0kB dist/chunks/initializer-U7SHLSO2.js npm notice 1.8kB dist/chunks/installationInfo-CVTCGYO6.js npm notice 186.1kB dist/chunks/ja-2ICT3KXF.js npm notice 270B dist/chunks/keychain-token-storage-K23CFKGN.js npm notice 382B dist/chunks/kittyProtocolDetector-HCNNKJTI.js npm notice 2.1kB dist/chunks/list-SUAH6GYP.js npm notice 2.0kB dist/chunks/loadedSettingsAdapter-XNZPX35F.js npm notice 6.7kB dist/chunks/loop-wakeup-6H7OENTB.js npm notice 1.5MB dist/chunks/lowlight-J2OZNPCA.js npm notice 9.4kB dist/chunks/ls-APTSOOS5.js npm notice 35.4kB dist/chunks/lsp-HPACPJAN.js npm notice 1.9kB dist/chunks/MaxSizedBox-K753CTXO.js npm notice 2.0kB dist/chunks/mcp-6E7VC3ZS.js npm notice 21.8kB dist/chunks/monitor-5BJX3DRK.js npm notice 12.1kB dist/chunks/multipart-parser-AWZKXSQN.js npm notice 3.8kB dist/chunks/nonInteractiveCli-WSZJA7Z4.js npm notice 27.7kB dist/chunks/notebook-edit-TPROOKXR.js npm notice 1.6kB dist/chunks/openaiContentGenerator-C3HETBS5.js npm notice 1.9kB dist/chunks/pidfile-XLCDNJ67.js npm notice 708B dist/chunks/processUtils-3DLFFE44.js npm notice 132.3kB dist/chunks/pt-JJ4XPIBP.js npm notice 7.2kB dist/chunks/qwenContentGenerator-HFFRX364.js npm notice 1.7kB dist/chunks/qwenOAuth2-C3T3HEOC.js npm notice 764B dist/chunks/read-file-S2Y4C4IN.js npm notice 6.4kB dist/chunks/read-mcp-resource-C6NT52T6.js npm notice 171.4kB dist/chunks/read-package-up-TCM6I7S2.js npm notice 11.7kB dist/chunks/record-artifact-ENCU7QCL.js npm notice 1.7kB dist/chunks/ripGrep-2TMKPXAG.js npm notice 320.6kB dist/chunks/ru-STR4KTW7.js npm notice 192.0kB dist/chunks/run-qwen-serve-RQPMCFPS.js npm notice 2.8kB dist/chunks/runtime-WHYNC2MR.js npm notice 11.2kB dist/chunks/scheduler-4YADJZ5H.js npm notice 10.1kB dist/chunks/send-message-5GZ4FX2V.js npm notice 2.1kB dist/chunks/serve-5A6KSWL3.js npm notice 1.0MB dist/chunks/server-GOUNGA5B.js npm notice 86.0kB dist/chunks/session-IYRVRYNG.js npm notice 3.1kB dist/chunks/settings-ZAMSI77D.js npm notice 1.9kB dist/chunks/shell-SSCQBUQK.js npm notice 17.8kB dist/chunks/skill-SIAZTXPB.js npm notice 1.9kB dist/chunks/spawnChannel-JMT276S5.js npm notice 70.9kB dist/chunks/src-EEMZRLST.js npm notice 48.9kB dist/chunks/src-VLI3TKEY.js npm notice 2.1kB dist/chunks/standalone-update-E7QPPLZB.js npm notice 6.5kB dist/chunks/StandaloneSessionPicker-L4NVFZH7.js npm notice 1.6MB dist/chunks/startInteractiveUI-NH5MNVQI.js npm notice 314B dist/chunks/stdioHelpers-HGIYTWAY.js npm notice 368B dist/chunks/syntheticOutput-ULOVVLY4.js npm notice 582B dist/chunks/task-create-DUE2PMNI.js npm notice 4.2kB dist/chunks/task-list-WVPNX7BZ.js npm notice 7.3kB dist/chunks/task-stop-CPEQWOT6.js npm notice 13.7kB dist/chunks/task-update-HY2LNFFB.js npm notice 12.8kB dist/chunks/team-create-3O5KSHBK.js npm notice 3.0kB dist/chunks/team-delete-JJV6IUOA.js npm notice 6.2kB dist/chunks/team-plan-approval-SQKQZZ7S.js npm notice 1.7kB dist/chunks/theme-manager-JC3QSHMU.js npm notice 12.4kB dist/chunks/todoWrite-JHHIDOIV.js npm notice 16.3kB dist/chunks/tool-search-QELILAEO.js npm notice 2.0kB dist/chunks/total-session-admission-S6A3TMQO.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 2.2kB dist/chunks/trustedFolders-LYSZGXG3.js npm notice 592.4kB dist/chunks/turndown.cjs-FZHGMUTY.js npm notice 472B dist/chunks/types-ML3TRJQ5.js npm notice 2.9kB dist/chunks/update-relaunch-EAMABHUJ.js npm notice 2.0kB dist/chunks/updateCheck-N3TGFMTX.js npm notice 206B dist/chunks/updateEventEmitter-5MKC7BLQ.js npm notice 5.9kB dist/chunks/validateNonInterActiveAuth-MMSELWZE.js npm notice 226B dist/chunks/version-EXGWKKQE.js npm notice 32.0kB dist/chunks/web-fetch-E6CLKJBU.js npm notice 89.4kB dist/chunks/workflow-C2Y7DRWU.js npm notice 2.1kB dist/chunks/workspace-providers-status-2XCVRY75.js npm notice 806B dist/chunks/workspace-registration-store-NE6FF2WA.js npm notice 2.1kB dist/chunks/workspace-registry-IDE4VPQI.js npm notice 2.5kB dist/chunks/workspace-service-Y4CZAKWV.js npm notice 2.1kB dist/chunks/workspace-skills-status-MNRC5WQ5.js npm notice 19.0kB dist/chunks/write-file-ODFJQOCR.js npm notice 207B dist/chunks/yargs-6H2AUULL.js npm notice 192.0kB dist/chunks/zh-6ANG2HTL.js npm notice 182.8kB dist/chunks/zh-TW-4RR3YHNN.js npm notice 12.2kB dist/cli.js npm notice 2.4kB dist/examples/agent/agents/diary.md npm notice 122B dist/examples/agent/qwen-extension.json npm notice 75B dist/examples/commands/commands/fs/grep-code.md npm notice 129B dist/examples/commands/qwen-extension.json npm notice 137B dist/examples/context/qwen-extension.json npm notice 670B dist/examples/context/QWEN.md npm notice 1.4kB dist/examples/mcp-server/example.ts npm notice 380B dist/examples/mcp-server/package.json npm notice 440B dist/examples/mcp-server/qwen-extension.json npm notice 290B dist/examples/mcp-server/tsconfig.json npm notice 119B dist/examples/skills/qwen-extension.json npm notice 1.9kB dist/examples/skills/skills/synonyms/SKILL.md npm notice 2.4kB dist/examples/starter/agents/diary.md npm notice 378B dist/examples/starter/commands/writing/polish.md npm notice 1.8kB dist/examples/starter/example.ts npm notice 420B dist/examples/starter/package.json npm notice 250B dist/examples/starter/qwen-extension.json npm notice 1.2kB dist/examples/starter/QWEN.md npm notice 2.5kB dist/examples/starter/README.md npm notice 1.9kB dist/examples/starter/skills/synonyms/SKILL.md npm notice 290B dist/examples/starter/tsconfig.json npm notice 28.4kB dist/fzfWorker.js npm notice 129.3kB dist/locales/ca.js npm notice 133.2kB dist/locales/de.js npm notice 155.6kB dist/locales/en.js npm notice 135.6kB dist/locales/fr.js npm notice 132.0kB dist/locales/ja.js npm notice 130.5kB dist/locales/pt.js npm notice 166.4kB dist/locales/ru.js npm notice 139.1kB dist/locales/zh-TW.js npm notice 148.3kB dist/locales/zh.js npm notice 1.0kB dist/sandbox-macos-permissive-closed.sb npm notice 899B dist/sandbox-macos-permissive-open.sb npm notice 1.3kB dist/sandbox-macos-permissive-proxied.sb npm notice 3.3kB dist/sandbox-macos-restrictive-closed.sb npm notice 3.4kB dist/sandbox-macos-restrictive-open.sb npm notice 3.6kB dist/sandbox-macos-restrictive-proxied.sb npm notice 4.5MB dist/vendor/ripgrep/arm64-darwin/rg npm notice 4.8MB dist/vendor/ripgrep/arm64-linux/rg npm notice 126B dist/vendor/ripgrep/COPYING npm notice 4.7MB dist/vendor/ripgrep/x64-darwin/rg npm notice 5.7MB dist/vendor/ripgrep/x64-linux/rg npm notice 5.4MB dist/vendor/ripgrep/x64-win32/rg.exe npm notice 1.4MB dist/vendor/tree-sitter/tree-sitter-bash.wasm npm notice 190.8kB dist/vendor/tree-sitter/tree-sitter.wasm npm notice 18.8kB dist/web-shell/assets/abap-DsBKuouk.js npm notice 14.6kB dist/web-shell/assets/actionscript-3-D_z4Izcz.js npm notice 48.5kB dist/web-shell/assets/ada-727ZlQH0.js npm notice 8.9kB dist/web-shell/assets/andromeeda-C3khCPGq.js npm notice 17.7kB dist/web-shell/assets/angular-html-LfdN0zeE.js npm notice 211.8kB dist/web-shell/assets/angular-ts-CKsD7JZE.js npm notice 13.2kB dist/web-shell/assets/apache-Dn00JSTd.js npm notice 46.8kB dist/web-shell/assets/apex-COJ4H7py.js npm notice 24.2kB dist/web-shell/assets/apl-BBq3IX1j.js npm notice 30.8kB dist/web-shell/assets/applescript-Bu5BbsvL.js npm notice 7.2kB dist/web-shell/assets/ara-7O62HKoU.js npm notice 3.4kB dist/web-shell/assets/arc-_dVIKMdB.js npm notice 149.5kB dist/web-shell/assets/architectureDiagram-3BPJPVTR-MuN3nKpL.js npm notice 93.5kB dist/web-shell/assets/asciidoc-BPT9niGB.js npm notice 40.9kB dist/web-shell/assets/asm-Dhn9LcZ4.js npm notice 24.1kB dist/web-shell/assets/astro-CqkE3fuf.js npm notice 13.7kB dist/web-shell/assets/aurora-x-D-2ljcwZ.js npm notice 5.5kB dist/web-shell/assets/awk-eg146-Ew.js npm notice 14.9kB dist/web-shell/assets/ayu-dark-Cv9koXgw.js npm notice 61.6kB dist/web-shell/assets/ballerina-Du268qiB.js npm notice 13.0kB dist/web-shell/assets/bat-fje9CFhw.js npm notice 10.8kB dist/web-shell/assets/beancount-BwXTMy5W.js npm notice 2.4kB dist/web-shell/assets/berry-3xVqZejG.js npm notice 5.1kB dist/web-shell/assets/bibtex-xW4inM5L.js npm notice 4.5kB dist/web-shell/assets/bicep-DHo0CJ0O.js npm notice 108.0kB dist/web-shell/assets/blade-a8OxSdnT.js npm notice 74.9kB dist/web-shell/assets/blockDiagram-GPEHLZMM-BtmvJjzx.js npm notice 38.1kB dist/web-shell/assets/bsl-Dgyn0ogV.js npm notice 74.0kB dist/web-shell/assets/c-C3t2pwGQ.js npm notice 70.0kB dist/web-shell/assets/c4Diagram-AAUBKEIU-Dvi58_BU.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-Bi5TehaT.js npm notice 532B dist/web-shell/assets/chunk-2J33WTMH-YqxOVhS1.js npm notice 297B dist/web-shell/assets/chunk-4BX2VUAB-DoBgbC9z.js npm notice 235B dist/web-shell/assets/chunk-55IACEB6-3NEQrBAr.js npm notice 49.1kB dist/web-shell/assets/chunk-727SXJPM-DrCZQxp0.js npm notice 37.6kB dist/web-shell/assets/chunk-AQP2D5EJ-m_g3zjgv.js npm notice 366B dist/web-shell/assets/chunk-FMBD7UC4-D1_crABJ.js npm notice 1.9kB dist/web-shell/assets/chunk-ND2GUHAM-BdhgVtBx.js npm notice 193B dist/web-shell/assets/chunk-QZHKN3VN-BlmThhm-.js npm notice 14.6kB dist/web-shell/assets/clarity-BHOwM8T6.js npm notice 467B dist/web-shell/assets/classDiagram-4FO5ZUOK-BKhhRdd1.js npm notice 467B dist/web-shell/assets/classDiagram-v2-Q7XG4LA2-BKhhRdd1.js npm notice 7.1kB dist/web-shell/assets/clojure-DxSadP1t.js npm notice 10.5kB dist/web-shell/assets/cmake-DbXoA79R.js npm notice 40.6kB dist/web-shell/assets/cobol-PTqiYgYu.js npm notice 547B dist/web-shell/assets/codeowners-Bp6g37R7.js npm notice 33.6kB dist/web-shell/assets/codeql-sacFqUAJ.js npm notice 27.7kB dist/web-shell/assets/coffee-dyiR41kL.js npm notice 28.5kB dist/web-shell/assets/common-lisp-C7gG9l05.js npm notice 6.0kB dist/web-shell/assets/coq-Dsg_Bt_b.js npm notice 81.5kB dist/web-shell/assets/cose-bilkent-S5V4N54A-Cbjm_00Z.js npm notice 697.5kB dist/web-shell/assets/cpp-BksuvNSY.js npm notice 33.7kB dist/web-shell/assets/crystal-DtDmRg-F.js npm notice 87.2kB dist/web-shell/assets/csharp-D9R-vmeu.js npm notice 53.8kB dist/web-shell/assets/css-BPhBrDlE.js npm notice 1.2kB dist/web-shell/assets/csv-B0qRVHPH.js npm notice 17.3kB dist/web-shell/assets/cue-DtFQj3wx.js npm notice 6.8kB dist/web-shell/assets/cypher-m2LEI-9-.js npm notice 443.7kB dist/web-shell/assets/cytoscape.esm-CUqq0XTU.js npm notice 43.0kB dist/web-shell/assets/d-BoXegm-a.js npm notice 11.4kB dist/web-shell/assets/dagre-BM42HDAG-C39QNVgC.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 6.0kB dist/web-shell/assets/diagram-2AECGRRQ-DNXSAixC.js npm notice 2.8kB dist/web-shell/assets/diagram-5GNKFQAL-BCbGUPEA.js npm notice 10.8kB dist/web-shell/assets/diagram-KO2AKTUF-1eujKSDC.js npm notice 4.2kB dist/web-shell/assets/diagram-LMA3HP47-DUMKXgql.js npm notice 15.9kB dist/web-shell/assets/diagram-OG6HWLK6-BFktU3_u.js npm notice 2.6kB dist/web-shell/assets/diff-BgYniUM_.js npm notice 1.8kB dist/web-shell/assets/docker-COcR7UxN.js npm notice 1.7kB dist/web-shell/assets/dotenv-BjQB5zDj.js npm notice 21.1kB dist/web-shell/assets/dracula-BzJJZx-M.js npm notice 21.1kB dist/web-shell/assets/dracula-soft-BXkSAIEj.js npm notice 10.6kB dist/web-shell/assets/dream-maker-C-nORZOA.js npm notice 2.4kB dist/web-shell/assets/edge-D5gP-w-T.js npm notice 18.3kB dist/web-shell/assets/elixir-CLiX3zqd.js npm notice 11.3kB dist/web-shell/assets/elm-CmHSxxaM.js npm notice 804.7kB dist/web-shell/assets/emacs-lisp-BX77sIaO.js npm notice 2.6kB dist/web-shell/assets/erb-BYTLMnw6.js npm notice 27.0kB dist/web-shell/assets/erDiagram-TEJ5UH35-BvJC7DLk.js npm notice 36.3kB dist/web-shell/assets/erlang-B-DoSBHF.js npm notice 53.7kB dist/web-shell/assets/everforest-dark-BgDCqdQA.js npm notice 53.7kB dist/web-shell/assets/everforest-light-C8M2exoo.js npm notice 4.8kB dist/web-shell/assets/fennel-bCA53EVm.js npm notice 5.4kB dist/web-shell/assets/fish-w-ucz2PV.js npm notice 61.2kB dist/web-shell/assets/flowDiagram-I6XJVG4X-Cgu3PlOt.js npm notice 3.6kB dist/web-shell/assets/fluent-Dayu4EKP.js npm notice 1.1kB dist/web-shell/assets/fortran-fixed-form-TqA4NnZg.js npm notice 98.2kB dist/web-shell/assets/fortran-free-form-DKXYxT9g.js npm notice 25.8kB dist/web-shell/assets/fsharp-XplgxFYe.js npm notice 69.3kB dist/web-shell/assets/ganttDiagram-6RSMTGT7-DLNXN5Xh.js npm notice 5.5kB dist/web-shell/assets/gdresource-BHYsBjWJ.js npm notice 18.7kB dist/web-shell/assets/gdscript-DfxzS6Rs.js npm notice 6.4kB dist/web-shell/assets/gdshader-SKMF96pI.js npm notice 3.4kB dist/web-shell/assets/genie-ajMbGru0.js npm notice 12.5kB dist/web-shell/assets/gherkin--30QC5Em.js npm notice 1.5kB dist/web-shell/assets/git-commit-i4q6IMui.js npm notice 980B dist/web-shell/assets/git-rebase-B-v9cOL2.js npm notice 29.9kB dist/web-shell/assets/gitGraphDiagram-PVQCEYII-BQFRDv6R.js npm notice 14.4kB dist/web-shell/assets/github-dark-default-Cuk6v7N8.js npm notice 11.4kB dist/web-shell/assets/github-dark-DHJKELXO.js npm notice 14.4kB dist/web-shell/assets/github-dark-dimmed-DH5Ifo-i.js npm notice 14.6kB dist/web-shell/assets/github-dark-high-contrast-E3gJ1_iC.js npm notice 11.2kB dist/web-shell/assets/github-light-DAi9KRSo.js npm notice 14.2kB dist/web-shell/assets/github-light-default-D7oLnXFd.js npm notice 14.3kB dist/web-shell/assets/github-light-high-contrast-BfjtVDDH.js npm notice 2.7kB dist/web-shell/assets/gleam-B430Bg39.js npm notice 20.6kB dist/web-shell/assets/glimmer-js-D-cwc0-E.js npm notice 20.6kB dist/web-shell/assets/glimmer-ts-pgjy16dm.js npm notice 3.9kB dist/web-shell/assets/glsl-DBO2IWDn.js npm notice 14.9kB dist/web-shell/assets/gnuplot-CM8KxXT1.js npm notice 52.4kB dist/web-shell/assets/go-B1SYOhNW.js npm notice 23.9kB dist/web-shell/assets/graph-qsFoMdT2.js npm notice 18.2kB dist/web-shell/assets/graphql-cDcHW_If.js npm notice 19.6kB dist/web-shell/assets/groovy-DkBy-JyN.js npm notice 84.7kB dist/web-shell/assets/hack-D1yCygmZ.js npm notice 8.5kB dist/web-shell/assets/haml-B2EZWmdv.js npm notice 12.3kB dist/web-shell/assets/handlebars-BQGss363.js npm notice 43.3kB dist/web-shell/assets/haskell-BILxekzW.js npm notice 35.3kB dist/web-shell/assets/haxe-C5wWYbrZ.js npm notice 12.0kB dist/web-shell/assets/hcl-HzYwdGDm.js npm notice 12.3kB dist/web-shell/assets/hjson-T-Tgc4AT.js npm notice 7.6kB dist/web-shell/assets/hlsl-ifBTmRxC.js npm notice 35.4kB dist/web-shell/assets/houston-DnULxvSX.js npm notice 61.3kB dist/web-shell/assets/html-C2L_23MC.js npm notice 970B dist/web-shell/assets/html-derivative-CSfWNPLT.js npm notice 4.7kB dist/web-shell/assets/http-FRrOvY1W.js npm notice 1.8kB dist/web-shell/assets/hxml-TIA70rKU.js npm notice 2.8kB dist/web-shell/assets/hy-BMj5Y0dO.js npm notice 53.5kB dist/web-shell/assets/imba-bv_oIlVt.js npm notice 2.7MB dist/web-shell/assets/index-C_ouplMQ.js npm notice 28.3kB dist/web-shell/assets/index-CdC3pjP3.js npm notice 383.0kB dist/web-shell/assets/index-XGDFJE-X.css npm notice 587B dist/web-shell/assets/infoDiagram-5YYISTIA-DT2mOSvp.js npm notice 1.5kB dist/web-shell/assets/ini-BjABl1g7.js npm notice 147B dist/web-shell/assets/init-Gi6I4Gst.js npm notice 4.2kB dist/web-shell/assets/insert-DmRbh9Rv.svg npm notice 17.6kB dist/web-shell/assets/ishikawaDiagram-YF4QCWOH-9fy_K4bd.js npm notice 27.5kB dist/web-shell/assets/java-xI-RfyKK.js npm notice 198.0kB dist/web-shell/assets/javascript-ySlJ1b_l.js npm notice 5.7kB dist/web-shell/assets/jinja-DGy0s7-h.js npm notice 9.7kB dist/web-shell/assets/jison-BqZprYcd.js npm notice 23.6kB dist/web-shell/assets/journeyDiagram-JHISSGLW-CoGSEuhE.js npm notice 2.9kB dist/web-shell/assets/json-BQoSv7ci.js npm notice 3.5kB dist/web-shell/assets/json5-w8dY5SsB.js npm notice 3.2kB dist/web-shell/assets/jsonc-TU54ms6u.js npm notice 3.1kB dist/web-shell/assets/jsonl-DREVFZK8.js npm notice 3.6kB dist/web-shell/assets/jsonnet-BfivnA6A.js npm notice 3.0kB dist/web-shell/assets/jssm-P4WzXJd0.js npm notice 201.0kB dist/web-shell/assets/jsx-BAng5TT0.js npm notice 35.7kB dist/web-shell/assets/julia-BBuGR-5E.js npm notice 17.1kB dist/web-shell/assets/kanagawa-dragon-CkXjmgJE.js npm notice 17.1kB dist/web-shell/assets/kanagawa-lotus-CfQXZHmo.js npm notice 17.1kB dist/web-shell/assets/kanagawa-wave-DWedfzmr.js npm notice 20.7kB dist/web-shell/assets/kanban-definition-UN3LZRKU-BP9hHYIj.js npm notice 28.1kB dist/web-shell/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 npm notice 33.5kB dist/web-shell/assets/KaTeX_AMS-Regular-DMm9YOAa.woff npm notice 63.6kB dist/web-shell/assets/KaTeX_AMS-Regular-DRggAlZN.ttf npm notice 12.4kB dist/web-shell/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf npm notice 7.7kB dist/web-shell/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff npm notice 6.9kB dist/web-shell/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 npm notice 7.7kB dist/web-shell/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff npm notice 6.9kB dist/web-shell/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 npm notice 12.3kB dist/web-shell/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf npm notice 19.6kB dist/web-shell/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf npm notice 13.3kB dist/web-shell/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff npm notice 11.3kB dist/web-shell/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 npm notice 19.6kB dist/web-shell/assets/KaTeX_Fraktur-Regular-CB_wures.ttf npm notice 11.3kB dist/web-shell/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 npm notice 13.2kB dist/web-shell/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff npm notice 25.3kB dist/web-shell/assets/KaTeX_Main-Bold-Cx986IdX.woff2 npm notice 29.9kB dist/web-shell/assets/KaTeX_Main-Bold-Jm3AIy58.woff npm notice 51.3kB dist/web-shell/assets/KaTeX_Main-Bold-waoOVXN0.ttf npm notice 16.8kB dist/web-shell/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 npm notice 33.0kB dist/web-shell/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf npm notice 19.4kB dist/web-shell/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff npm notice 33.6kB dist/web-shell/assets/KaTeX_Main-Italic-3WenGoN9.ttf npm notice 19.7kB dist/web-shell/assets/KaTeX_Main-Italic-BMLOBm91.woff npm notice 17.0kB dist/web-shell/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 npm notice 26.3kB dist/web-shell/assets/KaTeX_Main-Regular-B22Nviop.woff2 npm notice 30.8kB dist/web-shell/assets/KaTeX_Main-Regular-Dr94JaBh.woff npm notice 53.6kB dist/web-shell/assets/KaTeX_Main-Regular-ypZvNtVU.ttf npm notice 31.2kB dist/web-shell/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf npm notice 16.4kB dist/web-shell/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 npm notice 18.7kB dist/web-shell/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff npm notice 18.7kB dist/web-shell/assets/KaTeX_Math-Italic-DA0__PXp.woff npm notice 31.3kB dist/web-shell/assets/KaTeX_Math-Italic-flOr_0UB.ttf npm notice 16.4kB dist/web-shell/assets/KaTeX_Math-Italic-t53AETM-.woff2 npm notice 24.5kB dist/web-shell/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf npm notice 12.2kB dist/web-shell/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 npm notice 14.4kB dist/web-shell/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff npm notice 12.0kB dist/web-shell/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 npm notice 14.1kB dist/web-shell/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff npm notice 22.4kB dist/web-shell/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf npm notice 19.4kB dist/web-shell/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf npm notice 12.3kB dist/web-shell/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff npm notice 10.3kB dist/web-shell/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 npm notice 16.6kB dist/web-shell/assets/KaTeX_Script-Regular-C5JkGWo-.ttf npm notice 9.6kB dist/web-shell/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 npm notice 10.6kB dist/web-shell/assets/KaTeX_Script-Regular-D5yQViql.woff npm notice 6.5kB dist/web-shell/assets/KaTeX_Size1-Regular-C195tn64.woff npm notice 12.2kB dist/web-shell/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf npm notice 5.5kB dist/web-shell/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 npm notice 11.5kB dist/web-shell/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf npm notice 5.2kB dist/web-shell/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 npm notice 6.2kB dist/web-shell/assets/KaTeX_Size2-Regular-oD1tc_U0.woff npm notice 4.4kB dist/web-shell/assets/KaTeX_Size3-Regular-CTq5MqoE.woff npm notice 7.6kB dist/web-shell/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf npm notice 6.0kB dist/web-shell/assets/KaTeX_Size4-Regular-BF-4gkZK.woff npm notice 4.9kB dist/web-shell/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 npm notice 10.4kB dist/web-shell/assets/KaTeX_Size4-Regular-DWFBv043.ttf npm notice 16.0kB dist/web-shell/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff npm notice 13.6kB dist/web-shell/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 npm notice 27.6kB dist/web-shell/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf npm notice 8.8kB dist/web-shell/assets/kotlin-B5lbUyaz.js npm notice 20.6kB dist/web-shell/assets/kusto-mebxcVVE.js npm notice 11.5kB dist/web-shell/assets/laserwave-DUszq2jm.js npm notice 59.4kB dist/web-shell/assets/latex-C-cWTeAZ.js npm notice 35.8kB dist/web-shell/assets/layout-CNYaLpI5.js npm notice 4.3kB dist/web-shell/assets/lean-XBlWyCtg.js npm notice 102.5kB dist/web-shell/assets/less-BfCpw3nA.js npm notice 9.9kB dist/web-shell/assets/light-plus-B7mTdjB0.js npm notice 5.7kB dist/web-shell/assets/linear-uIroDsmp.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 620.6kB dist/web-shell/assets/mermaid.core-BUwoStsA.js npm notice 6.3kB dist/web-shell/assets/min-dark-CafNBF8u.js npm notice 7.0kB dist/web-shell/assets/min-light-CTRr51gU.js npm notice 23.4kB dist/web-shell/assets/mindmap-definition-RKZ34NQL-DZB-FWim.js npm notice 3.4kB dist/web-shell/assets/mipsasm-BC5c_5Pe.js npm notice 72.6kB dist/web-shell/assets/mojo-Tz6hzZYG.js npm notice 7.9kB dist/web-shell/assets/monokai-D4h5O-jR.js npm notice 20.2kB dist/web-shell/assets/move-DB_GagMm.js npm notice 3.7kB dist/web-shell/assets/narrat-DLbgOhZU.js npm notice 4.0kB dist/web-shell/assets/nextflow-B0XVJmRM.js npm notice 35.7kB dist/web-shell/assets/nginx-D_VnBJ67.js npm notice 28.9kB dist/web-shell/assets/night-owl-C39BiMTA.js npm notice 23.6kB dist/web-shell/assets/nim-ZlGxZxc3.js npm notice 15.6kB dist/web-shell/assets/nix-shcSOmrb.js npm notice 26.7kB dist/web-shell/assets/nord-Ddv68eIx.js npm notice 19.7kB dist/web-shell/assets/nushell-D4Tzg5kh.js npm notice 107.8kB dist/web-shell/assets/objective-c-Deuh7S70.js npm notice 175.6kB dist/web-shell/assets/objective-cpp-BUEGK8hf.js npm notice 65.9kB dist/web-shell/assets/ocaml-BNioltXt.js npm notice 33.7kB dist/web-shell/assets/one-dark-pro-GBQ2dnAY.js npm notice 25.3kB dist/web-shell/assets/one-light-PoHY5YXO.js npm notice 1.2kB dist/web-shell/assets/ordinal-Cboi1Yqb.js npm notice 4.2kB dist/web-shell/assets/pascal-JqZropPD.js npm notice 44.5kB dist/web-shell/assets/perl-CHQXSrWU.js npm notice 113.8kB dist/web-shell/assets/php-B5ebYQev.js npm notice 5.3kB dist/web-shell/assets/pieDiagram-4H26LBE5-YPptloKl.js npm notice 9.3kB dist/web-shell/assets/plastic-3e1v2bzS.js npm notice 8.6kB dist/web-shell/assets/plsql-LKU2TuZ1.js npm notice 3.4kB dist/web-shell/assets/po-BFLt1xDp.js npm notice 33.5kB dist/web-shell/assets/poimandres-CS3Unz2-.js npm notice 4.7kB dist/web-shell/assets/polar-DKykz6zU.js npm notice 6.5kB dist/web-shell/assets/postcss-B3ZDOciz.js npm notice 5.9kB dist/web-shell/assets/powerquery-CSHBycmS.js npm notice 22.3kB dist/web-shell/assets/powershell-BIEUsx6d.js npm notice 6.4kB dist/web-shell/assets/prisma-B48N-Iqd.js npm notice 11.4kB dist/web-shell/assets/prolog-BY-TUvya.js npm notice 6.6kB dist/web-shell/assets/proto-zocC4JxJ.js npm notice 14.9kB dist/web-shell/assets/pug-CM9l7STV.js npm notice 11.7kB dist/web-shell/assets/puppet-Cza_XSSt.js npm notice 17.1kB dist/web-shell/assets/purescript-Bg-kzb6g.js npm notice 73.5kB dist/web-shell/assets/python-DhUJRlN_.js npm notice 5.4kB dist/web-shell/assets/qml-D8XfuvdV.js npm notice 1.0kB dist/web-shell/assets/qmldir-C8lEn-DE.js npm notice 7.8kB dist/web-shell/assets/qss-DhMKtDLN.js npm notice 34.5kB dist/web-shell/assets/quadrantDiagram-W4KKPZXB-dgk3DSzm.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 10.6kB dist/web-shell/assets/raku-B1bQXN8T.js npm notice 25.8kB dist/web-shell/assets/razor-CNLDkMZG.js npm notice 6.3kB dist/web-shell/assets/red-bN70gL4F.js npm notice 2.4kB dist/web-shell/assets/reg-5LuOXUq_.js npm notice 8.1kB dist/web-shell/assets/regexp-DWJ3fJO_.js npm notice 3.4kB dist/web-shell/assets/rel-DJlmqQ1C.js npm notice 31.2kB dist/web-shell/assets/requirementDiagram-4Y6WPE33-BH2En2i9.js npm notice 7.7kB dist/web-shell/assets/riscv-QhoSD0DR.js npm notice 21.8kB dist/web-shell/assets/rose-pine-CmCqftbK.js npm notice 21.8kB dist/web-shell/assets/rose-pine-dawn-Ds-gbosJ.js npm notice 21.8kB dist/web-shell/assets/rose-pine-moon-CjDtw9vr.js npm notice 10.6kB dist/web-shell/assets/rst-4NLicBqY.js npm notice 51.5kB dist/web-shell/assets/ruby-DeZ3UC14.js npm notice 17.6kB dist/web-shell/assets/rust-Be6lgOlo.js npm notice 23.4kB dist/web-shell/assets/sankeyDiagram-5OEKKPKP-BB98feeI.js npm notice 9.8kB dist/web-shell/assets/sas-BmTFh92c.js npm notice 9.4kB dist/web-shell/assets/sass-BJ4Li9vH.js npm notice 30.5kB dist/web-shell/assets/scala-DQVVAn-B.js npm notice 8.7kB dist/web-shell/assets/scheme-BJGe-b2p.js npm notice 28.1kB dist/web-shell/assets/scss-C31hgJw-.js npm notice 5.1kB dist/web-shell/assets/sdbl-BLhTXw86.js npm notice 117.3kB dist/web-shell/assets/sequenceDiagram-3UESZ5HK-CunAIGh8.js npm notice 6.3kB dist/web-shell/assets/shaderlab-B7qAK45m.js npm notice 42.7kB dist/web-shell/assets/shellscript-atvbtKCR.js npm notice 719B dist/web-shell/assets/shellsession-C_rIy8kc.js npm notice 9.1kB dist/web-shell/assets/slack-dark-BthQWCQV.js npm notice 9.4kB dist/web-shell/assets/slack-ochin-DqwNpetd.js npm notice 4.2kB dist/web-shell/assets/smalltalk-DkLiglaE.js npm notice 20.8kB dist/web-shell/assets/snazzy-light-Bw305WKR.js npm notice 6.8kB dist/web-shell/assets/solarized-dark-DXbdFlpD.js npm notice 6.5kB dist/web-shell/assets/solarized-light-L9t79GZl.js npm notice 16.2kB dist/web-shell/assets/solidity-C1w2a3ep.js npm notice 7.0kB dist/web-shell/assets/soy-C-lX7w71.js npm notice 1.5kB dist/web-shell/assets/sparql-bYkjHRlG.js npm notice 3.9kB dist/web-shell/assets/splunk-Cf8iN4DR.js npm notice 24.3kB dist/web-shell/assets/sql-COK4E0Yg.js npm notice 3.6kB dist/web-shell/assets/ssh-config-BknIz3MU.js npm notice 61.0kB dist/web-shell/assets/stata-DorPZHa4.js npm notice 10.4kB dist/web-shell/assets/stateDiagram-AJRCARHV-DTJs_-I2.js npm notice 391B dist/web-shell/assets/stateDiagram-v2-BHNVJYJU-DrfFMYta.js npm notice 31.6kB dist/web-shell/assets/stylus-BeQkCIfX.js npm notice 16.9kB dist/web-shell/assets/svelte-MSaWC3Je.js npm notice 91.0kB dist/web-shell/assets/swift-BSxZ-RaX.js npm notice 14.0kB dist/web-shell/assets/synthwave-84-CbfX1IO0.js npm notice 26.8kB dist/web-shell/assets/system-verilog-C7L56vO4.js npm notice 8.0kB dist/web-shell/assets/systemd-CUnW07Te.js npm notice 6.7kB dist/web-shell/assets/talonscript-C1XDQQGZ.js npm notice 3.4kB dist/web-shell/assets/tasl-CQjiPCtT.js npm notice 5.0kB dist/web-shell/assets/tcl-DQ1-QYvQ.js npm notice 24.0kB dist/web-shell/assets/templ-dwX3ZSMB.js npm notice 13.4kB dist/web-shell/assets/terraform-BbSNqyBO.js npm notice 9.4kB dist/web-shell/assets/tex-rYs2v40G.js npm notice 31.4kB dist/web-shell/assets/timeline-definition-PNZ67QCA-Cd4AN7O0.js npm notice 34.4kB dist/web-shell/assets/tokyo-night-DBQeEorK.js npm notice 6.5kB dist/web-shell/assets/toml-CB2ApiWb.js npm notice 9.2kB dist/web-shell/assets/ts-tags-CipyTH0X.js npm notice 739B dist/web-shell/assets/tsv-B_m7g4N7.js npm notice 198.8kB dist/web-shell/assets/tsx-B6W0miNI.js npm notice 3.7kB dist/web-shell/assets/turtle-BMR_PYu6.js npm notice 23.0kB dist/web-shell/assets/twig-NC5TFiHP.js npm notice 209.0kB dist/web-shell/assets/typescript-Dj6nwHGl.js npm notice 28.2kB dist/web-shell/assets/typespec-BpWG_bgh.js npm notice 8.6kB dist/web-shell/assets/typst-BVUVsWT6.js npm notice 13.7kB dist/web-shell/assets/v-CAQ2eGtk.js npm notice 3.4kB dist/web-shell/assets/vala-BFOHcciG.js npm notice 6.3kB dist/web-shell/assets/vb-CdO5JTpU.js npm notice 41.8kB dist/web-shell/assets/vennDiagram-CIIHVFJN-xIG-rUU9.js npm notice 5.9kB dist/web-shell/assets/verilog-CJaU5se_.js npm notice 12.7kB dist/web-shell/assets/vesper-BEBZ7ncR.js npm notice 23.8kB dist/web-shell/assets/vhdl-DYoNaHQp.js npm notice 21.0kB dist/web-shell/assets/viml-m4uW47V2.js npm notice 13.7kB dist/web-shell/assets/vitesse-black-Bkuqu6BP.js npm notice 13.8kB dist/web-shell/assets/vitesse-dark-D0r3Knsf.js npm notice 13.6kB dist/web-shell/assets/vitesse-light-CVO1_9PV.js npm notice 21.5kB dist/web-shell/assets/vue-BuYVFjOK.js npm notice 8.7kB dist/web-shell/assets/vue-html-xdeiXROB.js npm notice 78.2kB dist/web-shell/assets/vyper-nyqBNV6O.js npm notice 615.3kB dist/web-shell/assets/wardley-L42UT6IY-D1UyjIcG.js npm notice 26.1kB dist/web-shell/assets/wardleyDiagram-YWT4CUSO-BVM0Mb99.js npm notice 15.9kB dist/web-shell/assets/wasm-C6j12Q_x.js npm notice 622.3kB dist/web-shell/assets/wasm-CG6Dc4jp.js npm notice 2.2kB dist/web-shell/assets/wenyan-7A4Fjokl.js npm notice 6.5kB dist/web-shell/assets/wgsl-CB0Krxn9.js npm notice 56.6kB dist/web-shell/assets/wikitext-DCE3LsBG.js npm notice 268.6kB dist/web-shell/assets/wolfram-C3FkfJm5.js npm notice 5.4kB dist/web-shell/assets/xml-e3z08dGr.js npm notice 1.4kB dist/web-shell/assets/xsl-Dd0NUgwM.js npm notice 40.4kB dist/web-shell/assets/xychartDiagram-2RQKCTM6-BX31JDSz.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 4.7kB dist/web-shell/index.html npm notice 9.0kB package.json npm notice 8.0kB 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.19.12 npm notice filename: qwen-code-qwen-code-0.19.12.tgz npm notice package size: 25.4 MB npm notice unpacked size: 98.0 MB npm notice shasum: 82778c0314712b6c871481057176d3e0a727ea62 npm notice integrity: sha512-7058f1NOLFNy6[...]ioLN6/aAkC39g== npm notice bundled deps: 43 npm notice bundled files: 0 npm notice own files: 5074 npm notice total files: 5074 npm notice qwen-code-qwen-code-0.19.12.tgz ==> Starting check()... npm notice run @qwen-code/mobile-mcp@0.19.12 test npm notice run c8 playwright test Could not execute adb command, maybe ANDROID_HOME is not set? Running 55 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 (261ms) ✓ 10 test/coord-norm.test.ts:49:5 › normToPx maps edges (60ms) ✓ 11 test/coord-norm.test.ts:59:5 › normToPx rounds to nearest (30ms) ✓ 12 test/coord-norm.test.ts:69:5 › hasCoordFields returns true for click tools (31ms) ✓ 13 test/coord-norm.test.ts:82:5 › normToPx respects custom scale (999) (29ms) ✓ 14 test/coord-norm.test.ts:93:5 › pxToNorm (removed) is no longer exported (31ms) ✓ 15 test/coord-norm.test.ts:104:5 › denormalizeArgs click uses width for x, height for y (27ms) ✓ 16 test/coord-norm.test.ts:121:5 › denormalizeArgs swipe converts x, y, and distance by direction (26ms) ✓ 17 test/coord-norm.test.ts:150:5 › denormalizeArgs leaves non-coord tools untouched (21ms) ✓ 18 test/coord-norm.test.ts:161:5 › denormalizeArgs ignores missing coord fields (26ms) ✓ 19 test/coord-norm.test.ts:180:5 › normalizeElementResult and normalizeScreenSizeResult are no longer exported (24ms) ✓ 20 test/coord-norm.test.ts:192:5 › screen size cache round-trip (26ms) ✓ 21 test/coord-norm.test.ts:203:5 › screen size cache returns undefined for unknown device (26ms) ✓ 22 test/coord-norm.test.ts:212:5 › ingestScreenSizeFromResult parses response (26ms) ✓ 23 test/coord-norm.test.ts:225:5 › isNormalized returns false by default (24ms) ✓ 24 test/coord-norm.test.ts:236:5 › isNormalized returns true when MOBILE_MCP_COORDINATE_SPACE=1 (24ms) ✓ 25 test/coord-norm.test.ts:247:5 › coordinateScale defaults to 1000 (24ms) ✓ 26 test/coord-norm.test.ts:258:5 › coordinateScale reads custom value (23ms) ✓ 27 test/coord-norm.test.ts:271:5 › rewriteDescription replaces 'in pixels' with normalized wording (23ms) ✓ 28 test/coord-norm.test.ts:284:5 › coordParamDesc is passthrough when not normalized (25ms) ✓ 29 test/coord-norm.test.ts:296:5 › coordParamDesc rewrites when normalized (24ms) 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 ✓ 40 test/mobilecli.test.ts:27:9 › mobilecli › getVersion › should return a version string (16ms) ✓ 41 test/mobilecli.test.ts:33:9 › mobilecli › getVersion › should return version in correct format (23ms) ✓ 42 test/mobilecli.test.ts:43:9 › mobilecli › getVersion › should return failed when MOBILECLI_PATH points to invalid location (10ms) ✓ 43 test/mobilecli.test.ts:57:9 › mobilecli › getVersion › should call executeCommand with --version argument (2ms) ✓ 44 test/mobilecli.test.ts:85:9 › mobilecli › getDevices › should call executeCommand with devices argument when no options (2ms) ✓ 45 test/mobilecli.test.ts:93:9 › mobilecli › getDevices › should call executeCommand with platform filter (2ms) ✓ 46 test/mobilecli.test.ts:101:9 › mobilecli › getDevices › should call executeCommand with type filter (1ms) ✓ 47 test/mobilecli.test.ts:109:9 › mobilecli › getDevices › should call executeCommand with includeOffline flag (2ms) ✓ 48 test/mobilecli.test.ts:117:9 › mobilecli › getDevices › should call executeCommand with combined options (2ms) ✓ 49 test/png.ts:5:7 › png › should be able to parse png (2ms) ✓ 50 test/png.ts:13:7 › png › should be able to detect an invalid png (2ms) ✓ 51 test/strip-ui-bounds.test.ts:4:5 › strips positive bounds attributes (1ms) ✓ 52 test/strip-ui-bounds.test.ts:9:5 › strips negative bounds for off-screen elements (1ms) ✓ 53 test/strip-ui-bounds.test.ts:16:5 › strips every bounds attribute in the dump (1ms) ✓ 54 test/strip-ui-bounds.test.ts:21:5 › leaves XML without bounds untouched (1ms) ✓ 55 test/strip-ui-bounds.test.ts:26:5 › preserves malformed bounds-like strings verbatim (2ms) 18 skipped 37 passed (3.6s) -----------------------|---------|----------|---------|---------|----------------------------------- File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s -----------------------|---------|----------|---------|---------|----------------------------------- All files | 38.33 | 69.86 | 17.64 | 38.33 | mobile-mcp | 100 | 100 | 100 | 100 | playwright.config.ts | 100 | 100 | 100 | 100 | mobile-mcp/src | 37.94 | 69.86 | 17.64 | 37.94 | android.ts | 20.65 | 33.33 | 7.14 | 20.65 | ...58-772,775-806,820-821,832-856 coord-norm.ts | 92.25 | 88.46 | 90.9 | 92.25 | 72-73,96-100,112-116 ios.ts | 38.79 | 57.14 | 12.12 | 38.79 | ...90-297,300-307,316-325,328-347 mobile-device.ts | 43.72 | 100 | 5 | 43.72 | ...24-235,238-251,254-255,258-262 mobilecli.ts | 61.38 | 60 | 40 | 61.38 | ...97-204,207-208,220-223,234-237 png.ts | 100 | 100 | 100 | 100 | robot.ts | 98.83 | 100 | 0 | 98.83 | 51-52 utils.ts | 24 | 100 | 12.5 | 24 | ...,18-28,30-45,48-58,60-70,73-91 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.19.12 test npm notice run vitest run --testTimeout=30000 --exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants,serve/acp-http/transport,i18n/index,ui/auth/AuthDialog,ui/utils/clipboardUtils}.test.* RUN v3.2.4 /startdir/src/qwen-code/packages/acp-bridge ✓ src/generation-stream.test.ts (4 tests) 5ms ✓ src/session-source.test.ts (9 tests) 31ms ✓ src/workspacePaths.test.ts (2 tests) 44ms ✓ src/ndJsonStream.test.ts (11 tests) 84ms ✓ src/eventBus.test.ts (39 tests) 143ms ✓ src/channel-startup-profile.test.ts (4 tests) 8ms ✓ src/compactionEngine.test.ts (54 tests) 60ms permissionMediator: consensus request req-1 for session sess-1 requires unanimity (votersAtIssue.size=2, default quorum=floor(M/2)+1=2); split votes will only resolve via permissionTimeoutMs (5000ms). This breadcrumb fires once per mediator lifetime; subsequent unanimity-required requests are silent. qwen serve: permission req-1 (session sess-1) timed out after 5000ms qwen serve: permission req-1 (session sess-1): vote rejected (designated_mismatch (voter is not the prompt originator)) by client "client_B" qwen serve: permission req-1 (session sess-1): vote rejected (designated_mismatch (voter not in consensus votersAtIssue snapshot)) by client permissionMediator: consensus request req-1 for session sess-1 requires unanimity (votersAtIssue.size=2, default quorum=floor(M/2)+1=2); split votes will only resolve via permissionTimeoutMs (5000ms). This breadcrumb fires once per mediator lifetime; subsequent unanimity-required requests are silent. qwen serve: permission req-1 (session sess-1): vote rejected (designated_mismatch (voter not in consensus votersAtIssue snapshot)) by client "client_late_join" qwen serve: permission req-1 (session sess-1) timed out after 5000ms permissionMediator: consensusQuorum override 100 capped to 3 (votersAtIssue.size=3) for request req-1 session sess-1 qwen serve: permission req-1 (session sess-1): vote rejected (remote_not_allowed (local-only policy; vote not from loopback)) by client "client_A" permissionMediator: emit failed for session="sess-1" type="permission_resolved": Error: bus closed during shutdown permissionMediator: emit failed for session="sess-1" type="permission_already_resolved": Error: bus closed during shutdown permissionMediator: audit publisher threw: Error: audit ring full permissionMediator: audit publisher threw: Error: audit ring full permissionMediator: audit publisher threw: Error: audit publisher transient error permissionMediator: audit publisher threw: Error: audit publisher transient error qwen serve: permission req-1 (session sess-1) timed out after 5000ms permissionMediator: audit publisher threw: Error: audit publisher transient error ✓ src/permissionMediator.test.ts (40 tests) 59ms ✓ src/status.test.ts (17 tests) 16ms ✓ src/logRedaction.test.ts (39 tests) 26ms [demux] session=session-owned-by-new-channel type=session_recording_degraded action=dropped reason=session_not_owned a2ui: dropping command with unrecognized shape (version,noop) ✓ src/a2uiExtraction.test.ts (14 tests) 9ms ✓ src/spawnChannel.test.ts (29 tests) 92ms [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=sess:forged-artifacts action=dropped reason="url must use http or https" qwen serve: failed to snapshot pending interaction 5cad1511-11f5-4475-ab5c-f60c347eea77: Cannot read properties of null (reading '_meta') [mid-turn] session=sess:drain drained=2 injected into running turn [mid-turn] session=sess:multi drained=2 originator=client-1 injected into running turn [mid-turn] session=sess:multi drained=1 originator=client-2 injected into running turn ✓ src/bridgeClient.test.ts (66 tests) 120ms [artifacts] session=s11-ephemeral-replacement-failure action=upsert_rollback warning="artifact durable removal not persisted; live changes rolled back" artifactIds=["2dfaa9c7bc96dc41"] error="disk full" qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) ✓ src/inMemoryChannel.test.ts (8 tests) 127ms qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session 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, 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_3d445a29-bdd0-4e78-8f26-4a486f0e9f5f requester=client_6db502df-1f42-49da-9b48-87845c5c88c8 [artifacts] session=sess:/work/a action=remove_denied artifactId=ea192b281419fff5 owner=client_3d445a29-bdd0-4e78-8f26-4a486f0e9f5f requester= qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 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=s11-restored-client-tombstone action=tombstone_replay_suppressed artifactId=ffe5414ad32cdb7f qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=1, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [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: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [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" qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) ✓ src/sessionArtifacts.test.ts (103 tests) 651ms qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle 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: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 1 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) 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: session reaper started (interval 60000ms, idle threshold 1800000ms) broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a (latch already set) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) sendPrompt: forward failed for session sess:/work/a: forward boom qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) by client "client_23bffed6-d481-47d3-87ce-b7b276732a79" qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: updated session metadata "sess:/work/a" displayName=set by client "client_5e844a32-63a4-46ce-a8a1-2949467096a6" qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 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=a7ebc40e-6429-4203-9639-460a1bac5acc 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) 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) [pending-prompt] session=sess:/work/a removing promptId=7b41ecf5-79f4-48d0-bc35-e104bad4fad5 state=running sendPrompt: forward failed for session sess:/work/a: cancelled broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a (latch already set) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [pending-prompt] session=sess:/work/a removing promptId=d15eb971-186f-484f-9c33-452dc71026dd 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) qwen serve: legacy permission vote "does-not-exist" has no live session (peek returned undefined); returning 404. qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: legacy permission vote "does-not-exist" has no live session (peek returned undefined); returning 404. qwen serve: legacy permission vote "does-not-exist" has no live session (peek returned undefined); returning 404. qwen serve: legacy permission vote "does-not-exist" has no live session (peek returned undefined); returning 404. qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [reconcile] session=sess:/work/a target=model action=skipped reason=roundtrip_failed qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [reconcile] session=sess:/work/a target=model action=skipped reason=roundtrip_failed qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 1 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [reconcile] session=sess:/work/a target=model action=skipped reason=roundtrip_failed qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [reconcile] session=sess:/work/a target=model action=skipped reason=roundtrip_failed qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 1 session(s) torn down) sendPrompt: forward failed for session stuck:/work/a: agent channel closed mid-request (session stuck:/work/a) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: 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) [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 60000ms, idle threshold 1800000ms) [reconcile] session=restore-with-mode target=approvalMode action=skipped reason=roundtrip_failed qwen serve: closing session "restore-with-mode" (reason: last_client_detached) 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) [reconcile] session=sess:/work/a target=approvalMode action=skipped reason=roundtrip_failed qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) sendPrompt: forward failed for session sess:/work/a: Internal error qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: 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= 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) [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: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 3 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: 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, 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, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: updated session metadata "sess:/work/a" displayName=set qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) 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 "0297effe-3dc7-4f9e-bd15-29b573d76599" 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, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: closing session "sess:/work/a#2" (reason: client_close) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: idle timeout (5000ms) expired, killing channel qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: closing session "sess:/work/a#2" (reason: client_close) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: idle timeout (5000ms) expired, killing channel qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 1000ms, idle threshold 5000ms) qwen serve: reaping idle session "sess:/work/a" (idle for 5s, threshold 5s) qwen serve: closing session "sess:/work/a" (reason: idle_timeout) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 1000ms, idle threshold 2000ms) sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a) qwen serve: session reaper started (interval 1000ms, idle threshold 2000ms) qwen serve: reaping idle session "sess:/work/a" (idle for 6s, threshold 2s) qwen serve: closing session "sess:/work/a" (reason: idle_timeout) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 1000ms, idle threshold 2000ms) sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a) qwen serve: session reaper disabled qwen serve: session reaper disabled qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: idle_timeout) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 1000ms, idle threshold 3000ms) qwen serve: reaping idle session "sess:/work/a" (idle for 3s, threshold 3s) qwen serve: closing session "sess:/work/a" (reason: idle_timeout) qwen serve: reaping idle session "sess:/work/a#2" (idle for 3s, threshold 3s) qwen serve: closing session "sess:/work/a#2" (reason: idle_timeout) qwen serve: reaping idle session "sess:/work/a#3" (idle for 3s, threshold 3s) qwen serve: closing session "sess:/work/a#3" (reason: idle_timeout) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 1000ms, idle threshold 5000ms) qwen serve: reaping idle session "sess:/work/a" (idle for 5s, threshold 5s) qwen serve: closing session "sess:/work/a" (reason: idle_timeout) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 1000ms, idle threshold 2000ms) qwen serve: session reaper started (interval 1000ms, idle threshold 3000ms) qwen serve: closing session "sess:/work/a" (reason: last_client_detached) qwen serve: idle timeout (2000ms) expired, killing channel qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper disabled qwen serve: closing session "sess:/work/a" (reason: last_client_detached) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper disabled qwen serve: closing session "sess:/work/a" (reason: last_client_detached) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper disabled qwen serve: closing session "sess:/work/a" (reason: last_client_detached) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) sendPrompt: forward failed for session sess:/work/a: cancelled qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 1 session(s) torn down) sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 1 session(s) torn down) sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [mid-turn] session=sess:/work/a rejected: session idle; browser keeps it for next turn qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [mid-turn] session=sess:/work/a dropped 1 undrained message(s) at idle; browser resends next turn [mid-turn] session=sess:/work/a rejected: session idle; browser keeps it for next turn qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [mid-turn] session=sess:/work/a rejected: empty message; browser keeps it for next turn qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [mid-turn] session=sess:/work/a drained=2 injected into running turn qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [mid-turn] session=sess:/work/a dropped 1 undrained message(s) at idle; browser resends next turn qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [mid-turn] session=sess:/work/a drained=1 injected into running turn qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [mid-turn] session=sess:/work/a drained=1 originator=client_2f5c67eb-61fe-4806-b999-578a1827af41 injected into running turn qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [mid-turn] session=sess:/work/a rejected: queue full (depth 20 >= 20); browser keeps it for next turn [mid-turn] session=sess:/work/a dropped 20 undrained message(s) at idle; browser resends next turn qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [mid-turn] session=sess:/work/a drained=1 injected into running turn qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) ✓ src/bridge.test.ts (410 tests) 4625ms Test Files 16 passed (16) Tests 849 passed (849) Start at 09:58:57 Duration 16.58s (transform 15.26s, setup 0ms, collect 97.13s, tests 6.10s, environment 6ms, prepare 1.97s) npm notice run @qwen-code/audio-capture@0.19.12 test RUN v3.2.4 /startdir/src/qwen-code/packages/audio-capture ✓ src/platform.test.ts (2 tests) 14ms Test Files 1 passed (1) Tests 2 passed (2) Start at 09:59:14 Duration 498ms (transform 60ms, setup 0ms, collect 60ms, tests 14ms, environment 0ms, prepare 92ms) npm notice run @qwen-code/chrome-bridge@0.19.12 test npm notice run vitest run --config vitest.config.ts --testTimeout=30000 --exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants,serve/acp-http/transport,i18n/index,ui/auth/AuthDialog,ui/utils/clipboardUtils}.test.* RUN v3.2.4 /startdir/src/qwen-code/packages/chrome-extension ✓ src/daemon/config.test.ts (8 tests) 10ms Test Files 1 passed (1) Tests 8 passed (8) Start at 09:59:15 Duration 935ms (transform 67ms, setup 0ms, collect 79ms, tests 10ms, environment 367ms, prepare 140ms) npm notice run @qwen-code/qwen-code@0.19.12 test RUN v3.2.4 /startdir/src/qwen-code/packages/cli Coverage enabled with v8 ✓ src/serve/auth/device-flow.test.ts (47 tests) 41ms ✓ src/serve/channel-worker-supervisor.test.ts (74 tests) 198ms ✓ src/commands/channel/daemon-worker.test.ts (66 tests) 1580ms ✓ src/serve/workspace-service/__tests__/facade.test.ts (81 tests) 178ms (node:4085) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 end listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (Use `node --trace-warnings ...` to show where the warning was created) (node:4085) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 end listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:4085) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 finish listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:4085) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 error listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:4085) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 close listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:4085) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 drain listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:4085) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 finish listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:4085) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 error listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:4085) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 close listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:4085) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 data listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit ✓ src/commands/review/agent-prompt.test.ts (127 tests) 94ms ✓ src/commands/review/check-coverage.test.ts (55 tests) 95ms ✓ src/ui/components/shared/text-buffer.test.ts (158 tests) 328ms ✓ src/config/settings.test.ts (149 tests) 283ms ✓ src/ui/commands/modelCommand.test.ts (67 tests) 270ms ✓ src/serve/fs/workspace-file-system.test.ts (91 tests) 1330ms qwen serve: fast-path bootstrap failed, falling back to full startup: Failed to read serve fast path settings from /tmp/qws-fast-path-home-rGvWUV/settings.json: Expected property name or '}' in JSON at position 1 (line 1 column 2) qwen serve: fast-path bootstrap failed, falling back to full startup: Serve fast path settings advanced.excludedEnvVars must be a string array. qwen serve: fast-path bootstrap failed, falling back to full startup: Serve fast path settings advanced.runtimeOutputDir must be a string. qwen serve: fast-path bootstrap failed, falling back to full startup: Serve fast path settings security.folderTrust.enabled must be a boolean. ✓ src/serve/fast-path.test.ts (68 tests) 751ms ✓ CLI entry import boundary > keeps the runQwenServe static source graph free of ACP runtime modules 663ms ✓ src/ui/hooks/vim.test.ts (132 tests) 2025ms qwen: goal restore failed for session persisted-1: Error: hook system exploded ✓ src/ui/contexts/KeypressContext.test.tsx (99 tests) 1895ms ✓ KeypressContext - Kitty Protocol > Enter key handling > auto-recovers from a stuck paste mode via idle timeout 1258ms 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 (275 tests) 17027ms qwen serve: daemon log → /tmp/qws-skill-home-A2kCRs/debug/daemon/serve-4102.log 2026-08-26T09:59:45.259Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-skill-settings-lD4M3V secondary= daemon workspace roots initialized 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 listening on http://127.0.0.1:40523 (mode=http-bridge, workspace=/tmp/qws-skill-settings-lD4M3V) qwen serve: bound to workspace "/tmp/qws-skill-settings-lD4M3V" qwen serve: startup timing: processToListenMs=27944 runQwenServeToListenMs=363 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: daemon log → /tmp/qws-dl-mVvoF9/debug/daemon/serve-4102.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T09:59:45.541Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-dl-mVvoF9 secondary= daemon workspace roots initialized qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve listening on http://127.0.0.1:42873 (mode=http-bridge, workspace=/tmp/qws-dl-mVvoF9) qwen serve: bound to workspace "/tmp/qws-dl-mVvoF9" qwen serve: startup timing: processToListenMs=28016 runQwenServeToListenMs=19 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.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:34861 (mode=http-bridge, workspace=/tmp/qws-tv-XmbiuM) qwen serve: bound to workspace "/tmp/qws-tv-XmbiuM" qwen serve: startup timing: processToListenMs=28095 runQwenServeToListenMs=10 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 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 ''. qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle 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-41agbW/index.html' qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) 2026-08-26T09:59:45.638Z [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:2825:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve: daemon log → /tmp/qws-ws-d7MwWL/debug/daemon/serve-4102.log qwen serve listening on http://127.0.0.1:43743 (mode=http-bridge, workspace=/tmp/qws-ws-d7MwWL/primary) qwen serve: bound to workspace "/tmp/qws-ws-d7MwWL/primary" qwen serve: startup timing: processToListenMs=28235 runQwenServeToListenMs=2 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:45.777Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-d7MwWL/primary 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) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) 2026-08-26T09:59:45.820Z [INFO] [DAEMON] route=GET /capabilities durationMs=9 status=200 request completed qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: daemon log → /tmp/qws-voice-capability-Svy7TB/debug/daemon/serve-4102.log qwen serve listening on http://127.0.0.1:37951 (mode=http-bridge, workspace=/tmp/qws-voice-capability-Svy7TB/workspace) qwen serve: bound to workspace "/tmp/qws-voice-capability-Svy7TB/workspace" qwen serve: startup timing: processToListenMs=28351 runQwenServeToListenMs=6 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:45.894Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-voice-capability-Svy7TB/workspace secondary= daemon workspace roots initialized qwen serve: /acp WebSocket transport enabled on /acp qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) 2026-08-26T09:59:45.947Z [INFO] [DAEMON] route=GET /capabilities durationMs=2 status=200 request completed 2026-08-26T09:59:45.997Z [INFO] [DAEMON] route=GET /capabilities durationMs=22 status=200 request completed qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: daemon log → /tmp/qws-hot-remove-td7Epi/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-hot-remove-td7Epi/primary" qwen serve: startup timing: processToListenMs=28478 runQwenServeToListenMs=5 qwen serve listening on http://127.0.0.1:37793 (mode=http-bridge, workspace=/tmp/qws-hot-remove-td7Epi/primary) 2026-08-26T09:59:46.023Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-hot-remove-td7Epi/primary 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) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) 2026-08-26T09:59:46.069Z [INFO] [DAEMON] route=POST /workspaces durationMs=20 status=201 request completed qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) 2026-08-26T09:59:46.092Z [INFO] [DAEMON] route=GET /capabilities durationMs=9 status=200 request completed 2026-08-26T09:59:46.105Z [INFO] [DAEMON] route=DELETE /workspaces/69340eee4a7de23e durationMs=3 status=200 request completed 2026-08-26T09:59:46.113Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed 2026-08-26T09:59:46.119Z [INFO] [DAEMON] route=POST /workspaces durationMs=2 status=201 request 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) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) 2026-08-26T09:59:46.176Z [INFO] [DAEMON] route=DELETE /workspaces/69340eee4a7de23e durationMs=52 status=200 request completed qwen serve: daemon log → /tmp/qws-runtime-failure-hygpgV/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-runtime-failure-hygpgV/primary" qwen serve: startup timing: processToListenMs=28656 runQwenServeToListenMs=2 qwen serve listening on http://127.0.0.1:38649 (mode=http-bridge, workspace=/tmp/qws-runtime-failure-hygpgV/primary) 2026-08-26T09:59:46.199Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-failure-hygpgV/primary secondary= daemon workspace roots initialized qwen serve: /acp WebSocket transport enabled on /acp qwen serve: POST /workspaces failed for /tmp/qws-runtime-failure-hygpgV/secondary: workspace service construction failed 2026-08-26T09:59:46.220Z [WARN] [DAEMON] route=POST /workspaces durationMs=10 status=500 request completed 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: daemon log → /tmp/qws-ws-ixRsuJ/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-ws-ixRsuJ/primary" qwen serve: startup timing: processToListenMs=28688 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve listening on http://127.0.0.1:33683 (mode=http-bridge, workspace=/tmp/qws-ws-ixRsuJ/primary) 2026-08-26T09:59:46.231Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-ixRsuJ/primary secondary= daemon workspace roots initialized qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /tmp/qws-ws-JAVNCF/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-ws-JAVNCF/primary" qwen serve: startup timing: processToListenMs=28707 runQwenServeToListenMs=2 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:46.250Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-JAVNCF/primary secondary= daemon workspace roots initialized 2026-08-26T09:59:46.250Z [WARN] [DAEMON] trustSettingsAvailable=true workspace=/tmp/qws-ws-JAVNCF/secondary secondary workspace is not trusted qwen serve: /acp WebSocket transport enabled on /acp qwen serve listening on http://127.0.0.1:40875 (mode=http-bridge, workspace=/tmp/qws-ws-JAVNCF/primary) 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: daemon log → /tmp/qws-ws-ivH0Ul/debug/daemon/serve-4102.log 2026-08-26T09:59:46.276Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-ivH0Ul/primary secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:42335 (mode=http-bridge, workspace=/tmp/qws-ws-ivH0Ul/primary) qwen serve: bound to workspace "/tmp/qws-ws-ivH0Ul/primary" qwen serve: startup timing: processToListenMs=28741 runQwenServeToListenMs=9 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T09:59:46.302Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed qwen serve: daemon log → /tmp/qws-tv-a6ygiD/debug/daemon/serve-4102.log 2026-08-26T09:59:46.316Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-tv-a6ygiD secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:46419 (mode=http-bridge, workspace=/tmp/qws-tv-a6ygiD) qwen serve: bound to workspace "/tmp/qws-tv-a6ygiD" qwen serve: startup timing: processToListenMs=28781 runQwenServeToListenMs=9 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /tmp/qws-pt-jSovad/debug/daemon/serve-4102.log qwen serve: daemon log → /tmp/qws-tls-uGPXcw/debug/daemon/serve-4102.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T09:59:46.340Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-tls-uGPXcw secondary= daemon workspace roots initialized qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve listening on https://127.0.0.1:41725 (mode=http-bridge, workspace=/tmp/qws-tls-pBKPlF) qwen serve: bound to workspace "/tmp/qws-tls-pBKPlF" qwen serve: startup timing: processToListenMs=28813 runQwenServeToListenMs=2 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:46.368Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-tls-pBKPlF secondary= daemon workspace roots initialized qwen serve: runtime startup failed: Daemon runtime stopped before mounting. 2026-08-26T09:59:46.377Z [ERROR] [DAEMON] runtime startup failed Error: Daemon runtime stopped before mounting. at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:5012:17 at processTicksAndRejections (node:internal/process/task_queues:104:5) at waitForRuntimeStartingForShutdown (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:1146:3) at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:5245:17 ✓ src/ui/hooks/slashCommandProcessor.test.ts (82 tests) 7690ms ✓ useSlashCommandProcessor > Initialization and Command Loading > ignores non-connected MCP status changes (no rebuild) 427ms ✓ useSlashCommandProcessor > Lifecycle > auto-refreshes extension content changes after debounce 341ms ✓ useSlashCommandProcessor > Lifecycle > skips content auto-refresh while package reload is needed 380ms ✓ useSlashCommandProcessor > Lifecycle > cancels pending content auto-refresh when manual reload starts 363ms qwen serve: session-org: Failed to read session organization store at /tmp/qwen-multi-workspace-sessions-XyJVRZ/projects/-work-secondary/session-organization.v1.json: Expected property name or '}' in JSON at position 1 (line 1 column 2) ✓ src/config/config.test.ts (277 tests) 3062ms ✓ src/utils/modelConfigUtils.test.ts (60 tests) 132ms ✓ src/services/insight/generators/DataProcessor.test.ts (46 tests) 77ms 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: deleteSession failed for "550e8400-e29b-41d4-a716-446655440283": "Session \"550e8400-e29b-41d4-a716-446655440283\" is being archived or unarchived; ✓ src/ui/hooks/atCommandProcessor.test.ts (61 tests) 217ms 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 ✓ src/nonInteractiveCli.test.ts (80 tests | 1 skipped) 2195ms 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-nBpDMg/tmp/0584a9f7e9693600062f806e66f7ad44fb36e5329716d9cba7d02fb5485f2fcd/scheduled_tasks.json — fix or delete the file; refusing to treat it as an empty schedule. ✓ src/commands/review/compose-review.test.ts (59 tests) 158ms 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: GET /scheduled-tasks failed: Malformed JSON in /tmp/sched-route-aR2krz/tmp/fab8e875ecc64de9893224417ed39d5e59989e25e19dc5dbe5a7e8b7ddaa4192/scheduled_tasks.json — fix or delete the file; refusing to treat it as an empty schedule. 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:7003:17) at Object.getSessionSummary (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:1627:14) at scanLiveOwners (/startdir/src/qwen-code/packages/cli/src/serve/workspace-registry.ts:193:24) at Object.resolveLiveSessionOwner (/startdir/src/qwen-code/packages/cli/src/serve/workspace-registry.ts:301:14) at requireSessionRuntime (/startdir/src/qwen-code/packages/cli/src/serve/routes/session-runtime.ts:38:40) at resolveLiveSessionRuntime (/startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:889:5) at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:951:25 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: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: workspace_mismatch (POST /session): runtime bound to "/work/bound", rejected "/work/different" ✓ src/nonInteractive/io/BaseJsonOutputAdapter.test.ts (100 tests) 123ms ✓ src/serve/routes/workspace-management.test.ts (61 tests) 1251ms qwen serve: bridge error (POST /session): Error: boom at spawnImpl (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:8027:17) at Object.spawnOrAttach (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:1556:28) at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:1199: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:410: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: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log ✓ src/ui/hooks/useGeminiStream.test.tsx (169 tests) 4622ms qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: daemon log → /tmp/qws-rt-MrUZ0R/debug/daemon/serve-4102.log qwen serve: daemon log → /tmp/qws-rt-n0Efz5/debug/daemon/serve-4102.log qwen serve: daemon log → /tmp/qws-rt-FE8SyQ/debug/daemon/serve-4102.log qwen serve: daemon log → /tmp/qws-rt-y3HLK7/debug/daemon/serve-4102.log qwen serve: daemon log → /tmp/qws-rt-iBhJ2v/debug/daemon/serve-4102.log qwen serve: daemon log → /tmp/qws-rt-iHMjaL/debug/daemon/serve-4102.log qwen serve: daemon log → /tmp/qws-rt-hh1T8A/debug/daemon/serve-4102.log qwen serve: daemon log → /tmp/qws-rt-XjJvH1/debug/daemon/serve-4102.log qwen serve: daemon log → /tmp/qws-rt-hk273s/debug/daemon/serve-4102.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T09:59:50.432Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-rt-hk273s secondary= daemon workspace roots initialized qwen serve: bound to workspace "/tmp/qws-rt-hk273s" qwen serve: startup timing: processToListenMs=32905 runQwenServeToListenMs=17 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /tmp/qws-rt-Rjm64o/debug/daemon/serve-4102.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T09:59:50.453Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-rt-Rjm64o secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:35993 (mode=http-bridge, workspace=/tmp/qws-rt-hk273s) qwen serve listening on http://127.0.0.1:39039 (mode=http-bridge, workspace=/tmp/qws-rt-Rjm64o) qwen serve listening on http://127.0.0.1:39179 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-h9vDRL) qwen serve: bound to workspace "/tmp/qws-rt-Rjm64o" qwen serve: startup timing: processToListenMs=32922 runQwenServeToListenMs=12 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-runtime-fail-h9vDRL" qwen serve: startup timing: processToListenMs=32944 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:50.487Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-h9vDRL secondary= daemon workspace roots initialized qwen serve: runtime startup failed: runtime boom 2026-08-26T09:59:50.487Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:1868:13) at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3228:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-runtime-fail-close-EQPQTR" qwen serve: startup timing: processToListenMs=32980 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve listening on http://127.0.0.1:43877 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-close-EQPQTR) 2026-08-26T09:59:50.526Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-close-EQPQTR secondary= daemon workspace roots initialized qwen serve: runtime startup failed: runtime boom 2026-08-26T09:59:50.527Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:1889:13) at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3228:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve: --allow-origin: chrome-extension://qwen-test-extension qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-runtime-fail-wYcY6p" qwen serve: startup timing: processToListenMs=32999 runQwenServeToListenMs=5 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:50.542Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-wYcY6p secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:39293 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-wYcY6p) qwen serve: runtime startup failed: runtime boom 2026-08-26T09:59:50.543Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:1819:13) at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3228:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve: --allow-origin: chrome-extension://qwen-test-extension qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-runtime-fail-HEvGJQ" qwen serve: startup timing: processToListenMs=33016 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:50.559Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-HEvGJQ secondary= daemon workspace roots initialized qwen serve: runtime startup failed: runtime boom 2026-08-26T09:59:50.560Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:1819:13) at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3228:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve listening on http://127.0.0.1:41293 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-HEvGJQ) qwen serve: --allow-origin: chrome-extension://qwen-test-extension qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-runtime-fail-XeSu1n" qwen serve: startup timing: processToListenMs=33043 runQwenServeToListenMs=11 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:50.589Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-XeSu1n secondary= daemon workspace roots initialized qwen serve: runtime startup failed: runtime boom 2026-08-26T09:59:50.590Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:1819:13) at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3228:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve: --allow-origin: chrome-extension://qwen-test-extension qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-runtime-fail-a3lLNV" qwen serve: startup timing: processToListenMs=33061 runQwenServeToListenMs=2 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:50.605Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-a3lLNV secondary= daemon workspace roots initialized qwen serve: runtime startup failed: runtime boom 2026-08-26T09:59:50.606Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:1819:13) at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3228:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve listening on http://127.0.0.1:33961 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-XeSu1n) qwen serve listening on http://127.0.0.1:38975 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-a3lLNV) qwen serve listening on http://127.0.0.1:43587 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-485G5U) qwen serve: --allow-origin: chrome-extension://qwen-test-extension qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-runtime-fail-485G5U" qwen serve: startup timing: processToListenMs=33078 runQwenServeToListenMs=2 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: client-hosted MCP tools are accepted over the WebSocket without auth. Set QWEN_SERVE_CLIENT_MCP_OVER_WS=0 to disable. 2026-08-26T09:59:50.621Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-485G5U secondary= daemon workspace roots initialized qwen serve: runtime startup failed: runtime boom 2026-08-26T09:59:50.622Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:1819:13) at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3228:15) 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:8572:17) at Object.getSessionSummary (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:1627:14) at scanLiveOwners (/startdir/src/qwen-code/packages/cli/src/serve/workspace-registry.ts:193:24) at Object.resolveLiveSessionOwner (/startdir/src/qwen-code/packages/cli/src/serve/workspace-registry.ts:301:14) at resolveRuntimeForSessionRestore (/startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:862:41) at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:1301:27 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:410:8) at Layer.handleRequest (/startdir/src/qwen-code/node_modules/router/lib/layer.js:152:17) qwen serve: --allow-origin: chrome-extension://qwen-test-extension qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-runtime-fail-qv8v4u" qwen serve: startup timing: processToListenMs=33115 runQwenServeToListenMs=6 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: client-hosted MCP tools are accepted over the WebSocket without auth. Set QWEN_SERVE_CLIENT_MCP_OVER_WS=0 to disable. 2026-08-26T09:59:50.658Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-qv8v4u secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:44201 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-qv8v4u) qwen serve: runtime startup failed: runtime boom 2026-08-26T09:59:50.663Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:1819:13) at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3228:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve: --allow-origin: chrome-extension://qwen-test-extension qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-runtime-fail-5zwNcW" qwen serve: startup timing: processToListenMs=33130 runQwenServeToListenMs=2 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: client-hosted MCP tools are accepted over the WebSocket without auth. Set QWEN_SERVE_CLIENT_MCP_OVER_WS=0 to disable. 2026-08-26T09:59:50.673Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-5zwNcW secondary= daemon workspace roots initialized qwen serve: runtime startup failed: runtime boom qwen serve listening on http://127.0.0.1:44223 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-5zwNcW) 2026-08-26T09:59:50.674Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:1819:13) at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3228:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve: --allow-origin: chrome-extension://qwen-test-extension qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve listening on http://127.0.0.1:44099 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-VVwKzP) qwen serve: bound to workspace "/tmp/qws-runtime-fail-VVwKzP" qwen serve: startup timing: processToListenMs=33141 runQwenServeToListenMs=2 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:50.684Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-VVwKzP secondary= daemon workspace roots initialized qwen serve: runtime startup failed: runtime boom 2026-08-26T09:59:50.685Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:1819:13) at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3228:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve: --allow-origin: chrome-extension://qwen-test-extension qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-runtime-fail-bknh8B" qwen serve: startup timing: processToListenMs=33159 runQwenServeToListenMs=2 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:50.702Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-bknh8B secondary= daemon workspace roots initialized qwen serve: runtime startup failed: runtime boom qwen serve listening on http://127.0.0.1:45771 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-bknh8B) qwen serve listening on http://127.0.0.1:38345 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-arWXZt) qwen serve listening on http://127.0.0.1:42829 (mode=http-bridge, workspace=/tmp/qws-runtime-child-env-LJgUu5) 2026-08-26T09:59:50.703Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:1819:13) at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3228:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve: --allow-origin: https://example.com qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-runtime-fail-arWXZt" qwen serve: startup timing: processToListenMs=33172 runQwenServeToListenMs=2 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:50.714Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-arWXZt secondary= daemon workspace roots initialized qwen serve: runtime startup failed: runtime boom 2026-08-26T09:59:50.714Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:1819:13) at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3228:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve: --allow-origin: chrome-extension://qwen-test-extension qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-runtime-child-env-LJgUu5" qwen serve: startup timing: processToListenMs=33193 runQwenServeToListenMs=6 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:50.736Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-child-env-LJgUu5 secondary= daemon workspace roots initialized qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /tmp/qws-runtime-env-reload-YrVPgX/debug/daemon/serve-4102.log 2026-08-26T09:59:50.756Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-env-reload-YrVPgX secondary= daemon workspace roots initialized qwen serve: bound to workspace "/tmp/qws-runtime-env-reload-YrVPgX" qwen serve: startup timing: processToListenMs=33216 runQwenServeToListenMs=3 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: reload failed: bridge.invokeWorkspaceCommand is not a function qwen serve listening on http://127.0.0.1:40237 (mode=http-bridge, workspace=/tmp/qws-runtime-env-reload-YrVPgX) qwen serve listening on http://127.0.0.1:43801 (mode=http-bridge, workspace=/tmp/qws-runtime-env-fallback-ajwiik) qwen serve: daemon log → /tmp/qws-runtime-env-fallback-ajwiik/debug/daemon/serve-4102.log 2026-08-26T09:59:50.770Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-env-fallback-ajwiik secondary= daemon workspace roots initialized qwen serve: bound to workspace "/tmp/qws-runtime-env-fallback-ajwiik" qwen serve: startup timing: processToListenMs=33230 runQwenServeToListenMs=3 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:50.771Z [WARN] [DAEMON] error="runtime env rebuild failed" failed to rebuild runtime env snapshot after daemon env reload; preserving previous runtime env qwen serve: reload failed: bridge.invokeWorkspaceCommand is not a function qwen serve: reload failed: bridge.invokeWorkspaceCommand is not a function qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-secondary-env-reload-dJntHP/primary" qwen serve: startup timing: processToListenMs=33236 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:50.778Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-secondary-env-reload-dJntHP/primary secondary= daemon workspace roots initialized qwen serve: reload failed: secondaryBridge.invokeWorkspaceCommand is not a function qwen serve listening on http://127.0.0.1:43405 (mode=http-bridge, workspace=/tmp/qws-secondary-env-reload-dJntHP/primary) qwen serve listening on http://127.0.0.1:46813 (mode=http-bridge, workspace=/tmp/qws-restored-workspace-XkpWdt/primary) qwen serve listening on http://127.0.0.1:35633 (mode=http-bridge, workspace=/tmp/qws-restored-read-error-ElLL47/primary) qwen serve listening on http://127.0.0.1:36219 (mode=http-bridge, workspace=/tmp/qws-restored-limit-reVc5N/explicit-0) qwen serve: daemon log → /tmp/qws-runtime-roots-ON0DTJ/debug/daemon/serve-4102.log 2026-08-26T09:59:50.857Z [WARN] [DAEMON] workspace=/tmp/qws-runtime-roots-ON0DTJ/untrusted-secondary excluding untrusted secondary workspace root from file-system access 2026-08-26T09:59:50.857Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-roots-ON0DTJ/primary secondary=/tmp/qws-runtime-roots-ON0DTJ/trusted-secondary daemon workspace roots initialized qwen serve: bound to workspace "/tmp/qws-runtime-roots-ON0DTJ/primary" qwen serve: startup timing: processToListenMs=33317 runQwenServeToListenMs=9 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve listening on http://127.0.0.1:38615 (mode=http-bridge, workspace=/tmp/qws-runtime-roots-ON0DTJ/primary) qwen serve: daemon log → /tmp/qws-runtime-roots-oIPLBk/debug/daemon/serve-4102.log 2026-08-26T09:59:50.877Z [WARN] [DAEMON] workspace=/tmp/qws-runtime-roots-oIPLBk/parent excluding untrusted secondary workspace root from file-system access 2026-08-26T09:59:50.877Z [INFO] [DAEMON] ideEnvPresent=true primary=/tmp/qws-runtime-roots-oIPLBk/primary secondary=/tmp/qws-runtime-roots-oIPLBk/parent/trusted-child daemon workspace roots initialized qwen serve listening on http://127.0.0.1:34991 (mode=http-bridge, workspace=/tmp/qws-runtime-roots-oIPLBk/primary) qwen serve: bound to workspace "/tmp/qws-runtime-roots-oIPLBk/primary" qwen serve: startup timing: processToListenMs=33338 runQwenServeToListenMs=5 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: daemon log → /tmp/qws-runtime-roots-4i3QEx/debug/daemon/serve-4102.log 2026-08-26T09:59:50.893Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-roots-4i3QEx/primary secondary=/tmp/qws-runtime-roots-4i3QEx/secondary daemon workspace roots initialized qwen serve: bound to workspace "/tmp/qws-runtime-roots-4i3QEx/primary" qwen serve: startup timing: processToListenMs=33352 runQwenServeToListenMs=3 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve listening on http://127.0.0.1:45619 (mode=http-bridge, workspace=/tmp/qws-runtime-roots-4i3QEx/primary) qwen serve: daemon log → /tmp/qws-runtime-roots-eKqzyq/debug/daemon/serve-4102.log qwen serve: could not read full settings for runtime startup (settings unavailable); falling back to defaults. 2026-08-26T09:59:50.901Z [WARN] [DAEMON] workspace=/tmp/qws-runtime-roots-eKqzyq/secondary excluding secondary workspace root because trust settings are unavailable 2026-08-26T09:59:50.901Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-roots-eKqzyq/primary secondary= daemon workspace roots initialized qwen serve: bound to workspace "/tmp/qws-runtime-roots-eKqzyq/primary" qwen serve: startup timing: processToListenMs=33361 runQwenServeToListenMs=2 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve listening on http://127.0.0.1:40517 (mode=http-bridge, workspace=/tmp/qws-runtime-roots-eKqzyq/primary) qwen serve: --allow-origin: https://example.com qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve listening on http://127.0.0.1:43123 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-qcyxee) qwen serve: bound to workspace "/tmp/qws-runtime-fail-qcyxee" qwen serve: startup timing: processToListenMs=33379 runQwenServeToListenMs=10 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:50.924Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-qcyxee secondary= daemon workspace roots initialized qwen serve: runtime startup failed: runtime boom 2026-08-26T09:59:50.927Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:1819:13) at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3228:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-runtime-starting-route-bsjhjo" qwen serve: startup timing: processToListenMs=33479 runQwenServeToListenMs=7 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve listening on http://127.0.0.1:42797 (mode=http-bridge, workspace=/tmp/qws-runtime-starting-route-bsjhjo) 2026-08-26T09:59:51.028Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-starting-route-bsjhjo secondary= daemon workspace roots initialized qwen serve: runtime startup failed: Daemon runtime stopped before mounting. 2026-08-26T09:59:51.052Z [ERROR] [DAEMON] runtime startup failed Error: Daemon runtime stopped before mounting. at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:5012:17 at processTicksAndRejections (node:internal/process/task_queues:104:5) at waitForRuntimeStartingForShutdown (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:1146:3) at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:5245:17 qwen serve: daemon log → /tmp/qws-runtime-starting-caps-8QV83W/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-runtime-starting-caps-8QV83W/primary" qwen serve: startup timing: processToListenMs=33542 runQwenServeToListenMs=4 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve listening on http://127.0.0.1:36101 (mode=http-bridge, workspace=/tmp/qws-runtime-starting-caps-8QV83W/primary) 2026-08-26T09:59:51.090Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-starting-caps-8QV83W/primary secondary= daemon workspace roots initialized qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T09:59:51.136Z [INFO] [DAEMON] route=GET /capabilities durationMs=2 status=200 request completed qwen serve: daemon log → /tmp/qws-health-first-xhGMLv/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-health-first-xhGMLv" qwen serve: startup timing: processToListenMs=33625 runQwenServeToListenMs=4 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:51.166Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms qwen serve listening on http://127.0.0.1:42147 (mode=http-bridge, workspace=/tmp/qws-health-first-xhGMLv) ✓ src/ui/components/messages/ToolMessage.test.tsx (65 tests) 4604ms ✓ localized badge > shows the localized display name under the zh locale 437ms 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=[] 2026-08-26T09:59:51.425Z [INFO] [DAEMON] deferred runtime: health served, scheduling start in 50ms 2026-08-26T09:59:51.475Z [INFO] [DAEMON] deferred runtime: health timer fired, starting 2026-08-26T09:59:51.477Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-health-first-xhGMLv secondary= daemon workspace roots initialized qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-health-deep-first-rYdt1l" qwen serve: startup timing: processToListenMs=33950 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:51.492Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms qwen serve listening on http://127.0.0.1:39805 (mode=http-bridge, workspace=/tmp/qws-health-deep-first-rYdt1l) 2026-08-26T09:59:51.495Z [INFO] [DAEMON] deferred runtime: health served, scheduling start in 50ms 2026-08-26T09:59:51.545Z [INFO] [DAEMON] deferred runtime: health timer fired, starting 2026-08-26T09:59:51.547Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-health-deep-first-rYdt1l secondary= daemon workspace roots initialized qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve listening on http://127.0.0.1:33309 (mode=http-bridge, workspace=/tmp/qws-health-dedupe-mhfYyI) qwen serve: bound to workspace "/tmp/qws-health-dedupe-mhfYyI" qwen serve: startup timing: processToListenMs=34024 runQwenServeToListenMs=2 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:51.566Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms 2026-08-26T09:59:51.570Z [INFO] [DAEMON] deferred runtime: health served, scheduling start in 50ms 2026-08-26T09:59:51.620Z [INFO] [DAEMON] deferred runtime: health timer fired, starting 2026-08-26T09:59:51.625Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-health-dedupe-mhfYyI secondary= daemon workspace roots initialized qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-runtime-route-start-hGiI41" qwen serve: startup timing: processToListenMs=34216 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:51.757Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms 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 listening on http://127.0.0.1:46657 (mode=http-bridge, workspace=/tmp/qws-runtime-route-start-hGiI41) 2026-08-26T09:59:51.812Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-route-start-hGiI41 secondary= daemon workspace roots initialized qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-runtime-route-auth-c6D7M0" qwen serve: startup timing: processToListenMs=34287 runQwenServeToListenMs=2 2026-08-26T09:59:51.828Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms qwen serve listening on http://127.0.0.1:32817 (mode=http-bridge, workspace=/tmp/qws-runtime-route-auth-c6D7M0) 2026-08-26T09:59:51.834Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-route-auth-c6D7M0 secondary= daemon workspace roots initialized qwen serve: daemon log → /tmp/qws-runtime-webhook-home-4ItysL/debug/daemon/serve-4102.log qwen serve listening on http://127.0.0.1:36195 (mode=http-bridge, workspace=/tmp/qws-runtime-webhook-start-kkaMfO) qwen serve: bound to workspace "/tmp/qws-runtime-webhook-start-kkaMfO" qwen serve: startup timing: processToListenMs=34307 runQwenServeToListenMs=5 2026-08-26T09:59:51.850Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms 2026-08-26T09:59:51.871Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-webhook-start-kkaMfO secondary= daemon workspace roots initialized qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T09:59:51.889Z [INFO] [DAEMON] channelName=dingtalk-main eventType=ci_failed source="github ci" targetRef=default channel webhook task accepted 2026-08-26T09:59:51.889Z [INFO] [DAEMON] route=POST /channels/dingtalk-main/webhooks/github%20ci durationMs=1 status=202 request completed qwen serve listening on http://127.0.0.1:46227 (mode=http-bridge, workspace=/tmp/qws-runtime-webhook-auth-Pl87Pg) qwen serve listening on http://127.0.0.1:36105 (mode=http-bridge, workspace=/tmp/qws-runtime-webhook-log-DIHz0R) qwen serve: --allow-origin: http://localhost:5173 qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve listening on http://127.0.0.1:39659 (mode=http-bridge, workspace=/tmp/qws-runtime-preflight-GPos0d) qwen serve: bound to workspace "/tmp/qws-runtime-preflight-GPos0d" qwen serve: startup timing: processToListenMs=34397 runQwenServeToListenMs=4 2026-08-26T09:59:51.938Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms 2026-08-26T09:59:51.949Z [INFO] [DAEMON] deferred runtime: cancelled, server closed before startup qwen serve: session-org: Failed to read session organization store at /tmp/qwen-multi-workspace-sessions-HYaZhr/projects/-work-secondary/session-organization.v1.json: Expected property name or '}' in JSON at position 1 (line 1 column 2) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-bootstrap-method-Rw962q" qwen serve: startup timing: processToListenMs=34416 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:51.957Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms qwen serve listening on http://127.0.0.1:36915 (mode=http-bridge, workspace=/tmp/qws-bootstrap-method-Rw962q) 2026-08-26T09:59:51.960Z [INFO] [DAEMON] deferred runtime: cancelled, server closed before startup qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve listening on http://127.0.0.1:37253 (mode=http-bridge, workspace=/tmp/qws-bootstrap-trailing-DfyWOn) qwen serve: bound to workspace "/tmp/qws-bootstrap-trailing-DfyWOn" qwen serve: startup timing: processToListenMs=34425 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:51.967Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms 2026-08-26T09:59:51.970Z [INFO] [DAEMON] deferred runtime: health served, scheduling start in 50ms 2026-08-26T09:59:51.970Z [INFO] [DAEMON] deferred runtime: cancelled, server closed before startup qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve listening on http://127.0.0.1:41771 (mode=http-bridge, workspace=/tmp/qws-runtime-route-fail-FyP3tY) qwen serve: bound to workspace "/tmp/qws-runtime-route-fail-FyP3tY" qwen serve: startup timing: processToListenMs=34435 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:51.977Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms 2026-08-26T09:59:51.981Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-route-fail-FyP3tY secondary= daemon workspace roots initialized qwen serve: runtime startup failed: runtime boom 2026-08-26T09:59:51.982Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:4004:15) at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3228:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-health-fallback-cck5fz" qwen serve: startup timing: processToListenMs=34452 runQwenServeToListenMs=2 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:51.993Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms qwen serve listening on http://127.0.0.1:37015 (mode=http-bridge, workspace=/tmp/qws-health-fallback-cck5fz) ✓ src/ui/components/messages/ToolGroupMessage.test.tsx (53 tests) 3312ms 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: GET /scheduled-tasks failed: Invalid task entry at index 0 in /tmp/sched-route-cMxS3N/tmp/537489b22749e22384bfdc6964ab747ce99facc5a2ff9e4c0134c32b8ecb3a51/scheduled_tasks.json — fix or delete the entry; refusing to drop it from the schedule. ✓ src/serve/multi-workspace-sessions.test.ts (90 tests) 7042ms ✓ multi-workspace session dispatch > rejects archived exports above the persisted source size limit 3370ms ✓ src/ui/utils/MarkdownDisplay.test.tsx (184 tests) 11710ms qwen serve: organized session list truncated at 50000 sessions ✓ src/serve/channel-worker-group.test.ts (35 tests) 174ms ]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 ]0;Qwen - cli ]2;Qwen - cli 2026-08-26T09:59:52.993Z [INFO] [DAEMON] deferred runtime: fallback timer fired, starting 2026-08-26T09:59:52.996Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-health-fallback-cck5fz secondary= daemon workspace roots initialized ]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 qwen serve: /acp WebSocket transport enabled on /acp (node:4250) 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: daemon log → /tmp/qws-health-close-tVcCI0/debug/daemon/serve-4102.log qwen serve listening on http://127.0.0.1:34831 (mode=http-bridge, workspace=/tmp/qws-health-close-tVcCI0) qwen serve: bound to workspace "/tmp/qws-health-close-tVcCI0" qwen serve: startup timing: processToListenMs=35497 runQwenServeToListenMs=4 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:53.039Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms 2026-08-26T09:59:53.039Z [INFO] [DAEMON] deferred runtime: cancelled, server closed before startup ✓ src/serve/routes/scheduled-tasks.test.ts (62 tests) 4565ms ✓ scheduled-tasks routes > rejects a syntactically-valid but impossible cron (Feb 30) 443ms ✓ scheduled-tasks routes > rejects a create past the max-tasks cap without spawning a session 2988ms ✓ src/gemini.test.tsx (49 tests) 7110ms ✓ gemini.tsx main function > verifies that we dont load the config before relaunchAppInChildProcess 609ms ✓ gemini.tsx main function > should skip full settings discovery in bare mode 598ms ✓ gemini.tsx main function > passes the outer session ID into the sandbox child process 505ms ✓ gemini.tsx main function > starts a fresh CLI after the host update completes 505ms ✓ gemini.tsx main function > passes host update capability into a container sandbox 503ms ✓ gemini.tsx main function > does not pass an empty session ID into the sandbox child process 507ms ✓ gemini.tsx main function > does not inject sandbox session ID when argv contains --continue 510ms ✓ gemini.tsx main function > does not inject sandbox session ID when argv contains -c 508ms ✓ gemini.tsx main function > does not inject sandbox session ID when argv contains --resume 506ms ✓ gemini.tsx main function > does not inject sandbox session ID when argv contains -r 504ms ✓ gemini.tsx main function > does not inject sandbox session ID when argv contains --session-id 508ms ✓ gemini.tsx main function > inserts the sandbox session ID before the argument separator 505ms ✓ gemini.tsx main function > invokes runNonInteractiveStreamJson and performs cleanup in stream-json mode 580ms qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-health-close-after-vtXo6t" qwen serve: startup timing: processToListenMs=36607 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:54.148Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms qwen serve listening on http://127.0.0.1:44525 (mode=http-bridge, workspace=/tmp/qws-health-close-after-vtXo6t) 2026-08-26T09:59:54.152Z [INFO] [DAEMON] deferred runtime: health served, scheduling start in 50ms 2026-08-26T09:59:54.153Z [INFO] [DAEMON] deferred runtime: cancelled, server closed before startup qwen: skipping replay of a goal card whose condition is empty. qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-health-reconciler-close-pSwRpw" qwen serve: startup timing: processToListenMs=36735 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:54.277Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms qwen serve listening on http://127.0.0.1:39207 (mode=http-bridge, workspace=/tmp/qws-health-reconciler-close-pSwRpw) qwen: skipping replay of a goal card whose condition is empty. 2026-08-26T09:59:54.291Z [INFO] [DAEMON] deferred runtime: health served, scheduling start in 50ms 2026-08-26T09:59:54.342Z [INFO] [DAEMON] deferred runtime: health timer fired, starting 2026-08-26T09:59:54.343Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-health-reconciler-close-pSwRpw secondary= daemon workspace roots initialized qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-health-close-running-fl2yXn" qwen serve: startup timing: processToListenMs=36811 runQwenServeToListenMs=2 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:54.353Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms qwen serve listening on http://127.0.0.1:45487 (mode=http-bridge, workspace=/tmp/qws-health-close-running-fl2yXn) 2026-08-26T09:59:54.356Z [INFO] [DAEMON] deferred runtime: health served, scheduling start in 50ms 2026-08-26T09:59:54.406Z [INFO] [DAEMON] deferred runtime: health timer fired, starting 2026-08-26T09:59:54.409Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-health-close-running-fl2yXn secondary= daemon workspace roots initialized qwen serve: runtime startup failed: Daemon runtime stopped before mounting. 2026-08-26T09:59:54.435Z [ERROR] [DAEMON] runtime startup failed Error: Daemon runtime stopped before mounting. at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:5012:17 at waitForRuntimeStartingForShutdown (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:1146:3) at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:5245:17 qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-health-close-late-app-Ae9XYJ" qwen serve: startup timing: processToListenMs=36914 runQwenServeToListenMs=3 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:54.456Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms qwen serve listening on http://127.0.0.1:35931 (mode=http-bridge, workspace=/tmp/qws-health-close-late-app-Ae9XYJ) 2026-08-26T09:59:54.458Z [INFO] [DAEMON] deferred runtime: health served, scheduling start in 50ms 2026-08-26T09:59:54.508Z [INFO] [DAEMON] deferred runtime: health timer fired, starting 2026-08-26T09:59:54.514Z [WARN] [DAEMON] 5000ms runtime-startup wait reached during shutdown; continuing listener close 2026-08-26T09:59:54.517Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-health-close-late-app-Ae9XYJ secondary= daemon workspace roots initialized 2026-08-26T09:59:54.518Z [WARN] [DAEMON] scheduled-task keepalive dispose error: keepalive dispose failed qwen serve: runtime startup failed: Daemon runtime stopped before mounting. 2026-08-26T09:59:54.518Z [ERROR] [DAEMON] runtime startup failed Error: Daemon runtime stopped before mounting. at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:5012:17 qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve listening on http://127.0.0.1:38459 (mode=http-bridge, workspace=/tmp/qws-health-fail-once-qfvddd) qwen serve: bound to workspace "/tmp/qws-health-fail-once-qfvddd" qwen serve: startup timing: processToListenMs=37033 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:54.576Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms 2026-08-26T09:59:54.578Z [INFO] [DAEMON] deferred runtime: health served, scheduling start in 50ms ✓ src/acp-integration/session/history-replayer.test.ts (51 tests) 105ms qwen serve: failed to read session-info for workspace "/work/bound": "ENOTDIR: not a directory, scandir '/tmp/qwen-serve-session-info-PPd8qT/projects/- 2026-08-26T09:59:54.628Z [INFO] [DAEMON] deferred runtime: health timer fired, starting 2026-08-26T09:59:54.630Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-health-fail-once-qfvddd secondary= daemon workspace roots initialized qwen serve: runtime startup failed: runtime boom 2026-08-26T09:59:54.630Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:4404:15) at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3228:15) qwen serve: daemon log → /tmp/qws-runtime-fail-log-OZWcKr/debug/daemon/serve-4102.log qwen serve listening on http://127.0.0.1:42663 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-log-OZWcKr) qwen serve: bound to workspace "/tmp/qws-runtime-fail-log-OZWcKr" qwen serve: startup timing: processToListenMs=37205 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. ✓ src/serve/acp-http/workspace-qualified-acp.test.ts (40 tests) 463ms 2026-08-26T09:59:54.757Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-log-OZWcKr secondary= daemon workspace roots initialized qwen serve: runtime startup failed: runtime boom 2026-08-26T09:59:54.757Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:4450:13) at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3228:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-runtime-flush-pending-QT7IJd" qwen serve: startup timing: processToListenMs=37231 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:54.774Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-flush-pending-QT7IJd secondary= daemon workspace roots initialized qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-runtime-queue-wait-ZNzdQ0" qwen serve: startup timing: processToListenMs=37257 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve listening on http://127.0.0.1:45387 (mode=http-bridge, workspace=/tmp/qws-runtime-flush-pending-QT7IJd) qwen serve listening on http://127.0.0.1:37099 (mode=http-bridge, workspace=/tmp/qws-runtime-queue-wait-ZNzdQ0) 2026-08-26T09:59:54.799Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-queue-wait-ZNzdQ0 secondary= daemon workspace roots initialized qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T09:59:54.820Z [INFO] [DAEMON] route=GET /daemon/status durationMs=8 status=200 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-runtime-timeout-cWR4sZ" qwen serve: startup timing: processToListenMs=37303 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve listening on http://127.0.0.1:42699 (mode=http-bridge, workspace=/tmp/qws-runtime-timeout-cWR4sZ) qwen serve: runtime startup failed: Daemon runtime startup timed out after 1ms. 2026-08-26T09:59:54.865Z [ERROR] [DAEMON] runtime startup failed Error: Daemon runtime startup timed out after 1ms. at Timeout. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4779:13) at listOnTimeout (node:internal/timers:685:17) at processTimers (node:internal/timers:618:7) 2026-08-26T09:59:54.877Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-timeout-cWR4sZ secondary= daemon workspace roots initialized qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve listening on http://127.0.0.1:45677 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-1wv9EP) qwen serve: bound to workspace "/tmp/qws-runtime-fail-1wv9EP" qwen serve: startup timing: processToListenMs=37397 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:54.940Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-fail-1wv9EP secondary= daemon workspace roots initialized qwen serve: runtime startup failed: runtime boom 2026-08-26T09:59:54.941Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:4705:13) at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:3228:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) ✓ src/ui/hooks/useStatusLine.test.ts (71 tests) 5670ms qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-runtime-partial-fail-UgzTUF" qwen serve: startup timing: processToListenMs=37429 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:54.971Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-partial-fail-UgzTUF secondary= daemon workspace roots initialized qwen serve: runtime startup failed: runtime app boom 2026-08-26T09:59:54.972Z [ERROR] [DAEMON] runtime startup failed Error: runtime app boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:4884:13) at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Object.createServeApp (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4222:25) at processTicksAndRejections (node:internal/process/task_queues:104:5) ✓ src/ui/components/SettingsDialog.test.tsx (61 tests) 13774ms ✓ SettingsDialog > Settings Navigation > should navigate down with arrow key 313ms ✓ SettingsDialog > Settings Toggling > should toggle setting with Enter key 358ms ✓ SettingsDialog > Settings Toggling > should not save number settings below their configured minimum 970ms ✓ SettingsDialog > Complex State Management > should track modified settings correctly 325ms ✓ SettingsDialog > Complex State Management > should handle scrolling when there are many settings 554ms ✓ SettingsDialog > Output Language > treats empty output language as auto 400ms ✓ SettingsDialog > Complex User Interactions > should allow changing multiple settings without losing pending changes 384ms ✓ SettingsDialog > String Settings Editing > should allow editing and committing a string setting 1409ms ✓ SettingsDialog > Config Tabs and Search > shows a hint when nothing matches the query 570ms ✓ SettingsDialog > Config Tabs and Search > allows spaces so multi-word queries can be typed 443ms ✓ SettingsDialog > Config Tabs and Search > clears the search query on Escape before closing 310ms ✓ SettingsDialog > Config Tabs and Search > clears the query on Escape from the list zone before closing 334ms ✓ SettingsDialog > Config Tabs and Search > shows the data view when navigating to a non-Settings tab 363ms qwen serve listening on http://127.0.0.1:46715 (mode=http-bridge, workspace=/tmp/qws-runtime-partial-fail-UgzTUF) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-runtime-partial-fail-erT91C/primary" qwen serve: startup timing: processToListenMs=37442 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:54.984Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-partial-fail-erT91C/primary secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:38047 (mode=http-bridge, workspace=/tmp/qws-runtime-partial-fail-erT91C/primary) qwen serve: runtime startup failed: runtime app boom 2026-08-26T09:59:54.986Z [ERROR] [DAEMON] runtime startup failed Error: runtime app boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:4926:13) at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Object.createServeApp (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4222:25) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-runtime-close-TFbuLM" qwen serve: startup timing: processToListenMs=37453 runQwenServeToListenMs=2 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:55.003Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-close-TFbuLM secondary= daemon workspace roots initialized qwen serve: runtime startup failed: Daemon runtime stopped before mounting. 2026-08-26T09:59:55.009Z [ERROR] [DAEMON] runtime startup failed Error: Daemon runtime stopped before mounting. at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:5012:17 at processTicksAndRejections (node:internal/process/task_queues:104:5) at waitForRuntimeStartingForShutdown (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:1146:3) at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:5245:17 qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-runtime-monitor-close-RZVSmL" qwen serve: startup timing: processToListenMs=37476 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:55.018Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-runtime-monitor-close-RZVSmL secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:43589 (mode=http-bridge, workspace=/tmp/qws-runtime-close-TFbuLM) qwen serve listening on http://127.0.0.1:35763 (mode=http-bridge, workspace=/tmp/qws-runtime-monitor-close-RZVSmL) qwen serve: runtime startup failed: Daemon runtime stopped before mounting. 2026-08-26T09:59:55.024Z [ERROR] [DAEMON] runtime startup failed Error: Daemon runtime stopped before mounting. at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:5012:17 at processTicksAndRejections (node:internal/process/task_queues:104:5) at waitForRuntimeStartingForShutdown (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:1146:3) at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:5245:17 qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.032Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-quWLE4 secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:38849 (mode=http-bridge, workspace=/tmp/qws-ws-quWLE4) qwen serve: bound to workspace "/tmp/qws-ws-quWLE4" qwen serve: startup timing: processToListenMs=37496 runQwenServeToListenMs=7 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T09:59:55.041Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-oLpao1 secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:35267 (mode=http-bridge, workspace=/tmp/qws-ws-oLpao1) qwen serve: bound to workspace "/tmp/qws-ws-oLpao1" qwen serve: startup timing: processToListenMs=37510 runQwenServeToListenMs=12 qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T09:59:55.054Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-MAT2Fb secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:38097 (mode=http-bridge, workspace=/tmp/qws-ws-MAT2Fb) qwen serve: bound to workspace "/tmp/qws-ws-MAT2Fb" qwen serve: startup timing: processToListenMs=37525 runQwenServeToListenMs=13 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.087Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-Ec2OvB secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:43175 (mode=http-bridge, workspace=/tmp/qws-ws-Ec2OvB) qwen serve: bound to workspace "/tmp/qws-ws-Ec2OvB" qwen serve: startup timing: processToListenMs=37558 runQwenServeToListenMs=13 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.106Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-ZsaWYM secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:41559 (mode=http-bridge, workspace=/tmp/qws-ws-ZsaWYM) qwen serve: bound to workspace "/tmp/qws-ws-ZsaWYM" qwen serve: startup timing: processToListenMs=37570 runQwenServeToListenMs=9 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.115Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-ws-RprN3w secondary= daemon workspace roots initialized qwen serve: bound to workspace "/tmp/qws-ws-RprN3w" qwen serve: startup timing: processToListenMs=37579 runQwenServeToListenMs=7 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T09:59:55.122Z [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-08-26T09:59:55.125Z [INFO] [DAEMON] route=GET /daemon/status durationMs=1 status=200 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.136Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-webhook-vQb6IE secondary= daemon workspace roots initialized ✓ src/ui/commands/exportCommand.test.ts (40 tests) 183ms qwen serve listening on http://127.0.0.1:44055 (mode=http-bridge, workspace=/tmp/qws-ws-RprN3w) qwen serve listening on http://127.0.0.1:36661 (mode=http-bridge, workspace=/tmp/qws-channel-webhook-vQb6IE) qwen serve: bound to workspace "/tmp/qws-channel-webhook-vQb6IE" qwen serve: startup timing: processToListenMs=37601 runQwenServeToListenMs=8 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.151Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-webhook-disabled-ILxbma secondary= daemon workspace roots initialized qwen serve: bound to workspace "/tmp/qws-channel-webhook-disabled-ILxbma" qwen serve: startup timing: processToListenMs=37616 runQwenServeToListenMs=8 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.167Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-runtime-control-9PLpDF secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:36033 (mode=http-bridge, workspace=/tmp/qws-channel-webhook-disabled-ILxbma) qwen serve listening on http://127.0.0.1:36103 (mode=http-bridge, workspace=/tmp/qws-channel-runtime-control-9PLpDF) qwen serve: bound to workspace "/tmp/qws-channel-runtime-control-9PLpDF" qwen serve: startup timing: processToListenMs=37632 runQwenServeToListenMs=8 qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T09:59:55.177Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed 2026-08-26T09:59:55.186Z [INFO] [DAEMON] route=PUT /workspace/channel durationMs=5 status=201 request completed 2026-08-26T09:59:55.190Z [INFO] [DAEMON] route=GET /capabilities durationMs=2 status=200 request completed 2026-08-26T09:59:55.195Z [INFO] [DAEMON] route=PUT /workspace/channel durationMs=1 status=200 request completed 2026-08-26T09:59:55.199Z [INFO] [DAEMON] route=DELETE /workspace/channel durationMs=1 status=200 request completed 2026-08-26T09:59:55.202Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.213Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-runtime-race-1PdgQ9 secondary= daemon workspace roots initialized 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:11757:17) at Object.generateSessionBtw (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:1795:14) at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:3139:47 at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:930:17 at SessionArchiveCoordinator.runSharedMany (/startdir/src/qwen-code/packages/cli/src/serve/server/session-archive.ts:94:20) at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:929:34 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:410:8) at Layer.handleRequest (/startdir/src/qwen-code/node_modules/router/lib/layer.js:152:17) qwen serve listening on http://127.0.0.1:38827 (mode=http-bridge, workspace=/tmp/qws-channel-runtime-race-1PdgQ9) qwen serve: bound to workspace "/tmp/qws-channel-runtime-race-1PdgQ9" qwen serve: startup timing: processToListenMs=37682 runQwenServeToListenMs=13 qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T09:59:55.247Z [INFO] [DAEMON] route=PUT /workspace/channel durationMs=2 status=201 request completed 2026-08-26T09:59:55.249Z [INFO] [DAEMON] route=PUT /workspace/channel durationMs=1 status=200 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.260Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-runtime-fifo-fsJMjy secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:43621 (mode=http-bridge, workspace=/tmp/qws-channel-runtime-fifo-fsJMjy) qwen serve: bound to workspace "/tmp/qws-channel-runtime-fifo-fsJMjy" qwen serve: startup timing: processToListenMs=37729 runQwenServeToListenMs=12 qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.285Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-runtime-drain-fX2Rhh secondary= daemon workspace roots initialized qwen serve: bound to workspace "/tmp/qws-channel-runtime-drain-fX2Rhh" qwen serve: startup timing: processToListenMs=37750 runQwenServeToListenMs=9 qwen serve: /acp WebSocket transport enabled on /acp qwen serve listening on http://127.0.0.1:36157 (mode=http-bridge, workspace=/tmp/qws-channel-runtime-drain-fX2Rhh) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.302Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-runtime-unknown-GwTNfo secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:46761 (mode=http-bridge, workspace=/tmp/qws-channel-runtime-unknown-GwTNfo) qwen serve: bound to workspace "/tmp/qws-channel-runtime-unknown-GwTNfo" qwen serve: startup timing: processToListenMs=37767 runQwenServeToListenMs=7 qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T09:59:55.314Z [WARN] [DAEMON] route=PUT /workspace/channel durationMs=3 status=400 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.325Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-runtime-conflict-J2X2Pa secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:44445 (mode=http-bridge, workspace=/tmp/qws-channel-runtime-conflict-J2X2Pa) qwen serve: bound to workspace "/tmp/qws-channel-runtime-conflict-J2X2Pa" qwen serve: startup timing: processToListenMs=37798 runQwenServeToListenMs=17 qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T09:59:55.345Z [WARN] [DAEMON] route=PUT /workspace/channel durationMs=2 status=409 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.371Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-runtime-race-R7PiLr secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:34909 (mode=http-bridge, workspace=/tmp/qws-channel-runtime-race-R7PiLr) qwen serve: bound to workspace "/tmp/qws-channel-runtime-race-R7PiLr" qwen serve: startup timing: processToListenMs=37838 runQwenServeToListenMs=15 qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T09:59:55.388Z [WARN] [DAEMON] route=PUT /workspace/channel durationMs=1 status=409 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.403Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-fail-awK1hM secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:42231 (mode=http-bridge, workspace=/tmp/qws-channel-worker-fail-awK1hM) qwen serve: bound to workspace "/tmp/qws-channel-worker-fail-awK1hM" qwen serve: startup timing: processToListenMs=37869 runQwenServeToListenMs=10 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: runtime startup failed: worker boom 2026-08-26T09:59:55.412Z [ERROR] [DAEMON] runtime startup failed ChannelWorkerControlError: worker boom at applySelection (/startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:367:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:411:9 qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.477Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-reload-KpcbvR secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:44713 (mode=http-bridge, workspace=/tmp/qws-channel-worker-reload-KpcbvR) qwen serve: bound to workspace "/tmp/qws-channel-worker-reload-KpcbvR" qwen serve: startup timing: processToListenMs=37948 runQwenServeToListenMs=14 qwen serve: /acp WebSocket transport enabled on /acp ✓ src/nonInteractive/session.test.ts (36 tests) 894ms 2026-08-26T09:59:55.506Z [INFO] [DAEMON] route=POST /workspace/channel/reload durationMs=3 status=200 request completed qwen serve: daemon log → /tmp/qws-channel-worker-plan-QoeA02/debug/daemon/serve-4102.log qwen serve: daemon log → /tmp/qws-dynamic-worker-pidfile-50wL98/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-dynamic-worker-pidfile-50wL98/primary" qwen serve: startup timing: processToListenMs=37991 runQwenServeToListenMs=1 2026-08-26T09:59:55.533Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-dynamic-worker-pidfile-50wL98/primary secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:44025 (mode=http-bridge, workspace=/tmp/qws-dynamic-worker-pidfile-50wL98/primary) qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T09:59:55.555Z [INFO] [DAEMON] route=POST /workspaces durationMs=2 status=201 request completed 2026-08-26T09:59:55.564Z [INFO] [DAEMON] route=PUT /workspace/channel durationMs=4 status=201 request completed qwen serve: daemon log → /tmp/qws-channel-worker-groups-0Qk7XL/debug/daemon/serve-4102.log 2026-08-26T09:59:55.575Z [INFO] [DAEMON] channels=telegram workspace=/tmp/qws-channel-worker-groups-0Qk7XL/primary channel worker group assigned 2026-08-26T09:59:55.575Z [INFO] [DAEMON] channels=feishu workspace=/tmp/qws-channel-worker-groups-0Qk7XL/secondary channel worker group assigned qwen serve: bound to workspace "/tmp/qws-channel-worker-groups-0Qk7XL/primary" qwen serve: startup timing: processToListenMs=38033 runQwenServeToListenMs=1 2026-08-26T09:59:55.575Z [INFO] [DAEMON] deferred runtime: scheduling fallback start in 1000ms 2026-08-26T09:59:55.585Z [WARN] [DAEMON] channelName=feishu reason="secret mismatch" source=github-ci deferred webhook auth failed 2026-08-26T09:59:55.590Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-groups-0Qk7XL/primary secondary= daemon workspace roots initialized qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T09:59:55.606Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed 2026-08-26T09:59:55.608Z [INFO] [DAEMON] channels=telegram pid=1234 workspace=/tmp/qws-channel-worker-groups-0Qk7XL/primary channel worker ready 2026-08-26T09:59:55.612Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed 2026-08-26T09:59:55.612Z [INFO] [DAEMON] channels=feishu pid=5678 workspace=/tmp/qws-channel-worker-groups-0Qk7XL/secondary channel worker ready 2026-08-26T09:59:55.614Z [INFO] [DAEMON] channelName=feishu eventType=check_failed source=github-ci targetRef=default channel webhook task accepted 2026-08-26T09:59:55.614Z [INFO] [DAEMON] route=POST /channels/feishu/webhooks/github-ci durationMs=1 status=202 request completed 2026-08-26T09:59:55.617Z [INFO] [DAEMON] route=GET /capabilities durationMs=0 status=200 request completed qwen serve listening on http://127.0.0.1:41239 (mode=http-bridge, workspace=/tmp/qws-channel-worker-groups-0Qk7XL/primary) 2026-08-26T09:59:55.620Z [WARN] [DAEMON] route=DELETE /workspaces/30f40c102e363343 durationMs=1 status=409 request completed 2026-08-26T09:59:55.623Z [ERROR] [DAEMON] workspace channel worker topology refresh error Error: Channel "feishu" is not configured in any registered workspace, or its "cwd" points outside them. at resolveRuntimeChannelGroups (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4835:31) at processTicksAndRejections (node:internal/process/task_queues:104:5) at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:531:26 2026-08-26T09:59:55.624Z [INFO] [DAEMON] route=DELETE /workspaces/30f40c102e363343 durationMs=2 status=200 request completed 2026-08-26T09:59:55.627Z [WARN] [DAEMON] channelName=feishu source=github-ci channel webhook authentication failed 2026-08-26T09:59:55.628Z [WARN] [DAEMON] route=POST /channels/feishu/webhooks/github-ci durationMs=1 status=401 request completed 2026-08-26T09:59:55.631Z [WARN] [DAEMON] channel worker [/tmp/qws-channel-worker-groups-0Qk7XL/secondary] stderr: Ignored stale channel worker exit (generation=2). 2026-08-26T09:59:55.638Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed 2026-08-26T09:59:55.640Z [INFO] [DAEMON] channels=feishu pid=5678 workspace=/tmp/qws-channel-worker-groups-0Qk7XL/secondary channel worker ready 2026-08-26T09:59:55.641Z [INFO] [DAEMON] route=POST /workspaces durationMs=8 status=201 request completed 2026-08-26T09:59:55.643Z [INFO] [DAEMON] channelName=feishu eventType=check_failed source=github-ci targetRef=default channel webhook task accepted 2026-08-26T09:59:55.644Z [INFO] [DAEMON] route=POST /channels/feishu/webhooks/github-ci durationMs=1 status=202 request completed 2026-08-26T09:59:55.644Z [WARN] [DAEMON] channel worker exited (workspace=/tmp/qws-channel-worker-groups-0Qk7XL/secondary, state=failed, pid=unknown, code=null, signal=null, error=worker stopped, restartCount=0, nextRestartAt=none, staleHeartbeatAt=none) 2026-08-26T09:59:55.646Z [ERROR] [DAEMON] workspace channel worker topology refresh error Error: Channel "feishu" is not configured in any registered workspace, or its "cwd" points outside them. at resolveRuntimeChannelGroups (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4835:31) at processTicksAndRejections (node:internal/process/task_queues:104:5) at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:531:26 2026-08-26T09:59:55.647Z [INFO] [DAEMON] route=DELETE /workspaces/30f40c102e363343 durationMs=2 status=200 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.663Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-RbDnq9 secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:39557 (mode=http-bridge, workspace=/tmp/qws-channel-worker-RbDnq9) qwen serve: bound to workspace "/tmp/qws-channel-worker-RbDnq9" qwen serve: startup timing: processToListenMs=38137 runQwenServeToListenMs=20 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.694Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-force-NQH6WZ secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:32899 (mode=http-bridge, workspace=/tmp/qws-channel-worker-force-NQH6WZ) qwen serve: bound to workspace "/tmp/qws-channel-worker-force-NQH6WZ" qwen serve: startup timing: processToListenMs=38165 runQwenServeToListenMs=14 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T09:59:55.710Z [WARN] [DAEMON] received SIGTERM, draining 2026-08-26T09:59:55.711Z [WARN] [DAEMON] received SIGTERM during drain — forcing exit qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.743Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-stuck-kfDqSO secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:43487 (mode=http-bridge, workspace=/tmp/qws-channel-worker-stuck-kfDqSO) qwen serve: bound to workspace "/tmp/qws-channel-worker-stuck-kfDqSO" qwen serve: startup timing: processToListenMs=38208 runQwenServeToListenMs=8 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T09:59:55.750Z [WARN] [DAEMON] received SIGTERM, draining 2026-08-26T09:59:55.751Z [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:278:12) at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:559:17 at processTicksAndRejections (node:internal/process/task_queues:104:5) 2026-08-26T09:59:55.751Z [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:278:12) at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:559:17 at processTicksAndRejections (node:internal/process/task_queues:104:5) 2026-08-26T09:59:55.752Z [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-08-26T09:59:55.752Z [WARN] [DAEMON] received SIGTERM, draining 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:12269:17) at Object.setSessionLanguage (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:1762:14) at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:3489:47 at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:930:17 at SessionArchiveCoordinator.runSharedMany (/startdir/src/qwen-code/packages/cli/src/serve/server/session-archive.ts:94:20) at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:929:34 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:410:8) at Layer.handleRequest (/startdir/src/qwen-code/node_modules/router/lib/layer.js:152:17) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.765Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-bridge-stuck-zeERcZ secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:36589 (mode=http-bridge, workspace=/tmp/qws-channel-bridge-stuck-zeERcZ) qwen serve listening on http://127.0.0.1:38321 (mode=http-bridge, workspace=/tmp/qws-channel-worker-fallback-LNeGtO) qwen serve: bound to workspace "/tmp/qws-channel-bridge-stuck-zeERcZ" qwen serve: startup timing: processToListenMs=38233 runQwenServeToListenMs=11 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T09:59:55.779Z [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:278:12) at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:559:17 at processTicksAndRejections (node:internal/process/task_queues:104:5) 2026-08-26T09:59:55.779Z [ERROR] [DAEMON] workspace runtime shutdown error Error: bridge still draining at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:6745: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 () 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: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.793Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-fallback-LNeGtO secondary= daemon workspace roots initialized qwen serve: bound to workspace "/tmp/qws-channel-worker-fallback-LNeGtO" qwen serve: startup timing: processToListenMs=38258 runQwenServeToListenMs=8 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.819Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-fallback-34DjKM secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:33787 (mode=http-bridge, workspace=/tmp/qws-channel-worker-fallback-34DjKM) qwen serve: bound to workspace "/tmp/qws-channel-worker-fallback-34DjKM" qwen serve: startup timing: processToListenMs=38291 runQwenServeToListenMs=19 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.857Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-pidfile-vbyGEz secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:44085 (mode=http-bridge, workspace=/tmp/qws-channel-worker-pidfile-vbyGEz) qwen serve: bound to workspace "/tmp/qws-channel-worker-pidfile-vbyGEz" qwen serve: startup timing: processToListenMs=38331 runQwenServeToListenMs=21 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T09:59:55.873Z [WARN] [DAEMON] failed to write channel worker pidfile metadata: disk full qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.883Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-ready-PiB6U7 secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:39495 (mode=http-bridge, workspace=/tmp/qws-channel-worker-ready-PiB6U7) qwen serve: bound to workspace "/tmp/qws-channel-worker-ready-PiB6U7" qwen serve: startup timing: processToListenMs=38350 runQwenServeToListenMs=10 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /tmp/qws-channel-worker-log-XyOlcp/debug/daemon/serve-4102.log 2026-08-26T09:59:55.913Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-log-XyOlcp secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:33519 (mode=http-bridge, workspace=/tmp/qws-channel-worker-log-XyOlcp) qwen serve: bound to workspace "/tmp/qws-channel-worker-log-XyOlcp" qwen serve: startup timing: processToListenMs=38378 runQwenServeToListenMs=7 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T09:59:55.920Z [WARN] [DAEMON] channel worker stderr: adapter failed with 2026-08-26T09:59:55.920Z [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) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.930Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-loopback-zkEpnL secondary= daemon workspace roots initialized qwen serve listening on http://0.0.0.0:42653 (mode=http-bridge, workspace=/tmp/qws-channel-worker-loopback-zkEpnL) qwen serve: bound to workspace "/tmp/qws-channel-worker-loopback-zkEpnL" qwen serve: startup timing: processToListenMs=38394 runQwenServeToListenMs=6 qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.948Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-timeout-apAwMP secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:41197 (mode=http-bridge, workspace=/tmp/qws-channel-worker-timeout-apAwMP) qwen serve: bound to workspace "/tmp/qws-channel-worker-timeout-apAwMP" qwen serve: startup timing: processToListenMs=38413 runQwenServeToListenMs=8 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: runtime startup failed: Daemon runtime startup timed out after 1ms. 2026-08-26T09:59:55.956Z [ERROR] [DAEMON] runtime startup failed Error: Daemon runtime startup timed out after 1ms. at Timeout. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:4779:13) at listOnTimeout (node:internal/timers:685:17) at processTimers (node:internal/timers:618:7) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:55.987Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-status-tfHtMG secondary= daemon workspace roots initialized qwen serve: bound to workspace "/tmp/qws-channel-worker-status-tfHtMG" qwen serve: startup timing: processToListenMs=38455 runQwenServeToListenMs=21 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T09:59:55.998Z [WARN] [DAEMON] channel worker exited (state=exited, pid=1234, code=1, signal=null, error=ipc failed, restartCount=0, nextRestartAt=none, staleHeartbeatAt=none) 2026-08-26T09:59:56.005Z [INFO] [DAEMON] route=GET /daemon/status durationMs=2 status=200 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:56.026Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-fail-iWlV5d secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:45577 (mode=http-bridge, workspace=/tmp/qws-channel-worker-status-tfHtMG) qwen serve listening on http://127.0.0.1:40149 (mode=http-bridge, workspace=/tmp/qws-channel-worker-fail-iWlV5d) qwen serve: bound to workspace "/tmp/qws-channel-worker-fail-iWlV5d" qwen serve: startup timing: processToListenMs=38491 runQwenServeToListenMs=8 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: runtime startup failed: worker failed before ready 2026-08-26T09:59:56.033Z [ERROR] [DAEMON] runtime startup failed ChannelWorkerControlError: worker failed before ready at applySelection (/startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:367:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:411:9 qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:56.063Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-retained-ged4ID secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:41163 (mode=http-bridge, workspace=/tmp/qws-channel-worker-retained-ged4ID) qwen serve: bound to workspace "/tmp/qws-channel-worker-retained-ged4ID" qwen serve: startup timing: processToListenMs=38538 runQwenServeToListenMs=19 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: runtime startup failed: worker failed before ready 2026-08-26T09:59:56.080Z [ERROR] [DAEMON] runtime startup failed ChannelWorkerControlError: worker failed before ready at applySelection (/startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:367:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:411:9 2026-08-26T09:59:56.080Z [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:278:12) at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:559:17 at processTicksAndRejections (node:internal/process/task_queues:104:5) 2026-08-26T09:59:56.081Z [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:278:12) at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:559:17 at processTicksAndRejections (node:internal/process/task_queues:104:5) 2026-08-26T09:59:56.099Z [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:278:12) at /startdir/src/qwen-code/packages/cli/src/serve/channel-worker-manager.ts:559:17 at processTicksAndRejections (node:internal/process/task_queues:104:5) 2026-08-26T09:59:56.099Z [ERROR] [DAEMON] runtime startup failed, but qwen serve remains alive to retain the channel service lease until worker exit is confirmed ✓ src/ui/commands/statsCommand.test.ts (38 tests) 476ms ✓ src/serve/workspace-remember.test.ts (27 tests) 668ms ✓ src/serve/routes/workspace-qualified-extensions.test.ts (31 tests) 1062ms qwen serve: bridge error (POST /workspace/channel/reload): Error: relaunch failed at Object. (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:13256:15) at Object.mockCall (file:///startdir/src/qwen-code/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:377: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:410: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: /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 pre-attach buffer full (session sess-1), dropped frame id 1 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 2 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 3 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 4 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 5 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 6 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 7 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 8 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 9 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 10 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 11 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 12 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 13 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 14 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 15 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 16 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 17 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 18 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 19 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 20 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 21 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 22 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 23 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 24 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 25 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 26 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 27 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 28 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 29 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 30 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 31 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 32 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 33 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 34 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 35 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 36 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 37 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 38 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 39 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 40 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 41 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 42 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 43 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 44 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 45 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 46 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 47 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 48 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 49 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 50 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 51 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 52 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 53 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 54 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 55 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 56 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 57 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 58 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 59 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 60 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 61 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 62 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 63 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 64 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 65 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 66 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 67 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 68 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 69 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 70 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 71 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 72 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 73 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 74 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 75 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 76 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 77 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 78 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 79 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 80 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 81 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 82 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 83 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 84 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 85 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 86 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 87 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 88 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 89 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 90 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 91 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 92 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 93 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 94 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 95 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 96 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 97 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 98 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 99 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 100 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 101 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 102 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 103 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 104 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 105 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 106 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 107 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 108 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 109 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 110 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 111 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 112 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 113 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 114 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 115 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 116 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 117 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 118 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 119 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 120 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 121 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 122 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 123 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 124 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 125 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 126 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 127 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 128 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 129 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 130 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 131 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 132 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 133 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 134 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 135 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 136 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 137 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 138 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 139 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 140 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 141 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 142 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 143 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 144 qwen serve: /acp pre-attach buffer full (session sess-1), dropped frame id 145 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 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 teardownBinding(sess-1) failed during destroy: 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 (25 tests) 94ms 2026-08-26T09:59:57.146Z [WARN] [DAEMON] received SIGTERM, draining qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:57.164Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-busy-vpGAwe secondary= daemon workspace roots initialized qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:57.180Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-stale-DKWz9H secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:46091 (mode=http-bridge, workspace=/tmp/qws-channel-worker-stale-DKWz9H) qwen serve: bound to workspace "/tmp/qws-channel-worker-stale-DKWz9H" qwen serve: startup timing: processToListenMs=39644 runQwenServeToListenMs=7 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:57.198Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-listen-ZMuurb secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:41871 (mode=http-bridge, workspace=/tmp/qws-port-retry-VCw871) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:57.230Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-port-no-retry-63jzK8 secondary= daemon workspace roots initialized qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:57.259Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-port0-no-retry-GSBlCb secondary= daemon workspace roots initialized qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:57.281Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-crash-mmXclz secondary= daemon workspace roots initialized qwen serve: bound to workspace "/tmp/qws-channel-worker-crash-mmXclz" qwen serve: startup timing: processToListenMs=39747 runQwenServeToListenMs=9 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log 2026-08-26T09:59:57.301Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-channel-worker-unhandled-iIorNU secondary= daemon workspace roots initialized qwen serve: bound to workspace "/tmp/qws-channel-worker-unhandled-iIorNU" qwen serve: startup timing: processToListenMs=39768 runQwenServeToListenMs=10 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve listening on http://127.0.0.1:38033 (mode=http-bridge, workspace=/tmp/qws-channel-worker-crash-mmXclz) qwen serve listening on http://127.0.0.1:39623 (mode=http-bridge, workspace=/tmp/qws-channel-worker-unhandled-iIorNU) ✓ src/ui/components/ModelDialog.test.tsx (33 tests) 468ms qwen serve listening on http://127.0.0.1:46563 (mode=http-bridge, workspace=/tmp/qws-startup-runtime-dir-TJChsA) qwen serve listening on http://127.0.0.1:44615 (mode=http-bridge, workspace=/tmp/qws-startup-log-dep-JOw18N) ✓ src/utils/settingsUtils.test.ts (83 tests) 50ms qwen serve listening on http://127.0.0.1:37169 (mode=http-bridge, workspace=/tmp/qws-startup-storage-dir-DbCV5U) qwen serve listening on http://127.0.0.1:40891 (mode=http-bridge, workspace=/tmp/qws-startup-preheat-gp1ZBu) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-startup-preheat-gp1ZBu" qwen serve: startup timing: processToListenMs=39937 runQwenServeToListenMs=4 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:57.499Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-startup-preheat-gp1ZBu secondary= daemon workspace roots initialized qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T09:59:57.509Z [INFO] [DAEMON] route=GET /daemon/status durationMs=2 status=200 request completed 2026-08-26T09:59:57.511Z [INFO] [DAEMON] route=GET /daemon/status durationMs=1 status=200 request completed 2026-08-26T09:59:57.514Z [INFO] [DAEMON] route=GET /daemon/status durationMs=2 status=200 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4102.log qwen serve: bound to workspace "/tmp/qws-startup-preheat-QEeyaD" qwen serve: startup timing: processToListenMs=39990 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T09:59:57.532Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qws-startup-preheat-QEeyaD secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:38545 (mode=http-bridge, workspace=/tmp/qws-startup-preheat-QEeyaD) qwen serve: /acp WebSocket transport enabled on /acp qwen serve: ACP preheat failed, will retry on first session: preheat boom 2026-08-26T09:59:57.559Z [INFO] [DAEMON] route=GET /daemon/status durationMs=3 status=200 request completed 2026-08-26T09:59:57.563Z [INFO] [DAEMON] route=GET /daemon/status durationMs=0 status=200 request completed ✓ src/commands/channel/start.test.ts (24 tests) 66ms ✓ src/serve/run-qwen-serve.test.ts (183 tests) 12475ms ✓ workspace skill settings persistence > canonicalizes, deduplicates, preserves orphans, serializes updates, and enforces user locks 422ms ✓ runQwenServe TLS (--tls-cert / --tls-key) > serves over https when both cert and key are valid 4021ms ✓ runQwenServe runtime startup failures > keeps health responsive before starting deferred runtime work 329ms ✓ runQwenServe runtime startup failures > starts deferred runtime on fallback when no health probe arrives 1043ms ✓ runQwenServe runtime startup failures > does not start deferred runtime after close before first health 1112ms ✓ runQwenServe channel worker supervisor > keeps the serve owner alive when failed startup cannot confirm worker exit 1095ms 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:1069:13) at processTicksAndRejections (node:internal/process/task_queues:104:5) at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:1587:27 at SessionArchiveCoordinator.runSharedMany (/startdir/src/qwen-code/packages/cli/src/serve/server/session-archive.ts:94:14) at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:1584: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" ✓ src/serve/daemon-status.test.ts (27 tests) 35ms 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=["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=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: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle 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 ]0;Qwen - workspace ]2;Qwen - workspace  ✓ src/ui/components/shared/vim-buffer-actions.test.ts (74 tests) 35ms qwen serve: --allow-origin: * (WARNING: `*` admits any cross-origin browser — bearer token gates API routes; /health and /demo remain pre-auth on loopback unless --require-auth is set) qwen serve: daemon log → /tmp/qwen-serve-runtime-2a5GdY/debug/daemon/serve-4083.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:46759 (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=42631 runQwenServeToListenMs=56 2026-08-26T10:00:00.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 qwen serve: daemon log → /tmp/qwen-serve-runtime-BiRo0d/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=42702 runQwenServeToListenMs=2 2026-08-26T10:00:00.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 qwen serve listening on http://127.0.0.1:39577 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) 2026-08-26T10:00:00.229Z [INFO] [DAEMON] route=GET /capabilities durationMs=2 status=200 request completed qwen serve: /acp connection established 023a161e (loopback=true, active=1) 2026-08-26T10:00:00.259Z [INFO] [DAEMON] route=POST /acp durationMs=7 status=200 request completed qwen serve listening on http://127.0.0.1:41927 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) 2026-08-26T10:00:00.293Z [INFO] [DAEMON] route=GET /capabilities durationMs=2 status=200 request completed qwen serve: /acp connection established 1ed8c535 (loopback=true, active=1) 2026-08-26T10:00:00.299Z [INFO] [DAEMON] route=POST /acp durationMs=2 status=200 request completed qwen serve: daemon log → /tmp/qwen-serve-runtime-g3sI1B/debug/daemon/serve-4083.log qwen serve: daemon log → /tmp/qwen-serve-runtime-g3sI1B/debug/daemon/serve-4083.log qwen serve: daemon log → /tmp/qwen-serve-runtime-W9K4jy/debug/daemon/serve-4083.log qwen serve: daemon log → /tmp/qwen-serve-runtime-g5q8BT/debug/daemon/serve-4083.log qwen serve: daemon log → /tmp/qwen-serve-runtime-GOQATM/debug/daemon/serve-4083.log qwen serve: daemon log → /tmp/qwen-serve-runtime-XxgtHT/debug/daemon/serve-4083.log qwen serve: daemon log → /tmp/qwen-serve-runtime-L11EZA/debug/daemon/serve-4083.log qwen serve: daemon log → /tmp/qwen-serve-runtime-OyfKhK/debug/daemon/serve-4083.log qwen serve: daemon log → /tmp/qwen-serve-runtime-V8W7VX/debug/daemon/serve-4083.log qwen serve: daemon log → /tmp/qwen-serve-runtime-fXi5XJ/debug/daemon/serve-4083.log qwen serve: daemon log → /tmp/qwen-serve-runtime-PeumXP/debug/daemon/serve-4083.log qwen serve: daemon log → /tmp/qwen-serve-runtime-lkGDxn/debug/daemon/serve-4083.log qwen serve: daemon log → /tmp/qwen-serve-runtime-M87RiJ/debug/daemon/serve-4083.log qwen serve: daemon log → /tmp/qwen-serve-runtime-fNmmT5/debug/daemon/serve-4083.log qwen serve: daemon log → /tmp/qwen-serve-runtime-RdOFNA/debug/daemon/serve-4083.log qwen serve: daemon log → /tmp/qwen-serve-runtime-GRkSOw/debug/daemon/serve-4083.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:35827 (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=42846 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T10:00:00.357Z [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) ✓ src/acp-integration/service/filesystem.test.ts (31 tests) 110ms qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T10:00:00.379Z [INFO] [DAEMON] route=GET /capabilities durationMs=3 status=200 request completed qwen serve: daemon log → /tmp/qwen-serve-runtime-JQDgt0/debug/daemon/serve-4083.log qwen serve: daemon log → /tmp/qwen-serve-runtime-MOoAOe/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=42883 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T10:00:00.394Z [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-08-26T10:00:00.404Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed qwen serve: daemon log → /tmp/qwen-serve-runtime-RZxQtc/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=42899 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T10:00:00.410Z [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-08-26T10:00:00.422Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed qwen serve listening on http://127.0.0.1:35791 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve listening on http://127.0.0.1:44725 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: daemon log → /tmp/qwen-serve-runtime-dziNn2/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=42917 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T10:00:00.428Z [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 listening on http://127.0.0.1:42857 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T10:00:00.437Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed qwen serve: daemon log → /tmp/qwen-serve-runtime-1C3VH7/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=42932 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T10:00:00.443Z [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 listening on http://127.0.0.1:46185 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /tmp/qwen-serve-runtime-mIyrMk/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=42949 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T10:00:00.460Z [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:43497 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /tmp/qwen-serve-runtime-rCdALf/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=42964 runQwenServeToListenMs=1 qwen serve: --require-auth enabled (bearer token mandatory on every route, including loopback /health). 2026-08-26T10:00:00.475Z [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 listening on http://127.0.0.1:34697 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: /acp WebSocket transport enabled on /acp ✓ src/commands/review/build-test.test.ts (30 tests) 52ms qwen serve: daemon log → /tmp/qwen-serve-runtime-sDzfis/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: Web Shell UI is served WITHOUT auth on a non-loopback bind (the static shell has no secrets; the API stays token-gated). Pass --no-web to disable the UI. qwen serve: without --allow-origin the Web Shell is read-only on a non-loopback bind — same-origin POSTs are blocked by CORS (403). Pass --allow-origin or front it with a same-origin proxy. qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=43008 runQwenServeToListenMs=1 2026-08-26T10:00:00.519Z [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 qwen serve: daemon log → /tmp/qwen-serve-runtime-vj62x0/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=43025 runQwenServeToListenMs=3 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T10:00:00.541Z [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 listening on http://0.0.0.0:40437 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve listening on http://127.0.0.1:44253 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /tmp/qwen-serve-runtime-y9bEiy/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=43057 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T10:00:00.568Z [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:44839 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /tmp/qwen-serve-runtime-UYImap/debug/daemon/serve-4083.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:36921 (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=43090 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T10:00:00.601Z [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 qwen serve: daemon log → /tmp/qwen-serve-runtime-uuBPPg/debug/daemon/serve-4083.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:42631 (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=43102 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T10:00:00.613Z [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 qwen serve: daemon log → /tmp/qwen-serve-runtime-0RRfok/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: daemon log → /tmp/qwen-serve-runtime-0RRfok/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: daemon log → /tmp/qwen-serve-runtime-TKcaGd/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=43133 runQwenServeToListenMs=4 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T10:00:00.644Z [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 qwen serve: daemon log → /tmp/qwen-serve-runtime-FOjbaS/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=43154 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T10:00:00.665Z [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 qwen serve listening on http://Localhost:40159 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve listening on http://[::1]:42651 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: daemon log → /tmp/qwen-serve-runtime-dQJoDb/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: Web Shell UI is served WITHOUT auth on a non-loopback bind (the static shell has no secrets; the API stays token-gated). Pass --no-web to disable the UI. qwen serve: without --allow-origin the Web Shell is read-only on a non-loopback bind — same-origin POSTs are blocked by CORS (403). Pass --allow-origin or front it with a same-origin proxy. qwen serve: daemon log → /tmp/qwen-serve-runtime-8bnQmc/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=43248 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 2026-08-26T10:00:00.759Z [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 listening on http://[::1]:44601 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /tmp/qwen-serve-runtime-sXS0aD/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: Web Shell UI is served WITHOUT auth on a non-loopback bind (the static shell has no secrets; the API stays token-gated). Pass --no-web to disable the UI. qwen serve: without --allow-origin the Web Shell is read-only on a non-loopback bind — same-origin POSTs are blocked by CORS (403). Pass --allow-origin or front it with a same-origin proxy. ✓ src/services/FileCommandLoader.test.ts (40 tests) 267ms qwen serve: daemon log → /tmp/qwen-serve-runtime-Evk4jm/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:00.847Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized ✓ src/nonInteractiveCliCommands.test.ts (45 tests) 86ms qwen serve listening on http://127.0.0.1:44395 (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=43347 runQwenServeToListenMs=12 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T10:00:00.864Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed qwen serve: daemon log → /tmp/qwen-serve-runtime-lcNfv6/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:00.971Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=43469 runQwenServeToListenMs=11 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve listening on http://127.0.0.1:35951 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: daemon log → /tmp/qwen-serve-runtime-KqVFuX/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:01.036Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qwen-runqwen-fs-zqxzpE secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:44269 (mode=http-bridge, workspace=/tmp/qwen-runqwen-fs-zqxzpE) qwen serve: bound to workspace "/tmp/qwen-runqwen-fs-zqxzpE" qwen serve: startup timing: processToListenMs=43536 runQwenServeToListenMs=12 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T10:00:01.078Z [INFO] [DAEMON] route=GET /file durationMs=25 status=200 request completed 2026-08-26T10:00:01.082Z [WARN] [DAEMON] route=GET /file durationMs=2 status=400 request completed qwen serve: daemon log → /tmp/qwen-serve-runtime-STwqK1/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:01.109Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qwen-runqwen-rest-fs-qZMGte secondary= daemon workspace roots initialized qwen serve: bound to workspace "/tmp/qwen-runqwen-rest-fs-qZMGte" qwen serve: startup timing: processToListenMs=43609 runQwenServeToListenMs=13 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. 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=913fe04976c18538). Inject deps.fsFactory in createServeApp to wire audit into the EventBus. 2026-08-26T10:00:01.122Z [WARN] [DAEMON] route=GET /file durationMs=1 status=404 request completed qwen serve listening on http://127.0.0.1:34673 (mode=http-bridge, workspace=/tmp/qwen-runqwen-rest-fs-qZMGte) qwen serve: daemon log → /tmp/qwen-serve-runtime-xE72ZT/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:01.131Z [INFO] [DAEMON] ideEnvPresent=false primary=/tmp/qwen-runqwen-trust-KmpRRQ secondary= daemon workspace roots initialized qwen serve listening on http://127.0.0.1:37979 (mode=http-bridge, workspace=/tmp/qwen-runqwen-trust-KmpRRQ) qwen serve: bound to workspace "/tmp/qwen-runqwen-trust-KmpRRQ" qwen serve: startup timing: processToListenMs=43628 runQwenServeToListenMs=8 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T10:00:01.145Z [INFO] [DAEMON] route=GET /file durationMs=1 status=200 request completed qwen serve: daemon log → /tmp/qwen-serve-runtime-174WlD/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:01.211Z [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:37285 (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=43707 runQwenServeToListenMs=8 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /tmp/qwen-serve-runtime-3zbWOh/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:01.296Z [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:45187 (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=43792 runQwenServeToListenMs=9 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp (node:4083) PromiseRejectionHandledWarning: Promise rejection was handled asynchronously (rejection id: 317) (Use `node --trace-warnings ...` to show where the warning was created) qwen serve: daemon log → /tmp/qwen-serve-runtime-5uI2OV/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:01.321Z [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:34755 (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=43817 runQwenServeToListenMs=8 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:01.338Z [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:45453 (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=43834 runQwenServeToListenMs=8 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T10:00:01.348Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-08-26T10:00:01.353Z [INFO] [DAEMON] sessionId=sess-A durationMs=5 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:01.358Z [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:36667 (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=43855 runQwenServeToListenMs=10 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T10:00:01.368Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-08-26T10:00:01.371Z [INFO] [DAEMON] sessionId=sess-A durationMs=3 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:01.375Z [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:42721 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve listening on http://127.0.0.1:37767 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve listening on http://127.0.0.1:38635 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve listening on http://127.0.0.1:45885 (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=43876 runQwenServeToListenMs=14 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T10:00:01.389Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-08-26T10:00:01.393Z [INFO] [DAEMON] sessionId=sess-A durationMs=4 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:01.396Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=43895 runQwenServeToListenMs=11 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T10:00:01.411Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-08-26T10:00:01.417Z [INFO] [DAEMON] sessionId=sess-A durationMs=6 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:01.420Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=43923 runQwenServeToListenMs=15 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T10:00:01.455Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-08-26T10:00:01.458Z [INFO] [DAEMON] sessionId=sess-A durationMs=3 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:01.460Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=43956 runQwenServeToListenMs=8 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T10:00:01.469Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-08-26T10:00:01.472Z [INFO] [DAEMON] sessionId=sess-A durationMs=3 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:01.474Z [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:40367 (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=43970 runQwenServeToListenMs=8 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T10:00:01.483Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-08-26T10:00:01.486Z [INFO] [DAEMON] sessionId=sess-A durationMs=3 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:01.489Z [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:37895 (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=43985 runQwenServeToListenMs=9 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: rejected ?maxQueued "" (not a decimal integer) 2026-08-26T10:00:01.500Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=1 status=400 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:01.504Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=44004 runQwenServeToListenMs=12 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve listening on http://127.0.0.1:33967 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve listening on http://127.0.0.1:40889 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: rejected ?maxQueued "abc" (not a decimal integer) 2026-08-26T10:00:01.523Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=1 status=400 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:01.531Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=44036 runQwenServeToListenMs=17 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: rejected ?maxQueued "0" (outside [16, 2048]) 2026-08-26T10:00:01.550Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=1 status=400 request completed qwen serve: rejected ?maxQueued "15" (outside [16, 2048]) 2026-08-26T10:00:01.558Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=1 status=400 request completed qwen serve: rejected ?maxQueued "2049" (outside [16, 2048]) 2026-08-26T10:00:01.564Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=1 status=400 request completed qwen serve: rejected ?maxQueued "9999" (outside [16, 2048]) 2026-08-26T10:00:01.574Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=1 status=400 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:01.601Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=44097 runQwenServeToListenMs=8 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve listening on http://127.0.0.1:40311 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) 2026-08-26T10:00:01.611Z [WARN] [DAEMON] route=GET /session/missing/events sessionId=missing durationMs=1 status=404 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:01.621Z [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:44369 (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=44117 runQwenServeToListenMs=9 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T10:00:01.653Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-08-26T10:00:01.656Z [INFO] [DAEMON] sessionId=sess-A durationMs=3 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:01.760Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=44257 runQwenServeToListenMs=9 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T10:00:01.772Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened qwen serve: bridge iterator error (session sess-A): agent died 2026-08-26T10:00:01.773Z [INFO] [DAEMON] sessionId=sess-A durationMs=1 SSE stream closed qwen serve listening on http://127.0.0.1:33493 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:01.781Z [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:38873 (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=44281 runQwenServeToListenMs=12 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T10:00:01.798Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened qwen serve: bridge iterator error (session sess-A): AcpSessionBridge initialize timed out after 5000ms [init_timeout] 2026-08-26T10:00:01.799Z [INFO] [DAEMON] sessionId=sess-A durationMs=1 SSE stream closed ]0;Qwen - workspace ]2;Qwen - workspace qwen serve listening on http://127.0.0.1:40053 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) 2026-08-26T10:00:01.842Z [INFO] [DAEMON] sessionId=sess-A durationMs=12 SSE stream closed qwen serve listening on http://127.0.0.1:41373 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) 2026-08-26T10:00:01.885Z [INFO] [DAEMON] sessionId=sess-A durationMs=13 SSE stream closed qwen serve listening on http://127.0.0.1:44587 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve listening on http://127.0.0.1:43943 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:01.942Z [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:44105 (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=44442 runQwenServeToListenMs=18 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T10:00:01.970Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-08-26T10:00:01.971Z [INFO] [DAEMON] sessionId=sess-A durationMs=1 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:01.980Z [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:39185 (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=44476 runQwenServeToListenMs=8 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: rejected Last-Event-ID "abc" (not a decimal integer) 2026-08-26T10:00:01.993Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-08-26T10:00:01.993Z [INFO] [DAEMON] sessionId=sess-A durationMs=0 SSE stream closed qwen serve: rejected Last-Event-ID "-1" (not a decimal integer) 2026-08-26T10:00:01.996Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-08-26T10:00:01.996Z [INFO] [DAEMON] sessionId=sess-A durationMs=0 SSE stream closed qwen serve: rejected Last-Event-ID "1.5e10z" (not a decimal integer) 2026-08-26T10:00:01.997Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-08-26T10:00:01.998Z [INFO] [DAEMON] sessionId=sess-A durationMs=1 SSE stream closed ✓ src/commands/review/pr-context.test.ts (55 tests) 29ms qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle 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=b92751e1769232e2). 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=c424af9365979cf2). Inject deps.fsFactory in createServeApp to wire audit into the EventBus. [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=6b680ab7... clientId=- status=started expiresInMs=600000 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=d0676ca6... clientId=- status=started expiresInMs=600000 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=ac071418... clientId=- status=started expiresInMs=600000 ✓ src/acp-integration/session/emitters/tool-call-emitter.test.ts (60 tests) 41ms [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=c03e59df... clientId=sdk-A status=started expiresInMs=600000 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=c03e59df... clientId=sdk-B status=started hint="take-over (per-provider singleton; original initiator=sdk-A)" [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=a20b66b9... clientId=- status=started expiresInMs=600000 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=14ac3ac4... clientId=- status=started expiresInMs=600000 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=cd02e4b8... clientId=- status=started expiresInMs=600000 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=cd02e4b8... clientId=- status=cancelled [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=15cc659b... clientId=- status=started expiresInMs=600000 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=60e16fd2... clientId=sdk-A status=started expiresInMs=599999 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=5873896c... clientId=- status=started expiresInMs=600000 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=a1832f07... clientId=- status=started expiresInMs=600000 qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: DELETE /workspace/agents/"partial-target" partial — removed=project remaining=user:/tmp/qwen-serve-agents-xOtIb0/global/agents/partial-target.md qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:03.240Z [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:34817 (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=45744 runQwenServeToListenMs=20 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T10:00:03.261Z [INFO] [DAEMON] sessionId=sess-A promptId=6dec24b9-2938-4cfd-ab7a-96470015049f prompt enqueued 2026-08-26T10:00:03.265Z [INFO] [DAEMON] route=POST /session/sess-A/prompt sessionId=sess-A durationMs=5 status=202 request completed 2026-08-26T10:00:03.315Z [INFO] [DAEMON] sessionId=sess-A promptId=6dec24b9-2938-4cfd-ab7a-96470015049f prompt turn completed ✓ src/ui/commands/languageCommand.test.ts (55 tests) 161ms ✓ src/serve/workspace-agents.test.ts (39 tests) 401ms ✓ src/ui/components/background-view/BackgroundTasksDialog.test.tsx (53 tests) 8926ms ✓ BackgroundTasksDialog > detail-mode left clears any armed foreground cancel before exiting 487ms ✓ BackgroundTasksDialog > lets ask-user-question approvals own all keyboard input in detail mode 338ms ✓ BackgroundTasksDialog > clamps selectedIndex when entries shrink 383ms ✓ BackgroundTasksDialog > MonitorDetailBody render branches > uses singular "1 event" / plural "N events" 340ms ✓ BackgroundTasksDialog > subagent observability (issue #6569) > omits the Progress section entirely when there are no activities 475ms ✓ src/nonInteractive/io/StreamJsonOutputAdapter.test.ts (51 tests) 38ms ✓ src/ui/voice/voice-transcriber.test.ts (40 tests) 122ms qwen serve: POST /workspaces/:workspace/memory refused — existing file /tmp/qwen-workspace-qualified-rest-73E4sN/secondary/QWEN.md is 17825792 bytes (cap 16777216) 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) ✓ src/config/settingsWatcher.test.ts (46 tests) 130ms qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:04.571Z [INFO] [DAEMON] ideEnvPresent=false primary=/startdir/src/qwen-code/packages/cli secondary= daemon workspace roots initialized qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=47071 runQwenServeToListenMs=12 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T10:00:04.585Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened qwen serve listening on http://127.0.0.1:34255 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: evicting SSE client (session sess-A) — writer idle for 254ms > 200ms timeout 2026-08-26T10:00:04.839Z [INFO] [DAEMON] sessionId=sess-A durationMs=254 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:04.851Z [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 listening on http://127.0.0.1:38395 (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=47357 runQwenServeToListenMs=18 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T10:00:04.870Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 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/workspace-qualified-rest.test.ts (25 tests) 1503ms ✓ workspace-qualified core REST > routes project agents to the selected workspace 368ms qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) ✓ src/ui/commands/doctorCommand.test.ts (37 tests) 162ms qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:05.483Z [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 listening on http://127.0.0.1:45557 (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=47995 runQwenServeToListenMs=23 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) 2026-08-26T10:00:05.550Z [INFO] [DAEMON] sessionId=sess-A durationMs=680 SSE stream closed 2026-08-26T10:00:05.558Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) ✓ src/serve/server/telemetry.test.ts (50 tests) 38ms qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) ✓ src/ui/hooks/useSelectionList.test.ts (53 tests) 151ms qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-4083.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist 2026-08-26T10:00:06.283Z [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:41191 (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=48796 runQwenServeToListenMs=27 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-08-26T10:00:06.307Z [INFO] [DAEMON] sessionId=sess-A durationMs=749 SSE stream closed 2026-08-26T10:00:06.331Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-08-26T10:00:06.724Z [INFO] [DAEMON] sessionId=sess-A durationMs=393 SSE stream closed ✓ src/ui/hooks/useHistoryManager.test.ts (24 tests) 189ms ✓ src/serve/routes/workspace-voice.test.ts (35 tests) 1761ms qwen serve: bridge error (POST /session): Error: legacy-stderr-test-boom at spawnImpl (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:22526:15) at Object.spawnOrAttach (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:1556:28) at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:1199: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:410:8) at Layer.handleRequest (/startdir/src/qwen-code/node_modules/router/lib/layer.js:152:17) at next (/startdir/src/qwen-code/node_modules/router/lib/route.js:157:13) at Route.dispatch (/startdir/src/qwen-code/node_modules/router/lib/route.js:117:3) at handle (/startdir/src/qwen-code/node_modules/router/index.js:435:11) ✓ src/utils/nonInteractiveHelpers.test.ts (52 tests) 86ms ✓ src/serve/server.test.ts (755 tests) 21432ms ✓ createServeApp > read-only status routes > returns workspace preflight status from the bridge 363ms ✓ createServeApp > GET /workspace/:id/sessions > reports organized session truncation in the response 384ms ✓ T2.9 SSE writer idle timeout (issue #4514) > does not evict when the writer idle timeout is unset (legacy contract) 632ms ✓ T2.9 SSE writer idle timeout (issue #4514) > does NOT evict when active writes keep refreshing lastWriteAt (#4514 T2.9 wenshao review) 792ms ✓ T2.9 SSE writer idle timeout (issue #4514) > does NOT evict when a back-pressured write drains within the idle budget 428ms ✓ src/ui/hooks/useSlashCompletion.test.ts (30 tests) 1008ms ✓ src/ui/components/MainContent.test.tsx (15 tests) 2115ms ✓ > progressively replays Static items when history exceeds the threshold (issue #3899) 432ms ✓ > synchronously resets to the first chunk on historyRemountKey change after a full catch-up (Ctrl+O regression, issue #3899) 322ms ✓ src/ui/hooks/useToolScheduler.test.ts (23 tests) 268ms ✓ src/utils/standalone-update.test.ts (45 tests) 32ms ✓ src/serve/channel-worker-manager.test.ts (30 tests) 469ms ✓ src/ui/utils/commandUtils.test.ts (56 tests) 108ms ✓ src/ui/utils/TableRenderer.test.tsx (71 tests) 5056ms ✓ > stays stable across multiple content widths 572ms ✓ src/nonInteractive/control/ControlDispatcher.test.ts (36 tests) 79ms ✓ src/ui/commands/copyCommand.test.ts (37 tests) 108ms ✓ src/acp-integration/session/SubAgentTracker.test.ts (28 tests) 513ms ✓ src/ui/hooks/use-voice-input.test.ts (23 tests) 299ms qwen: refusing to restore a goal for session sess-1: the condition is empty. qwen: refusing to restore a goal for session sess-1: the condition is empty. qwen: refusing to restore a goal for session sess-1: the condition is empty. (node:9491) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 resize listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (Use `node --trace-warnings ...` to show where the warning was created) ✓ src/ui/utils/restoreGoal.test.ts (56 tests) 40ms ✓ src/utils/errors.test.ts (42 tests) 65ms ✓ src/utils/memoryDiagnostics.test.ts (23 tests) 89ms ✓ src/ui/utils/resumeHistoryUtils.test.ts (31 tests) 25ms ✓ src/commands/review/lib/diff-plan.test.ts (39 tests) 44ms (node:9974) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 resize listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (Use `node --trace-warnings ...` to show where the warning was created) ✓ src/ui/daemon/daemon-tui-adapter.test.ts (15 tests) 55ms ✓ src/ui/utils/osc8.test.ts (81 tests) 31ms ✓ src/utils/installationInfo.test.ts (32 tests) 83ms ✓ src/services/prompt-processors/shellProcessor.test.ts (34 tests) 152ms ✓ src/ui/AppContainer.test.tsx (119 tests) 25282ms ✓ AppContainer State Management > Basic Rendering > continues quitting when cancelling the active request fails 577ms ✓ AppContainer State Management > Basic Rendering > renders with startup warnings 345ms ✓ AppContainer State Management > Context Providers > provides ConfigContext with config object 332ms ✓ AppContainer State Management > Context Providers > marks Ctrl+Q submissions to wait for the idle boundary 384ms ✓ AppContainer State Management > Context Providers > routes bare ":wq!" to /quit instead of sending as a message 322ms ✓ AppContainer State Management > Context Providers > routes "/quit" immediately while responding 324ms ✓ AppContainer State Management > Error Handling > handles config methods that might throw 375ms ✓ AppContainer State Management > Error Handling > handles undefined settings gracefully 424ms ✓ AppContainer State Management > Provider Hierarchy > establishes correct provider nesting order 393ms ✓ AppContainer State Management > Terminal Title Update Feature > should not update terminal title when hideWindowTitle is true 378ms ✓ AppContainer State Management > Terminal Title Update Feature > should pad the terminal title to 80 characters 343ms ✓ AppContainer State Management > Terminal Title Update Feature > should format terminal title from CLI_TITLE when set 326ms ✓ AppContainer State Management > Terminal Title Update Feature > should register for recorded session titles and format them in the terminal title 361ms ✓ AppContainer State Management > Terminal Height Calculation > loads a collapsed summary into history on cold-boot resume when collapseOnResume is enabled 355ms ✓ AppContainer State Management > Terminal Height Calculation > does not remeasure footer height for sticky todo status-only updates 689ms ✓ AppContainer State Management > Transcript (Ctrl+O) integration > q while open removes the TranscriptView 315ms ✓ AppContainer State Management > Transcript (Ctrl+O) integration > Ctrl+O while open removes the TranscriptView 304ms ✓ AppContainer State Management > handleRewindConfirm > surfaces unexpected outer errors through history 619ms ✓ AppContainer State Management > handleRewindConfirm > bails before file restore when the target turn is compressed 486ms ✓ AppContainer State Management > IDE mode rewind guard > shows info message instead of opening rewind selector when IDE mode is enabled 304ms ✓ AppContainer State Management > IDE mode rewind guard > opens rewind selector normally when IDE mode is disabled 377ms ✓ src/ui/components/StandaloneSessionPicker.test.tsx (19 tests) 1316ms ✓ src/ui/hooks/useCommandCompletion.test.ts (29 tests) 253ms ✓ src/utils/languageUtils.test.ts (58 tests) 35ms ✓ src/ui/components/background-view/LiveAgentPanel.test.tsx (29 tests) 3007ms ✓ src/ui/components/extensions/ExtensionsManagerDialog.test.tsx (23 tests) 5322ms ✓ ExtensionsManagerDialog (tabbed) > disables an extension-bundled MCP server individually with Space 377ms ✓ ExtensionsManagerDialog (tabbed) > shows the install/add actions and grouped sections on the Marketplaces tab 356ms ✓ ExtensionsManagerDialog (tabbed) > shows a CC-style marketplace detail with installed plugins and actions 339ms ✓ ExtensionsManagerDialog (tabbed) > retries a failed marketplace load when R is pressed 512ms ✓ ExtensionsManagerDialog (tabbed) > Browse plugins jumps to Discover filtered by the marketplace 400ms ✓ ExtensionsManagerDialog (tabbed) > does not close on Escape while a tab sub-view is open 337ms ✓ src/commands/channel/config-utils.test.ts (47 tests) 55ms ✓ src/ui/components/shared/text-buffer-external-editor.test.ts (36 tests) 113ms ✓ src/serve/scheduled-task-keepalive.test.ts (23 tests) 315ms ✓ src/config/trustedFolders.test.ts (37 tests) 90ms ✓ src/ui/hooks/shellCommandProcessor.test.ts (22 tests) 504ms ✓ src/nonInteractive/io/JsonOutputAdapter.test.ts (35 tests) 36ms ✓ src/ui/utils/mermaidImageRenderer.test.ts (25 tests) 2961ms ✓ mermaid image renderer > renders Mermaid through chafa asynchronously for interactive UI callers 304ms ✓ mermaid image renderer > evicts Mermaid image caches by retained byte size 988ms ✓ src/cli.test.ts (42 tests) 1653ms ✓ bootstrap import boundaries > reloads the CLI through a stable shim after an update 483ms ✓ bootstrap import boundaries > does not pass the standalone launcher hint to child processes 515ms ✓ src/ui/hooks/useBranchCommand.test.ts (23 tests) 107ms ✓ src/ui/hooks/useResumeCommand.test.ts (12 tests) 131ms ✓ src/startup/startup-prefetch.test.ts (28 tests) 87ms ✓ src/config/extension-file-watcher.test.ts (23 tests) 62ms ✓ src/ui/components/SkillReviewDialog.test.tsx (33 tests) 8683ms ✓ SkillReviewDialog > renders the first pending skill name and description with a counter 431ms ✓ SkillReviewDialog > renders the current staged SKILL.md content inline 426ms ✓ SkillReviewDialog > shows loading, not the previous skill body, while the next preview loads 309ms ✓ SkillReviewDialog > escapes bare control bytes (e.g. BEL) that are not ANSI sequences 393ms ✓ SkillReviewDialog > sanitizes the model-generated name and description in the header 350ms ✓ SkillReviewDialog > caps the preview by WRAPPED rows, not logical lines 468ms ✓ SkillReviewDialog > flags a byte-truncated preview even when no lines are hidden 385ms ✓ SkillReviewDialog > auto-refreshes the preview when the staged file changes on disk 609ms ✓ SkillReviewDialog > clears a stale editor error when advancing to the next skill 541ms ✓ src/ui/commands/clearCommand.test.ts (16 tests) 180ms ✓ src/ui/hooks/useBackgroundTaskView.test.ts (16 tests) 174ms ✓ src/commands/review/lib/anchors.test.ts (29 tests) 343ms ✓ does not throw on a candidate set past the argument-spread limit 311ms ✓ src/commands/review/submit.test.ts (33 tests) 70ms ✓ src/ui/components/messages/AskUserQuestionDialog.test.tsx (35 tests | 1 skipped) 6615ms ✓ > single-select interaction > selects an option with Enter and submits immediately for single question 363ms ✓ > single-select interaction > does not auto-submit pasted numeric prefixes as option numbers 306ms ✓ > single-select interaction > does not auto-submit when pressing number key for "Other" custom input 317ms ✓ > single-select interaction > cancels with Escape 429ms ✓ > single-select interaction > navigates with selection shortcuts when custom input is not focused 531ms ✓ > single-select interaction > navigates with Ctrl+N/P when custom input is not focused 358ms ✓ > single-select interaction > keeps bare k/j in custom input while Ctrl+P/N still navigates options 495ms ✓ > multi-select interaction > auto-selects custom input and submits on Enter after typing 354ms ✓ > multi-select interaction > does not submit when Enter pressed on empty custom input 386ms ✓ > multi-select interaction > submits predefined options together with custom input 564ms ✓ > multiple questions > does not auto-submit when pressing number key on Submit tab 338ms ✓ src/ui/hooks/useAutoAcceptIndicator.test.ts (20 tests) 226ms ✓ src/ui/commands/diffCommand.test.ts (26 tests) 76ms ✓ src/ui/commands/directoryCommand.test.tsx (27 tests) 60ms ✓ src/serve/bridge-file-system-adapter.test.ts (19 tests) 134ms ✓ src/serve/fs/paths.test.ts (36 tests) 104ms ✓ src/ui/keyMatchers.test.ts (47 tests) 34ms ✓ src/serve/create-sub-session.test.ts (18 tests) 280ms ✓ src/config/settingsSchema.test.ts (32 tests) 30ms fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git [...] -- [...]' ✓ src/serve/workspace-remember-errors.test.ts (41 tests) 27ms ✓ src/serve/auth/qwen-device-flow-provider.test.ts (12 tests) 15ms ✓ src/commands/review/lib/local-diff.integration.test.ts (27 tests) 5411ms ✓ captureLocalDiff — untracked files > stops inlining untracked files once the total budget is spent 515ms ✓ captureLocalDiff — untracked files > scopes to one path with `file`, untracked target included 387ms ✓ src/validateNonInterActiveAuth.test.ts (13 tests) 74ms ✓ src/serve/workspace-skill-management.test.ts (22 tests) 322ms ✓ src/ui/components/MemoryDialog.test.tsx (17 tests) 2506ms ✓ MemoryDialog > chains focus list ↑ autoSkillConfirm ↑ autoSkill ↑ autoDream ↑ autoMemory and back down 327ms ✓ src/ui/commands/renameCommand.test.ts (24 tests) 99ms ✓ src/ui/utils/customBanner.test.ts (40 tests) 75ms ✓ src/commands/channel/pidfile.test.ts (29 tests) 315ms ✓ src/utils/handleAutoUpdate.test.ts (24 tests) 251ms ✓ src/services/McpPromptLoader.test.ts (35 tests) 20ms ✓ src/ui/components/messages/CompactToolGroupDisplay.test.tsx (44 tests) 985ms ✓ src/ui/components/agent-view/agentHistoryAdapter.test.ts (35 tests) 12ms qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle 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) ✓ src/ui/hooks/useExtensionUpdates.test.ts (16 tests) 436ms ✓ src/ui/components/HistoryItemDisplay.test.tsx (30 tests) 2154ms ✓ src/serve/workspace-providers-status.test.ts (18 tests) 243ms ✓ src/serve/routes/workspace-file-read.test.ts (32 tests) 682ms ✓ src/startup/worktreeStartup.test.ts (18 tests) 5343ms ✓ setupStartupWorktree > creates a worktree with an auto-generated slug for bare --worktree 477ms ✓ setupStartupWorktree > creates a worktree with an explicit slug 413ms ✓ setupStartupWorktree > creates a pr- worktree from FETCH_HEAD when fetch succeeds (local fake remote) 778ms ✓ setupStartupWorktree > re-attaches to an existing worktree instead of erroring (Phase 6 G1 fix) 539ms ✓ persistStartupWorktreeSidecar > adopts a stale marker when re-attaching to an inactive owner 710ms ✓ persistStartupWorktreeSidecar > keeps the marker when the owner runtime is still active 746ms ✓ persistStartupWorktreeSidecar > finds an active owner under a repo-subdir relative runtime dir 632ms ✓ src/serve/rate-limit.test.ts (28 tests) 2209ms ✓ rateLimit > fail-open > passes through when bucket map is at capacity 2120ms ✓ src/ui/components/shared/VirtualizedList.test.tsx (20 tests) 5682ms ✓ > exposes scrollToEnd via imperative ref and snaps to the last item 424ms ✓ > scrollBy > scrollBy negative moves the viewport up and clears sticking-to-bottom 303ms ✓ > scrollBy > scrollBy past bottom re-engages sticking-to-bottom with live end anchor 377ms ✓ > scrollTo > scrollTo negative is clamped to 0 306ms ✓ > auto-scroll during streaming > auto-scrolls when at bottom and data grows 364ms ✓ > auto-scroll during streaming > does NOT auto-scroll when user has scrolled away from bottom 433ms ✓ > auto-scroll during streaming > re-engages auto-scroll when user scrolls back to bottom 650ms ✓ src/acp-integration/acpAgent.worktree.test.ts (3 tests) 199ms qwen serve: POST /workspace/memory refused — existing file /tmp/qwen-serve-memory-qu7ZYL/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-zNvz1a/workspace/QWEN.md' at open (node:internal/fs/promises:1360:25) at Object.writeFile (node:internal/fs/promises:2104:14) at runWrite (/startdir/src/qwen-code/packages/core/src/memory/writeContextFile.ts:215:3) at /startdir/src/qwen-code/packages/core/src/memory/writeContextFile.ts:161:19 qwen serve: POST /workspace/memory failed (scope=workspace mode=append): Error: EACCES: permission denied, open '/tmp/qwen-serve-memory-zNvz1a/workspace/QWEN.md' at open (node:internal/fs/promises:1360:25) at Object.writeFile (node:internal/fs/promises:2104:14) at runWrite (/startdir/src/qwen-code/packages/core/src/memory/writeContextFile.ts:215:3) at /startdir/src/qwen-code/packages/core/src/memory/writeContextFile.ts:161:19 qwen serve: GET /workspace/memory failed: Error: boom at collectStatus (/startdir/src/qwen-code/packages/cli/src/serve/workspace-memory.test.ts:465:17) at /startdir/src/qwen-code/packages/cli/src/serve/workspace-memory.ts:167: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/ui/commands/config-command.test.ts (38 tests) 106ms ✓ src/serve/workspace-memory.test.ts (17 tests) 241ms ✓ src/config/jsonSchemaArg.test.ts (40 tests) 480ms ✓ src/serve/auth.test.ts (29 tests) 27ms ✓ src/config/migration/versions/v2-to-v3.test.ts (31 tests) 47ms ✓ src/ui/hooks/useSessionSearchInput.test.ts (36 tests) 213ms 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: --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/acp-integration/session/rewrite/MessageRewriteMiddleware.test.ts (15 tests) 36ms ✓ src/services/BundledSkillLoader.test.ts (26 tests) 56ms ✓ src/config/hot-reload.test.ts (25 tests) 71ms ✓ src/acp-integration/session/Session.test.ts (364 tests) 55080ms ✓ Session > prompt > auto-compress > latches mid-turn drain off after repeated timeouts when the client never responds 6106ms ✓ Session > prompt > auto-compress > resets the timeout strike count when a drain succeeds 8143ms ✓ Session > prompt > auto-compress > recovers a drain that timed out and injects it on the next batch 2210ms ✓ Session > prompt > auto-compress > reads the home loop.md from QWEN_HOME, not the real ~/.qwen 320ms ✓ Session > daemon Todo Stop Guard > does not persist an unsent Guard prompt when compression is cancelled 305ms ✓ Session > daemon Todo Stop Guard > keeps external Stop hook continuation when Guard compression throws 336ms ✓ Session > daemon Todo Stop Guard > defers for a wakeup created by the current work chain 303ms ✓ src/services/SkillCommandLoader.test.ts (24 tests) 49ms ✓ src/ui/components/shared/BaseSelectionList.test.tsx (26 tests) 2044ms ✓ src/ui/components/StatsDisplay.test.tsx (17 tests) 1366ms ✓ src/nonInteractive/control/controllers/permissionController.test.ts (17 tests) 566ms 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-446655440050"] archived=1 archivedIds=["550e8400-e29b-41d4-a716-446655440050"] alreadyArchived=0 alreadyArchivedIds=[] notFound=0 notFoundIds=[] errors=0 errorIds=[] 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 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-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=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: 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/server/session-archive.test.ts (19 tests) 90ms ✓ src/serve/routes/workspace-models.test.ts (21 tests) 299ms ✓ src/commands/channel/memory-intent-classifier.test.ts (36 tests) 3514ms ✓ BridgeChannelMemoryIntentClassifier > keeps all IDs and a 500-entry long-metadata manifest within the code-point budget 3344ms ✓ src/ui/hooks/useDeleteCommand.test.ts (14 tests) 106ms ✓ src/ui/commands/btwCommand.test.ts (23 tests) 95ms ✓ src/ui/utils/historyMapping.test.ts (26 tests) 26ms ✓ src/serve/large-pipe-frame-observer.test.ts (16 tests) 64ms ✓ src/commands/sessions/list.test.ts (25 tests) 65ms ✓ src/ui/hooks/useProviderUpdates.test.ts (15 tests) 327ms ✓ src/serve/routes/a2ui-action.test.ts (19 tests) 182ms ✓ src/ui/utils/textUtils.test.ts (37 tests) 47ms ✓ src/commands/review/test-efficacy.test.ts (26 tests) 19ms ✓ src/serve/routes/workspace-extensions-controller.test.ts (9 tests) 435ms ✓ src/ui/components/ModelStatsDisplay.test.tsx (16 tests) 1190ms 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 ✓ src/ui/voice/voice-keyterms.test.ts (28 tests) 63ms ✓ src/ui/utils/pending-rendered-height.test.ts (35 tests) 53ms Fatal error: Failed to relaunch the CLI process. PROCESS_EXIT_CALLED ✓ src/ui/components/messages/ToolConfirmationMessage.test.tsx (21 tests) 1682ms 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 (15 tests) 203ms ✓ src/serve/routes/workspace-setup-github.test.ts (13 tests) 539ms ✓ src/commands/review/parse-args.test.ts (40 tests) 60ms ✓ src/serve/routes/channel-webhooks.test.ts (25 tests) 235ms ✓ src/utils/startupProfiler.test.ts (21 tests) 63ms ✓ src/commands/extensions/install.test.ts (17 tests) 45ms ✓ src/commands/serve.test.ts (34 tests) 9456ms ✓ serve startup import boundary > reaches listening through the dev entrypoint without loading interactive Ink internals first 9022ms ✓ src/commands/mcp/add.test.ts (27 tests) 194ms ✓ src/ui/components/hooks/constants.test.ts (47 tests) 31ms ✓ src/ui/commands/cdCommand.test.ts (20 tests) 151ms ✓ src/services/CommandService.test.ts (17 tests) 37ms ✓ src/utils/commands.test.ts (36 tests) 33ms ✓ src/ui/utils/InlineMarkdownRenderer.test.tsx (23 tests) 1645ms ✓ src/serve/workspace-service/__tests__/integration.test.ts (14 tests) 389ms Error parsing settings file. Settings file may be corrupted: Unexpected end of JSON input ✓ src/utils/commentJson.test.ts (18 tests) 44ms ✓ src/ui/commands/tasksCommand.test.ts (10 tests) 29ms ✓ src/config/auth.test.ts (21 tests) 64ms ✓ src/utils/systemInfo.test.ts (22 tests) 88ms ✓ src/ui/components/shared/ScrollableList.test.tsx (14 tests) 4547ms ✓ mouse scrolling > routes wheel SGR events to viewport scroll (window shifts) 602ms ✓ mouse scrolling > drags the scrollbar to scroll the viewport 481ms ✓ mouse scrolling > drags the scrollbar to an intermediate viewport position 432ms ✓ mouse scrolling > keeps dragging after the pointer leaves the scrollbar column 494ms ✓ keyboard scroll > Shift+Up scrolls up by 1 line 339ms ✓ keyboard scroll > Shift+Down scrolls down by 1 line 347ms ✓ keyboard scroll > PageUp scrolls up by one page (containerHeight lines) 312ms ✓ src/config/migration/index.test.ts (30 tests) 15ms ✓ src/acp-integration/session/emitters/MessageEmitter.test.ts (24 tests) 19ms ✓ src/ui/commands/workflowsCommand.test.ts (15 tests) 83ms ✓ src/ui/components/LoadingIndicator.test.tsx (28 tests) 1914ms ✓ src/config/claudeMcpImport.test.ts (14 tests) 27ms ✓ src/ui/voice/qwen-asr-realtime-session.test.ts (14 tests) 53ms Invalid values: Argument: approval-mode, Given: "invalid_mode", Choices: "plan", "default", "auto-edit", "auto", "yolo" Cannot use both --yolo (-y) and --approval-mode together. Use --approval-mode=yolo instead. process.exit unexpectedly called with "1" ✓ src/ui/utils/statsDataService.test.ts (17 tests) 17ms ✓ src/config/config.integration.test.ts (25 tests) 242ms ✓ src/ui/components/Composer.test.tsx (20 tests) 1388ms ✓ src/serve/routes/workspace-permissions.test.ts (10 tests) 225ms ✓ src/serve/workspace-registry.test.ts (13 tests) 14ms ✓ src/commands/review/presubmit.test.ts (13 tests) 16ms ✓ src/ui/commands/contextCommand.test.ts (11 tests) 73ms qwen: no chat recording service; goal_status (kind=achieved) will not survive a resume. qwen: no chat recording service; goal_status (kind=achieved) will not survive a resume. qwen: no chat recording service; goal_status (kind=achieved) will not survive a resume. qwen: no chat recording service; goal_status (kind=aborted) will not survive a resume. qwen: no chat recording service; goal_status (kind=aborted) will not survive a resume. qwen: no chat recording service; goal_status (kind=failed) will not survive a resume. ✓ src/ui/components/Footer.test.tsx (24 tests) 1821ms ✓ src/ui/commands/goalCommand.test.ts (20 tests) 53ms ✓ src/ui/components/QwenOAuthProgress.test.tsx (18 tests) 1297ms ✓ src/ui/commands/arenaCommand.test.ts (15 tests) 60ms ✓ src/nonInteractive/control/controllers/systemController.test.ts (21 tests) 62ms ✓ src/ui/hooks/useQwenAuth.test.ts (17 tests) 74ms ✓ src/ui/components/messages/DiffRenderer.test.tsx (16 tests) 1291ms ✓ src/ui/commands/aboutCommand.test.ts (12 tests) 29ms ✓ src/ui/hooks/useLoadingIndicator.test.ts (11 tests) 112ms ✓ src/config/lsp-config-watcher.test.ts (13 tests) 50ms ✓ src/ui/auth/useAuth.test.ts (23 tests) 66ms ✓ src/ui/commands/update-command.test.ts (20 tests) 34ms ✓ src/utils/doctorChecks.test.ts (18 tests) 135ms ✓ src/ui/components/messages/InlineParallelAgentsDisplay.test.tsx (12 tests) 938ms ✓ src/ui/components/shared/MaxSizedBox.test.tsx (22 tests) 1491ms ✓ src/ui/utils/todoSnapshot.test.ts (19 tests) 13ms ✓ src/serve/routes/workspace-git-diff.test.ts (13 tests) 107ms ✓ src/utils/apiPreconnect.test.ts (26 tests) 17ms ✓ src/commands/extensions/settings.test.ts (20 tests) 162ms ✓ src/ui/utils/updateCheck.test.ts (19 tests) 48ms ✓ src/ui/themes/detect-terminal-theme.test.ts (29 tests) 27ms ✓ src/ui/utils/markdownUtilities.test.ts (30 tests) 20ms ✓ src/dualOutput/DualOutputBridge.test.ts (21 tests) 175ms ✓ src/utils/cpuProfiler.test.ts (21 tests) 26ms ✓ src/commands/mcp/reconnect.test.ts (9 tests) 23ms ✓ src/serve/fs/audit.test.ts (13 tests) 22ms ✓ src/serve/acp-http/client-mcp-ws.test.ts (5 tests) 160ms ✓ src/services/commandMetadata.test.ts (37 tests) 12ms 2026-08-26T10:01:03.359Z [ERROR] [DAEMON] route=POST /x route failed Error: boom at /startdir/src/qwen-code/packages/cli/src/serve/daemon-logger.test.ts:260:17 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20 at new Promise () at runWithTimeout (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10) at runTest (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1574:12) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) at runFiles (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1787:3) 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-0 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-1 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-2 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-3 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-4 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-5 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-6 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-7 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-8 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-9 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-10 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-11 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-12 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-13 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-14 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-15 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-16 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-17 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-18 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-19 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-20 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-21 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-22 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-23 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-24 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-25 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-26 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-27 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-28 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-29 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-30 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-31 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-32 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-33 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-34 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-35 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-36 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-37 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-38 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-39 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-40 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-41 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-42 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-43 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-44 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-45 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-46 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-47 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-48 2026-08-26T10:01:03.373Z [INFO] [DAEMON] msg-49 ✓ src/config/settings-cache.test.ts (13 tests) 136ms ✓ src/serve/daemon-logger.test.ts (21 tests) 230ms ✓ src/utils/acpModelUtils.test.ts (31 tests) 27ms ✓ src/ui/hooks/useAttentionNotifications.test.ts (13 tests) 60ms ✓ src/ui/components/InputPrompt.test.tsx (189 tests) 81741ms ✓ InputPrompt > onTabConsumerChange reporting (issue #4171) > reports true while the followup prompt suggestion is visible 798ms ✓ InputPrompt > onTabConsumerChange reporting (issue #4171) > reports true while mid-input ghost text offers an accept 345ms ✓ InputPrompt > onTabConsumerChange reporting (issue #4171) > reports true while the autocomplete dropdown is visible 323ms ✓ InputPrompt > onTabConsumerChange reporting (issue #4171) > reports false again after the autocomplete dropdown is dismissed 555ms ✓ InputPrompt > onSuggestionsVisibilityChange stays narrow (autocomplete only) > stays false when only a followup prompt suggestion is visible 794ms ✓ InputPrompt > should set the buffer text when a shell history command is retrieved 573ms ✓ InputPrompt > should call shellHistory.addCommandToHistory on submit in shell mode 440ms ✓ InputPrompt > should NOT call shell history methods when not in shell mode 759ms ✓ InputPrompt > should call completion.navigateUp for up arrow when suggestions are showing 610ms ✓ InputPrompt > should call completion.navigateDown for down arrow when suggestions are showing 574ms ✓ InputPrompt > should NOT call completion navigation when suggestions are not showing 857ms ✓ InputPrompt > clipboard image paste > should handle Ctrl+V when clipboard has an image 457ms ✓ InputPrompt > clipboard image paste > should handle Cmd+V when clipboard has an image 487ms ✓ InputPrompt > clipboard image paste > should not insert anything when clipboard has no image 423ms ✓ InputPrompt > clipboard image paste > should show the native clipboard error only once across remounts 1120ms ✓ InputPrompt > clipboard image paste > should handle image save failure gracefully 497ms ✓ InputPrompt > clipboard image paste > should insert image path at cursor position with proper spacing 463ms ✓ InputPrompt > clipboard image paste > should handle errors during clipboard operations gracefully 433ms ✓ InputPrompt > should complete a partial parent command 449ms ✓ InputPrompt > should append a sub-command when the parent command is already complete 431ms ✓ InputPrompt > should handle the "backspace" edge case correctly 501ms ✓ InputPrompt > should complete a partial argument for a command 446ms ✓ InputPrompt > should autocomplete on Enter when suggestions are active, without submitting 477ms ✓ InputPrompt > should complete a command based on its altNames 456ms ✓ InputPrompt > should not submit on Enter when the buffer is empty or only contains whitespace 430ms ✓ InputPrompt > should submit directly on Enter when isPerfectMatch is true 419ms ✓ InputPrompt > should submit a perfect match on Enter when suggestions were not navigated 417ms ✓ InputPrompt > should fill and submit an export format selected with arrow navigation 583ms ✓ InputPrompt > should keep cycling export formats after arrow navigation fills input 564ms ✓ InputPrompt > should keep cycling export formats with Ctrl+P/N after arrow navigation fills input 783ms ✓ InputPrompt > should keep export format suggestions visible after arrow navigation fills input 449ms ✓ InputPrompt > should not clobber manually edited buffer when arrow is pressed after export fill 925ms ✓ InputPrompt > should wrap to jsonl when pressing Up from the /export Phase 1 popup 501ms ✓ InputPrompt > should wrap Phase 2 cycling backward when pressing Up repeatedly 817ms ✓ InputPrompt > should seed Phase 2 cycling when Tab accepts a format in the /export popup 754ms ✓ InputPrompt > should not overwrite /export html with extra args when Down is pressed 596ms ✓ InputPrompt > should reset export cycling state on Escape so arrows no longer cycle 748ms ✓ InputPrompt > should reset export cycling state on Ctrl+C so new input is not overwritten 742ms ✓ InputPrompt > should cycle export format on Down when /export was typed manually (not via popup) 799ms ✓ InputPrompt > should not arm export cycling from restored history text 431ms ✓ InputPrompt > should trigger export-specific arrow navigation even when completion suggestions are a superset 468ms ✓ InputPrompt > should fall through to generic accept when Tab targets a non-export item in the /export superset popup 389ms ✓ InputPrompt > should fall through to generic completion when suggestions are missing an export format 477ms ✓ InputPrompt > should trigger Phase 1 export popup even when /export has trailing spaces 440ms ✓ InputPrompt > should autocomplete on Enter when user arrow-navigated a perfect-match suggestion list 620ms ✓ InputPrompt > should submit directly on Enter after arrow-navigate + backspace + retype to perfect match 1197ms ✓ InputPrompt > should submit directly on Enter for a perfect match without prior arrow navigation 548ms ✓ InputPrompt > should dismiss completion on Enter after accepting @path suggestion 478ms ✓ InputPrompt > should autocomplete @path on Tab without submitting or resetting completion 501ms ✓ InputPrompt > should reset history navigation after submitting on Enter 560ms ✓ InputPrompt > should submit directly on Enter when a complete leaf command is typed 488ms ✓ InputPrompt > should autocomplete an @-path on Enter without submitting 515ms ✓ InputPrompt > should add a newline on enter when the line ends with a backslash 493ms ✓ InputPrompt > should clear the buffer on Ctrl+C if it has text 533ms ✓ InputPrompt > should NOT clear the buffer on Ctrl+C if it is empty 458ms ✓ InputPrompt > cursor-based completion trigger > should trigger completion when cursor is after @ without spaces 313ms ✓ InputPrompt > cursor-based completion trigger > should trigger completion when cursor is after / without spaces 335ms ✓ InputPrompt > cursor-based completion trigger > should NOT trigger completion when cursor is after space following @ 652ms ✓ InputPrompt > cursor-based completion trigger > should NOT trigger completion when cursor is after space following / 390ms ✓ InputPrompt > cursor-based completion trigger > should NOT trigger completion when cursor is not after @ or / 443ms ✓ InputPrompt > cursor-based completion trigger > should handle single line slash command correctly 399ms ✓ InputPrompt > cursor-based completion trigger > should handle Unicode characters with spaces after them 340ms ✓ InputPrompt > cursor-based completion trigger > should handle escaped spaces in paths correctly 356ms ✓ InputPrompt > cursor-based completion trigger > should NOT trigger completion after unescaped space following escaped space 431ms ✓ InputPrompt > vim mode > should not call buffer.handleInput when vim handles the input 444ms ✓ InputPrompt > vim mode > should call buffer.handleInput when vim does not handle the input 436ms ✓ InputPrompt > vim mode > should call handleInput when vim mode is disabled 442ms ✓ InputPrompt > vim mode > should toggle shortcuts when vim passes through ? on an empty prompt 693ms ✓ InputPrompt > unfocused paste > should handle bracketed paste when not focused 460ms ✓ InputPrompt > unfocused paste > should ignore regular keypresses when not focused 490ms ✓ InputPrompt > Highlighting and Cursor Display > should display cursor mid-word by highlighting the character 513ms ✓ InputPrompt > Highlighting and Cursor Display > should display cursor correctly on a highlighted token 353ms ✓ InputPrompt > Highlighting and Cursor Display > should display cursor on an empty line 325ms ✓ InputPrompt > Highlighting and Cursor Display > should display cursor on a space between words 357ms ✓ InputPrompt > Highlighting and Cursor Display > should display cursor in the middle of a line in a multiline block 332ms ✓ InputPrompt > Highlighting and Cursor Display > should display cursor at the end of a line in a multiline block 327ms ✓ InputPrompt > multiline paste > should handle multiline paste 'with \n newlines' 533ms ✓ InputPrompt > multiline paste > should handle multiline paste 'with extra slashes before \n newlines' 450ms ✓ InputPrompt > multiline paste > should handle multiline paste 'with \r\n newlines' 477ms ✓ InputPrompt > paste auto-submission protection > should prevent auto-submission immediately after paste with newlines 790ms ✓ InputPrompt > paste auto-submission protection > should allow submission after paste protection timeout 421ms ✓ InputPrompt > paste auto-submission protection > should not interfere with normal Enter key submission when no recent paste 497ms ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should clear buffer on second ESC press 473ms ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should reset escape state on any non-ESC key 307ms ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should handle ESC in shell mode by disabling shell mode 554ms ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should handle ESC when completion suggestions are showing 457ms ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should not call onEscapePromptChange when not provided 467ms ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should not interfere with existing keyboard shortcuts 587ms ✓ InputPrompt > reverse search > invokes reverse search on Ctrl+R 550ms ✓ InputPrompt > reverse search > resets reverse search state on Escape 509ms ✓ InputPrompt > reverse search > completes the highlighted entry on Tab and exits reverse-search 532ms ✓ InputPrompt > reverse search > submits the highlighted entry on Enter and exits reverse-search 428ms ✓ InputPrompt > reverse search > text and cursor position should be restored after reverse search 352ms ✓ InputPrompt > reverse search > does not fall through to shell history on Ctrl+P/N while reverse search is active 753ms ✓ InputPrompt > Ctrl+E keyboard shortcut > should move cursor to end of current line in multiline input 410ms ✓ InputPrompt > Ctrl+E keyboard shortcut > should move cursor to end of current line for single line input 500ms ✓ InputPrompt > command search (Ctrl+R when not in shell) > enters command search on Ctrl+R and shows suggestions 519ms ✓ InputPrompt > command search (Ctrl+R when not in shell) > shows command search suggestions over active export suggestions 611ms ✓ InputPrompt > command search (Ctrl+R when not in shell) > expands and collapses long suggestion via Right/Left arrows 531ms ✓ InputPrompt > command search (Ctrl+R when not in shell) > renders match window and expanded view (snapshots) 709ms ✓ InputPrompt > command search (Ctrl+R when not in shell) > does not show expand/collapse indicator for short suggestions 433ms ✓ InputPrompt > snapshots > should render correctly when accepting edits 317ms ✓ InputPrompt > snapshots > should render correctly in yolo mode 366ms ✓ InputPrompt > snapshots > should not show inverted cursor when shell is focused 333ms ✓ InputPrompt > should still allow input when shell is not focused 503ms ✓ InputPrompt > large paste placeholder > should create placeholder for paste > 1000 characters 432ms ✓ InputPrompt > large paste placeholder > should create placeholder for paste > 10 lines 612ms ✓ InputPrompt > large paste placeholder > should use sequential IDs for multiple pastes of same size 664ms ✓ InputPrompt > large paste placeholder > should expand placeholder to full content on submit 604ms ✓ InputPrompt > large paste placeholder > should expand same-size placeholders correctly when #2 appears first 664ms ✓ InputPrompt > large paste placeholder > should write expanded placeholder content to shell history 409ms ✓ InputPrompt > large paste placeholder > should reuse placeholder ID after deletion 397ms ✓ InputPrompt > large paste placeholder > should handle mixed pastes with different character counts 724ms ✓ InputPrompt > Ctrl+Y retry shortcut > should trigger handleRetryLastPrompt on Ctrl+Y 487ms ✓ InputPrompt > Ctrl+Y retry shortcut > should NOT trigger retry on plain y key 409ms ✓ InputPrompt > Ctrl+Y retry shortcut > should NOT trigger retry on Ctrl+R (reverse search) 454ms ✓ InputPrompt > Ctrl+Y retry shortcut > should handle Ctrl+Y when feedback dialog is open 464ms ✓ InputPrompt > queue input editing > should pop queued messages into input on Up arrow when queue is non-empty 623ms ✓ InputPrompt > queue input editing > should prepend queued messages before existing input text 554ms ✓ InputPrompt > queue input editing > should pop queued messages on ESC when queue is non-empty 500ms ✓ InputPrompt > queue input editing > should fall through to history when pop returns null (race condition) 520ms ✓ InputPrompt > queue input editing > should navigate history on Up arrow when queue is empty 497ms ✓ InputPrompt > queue input editing > should not intercept Ctrl+P when queue is non-empty 480ms ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+P with cursor mid-line snaps to col 0 without touching history 576ms ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+N with cursor not at end-of-line snaps to end without touching history 490ms ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+P at col 0 walks history and parks the cursor at offset 0 420ms ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+P/N and arrows do not change input history while a tool confirmation owns navigation 870ms ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+N falls through to the agent tab bar when there is no newer history 457ms ✓ InputPrompt > two-step edge transition for history navigation > arrow Down applies the same snap-before-history rule as Ctrl+N 437ms ✓ InputPrompt > two-step edge transition for history navigation > arrow Down at end-of-line walks history 399ms ✓ InputPrompt > two-step edge transition for history navigation > arrow Down falls through to the agent tab bar when there is no newer history 485ms ✓ 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) 450ms ✓ 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 455ms ✓ InputPrompt > two-step edge transition for history navigation > arrow Down skips terminal bg agents after the live panel visibility window (#5067) 466ms ✓ InputPrompt > two-step edge transition for history navigation > arrow Down focuses the background-tasks pill when only the pill is shown (workflow-only session) 459ms ✓ InputPrompt > two-step edge transition for history navigation > Down at the bottom of the live agent panel descends to the agent tab bar 430ms ✓ 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 419ms ✓ InputPrompt > two-step edge transition for history navigation > Down from an expired live panel falls through to the tab bar 447ms ✓ InputPrompt > two-step edge transition for history navigation > Enter on the live panel maps the DISPLAYED row back to its bg entry index 417ms ✓ InputPrompt > two-step edge transition for history navigation > arrow Up applies the same two-step rule as Ctrl+P (snap before navigate) 440ms ✓ InputPrompt > two-step edge transition for history navigation > suppresses completion menu navigation for history-restored text until edited 986ms Wrote test-efficacy report to /tmp/efficacy-iso-JPYo1v/out.json (0 unreachable, 1 probed, 1 finding(s)) [test] inert: packages/lib/src/f.test.ts fatal: '/tmp/efficacy-iso-JPYo1v/wt-probe' is not a working tree ✓ src/ui/commands/restoreCommand.test.ts (16 tests) 100ms ✓ src/commands/review/lib/workspaces.test.ts (23 tests) 11ms ✓ src/commands/extensions/consent.test.ts (21 tests) 47ms Wrote test-efficacy report to /tmp/efficacy-iso-jhBovW/out.json (0 unreachable, 1 probed, 1 finding(s)) [test] inert: packages/lib/src/f.test.ts ✓ src/utils/sessionPaths.test.ts (8 tests) 127ms fatal: '/tmp/efficacy-iso-jhBovW/wt-probe' is not a working tree ✓ src/serve/cdp-tunnel/cdp-reverse-link.test.ts (14 tests) 52ms Wrote test-efficacy report to /tmp/efficacy-iso-WpMOtT/out.json (0 unreachable, 1 probed, 1 finding(s)) [test] inert: packages/lib/src/f.test.ts fatal: '/tmp/efficacy-iso-WpMOtT/wt-probe' is not a working tree ✓ src/ui/statusLinePresets.test.ts (18 tests) 9ms ✓ src/acp-integration/session/Session.worktree.test.ts (5 tests) 54ms Wrote test-efficacy report to /tmp/efficacy-iso-4mh4KW/out.json (0 unreachable, 1 probed, 1 finding(s)) [test] inert: packages/lib/src/f.test.ts fatal: '/tmp/efficacy-iso-4mh4KW/wt-probe' is not a working tree ✓ src/commands/review/test-efficacy.integration.test.ts (4 tests) 3035ms ✓ test-efficacy probe isolation (#6832) > probes in a disposable worktree and never mutates the shared one 744ms ✓ test-efficacy probe isolation (#6832) > a PR-controlled symlink cannot delete outside the tree — by isolation, not the guard 758ms ✓ test-efficacy probe isolation (#6832) > sweeps a stale REGISTERED probe worktree left by a crashed run 851ms ✓ test-efficacy probe isolation (#6832) > clears an UNREGISTERED non-empty leftover so the probe is not wedged 681ms ✓ src/serve/daemon-metrics-ring.test.ts (16 tests) 13ms ✓ src/utils/housekeeping/scheduler.test.ts (13 tests) 61ms ✓ src/serve/workspace-registration-store.test.ts (16 tests | 1 skipped) 9096ms ✓ WorkspaceRegistrationStore > persists, deduplicates, and removes workspace paths 5842ms ✓ WorkspaceRegistrationStore > reports lock release failure after a committed write 3156ms ✓ src/serve/routes/workspace-settings.test.ts (14 tests) 162ms ✓ src/ui/auth/ProviderSetupSteps.test.tsx (6 tests) 1085ms ✓ ProviderSetupSteps > filters recommended models when typing search while recommendations are focused 380ms ✓ src/utils/earlyInputCapture.test.ts (28 tests) 29ms ✓ src/ui/components/InputPrompt.suggestionMouse.test.tsx (6 tests) 991ms ✓ InputPrompt suggestion mouse routing > passes the default-source mouse handlers to SuggestionsDisplay 343ms ✓ src/acp-integration/session/rewrite/LlmRewriter.test.ts (12 tests) 12ms ✓ src/services/setup-github.test.ts (10 tests) 89ms ✓ src/services/BuiltinCommandLoader.test.ts (12 tests) 43ms ✓ src/utils/warningHandler.test.ts (13 tests) 299ms ✓ src/commands/extensions/update.test.ts (15 tests) 51ms [Channel] Permission relay failed for req-1: send failed [Channel] Session session-1 died, updating routing state ✓ src/commands/channel/runtime.test.ts (12 tests) 91ms ✓ src/ui/commands/extensionsCommand.test.ts (12 tests) 50ms ✓ src/ui/commands/forkCommand.test.ts (15 tests) 58ms ✓ src/ui/hooks/useShellHistory.test.ts (9 tests) 841ms ✓ src/commands/review/lib/diff-plan.integration.test.ts (8 tests) 403ms ✓ src/ui/components/RewindSelector.test.tsx (10 tests) 1678ms ✓ src/serve/env-snapshot.test.ts (15 tests) 640ms ✓ src/serve/routes/workspace-qualified-voice.test.ts (7 tests) 152ms 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 (20 tests) 35ms ✓ src/acp-integration/session/daemon-todo-stop-guard.test.ts (18 tests) 29ms ✓ src/serve/fs/contract.test.ts (10 tests) 60ms ✓ src/services/FileCommandLoader-extension.test.ts (6 tests) 159ms ✓ src/ui/components/hooks/HooksManagementDialog.test.tsx (8 tests) 2584ms ✓ HooksManagementDialog > should navigate from a matcher hook to matcher detail 548ms ✓ HooksManagementDialog > should navigate from matcher detail to config detail 530ms ✓ HooksManagementDialog > should navigate directly from a non-matcher hook to config detail 936ms ✓ src/serve/workspace-git-state.test.ts (9 tests) 230ms ✓ src/config/extension-refresh-state.test.ts (10 tests) 30ms ✓ src/services/voice-service.test.ts (11 tests) 41ms ✓ src/serve/routes/session-telemetry.test.ts (9 tests) 127ms ✓ src/ui/themes/color-utils.test.ts (23 tests) 12ms ✓ src/ui/components/hooks/HookConfigDetailStep.test.tsx (17 tests) 1340ms ✓ src/serve/channel-workspace-grouping.test.ts (16 tests) 22ms ✓ src/utils/housekeeping/cleanup.test.ts (15 tests) 57ms ✓ src/ui/hooks/useMessageQueue.test.ts (19 tests) 81ms ✓ src/utils/osc.test.ts (30 tests) 11ms ✓ src/serve/cdp-tunnel/cdp-ws.test.ts (10 tests) 223ms ✓ src/serve/process-env-guard.test.ts (3 tests) 3671ms ✓ serve process.env guard > allows only documented process-scoped process.env expressions 3617ms ✓ src/ui/hooks/extension-mention-ref.test.ts (24 tests) 24ms ✓ src/ui/components/Help.test.tsx (8 tests) 907ms ✓ src/ui/themes/theme-manager.test.ts (19 tests) 21ms ✓ src/commands/update.test.ts (10 tests) 16ms ✓ src/ui/voice/voice-stream-session.test.ts (12 tests) 25ms ✓ src/serve/routes/workspace-channel-observed-contacts.test.ts (6 tests) 90ms ✓ src/ui/commands/skillsCommand.test.ts (10 tests) 14ms ✓ src/ui/hooks/useKeypress.test.ts (15 tests) 76ms ✓ src/ui/components/hooks/HookDetailStep.test.tsx (14 tests) 546ms ✓ src/services/command-migration-tool.test.ts (14 tests) 48ms ✓ src/config/migration/versions/v3-to-v4.test.ts (32 tests) 15ms ✓ src/services/skill-args-file.test.ts (13 tests) 15ms ✓ src/utils/envVarResolver.test.ts (16 tests) 9ms ✓ src/utils/writeWithBackup.test.ts (13 tests) 10ms ✓ src/commands/review/lib/roster.test.ts (24 tests) 12ms ✓ src/ui/commands/insightCommand.test.ts (5 tests) 18ms ✓ src/utils/runBudget.test.ts (42 tests) 20ms ✓ src/ui/components/extensions/views/ExtensionActionsView.test.tsx (6 tests) 372ms ✓ src/ui/commands/ideCommand.test.ts (8 tests) 22ms using macos seatbelt (profile: permissive-open) ... using macos seatbelt (profile: permissive-open) ... ✓ src/services/prompt-processors/injectionParser.test.ts (21 tests) 9ms ✓ src/ui/hooks/useInputHistoryStore.test.ts (14 tests) 54ms ✓ src/ui/components/ShellConfirmationDialog.test.tsx (12 tests) 498ms ✓ src/utils/sandbox.test.ts (24 tests) 13ms ✓ src/serve/routes/goals.test.ts (10 tests) 50ms ✓ src/commands/mcp/list.test.ts (7 tests) 13ms ✓ src/acp-integration/session/emitters/PlanEmitter.test.ts (19 tests) 12ms ✓ src/ui/commands/compressCommand.test.ts (10 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) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) ✓ src/ui/components/background-view/agent-forest.test.ts (20 tests) 10ms ✓ src/ui/voice/native-audio-recorder.test.ts (12 tests) 16ms ✓ src/serve/routes/workspace-file-write.test.ts (10 tests) 249ms ✓ src/ui/hooks/useInputHistory.test.ts (11 tests) 41ms ✓ src/ui/hooks/useMcpApproval.test.ts (11 tests) 59ms ✓ src/ui/hooks/useSessionPicker.test.tsx (8 tests) 41ms ✓ src/commands/review/lib/report.test.ts (13 tests) 22ms ✓ src/ui/components/hooks/HandlerListBody.test.tsx (11 tests) 471ms ✓ src/ui/hooks/useEditorSettings.test.ts (10 tests) 48ms ✓ src/ui/utils/export/normalize.test.ts (6 tests) 8ms ✓ src/ui/utils/asciiCharts.test.ts (21 tests) 32ms ✓ src/utils/gitUtils.test.ts (33 tests) 26ms ✓ src/config/migration/versions/v1-to-v2.test.ts (20 tests) 10ms ✓ src/services/prompt-processors/atFileProcessor.test.ts (11 tests) 21ms ✓ src/ui/components/StatusLineDialog.test.tsx (5 tests) 708ms ✓ StatusLineDialog > keeps preset priority order after an item is toggled off and on 317ms ✓ src/ui/hooks/useReverseSearchCompletion.test.tsx (10 tests) 38ms ✓ src/serve/fs/policy.test.ts (18 tests) 39ms Wrote resolved anchors to /tmp/resolve-anchors-4DBACg/out.json Anchors: 2/3 resolved, 1 corrected, 1 UNMATCHED corrected src/pay.ts: agent said line 99, the snippet is at 12 UNMATCHED c (src/ghost.ts): file is not in the diff (1 file(s) changed) Wrote resolved anchors to /tmp/resolve-anchors-F8GO0n/nested/deeper/anchors.json Anchors: 0/0 resolved Wrote resolved anchors to /tmp/resolve-anchors-UjCeo7/out.json Anchors: 2/2 resolved ✓ src/ui/utils/computeStats.test.ts (12 tests) 5ms ✓ src/commands/review/resolve-anchors.test.ts (11 tests) 11ms ✓ src/ui/hooks/useCompletion.test.ts (13 tests) 35ms ✓ src/ui/hooks/useExportCompletion.test.ts (20 tests) 39ms ✓ src/ui/contexts/SessionContext.test.tsx (6 tests) 173ms ✓ src/ui/commands/voice-command.test.ts (11 tests) 17ms ✓ src/serve/daemon-status-provider.test.ts (4 tests) 478ms ✓ src/ui/components/PluginChoicePrompt.test.tsx (13 tests) 497ms ✓ src/ui/utils/formatters.test.ts (33 tests) 11ms ✓ src/ui/commands/lspCommand.test.ts (9 tests) 18ms ✓ src/ui/commands/setupGithubCommand.test.ts (9 tests) 35ms 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-8PUvCX/wt' qwen serve: GET /usage/dashboard failed: boom ✓ src/remoteInput/RemoteInputWatcher.test.ts (10 tests) 664ms ✓ src/serve/routes/usage-stats.test.ts (7 tests) 97ms ✓ src/commands/review/lib/git.integration.test.ts (8 tests) 385ms ✓ src/ui/commands/compressFastCommand.test.ts (9 tests) 18ms ✓ src/ui/components/SettingsCorruptedDialog.test.tsx (8 tests) 1334ms ✓ src/ui/hooks/useTurnDiffs.test.ts (7 tests) 307ms ✓ src/serve/permission-audit.test.ts (10 tests) 8ms ✓ src/ui/hooks/useMouseEvents.test.tsx (7 tests) 96ms ✓ src/ui/commands/bugCommand.test.ts (4 tests) 60ms ✓ src/ui/components/hooks/matcherGrouping.test.ts (13 tests) 21ms ✓ src/ui/hooks/useIdeTrustListener.test.ts (5 tests) 39ms ✓ src/ui/hooks/useMemoryMonitor.test.ts (8 tests) 53ms ✓ src/ui/components/background-view/BackgroundTasksPill.test.tsx (19 tests) 7ms ✓ src/ui/components/Header.test.tsx (19 tests) 886ms ✓ src/ui/hooks/useTrustModify.test.ts (8 tests) 50ms ✓ src/ui/hooks/useTimer.test.ts (13 tests) 60ms ✓ src/commands/extensions/sources.test.ts (11 tests) 41ms ✓ src/commands/extensions/new.test.ts (9 tests) 43ms ✓ src/ui/layouts/DefaultAppLayout.test.tsx (8 tests) 324ms ✓ src/commands/channel/observed-contact-store.test.ts (11 tests) 13ms ✓ src/ui/commands/hooksCommand.test.ts (8 tests) 20ms ✓ src/ui/components/messages/ConversationMessages.test.tsx (17 tests) 963ms ✓ src/ui/voice/voice-recorder.test.ts (8 tests) 14ms qwen serve: Voice runtime disposal timed out with 1 active lease(s). ✓ src/serve/voice/workspace-voice-coordinator.test.ts (8 tests) 18ms ✓ src/ui/hooks/useSlashCompletion.integration.test.ts (4 tests) 263ms ✓ src/serve/fs/errors.test.ts (20 tests) 8ms ✓ src/core/initializer.test.ts (14 tests) 23ms Wrote diff plan to /tmp/plan-diff-I2GYE1/plan.json Wrote diff plan to /tmp/plan-diff-EXx2Xy/plan.json Wrote diff plan to /tmp/plan-diff-xKo2qN/plan.json Wrote diff plan to /tmp/plan-diff-go3gxC/plan.json Wrote diff plan to /tmp/plan-diff-w0Q8P4/plan.json Wrote diff plan to /tmp/plan-diff-cymp6j/plan.json Diff: 1204 lines (1204 source, 0 test, 0 docs, 0 generated) -> 4 review chunk(s) Diff: 64 lines (64 source, 0 test, 0 docs, 0 generated) -> 1 review chunk(s) Diff: 2004 lines (2004 source, 0 test, 0 docs, 0 generated) -> 6 review chunk(s) Diff: 116 lines (14 source, 24 test, 34 docs, 44 generated) -> 1 review chunk(s) Diff: 54 lines (54 source, 0 test, 0 docs, 0 generated) -> 1 review chunk(s) 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) ✓ src/commands/review/plan-diff.test.ts (9 tests) 19ms ✓ src/utils/windowTitle.test.ts (21 tests) 19ms ✓ src/ui/selection/use-text-selection.test.tsx (9 tests) 60ms ✓ src/ui/utils/historyUtils.test.ts (13 tests) 8ms ✓ src/ui/components/shared/RowMouseController.test.tsx (8 tests) 69ms ✓ src/ui/components/BaseTextInput.test.tsx (12 tests) 497ms ✓ src/ui/components/agent-view/AgentTabBar.test.tsx (7 tests) 414ms ✓ src/config/migration/versions/v5-to-v4.test.ts (17 tests) 9ms ✓ src/ui/utils/mouse.test.ts (17 tests) 15ms ✓ src/nonInteractive/io/StreamJsonInputReader.test.ts (11 tests) 15ms ✓ src/ui/components/messages/CompressionMessage.test.tsx (8 tests) 698ms ✓ src/i18n/mustTranslateKeys.test.ts (20 tests) 862ms ✓ src/ui/hooks/useFolderTrust.test.ts (9 tests) 75ms ✓ src/ui/components/hooks/HookMatcherDetailStep.test.tsx (8 tests) 479ms qwen serve: /acp SSE onClose threw: onClose boom qwen serve: /acp SSE write failed, closing stream: EPIPE ✓ src/serve/acp-http/sse-stream.test.ts (11 tests) 40ms ✓ src/utils/terminalSequence.test.ts (26 tests) 24ms ✓ src/ui/components/messages/DiffStatsDisplay.test.tsx (8 tests) 469ms ✓ src/ui/hooks/usePhraseCycler.test.ts (9 tests) 72ms ✓ src/ui/utils/highlight.test.ts (18 tests) 19ms ✓ src/services/commandUtils.test.ts (14 tests) 10ms ✓ src/ui/utils/synchronizedOutput.test.ts (17 tests) 19ms qwen serve: /acp WS error: test error qwen serve: /acp WS write failed: write failed ✓ src/serve/acp-http/ws-stream.test.ts (15 tests) 21ms ✓ src/ui/components/background-view/liveAgentPanelVisibility.test.ts (15 tests) 15ms ✓ src/config/loadedSettingsAdapter.test.ts (5 tests) 25ms ✓ src/ui/components/mcp/utils.test.ts (16 tests) 16ms ✓ src/config/environment.test.ts (4 tests) 11ms ✓ src/ui/commands/mcpCommand.test.ts (10 tests) 45ms ✓ src/commands/extensions/utils.test.ts (11 tests) 12ms ✓ src/ui/components/shared/TextInputMouseController.test.tsx (7 tests) 48ms ✓ src/ui/components/arena/ArenaSelectDialog.test.tsx (5 tests) 652ms ✓ src/commands/review/fetch-pr.test.ts (12 tests) 11ms ✓ src/ui/components/TrustDialog.test.tsx (6 tests) 709ms ✓ src/commands/review/lib/prompt-record.test.ts (10 tests) 7ms qwen serve: ignoring stale IDE workspace paths that do not overlap the selected workspace qwen serve: skipping IDE workspace root that failed to canonicalize: /tmp/qwen-fs-factory-aTIwn2/blocked (Error: blocked) ✓ src/ui/components/SessionPreview.test.tsx (7 tests) 814ms qwen serve: failed to canonicalize IDE workspace paths, using primary only: Error: blocked qwen serve: dropping nested IDE workspace roots (parent folders already cover children) qwen serve: dropping nested IDE workspace roots (parent folders already cover children) ✓ src/services/saved-workflow-loader.test.ts (11 tests) 11ms ✓ src/serve/server/fs-factory.test.ts (7 tests) 37ms ✓ src/ui/components/DiffDialog.test.tsx (2 tests) 162ms ✓ src/ui/utils/export/collect.test.ts (4 tests) 15ms qwen serve: runtime startup failed after listener was ready: runtime boom ✓ src/serve/model-providers-edit.test.ts (12 tests) 7ms ✓ src/serve/fast-path-open.test.ts (2 tests) 243ms ✓ src/utils/deepMerge.test.ts (13 tests) 7ms ✓ src/ui/commands/approvalModeCommand.test.ts (13 tests) 40ms ✓ src/commands/review/lib/transcripts.test.ts (11 tests) 15ms ✓ src/ui/hooks/useGitBranchName.test.ts (8 tests) 45ms ✓ src/serve/cdp-tunnel/cdp-browser-emulator.test.ts (8 tests) 21ms ✓ src/ui/models/availableModels.test.ts (14 tests) 14ms qwen serve: bridge error (GET /workspace/git): Error: git failed at Object. (/startdir/src/qwen-code/packages/cli/src/serve/routes/workspace-git.test.ts:72:27) at Object.mockCall (file:///startdir/src/qwen-code/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:33:35 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. (/startdir/src/qwen-code/packages/cli/src/serve/routes/workspace-git.test.ts:158:27) at Object.mockCall (file:///startdir/src/qwen-code/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:66:31 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 (6 tests) 68ms ✓ src/ui/components/shared/RadioButtonSelect.test.tsx (5 tests) 252ms ✓ src/ui/components/Tips.test.ts (9 tests) 9ms ✓ src/ui/commands/initCommand.test.ts (5 tests) 15ms ✓ src/ui/components/AnsiOutput.test.tsx (8 tests) 532ms ✓ src/commands/channel/reload.test.ts (6 tests) 12ms ✓ src/serve/acp-http/client-mcp-sender-registry.test.ts (7 tests) 11ms ✓ src/ui/components/background-view/liveAgentPanelLayout.measurement.test.tsx (2 tests) 457ms ✓ src/config/extension-runtime-reload.test.ts (6 tests) 11ms ✓ src/ui/utils/lowlightLoader.test.ts (5 tests) 64ms ✓ src/commands/extensions/disable.test.ts (10 tests) 117ms ✓ src/ui/components/hooks/HooksListStep.test.tsx (9 tests) 497ms ✓ src/serve/extension-operation-scheduler.test.ts (8 tests) 190ms ✓ src/ui/components/SuggestionsDisplay.test.tsx (6 tests) 342ms ✓ src/ui/voice/sox-recorder.test.ts (5 tests) 12ms ✓ src/utils/costCalculator.test.ts (14 tests) 6ms ✓ src/config/migration/scheduler.test.ts (7 tests) 18ms ✓ src/ui/components/AppHeader.test.tsx (6 tests) 454ms ✓ src/commands/channel/set.test.ts (6 tests) 41ms ✓ src/ui/components/ConsentPrompt.test.tsx (9 tests) 441ms ✓ src/config/mcpJson.test.ts (11 tests) 17ms ✓ src/ui/utils/input-mouse.test.ts (9 tests) 26ms ✓ src/commands/review/capture-local.test.ts (6 tests) 33ms ✓ src/ui/voice/voice-refine.test.ts (11 tests) 18ms ✓ src/acp-integration/session/history-replay-page.test.ts (4 tests) 14ms ✓ src/config/modelProvidersScope.test.ts (11 tests) 10ms ✓ src/serve/routes/session-runtime.test.ts (7 tests) 8ms ✓ src/ui/commands/planCommand.test.ts (7 tests) 16ms ✓ src/ui/layouts/ScreenReaderAppLayout.test.tsx (7 tests) 339ms ✓ src/utils/acp-startup-profiler.test.ts (4 tests) 14ms ✓ src/ui/commands/resumeCommand.test.ts (9 tests) 24ms ✓ src/commands/extensions/enable.test.ts (10 tests) 38ms ✓ src/acp-integration/session/tool-call-preparation-tracker.test.ts (6 tests) 10ms ✓ src/serve/workspace-inputs.test.ts (9 tests) 35ms ✓ src/ui/components/background-view/workflow-save-overlay.test.tsx (7 tests) 1193ms ✓ src/utils/cleanup.test.ts (8 tests) 165ms ✓ src/ui/components/mcp/steps/ResourceListStep.test.tsx (5 tests) 727ms ✓ ResourceListStep > windows a long list with correct count + arrow indicators 489ms ✓ src/ui/utils/CodeColorizer.test.ts (18 tests) 18ms ✓ src/serve/total-session-admission.test.ts (5 tests) 13ms ✓ src/ui/components/StickyTodoList.test.tsx (6 tests) 540ms ✓ src/commands/mcp/approve.test.ts (7 tests) 68ms ✓ src/ui/voice/voice-keyterms-race.test.ts (3 tests) 4375ms ✓ src/ui/components/arena/ArenaCards.test.tsx (2 tests) 249ms ✓ src/services/FileCommandLoader-markdown.test.ts (4 tests) 88ms ✓ src/serve/scheduled-task-session-lifecycle.test.ts (6 tests) 57ms ✓ src/ui/utils/terminalRedrawOptimizer.test.ts (9 tests) 27ms ✓ src/ui/components/ToolStatsDisplay.test.tsx (5 tests) 376ms ✓ src/ui/utils/backgroundWorkUtils.test.ts (8 tests) 9ms ✓ src/ui/utils/MermaidDiagram.test.tsx (5 tests) 725ms ✓ src/ui/utils/sessionPickerUtils.test.ts (15 tests) 44ms ✓ src/ui/App.test.tsx (7 tests) 430ms ✓ src/commands/channel/status.test.ts (4 tests) 24ms ✓ src/utils/update-relaunch.test.ts (5 tests) 187ms ✓ src/services/markdown-command-parser.test.ts (13 tests) 17ms ✓ src/ui/components/StatsEfficiencyTab.test.tsx (4 tests) 410ms ✓ src/commands/channel/pairing.test.ts (4 tests) 18ms ✓ src/ui/utils/measure-element-position.test.tsx (6 tests) 214ms ✓ src/commands/review/lib/path-rules.test.ts (13 tests) 6ms ✓ src/nonInteractive/io/StreamJsonOutputAdapter.dualOutput.test.ts (5 tests) 21ms ✓ src/ui/commands/docsCommand.test.ts (5 tests) 29ms ✓ src/ui/components/ApprovalModeDialog.test.tsx (9 tests) 639ms ✓ src/ui/components/extensions/tabs/DiscoverTab.test.tsx (2 tests) 516ms ✓ src/serve/routes/workspace-skills.test.ts (5 tests) 62ms ✓ src/ui/components/views/McpStatus.test.tsx (12 tests) 944ms ✓ src/services/notificationService.test.ts (9 tests) 32ms ✓ src/services/tips/tipScheduler.test.ts (7 tests) 14ms ✓ src/ui/commands/effort-command.test.ts (7 tests) 28ms ✓ src/utils/chat-recording-failure.test.ts (5 tests) 16ms ✓ src/ui/components/SessionSummaryDisplay.test.tsx (3 tests) 491ms ✓ src/utils/housekeeping/throttledOnce.test.ts (7 tests) 96ms ✓ src/ui/hooks/useFocus.test.ts (6 tests) 85ms ✓ src/ui/commands/historyCommand.test.ts (5 tests) 15ms ✓ src/ui/utils/modelsBySource.test.ts (7 tests) 9ms ✓ src/config/normalizeDisabledTools.test.ts (16 tests) 6ms ✓ src/serve/workspace-skills-status.test.ts (5 tests) 91ms ✓ src/services/tips/tipHistory.test.ts (11 tests) 12ms ✓ src/ui/commands/importConfigCommand.test.ts (9 tests) 15ms ✓ src/commands/channel/stop.test.ts (4 tests) 10ms 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/acp-integration/session/permissionUtils.test.ts (6 tests) 11ms ✓ src/ui/commands/arenaCommand.agentComplete.test.ts (1 test) 14ms ✓ src/utils/readStdin.test.ts (5 tests) 372ms ✓ readStdin > should enforce the stdin limit by UTF-8 byte size 356ms ✓ src/ui/components/shared/EnumSelector.test.tsx (9 tests) 753ms ✓ src/ui/hooks/useAwaySummary.test.ts (2 tests) 99ms ✓ src/ui/components/mcp/steps/ServerListStep.test.tsx (5 tests) 479ms ✓ src/ui/components/FolderTrustDialog.test.tsx (9 tests) 727ms ✓ src/ui/commands/dreamCommand.test.ts (5 tests) 16ms ✓ src/ui/components/shared/TextInput.test.tsx (6 tests) 325ms ✓ src/ui/voice/voice-stream-retry.test.ts (6 tests) 20ms ✓ src/ui/components/TranscriptView.test.tsx (4 tests) 859ms 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/ui/components/views/ContextUsage.test.tsx (4 tests) 791ms ✓ ContextUsage — CompactionThresholds section (review #4168 R1.6) > renders the new three-tier section with all four threshold rows 337ms ✓ src/serve/server-default-bridge-wiring.test.ts (2 tests) 6781ms ✓ createServeApp default bridge wiring > wires the internally-created bridge lifecycle into the workspace registry 2494ms ✓ createServeApp default bridge wiring > wires total admission into the internally-created bridge 4286ms ✓ src/acp-integration/generation.test.ts (3 tests) 23ms ✓ src/ui/contexts/VimModeContext.test.tsx (4 tests) 365ms ✓ src/serve/server/device-flow-registry.test.ts (3 tests) 11ms 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) 29ms ✓ src/commands/channel/startup-failure-format.test.ts (4 tests) 37ms ✓ src/ui/hooks/useWelcomeBack.test.ts (4 tests) 248ms ✓ src/ui/hooks/useConfigInitMessage.test.ts (7 tests) 69ms ✓ src/ui/components/extensions/steps/ExtensionListStep.test.tsx (5 tests) 380ms ✓ src/ui/components/hooks/sourceLabels.test.ts (10 tests) 6ms ✓ src/ui/hooks/useSessionPicker.test.ts (4 tests) 53ms ✓ src/ui/components/shared/ToolElapsedTime.test.tsx (8 tests) 724ms ✓ src/commands/extensions/link.test.ts (5 tests) 51ms ✓ src/ui/components/mcp/steps/ResourceDetailStep.test.tsx (6 tests) 533ms ✓ src/commands/review/lib/gh.test.ts (8 tests) 26ms ✓ src/ui/components/hooks/HooksDisabledStep.test.tsx (8 tests) 507ms ✓ src/ui/selection/screen-buffer.test.tsx (5 tests) 557ms ✓ src/commands/review/lib/merge-base.test.ts (7 tests) 6ms ✓ src/ui/hooks/useResizeSettleRepaint.test.ts (6 tests) 67ms ✓ src/serve/sse-last-event-id.test.ts (14 tests) 9ms ✓ src/ui/hooks/useWorktreeSession.test.tsx (4 tests) 433ms ✓ src/ui/components/extensions/tabs/SourcesTab.test.tsx (1 test) 397ms ✓ SourcesTab > reports a committed install warning without treating it as failure 395ms ✓ src/ui/components/PrepareLabel.test.tsx (6 tests) 547ms ✓ src/acp-integration/extension-skills.test.ts (4 tests) 14ms ✓ src/ui/selection/selection-text.test.ts (9 tests) 25ms ✓ src/ui/app-container-controls-dep.test.ts (3 tests) 5ms ✓ src/ui/hooks/use-effort-command.test.ts (5 tests) 91ms ✓ src/ui/commands/reload-plugins-command.test.ts (3 tests) 12ms ✓ src/ui/components/SettingInputPrompt.test.tsx (6 tests) 502ms ✓ src/ui/components/agent-view/AgentComposer.test.tsx (1 test) 134ms ✓ src/acp-integration/session/rewrite/TurnBuffer.test.ts (12 tests) 13ms ✓ src/serve/channel-worker-startup-ipc.test.ts (3 tests) 8ms ✓ src/ui/commands/toolsCommand.test.ts (4 tests) 24ms ✓ src/ui/hooks/useTerminalNotification.test.ts (6 tests) 12ms ✓ src/utils/userPromptExpansionHook.test.ts (12 tests) 8ms ✓ src/ui/components/shared/BaseSelectionList.mouse.test.tsx (2 tests) 201ms ✓ src/ui/components/QueuedMessageDisplay.test.tsx (7 tests) 749ms ✓ src/ui/hooks/useAnimatedScrollbar.test.ts (6 tests) 66ms ✓ src/serve/server/telemetry-catalog.test.ts (1 test) 39ms ✓ src/ui/utils/list-mouse.test.ts (12 tests) 22ms ✓ src/services/insight/generators/TemplateRenderer.test.ts (3 tests) 4ms ✓ src/ui/utils/approvalModeDisplay.test.ts (5 tests) 114ms ✓ src/ui/commands/forgetCommand.test.ts (6 tests) 17ms ✓ src/ui/hooks/useModelCommand.test.ts (6 tests) 42ms ✓ src/ui/hooks/useFollowupSuggestions.test.tsx (2 tests) 30ms ✓ src/config/mcpServers.test.ts (6 tests) 6ms ✓ src/ui/themes/theme.test.ts (5 tests) 5ms ✓ src/ui/components/shared/ErrorBoundary.test.tsx (5 tests) 377ms ✓ src/commands/mcp/remove.test.ts (4 tests) 42ms ✓ src/serve/workspace-skills-mapping.test.ts (6 tests) 16ms ✓ src/ui/components/shared/DescriptiveRadioButtonSelect.test.tsx (4 tests) 257ms ✓ src/acp-integration/session/rewrite/config.test.ts (5 tests) 5ms ✓ src/ui/utils/mermaidVisualRenderer.test.ts (4 tests) 21ms ✓ src/commands/extensions.test.tsx (11 tests) 61ms ✓ src/commands/auth.test.ts (9 tests) 41ms No extensions installed. ✓ src/utils/headlessSafetyWarnings.test.ts (7 tests) 9ms ✓ src/commands/review/lib/git.test.ts (5 tests) 10ms ✓ src/serve/server/session-export.test.ts (2 tests) 7ms ✓ src/commands/extensions/list.test.ts (4 tests) 48ms ✓ src/ui/components/views/ExtensionsList.test.tsx (9 tests) 734ms ✓ src/serve/voice/resolve-voice-config.test.ts (1 test) 35ms ✓ src/ui/components/extensions/steps/ActionSelectionStep.test.tsx (5 tests) 530ms ✓ src/services/insight/generators/StaticInsightGenerator.test.ts (1 test) 33ms ✓ src/ui/components/ThemeDialog.test.tsx (2 tests) 804ms ✓ ThemeDialog Snapshots > should render correctly in theme selection mode 401ms ✓ ThemeDialog Snapshots > should render correctly in scope selector mode 402ms ✓ src/ui/utils/displayUtils.test.ts (8 tests) 5ms ✓ src/ui/components/extensions/tabs/InstalledTab.test.tsx (1 test) 296ms ✓ src/ui/utils/software-cursor.test.ts (10 tests) 23ms ✓ src/ui/components/DebugModeNotification.test.tsx (2 tests) 113ms ✓ src/services/tips/tipRegistry.test.ts (5 tests) 9ms ✓ src/ui/commands/branchCommand.test.ts (6 tests) 11ms ✓ src/commands/review/lib/paths.test.ts (6 tests) 10ms ✓ src/commands/review/load-rules.test.ts (6 tests) 4ms ✓ src/ui/components/TodoDisplay.test.tsx (6 tests) 478ms ✓ src/ui/components/ContextSummaryDisplay.test.tsx (4 tests) 276ms ✓ src/ui/components/EffortDialog.test.tsx (5 tests) 422ms ✓ src/commands/review.test.ts (5 tests) 7ms ✓ src/ui/commands/terminalSetupCommand.test.ts (5 tests) 22ms ✓ src/acp-integration/authPreflight.test.ts (3 tests) 5ms ✓ src/config/keyBindings.test.ts (4 tests) 12ms ✓ src/commands/sessions.test.ts (3 tests) 46ms ✓ src/acp-integration/session/tasksSnapshot.test.ts (4 tests) 11ms ✓ src/ui/hooks/mcpResourceRef.test.ts (7 tests) 5ms ✓ src/ui/selection/selection-span.test.ts (6 tests) 15ms ✓ src/serve/acp-http/json-rpc.test.ts (9 tests) 8ms ✓ src/ui/components/SkillStatsDisplay.test.tsx (2 tests) 239ms ✓ src/commands/sessions/common.test.ts (3 tests) 5ms ✓ src/config/path-freshness.test.ts (3 tests) 4ms ✓ src/ui/components/IdeTrustChangeDialog.test.tsx (6 tests) 689ms ✓ src/utils/startupWarnings.test.ts (4 tests) 11ms ✓ src/ui/commands/rememberCommand.test.ts (5 tests) 10ms ✓ src/ui/hooks/useBatchedScroll.test.ts (4 tests) 59ms ✓ src/ui/components/mcp/steps/ServerDetailStep.test.tsx (4 tests) 299ms ✓ src/utils/systemInfoFields.test.ts (2 tests) 24ms ✓ src/ui/components/SuggestionsDisplay.mouse.test.tsx (3 tests) 267ms ✓ src/commands/mcp.test.ts (3 tests) 25ms ✓ src/ui/commands/authCommand.test.ts (6 tests) 24ms ✓ src/ui/components/AlternateScreen.test.tsx (3 tests) 365ms ✓ src/core/auth.test.ts (3 tests) 9ms ✓ src/ui/selection/selection-coords.test.ts (6 tests) 7ms ✓ src/commands/extensions/uninstall.test.ts (2 tests) 39ms ✓ src/utils/userStartupWarnings.test.ts (3 tests) 40ms ✓ src/utils/stdioHelpers.test.ts (4 tests) 8ms ✓ src/serve/channel-worker-diagnostics.test.ts (3 tests) 11ms ✓ src/services/prompt-stash.test.ts (4 tests) 10ms ✓ src/ui/components/messages/BtwMessage.test.tsx (5 tests) 466ms ✓ src/core/theme.test.ts (5 tests) 13ms ✓ src/ui/components/WorktreeExitDialog.test.tsx (1 test) 286ms ✓ src/serve/channel-selection.test.ts (6 tests) 21ms ✓ src/ui/components/TranscriptView.errorFallback.test.tsx (1 test) 221ms ✓ src/ui/commands/learn-command.test.ts (4 tests) 15ms ✓ src/ui/components/AutoAcceptIndicator.test.tsx (6 tests) 630ms ✓ src/ui/components/subagents/manage/AgentSelectionStep.test.tsx (1 test) 174ms ✓ src/ui/components/GoalPill.test.tsx (2 tests) 211ms ✓ src/ui/utils/theme-background.test.ts (3 tests) 4ms ✓ src/test-utils/mockCommandContext.test.ts (3 tests) 7ms ✓ src/serve/acp-http/safe-ws-send.test.ts (4 tests) 7ms ✓ src/utils/processUtils.test.ts (4 tests) 15ms ✓ src/ui/commands/statuslineCommand.test.ts (4 tests) 9ms ✓ src/ui/utils/workflow-keyword.test.ts (11 tests) 12ms ✓ src/ui/voice/voice-model.test.ts (4 tests) 7ms ✓ src/utils/standalone-update-verify.test.ts (3 tests) 10ms ✓ src/ui/components/mcp/steps/ToolListStep.test.tsx (1 test) 254ms ✓ src/ui/utils/latexRenderer.test.ts (4 tests) 9ms ✓ src/serve/capabilities-docs-contract.test.ts (1 test) 18ms ✓ src/ui/hooks/useReactToolScheduler.test.tsx (2 tests) 11ms ✓ src/ui/contexts/AgentViewContext.test.tsx (2 tests) 145ms ✓ src/ui/commands/helpCommand.test.ts (3 tests) 13ms ✓ src/serve/server-workspace-service.test.ts (1 test) 70ms qwen serve: unhandled error: URIError: unmarked at /startdir/src/qwen-code/packages/cli/src/serve/server/error-handlers.test.ts:16: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 (2 tests) 74ms ✓ src/config/shared-env-keys.test.ts (2 tests) 4ms ✓ src/ui/hooks/useThemeCommand.test.ts (1 test) 23ms ✓ src/ui/components/messages/GoalStatusMessage.test.tsx (3 tests) 200ms ✓ src/ui/components/mcp/MCPHealthPill.test.tsx (6 tests) 4ms ✓ src/ui/utils/layoutUtils.test.ts (4 tests) 4ms ✓ src/commands/channel/channel-cwd.test.ts (4 tests) 5ms ✓ src/ui/components/views/ToolsList.test.tsx (3 tests) 205ms ✓ src/ui/components/LoopDetectionConfirmation.test.tsx (2 tests) 163ms ✓ src/ui/voice/voice-availability.test.ts (5 tests) 4ms ✓ src/ui/commands/quitCommand.test.ts (1 test) 17ms ✓ src/services/command-factory.test.ts (2 tests) 26ms ✓ src/services/prompt-processors/argumentProcessor.test.ts (2 tests) 11ms ✓ src/utils/resolvePath.test.ts (7 tests) 8ms ✓ src/ui/utils/tool-display-map.test.ts (2 tests) 5ms ✓ src/ui/components/approvalModeVisuals.test.ts (3 tests) 28ms ✓ src/ui/commands/themeCommand.test.ts (2 tests) 10ms ✓ src/acp-integration/runtimeOutputDirContext.test.ts (1 test) 9ms ✓ src/ui/components/GeminiRespondingSpinner.test.tsx (2 tests) 130ms ✓ src/ui/commands/permissionsCommand.test.ts (3 tests) 11ms ✓ src/ui/components/messages/StatusMessages.test.tsx (1 test) 113ms ✓ src/ui/components/mcp/MCPManagementDialog.test.tsx (1 test) 96ms ✓ src/ui/commands/settingsCommand.test.ts (2 tests) 8ms ✓ src/ui/commands/trustCommand.test.ts (3 tests) 11ms ✓ src/ui/hooks/useDialogClose.test.ts (1 test) 23ms ✓ src/utils/midTurnUserMessage.test.ts (3 tests) 5ms ✓ src/ui/commands/deleteCommand.test.ts (2 tests) 14ms ✓ src/ui/commands/editorCommand.test.ts (2 tests) 5ms ✓ src/ui/components/VoiceIndicator.test.tsx (2 tests) 148ms ✓ src/ui/commands/memoryCommand.test.ts (2 tests) 5ms ✓ src/acp-integration/authMethods.test.ts (2 tests) 4ms ✓ src/ui/components/ExternalAuthProgress.test.tsx (1 test) 94ms ✓ src/ui/components/CronPill.test.tsx (2 tests) 197ms 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 ✓ src/serve/voice/voice-ws.test.ts (22 tests) 40ms Test Files 661 passed (661) Tests 13752 passed | 3 skipped (13755) Start at 09:59:17 Duration 261.91s (transform 147.78s, setup 111.29s, collect 3145.74s, tests 527.29s, environment 363.24s, prepare 98.75s) 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.19.12 test RUN v3.2.4 /startdir/src/qwen-code/packages/core Coverage enabled with v8 ✓ src/services/shellExecutionService.test.ts (130 tests) 778ms ✓ src/utils/fileUtils.test.ts (159 tests) 1070ms ✓ src/services/sessionService.test.ts (118 tests) 744ms ✓ src/telemetry/session-tracing.test.ts (126 tests) 80ms ✓ src/core/loggingContentGenerator/loggingContentGenerator.test.ts (59 tests) 61ms ✓ src/models/modelsConfig.test.ts (78 tests) 72ms ✓ src/core/openaiContentGenerator/pipeline.test.ts (104 tests) 269ms ✓ src/utils/schemaValidator.test.ts (132 tests) 574ms ✓ src/services/loopDetectionService.test.ts (83 tests) 358ms ✓ src/core/anthropicContentGenerator/converter.test.ts (66 tests) 35ms ✓ src/services/cronScheduler.test.ts (123 tests) 5413ms ✓ CronScheduler > durable enabled flag > drops a live job when the file flips it to disabled on reload 318ms ✓ CronScheduler > durable ownership > reloads durable tasks when the file changes on disk 457ms ✓ src/lsp/NativeLspService.test.ts (33 tests) 369ms +----------------- Qwen OAuth Device Authorization ------------------+ | | | Please visit the following URL in your browser to authorize: | | | | https://chat.qwen.ai/device?code=TEST123 | | | | Waiting for authorization to complete... | | | +--------------------------------------------------------------------+ +----------------- Qwen OAuth Device Authorization ------------------+ | | | Please visit the following URL in your browser to authorize: | | | | https://chat.qwen.ai/device?code=TEST123 | | | | Waiting for authorization to complete... | | | +--------------------------------------------------------------------+ +----------------- Qwen OAuth Device Authorization ------------------+ | | | Please visit the following URL in your browser to authorize: | | | | https://chat.qwen.ai/device?code=TEST123 | | | | Waiting for authorization to complete... | | | +--------------------------------------------------------------------+ +----------------- Qwen OAuth Device Authorization ------------------+ | | | Please visit the following URL in your browser to authorize: | | | | https://chat.qwen.ai/device?code=TEST123 | | | | Waiting for authorization to complete... | | | +--------------------------------------------------------------------+ +----------------- Qwen OAuth Device Authorization ------------------+ | | | Please visit the following URL in your browser to authorize: | | | | https://chat.qwen.ai/device?code=TEST123 | | | | Waiting for authorization to complete... | | | +--------------------------------------------------------------------+ ✓ src/qwen/qwenOAuth2.test.ts (86 tests) 2120ms ✓ getQwenOAuthClient - Enhanced Error Scenarios > should handle different authentication failure reasons - timeout 2043ms ✓ src/hooks/hookEventHandler.test.ts (132 tests) 172ms ✓ src/core/openaiContentGenerator/converter.test.ts (196 tests) 122ms ✓ src/permissions/permission-manager.test.ts (294 tests) 337ms ✓ src/agents/runtime/workflow-orchestrator.test.ts (118 tests) 615ms ✓ src/agents/background-tasks.test.ts (110 tests) 55ms Preparing worktree (new branch 'review-pr-1') ✓ src/services/chatCompressionService.test.ts (90 tests) 247ms 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) Preparing worktree (new branch 'review-pr-1') 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/subagents/subagent-manager.test.ts (121 tests) 762ms ✓ SubagentManager > Runtime Configuration Methods > createAgentHeadless model override > should create a new ContentGenerator for bare model IDs 396ms ✓ src/agents/background-agent-resume.test.ts (37 tests) 700ms Preparing worktree (new branch 'review-pr-1') ✓ src/tools/mcp-client-manager.test.ts (117 tests) 1073ms Preparing worktree (detached HEAD e89704b) Preparing worktree (new branch 'review-pr-1') ✓ src/config/config.test.ts (401 tests) 1979ms ✓ Server Config (config.ts) > MCP hot-reload (sub-task 3) > setMcpServers REPLACES (not merges) and works post-init 318ms Preparing worktree (new branch 'review-pr-1') ✓ src/services/memoryPressureMonitor.test.ts (72 tests) 173ms Preparing worktree (new branch 'review-pr-1') ✓ src/tools/skill.test.ts (78 tests) 197ms ✓ src/core/coreToolScheduler.test.ts (279 tests) 2062ms ✓ src/tools/read-file.test.ts (85 tests) 520ms ✓ src/tools/mcp-client.test.ts (102 tests) 2256ms ✓ mcp-client > listMcpPrompts (F2 pure helper) > exhausts retries on persistent transient errors and returns [] 616ms ✓ mcp-client > listMcpResources > exhausts retries on persistent transient errors and returns [] 606ms ✓ src/tools/agent/agent.test.ts (167 tests) 2803ms ✓ AgentTool > AgentToolInvocation > passes custom ignore files into worktree isolation file service 388ms ✓ src/utils/gitDiff.test.ts (101 tests) 5113ms ✓ getGitWorkingTreeStatus > reports ahead/behind against an upstream 368ms ✓ src/utils/atomicFileWrite.test.ts (81 tests) 230ms ✓ src/tools/ripGrep.test.ts (76 tests) 728ms ✓ src/ide/ide-client.test.ts (65 tests) 301ms ✓ src/utils/retry.test.ts (84 tests) 122ms ✓ src/services/postCompactAttachments.test.ts (67 tests) 116ms ✓ src/hooks/hookSystem.test.ts (92 tests) 243ms ✓ src/extension/extension-store.test.ts (55 tests) 1816ms ✓ ExtensionStore > serializes mutations from two Node processes sharing QWEN_HOME 625ms ✓ src/extension/github.test.ts (86 tests) 5283ms ✓ git extension helpers > extractFile > should cancel while scanning a tar archive 1005ms ✓ git extension helpers > extractFile > should cancel while extracting a tar archive 3246ms ✓ git extension helpers > extractFile > should cancel while extracting a zip archive 404ms ✓ src/tools/shell.test.ts (278 tests) 5683ms ✓ src/lsp/LspServerManager.test.ts (46 tests) 338ms ✓ src/services/microcompaction/microcompact.test.ts (64 tests) 34ms ✓ src/telemetry/sdk.test.ts (59 tests) 748ms ✓ src/agents/runtime/agent-headless.test.ts (46 tests) 6824ms ✓ subagent.ts > AgentHeadless > create (Tool Validation) > should create a AgentHeadless successfully with minimal config 846ms ✓ subagent.ts > AgentHeadless > execute - Initialization and Prompting > should validate that systemPrompt and renderedSystemPrompt are mutually exclusive 302ms ✓ subagent.ts > AgentHeadless > execute - Execution and Tool Use > should wait for external notification after a no-tool response 328ms ✓ subagent.ts > AgentHeadless > execute - Execution and Tool Use > should execute external tools and provide the response to the model 341ms ✓ subagent.ts > AgentHeadless > execute - Execution and Tool Use > should ignore duplicate provider tool-call ids across rounds 325ms ✓ subagent.ts > AgentHeadless > execute - Execution and Tool Use > should report unauthorized tool names before duplicate provider ids 317ms ✓ src/core/openaiContentGenerator/provider/dashscope.test.ts (78 tests) 64ms ✓ src/tools/mcp-transport-pool.test.ts (34 tests) 472ms ✓ src/skills/skill-manager.test.ts (74 tests) 156ms ✓ src/core/baseLlmClient.test.ts (54 tests) 78ms ✓ src/mcp/oauth-provider.test.ts (27 tests) 327ms ✓ src/core/anthropicContentGenerator/anthropicContentGenerator.test.ts (107 tests) 17264ms ✓ AnthropicContentGenerator > uses claude-cli identity (User-Agent + x-app + Bearer auth) for non-Anthropic baseURLs 993ms ✓ AnthropicContentGenerator > per-request anthropic-beta header > honors customHeaders[anthropic-beta] under mixed-case keys (Anthropic-Beta / ANTHROPIC-BETA) 322ms ✓ AnthropicContentGenerator > generateContent > adaptive thinking (Claude 4.6+ models) > honors explicit reasoning.budget_tokens on models that still accept manual thinking (e.g. claude-opus-4-6) 524ms ✓ AnthropicContentGenerator > generateContent > adaptive thinking (Claude 4.6+ models) > drops manual budget_tokens for adaptive-only models that reject it (e.g. claude-opus-4-7) 371ms ✓ AnthropicContentGenerator > generateContent > omits thinking when request.config.thinkingConfig.includeThoughts is false 325ms ✓ AnthropicContentGenerator > generateContent > output token limits > uses model default when max_tokens is not explicitly configured 300ms ✓ src/telemetry/loggers.test.ts (63 tests) 161ms ✓ src/memory/manager.test.ts (46 tests) 243ms ✓ src/utils/filesearch/crawler.test.ts (48 tests) 1977ms ✓ src/extension/extensionManager.test.ts (102 tests) 8757ms ✓ extension tests > installExtension > should install an extension from a local archive 398ms ✓ extension tests > enableExtension / disableExtension > emits mutation lifecycle events for V2 activation changes 319ms ✓ extension tests > enableExtension / disableExtension > clears only child workspace overrides during a legacy user mutation 557ms ✓ extension tests > updateExtension > rejects a stale direct update after the artifact changes 560ms ✓ extension tests > updateExtension > marks a direct update reload failure as already committed 367ms ✓ src/tools/edit.test.ts (85 tests) 1112ms ✓ EditTool > prior-read enforcement > allows editing a large text file after a ranged read 530ms ✓ src/services/fileHistoryService.test.ts (51 tests) 330ms ✓ src/tools/mcp-tool.test.ts (61 tests) 322ms ✓ src/tools/web-fetch.test.ts (79 tests) 633ms ✓ src/core/toolHookTriggers.test.ts (62 tests) 37ms ✓ src/skills/bundled/loop/loop-task-file.test.ts (38 tests) 173ms ✓ src/hooks/hookAggregator.test.ts (51 tests) 35ms ✓ src/utils/memoryDiscovery.test.ts (38 tests) 268ms ✓ src/skills/bundled/loop/loop-tick-resolver.test.ts (38 tests) 379ms ✓ src/tools/lsp.test.ts (73 tests) 643ms ✓ src/extension/claude-converter.test.ts (51 tests) 111ms ✓ src/tools/write-file.test.ts (56 tests) 330ms ✓ src/core/openaiContentGenerator/streamingToolCallParser.test.ts (85 tests) 81ms ✓ src/qwen/qwenContentGenerator.test.ts (44 tests) 242ms ✓ src/telemetry/log-to-span-processor.test.ts (51 tests) 85ms ✓ src/models/modelRegistry.test.ts (75 tests) 49ms ✓ src/services/visionBridge/vision-bridge-service.test.ts (61 tests) 147ms ✓ src/core/logger.test.ts (52 tests) 216ms ✓ src/utils/memoryImportProcessor.test.ts (31 tests) 61ms ✓ src/telemetry/uiTelemetry.test.ts (42 tests) 33ms ✓ src/extension/extensionSettings.test.ts (34 tests) 333ms ✓ src/utils/paths.test.ts (135 tests | 1 skipped) 34ms ✓ src/utils/editor.test.ts (152 tests) 100ms ✓ src/tools/monitor.test.ts (80 tests) 210ms ✓ src/utils/environmentContext.test.ts (63 tests) 197ms ✓ src/hooks/hookRegistry.test.ts (39 tests) 50ms ✓ src/memory/channel-memory.test.ts (46 tests) 670ms ✓ channel memory > rejects additions beyond request, entry, and text limits 363ms ✓ src/services/chatRecordingService.test.ts (45 tests) 138ms ✓ src/agents/team/tasks.test.ts (53 tests) 379ms ✓ src/core/prompts.test.ts (72 tests) 60ms ✓ src/utils/shell-utils.test.ts (147 tests) 59ms ✓ src/models/modelConfigResolver.test.ts (55 tests) 23ms ✓ src/services/session-artifact-persistence.test.ts (29 tests) 128ms ✓ src/services/fileReadCache.test.ts (53 tests) 103ms ✓ src/qwen/sharedTokenManager.test.ts (32 tests) 326ms ✓ src/skills/skill-load.test.ts (68 tests) 34ms ✓ src/core/turn.test.ts (35 tests) 57ms ✓ src/permissions/autoMode.test.ts (88 tests) 124ms ✓ src/tools/todoWrite.test.ts (30 tests) 138ms ✓ src/services/commitAttribution.test.ts (58 tests) 49ms ✓ src/services/session-transcript-reader.test.ts (44 tests) 238ms ✓ src/utils/pdf.test.ts (50 tests) 57ms ✓ src/utils/sessionStorageUtils.test.ts (53 tests) 20ms [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/services/backgroundShellRegistry.test.ts (45 tests) 50ms ✓ src/tools/tool-search.test.ts (53 tests) 145ms ✓ src/tools/tool-registry.test.ts (42 tests) 223ms ✓ src/services/usageHistoryService.test.ts (26 tests) 48ms ✓ src/agents/backends/InProcessBackend.test.ts (44 tests) 203ms ✓ src/hooks/hookPlanner.test.ts (71 tests) 35ms ✓ src/extension/npm.test.ts (51 tests) 222ms ✓ src/utils/shellAstParser.test.ts (542 tests) 846ms ✓ classifyShellCommandSafety > classifies adversarial rule inputs in bounded time 441ms ✓ src/utils/readManyFiles.test.ts (30 tests) 113ms ✓ src/telemetry/qwen-logger/qwen-logger.test.ts (37 tests) 69ms ✓ src/utils/runtimeFetchOptions.test.ts (65 tests) 43ms ✓ src/permissions/shell-semantics.test.ts (103 tests) 46ms ✓ src/services/monitorRegistry.test.ts (56 tests) 81ms ✓ src/goals/goalHook.test.ts (35 tests) 51ms ✓ src/core/geminiChat.test.ts (237 tests) 18564ms ✓ GeminiChat > should correctly retry and append to an existing history mid-conversation 2070ms ✓ GeminiChat > should retry if the model returns a completely empty stream (no chunks) 2051ms ✓ GeminiChat > should discard valid partial content from a failed attempt upon retry 2050ms ✓ GeminiChat > discards a completed protocol-tagged response and retries before persistence 2046ms ✓ GeminiChat > output token recovery > should pop dangling recovery message and emit STOP chunk when recovery throws 2082ms ✓ src/utils/openaiLogger.test.ts (40 tests) 225ms ✓ src/hooks/hookRunner.test.ts (36 tests) 190ms ✓ src/lsp/NativeLspService.integration.test.ts (30 tests) 42ms ✓ src/tools/workflow/workflow.test.ts (34 tests) 361ms ✓ src/config/storage.test.ts (63 tests) 47ms ✓ src/tools/notebook-edit.test.ts (31 tests) 315ms ✓ src/tools/glob.test.ts (60 tests) 5762ms ✓ GlobTool > ignore file handling > should respect .agentignore and .aiignore files by default 310ms ✓ src/utils/truncation.test.ts (28 tests) 42ms ✓ src/tools/grep.test.ts (52 tests) 3315ms ✓ GrepTool > Result limiting > should respect custom limit parameter 646ms ✓ GrepTool > Result limiting > should not show truncation warning when all results fit 638ms ✓ src/telemetry/detailed-span-attributes.test.ts (46 tests) 33ms ✓ src/utils/forkedAgent.cache.test.ts (18 tests) 17ms ✓ src/utils/filesearch/fileSearch.test.ts (29 tests) 1112ms ✓ src/agents/runtime/agent-core.test.ts (25 tests) 33ms ✓ src/providers/__tests__/install.test.ts (22 tests) 64ms ✓ src/services/gitWorktreeService.test.ts (27 tests) 28ms ✓ src/services/fileSystemService.test.ts (46 tests) 72ms ✓ src/memory/extract.test.ts (16 tests) 148ms ✓ src/services/sessionService.rename.test.ts (18 tests) 40ms ✓ src/services/compactionInputSlimming.test.ts (37 tests) 13ms ✓ src/agents/team/test-utils/coordination-harness.test.ts (28 tests) 910ms ✓ TeamCoordinationHarness > leader inbox > concurrent reads do not double-deliver the same messages 325ms ✓ src/utils/memoryDiagnostics.test.ts (12 tests) 136ms ✓ src/utils/rulesDiscovery.test.ts (36 tests) 122ms ✓ src/utils/notebook.test.ts (30 tests) 83ms ✓ src/agents/runtime/agent-interactive.test.ts (24 tests) 893ms ✓ src/tools/computer-use/tool.test.ts (40 tests) 125ms ✓ src/utils/workspaceContext.test.ts (45 tests) 37ms ✓ src/telemetry/metrics.test.ts (40 tests) 1590ms ✓ src/core/tokenLimits.test.ts (75 tests) 31ms ✓ src/core/message-display-dispatcher.test.ts (18 tests) 31ms ✓ src/telemetry/config.test.ts (43 tests) 48ms ✓ src/hooks/promptHookRunner.test.ts (25 tests) 155ms ✓ src/services/chatRecordingService.customTitle.test.ts (24 tests) 310ms ✓ src/agents/backends/ITermBackend.test.ts (46 tests) 49ms ✓ src/core/openaiContentGenerator/provider/default.test.ts (28 tests) 21ms ✓ src/memory/prompt.test.ts (34 tests) 15ms ✓ src/utils/gitDirect.test.ts (68 tests) 93ms ✓ src/memory/forget.test.ts (11 tests) 75ms ✓ src/services/tokenUsageService.test.ts (18 tests) 434ms ✓ src/services/session-organization-service.test.ts (24 tests) 109ms ✓ src/utils/secure-browser-launcher.test.ts (31 tests) 36ms ✓ src/core/client.test.ts (260 tests) 25292ms ✓ src/utils/sideQuery.test.ts (23 tests) 141ms ✓ src/goals/goalJudge.test.ts (26 tests) 33ms ✓ src/services/cronTasksFile.test.ts (39 tests) 297ms ✓ src/agents/arena/ArenaAgentClient.test.ts (21 tests) 84ms ✓ src/telemetry/tracer.test.ts (31 tests) 41ms ✓ src/extension/variables.test.ts (22 tests) 81ms ✓ src/tools/ls.test.ts (30 tests) 297ms ✓ src/core/session-start-profiler.test.ts (19 tests) 72ms ✓ src/mcp/oauth-utils.test.ts (33 tests) 23ms ✓ src/utils/forkedAgent.agent.test.ts (13 tests) 35ms ✓ src/utils/systemEncoding.test.ts (41 tests) 25ms ✓ src/services/sleepInhibitor.test.ts (23 tests) 915ms ✓ src/tools/agent/agent-override.test.ts (21 tests) 214ms ✓ src/agents/backends/TmuxBackend.test.ts (27 tests) 46ms ✓ src/agents/workflow-run-registry.test.ts (32 tests) 20ms ✓ src/core/openaiContentGenerator/provider/deepseek.test.ts (25 tests) 13ms ✓ src/memory/skillReviewAgentPlanner.test.ts (22 tests) 76ms ✓ src/utils/shellContextEnv.test.ts (22 tests) 27ms ✓ src/tools/computer-use/client.test.ts (38 tests) 4048ms ✓ callTool reconnect path > succeeds on a later attempt after backing off past an earlier transport failure 1007ms ✓ callTool reconnect path > exhausts exactly 3 reconnect attempts on persistent transport errors, then re-throws the last 3010ms ✓ src/extension/marketplace.test.ts (33 tests) 61ms ✓ src/mcp/oauth-token-storage.test.ts (31 tests) 1980ms ✓ src/utils/pathReader.test.ts (17 tests) 94ms ✓ src/hooks/asyncHookRegistry.test.ts (20 tests) 16ms ✓ src/agents/runtime/workflow-saved.test.ts (33 tests) 94ms ✓ src/services/chatRecordingService.autoTitle.test.ts (20 tests) 114ms ✓ src/mcp/token-storage/file-token-storage.test.ts (25 tests) 1317ms ✓ src/services/sessionTitle.test.ts (19 tests) 80ms ✓ src/memory/writeContextFile.test.ts (16 tests) 59ms ✓ src/core/openaiContentGenerator/errorHandler.test.ts (40 tests) 62ms ✓ src/core/geminiContentGenerator/geminiContentGenerator.test.ts (14 tests) 33ms ✓ src/services/toolUseSummary.test.ts (34 tests) 95ms ✓ src/agents/team/mailbox.test.ts (18 tests) 226ms ✓ src/agents/arena/ArenaManager.test.ts (27 tests) 4639ms ✓ ArenaManager > backend initialization > should emit SESSION_UPDATE with type warning when backend detection returns warning 513ms ✓ ArenaManager > chat history forwarding > passes approvalMode to in-process backend spawn configs 510ms ✓ ArenaManager > chat history forwarding > should pass chatHistory to backend spawnAgent calls 506ms ✓ ArenaManager > chat history forwarding > should pass undefined chatHistory when not provided 505ms ✓ ArenaManager > chat history forwarding > builds the in-process worker system prompt in headless interaction mode 508ms ✓ ArenaManager > active session lifecycle > collects diff summaries and fallback approach summaries 1014ms ✓ ArenaManager > active session lifecycle > cancel should stop backend and move session to CANCELLED 507ms ✓ ArenaManager > active session lifecycle > cleanup should release backend and worktree resources after start 512ms ✓ src/subagents/validation.test.ts (41 tests) 29ms ✓ src/agents/team/teamHelpers.test.ts (45 tests) 112ms ✓ src/utils/abortController.test.ts (26 tests | 1 skipped) 33ms ✓ src/permissions/classifier-transcript.test.ts (14 tests) 17ms ✓ src/utils/rateLimit.test.ts (35 tests) 43ms ✓ src/utils/debugLogger.test.ts (31 tests) 142ms ✓ src/utils/retryErrorClassification.test.ts (37 tests) 21ms ✓ src/tools/artifact/artifact-tool.test.ts (20 tests) 500ms ✓ src/hooks/sessionHooksManager.test.ts (36 tests) 24ms ✓ src/memory/memory-scoped-agent-config.test.ts (16 tests) 277ms ✓ src/agents/agent-transcript.test.ts (27 tests) 26ms ✓ src/services/gitWorktreeService.symlinks.integ.test.ts (15 tests) 4975ms ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > symlinks a configured directory into the new worktree 368ms ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > rejects paths that traverse outside the repo root 351ms ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > rejects paths inside .git (security guard) 336ms ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > rejects paths inside .qwen (security guard) 313ms ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > works when the repo path itself contains a symlink boundary (round-7 self-inflicted regression guard) 680ms ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > refuses sources whose realpath escapes the repo root or lands in .git/.qwen (committed-symlink bypass) 403ms ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > rejects any entry containing a '..' segment (docs contract) 354ms ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > handles multiple entries — some present, some missing 493ms ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > is a no-op when symlinkDirectories is omitted or empty 443ms ✓ src/hooks/functionHookRunner.test.ts (20 tests) 105ms ✓ src/utils/fetch.test.ts (64 tests) 3407ms ✓ fetchWithPolicy retry > retries once on 403 and returns the successful second response 504ms ✓ fetchWithPolicy retry > retries once on 429 and returns the successful second response 508ms ✓ fetchWithPolicy retry > returns the original 403 when the retry also fails 510ms ✓ fetchWithPolicy retry > retries once on transient network errors (ECONNRESET) 503ms ✓ fetchWithPolicy retry > retries once on transient network errors (EAI_AGAIN) 504ms ✓ fetchWithPolicy retry abort handling > retries once on undici socket errors (UND_ERR_SOCKET) 505ms ✓ src/permissions/classifier.test.ts (23 tests) 40ms ✓ src/services/usage-dashboard-service.test.ts (9 tests) 45ms ✓ src/ide/ideContext.test.ts (23 tests) 21ms ✓ src/telemetry/daemon-metrics.test.ts (20 tests) 992ms ✓ src/agents/runtime/workflow-sandbox.test.ts (109 tests) 30853ms ✓ createWorkflowSandbox security > synchronous infinite loop is aborted by vm timeout 30103ms ✓ src/utils/generateContentResponseUtilities.test.ts (37 tests) 13ms ✓ src/utils/sedEditParser.test.ts (34 tests) 14ms ✓ src/utils/toolResultDisplayCompaction.test.ts (14 tests) 22ms ✓ src/utils/partUtils.test.ts (43 tests) 11ms ✓ src/core/__tests__/openaiTimeoutHandling.test.ts (12 tests) 59ms ✓ src/memory/remember.test.ts (14 tests) 151ms ✓ src/tools/exitPlanMode.test.ts (28 tests) 28ms ✓ src/tools/task-update.test.ts (17 tests) 275ms ✓ src/services/sessionService.corruption.test.ts (13 tests) 47ms ✓ src/tools/task-stop.test.ts (14 tests) 70ms ✓ src/followup/followupState.test.ts (18 tests) 25ms ✓ src/utils/request-tokenizer/textTokenizer.test.ts (35 tests) 65ms ✓ src/core/openaiContentGenerator/openaiContentGenerator.test.ts (14 tests) 57ms ✓ src/utils/shellReadOnlyChecker.test.ts (230 tests) 318ms ✓ src/utils/jsonl-utils.test.ts (28 tests) 57ms ✓ src/permissions/classifier-prompts/system-prompt.test.ts (22 tests) 20ms ✓ src/memory/skillReviewNudge.integration.test.ts (18 tests) 31ms ✓ src/utils/ignorePatterns.test.ts (29 tests) 18ms ✓ src/tools/team-lifecycle.test.ts (5 tests) 676ms ✓ Team lifecycle E2E > full lifecycle: create → tasks → messages → list → update → delete 660ms ✓ src/agents/team/test-utils/fake-agent.test.ts (28 tests) 16ms ✓ src/permissions/dangerousRules.test.ts (110 tests) 21ms ✓ src/tools/session-mcp-view.test.ts (17 tests) 18ms ✓ src/utils/request-tokenizer/imageTokenizer.test.ts (18 tests) 11ms ✓ src/telemetry/daemon-tracing.test.ts (12 tests) 60ms ✓ src/memory/userMemory.test.ts (13 tests) 108ms ✓ src/agents/runtime/agent-statistics.test.ts (32 tests) 51ms ✓ src/skills/skill-activation.test.ts (22 tests) 6895ms ✓ extractToolFilePaths → SkillActivationRegistry integration > activates a skill keyed on src/**/*.ts from glob({ path: "src", pattern: "**/*.ts" }) 6834ms ✓ src/mcp/token-storage/keychain-token-storage.test.ts (24 tests) 3092ms ↓ src/agents/runtime/workflow-p4a-meta-live.live.test.ts (6 tests | 6 skipped) ✓ src/permissions/destructive-commands.test.ts (31 tests) 13ms ✓ src/tools/read-mcp-resource.test.ts (15 tests) 99ms ✓ src/utils/getFolderStructure.test.ts (15 tests) 48ms ✓ src/utils/yaml-parser.test.ts (38 tests) 51ms ✓ src/mcp/token-storage/hybrid-token-storage.test.ts (13 tests) 63ms ✓ src/core/openaiContentGenerator/pipeline.concurrent.test.ts (2 tests) 46ms ✓ src/services/memoryDiagnosticsDumper.test.ts (11 tests) 45ms ✓ src/utils/binary-content.test.ts (72 tests) 71ms ✓ src/tools/send-message.test.ts (17 tests) 125ms ✓ src/tools/askUserQuestion.test.ts (15 tests) 14ms ✓ src/agents/backends/iterm-it2.test.ts (19 tests) 12ms ✓ src/tools/enter-worktree.test.ts (26 tests) 126ms ✓ src/memory/team-memory-sync.test.ts (10 tests) 2338ms ✓ syncTeamMemory > commits local team memory and pushes it to the remote 345ms ✓ syncTeamMemory > attributes the commit to opts.author when provided 302ms ✓ syncTeamMemory > fast-forward-pulls team memory another collaborator pushed 319ms ✓ syncTeamMemory > reconciles a second writer instead of diverging (commit lands on top) 409ms ✓ src/extension/sourceRegistry.test.ts (23 tests) 20ms ✓ src/memory/extractionAgentPlanner.test.ts (13 tests) 17ms ✓ src/extension/extension-runtime-refresh.test.ts (9 tests) 46ms ✓ src/services/worktreeSessionService.test.ts (19 tests) 69ms ✓ src/models/content-generator-config.test.ts (14 tests) 13ms ✓ src/utils/filesearch/fzfWorkerHandle.test.ts (13 tests) 407ms ✓ src/agents/runtime/agent-context.test.ts (22 tests) 26ms ✓ src/agents/runtime/workflow-stall.test.ts (24 tests) 41ms ✓ src/utils/filesearch/ignore.test.ts (20 tests) 81ms ✓ src/core/openaiContentGenerator/taggedThinkingParser.test.ts (27 tests) 31ms ✓ src/utils/nextSpeakerChecker.test.ts (13 tests) 107ms ✓ src/tools/modifiable-tool.test.ts (11 tests) 104ms ✓ src/permissions/denialTracking.test.ts (25 tests) 14ms ✓ src/subagents/agent-frontmatter-schema.test.ts (26 tests) 10ms ✓ src/tools/record-artifact.test.ts (15 tests) 156ms ✓ src/confirmation-bus/message-bus.test.ts (15 tests) 74ms ✓ src/memory/store.test.ts (11 tests) 64ms ✓ src/tools/loop-wakeup.test.ts (19 tests) 151ms ✓ src/telemetry/resource-attributes.test.ts (35 tests) 30ms ✓ src/output/json-formatter.test.ts (15 tests) 13ms ✓ src/lsp/LspConfigLoader.test.ts (14 tests) 56ms ✓ src/services/image-payload-references.test.ts (12 tests) 9ms ✓ src/memory/team-index.test.ts (10 tests) 44ms ✓ src/memory/indexer.test.ts (7 tests) 59ms ✓ src/tools/exit-worktree.test.ts (16 tests) 2118ms ✓ ExitWorktreeTool > execute() — session ownership & lifecycle > refuses remove when the marker names a different session 411ms ✓ ExitWorktreeTool > execute() — session ownership & lifecycle > keep returns success and leaves the worktree + branch intact 401ms ✓ ExitWorktreeTool > execute() — session ownership & lifecycle > allows removal when the worktree predates the session-marker guard 428ms ✓ ExitWorktreeTool > execute() — session ownership & lifecycle > refuses removal when the worktree branch has unmerged commits 408ms ✓ ExitWorktreeTool > execute() — session ownership & lifecycle > marker also written by writeWorktreeSessionMarker survives round-trip 365ms ✓ src/tools/create-sub-session.test.ts (14 tests) 151ms ✓ src/tools/computer-use/bootstrap.test.ts (13 tests) 120ms ✓ src/utils/terminalSerializer.test.ts (20 tests) 110ms ✓ src/tools/exit-worktree.session.integ.test.ts (8 tests) 4163ms ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > preserves the sidecar after keep so --resume can restore the worktree binding 390ms ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > clears the sidecar after remove 447ms ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > does not clear the sidecar when slug does not match 454ms ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > is a no-op when no sidecar exists 320ms ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > removes a re-attached worktree when the old marker owner is inactive 828ms ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > removes a stale-owned worktree when launched from inside it without a sidecar 691ms ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > refuses a re-attached remove when the marker owner runtime is active 635ms ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > refuses a re-attached remove when the owner is active under a repo-subdir relative runtime dir 396ms ✓ src/tools/artifact/oss-publisher.test.ts (16 tests) 49ms ✓ src/hooks/httpHookRunner.test.ts (10 tests) 40ms ✓ src/subagents/subagent-manager-override.test.ts (6 tests) 35ms ✓ src/utils/runtimeStatus.test.ts (19 tests) 56ms ✓ src/utils/gitIgnoreParser.test.ts (21 tests) 79ms ✓ src/agents/team/TeamManager.plan-approval.test.ts (10 tests) 65ms ✓ src/services/cronTasksLock.test.ts (15 tests) 58ms ✓ src/utils/read-text-range.test.ts (13 tests) 998ms ✓ src/services/fileDiscoveryService.test.ts (15 tests) 42ms ✓ src/services/runtimeSampleRing.test.ts (10 tests) 12ms ✓ src/config/config.safe-mode.test.ts (15 tests) 131ms ✓ src/services/fileReadCache.integration.test.ts (3 tests) 62ms ✓ src/core/nonInteractiveToolExecutor.test.ts (8 tests) 36ms ✓ src/core/modalityDefaults.test.ts (42 tests) 12ms ✓ src/memory/channel-memory-document.test.ts (24 tests) 23ms ✓ src/utils/envVarResolver.test.ts (16 tests) 21ms ✓ src/agents/team/test-utils/fake-backend.test.ts (18 tests) 80ms ✓ src/utils/retryPolicy.test.ts (20 tests) 26ms ✓ src/tools/enterPlanMode.test.ts (19 tests) 70ms ✓ src/utils/cronParser.test.ts (28 tests) 34ms ✓ src/tools/mcp-retry.test.ts (38 tests) 1295ms ✓ retryWithBackoff > retries up to maxRetries and then throws 607ms ✓ src/memory/relevanceSelector.test.ts (9 tests) 31ms ✓ src/memory/team-paths.test.ts (10 tests) 29ms ✓ src/tools/cron-list.test.ts (10 tests) 122ms ✓ src/utils/request-tokenizer/requestTokenizer.test.ts (11 tests) 12ms ✓ src/utils/filesearch/crawlCache.test.ts (13 tests) 57ms ✓ src/telemetry/trace-context.test.ts (18 tests) 11ms ✓ src/tools/diffOptions.test.ts (16 tests) 9ms ✓ src/core/permissionFlow.test.ts (25 tests) 13ms ✓ src/utils/subagentGenerator.test.ts (9 tests) 82ms ✓ src/tools/client-mcp-registrar.test.ts (5 tests) 54ms ✓ src/core/contentGenerator.test.ts (9 tests) 99ms ✓ src/hooks/promptHookIntegration.test.ts (9 tests) 121ms ✓ src/followup/suggestionGenerator.test.ts (22 tests) 21ms ✓ src/utils/gitUtils.test.ts (11 tests) 36ms ✓ src/mcp/token-storage/base-token-storage.test.ts (14 tests) 31ms ✓ src/utils/errors.test.ts (29 tests) 42ms Preparing worktree (new branch 'review-pr-1') ✓ src/agents/workflow-snapshot.test.ts (9 tests) 81ms Preparing worktree (new branch 'review-pr-1') ✓ src/core/turn-interruption.test.ts (15 tests) 20ms Preparing worktree (new branch 'review-pr-1') [warn] Corrupt extension state file /tmp/ext-prefs-E4ZTz6/nested/extension-preferences.json moved aside to /tmp/ext-prefs-E4ZTz6/nested/extension-preferences.json.corrupted ✓ src/utils/runtimeDiagnostics.test.ts (4 tests) 14ms ✓ src/extension/extensionPreferences.test.ts (11 tests) 17ms ✓ src/utils/qwenIgnoreParser.test.ts (11 tests) 74ms Preparing worktree (new branch 'review-pr-1') ✓ src/utils/errorParsing.test.ts (18 tests) 21ms Preparing worktree (new branch 'review-pr-1') ✓ src/tools/mcp-resource-content.test.ts (13 tests) 10ms Preparing worktree (new branch 'evil') ✓ src/services/gitWorktreeService.linked.integ.test.ts (9 tests) 881ms ✓ src/utils/safeJsonStringify.test.ts (17 tests) 10ms ✓ src/extension/gemini-converter.test.ts (11 tests) 15ms ✓ src/utils/editHelper.test.ts (17 tests) 13ms ✓ src/tools/computer-use/constants.test.ts (20 tests) 12ms ✓ src/utils/modelId.test.ts (25 tests) 12ms ✓ src/tools/tools.test.ts (11 tests) 24ms ✓ src/hooks/envInterpolator.test.ts (30 tests) 15ms ✓ src/followup/overlayFs.test.ts (15 tests) 66ms ✓ src/hooks/detectTodoChanges.test.ts (12 tests) 5ms ✓ src/memory/pending-skills.test.ts (11 tests) 61ms ✓ src/followup/speculation.test.ts (12 tests) 327ms ✓ src/utils/ripgrepUtils.test.ts (8 tests) 12ms ✓ src/agents/runtime/subagent-plan-tool-policy.test.ts (6 tests) 17ms ✓ src/hooks/urlValidator.test.ts (20 tests) 20ms ✓ src/tools/cron-create.test.ts (13 tests) 501ms ✓ CronCreateTool > rejects a cron that never matches a real date 381ms ✓ src/agents/runtime/workflow-budget.test.ts (20 tests) 17ms ✓ src/tools/artifact/html.test.ts (38 tests) 10ms ✓ src/core/openaiContentGenerator/provider/zai.test.ts (11 tests) 9ms ✓ src/hooks/ssrfGuard.test.ts (21 tests) 22ms ✓ src/tools/artifact/host-publisher.test.ts (17 tests) 34ms ✓ src/memory/recall.test.ts (6 tests) 10ms ✓ src/tools/toAutoClassifierInput.test.ts (13 tests) 6ms ✓ src/utils/errorReporting.test.ts (8 tests) 21ms Error: Unsupported mode "midnight". Use "light" or "dark". ✓ src/skills/bundled/dataviz/scripts/validate_palette.test.js (19 tests) 321ms ✓ src/mcp/sa-impersonation-provider.test.ts (8 tests) 22ms ✓ src/models/reproduce-401.test.ts (3 tests) 22ms ✓ src/ide/ide-installer.test.ts (10 tests) 38ms ✓ src/tools/mcp-pool-key.test.ts (24 tests) 24ms ✓ src/utils/contextLengthError.test.ts (27 tests) 11ms ✓ src/tools/mcp-workspace-budget.test.ts (17 tests) 11ms ✓ src/goals/goalLoop.integration.test.ts (2 tests) 29ms ✓ src/services/chatRecordingService.parentSession.test.ts (8 tests) 67ms ✓ src/tools/task-create.test.ts (9 tests) 133ms ✓ src/hooks/types.test.ts (15 tests) 10ms ✓ src/memory/refresh.test.ts (7 tests) 32ms ✓ src/tools/skill-utils.test.ts (9 tests) 17ms ✓ src/extension/i18n.test.ts (16 tests) 13ms ✓ src/memory/memoryLifecycle.integration.test.ts (1 test) 38ms ✓ src/tools/computer-use/downloader.test.ts (7 tests) 55ms ✓ src/followup/speculationToolGate.test.ts (30 tests) 182ms ✓ src/services/tokenEstimation.test.ts (15 tests) 6ms ✓ src/ide/process-utils.test.ts (6 tests) 10ms ✓ src/subagents/builtin-agents.test.ts (11 tests) 20ms ✓ src/agents/runtime/workflow-journal.test.ts (14 tests) 56ms ✓ src/utils/textUtils.test.ts (25 tests) 8ms ✓ src/resources/resource-registry.test.ts (11 tests) 17ms ✓ src/utils/safeJsonParse.test.ts (14 tests) 16ms ✓ src/memory/secret-scanner.test.ts (29 tests) 260ms ✓ src/utils/schemaConverter.test.ts (15 tests) 10ms ✓ src/utils/runtime-fetch-options.no-proxy.test.ts (3 tests) 117ms ✓ src/memory/dreamAgentPlanner.test.ts (7 tests) 65ms ✓ src/core/message-display-buffer.test.ts (9 tests) 19ms ✓ src/core/openaiContentGenerator/provider/mimo.test.ts (9 tests) 46ms ✓ src/skills/bundled/loop/SKILL.test.ts (7 tests) 26ms ✓ src/ide/detect-ide.test.ts (14 tests) 11ms ✓ src/core/toolCallIdUtils.test.ts (6 tests) 7ms ✓ src/tools/mcp-discovery-timeout.test.ts (14 tests) 24ms ✓ src/extension/override.test.ts (16 tests) 17ms ✓ src/utils/concurrencyLimiter.test.ts (8 tests) 69ms ✓ src/memory/scan.test.ts (4 tests) 62ms ✓ src/agents/team/identity.test.ts (15 tests) 4ms ✓ src/prompts/prompt-registry.test.ts (11 tests) 19ms ✓ src/utils/quotaErrorDetection.test.ts (16 tests) 7ms ✓ src/config/config.workflow-registration.test.ts (5 tests) 129ms ✓ src/utils/projectPath.test.ts (12 tests) 38ms ✓ src/extension/settings.test.ts (10 tests) 6ms ✓ src/core/loggingContentGenerator/streamContentDetection.test.ts (16 tests) 5ms ✓ src/utils/thoughtUtils.test.ts (15 tests) 5ms ✓ src/services/generatedFiles.test.ts (11 tests) 7ms ✓ src/utils/conversation-chain.test.ts (8 tests) 6ms ✓ src/tools/grepReadTracking.test.ts (7 tests) 26ms ✓ src/services/visionBridge/image-part-utils.test.ts (18 tests) 7ms ✓ src/tools/team-create.test.ts (11 tests) 151ms ✓ src/extension/zip-extraction.test.ts (3 tests) 17ms ✓ src/core/anthropicContentGenerator/usage.test.ts (7 tests) 7ms ✓ src/utils/configResolver.test.ts (12 tests) 11ms ✓ src/hooks/trustedHooks.test.ts (5 tests) 11ms ✓ src/mcp/configHash.test.ts (15 tests) 8ms ✓ src/telemetry/file-exporters.test.ts (3 tests) 21ms ✓ src/providers/__tests__/presets/alibaba-standard.test.ts (8 tests) 20ms ✓ src/agents/arena/diff-summary.test.ts (8 tests) 6ms ✓ src/tools/cron-delete.test.ts (7 tests) 118ms ✓ src/services/attributionTrailer.test.ts (4 tests) 9ms ✓ src/tools/web-fetch-preapproved.test.ts (13 tests) 5ms ✓ src/telemetry/event-loop-lag-metrics.test.ts (4 tests) 195ms ✓ src/hooks/registerSkillHooks.test.ts (7 tests) 11ms ✓ src/utils/proxyUtils.test.ts (18 tests) 12ms ✓ src/core/openaiContentGenerator/provider/minimax.test.ts (9 tests) 5ms ✓ src/followup/smoke.test.ts (21 tests) 66ms ✓ src/core/openaiContentGenerator/provider/modelscope.test.ts (5 tests) 7ms ✓ src/utils/terminalSafe.test.ts (11 tests) 7ms ✓ src/skills/skill-paths.test.ts (7 tests) 66ms ✓ src/core/inlineMediaLimit.test.ts (13 tests) 7ms ✓ src/utils/toml-to-markdown-converter.test.ts (11 tests) 35ms ✓ src/utils/filesearch/result-cache.test.ts (6 tests) 64ms ✓ src/mcp/google-auth-provider.test.ts (8 tests) 31ms ✓ src/tools/task-list.test.ts (6 tests) 176ms ✓ src/config/config.workflows.test.ts (4 tests) 10ms ✓ src/utils/xml.test.ts (10 tests) 10ms ✓ src/utils/projectRoot.test.ts (5 tests) 23ms ✓ src/core/reasoning-effort.test.ts (10 tests) 11ms ✓ src/memory/team-memory-git-status.test.ts (5 tests) 177ms ✓ src/extension/network-policy.test.ts (15 tests) 23ms ✓ src/core/openaiContentGenerator/provider/mistral.test.ts (4 tests) 7ms ✓ src/providers/__tests__/presets/grok.test.ts (6 tests) 18ms ✓ src/telemetry/event-loop-lag.test.ts (5 tests) 87ms ✓ src/hooks/combinedAbortSignal.test.ts (8 tests) 316ms ✓ src/utils/runtimeStatus.config.test.ts (4 tests) 265ms ✓ src/utils/LruCache.test.ts (7 tests) 4ms ✓ src/providers/__tests__/presets/idealab.test.ts (6 tests) 23ms ✓ src/tools/computer-use/schemas.test.ts (8 tests) 14ms ✓ src/skills/skill-load.real-parser.test.ts (7 tests) 21ms ✓ src/utils/installationManager.test.ts (4 tests) 8ms ✓ src/hooks/stopHookCap.test.ts (9 tests) 5ms ✓ src/extension/storage.test.ts (5 tests) 8ms ✓ src/lsp/NativeLspClient.test.ts (2 tests) 4ms ✓ src/tools/team-plan-approval.test.ts (9 tests) 13ms ✓ src/agents/team/leaderPermissionBridge.test.ts (7 tests) 5ms ✓ src/utils/tool-utils.test.ts (20 tests) 16ms ✓ src/memory/extractAgent.test.ts (1 test) 46ms ✓ src/core/permission-helpers.test.ts (6 tests) 5ms ✓ src/extension/redaction.test.ts (11 tests) 8ms ✓ src/goals/activeGoalStore.test.ts (8 tests) 5ms ✓ src/skills/symlinkScope.test.ts (5 tests) 5ms ✓ src/core/geminiRequest.test.ts (12 tests) 12ms ✓ src/utils/bundlePaths.test.ts (4 tests) 7ms ✓ src/telemetry/sanitize.test.ts (10 tests) 9ms ✓ src/hooks/instructionsLoadedCallback.test.ts (4 tests) 8ms ✓ src/tools/syntheticOutput.test.ts (7 tests) 118ms ✓ src/telemetry/session-context.test.ts (7 tests) 10ms ✓ src/tools/team-delete.test.ts (5 tests) 630ms ✓ TeamDeleteTool > deletes an active team 329ms ✓ src/utils/projectSummary.test.ts (3 tests) 79ms ✓ src/services/sessionRecap.test.ts (1 test) 19ms ✓ src/memory/const.test.ts (4 tests) 13ms ✓ src/utils/shell-pager-env.test.ts (8 tests) 8ms ✓ src/agents/subagent-result.test.ts (18 tests) 8ms ✓ src/skills/bundled-skills.integration.test.ts (11 tests) 44ms ✓ src/utils/language-detection.test.ts (6 tests) 4ms ✓ src/tools/computer-use/install-state.test.ts (6 tests) 74ms ✓ src/memory/team-memory-secret-guard.test.ts (4 tests) 34ms ✓ src/extension/corruptFile.test.ts (2 tests) 22ms ✓ src/memory/dream.test.ts (3 tests) 58ms ✓ src/skills/bundled/loop/autonomous-loop.test.ts (3 tests) 4ms ✓ src/core/geminiContentGenerator/index.test.ts (3 tests) 9ms ✓ src/tools/artifact/local-publisher.test.ts (3 tests) 30ms ✓ src/providers/__tests__/presets/modelscope.test.ts (3 tests) 10ms ✓ src/utils/asyncMessageQueue.test.ts (7 tests) 6ms ✓ src/tools/enter-worktree.session.integ.test.ts (2 tests) 923ms ✓ EnterWorktreeTool — WorktreeSession sidecar > writes a WorktreeSession sidecar with all fields after creating worktree 400ms ✓ EnterWorktreeTool — WorktreeSession sidecar > overwrites a previous sidecar when entering a new worktree in the same session 522ms ✓ src/tools/computer-use/permission-detector.test.ts (6 tests) 4ms ✓ src/tools/artifact/create-publisher.test.ts (5 tests) 4ms ✓ src/utils/startupEventSink.test.ts (4 tests) 8ms ✓ src/lsp/LspConnectionFactory.test.ts (2 tests) 141ms ✓ src/telemetry/api-activity-tracker.test.ts (3 tests) 4ms ✓ src/utils/internalPromptIds.test.ts (9 tests) 4ms ✓ src/lsp/configHash.test.ts (3 tests) 12ms ✓ src/core/openaiContentGenerator/provider/grok.test.ts (8 tests) 18ms ✓ src/providers/__tests__/presets/openrouter.test.ts (5 tests) 10ms ✓ src/core/session-recovery.test.ts (4 tests) 8ms ✓ src/telemetry/trace-id-utils.test.ts (8 tests) 8ms ✓ src/utils/messageInspectors.test.ts (5 tests) 3ms ✓ src/telemetry/telemetry-utils.test.ts (6 tests) 4ms ✓ src/providers/__tests__/presets/requesty.test.ts (5 tests) 9ms ✓ src/subagents/types.test.ts (3 tests) 5ms ✓ src/hooks/context-usage.test.ts (8 tests) 7ms ✓ src/core/tool-call-preparation.test.ts (3 tests) 24ms ✓ src/tools/artifact/publisher.test.ts (5 tests) 6ms ✓ src/providers/__tests__/presets/deepseek.test.ts (3 tests) 12ms ✓ src/extension/archive-safety.test.ts (1 test) 108ms ✓ src/core/prompt-tool-examples.test.ts (2 tests) 85ms ✓ src/core/openaiContentGenerator/constants.test.ts (5 tests) 3ms ✓ src/memory/entries.test.ts (1 test) 16ms ✓ src/agents/team/promptAddendum.test.ts (2 tests) 9ms ✓ src/utils/getPty.test.ts (1 test) 4ms ✓ src/services/gitWorktreeService.hooks.integ.test.ts (3 tests) 1021ms ✓ GitWorktreeService.createUserWorktree() — hooksPath setup > points core.hooksPath at .husky when present 338ms ✓ GitWorktreeService.createUserWorktree() — hooksPath setup > falls back to .git/hooks when .husky is missing 361ms ✓ GitWorktreeService.createUserWorktree() — hooksPath setup > still creates the worktree even when hooksPath setup fails 320ms ✓ src/config/config-session-env.test.ts (3 tests) 17714ms ✓ Config sessionEnvClaimed guard > first Config sets process.env QWEN_CODE_SESSION_ID to its sessionId 7116ms ✓ Config sessionEnvClaimed guard > subsequent Config does not overwrite the env var set by the first 4581ms ✓ Config sessionEnvClaimed guard > startNewSession updates env var to the new session ID 6016ms ✓ src/utils/env.test.ts (12 tests) 13ms ✓ src/index.test.ts (1 test) 2ms ✓ src/utils/cronDisplay.test.ts (2 tests) 7ms ✓ src/providers/__tests__/provider-config.test.ts (63 tests) 29ms ✓ src/providers/__tests__/presets/custom-provider.test.ts (11 tests) 11ms ✓ src/providers/__tests__/presets/alibaba-token-plan.test.ts (2 tests) 8ms ✓ src/memory/learn-skill-agent.test.ts (7 tests) 116ms ✓ src/providers/__tests__/presets/zai.test.ts (3 tests) 8ms ✓ src/agents/backends/tmux-commands.test.ts (8 tests) 6ms ✓ src/tools/computer-use/registration.test.ts (2 tests) 7ms ✓ src/providers/__tests__/presets/alibaba-coding-plan.test.ts (2 tests) 5ms ✓ src/telemetry/telemetry.test.ts (2 tests) 43ms ✓ src/providers/__tests__/presets/minimax.test.ts (3 tests) 8ms ✓ src/services/worktreeCleanup.test.ts (3 tests) 4ms ✓ src/utils/shell-ast-parser-lazy.test.ts (5 tests) 32093ms ✓ shellAstParser lazy runtime > loads web-tree-sitter on first use and deduplicates initialization 6939ms ✓ shellAstParser lazy runtime > latches a language load failure 4673ms ✓ shellAstParser lazy runtime > maps parser runtime exceptions without changing the legacy fallback 4839ms ✓ shellAstParser lazy runtime > releases each parsed tree exactly once 4917ms ✓ shellAstParser lazy runtime > keeps the packaged runtime deferred and parses from emitted chunks 10720ms Test Files 509 passed | 1 skipped (510) Tests 16720 passed | 8 skipped (16728) Start at 10:03:46 Duration 107.27s (transform 142.67s, setup 11.52s, collect 1220.77s, tests 300.17s, environment 145ms, prepare 70.69s) JUNIT report written to /startdir/src/qwen-code/packages/core/junit.xml % Coverage report from v8 npm notice run @qwen-code/sdk@0.1.8 test RUN v1.6.1 /startdir/src/qwen-code/packages/sdk-typescript ✓ test/unit/daemonEvents.test.ts (106 tests) 32ms 2026-08-26 10:05:41 [ERROR] [ProcessTransport] Failed to initialize CLI process: Transport start aborted 2026-08-26 10:05:41 [ERROR] [ProcessTransport] Failed to initialize CLI process: Transport start aborted 2026-08-26 10:05:41 [ERROR] [ProcessTransport] CLI process error: Spawn failed 2026-08-26 10:05:41 [ERROR] [ProcessTransport] CLI process exited with code 1 2026-08-26 10:05:41 [ERROR] [ProcessTransport] CLI process terminated by signal SIGTERM 2026-08-26 10:05:41 [DEBUG] [ProcessTransport] Spawning CLI (native): qwen --input-format stream-json --output-format stream-json --channel=SDK 2026-08-26 10:05:41 [ERROR] [ProcessTransport] CLI process error: Process error 2026-08-26 10:05:41 [ERROR] [ProcessTransport] CLI process exited with code 1 2026-08-26 10:05:41 [ERROR] [ProcessTransport] CLI process error: Process error 2026-08-26 10:05:41 [ERROR] [ProcessTransport] CLI process exited with code 1 2026-08-26 10:05:41 [ERROR] [ProcessTransport] CLI process terminated by signal SIGKILL 2026-08-26 10:05:41 [INFO] [ProcessTransport] CLI process started successfully 2026-08-26 10:05:42 [DEBUG] [ProcessTransport] Forking CLI (node): /path/to/cli.js --input-format stream-json --output-format stream-json --channel=SDK 2026-08-26 10:05:42 [INFO] [ProcessTransport] CLI process started successfully ✓ test/unit/ProcessTransport.test.ts (86 tests) 171ms 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 (269 tests) 162ms ✓ test/unit/AcpHttpTransport.test.ts (44 tests) 68ms ✓ test/unit/DaemonSessionClient.test.ts (43 tests) 374ms ✓ test/unit/acpRouteTable.test.ts (103 tests) 33ms 2026-08-26 10:05:42 [ERROR] [Query] Control response error for request 9983e12f-ed40-440d-abd7-4dd8e6627709: Test error 2026-08-26 10:05:42 [ERROR] [Query] Initialization error: Test error ✓ test/unit/daemon-public-surface.test.ts (13 tests) 10ms [serve-bridge] Tool error: Error: something broke at /startdir/src/qwen-code/packages/sdk-typescript/test/unit/serve-bridge.test.ts:151:44 at file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:135:14 at file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:60:26 at runTest (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:781:17) at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15) at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15) at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15) at runFiles (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:958:5) at startTests (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:967:3) at file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/vitest/dist/chunks/runtime-runBaseTests.oAvMKtQC.js:116:7 ✓ test/unit/serve-bridge.test.ts (30 tests) 65ms [serve-bridge] Tool error: string error [serve-bridge] SSE stream ended unexpectedly for session new-session-id: GET /session/:id/events: HTTP 404 [serve-bridge] Tool error: Error: No SSE stream for session. Was the session created via session_create? at /startdir/src/qwen-code/packages/sdk-typescript/src/daemon-mcp/serve-bridge/tools/agent.ts:33:17 at Object.handler (/startdir/src/qwen-code/packages/sdk-typescript/src/daemon-mcp/serve-bridge/helpers.ts:45:20) at /startdir/src/qwen-code/packages/sdk-typescript/test/unit/serve-bridge.test.ts:397:39 at runTest (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:781:11) at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15) at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15) at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15) at runFiles (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:958:5) at startTests (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:967:3) at file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/vitest/dist/chunks/runtime-runBaseTests.oAvMKtQC.js:116:7 [serve-bridge] Tool error: Error: Another prompt is already in progress for this session. Wait for it to complete or call prompt_cancel first. at /startdir/src/qwen-code/packages/sdk-typescript/src/daemon-mcp/serve-bridge/tools/agent.ts:40:17 at Object.handler (/startdir/src/qwen-code/packages/sdk-typescript/src/daemon-mcp/serve-bridge/helpers.ts:45:20) at /startdir/src/qwen-code/packages/sdk-typescript/test/unit/serve-bridge.test.ts:427:39 at runTest (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:781:11) at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15) at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15) at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15) at runFiles (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:958:5) at startTests (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:967:3) at file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/vitest/dist/chunks/runtime-runBaseTests.oAvMKtQC.js:116:7 ✓ test/unit/RestSseTransport.test.ts (28 tests) 72ms ✓ test/unit/cliPath.test.ts (33 tests) 25ms ✓ test/unit/DaemonClient.test.ts (277 tests) 2150ms ✓ test/unit/daemon-sse.test.ts (18 tests) 13ms ✓ test/unit/AutoReconnectTransport.test.ts (19 tests) 29ms ✓ test/unit/DaemonClientVoice.test.ts (8 tests) 38ms ✓ test/unit/createSdkMcpServer.test.ts (18 tests) 22ms 2026-08-26 10:05:44 [ERROR] [Query] Transport finalized with pending requests rejected {"pendingControl":1,"pendingMcp":0,"error":"Transport closed before control response"} 2026-08-26 10:05:44 [ERROR] [Query] Transport finalized with pending requests rejected {"pendingControl":1,"pendingMcp":0,"error":"transport read crashed"} 2026-08-26 10:05:44 [ERROR] [Query] Transport finalized with pending requests rejected {"pendingControl":0,"pendingMcp":1,"error":"Transport closed before control response"} 2026-08-26 10:05:44 [ERROR] [Query] Control response error for request 00956b56-4c5f-476c-8590-cfa49a786c1b: no turn to continue ✓ test/query.test.ts (7 tests) 39ms ✓ test/unit/negotiateTransport.test.ts (15 tests) 95ms ✓ test/unit/AcpWsTransport.test.ts (31 tests) 14ms ✓ test/unit/AcpEventDenormalizer.test.ts (20 tests) 7ms ✓ test/unit/Stream.test.ts (22 tests) 13ms ✓ test/unit/queryOptionsSchema.test.ts (80 tests) 19ms ✓ test/unit/createQuery.test.ts (5 tests) 33ms ✓ test/unit/daemon-transports-surface.test.ts (4 tests) 3ms ✓ test/unit/approval-mode-drift.test.ts (1 test) 2ms ✓ test/daemon-ui-transcript.test.ts (1 test) 3ms 2026-08-26 10:05:54 [ERROR] [Query] Initialization error: Query is closed ✓ test/unit/DaemonAuthFlow.test.ts (14 tests) 13075ms ✓ test/unit/acpTransportUtils.test.ts (3 tests) 3ms ✓ test/unit/daemon-pending-interaction-types.test.ts (1 test) 3ms 2026-08-26 10:06:06 [ERROR] [Query] Control response error for request b77b9cc6-7e3f-43a9-9dfb-a3dd11d99c12: Malformed error ✓ test/unit/Query.test.ts (61 tests) 24327ms Test Files 29 passed (29) Tests 1360 passed (1360) Start at 10:05:40 Duration 26.21s (transform 7.53s, setup 4ms, collect 12.74s, tests 40.90s, environment 6ms, prepare 1.85s) npm notice run qwen-code-vscode-ide-companion@0.19.12 test RUN v3.2.4 /startdir/src/qwen-code/packages/vscode-ide-companion ✓ src/webview/utils/completionUtils.test.ts (14 tests) 3ms 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) 6ms ✓ src/utils/editorGroupUtils.test.ts (12 tests) 4ms ✓ src/services/qwenSessionUpdateHandler.test.ts (19 tests) 11ms ✓ src/utils/paths.test.ts (18 tests) 7ms 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) 8ms ✓ src/commands/index.test.ts (5 tests) 6ms 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) 9ms ✓ src/webview/utils/utils.test.ts (15 tests) 5ms ✓ src/services/sessionExportService.test.ts (9 tests) 9ms ✓ src/open-files-manager.test.ts (17 tests) 23ms ✓ src/utils/logger.test.ts (5 tests) 9ms ✓ src/webview/hooks/useVSCode.test.ts (3 tests) 28ms ✓ src/webview/hooks/useWebViewMessages.test.ts (5 tests) 5ms ✓ src/webview/providers/WebViewContent.test.ts (5 tests) 3ms ✓ src/webview/hooks/useImage.test.ts (6 tests) 18ms stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > proceeds with a second connect after the first one fails [DaemonIdeConnection] Previous connect failed: { error: 'first connect failed' } stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > sends prompts through the bound daemon session [DaemonIdeConnection] Sending prompt: { sessionId: 'session-1' } stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > sends prompts through the bound daemon session [DaemonIdeConnection] Prompt completed: { sessionId: 'session-1', stopReason: 'end_turn' } stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > sends prompts through the bound daemon session [DaemonIdeConnection] Sending prompt: { sessionId: 'session-1' } stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > sends prompts through the bound daemon session [DaemonIdeConnection] Prompt completed: { sessionId: 'session-1', stopReason: 'end_turn' } stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > sends prompts through the bound daemon session [DaemonIdeConnection] Sending prompt: { sessionId: 'session-1' } stderr | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > sends prompts through the bound daemon session [DaemonIdeConnection] Prompt failed: { sessionId: 'session-1', error: 'prompt failed' } ✓ src/webview/utils/slashCommandUtils.test.ts (6 tests) 4ms 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) 54ms ✓ src/webview/utils/contextUsage.test.ts (4 tests) 3ms ✓ src/webview/providers/ChatProviderRegistry.test.ts (2 tests) 3ms ✓ src/package.test.ts (2 tests) 2ms ✓ src/webview/providers/ChatWebviewViewProvider.test.ts (2 tests) 4ms ✓ src/webview/providers/chatViewRegistration.test.ts (1 test) 3ms ✓ src/utils/imageSupport.bundle.test.ts (2 tests) 59ms ✓ src/utils/file-path.test.ts (4 tests) 2ms ✓ src/utils/errorMessage.test.ts (2 tests) 2ms ✓ src/services/subscriptionPlanDefinitions.test.ts (1 test) 3ms stdout | src/webview/hooks/useWebViewMessages.test.tsx > useWebViewMessages > ignores background streamEnd while a tagged request is active [useWebViewMessages] Ignoring stale/untagged streamEnd: null active: req-1 source: background_notification stderr | src/webview/hooks/useWebViewMessages.test.tsx > useWebViewMessages > ignores conversation rewind events when the target turn is missing [useWebViewMessages] conversationRewound target turn not found: 99 ✓ src/webview/hooks/useWebViewMessages.test.tsx (12 tests) 27ms ✓ src/webview/hooks/message/useMessageHandling.test.tsx (3 tests) 17ms ✓ src/webview/components/layout/ModelSelector.test.tsx (9 tests) 47ms ✓ src/webview/components/messages/toolcalls/index.test.tsx (3 tests) 19ms ✓ src/webview/components/layout/ProviderSetupForm.test.tsx (1 test) 28ms ✓ src/webview/hooks/useMessageSubmit.test.ts (19 tests) 15ms ✓ src/webview/hooks/useToolCalls.test.tsx (2 tests) 15ms ✓ src/webview/components/layout/Onboarding.test.tsx (1 test) 21ms ✓ src/webview/App.test.tsx (10 tests) 75ms ✓ src/webview/components/layout/InputForm.test.tsx (2 tests) 28ms 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 ✓ src/utils/acpModelInfo.test.ts (15 tests) 6ms 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 ✓ src/utils/imageSupport.test.ts (1 test) 2ms stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > createAndOpenTempFile viewColumn selection > opens in left group when chat webview has a left neighbor [FileMessageHandler] Created and opened readonly file: [object Object] in viewColumn: 1 stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > createAndOpenTempFile viewColumn selection > opens in right group when no left neighbor but right exists [FileMessageHandler] Created and opened readonly file: [object Object] in viewColumn: 2 stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > createAndOpenTempFile viewColumn selection > falls back to ViewColumn.Beside when neither left nor right neighbor exists [FileMessageHandler] Created and opened readonly file: [object Object] in viewColumn: -2 stderr | src/webview/utils/imageHandler.test.ts > imageHandler > returns null when file write throws [ImageHandler] Failed to save image: Error: disk full at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/utils/imageHandler.test.ts:110:41 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20 at new Promise () 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/handlers/FileMessageHandler.test.ts (8 tests) 9ms ✓ src/webview/handlers/AuthMessageHandler.test.ts (10 tests) 9ms ✓ src/webview/utils/imageHandler.test.ts (12 tests) 9ms ✓ src/webview/utils/discontinuedModel.test.ts (13 tests) 4ms stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > configures sidebar views with workspace/temp roots and resolves image paths through the attached webview [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > configures sidebar views with workspace/temp roots and resolves image paths through the attached webview [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > reports clipboard copy success back to the requesting webview [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > reports clipboard copy success back to the requesting webview [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > writes webview log messages through the extension host logger [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > 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) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > reports clipboard copy failures back to the requesting webview [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > streams slash-command notifications into the attached webview [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > streams slash-command notifications into the attached webview [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > re-sends cached available commands when the webview becomes ready [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > re-sends cached available commands when the webview becomes ready [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > does not special-case plain insight slash notifications in the provider [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > does not special-case plain insight slash notifications in the provider [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > routes structured insight progress markers into the attached webview [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > routes structured insight progress markers into the attached webview [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > routes structured insight progress markers even when command text is normalized differently [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > routes structured insight progress markers even when command text is normalized differently [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > clears structured insight progress when the ready marker arrives [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > clears structured insight progress when the ready marker arrives [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > opens the insight report in the browser when requested from the webview [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > opens the insight report in the browser when requested from the webview [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > routes resolved image paths back to the requesting attached webview even when a panel exists [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > routes resolved image paths back to the requesting attached webview even when a panel exists [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > marks rejected switch_mode permission requests as failed without cancelling the session [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > marks rejected switch_mode permission requests as failed without cancelling the session [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > replays available skills to the webview after webviewReady [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > replays available skills to the webview after webviewReady [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > replays available commands to the webview after webviewReady [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > replays available commands to the webview after webviewReady [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > does not report success for api-key settings without interactive auth data [WebViewProvider] Skipping VSCode settings sync for api-key provider; interactive auth owns provider details stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > only syncs non-secret VS Code settings from ~/.qwen/settings.json [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > reacts to auth-related qwen-code setting changes [WebViewProvider] Auth-related qwen-code settings changed by user, syncing... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > clears persisted credentials and disconnects when apiKey is emptied [WebViewProvider] Auth-related qwen-code settings changed by user, syncing... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > clears persisted credentials and disconnects when apiKey is emptied [WebViewProvider] apiKey cleared — de-authenticating and clearing persisted credentials stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > does not de-auth when non-apiKey auth settings change on an api-key provider [WebViewProvider] Auth-related qwen-code settings changed by user, syncing... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > applies the requested initial model after creating a new session [WebViewProvider] Initializing with new session (skipping restoration) stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > applies the requested initial model after creating a new session [WebViewProvider] ACP session created successfully stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > applies the requested initial model after creating a new session [WebViewProvider] Initializing empty conversation stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > applies the requested initial model after creating a new session [WebViewProvider] Empty conversation initialized: null stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > shows orange dot and notification when a long task completes while panel is not active [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > shows orange dot and notification when a long task completes while panel is not active [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show notification for short tasks (< 20s) [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show notification for short tasks (< 20s) [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show notification when user is watching the panel [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show notification when user is watching the panel [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > shows blue dot and notification for permission requests when panel is not active [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > shows blue dot and notification for permission requests when panel is not active [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > blue dot takes priority over orange dot [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > blue dot takes priority over orange dot [WebViewProvider] Attempting connection... 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-bwe10s/.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 () 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:437:14) at Module.applyProviderInstallPlanToFile (/startdir/src/qwen-code/packages/vscode-ide-companion/src/services/settingsWriter.ts:546:20) at /startdir/src/qwen-code/packages/vscode-ide-companion/src/services/settingsWriter.test.ts:283:20 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20 at new Promise () 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-enNxJE/.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 () 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:564:28) at /startdir/src/qwen-code/packages/vscode-ide-companion/src/services/settingsWriter.test.ts:440:24 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20 at new Promise () 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 stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not send duplicate idle notifications for multi-turn tasks [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not send duplicate idle notifications for multi-turn tasks [WebViewProvider] Attempting connection... ✓ src/services/settingsWriter.test.ts (17 tests) 17ms stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show idle notification for background notification turns [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show idle notification for background notification turns [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not notify when notifications setting is disabled [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not notify when notifications setting is disabled [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > cancellation resets agentStartTime so the next short task does not trigger phantom notification [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > cancellation resets agentStartTime so the next short task does not trigger phantom notification [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show dot when dotIndicator setting is disabled [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show dot when dotIndicator setting is disabled [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > notifies when VS Code is focused but panel is not visible [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > notifies when VS Code is focused but panel is not visible [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > notifies when VS Code is not focused but panel is visible [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > notifies when VS Code is not focused but panel is visible [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > shows blue dot and notification for askUserQuestion when panel is not active [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > shows blue dot and notification for askUserQuestion when panel is not active [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.handleAuthInteractive credential rollback > restores the snapshot when the reconnect leaves authState !== true [WebViewProvider] authInteractive: provider=deepseek, host=api.deepseek.com stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > does not create conversation state or send an empty prompt when all pasted images fail to materialize [SessionMessageHandler] handleSendMessage called { 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 > keeps the conversation store aligned with the ACP session id before editing [SessionMessageHandler] handleSendMessage called { textLength: 12, attachmentCount: 0 } stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > keeps the conversation store aligned with the ACP session id before editing [SessionMessageHandler] No active conversation, creating one... stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > keeps the conversation store aligned with the ACP session id before editing [SessionMessageHandler] handleSendMessage called { textLength: 13, attachmentCount: 0 } 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 > rewinds the active ACP session before sending an edited message [SessionMessageHandler] handleSendMessage called { textLength: 13, attachmentCount: 0 } stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > restores the edited conversation snapshot when replacement send fails [SessionMessageHandler] handleSendMessage called { textLength: 13, attachmentCount: 0 } stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > restores the edited conversation snapshot when replacement send fails [SessionMessageHandler] Error sending message: Error: send failed at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/handlers/SessionMessageHandler.test.ts:534:46 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20 at new Promise () at runWithTimeout (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10) at runTest (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1574:12) at processTicksAndRejections (node:internal/process/task_queues:104:5) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > continues edits with ACP-only rewind when no local snapshot exists [SessionMessageHandler] handleSendMessage called { textLength: 13, attachmentCount: 0 } stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > continues edits with ACP-only rewind when no local snapshot exists [SessionMessageHandler] Local conversation snapshot missing before edit; continuing with ACP rewind only. stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > recovers a missing edit snapshot from persisted session messages [SessionMessageHandler] handleSendMessage called { textLength: 13, attachmentCount: 0 } stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > restores the edited conversation snapshot when ACP rewind fails [SessionMessageHandler] handleSendMessage called { textLength: 13, attachmentCount: 0 } stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > restores the edited conversation snapshot when ACP rewind fails [SessionMessageHandler] Failed to rewind session: Error: rewind failed at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/handlers/SessionMessageHandler.test.ts:736:48 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20 at new Promise () at runWithTimeout (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10) at runTest (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1574:12) at processTicksAndRejections (node:internal/process/task_queues:104:5) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > restores store and ACP history when saving the edited user message fails [SessionMessageHandler] handleSendMessage called { textLength: 13, attachmentCount: 0 } stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > restores store and ACP history when saving the edited user message fails [SessionMessageHandler] Failed to save user message: Error: storage failed at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/handlers/SessionMessageHandler.test.ts:806:45 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20 at new Promise () at runWithTimeout (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10) at runTest (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1574:12) at processTicksAndRejections (node:internal/process/task_queues:104:5) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > rejects edit submissions with invalid target turn indexes [SessionMessageHandler] handleSendMessage called { textLength: 13, attachmentCount: 0 } stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > rejects edit submissions with invalid target turn indexes [SessionMessageHandler] Invalid message edit target. -1 stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > keeps currentConversationId aligned with the archived sessionId when session/load falls back to a new ACP session [SessionMessageHandler] Switching to session: archived-session stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > keeps currentConversationId aligned with the archived sessionId when session/load falls back to a new ACP session [SessionMessageHandler] session/load failed, using fallback: Error: session not found on server at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/handlers/SessionMessageHandler.test.ts:892:28 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20 at new Promise () at runWithTimeout (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10) at runTest (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1574:12) at processTicksAndRejections (node:internal/process/task_queues:104:5) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > forces a fresh ACP session when the webview requests a new session [SessionMessageHandler] Creating new Qwen session... stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > intercepts /export html and uses the VSCode export flow instead of sending a prompt [SessionMessageHandler] handleSendMessage called { 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 > 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:1084:47 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20 at new Promise () 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) ✓ src/webview/handlers/SessionMessageHandler.test.ts (23 tests) 23ms 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 ✓ src/services/qwenAgentManager.test.ts (9 tests) 7ms ✓ src/ide-server.test.ts (13 tests | 1 skipped) 59ms ✓ src/extension.test.ts (14 tests) 29ms 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:1921:13 at mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at spy (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at safeRollback (/startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.ts:1397:9) at WebViewProvider.handleAuthInteractive (/startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.ts:1449:9) at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.test.ts:1937: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. (/startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.test.ts:1974:13) at WebViewProvider.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at WebViewProvider.spy [as doInitializeAgentConnection] (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at WebViewProvider.handleAuthInteractive (/startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.ts:1434:18) at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.test.ts:1977: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:1921:13 at mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at spy (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at safeRollback (/startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.ts:1397:9) at WebViewProvider.handleAuthInteractive (/startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.ts:1471:7) at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.test.ts:1977:5 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20 ✓ src/webview/providers/WebViewProvider.test.ts (49 tests) 1577ms ✓ 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 303ms ✓ 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 307ms ✓ WebViewProvider.handleAuthInteractive credential rollback > rolls back + disconnects + reports authError when doInitializeAgentConnection throws (outer catch) 305ms Test Files 49 passed (49) Tests 458 passed | 1 skipped (459) Start at 10:06:07 Duration 5.98s (transform 7.29s, setup 0ms, collect 56.16s, tests 2.33s, environment 2.66s, prepare 3.21s) npm notice run @qwen-code/web-shell@0.19.12 test RUN v3.2.4 /startdir/src/qwen-code/packages/web-shell/client 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 (71 tests) 97ms ✓ components/MessageItem.dom.test.tsx (9 tests) 53ms ✓ components/messages/ModelManagementSection.dom.test.tsx (14 tests) 73ms ✓ components/messages/AskUserQuestion.test.tsx (21 tests) 184ms 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:68: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 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:68: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:44:15) at div () at DaemonSessionProvider (/startdir/src/qwen-code/packages/web-shell/client/components/SplitView.test.tsx:6:29) at ErrorBoundary (/startdir/src/qwen-code/packages/web-shell/client/components/ErrorBoundary.tsx:11:1) at div () at div () at div () 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:3954:3) stderr | components/SessionOverviewPanel.test.tsx > SessionOverviewPanel polling > re-queries other workspaces on each list poll (multi-workspace) An update to SessionOverviewPanelInner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures 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/SessionOverviewPanel.test.tsx > SessionOverviewPanel polling > re-queries other workspaces on each list poll (multi-workspace) An update to SessionOverviewPanelInner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures 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/SessionOverviewPanel.test.tsx > SessionOverviewPanel polling > re-queries other workspaces on each list poll (multi-workspace) An update to SessionOverviewPanelInner inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures 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/SessionOverviewPanel.test.tsx (26 tests) 177ms ✓ components/SplitView.test.tsx (37 tests) 312ms 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/webui/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/webui/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/webui/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 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/webui/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/webui/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 () at div () 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:3954:3) ✓ components/dialogs/GitDiffDialog.test.tsx (13 tests) 403ms ✓ components/ChatPane.test.tsx (45 tests) 262ms ✓ components/dialogs/GoalsDialog.test.tsx (25 tests) 405ms ✓ components/dialogs/DaemonStatusDialog.test.tsx (36 tests) 530ms ✓ components/messages/UserMessage.test.tsx (23 tests) 75ms ✓ components/messages/AssistantMessage.test.tsx (16 tests) 334ms ✓ components/messages/ToolGroup.test.tsx (29 tests) 111ms ✓ components/dialogs/ScheduledTasksDialog.test.tsx (38 tests) 870ms ✓ voice/useVoiceCapture.test.tsx (9 tests) 41ms ✓ components/StreamingStatus.test.tsx (10 tests) 57ms ✓ index.test.tsx (15 tests) 126ms ✓ hooks/useListboxKeyboard.test.tsx (16 tests) 132ms ✓ components/dialogs/AddWorkspaceDialog.test.tsx (16 tests) 622ms ❯ components/sidebar/WebShellSidebar.collapse-persist.test.tsx (9 tests | 1 failed) 765ms ✓ WebShellSidebar collapsed session group persistence > writes collapsed section ids with the qwen-code-web-shell-* key 206ms ✓ WebShellSidebar collapsed session group persistence > keeps a collapsed named group collapsed across remount 35ms × WebShellSidebar collapsed session group persistence > keeps an expanded group expanded across remount after clearing collapse 137ms → expected 'false' to be 'true' // Object.is equality ✓ WebShellSidebar collapsed session group persistence > tolerates corrupt localStorage data 64ms ✓ WebShellSidebar collapsed session group persistence > ignores non-array localStorage payloads 73ms ✓ WebShellSidebar collapsed session group persistence > does not crash when localStorage.setItem throws 52ms ✓ WebShellSidebar collapsed session group persistence > auto-collapses a brand-new section that appears mid-session 76ms ✓ WebShellSidebar collapsed session group persistence > restores multiple section kinds and keeps sibling ids when one is removed 57ms ✓ WebShellSidebar collapsed session group persistence > does not clobber workspace-scoped collapse ids when primary toggles 62ms ✓ components/AtMentionPanel.test.tsx (13 tests) 125ms ✓ components/messages/EchartsFullDataBlock.test.tsx (72 tests) 957ms 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 (14 tests) 104ms ✓ components/extensions/ExtensionsManagerPage.test.tsx (20 tests) 1179ms ✓ components/dialogs/UsageDashboardTab.test.tsx (8 tests) 286ms ✓ config/daemon.test.ts (16 tests) 25ms ✓ components/MessageList.dom.test.tsx (55 tests) 1544ms ✓ MessageList — turn collapse (DOM) > reports scroll-to-bottom affordance when expanding content creates overflow 305ms ✓ hooks/useNewSessionSuggestion.test.tsx (6 tests) 28ms ✓ components/dialogs/ReleaseSessionDialog.test.tsx (5 tests) 120ms ✓ components/GitBranchIndicator.test.tsx (11 tests) 91ms ✓ components/ChatEditor.test.tsx (18 tests) 712ms ✓ hooks/useOtherWorkspaceSessions.test.tsx (6 tests) 27ms ✓ components/messages/tools/SubAgentPanel.test.tsx (9 tests) 83ms ✓ components/messages/SettingsMessage.dom.test.tsx (5 tests) 216ms ✓ components/messages/ToolApproval.test.ts (6 tests) 37ms ✓ components/messages/TasksStatusMessage.test.tsx (7 tests) 737ms ✓ components/sidebar/WebShellSidebar.workspace-removal.test.tsx (21 tests) 1625ms stderr | hooks/useComposerCore.dom.test.tsx > useComposerCore tags > uses a custom inline tooltip without a native title Attempted to synchronously unmount a root while React was already rendering. React cannot finish unmounting the root until the current render has completed, which may lead to a race condition. stderr | hooks/useComposerCore.dom.test.tsx > useComposerCore tags > falls back to a native title when attaching an inline tooltip fails Attempted to synchronously unmount a root while React was already rendering. React cannot finish unmounting the root until the current render has completed, which may lead to a race condition. ✓ hooks/useComposerCore.dom.test.tsx (9 tests) 329ms ✓ components/sidebar/WorkspaceSection.test.tsx (6 tests) 115ms ✓ components/dialogs/ModelFallbacksDialog.dom.test.tsx (8 tests) 111ms ✓ components/WorkspaceIndicator.test.tsx (6 tests) 178ms stderr | App.test.tsx > App session callbacks > does not steal focus when an approval appears before deferred session focus An update to App inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures 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/dialogs/DeleteSessionDialog.test.tsx (5 tests) 158ms 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:1425: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 () 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/messages/TodoView.test.tsx (4 tests) 89ms ✓ hooks/useSessionArtifacts.test.tsx (2 tests) 19ms ✓ components/dialogs/ModelDialog.test.tsx (5 tests) 69ms ✓ components/ErrorBoundary.test.tsx (6 tests) 48ms ✓ components/messages/Markdown.test.ts (63 tests) 2172ms ✓ Markdown code highlighting while streaming > highlights the block as it streams, and the appended chunk too 630ms ✓ Markdown code highlighting while streaming > applies Shiki highlighting once a code block has settled 308ms ✓ Markdown code highlighting while streaming > drops stale highlighted HTML when the code is replaced (regeneration) 619ms ✓ components/messages/tools/ParallelAgentsGroup.test.tsx (9 tests) 60ms ✓ components/dialogs/SessionRow.test.tsx (5 tests) 65ms ✓ components/RootErrorFallback.test.tsx (5 tests) 80ms ✓ hooks/useFilterInput.test.tsx (3 tests) 45ms ✓ hooks/useScopedSessions.test.tsx (2 tests) 40ms ✓ components/dialogs/RewindDialog.test.tsx (5 tests) 91ms ✓ utils/splitUrl.test.ts (15 tests) 10ms ✓ components/messages/Markdown.coldHighlight.test.ts (2 tests) 56ms ✓ components/messages/PlanMessage.test.tsx (6 tests) 95ms ✓ components/Editor.keymap.test.ts (5 tests) 57ms 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:83:13) at /startdir/src/qwen-code/packages/web-shell/client/App.tsx:2733:7 ✓ components/MessageTimestamp.test.tsx (5 tests) 37ms ✓ hooks/useIsLargeScreen.test.tsx (4 tests) 63ms ✓ components/StatusBar.test.tsx (4 tests) 77ms 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:83:13) at /startdir/src/qwen-code/packages/web-shell/client/App.tsx:2733:7 ✓ voice/VoiceButton.test.tsx (3 tests) 47ms ✓ components/dialogs/ResumeDialog.test.tsx (3 tests) 81ms ✓ components/dialogs/DialogShell.test.tsx (4 tests) 169ms 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:2071: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:2071:26 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20 ✓ components/dialogs/SvgLineChart.test.tsx (4 tests) 40ms ✓ components/sidebar/collapsedSessionSections.test.ts (2 tests) 4ms ✓ components/panels/TodoPanel.test.tsx (2 tests) 33ms ✓ components/artifacts/artifactUtils.test.ts (3 tests) 20ms ✓ components/dialogs/TokenHeatmap.test.tsx (3 tests) 152ms ✓ utils/todos.test.ts (66 tests) 12ms ✓ adapters/transcriptToMessages.test.ts (103 tests) 29ms ✓ test/setup.test.ts (1 test) 4ms ✓ components/QueuedPromptDisplay.test.tsx (4 tests) 36ms ✓ components/dialogs/ApprovalModeDialog.test.tsx (4 tests) 55ms ✓ components/artifacts/turnOutputSelectors.test.ts (20 tests) 7ms ✓ components/dialogs/ThemeDialog.test.tsx (1 test) 24ms ✓ components/messages/toolFormatting.test.ts (36 tests) 7ms ✓ components/dialogs/scheduledTasksSchedule.test.ts (17 tests) 34ms ✓ components/ui/react18-ref-compat.test.tsx (11 tests) 23ms ✓ components/messages/agentForest.test.ts (19 tests) 4ms ✓ utils/composerTag.test.ts (22 tests) 5ms ✓ midTurnDedup.test.ts (12 tests) 4ms ✓ utils/copyCommand.test.ts (11 tests) 6ms ✓ adapters/transcriptAdapter.test.ts (6 tests) 4ms ✓ utils/modelEncoding.test.ts (24 tests) 4ms ✓ components/dialogs/ToolsDialog.test.tsx (1 test) 36ms ✓ completions/slashCompletion.test.ts (22 tests) 19ms ✓ utils/composerInputState.test.ts (7 tests) 3ms ✓ components/toolbarDropdown.test.ts (7 tests) 5ms ✓ constants/localCommands.test.ts (10 tests) 3ms ✓ utils/sessionPreparation.test.ts (15 tests) 117ms ✓ utils/goalCondition.test.ts (19 tests) 5ms ✓ utils/workspace.test.ts (9 tests) 5ms ✓ components/messages/EnhancedMarkdownTable.test.tsx (115 tests) 3809ms ✓ EnhancedMarkdownTable > applies text filter operators and reset 462ms ✓ components/messages/codeHighlighter.retry.test.ts (4 tests) 7ms ✓ utils/escapeIntent.test.ts (9 tests) 7ms ✓ utils/workspaceColor.test.ts (5 tests) 3ms ✓ adapters/toolClassification.test.ts (8 tests) 3ms ✓ utils/slashSectionPlan.test.ts (6 tests) 9ms ✓ components/messages/toolFormatting.drift.test.ts (2 tests) 3ms ✓ utils/localCommandQueue.test.ts (5 tests) 7ms ✓ components/extensions/extensions-manager-logic.test.ts (3 tests) 3ms ✓ components/messages/codeHighlighter.test.ts (6 tests) 112ms ✓ components/skills/skills-manager-logic.test.ts (3 tests) 4ms ✓ build-artifact.test.ts (8 tests) 259ms ✓ utils/modelSwitchMessages.test.ts (3 tests) 3ms ✓ components/sidebar/sidebarToggleShortcut.test.ts (5 tests) 3ms ✓ utils/askUserPermission.test.ts (3 tests) 2ms ✓ utils/queueDrain.test.ts (8 tests) 3ms ✓ utils/cssUrlVar.test.ts (2 tests) 2ms ✓ hooks/useQueuedPrompts.test.ts (6 tests) 3ms ✓ components/messages/SystemMessage.test.tsx (3 tests) 25ms ✓ components/artifacts/TurnOutputs.test.ts (1 test) 1ms ✓ components/messages/SettingsMessage.test.ts (10 tests) 2ms ✓ hooks/useComposerCore.test.ts (16 tests) 4ms ✓ components/MessageList.test.ts (95 tests) 25ms 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:4918:7 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:5079:59 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20 ✓ App.test.tsx (136 tests) 5094ms ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ FAIL components/sidebar/WebShellSidebar.collapse-persist.test.tsx > WebShellSidebar collapsed session group persistence > keeps an expanded group expanded across remount after clearing collapse AssertionError: expected 'false' to be 'true' // Object.is equality Expected: "true" Received: "false" ❯ components/sidebar/WebShellSidebar.collapse-persist.test.tsx:295:66 293| await flushSidebar(); 294| 295| expect(groupHeader('Backend').getAttribute('aria-expanded')).toBe(… | ^ 296| expect(container.textContent).toContain('API review'); 297| }); ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed | 115 passed (116) Tests 1 failed | 1886 passed (1887) Start at 10:06:13 Duration 8.43s (transform 16.02s, setup 1.86s, collect 48.99s, tests 27.98s, environment 27.73s, prepare 7.57s) JUNIT report written to /startdir/src/qwen-code/packages/web-shell/junit.xml npm error Lifecycle script `test` failed with error: npm error code 1 npm error path /startdir/src/qwen-code/packages/web-shell npm error workspace @qwen-code/web-shell@0.19.12 npm error location /startdir/src/qwen-code/packages/web-shell npm error command failed npm error command sh -c vitest run --config vitest.config.ts --testTimeout=30000 '--exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants,serve/acp-http/transport,i18n/index,ui/auth/AuthDialog,ui/utils/clipboardUtils}.test.*' npm notice run @qwen-code/webui@0.19.12 test RUN v3.2.4 /startdir/src/qwen-code/packages/webui ✓ src/components/toolcalls/labelUtils.test.ts (8 tests) 10ms ✓ src/daemon/session/status.test.ts (4 tests) 3ms ✓ src/daemon/session/mappers.test.ts (14 tests) 7ms ✓ src/daemon/session/selectors.test.ts (7 tests) 7ms ✓ src/daemon/workspace/scheduledTasks.actions.test.ts (11 tests) 12ms ✓ src/daemon/workspace/goals.actions.test.ts (8 tests) 8ms ✓ src/daemon/workspace/actions.test.ts (8 tests) 20ms ✓ src/daemon/session/clientLifecycle.test.ts (13 tests) 7ms stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > loads data on autoLoad The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonStatusReport.test.tsx > useDaemonStatusReport > exposes the loaded data through the `report` alias The current testing environment is not configured to support act(...) Browserslist: browsers data (caniuse-lite) is 9 months old. Please run: npx update-browserslist-db@latest Why you should do it regularly: https://github.com/browserslist/update-db#readme stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > loads data on autoLoad The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > loads data on autoLoad The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > loads data on autoLoad The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > does not load when enabled is false The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > does not load when enabled is false The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > reports error on load failure The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > reports error on load failure The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > reports error on load failure The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > reports error on load failure The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > stale response does not overwrite fresh data The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > stale response does not overwrite fresh data The current testing environment is not configured to support act(...) The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > stale response does not overwrite fresh data The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > stale response does not overwrite fresh data The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > stale error does not overwrite fresh data The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > stale error does not overwrite fresh data The current testing environment is not configured to support act(...) The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > stale error does not overwrite fresh data The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > stale error does not overwrite fresh data The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonStatusReport.test.tsx > useDaemonStatusReport > exposes the loaded data through the `report` alias The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonStatusReport.test.tsx > useDaemonStatusReport > exposes the loaded data through the `report` alias The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonStatusReport.test.tsx > useDaemonStatusReport > exposes the loaded data through the `report` alias The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonStatusReport.test.tsx > useDaemonStatusReport > forwards the detail level to loadDaemonStatus (default summary) The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonStatusReport.test.tsx > useDaemonStatusReport > forwards the detail level to loadDaemonStatus (default summary) The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonStatusReport.test.tsx > useDaemonStatusReport > forwards the detail level to loadDaemonStatus (default summary) The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonStatusReport.test.tsx > useDaemonStatusReport > forwards the detail level to loadDaemonStatus (default summary) The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonStatusReport.test.tsx > useDaemonStatusReport > forwards the detail level to loadDaemonStatus (default summary) The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonStatusReport.test.tsx > useDaemonStatusReport > forwards the detail level to loadDaemonStatus (default summary) The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonStatusReport.test.tsx > useDaemonStatusReport > forwards the detail level to loadDaemonStatus (default summary) The current testing environment is not configured to support act(...) ✓ src/daemon/workspace/hooks/useDaemonResource.test.tsx (5 tests) 16ms ✓ src/daemon/workspace/hooks/useDaemonStatusReport.test.tsx (2 tests) 12ms ✓ src/hooks/useLocalStorage.test.tsx (6 tests) 19ms ✓ src/daemon/session/promptContent.test.ts (2 tests) 2ms ✓ src/hooks/useFollowupSuggestions.test.tsx (2 tests) 14ms ✓ src/daemon/workspace/hooks/useDaemonProviders.test.tsx (3 tests) 15ms ✓ src/components/messages/MarkdownRenderer/MarkdownRenderer.test.tsx (2 tests) 42ms ✓ src/components/PermissionDrawer.test.tsx (2 tests) 21ms ✓ src/components/messages/MessageMeta.test.tsx (4 tests) 44ms ✓ src/components/toolcalls/routing.test.ts (11 tests) 3ms stdout | src/daemon/midTurnInjectedSidechannel.test.ts > mid-turn injected sidechannel pub/sub > caps the buffer, evicting oldest batches past the limit [mid-turn] sidechannel buffer over 64; evicting 1 oldest batch(es) [mid-turn] sidechannel buffer over 64; evicting 1 oldest batch(es) [mid-turn] sidechannel buffer over 64; evicting 1 oldest batch(es) [mid-turn] sidechannel buffer over 64; evicting 1 oldest batch(es) [mid-turn] sidechannel buffer over 64; evicting 1 oldest batch(es) [mid-turn] sidechannel buffer over 64; evicting 1 oldest batch(es) ✓ src/daemon/midTurnInjectedSidechannel.test.ts (11 tests) 5ms ✓ src/daemon/transcriptAdapter.test.ts (12 tests) 5ms ✓ src/components/ChatViewer/ChatViewer.test.tsx (2 tests) 7ms ✓ src/daemon/session/actions.test.ts (24 tests) 81ms ✓ src/daemon/pendingPromptVersion.test.ts (7 tests) 896ms ✓ pending prompt sidechannel > bumps queue version for pending-prompt queue events 744ms stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps capabilities handshake failures out of the transcript [DaemonSessionProvider] retriable SSE error, preserving session for delta resume (sessionId=undefined) stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > 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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } ✓ src/daemon/workspace/DaemonWorkspaceProvider.test.tsx (16 tests) 62ms stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > can send immediately after creating a session from the empty state [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > adds daemon goal status metadata to the transcript [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes mid_turn_message_injected frames to the sidechannel and transcript [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > prevents double submit while a prompt is running [DaemonSessionProvider] SSE stream ended stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not restart the event stream after prompt acceptance by default [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps prompt loading active after non-blocking prompt acceptance [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps prompt loading active after non-blocking prompt acceptance [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > 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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > restarts the event stream when aborting the subscription throws [DaemonSessionProvider] SSE stream ended stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > shows waiting state when a queued prompt starts before assistant output [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles non-blocking prompts when turn completion arrives before acceptance returns [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles non-blocking prompts when turn completion arrives before acceptance returns [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > allows the next prompt after a turn completes before acceptance returns [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > allows the next prompt after a turn completes before acceptance returns [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > rejects the prompt when turn_error arrives before acceptance returns [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > rejects the prompt when turn_error arrives before acceptance returns [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > sends image prompt content through the daemon action [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > sends image prompt content through the daemon action [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > passes retry prompts through the daemon action [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > passes retry prompts through the daemon action [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > submits permission selections with optional answers [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes pending permission blocks [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes pending permission blocks [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes workspace event signals from daemon session events [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes workspace event signals from daemon session events [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > treats prompt abort during cancel as cancellation and keeps busy until cancel completes [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > treats prompt abort during cancel as cancellation and keeps busy until cancel completes [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > ends assistant streaming when prompt fails with a non-abort error [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not insert abort errors from shell commands into the transcript [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps cancellation turn errors in the transcript [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps cancellation turn errors in the transcript [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes prompt cancellation events as transcript blocks [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes prompt cancellation events as transcript blocks [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps forward-failed prompt cancellations out of blocks [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps forward-failed prompt cancellations out of blocks [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes catchingUp on resume and clears it on replay_complete [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > never sets catchingUp on a fresh subscription (no Last-Event-ID) [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears prompt state and transcript when reconnect attaches a different session [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears prompt state and transcript when reconnect attaches a different session [DaemonSessionProvider] terminal session error (sessionId=session-a, status=404, message=missing session) stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > reuses the same session client after a normal SSE stream end [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not inject replay snapshot again after a normal SSE stream end [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not inject replay snapshot again after a normal SSE stream end [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > injects replay snapshot on initial session load [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > renders bounded replay truncation from the loaded snapshot without resync [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps replayed non-turn events from marking a prompt as waiting [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps restored active prompts streaming after an SSE stream end [DaemonSessionProvider] SSE stream ended stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps local prompts active when a restored prompt completes [DaemonSessionProvider] SSE stream ended stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles restored active prompts when turn_complete arrives [DaemonSessionProvider] SSE stream ended stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles restored active prompts when turn_complete arrives [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles restored active prompts when turn_error arrives [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles restored active prompts when turn_error arrives [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles restored active prompts when turn_error arrives [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles restored active prompts when prompt_cancelled arrives [DaemonSessionProvider] SSE stream ended stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles restored active prompts when prompt_cancelled arrives [DaemonSessionProvider] SSE stream ended stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps local prompts active when a restored prompt is cancelled [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not revive settled restored active prompts after SSE reconnect [DaemonSessionProvider] SSE stream ended stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/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 | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/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 | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > finishes replayed assistant streaming when replay ends with turn_error [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > finishes each completed turn in replay snapshots [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not let replay state events overwrite fresh connection status [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > uses providers current model when session context has no model [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > seeds tokenCount from the latest replay usage on attach [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps the in-memory tokenCount across SSE re-subscribe when replay has no usage [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps the in-memory tokenCount across SSE re-subscribe when replay has no usage [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > resets tokenCount when reconnect attaches a different session without replay usage [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > resets tokenCount when reconnect attaches a different session without replay usage [DaemonSessionProvider] terminal session error (sessionId=session-usage-a, status=404, message=missing session) stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > finishes passive assistant streaming when no prompt action is active [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > finishes replayed assistant streaming when replay completes [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > creates a fresh thread session without cancelling the previous session [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > creates a fresh thread session without cancelling the previous session [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/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:2017:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > uses session-scoped client IDs when switching between loaded sessions An update to DaemonSessionProvider inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to DaemonSessionProvider inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to DaemonSessionProvider inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to DaemonSessionProvider inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to DaemonSessionProvider inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to DaemonSessionProvider inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > uses session-scoped client IDs when switching between loaded sessions 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 | src/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 | src/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 | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > rejects interrupted session loads as AbortError during cleanup [DaemonSessionProvider] retriable SSE error, preserving session for delta resume (sessionId=undefined) stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > 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 | src/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 | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears the session when reconnect is disabled after SSE stream end [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not settle unaccepted prompts from historical replay turns [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > retries when ring-evicted reload fails once [DaemonSessionProvider] retriable SSE error, preserving session for delta resume (sessionId=undefined) stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > preserves session and uses delta resume after a retriable SSE error [DaemonSessionProvider] retriable SSE error, preserving session for delta resume (sessionId=session-1) stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes session_died errors to notices, not transcript [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > deduplicates live and snapshot recording degradation notices [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears a degraded notice after an authoritative healthy snapshot [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > allows a later degraded snapshot to restore a dismissed notice [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes stream_error to notices with connection category [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes model_switch_failed to notices with user_action category [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps turn_error in transcript instead of routing to notices [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes client_evicted to notices with connection category [DaemonSessionProvider] SSE stream ended ✓ src/daemon/session/DaemonSessionProvider.test.tsx (163 tests) 3829ms ✓ DaemonSessionProvider > keeps restored active prompts streaming after resync requests 924ms ✓ DaemonSessionProvider > reloads stale transcript after epoch-reset resync 1077ms Test Files 25 passed (25) Tests 347 passed (347) Start at 10:06:22 Duration 5.35s (transform 3.67s, setup 0ms, collect 9.12s, tests 5.15s, environment 3.32s, prepare 3.52s) npm notice run @qwen-code/channel-base@0.19.12 test RUN v3.2.4 /startdir/src/qwen-code/packages/channels/base [scheduler] started, tick interval 1000ms, jobs 0, enabled 0, cleared stale running 0 ✓ src/GroupGate.test.ts (13 tests) 4ms ✓ src/channel-memory-intent.test.ts (10 tests) 13ms ✓ src/sanitize.test.ts (31 tests) 9ms ✓ src/ChannelLoopTools.test.ts (12 tests) 18ms ✓ src/DmGate.test.ts (4 tests) 11ms ✓ src/BlockStreamer.test.ts (17 tests) 34ms ✓ src/ChannelLoopStore.test.ts (14 tests) 85ms [AcpBridge] Channel loop MCP server registration skipped: budget_warning_only [PairingStore] legacy migration of support-bot-allowlist.json failed for channel "support-bot": EISDIR: illegal operation on a directory, copyfile '/tmp/pairing-home-DpCcyr/channels/support-bot-allowlist.json' -> '/tmp/pairing-home-DpCcyr/channels/pairing-ws-a-G0z48j-0b0b1025ec44/support-bot-allowlist.json.55390.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-ZugvWe/channels/support-bot-pairing.json' -> '/tmp/pairing-home-ZugvWe/channels/pairing-ws-a-SXnT8r-54c061e66ae4/support-bot-pairing.json.55390.migrating'; will retry on next start ✓ src/paths.test.ts (14 tests) 9ms [PairingStore] legacy migration of support-bot-allowlist.json failed for channel "support-bot": EISDIR: illegal operation on a directory, copyfile '/tmp/pairing-home-GRy0mi/channels/support-bot-allowlist.json' -> '/tmp/pairing-home-GRy0mi/channels/pairing-ws-a-jeDZal-1efdfcc7eedb/support-bot-allowlist.json.55390.migrating'; will retry on next start ✓ src/SenderGate.test.ts (14 tests) 20ms ✓ src/PairingStore.test.ts (21 tests) 31ms ✓ src/channel-memory-recall.test.ts (16 tests) 12ms ✓ src/group-history-store.test.ts (11 tests) 29ms ✓ src/DaemonChannelBridge.test.ts (51 tests) 128ms [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] Corrupted persist file at /tmp/qwen-router-LvDW2X/routes.json: Expected property name or '}' in JSON at position 1 (line 1 column 2) [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=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] permission response failed for request req-1: send failed [test-chan] permission relay failed for request req-1: send failed [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 (95 tests) 215ms [Channel:test-chan] preflight rejected reason=group_not_allowlisted [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 read unavailable [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 [scheduler] invalid cron for loop job-1: Error: impossible cron ✓ src/ChannelLoopScheduler.test.ts (23 tests) 969ms [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 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) [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) [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=: memory boom [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 [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] steer: cancelled active turn for user1 in session s-1 [test-chan] cancelSession failed for session=s-1: cancel failed [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: 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 (488 tests) 8556ms ✓ ChannelBase > response delivery > delivers completion when cancellation outlives the reconciliation timeout 3077ms [AcpBridge] Process exited (code=1, signal=null) ✓ src/AcpBridge.test.ts (29 tests) 12086ms ✓ AcpBridge > kills the ACP child when it reports a large event loop stall 1004ms ✓ AcpBridge > kills the ACP child when a stall line is coalesced with prior stderr 1009ms ✓ AcpBridge > does not kill the ACP child for a small event loop stall warning 1003ms ✓ AcpBridge > ignores non-perf stderr that mentions an event loop stall 1006ms ✓ AcpBridge > does not kill the ACP child again after it is already killed 1003ms ✓ AcpBridge > relays ACP permission requests instead of auto-approving them 1005ms ✓ AcpBridge > allows permission request listeners to respond synchronously 1005ms ✓ AcpBridge > falls back to the tool call id for permission requests without a session id 1008ms ✓ AcpBridge > resolves matching pending permissions as cancelled when a session is cancelled 1006ms ✓ AcpBridge > resolves pending permissions as cancelled after the response timeout 1005ms ✓ AcpBridge > resolves pending permissions as cancelled when the ACP child exits 1007ms ✓ AcpBridge > resolves pending permissions as cancelled on stop 1003ms Test Files 17 passed (17) Tests 863 passed (863) Start at 10:06:28 Duration 13.22s (transform 4.62s, setup 0ms, collect 11.39s, tests 22.23s, environment 3ms, prepare 2.21s) npm notice run @qwen-code/channel-telegram@0.19.12 test RUN v3.2.4 /startdir/src/qwen-code/packages/channels/telegram ✓ src/TelegramAdapter.test.ts (14 tests) 29ms Test Files 1 passed (1) Tests 14 passed (14) Start at 10:06:42 Duration 978ms (transform 345ms, setup 0ms, collect 573ms, tests 29ms, environment 0ms, prepare 110ms) npm notice run @qwen-code/channel-dingtalk@0.19.12 test RUN v3.2.4 /startdir/src/qwen-code/packages/channels/dingtalk ✓ src/markdown.test.ts (21 tests) 11ms ✓ src/DingtalkConnectionManager.test.ts (26 tests) 34ms [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] message msgId=group-name-m1 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: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. ✓ src/DingtalkAdapter.test.ts (72 tests) 451ms Test Files 3 passed (3) Tests 119 passed (119) Start at 10:06:43 Duration 1.59s (transform 686ms, setup 0ms, collect 1.11s, tests 496ms, environment 0ms, prepare 306ms) npm notice run @qwen-code/channel-wecom@0.19.12 test RUN v3.2.4 /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. ✓ src/WeComAdapter.test.ts (134 tests) 5609ms ✓ WeComChannel > keeps files buffered during a coalesced prompt for the next prompt 329ms Test Files 1 passed (1) Tests 134 passed (134) Start at 10:06:46 Duration 6.89s (transform 664ms, setup 0ms, collect 887ms, tests 5.61s, environment 0ms, prepare 108ms) npm notice run @qwen-code/channel-qqbot@0.19.12 test RUN v3.2.4 /startdir/src/qwen-code/packages/channels/qqbot ✓ src/accounts.test.ts (8 tests) 5ms [QQ] Token request failed (HTTP 401) ✓ src/api.test.ts (28 tests) 12ms [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 [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/persistence.test.ts (27 tests) 21ms ✓ src/stream.test.ts (43 tests) 32ms [QQ:test-bot] Cron text chunk dropped (not ready): should be ignored for session sess-1 [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] Slash cmd from Bob (group-openid-1): /status [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] Invalid botOpenId format: ABCDEF012345 [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] 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 [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) ✓ src/cron.test.ts (15 tests) 40ms [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 (71 tests) 74ms [QQ:qq-bot] Slash cmd from Alice (grp-1): /clear [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] 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] skipped for test-chat-id [QQ:test-bot] skipped for test-chat-id [QQ:test-bot] 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:57789) 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] test send failed: rate limited [QQ:test-bot] test delivery failed (RETRY_EXHAUSTED): permanent failure, dropping 11 chars [QQ:test-bot] test delivery failed (ACTIVE_MSG_DISABLED): active messages disabled, dropping 11 chars [QQ:test-bot] Sending RESUME (session: resume-session-123) ✓ src/send.test.ts (82 tests) 70ms Test Files 7 passed (7) Tests 274 passed (274) Start at 10:06:53 Duration 1.59s (transform 1.50s, setup 0ms, collect 3.21s, tests 254ms, environment 1ms, prepare 1.19s) ==> ERROR: A failure occurred in check(). Aborting... ==> ERROR: Build failed, check /home/alhp/workspace/chroot/build_a337c4e5-3d5b-4f58-bb4a-bab47fd841c9/build