==> Synchronizing chroot copy [/home/alhp/workspace/chroot/root] -> [build_f47124f2-8107-49c8-8c7a-ca3e314c9fac]...done ==> Making package: qwen-code 0.19.2-1.1 (Fri Jul 3 14:08:45 2026) ==> Retrieving sources... -> Cloning qwen-code git repo... Cloning into bare repository '/home/alhp/workspace/build/x86-64-v3/qwen-code-0.19.2-1/qwen-code'... ==> Validating source files with sha256sums... qwen-code ... Passed ==> Validating source files with b2sums... qwen-code ... Passed ==> Making package: qwen-code 0.19.2-1.1 (Fri Jul 3 12:13:59 2026) ==> Checking runtime dependencies... ==> Installing missing dependencies... resolving dependencies... looking for conflicting packages... Package (6) New Version Net Change extra/ada 3.4.4-1 1.08 MiB extra/c-ares 1.34.6-1 0.51 MiB extra/libuv 1.52.1-1 0.64 MiB extra/simdjson 1:4.6.4-1 7.58 MiB extra/nodejs 26.4.0-1 61.13 MiB extra/ripgrep 15.1.0-4 4.30 MiB Total Installed Size: 75.23 MiB :: Proceed with installation? [Y/n] checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing ada... installing c-ares... installing libuv... installing simdjson... installing nodejs... Optional dependencies for nodejs npm: nodejs package manager installing ripgrep... :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... ==> Checking buildtime dependencies... ==> Installing missing dependencies... resolving dependencies... looking for conflicting packages... Package (11) New Version Net Change Download Size extra/node-gyp 13.0.1-1 6.74 MiB 1.00 MiB extra/nodejs-nopt 10.0.1-1 0.03 MiB extra/oniguruma 6.9.10-1 0.88 MiB extra/perl-error 0.17030-3 0.04 MiB extra/perl-mailtools 2.22-3 0.10 MiB extra/perl-timedate 2.35-1 0.15 MiB extra/semver 7.8.5-1 0.10 MiB extra/zlib-ng 2.3.3-1 0.28 MiB extra/git 2.55.0-1 31.33 MiB extra/jq 1.8.2-1 0.47 MiB extra/npm 11.16.0-1 9.09 MiB Total Download Size: 1.00 MiB Total Installed Size: 49.20 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... node-gyp-13.0.1-1-any downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing perl-error... installing perl-timedate... installing perl-mailtools... installing zlib-ng... installing git... Optional dependencies for git git-zsh-completion: upstream zsh completion tk: gitk and git gui openssh: ssh transport and crypto man: show help with `git command --help` perl-libwww: git svn perl-term-readkey: git svn and interactive.singlekey setting perl-io-socket-ssl: git send-email TLS support perl-authen-sasl: git send-email TLS support perl-cgi: gitweb (web interface) support python: git svn & git p4 [installed] subversion: git svn org.freedesktop.secrets: keyring credential helper libsecret: libsecret credential helper [installed] less: the default pager for git installing oniguruma... installing jq... installing nodejs-nopt... installing semver... installing node-gyp... Optional dependencies for node-gyp gcc: to build C++ modules [installed] make: to build C++ modules [installed] python: to build C++ modules [installed] installing npm... Optional dependencies for npm git: for dependencies using Git URL's [installed] :: Running post-transaction hooks... (1/3) Creating system user accounts... Creating group 'git' with GID 968. Creating user 'git' (git daemon user) with UID 968 and GID 968. (2/3) Reloading system manager configuration... Skipped: Current root is not booted. (3/3) Arming ConditionNeedsUpdate... ==> Retrieving sources... ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources... -> Creating working copy of qwen-code git repo... Cloning into 'qwen-code'... done. Updating files: 39% (2468/6290) Updating files: 40% (2516/6290) Updating files: 41% (2579/6290) Updating files: 42% (2642/6290) Updating files: 43% (2705/6290) Updating files: 44% (2768/6290) Updating files: 45% (2831/6290) Updating files: 46% (2894/6290) Updating files: 47% (2957/6290) Updating files: 48% (3020/6290) Updating files: 49% (3083/6290) Updating files: 50% (3145/6290) Updating files: 51% (3208/6290) Updating files: 52% (3271/6290) Updating files: 53% (3334/6290) Updating files: 54% (3397/6290) Updating files: 55% (3460/6290) Updating files: 56% (3523/6290) Updating files: 57% (3586/6290) Updating files: 58% (3649/6290) Updating files: 59% (3712/6290) Updating files: 60% (3774/6290) Updating files: 61% (3837/6290) Updating files: 62% (3900/6290) Updating files: 63% (3963/6290) Updating files: 64% (4026/6290) Updating files: 65% (4089/6290) Updating files: 66% (4152/6290) Updating files: 67% (4215/6290) Updating files: 68% (4278/6290) Updating files: 69% (4341/6290) Updating files: 70% (4403/6290) Updating files: 71% (4466/6290) Updating files: 72% (4529/6290) Updating files: 73% (4592/6290) Updating files: 74% (4655/6290) Updating files: 75% (4718/6290) Updating files: 76% (4781/6290) Updating files: 77% (4844/6290) Updating files: 78% (4907/6290) Updating files: 79% (4970/6290) Updating files: 80% (5032/6290) Updating files: 81% (5095/6290) Updating files: 82% (5158/6290) Updating files: 83% (5221/6290) Updating files: 84% (5284/6290) Updating files: 85% (5347/6290) Updating files: 86% (5410/6290) Updating files: 87% (5473/6290) Updating files: 88% (5536/6290) Updating files: 89% (5599/6290) Updating files: 90% (5661/6290) Updating files: 91% (5724/6290) Updating files: 92% (5787/6290) Updating files: 93% (5850/6290) Updating files: 94% (5913/6290) Updating files: 95% (5976/6290) Updating files: 96% (6039/6290) Updating files: 96% (6069/6290) Updating files: 97% (6102/6290) Updating files: 98% (6165/6290) Updating files: 99% (6228/6290) Updating files: 100% (6290/6290) Updating files: 100% (6290/6290), done. Switched to a new branch 'makepkg' ==> Starting prepare()... npm warn deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported npm warn deprecated prebuild-install@7.1.3: No longer maintained. Please contact the author of the relevant native addon; alternatives are available. npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. npm warn deprecated node-domexception@1.0.0: Use your platform's native DOMException instead npm warn deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead npm warn deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm warn deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options. added 1814 packages, and audited 1832 packages in 2m 541 packages are looking for funding run `npm fund` for details 68 vulnerabilities (2 low, 39 moderate, 22 high, 5 critical) To address issues that do not require attention, run: npm audit fix To address all issues (including breaking changes), run: npm audit fix --force Run `npm audit` for details. patch-package 8.0.1 Applying patches... ink@7.0.3 ✔ ==> Starting build()... > @qwen-code/qwen-code@0.19.2 build > cross-env NODE_OPTIONS="--max-old-space-size=3072" node scripts/build.js > @qwen-code/qwen-code@0.19.2 generate > node scripts/generate-git-commit-info.js > @qwen-code/qwen-code-core@0.19.2 build > node ../../scripts/build_package.js Successfully copied files. > @qwen-code/web-templates@0.19.2 build > node build.mjs && tsc --build --clean && tsc Building web-templates... Building insight assets with Vite... vite v5.4.21 building for production... transforming... Browserslist: browsers data (caniuse-lite) is 8 months old. Please run: npx update-browserslist-db@latest Why you should do it regularly: https://github.com/browserslist/update-db#readme ✓ 7 modules transformed. rendering chunks... computing gzip size... dist/main.css 17.77 kB │ gzip: 4.28 kB dist/main.js 32.65 kB │ gzip: 8.91 kB ✓ built in 471ms Reading generated files... Successfully generated /startdir/src/qwen-code/packages/web-templates/src/generated/insightTemplate.ts Successfully built all web-templates. > @qwen-code/channel-base@0.19.2 build > tsc --build > @qwen-code/channel-telegram@0.19.2 build > tsc --build > @qwen-code/channel-weixin@0.19.2 build > tsc --build > @qwen-code/channel-dingtalk@0.19.2 build > tsc --build > @qwen-code/channel-feishu@0.19.2 build > tsc --build > @qwen-code/channel-qqbot@0.19.2 build > tsc --build > @qwen-code/channel-plugin-example@0.19.2 build > tsc --build > @qwen-code/audio-capture@0.19.2 build:ts > tsc --build > @qwen-code/acp-bridge@0.19.2 build > node ../../scripts/build_package.js Successfully copied files. > @qwen-code/qwen-code@0.19.2 build > node ../../scripts/build_package.js Successfully copied files. Generated settings JSON Schema at: /startdir/src/qwen-code/packages/vscode-ide-companion/schemas/settings.schema.json (node:1573) [DEP0205] DeprecationWarning: `module.register()` is deprecated. Use `module.registerHooks()` instead. (Use `node --trace-deprecation ...` to show where the warning was created) > @qwen-code/webui@0.19.2 build > vite build vite v5.4.21 building for production... transforming... Browserslist: browsers data (caniuse-lite) is 8 months old. Please run: npx update-browserslist-db@latest Why you should do it regularly: https://github.com/browserslist/update-db#readme ✓ 191 modules transformed. rendering chunks... [vite:dts] Start generate declaration files... computing gzip size... dist/styles.css 83.27 kB │ gzip: 15.51 kB dist/toolNames-kewwpc1v.js 0.30 kB │ gzip: 0.23 kB │ map: 1.00 kB dist/daemon-react-sdk.js 137.20 kB │ gzip: 25.27 kB │ map: 262.51 kB dist/index.js 389.19 kB │ gzip: 97.85 kB │ map: 834.49 kB [vite:dts] Start rollup declaration files... Analysis will use the bundled TypeScript version 5.8.2 Analysis will use the bundled TypeScript version 5.8.2 [vite:dts] Declaration files built in 14867ms. dist/styles.css 83.27 kB │ gzip: 15.51 kB dist/toolNames-C9pS8yq9.cjs 0.33 kB │ gzip: 0.24 kB │ map: 1.00 kB dist/daemon-react-sdk.cjs 138.12 kB │ gzip: 25.26 kB │ map: 263.72 kB dist/index.cjs 398.60 kB │ gzip: 98.60 kB │ map: 839.55 kB ✓ built in 17.41s > @qwen-code/sdk@0.1.8 build > node scripts/build.js Compiling input files... Processing src/index.ts Writing src/index.ts -> dist/index.d.ts Checking generated files... Compiler option "skipLibCheck" is disabled to properly check generated output Done in 19.53s > @qwen-code/web-shell@0.19.2 build > vite build && vite build --config vite.lib.config.ts && tsc -p tsconfig.lib.json vite v5.4.21 building for production... transforming... ✓ 2837 modules transformed. rendering chunks... computing gzip size... ../dist/index.html 1.10 kB │ gzip: 0.64 kB ../dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff 4.42 kB ../dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 4.93 kB ../dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 5.21 kB ../dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 5.47 kB ../dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff 5.98 kB ../dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff 6.19 kB ../dist/assets/KaTeX_Size1-Regular-C195tn64.woff 6.50 kB ../dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 6.91 kB ../dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 6.91 kB ../dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf 7.59 kB ../dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff 7.66 kB ../dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff 7.72 kB ../dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 9.64 kB ../dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 10.34 kB ../dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf 10.36 kB ../dist/assets/KaTeX_Script-Regular-D5yQViql.woff 10.59 kB ../dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 11.32 kB ../dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 11.35 kB ../dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf 11.51 kB ../dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 12.03 kB ../dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 12.22 kB ../dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf 12.23 kB ../dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff 12.32 kB ../dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf 12.34 kB ../dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf 12.37 kB ../dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff 13.21 kB ../dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff 13.30 kB ../dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 13.57 kB ../dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff 14.11 kB ../dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff 14.41 kB ../dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff 16.03 kB ../dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 16.40 kB ../dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 16.44 kB ../dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf 16.65 kB ../dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 16.78 kB ../dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 16.99 kB ../dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff 18.67 kB ../dist/assets/KaTeX_Math-Italic-DA0__PXp.woff 18.75 kB ../dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff 19.41 kB ../dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf 19.44 kB ../dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf 19.57 kB ../dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf 19.58 kB ../dist/assets/KaTeX_Main-Italic-BMLOBm91.woff 19.68 kB ../dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf 22.36 kB ../dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf 24.50 kB ../dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 25.32 kB ../dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 26.27 kB ../dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf 27.56 kB ../dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 28.08 kB ../dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff 29.91 kB ../dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff 30.77 kB ../dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf 31.20 kB ../dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf 31.31 kB ../dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf 32.97 kB ../dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff 33.52 kB ../dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf 33.58 kB ../dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf 51.34 kB ../dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf 53.58 kB ../dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf 63.63 kB ../dist/assets/index-oVK7qhre.css 156.33 kB │ gzip: 30.79 kB ../dist/assets/channel-DYPNiTww.js 0.11 kB │ gzip: 0.13 kB ../dist/assets/init-Gi6I4Gst.js 0.15 kB │ gzip: 0.13 kB ../dist/assets/chunk-QZHKN3VN-gD3vsFId.js 0.19 kB │ gzip: 0.16 kB ../dist/assets/chunk-55IACEB6-DRgTLvBu.js 0.24 kB │ gzip: 0.21 kB ../dist/assets/chunk-4BX2VUAB-BU-x368d.js 0.30 kB │ gzip: 0.20 kB ../dist/assets/chunk-FMBD7UC4-BMyPH-ku.js 0.37 kB │ gzip: 0.27 kB ../dist/assets/stateDiagram-v2-BHNVJYJU-BHUSEndU.js 0.39 kB │ gzip: 0.29 kB ../dist/assets/classDiagram-4FO5ZUOK-p_g25Tni.js 0.47 kB │ gzip: 0.32 kB ../dist/assets/classDiagram-v2-Q7XG4LA2-p_g25Tni.js 0.47 kB │ gzip: 0.32 kB ../dist/assets/chunk-2J33WTMH-BtNuY5Yp.js 0.53 kB │ gzip: 0.37 kB ../dist/assets/codeowners-Bp6g37R7.js 0.55 kB │ gzip: 0.32 kB ../dist/assets/infoDiagram-5YYISTIA-CFYBrkVI.js 0.59 kB │ gzip: 0.40 kB ../dist/assets/shellsession-C_rIy8kc.js 0.72 kB │ gzip: 0.43 kB ../dist/assets/tsv-B_m7g4N7.js 0.74 kB │ gzip: 0.34 kB ../dist/assets/html-derivative-CSfWNPLT.js 0.97 kB │ gzip: 0.53 kB ../dist/assets/git-rebase-B-v9cOL2.js 0.98 kB │ gzip: 0.44 kB ../dist/assets/qmldir-C8lEn-DE.js 1.00 kB │ gzip: 0.45 kB ../dist/assets/fortran-fixed-form-TqA4NnZg.js 1.11 kB │ gzip: 0.54 kB ../dist/assets/ordinal-Cboi1Yqb.js 1.19 kB │ gzip: 0.57 kB ../dist/assets/csv-B0qRVHPH.js 1.22 kB │ gzip: 0.37 kB ../dist/assets/xsl-Dd0NUgwM.js 1.39 kB │ gzip: 0.52 kB ../dist/assets/sparql-bYkjHRlG.js 1.51 kB │ gzip: 0.83 kB ../dist/assets/ini-BjABl1g7.js 1.53 kB │ gzip: 0.50 kB ../dist/assets/git-commit-i4q6IMui.js 1.55 kB │ gzip: 0.67 kB ../dist/assets/dotenv-BjQB5zDj.js 1.70 kB │ gzip: 0.63 kB ../dist/assets/wenyan-7A4Fjokl.js 1.71 kB │ gzip: 1.08 kB ../dist/assets/docker-COcR7UxN.js 1.77 kB │ gzip: 0.60 kB ../dist/assets/hxml-TIA70rKU.js 1.83 kB │ gzip: 0.89 kB ../dist/assets/chunk-ND2GUHAM-BNKTstUf.js 1.86 kB │ gzip: 0.82 kB ../dist/assets/desktop-DEIpsLCJ.js 2.03 kB │ gzip: 0.79 kB ../dist/assets/edge-D5gP-w-T.js 2.36 kB │ gzip: 0.70 kB ../dist/assets/reg-5LuOXUq_.js 2.37 kB │ gzip: 0.71 kB ../dist/assets/berry-3xVqZejG.js 2.45 kB │ gzip: 0.79 kB ../dist/assets/erb-BYTLMnw6.js 2.61 kB │ gzip: 0.84 kB ../dist/assets/diff-BgYniUM_.js 2.64 kB │ gzip: 0.74 kB ../dist/assets/gleam-B430Bg39.js 2.69 kB │ gzip: 0.85 kB ../dist/assets/diagram-5GNKFQAL-BGCJjO6y.js 2.75 kB │ gzip: 1.37 kB ../dist/assets/hy-BMj5Y0dO.js 2.82 kB │ gzip: 1.19 kB ../dist/assets/json-BQoSv7ci.js 2.92 kB │ gzip: 0.81 kB ../dist/assets/cairo--RitsXJZ.js 2.95 kB │ gzip: 0.81 kB ../dist/assets/log-Cc5clBb7.js 2.97 kB │ gzip: 0.88 kB ../dist/assets/jssm-P4WzXJd0.js 2.97 kB │ gzip: 0.70 kB ../dist/assets/jsonl-DREVFZK8.js 3.10 kB │ gzip: 0.82 kB ../dist/assets/jsonc-TU54ms6u.js 3.20 kB │ gzip: 0.83 kB ../dist/assets/logo-IuBKFhSY.js 3.21 kB │ gzip: 1.49 kB ../dist/assets/genie-ajMbGru0.js 3.38 kB │ gzip: 1.21 kB ../dist/assets/po-BFLt1xDp.js 3.38 kB │ gzip: 0.99 kB ../dist/assets/tasl-CQjiPCtT.js 3.39 kB │ gzip: 0.88 kB ../dist/assets/vala-BFOHcciG.js 3.40 kB │ gzip: 1.19 kB ../dist/assets/mipsasm-BC5c_5Pe.js 3.41 kB │ gzip: 1.28 kB ../dist/assets/arc-D_ae_Y9k.js 3.42 kB │ gzip: 1.45 kB ../dist/assets/rel-DJlmqQ1C.js 3.43 kB │ gzip: 1.10 kB ../dist/assets/json5-w8dY5SsB.js 3.54 kB │ gzip: 0.94 kB ../dist/assets/ssh-config-BknIz3MU.js 3.61 kB │ gzip: 1.59 kB ../dist/assets/fluent-Dayu4EKP.js 3.62 kB │ gzip: 0.89 kB ../dist/assets/jsonnet-BfivnA6A.js 3.63 kB │ gzip: 1.07 kB ../dist/assets/narrat-DLbgOhZU.js 3.69 kB │ gzip: 1.12 kB ../dist/assets/turtle-BMR_PYu6.js 3.71 kB │ gzip: 0.98 kB ../dist/assets/splunk-Cf8iN4DR.js 3.92 kB │ gzip: 1.67 kB ../dist/assets/glsl-DBO2IWDn.js 3.94 kB │ gzip: 1.45 kB ../dist/assets/nextflow-B0XVJmRM.js 3.96 kB │ gzip: 1.09 kB ../dist/assets/sdbl-BLhTXw86.js 4.14 kB │ gzip: 2.08 kB ../dist/assets/pascal-JqZropPD.js 4.18 kB │ gzip: 1.69 kB ../dist/assets/smalltalk-DkLiglaE.js 4.20 kB │ gzip: 1.25 kB ../dist/assets/diagram-LMA3HP47-BN1wyAGh.js 4.24 kB │ gzip: 1.84 kB ../dist/assets/lean-XBlWyCtg.js 4.29 kB │ gzip: 1.33 kB ../dist/assets/zenscript-HnGAYVZD.js 4.40 kB │ gzip: 1.42 kB ../dist/assets/bicep-DHo0CJ0O.js 4.45 kB │ gzip: 1.08 kB ../dist/assets/http-FRrOvY1W.js 4.65 kB │ gzip: 1.14 kB ../dist/assets/polar-DKykz6zU.js 4.68 kB │ gzip: 1.17 kB ../dist/assets/defaultLocale-DX6XiGOO.js 4.69 kB │ gzip: 2.17 kB ../dist/assets/fennel-bCA53EVm.js 4.82 kB │ gzip: 1.57 kB ../dist/assets/tcl-DQ1-QYvQ.js 5.02 kB │ gzip: 1.68 kB ../dist/assets/bibtex-xW4inM5L.js 5.08 kB │ gzip: 0.81 kB ../dist/assets/pieDiagram-4H26LBE5-MQXNhl5A.js 5.32 kB │ gzip: 2.36 kB ../dist/assets/fish-w-ucz2PV.js 5.39 kB │ gzip: 1.69 kB ../dist/assets/xml-e3z08dGr.js 5.41 kB │ gzip: 1.22 kB ../dist/assets/qml-D8XfuvdV.js 5.42 kB │ gzip: 1.39 kB ../dist/assets/zig-BVz_zdnA.js 5.46 kB │ gzip: 1.59 kB ../dist/assets/gdresource-BHYsBjWJ.js 5.48 kB │ gzip: 1.37 kB ../dist/assets/awk-eg146-Ew.js 5.49 kB │ gzip: 1.38 kB ../dist/assets/dax-ClGRhx96.js 5.53 kB │ gzip: 2.25 kB ../dist/assets/linear-DGGM2kcP.js 5.66 kB │ gzip: 2.31 kB ../dist/assets/jinja-DGy0s7-h.js 5.72 kB │ gzip: 1.42 kB ../dist/assets/powerquery-CSHBycmS.js 5.93 kB │ gzip: 1.52 kB ../dist/assets/verilog-CJaU5se_.js 5.94 kB │ gzip: 1.90 kB ../dist/assets/diagram-2AECGRRQ-Bxi1I_Vu.js 5.97 kB │ gzip: 2.50 kB ../dist/assets/coq-Dsg_Bt_b.js 5.99 kB │ gzip: 2.03 kB ../dist/assets/vb-CdO5JTpU.js 6.26 kB │ gzip: 2.35 kB ../dist/assets/red-bN70gL4F.js 6.26 kB │ gzip: 1.60 kB ../dist/assets/shaderlab-B7qAK45m.js 6.27 kB │ gzip: 2.10 kB ../dist/assets/min-dark-CafNBF8u.js 6.29 kB │ gzip: 1.72 kB ../dist/assets/gdshader-SKMF96pI.js 6.37 kB │ gzip: 1.75 kB ../dist/assets/prisma-B48N-Iqd.js 6.39 kB │ gzip: 1.40 kB ../dist/assets/solarized-light-L9t79GZl.js 6.48 kB │ gzip: 1.74 kB ../dist/assets/wgsl-CB0Krxn9.js 6.49 kB │ gzip: 1.69 kB ../dist/assets/postcss-B3ZDOciz.js 6.52 kB │ gzip: 1.93 kB ../dist/assets/toml-CB2ApiWb.js 6.53 kB │ gzip: 1.30 kB ../dist/assets/proto-zocC4JxJ.js 6.57 kB │ gzip: 1.42 kB ../dist/assets/talonscript-C1XDQQGZ.js 6.71 kB │ gzip: 1.47 kB ../dist/assets/cypher-m2LEI-9-.js 6.81 kB │ gzip: 1.83 kB ../dist/assets/solarized-dark-DXbdFlpD.js 6.85 kB │ gzip: 1.81 kB ../dist/assets/soy-C-lX7w71.js 6.95 kB │ gzip: 1.67 kB ../dist/assets/min-light-CTRr51gU.js 6.97 kB │ gzip: 1.90 kB ../dist/assets/clojure-DxSadP1t.js 7.08 kB │ gzip: 1.48 kB ../dist/assets/ara-7O62HKoU.js 7.25 kB │ gzip: 2.11 kB ../dist/assets/hlsl-ifBTmRxC.js 7.61 kB │ gzip: 2.24 kB ../dist/assets/riscv-QhoSD0DR.js 7.70 kB │ gzip: 2.21 kB ../dist/assets/qss-DhMKtDLN.js 7.82 kB │ gzip: 2.62 kB ../dist/assets/monokai-D4h5O-jR.js 7.88 kB │ gzip: 1.92 kB ../dist/assets/dart-B9wLZaAG.js 7.89 kB │ gzip: 1.93 kB ../dist/assets/systemd-CUnW07Te.js 8.00 kB │ gzip: 2.56 kB ../dist/assets/regexp-DWJ3fJO_.js 8.07 kB │ gzip: 1.46 kB ../dist/assets/haml-B2EZWmdv.js 8.49 kB │ gzip: 1.87 kB ../dist/assets/typst-BVUVsWT6.js 8.55 kB │ gzip: 1.70 kB ../dist/assets/plsql-LKU2TuZ1.js 8.57 kB │ gzip: 3.03 kB ../dist/assets/vue-html-xdeiXROB.js 8.70 kB │ gzip: 1.77 kB ../dist/assets/scheme-BJGe-b2p.js 8.72 kB │ gzip: 2.61 kB ../dist/assets/kotlin-B5lbUyaz.js 8.82 kB │ gzip: 2.14 kB ../dist/assets/andromeeda-C3khCPGq.js 8.86 kB │ gzip: 2.31 kB ../dist/assets/make-Bvotw-X0.js 9.01 kB │ gzip: 1.77 kB ../dist/assets/dark-plus-C3mMm8J8.js 9.10 kB │ gzip: 2.10 kB ../dist/assets/slack-dark-BthQWCQV.js 9.12 kB │ gzip: 1.98 kB ../dist/assets/ts-tags-CipyTH0X.js 9.18 kB │ gzip: 1.24 kB ../dist/assets/plastic-3e1v2bzS.js 9.30 kB │ gzip: 1.99 kB ../dist/assets/tex-rYs2v40G.js 9.37 kB │ gzip: 2.97 kB ../dist/assets/sass-BJ4Li9vH.js 9.41 kB │ gzip: 2.50 kB ../dist/assets/slack-ochin-DqwNpetd.js 9.43 kB │ gzip: 2.11 kB ../dist/assets/jison-BqZprYcd.js 9.72 kB │ gzip: 1.86 kB ../dist/assets/sas-BmTFh92c.js 9.79 kB │ gzip: 4.03 kB ../dist/assets/light-plus-B7mTdjB0.js 9.94 kB │ gzip: 2.29 kB ../dist/assets/gherkin--30QC5Em.js 10.12 kB │ gzip: 5.02 kB ../dist/assets/stateDiagram-AJRCARHV-DdE_KQFH.js 10.36 kB │ gzip: 3.62 kB ../dist/assets/cmake-DbXoA79R.js 10.50 kB │ gzip: 3.57 kB ../dist/assets/dream-maker-C-nORZOA.js 10.61 kB │ gzip: 2.30 kB ../dist/assets/raku-B1bQXN8T.js 10.61 kB │ gzip: 2.99 kB ../dist/assets/rst-4NLicBqY.js 10.65 kB │ gzip: 2.42 kB ../dist/assets/beancount-BwXTMy5W.js 10.76 kB │ gzip: 1.52 kB ../dist/assets/yaml-CVw76BM1.js 10.79 kB │ gzip: 2.29 kB ../dist/assets/diagram-KO2AKTUF-CMTeLXp7.js 10.82 kB │ gzip: 4.18 kB ../dist/assets/cadence-DNquZEk8.js 11.03 kB │ gzip: 2.32 kB ../dist/assets/github-light-DAi9KRSo.js 11.18 kB │ gzip: 2.52 kB ../dist/assets/elm-CmHSxxaM.js 11.29 kB │ gzip: 2.21 kB ../dist/assets/dagre-BM42HDAG-Cy1sR7om.js 11.40 kB │ gzip: 4.21 kB ../dist/assets/github-dark-DHJKELXO.js 11.41 kB │ gzip: 2.56 kB ../dist/assets/prolog-BY-TUvya.js 11.44 kB │ gzip: 3.87 kB ../dist/assets/laserwave-DUszq2jm.js 11.50 kB │ gzip: 2.60 kB ../dist/assets/puppet-Cza_XSSt.js 11.75 kB │ gzip: 2.23 kB ../dist/assets/hcl-HzYwdGDm.js 11.97 kB │ gzip: 2.51 kB ../dist/assets/handlebars-BQGss363.js 12.27 kB │ gzip: 2.39 kB ../dist/assets/hjson-T-Tgc4AT.js 12.33 kB │ gzip: 1.68 kB ../dist/assets/vesper-BEBZ7ncR.js 12.66 kB │ gzip: 1.98 kB ../dist/assets/luau-Du5NY7AG.js 12.92 kB │ gzip: 3.12 kB ../dist/assets/bat-fje9CFhw.js 12.99 kB │ gzip: 3.25 kB ../dist/assets/apache-Dn00JSTd.js 13.21 kB │ gzip: 3.79 kB ../dist/assets/terraform-BbSNqyBO.js 13.38 kB │ gzip: 3.11 kB ../dist/assets/vitesse-light-CVO1_9PV.js 13.62 kB │ gzip: 3.06 kB ../dist/assets/aurora-x-D-2ljcwZ.js 13.66 kB │ gzip: 2.30 kB ../dist/assets/vitesse-black-Bkuqu6BP.js 13.68 kB │ gzip: 3.08 kB ../dist/assets/v-CAQ2eGtk.js 13.74 kB │ gzip: 2.85 kB ../dist/assets/vitesse-dark-D0r3Knsf.js 13.76 kB │ gzip: 3.08 kB ../dist/assets/synthwave-84-CbfX1IO0.js 14.04 kB │ gzip: 2.88 kB ../dist/assets/github-light-default-D7oLnXFd.js 14.16 kB │ gzip: 3.06 kB ../dist/assets/github-light-high-contrast-BfjtVDDH.js 14.28 kB │ gzip: 3.04 kB ../dist/assets/github-dark-dimmed-DH5Ifo-i.js 14.43 kB │ gzip: 3.14 kB ../dist/assets/github-dark-default-Cuk6v7N8.js 14.44 kB │ gzip: 3.14 kB ../dist/assets/clarity-BHOwM8T6.js 14.55 kB │ gzip: 2.48 kB ../dist/assets/actionscript-3-D_z4Izcz.js 14.56 kB │ gzip: 2.79 kB ../dist/assets/github-dark-high-contrast-E3gJ1_iC.js 14.60 kB │ gzip: 3.10 kB ../dist/assets/pug-CM9l7STV.js 14.89 kB │ gzip: 2.90 kB ../dist/assets/gnuplot-CM8KxXT1.js 14.91 kB │ gzip: 3.31 kB ../dist/assets/ayu-dark-Cv9koXgw.js 14.95 kB │ gzip: 3.09 kB ../dist/assets/nix-shcSOmrb.js 15.55 kB │ gzip: 2.36 kB ../dist/assets/lua-CvWAzNxB.js 15.62 kB │ gzip: 3.16 kB ../dist/assets/diagram-OG6HWLK6-UYSG_zcp.js 15.92 kB │ gzip: 5.69 kB ../dist/assets/wasm-C6j12Q_x.js 15.93 kB │ gzip: 2.89 kB ../dist/assets/solidity-C1w2a3ep.js 16.23 kB │ gzip: 3.13 kB ../dist/assets/svelte-MSaWC3Je.js 16.89 kB │ gzip: 2.96 kB ../dist/assets/purescript-Bg-kzb6g.js 17.07 kB │ gzip: 2.64 kB ../dist/assets/kanagawa-wave-DWedfzmr.js 17.12 kB │ gzip: 2.93 kB ../dist/assets/kanagawa-lotus-CfQXZHmo.js 17.13 kB │ gzip: 2.94 kB ../dist/assets/kanagawa-dragon-CkXjmgJE.js 17.13 kB │ gzip: 2.95 kB ../dist/assets/liquid-D3W5UaiH.js 17.17 kB │ gzip: 3.08 kB ../dist/assets/cue-DtFQj3wx.js 17.35 kB │ gzip: 2.08 kB ../dist/assets/ishikawaDiagram-YF4QCWOH-Dxsddth7.js 17.56 kB │ gzip: 6.63 kB ../dist/assets/rust-Be6lgOlo.js 17.60 kB │ gzip: 3.37 kB ../dist/assets/angular-html-LfdN0zeE.js 17.66 kB │ gzip: 3.51 kB ../dist/assets/graphql-cDcHW_If.js 18.20 kB │ gzip: 2.65 kB ../dist/assets/elixir-CLiX3zqd.js 18.30 kB │ gzip: 3.22 kB ../dist/assets/material-theme-D5KoaKCx.js 18.62 kB │ gzip: 3.13 kB ../dist/assets/material-theme-darker-BfHTSMKl.js 18.63 kB │ gzip: 3.12 kB ../dist/assets/material-theme-ocean-CyktbL80.js 18.63 kB │ gzip: 3.15 kB ../dist/assets/material-theme-lighter-B0m2ddpp.js 18.63 kB │ gzip: 3.13 kB ../dist/assets/material-theme-palenight-Csfq5Kiy.js 18.64 kB │ gzip: 3.14 kB ../dist/assets/gdscript-DfxzS6Rs.js 18.65 kB │ gzip: 3.72 kB ../dist/assets/abap-DsBKuouk.js 18.82 kB │ gzip: 6.20 kB ../dist/assets/marko-z0MBrx5-.js 19.33 kB │ gzip: 3.21 kB ../dist/assets/groovy-DkBy-JyN.js 19.65 kB │ gzip: 3.77 kB ../dist/assets/mdc-DB_EDNY_.js 19.70 kB │ gzip: 6.62 kB ../dist/assets/nushell-D4Tzg5kh.js 19.75 kB │ gzip: 4.95 kB ../dist/assets/matlab-D9-PGadD.js 20.14 kB │ gzip: 3.85 kB ../dist/assets/move-DB_GagMm.js 20.24 kB │ gzip: 4.03 kB ../dist/assets/glimmer-js-D-cwc0-E.js 20.56 kB │ gzip: 2.99 kB ../dist/assets/glimmer-ts-pgjy16dm.js 20.56 kB │ gzip: 2.99 kB ../dist/assets/kusto-mebxcVVE.js 20.63 kB │ gzip: 4.58 kB ../dist/assets/kanban-definition-UN3LZRKU-Q0jQCOct.js 20.70 kB │ gzip: 7.22 kB ../dist/assets/snazzy-light-Bw305WKR.js 20.77 kB │ gzip: 3.85 kB ../dist/assets/viml-m4uW47V2.js 21.02 kB │ gzip: 7.24 kB ../dist/assets/dracula-BzJJZx-M.js 21.07 kB │ gzip: 4.03 kB ../dist/assets/dracula-soft-BXkSAIEj.js 21.08 kB │ gzip: 4.07 kB ../dist/assets/vue-BuYVFjOK.js 21.48 kB │ gzip: 2.88 kB ../dist/assets/rose-pine-CmCqftbK.js 21.76 kB │ gzip: 3.89 kB ../dist/assets/rose-pine-moon-CjDtw9vr.js 21.77 kB │ gzip: 3.91 kB ../dist/assets/rose-pine-dawn-Ds-gbosJ.js 21.77 kB │ gzip: 3.91 kB ../dist/assets/powershell-BIEUsx6d.js 22.26 kB │ gzip: 4.70 kB ../dist/assets/apl-BBq3IX1j.js 22.84 kB │ gzip: 4.18 kB ../dist/assets/twig-NC5TFiHP.js 23.01 kB │ gzip: 4.15 kB ../dist/assets/mindmap-definition-RKZ34NQL-C0ZseHsi.js 23.36 kB │ gzip: 7.81 kB ../dist/assets/sankeyDiagram-5OEKKPKP-sfnhMELN.js 23.39 kB │ gzip: 8.54 kB ../dist/assets/journeyDiagram-JHISSGLW-DxaDK80t.js 23.58 kB │ gzip: 8.31 kB ../dist/assets/nim-ZlGxZxc3.js 23.63 kB │ gzip: 3.51 kB ../dist/assets/vhdl-DYoNaHQp.js 23.78 kB │ gzip: 3.88 kB ../dist/assets/graph-qsFoMdT2.js 23.94 kB │ gzip: 8.30 kB ../dist/assets/templ-dwX3ZSMB.js 23.97 kB │ gzip: 5.40 kB ../dist/assets/astro-CqkE3fuf.js 24.07 kB │ gzip: 7.48 kB ../dist/assets/sql-COK4E0Yg.js 24.32 kB │ gzip: 7.70 kB ../dist/assets/one-light-PoHY5YXO.js 25.30 kB │ gzip: 3.68 kB ../dist/assets/razor-CNLDkMZG.js 25.81 kB │ gzip: 3.47 kB ../dist/assets/fsharp-XplgxFYe.js 25.83 kB │ gzip: 4.23 kB ../dist/assets/wardleyDiagram-YWT4CUSO-9jnPcZuP.js 26.10 kB │ gzip: 6.89 kB ../dist/assets/nord-Ddv68eIx.js 26.72 kB │ gzip: 4.41 kB ../dist/assets/system-verilog-C7L56vO4.js 26.77 kB │ gzip: 4.88 kB ../dist/assets/erDiagram-TEJ5UH35-DqXL08lw.js 26.97 kB │ gzip: 9.29 kB ../dist/assets/bsl-Dgyn0ogV.js 27.44 kB │ gzip: 8.88 kB ../dist/assets/java-xI-RfyKK.js 27.49 kB │ gzip: 4.33 kB ../dist/assets/coffee-dyiR41kL.js 27.75 kB │ gzip: 6.41 kB ../dist/assets/scss-C31hgJw-.js 28.13 kB │ gzip: 4.43 kB ../dist/assets/typespec-BpWG_bgh.js 28.19 kB │ gzip: 2.83 kB ../dist/assets/common-lisp-C7gG9l05.js 28.50 kB │ gzip: 6.74 kB ../dist/assets/night-owl-C39BiMTA.js 28.91 kB │ gzip: 5.18 kB ../dist/assets/julia-BBuGR-5E.js 29.45 kB │ gzip: 5.88 kB ../dist/assets/gitGraphDiagram-PVQCEYII-DrNRH3oi.js 29.94 kB │ gzip: 8.85 kB ../dist/assets/scala-DQVVAn-B.js 30.49 kB │ gzip: 4.30 kB ../dist/assets/applescript-Bu5BbsvL.js 30.78 kB │ gzip: 6.38 kB ../dist/assets/requirementDiagram-4Y6WPE33-BTR0UdYQ.js 31.20 kB │ gzip: 9.69 kB ../dist/assets/timeline-definition-PNZ67QCA-DIc61uE8.js 31.36 kB │ gzip: 10.38 kB ../dist/assets/stylus-BeQkCIfX.js 31.56 kB │ gzip: 8.14 kB ../dist/assets/mermaid-Ci6OQyBP.js 33.06 kB │ gzip: 4.65 kB ../dist/assets/poimandres-CS3Unz2-.js 33.49 kB │ gzip: 5.53 kB ../dist/assets/codeql-sacFqUAJ.js 33.59 kB │ gzip: 4.00 kB ../dist/assets/one-dark-pro-GBQ2dnAY.js 33.74 kB │ gzip: 5.53 kB ../dist/assets/crystal-DtDmRg-F.js 33.75 kB │ gzip: 5.58 kB ../dist/assets/tokyo-night-DBQeEorK.js 34.36 kB │ gzip: 5.99 kB ../dist/assets/quadrantDiagram-W4KKPZXB-DIR4ee2A.js 34.50 kB │ gzip: 10.02 kB ../dist/assets/haxe-C5wWYbrZ.js 35.30 kB │ gzip: 5.94 kB ../dist/assets/houston-DnULxvSX.js 35.42 kB │ gzip: 5.80 kB ../dist/assets/nginx-D_VnBJ67.js 35.73 kB │ gzip: 4.53 kB ../dist/assets/layout-CNYaLpI5.js 35.84 kB │ gzip: 12.85 kB ../dist/assets/erlang-B-DoSBHF.js 36.31 kB │ gzip: 4.43 kB ../dist/assets/r-CwjWoCRV.js 36.87 kB │ gzip: 11.26 kB ../dist/assets/chunk-AQP2D5EJ-BwHCMRQ0.js 37.55 kB │ gzip: 12.11 kB ../dist/assets/xychartDiagram-2RQKCTM6-DcthaZK6.js 40.39 kB │ gzip: 11.47 kB ../dist/assets/cobol-PTqiYgYu.js 40.58 kB │ gzip: 11.07 kB ../dist/assets/asm-Dhn9LcZ4.js 40.85 kB │ gzip: 8.20 kB ../dist/assets/vennDiagram-CIIHVFJN-BF7ODmxB.js 41.83 kB │ gzip: 15.44 kB ../dist/assets/shellscript-atvbtKCR.js 42.71 kB │ gzip: 6.35 kB ../dist/assets/d-BoXegm-a.js 43.01 kB │ gzip: 8.35 kB ../dist/assets/haskell-BILxekzW.js 43.21 kB │ gzip: 7.00 kB ../dist/assets/perl-CHQXSrWU.js 44.54 kB │ gzip: 4.86 kB ../dist/assets/catppuccin-mocha-LGGdnPYs.js 45.61 kB │ gzip: 7.76 kB ../dist/assets/catppuccin-latte-DRW-0cLl.js 45.61 kB │ gzip: 7.77 kB ../dist/assets/catppuccin-frappe-CD_QflpE.js 45.62 kB │ gzip: 7.78 kB ../dist/assets/catppuccin-macchiato-C-_shW-Y.js 45.62 kB │ gzip: 7.77 kB ../dist/assets/apex-COJ4H7py.js 46.81 kB │ gzip: 6.79 kB ../dist/assets/ada-727ZlQH0.js 48.53 kB │ gzip: 6.11 kB ../dist/assets/chunk-727SXJPM-D2aElv7q.js 49.06 kB │ gzip: 15.55 kB ../dist/assets/ruby-DeZ3UC14.js 51.47 kB │ gzip: 7.12 kB ../dist/assets/go-B1SYOhNW.js 52.41 kB │ gzip: 6.43 kB ../dist/assets/imba-bv_oIlVt.js 53.46 kB │ gzip: 10.23 kB ../dist/assets/everforest-dark-BgDCqdQA.js 53.75 kB │ gzip: 8.46 kB ../dist/assets/everforest-light-C8M2exoo.js 53.75 kB │ gzip: 8.46 kB ../dist/assets/css-BPhBrDlE.js 53.80 kB │ gzip: 13.46 kB ../dist/assets/wikitext-DCE3LsBG.js 56.62 kB │ gzip: 4.77 kB ../dist/assets/markdown-UIAJJxZW.js 56.99 kB │ gzip: 5.61 kB ../dist/assets/latex-C-cWTeAZ.js 59.42 kB │ gzip: 6.01 kB ../dist/assets/stata-DorPZHa4.js 61.01 kB │ gzip: 13.69 kB ../dist/assets/flowDiagram-I6XJVG4X-BPJ9SFji.js 61.17 kB │ gzip: 19.24 kB ../dist/assets/html-C2L_23MC.js 61.33 kB │ gzip: 12.05 kB ../dist/assets/ballerina-Du268qiB.js 61.63 kB │ gzip: 8.36 kB ../dist/assets/ocaml-BNioltXt.js 65.87 kB │ gzip: 5.19 kB ../dist/assets/ganttDiagram-6RSMTGT7-BEd9Pnms.js 69.29 kB │ gzip: 23.09 kB ../dist/assets/c4Diagram-AAUBKEIU-CxWS6MBd.js 69.95 kB │ gzip: 19.48 kB ../dist/assets/mojo-Tz6hzZYG.js 72.57 kB │ gzip: 10.36 kB ../dist/assets/python-DhUJRlN_.js 73.53 kB │ gzip: 10.44 kB ../dist/assets/c-C3t2pwGQ.js 73.97 kB │ gzip: 10.62 kB ../dist/assets/blockDiagram-GPEHLZMM-qVDQC8KL.js 74.92 kB │ gzip: 21.39 kB ../dist/assets/vyper-nyqBNV6O.js 78.23 kB │ gzip: 12.05 kB ../dist/assets/cose-bilkent-S5V4N54A-BG9FAsXE.js 81.55 kB │ gzip: 22.35 kB ../dist/assets/hack-D1yCygmZ.js 84.64 kB │ gzip: 27.44 kB ../dist/assets/csharp-D9R-vmeu.js 87.17 kB │ gzip: 10.44 kB ../dist/assets/swift-BSxZ-RaX.js 90.99 kB │ gzip: 14.51 kB ../dist/assets/asciidoc-BPT9niGB.js 93.51 kB │ gzip: 7.40 kB ../dist/assets/racket-CzouJOBO.js 97.61 kB │ gzip: 15.68 kB ../dist/assets/fortran-free-form-DKXYxT9g.js 98.19 kB │ gzip: 12.40 kB ../dist/assets/less-BfCpw3nA.js 102.46 kB │ gzip: 15.22 kB ../dist/assets/objective-c-Deuh7S70.js 107.79 kB │ gzip: 23.27 kB ../dist/assets/blade-a8OxSdnT.js 108.00 kB │ gzip: 28.54 kB ../dist/assets/php-B5ebYQev.js 113.76 kB │ gzip: 28.74 kB ../dist/assets/sequenceDiagram-3UESZ5HK-DXczHOHH.js 117.29 kB │ gzip: 30.92 kB ../dist/assets/mdx-sdHcTMYB.js 140.36 kB │ gzip: 23.83 kB ../dist/assets/architectureDiagram-3BPJPVTR-BMLRjppa.js 149.54 kB │ gzip: 41.96 kB ../dist/assets/objective-cpp-BUEGK8hf.js 175.60 kB │ gzip: 30.79 kB ../dist/assets/javascript-ySlJ1b_l.js 198.03 kB │ gzip: 17.58 kB ../dist/assets/tsx-B6W0miNI.js 198.75 kB │ gzip: 17.59 kB ../dist/assets/jsx-BAng5TT0.js 201.01 kB │ gzip: 17.70 kB ../dist/assets/typescript-Dj6nwHGl.js 209.02 kB │ gzip: 17.23 kB ../dist/assets/angular-ts-CKsD7JZE.js 211.78 kB │ gzip: 17.82 kB ../dist/assets/wolfram-C3FkfJm5.js 268.60 kB │ gzip: 77.00 kB ../dist/assets/cytoscape.esm-CUqq0XTU.js 443.69 kB │ gzip: 141.74 kB ../dist/assets/wardley-L42UT6IY-3pc1MEaw.js 615.19 kB │ gzip: 147.94 kB ../dist/assets/mermaid.core-ByoxnWut.js 619.27 kB │ gzip: 147.85 kB ../dist/assets/wasm-CG6Dc4jp.js 622.34 kB │ gzip: 231.16 kB ../dist/assets/cpp-BksuvNSY.js 697.52 kB │ gzip: 50.37 kB ../dist/assets/emacs-lisp-BX77sIaO.js 804.67 kB │ gzip: 197.40 kB ../dist/assets/index-CpOXWDPh.js 1,750.22 kB │ gzip: 532.01 kB (!) Some chunks are larger than 500 kB after minification. Consider: - Using dynamic import() to code-split the application - Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks - Adjust chunk size limit for this warning via build.chunkSizeWarningLimit. ✓ built in 16.14s vite v5.4.21 building for production... transforming... ✓ 137 modules transformed. rendering chunks... computing gzip size... dist/index.js 884.33 kB │ gzip: 211.42 kB ✓ built in 2.17s > qwen-code-vscode-ide-companion@0.19.2 build > npm run build:dev > qwen-code-vscode-ide-companion@0.19.2 build:dev > npm run check-types && npm run lint && node esbuild.js > qwen-code-vscode-ide-companion@0.19.2 check-types > tsc --noEmit > qwen-code-vscode-ide-companion@0.19.2 lint > eslint src /startdir/src/qwen-code/packages/vscode-ide-companion/src/services/settingsWriter.ts 155:54 warning Expected { after 'while' condition curly 444:61 warning Expected { after 'if' condition curly 512:24 warning Expected { after 'if' condition curly 586:26 warning Expected { after 'if' condition curly 717:20 warning Expected { after 'if' condition curly /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/handlers/AuthMessageHandler.ts 181:37 warning Expected { after 'if' condition curly 214:24 warning Expected { after 'if' condition curly 264:22 warning Expected { after 'if' condition curly 283:24 warning Expected { after 'if' condition curly 303:37 warning Expected { after 'if' condition curly 332:23 warning Expected { after 'if' condition curly 338:18 warning Expected { after 'if' condition curly 364:24 warning Expected { after 'if' condition curly 402:28 warning Expected { after 'if' condition curly /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.ts 1407:35 warning Expected { after 'if' condition curly ✖ 15 problems (0 errors, 15 warnings) 0 errors and 15 warnings potentially fixable with the `--fix` option. Browserslist: browsers data (caniuse-lite) is 8 months old. Please run: npx update-browserslist-db@latest Why you should do it regularly: https://github.com/browserslist/update-db#readme > @qwen-code/qwen-code@0.19.2 bundle > npm run generate && node esbuild.config.js && node scripts/copy_bundle_assets.js > @qwen-code/qwen-code@0.19.2 generate > node scripts/generate-git-commit-info.js Copied sandbox profiles to dist/ Copying vendor directory... Copied vendor directory to dist/ Copied bundled skills to dist/bundled/ Copied docs/users/ to dist/bundled/qc-helper/docs/ Copied builtin locales to dist/locales/ Copied extension examples to dist/examples/ Copied Web Shell UI to dist/web-shell/ ✅ All bundle assets copied to dist/ npm notice npm notice 📦 @qwen-code/qwen-code@0.19.2 npm notice Tarball Contents npm notice 11.4kB LICENSE npm notice 9.5kB README.md npm notice 8.8kB dist/bundled/batch/SKILL.md npm notice 5.4kB dist/bundled/loop/SKILL.md npm notice 2.2kB dist/bundled/loop/SKILL.test.ts npm notice 4.6kB dist/bundled/new-app/SKILL.md npm notice 931B dist/bundled/qc-helper/docs/_meta.ts npm notice 14.9kB dist/bundled/qc-helper/docs/common-workflow.md npm notice 205B dist/bundled/qc-helper/docs/configuration/_meta.ts npm notice 17.6kB dist/bundled/qc-helper/docs/configuration/auth.md npm notice 35.5kB dist/bundled/qc-helper/docs/configuration/model-providers.md npm notice 3.0kB dist/bundled/qc-helper/docs/configuration/qwen-ignore.md npm notice 173.2kB dist/bundled/qc-helper/docs/configuration/settings.md npm notice 10.3kB dist/bundled/qc-helper/docs/configuration/themes.md npm notice 3.3kB dist/bundled/qc-helper/docs/configuration/trusted-folders.md npm notice 169B dist/bundled/qc-helper/docs/extension/_meta.ts npm notice 10.3kB dist/bundled/qc-helper/docs/extension/extension-releasing.md npm notice 9.3kB dist/bundled/qc-helper/docs/extension/getting-started-extensions.md npm notice 18.5kB dist/bundled/qc-helper/docs/extension/introduction.md npm notice 782B dist/bundled/qc-helper/docs/features/_meta.ts npm notice 14.7kB dist/bundled/qc-helper/docs/features/approval-mode.md npm notice 12.4kB dist/bundled/qc-helper/docs/features/arena.md npm notice 13.0kB dist/bundled/qc-helper/docs/features/auto-mode.md npm notice 173B dist/bundled/qc-helper/docs/features/channels/_meta.ts npm notice 5.8kB dist/bundled/qc-helper/docs/features/channels/dingtalk.md npm notice 6.7kB dist/bundled/qc-helper/docs/features/channels/feishu.md npm notice 15.7kB dist/bundled/qc-helper/docs/features/channels/overview.md npm notice 3.5kB dist/bundled/qc-helper/docs/features/channels/plugins.md npm notice 7.9kB dist/bundled/qc-helper/docs/features/channels/qqbot.md npm notice 4.8kB dist/bundled/qc-helper/docs/features/channels/telegram.md npm notice 4.5kB dist/bundled/qc-helper/docs/features/channels/weixin.md npm notice 16.5kB dist/bundled/qc-helper/docs/features/code-review.md npm notice 41.4kB dist/bundled/qc-helper/docs/features/commands.md npm notice 22.7kB dist/bundled/qc-helper/docs/features/dual-output.md npm notice 5.4kB dist/bundled/qc-helper/docs/features/followup-suggestions.md npm notice 19.8kB dist/bundled/qc-helper/docs/features/headless.md npm notice 41.0kB dist/bundled/qc-helper/docs/features/hooks.md npm notice 8.5kB dist/bundled/qc-helper/docs/features/language.md npm notice 15.7kB dist/bundled/qc-helper/docs/features/lsp.md npm notice 8.6kB dist/bundled/qc-helper/docs/features/markdown-rendering.md npm notice 23.7kB dist/bundled/qc-helper/docs/features/mcp.md npm notice 7.3kB dist/bundled/qc-helper/docs/features/memory.md npm notice 8.4kB dist/bundled/qc-helper/docs/features/sandbox.md npm notice 7.1kB dist/bundled/qc-helper/docs/features/scheduled-tasks.md npm notice 10.5kB dist/bundled/qc-helper/docs/features/skills.md npm notice 23.8kB dist/bundled/qc-helper/docs/features/status-line.md npm notice 16.7kB dist/bundled/qc-helper/docs/features/structured-output.md npm notice 27.2kB dist/bundled/qc-helper/docs/features/sub-agents.md npm notice 2.3kB dist/bundled/qc-helper/docs/features/tips.md npm notice 1.4kB dist/bundled/qc-helper/docs/features/token-caching.md npm notice 10.3kB dist/bundled/qc-helper/docs/features/tool-use-summaries.md npm notice 22.1kB dist/bundled/qc-helper/docs/features/worktree.md npm notice 103B dist/bundled/qc-helper/docs/ide-integration/_meta.ts npm notice 10.2kB dist/bundled/qc-helper/docs/ide-integration/ide-companion-spec.md npm notice 7.9kB dist/bundled/qc-helper/docs/ide-integration/ide-integration.md npm notice 12.8kB dist/bundled/qc-helper/docs/integration-github-action.md npm notice 2.6kB dist/bundled/qc-helper/docs/integration-jetbrains.md npm notice 1.5kB dist/bundled/qc-helper/docs/integration-vscode.md npm notice 2.3kB dist/bundled/qc-helper/docs/integration-zed.md npm notice 4.9kB dist/bundled/qc-helper/docs/overview.md npm notice 9.0kB dist/bundled/qc-helper/docs/quickstart.md npm notice 13.8kB dist/bundled/qc-helper/docs/qwen-serve-deploy-local.md npm notice 76.6kB dist/bundled/qc-helper/docs/qwen-serve.md npm notice 66B dist/bundled/qc-helper/docs/reference/_meta.ts npm notice 13.2kB dist/bundled/qc-helper/docs/reference/keyboard-shortcuts.md npm notice 122B dist/bundled/qc-helper/docs/support/_meta.ts npm notice 6.9kB dist/bundled/qc-helper/docs/support/tos-privacy.md npm notice 11.1kB dist/bundled/qc-helper/docs/support/troubleshooting.md npm notice 1.8kB dist/bundled/qc-helper/docs/support/Uninstall.md npm notice 10.8kB dist/bundled/qc-helper/SKILL.md npm notice 24.1kB dist/bundled/review/DESIGN.md npm notice 52.4kB dist/bundled/review/SKILL.md npm notice 5.3kB dist/bundled/simplify/SKILL.md npm notice 12.2kB dist/bundled/stuck/SKILL.md npm notice 361.6kB dist/chunks/acpAgent-QYLKQBAT.js npm notice 1.6kB dist/chunks/agent-headless-274MN7N6.js npm notice 1.8kB dist/chunks/agent-OHHZN7DO.js npm notice 200.1kB dist/chunks/anthropicContentGenerator-E3TQ5XJJ.js npm notice 23.9kB dist/chunks/artifact-tool-QA4KRO3B.js npm notice 12.7kB dist/chunks/askUserQuestion-HMWXW6VN.js npm notice 1.9kB dist/chunks/bridge-4HHBBE6B.js npm notice 120.6kB dist/chunks/ca-7WC7ELX6.js npm notice 61.8kB dist/chunks/chunk-2BIF2NVV.js npm notice 4.8kB dist/chunks/chunk-2JD55C6G.js npm notice 4.6kB dist/chunks/chunk-2MPVVENX.js npm notice 953B dist/chunks/chunk-2PSWA5ID.js npm notice 50.6kB dist/chunks/chunk-3GONHQOA.js npm notice 67.9kB dist/chunks/chunk-3HX5LZ6R.js npm notice 91.3kB dist/chunks/chunk-3PJXIDKI.js npm notice 21.5kB dist/chunks/chunk-3RJ3ZPPR.js npm notice 12.6kB dist/chunks/chunk-3UALQ56H.js npm notice 233.0kB dist/chunks/chunk-4CGOWHKM.js npm notice 1.2MB dist/chunks/chunk-4SELBOIK.js npm notice 1.2kB dist/chunks/chunk-5DWXLGOM.js npm notice 129.5kB dist/chunks/chunk-5IFG2VC4.js npm notice 2.6kB dist/chunks/chunk-5P5XGNYH.js npm notice 77.7kB dist/chunks/chunk-6FI7EYIQ.js npm notice 14.4kB dist/chunks/chunk-7JUYDFX4.js npm notice 260.8kB dist/chunks/chunk-7RYW5LQV.js npm notice 2.5kB dist/chunks/chunk-7SCPLFVJ.js npm notice 8.3kB dist/chunks/chunk-22IFUCVR.js npm notice 1.8kB dist/chunks/chunk-35B5NZED.js npm notice 10.3kB dist/chunks/chunk-54DX5ZKE.js npm notice 1.2MB dist/chunks/chunk-55ZMG67I.js npm notice 3.1kB dist/chunks/chunk-64WXLC72.js npm notice 11.9kB dist/chunks/chunk-66OHPYHW.js npm notice 770B dist/chunks/chunk-A4BMJM77.js npm notice 12.0kB dist/chunks/chunk-ALX6BUYW.js npm notice 15.6kB dist/chunks/chunk-ASNHA7GE.js npm notice 721.7kB dist/chunks/chunk-ATNONTTF.js npm notice 546.4kB dist/chunks/chunk-B6MFB2J7.js npm notice 4.5kB dist/chunks/chunk-BG4BIP7F.js npm notice 46.8kB dist/chunks/chunk-BGUDAULQ.js npm notice 7.2kB dist/chunks/chunk-BNXANYLH.js npm notice 3.3kB dist/chunks/chunk-BR4QREVK.js npm notice 1.1kB dist/chunks/chunk-BS64PXY3.js npm notice 2.7kB dist/chunks/chunk-C3MK76EV.js npm notice 32.9kB dist/chunks/chunk-C4K3FEQ2.js npm notice 172.0kB dist/chunks/chunk-C55M42BG.js npm notice 308.9kB dist/chunks/chunk-CBO6DV24.js npm notice 37.5kB dist/chunks/chunk-CGEGHF2C.js npm notice 19.3kB dist/chunks/chunk-CJCKDMWO.js npm notice 11.3kB dist/chunks/chunk-CQQUYVHV.js npm notice 3.9kB dist/chunks/chunk-DALYRTKW.js npm notice 2.8MB dist/chunks/chunk-DHOJXT72.js npm notice 31.3kB dist/chunks/chunk-EEEZIVFJ.js npm notice 41.9kB dist/chunks/chunk-EIOJC52E.js npm notice 4.6kB dist/chunks/chunk-EW6C27XX.js npm notice 814.8kB dist/chunks/chunk-F6XNTYNE.js npm notice 1.5MB dist/chunks/chunk-FPACXT7T.js npm notice 579B dist/chunks/chunk-FUW6AI7J.js npm notice 928B dist/chunks/chunk-FXGLL2HL.js npm notice 5.5kB dist/chunks/chunk-GZCJS5WH.js npm notice 1.0kB dist/chunks/chunk-H6BD2ELD.js npm notice 14.3kB dist/chunks/chunk-HGNSRCRB.js npm notice 10.0kB dist/chunks/chunk-HIGEKZVG.js npm notice 2.2kB dist/chunks/chunk-HR7GSPTJ.js npm notice 553.1kB dist/chunks/chunk-IRJWHZWU.js npm notice 7.2kB dist/chunks/chunk-ITOGNELQ.js npm notice 9.8kB dist/chunks/chunk-IUBHHCY2.js npm notice 756B dist/chunks/chunk-IWKSG2AR.js npm notice 2.5kB dist/chunks/chunk-J2S4EL5Y.js npm notice 54.8kB dist/chunks/chunk-J37FGIOA.js npm notice 33.6kB dist/chunks/chunk-JXQ23SNT.js npm notice 3.4kB dist/chunks/chunk-JZSY4WP3.js npm notice 542.0kB dist/chunks/chunk-K5PGHDBN.js npm notice 20.7kB dist/chunks/chunk-KBXLIVWQ.js npm notice 2.9kB dist/chunks/chunk-KHDZHZMH.js npm notice 764B dist/chunks/chunk-KSPVDFE4.js npm notice 19.3kB dist/chunks/chunk-KYMBIKIW.js npm notice 2.3kB dist/chunks/chunk-LD2XBG6Z.js npm notice 3.2kB dist/chunks/chunk-LQ7TMOCE.js npm notice 6.5kB dist/chunks/chunk-LVEP2XK7.js npm notice 706B dist/chunks/chunk-MLZQVCF3.js npm notice 671B dist/chunks/chunk-MRO43B25.js npm notice 8.6kB dist/chunks/chunk-MUU3QOVV.js npm notice 15.7kB dist/chunks/chunk-MXCJ4U5F.js npm notice 5.3MB dist/chunks/chunk-O4CABVHW.js npm notice 565B dist/chunks/chunk-OFEVLU4C.js npm notice 2.4kB dist/chunks/chunk-OIC6S73E.js npm notice 38.3kB dist/chunks/chunk-OKS7ZP7U.js npm notice 10.5kB dist/chunks/chunk-OMX7CUOE.js npm notice 8.6kB dist/chunks/chunk-OTBK43JR.js npm notice 93.2kB dist/chunks/chunk-P3MYAZBY.js npm notice 353B dist/chunks/chunk-P7M4GA57.js npm notice 9.4kB dist/chunks/chunk-PRYMDRBV.js npm notice 870.7kB dist/chunks/chunk-Q2E7ZIZW.js npm notice 369B dist/chunks/chunk-QBZ22PQX.js npm notice 20.2kB dist/chunks/chunk-QN5NZ3UQ.js npm notice 496B dist/chunks/chunk-QQDPRDVW.js npm notice 262B dist/chunks/chunk-R2BXK7SX.js npm notice 259B dist/chunks/chunk-RKIZXJMB.js npm notice 10.6kB dist/chunks/chunk-S566HKUS.js npm notice 808B dist/chunks/chunk-SEZC2725.js npm notice 9.8kB dist/chunks/chunk-SFSKBNWD.js npm notice 14.5kB dist/chunks/chunk-SKAZWEV5.js npm notice 9.7kB dist/chunks/chunk-SNBXSJP7.js npm notice 109.7kB dist/chunks/chunk-SOZIX7D3.js npm notice 2.6kB dist/chunks/chunk-SYCJMSIJ.js npm notice 2.0kB dist/chunks/chunk-T2VDEFUU.js npm notice 1.7kB dist/chunks/chunk-TBKLTUNM.js npm notice 6.7kB dist/chunks/chunk-THRZ4JVN.js npm notice 430B dist/chunks/chunk-TLRYABYP.js npm notice 85.0kB dist/chunks/chunk-TMBPDHXD.js npm notice 601.3kB dist/chunks/chunk-TOEGRAVX.js npm notice 29.4kB dist/chunks/chunk-TW54K7WD.js npm notice 7.2kB dist/chunks/chunk-TXVGVZYR.js npm notice 32.7kB dist/chunks/chunk-TYR4KCPH.js npm notice 5.7kB dist/chunks/chunk-U6LCCNRY.js npm notice 78.6kB dist/chunks/chunk-UFC57OYT.js npm notice 634.8kB dist/chunks/chunk-UMW7N5UV.js npm notice 13.8kB dist/chunks/chunk-UN3C6GOR.js npm notice 3.4kB dist/chunks/chunk-UWCTAVOD.js npm notice 8.1kB dist/chunks/chunk-X6EDWN44.js npm notice 17.0kB dist/chunks/chunk-XB3UZBPL.js npm notice 16.5kB dist/chunks/chunk-XGOOXTNI.js npm notice 19.0kB dist/chunks/chunk-XU5P23GN.js npm notice 779B dist/chunks/chunk-Y6Z2O3WR.js npm notice 61.0kB dist/chunks/chunk-Z2Z3GUXZ.js npm notice 9.7kB dist/chunks/chunk-Z7XXFPGP.js npm notice 34.3kB dist/chunks/chunk-ZD3NW5KL.js npm notice 18.7kB dist/chunks/chunk-ZERZSAZL.js npm notice 433.3kB dist/chunks/chunk-ZN5T4BHI.js npm notice 1.5kB dist/chunks/chunk-ZTQ26VBE.js npm notice 88.7kB dist/chunks/computer-use-4N4SFPOA.js npm notice 1.8kB dist/chunks/contextCommand-K7EZHT3E.js npm notice 8.1kB dist/chunks/cron-create-4KQE6YLH.js npm notice 2.9kB dist/chunks/cron-delete-THME66UP.js npm notice 3.9kB dist/chunks/cron-list-7A54SJ5N.js npm notice 2.0kB dist/chunks/daemon-status-provider-7NDBQUHN.js npm notice 123.7kB dist/chunks/de-ACHALDED.js npm notice 747.0kB dist/chunks/devtools-FM6GJPYG.js npm notice 258B dist/chunks/dist-63IS3ZMI.js npm notice 21.8kB dist/chunks/dist-BD27IA3L.js npm notice 160.7kB dist/chunks/dist-BOOH5JWN.js npm notice 4.9MB dist/chunks/dist-OD2FY543.js npm notice 72.6kB dist/chunks/dist-QFFZWACU.js npm notice 496.2kB dist/chunks/dist-QHJRBCMP.js npm notice 1.8kB dist/chunks/earlyInputCapture-O23DC7UW.js npm notice 31.7kB dist/chunks/edit-RGQDIFCJ.js npm notice 139.1kB dist/chunks/en-NCUBOJOY.js npm notice 8.7kB dist/chunks/enter-worktree-YCEWYEJD.js npm notice 6.4kB dist/chunks/enterPlanMode-QOCDQUVW.js npm notice 2.0kB dist/chunks/errors-423DAJH4.js npm notice 18.1kB dist/chunks/exit-worktree-NXB5H3Q7.js npm notice 28.8kB dist/chunks/exitPlanMode-QS2TFHES.js npm notice 526B dist/chunks/fast-path-settings-TSVI53EB.js npm notice 14.5kB dist/chunks/fast-path-X4NM4NVZ.js npm notice 4.8kB dist/chunks/fileFromPath-IBEHA3CO.js npm notice 127.3kB dist/chunks/fr-GVKZ27MF.js npm notice 86.5kB dist/chunks/gemini-GPR5WBL7.js npm notice 7.9kB dist/chunks/geminiContentGenerator-XTG6SFLA.js npm notice 1.5kB dist/chunks/getMachineId-bsd-4CASPIU4.js npm notice 1.5kB dist/chunks/getMachineId-darwin-HPQPEMZR.js npm notice 1.3kB dist/chunks/getMachineId-linux-AUARKYHL.js npm notice 1.0kB dist/chunks/getMachineId-unsupported-S32ZDA2T.js npm notice 1.7kB dist/chunks/getMachineId-win-4EFLHYIJ.js npm notice 10.9kB dist/chunks/glob-KRNKCR72.js npm notice 22.0kB dist/chunks/grep-B36R2VQU.js npm notice 1.6kB dist/chunks/headlessSafetyWarnings-QZKXN6A7.js npm notice 1.7kB dist/chunks/initializer-24MWH4GZ.js npm notice 169.9kB dist/chunks/ja-FKZ2WZ4D.js npm notice 270B dist/chunks/keychain-token-storage-CSYMNRPP.js npm notice 382B dist/chunks/kittyProtocolDetector-OJRCJLIU.js npm notice 1.8kB dist/chunks/list-4R3ANG7V.js npm notice 1.7kB dist/chunks/loadedSettingsAdapter-6NCS6FQS.js npm notice 6.0kB dist/chunks/loop-wakeup-33GPXJLA.js npm notice 1.5MB dist/chunks/lowlight-FYAAUU5J.js npm notice 9.4kB dist/chunks/ls-BYQY7RVV.js npm notice 35.5kB dist/chunks/lsp-X54RO4IV.js npm notice 1.8kB dist/chunks/MaxSizedBox-26J76DTM.js npm notice 21.5kB dist/chunks/monitor-6L5RSO2C.js npm notice 12.1kB dist/chunks/multipart-parser-AJ4WASWR.js npm notice 2.6kB dist/chunks/nonInteractiveCli-GMTG5SKF.js npm notice 26.9kB dist/chunks/notebook-edit-SPXI7HNJ.js npm notice 1.6kB dist/chunks/openaiContentGenerator-NI5HS4BF.js npm notice 123.1kB dist/chunks/pt-SY5NCFGR.js npm notice 7.1kB dist/chunks/qwenContentGenerator-JXNRMUB5.js npm notice 1.2kB dist/chunks/qwenOAuth2-K4AASPCV.js npm notice 794B dist/chunks/read-file-BDAHQYRQ.js npm notice 6.4kB dist/chunks/read-mcp-resource-I5HCZJ6X.js npm notice 171.4kB dist/chunks/read-package-up-ER5OJUGP.js npm notice 1.6kB dist/chunks/ripGrep-XRVS7B33.js npm notice 299.5kB dist/chunks/ru-FWNXJG4F.js npm notice 67.1kB dist/chunks/run-qwen-serve-QQ5VWZB6.js npm notice 11.1kB dist/chunks/scheduler-L5L3HOP6.js npm notice 9.6kB dist/chunks/send-message-2DAFXEYP.js npm notice 1.8kB dist/chunks/serve-WVWSVWQJ.js npm notice 450.6kB dist/chunks/server-AQ4HNLZO.js npm notice 72.1kB dist/chunks/session-TXUDXEMT.js npm notice 2.8kB dist/chunks/settings-PT4WJ332.js npm notice 1.8kB dist/chunks/shell-TZXLMRGL.js npm notice 16.5kB dist/chunks/skill-45BPSWQF.js npm notice 1.8kB dist/chunks/spawnChannel-7UANZ5R2.js npm notice 48.9kB dist/chunks/src-7XL4G4DC.js npm notice 59.1kB dist/chunks/src-K7MYLM4A.js npm notice 6.1kB dist/chunks/StandaloneSessionPicker-JD227IZ6.js npm notice 1.8MB dist/chunks/startInteractiveUI-SLX7I544.js npm notice 368B dist/chunks/syntheticOutput-PPS3HDVA.js npm notice 492B dist/chunks/task-create-OUYCA553.js npm notice 4.1kB dist/chunks/task-list-WAX7I2IA.js npm notice 7.3kB dist/chunks/task-stop-CAIL6FNH.js npm notice 12.6kB dist/chunks/task-update-AHEO5OUT.js npm notice 12.7kB dist/chunks/team-create-HONFEAFY.js npm notice 2.9kB dist/chunks/team-delete-HGHFG23B.js npm notice 1.6kB dist/chunks/theme-manager-B6LZEP6J.js npm notice 21.4kB dist/chunks/todoWrite-IFBMN3FH.js npm notice 13.7kB dist/chunks/tool-search-XFRGM4P2.js npm notice 1.9MB dist/chunks/tree-sitter-bash-EZ4S5QRV.js npm notice 254.7kB dist/chunks/tree-sitter-G7JNPPOS.js npm notice 4.9kB dist/chunks/validateNonInterActiveAuth-3VKEAYC7.js npm notice 259.8kB dist/chunks/web-fetch-B5IIQ5TT.js npm notice 88.2kB dist/chunks/workflow-XINR4BYR.js npm notice 1.8kB dist/chunks/workspace-providers-status-BOBFTHX3.js npm notice 1.7kB dist/chunks/workspace-service-SEJGGUF3.js npm notice 17.0kB dist/chunks/write-file-PVHLNUVX.js npm notice 171.8kB dist/chunks/zh-RBEGQVQT.js npm notice 162.4kB dist/chunks/zh-TW-QGAVRXT3.js npm notice 3.5kB dist/cli.js npm notice 2.4kB dist/examples/agent/agents/diary.md npm notice 122B dist/examples/agent/qwen-extension.json npm notice 75B dist/examples/commands/commands/fs/grep-code.md npm notice 129B dist/examples/commands/qwen-extension.json npm notice 137B dist/examples/context/qwen-extension.json npm notice 670B dist/examples/context/QWEN.md npm notice 1.4kB dist/examples/mcp-server/example.ts npm notice 380B dist/examples/mcp-server/package.json npm notice 440B dist/examples/mcp-server/qwen-extension.json npm notice 290B dist/examples/mcp-server/tsconfig.json npm notice 119B dist/examples/skills/qwen-extension.json npm notice 1.9kB dist/examples/skills/skills/synonyms/SKILL.md npm notice 2.4kB dist/examples/starter/agents/diary.md npm notice 378B dist/examples/starter/commands/writing/polish.md npm notice 1.8kB dist/examples/starter/example.ts npm notice 420B dist/examples/starter/package.json npm notice 250B dist/examples/starter/qwen-extension.json npm notice 1.2kB dist/examples/starter/QWEN.md npm notice 2.5kB dist/examples/starter/README.md npm notice 1.9kB dist/examples/starter/skills/synonyms/SKILL.md npm notice 290B dist/examples/starter/tsconfig.json npm notice 28.4kB dist/fzfWorker.js npm notice 119.9kB dist/locales/ca.js npm notice 123.8kB dist/locales/de.js npm notice 140.4kB dist/locales/en.js npm notice 125.7kB dist/locales/fr.js npm notice 120.6kB dist/locales/ja.js npm notice 121.4kB dist/locales/pt.js npm notice 155.0kB dist/locales/ru.js npm notice 123.8kB dist/locales/zh-TW.js npm notice 133.2kB dist/locales/zh.js npm notice 1.0kB dist/sandbox-macos-permissive-closed.sb npm notice 899B dist/sandbox-macos-permissive-open.sb npm notice 1.3kB dist/sandbox-macos-permissive-proxied.sb npm notice 3.3kB dist/sandbox-macos-restrictive-closed.sb npm notice 3.4kB dist/sandbox-macos-restrictive-open.sb npm notice 3.6kB dist/sandbox-macos-restrictive-proxied.sb npm notice 4.5MB dist/vendor/ripgrep/arm64-darwin/rg npm notice 4.8MB dist/vendor/ripgrep/arm64-linux/rg npm notice 126B dist/vendor/ripgrep/COPYING npm notice 4.7MB dist/vendor/ripgrep/x64-darwin/rg npm notice 5.7MB dist/vendor/ripgrep/x64-linux/rg npm notice 5.4MB dist/vendor/ripgrep/x64-win32/rg.exe npm notice 1.4MB dist/vendor/tree-sitter/tree-sitter-bash.wasm npm notice 190.8kB dist/vendor/tree-sitter/tree-sitter.wasm npm notice 18.8kB dist/web-shell/assets/abap-DsBKuouk.js npm notice 14.6kB dist/web-shell/assets/actionscript-3-D_z4Izcz.js npm notice 48.5kB dist/web-shell/assets/ada-727ZlQH0.js npm notice 8.9kB dist/web-shell/assets/andromeeda-C3khCPGq.js npm notice 17.7kB dist/web-shell/assets/angular-html-LfdN0zeE.js npm notice 211.8kB dist/web-shell/assets/angular-ts-CKsD7JZE.js npm notice 13.2kB dist/web-shell/assets/apache-Dn00JSTd.js npm notice 46.8kB dist/web-shell/assets/apex-COJ4H7py.js npm notice 24.2kB dist/web-shell/assets/apl-BBq3IX1j.js npm notice 30.8kB dist/web-shell/assets/applescript-Bu5BbsvL.js npm notice 7.2kB dist/web-shell/assets/ara-7O62HKoU.js npm notice 3.4kB dist/web-shell/assets/arc-D_ae_Y9k.js npm notice 149.5kB dist/web-shell/assets/architectureDiagram-3BPJPVTR-BMLRjppa.js npm notice 93.5kB dist/web-shell/assets/asciidoc-BPT9niGB.js npm notice 40.9kB dist/web-shell/assets/asm-Dhn9LcZ4.js npm notice 24.1kB dist/web-shell/assets/astro-CqkE3fuf.js npm notice 13.7kB dist/web-shell/assets/aurora-x-D-2ljcwZ.js npm notice 5.5kB dist/web-shell/assets/awk-eg146-Ew.js npm notice 14.9kB dist/web-shell/assets/ayu-dark-Cv9koXgw.js npm notice 61.6kB dist/web-shell/assets/ballerina-Du268qiB.js npm notice 13.0kB dist/web-shell/assets/bat-fje9CFhw.js npm notice 10.8kB dist/web-shell/assets/beancount-BwXTMy5W.js npm notice 2.4kB dist/web-shell/assets/berry-3xVqZejG.js npm notice 5.1kB dist/web-shell/assets/bibtex-xW4inM5L.js npm notice 4.5kB dist/web-shell/assets/bicep-DHo0CJ0O.js npm notice 108.0kB dist/web-shell/assets/blade-a8OxSdnT.js npm notice 74.9kB dist/web-shell/assets/blockDiagram-GPEHLZMM-qVDQC8KL.js npm notice 38.1kB dist/web-shell/assets/bsl-Dgyn0ogV.js npm notice 74.0kB dist/web-shell/assets/c-C3t2pwGQ.js npm notice 70.0kB dist/web-shell/assets/c4Diagram-AAUBKEIU-CxWS6MBd.js npm notice 11.0kB dist/web-shell/assets/cadence-DNquZEk8.js npm notice 3.0kB dist/web-shell/assets/cairo--RitsXJZ.js npm notice 45.6kB dist/web-shell/assets/catppuccin-frappe-CD_QflpE.js npm notice 45.6kB dist/web-shell/assets/catppuccin-latte-DRW-0cLl.js npm notice 45.6kB dist/web-shell/assets/catppuccin-macchiato-C-_shW-Y.js npm notice 45.6kB dist/web-shell/assets/catppuccin-mocha-LGGdnPYs.js npm notice 113B dist/web-shell/assets/channel-DYPNiTww.js npm notice 532B dist/web-shell/assets/chunk-2J33WTMH-BtNuY5Yp.js npm notice 297B dist/web-shell/assets/chunk-4BX2VUAB-BU-x368d.js npm notice 235B dist/web-shell/assets/chunk-55IACEB6-DRgTLvBu.js npm notice 49.1kB dist/web-shell/assets/chunk-727SXJPM-D2aElv7q.js npm notice 37.6kB dist/web-shell/assets/chunk-AQP2D5EJ-BwHCMRQ0.js npm notice 366B dist/web-shell/assets/chunk-FMBD7UC4-BMyPH-ku.js npm notice 1.9kB dist/web-shell/assets/chunk-ND2GUHAM-BNKTstUf.js npm notice 193B dist/web-shell/assets/chunk-QZHKN3VN-gD3vsFId.js npm notice 14.6kB dist/web-shell/assets/clarity-BHOwM8T6.js npm notice 467B dist/web-shell/assets/classDiagram-4FO5ZUOK-p_g25Tni.js npm notice 467B dist/web-shell/assets/classDiagram-v2-Q7XG4LA2-p_g25Tni.js npm notice 7.1kB dist/web-shell/assets/clojure-DxSadP1t.js npm notice 10.5kB dist/web-shell/assets/cmake-DbXoA79R.js npm notice 40.6kB dist/web-shell/assets/cobol-PTqiYgYu.js npm notice 547B dist/web-shell/assets/codeowners-Bp6g37R7.js npm notice 33.6kB dist/web-shell/assets/codeql-sacFqUAJ.js npm notice 27.7kB dist/web-shell/assets/coffee-dyiR41kL.js npm notice 28.5kB dist/web-shell/assets/common-lisp-C7gG9l05.js npm notice 6.0kB dist/web-shell/assets/coq-Dsg_Bt_b.js npm notice 81.5kB dist/web-shell/assets/cose-bilkent-S5V4N54A-BG9FAsXE.js npm notice 697.5kB dist/web-shell/assets/cpp-BksuvNSY.js npm notice 33.7kB dist/web-shell/assets/crystal-DtDmRg-F.js npm notice 87.2kB dist/web-shell/assets/csharp-D9R-vmeu.js npm notice 53.8kB dist/web-shell/assets/css-BPhBrDlE.js npm notice 1.2kB dist/web-shell/assets/csv-B0qRVHPH.js npm notice 17.3kB dist/web-shell/assets/cue-DtFQj3wx.js npm notice 6.8kB dist/web-shell/assets/cypher-m2LEI-9-.js npm notice 443.7kB dist/web-shell/assets/cytoscape.esm-CUqq0XTU.js npm notice 43.0kB dist/web-shell/assets/d-BoXegm-a.js npm notice 11.4kB dist/web-shell/assets/dagre-BM42HDAG-Cy1sR7om.js npm notice 9.1kB dist/web-shell/assets/dark-plus-C3mMm8J8.js npm notice 7.9kB dist/web-shell/assets/dart-B9wLZaAG.js npm notice 5.5kB dist/web-shell/assets/dax-ClGRhx96.js npm notice 4.7kB dist/web-shell/assets/defaultLocale-DX6XiGOO.js npm notice 2.0kB dist/web-shell/assets/desktop-DEIpsLCJ.js npm notice 6.0kB dist/web-shell/assets/diagram-2AECGRRQ-Bxi1I_Vu.js npm notice 2.8kB dist/web-shell/assets/diagram-5GNKFQAL-BGCJjO6y.js npm notice 10.8kB dist/web-shell/assets/diagram-KO2AKTUF-CMTeLXp7.js npm notice 4.2kB dist/web-shell/assets/diagram-LMA3HP47-BN1wyAGh.js npm notice 15.9kB dist/web-shell/assets/diagram-OG6HWLK6-UYSG_zcp.js npm notice 2.6kB dist/web-shell/assets/diff-BgYniUM_.js npm notice 1.8kB dist/web-shell/assets/docker-COcR7UxN.js npm notice 1.7kB dist/web-shell/assets/dotenv-BjQB5zDj.js npm notice 21.1kB dist/web-shell/assets/dracula-BzJJZx-M.js npm notice 21.1kB dist/web-shell/assets/dracula-soft-BXkSAIEj.js npm notice 10.6kB dist/web-shell/assets/dream-maker-C-nORZOA.js npm notice 2.4kB dist/web-shell/assets/edge-D5gP-w-T.js npm notice 18.3kB dist/web-shell/assets/elixir-CLiX3zqd.js npm notice 11.3kB dist/web-shell/assets/elm-CmHSxxaM.js npm notice 804.7kB dist/web-shell/assets/emacs-lisp-BX77sIaO.js npm notice 2.6kB dist/web-shell/assets/erb-BYTLMnw6.js npm notice 27.0kB dist/web-shell/assets/erDiagram-TEJ5UH35-DqXL08lw.js npm notice 36.3kB dist/web-shell/assets/erlang-B-DoSBHF.js npm notice 53.7kB dist/web-shell/assets/everforest-dark-BgDCqdQA.js npm notice 53.7kB dist/web-shell/assets/everforest-light-C8M2exoo.js npm notice 4.8kB dist/web-shell/assets/fennel-bCA53EVm.js npm notice 5.4kB dist/web-shell/assets/fish-w-ucz2PV.js npm notice 61.2kB dist/web-shell/assets/flowDiagram-I6XJVG4X-BPJ9SFji.js npm notice 3.6kB dist/web-shell/assets/fluent-Dayu4EKP.js npm notice 1.1kB dist/web-shell/assets/fortran-fixed-form-TqA4NnZg.js npm notice 98.2kB dist/web-shell/assets/fortran-free-form-DKXYxT9g.js npm notice 25.8kB dist/web-shell/assets/fsharp-XplgxFYe.js npm notice 69.3kB dist/web-shell/assets/ganttDiagram-6RSMTGT7-BEd9Pnms.js npm notice 5.5kB dist/web-shell/assets/gdresource-BHYsBjWJ.js npm notice 18.7kB dist/web-shell/assets/gdscript-DfxzS6Rs.js npm notice 6.4kB dist/web-shell/assets/gdshader-SKMF96pI.js npm notice 3.4kB dist/web-shell/assets/genie-ajMbGru0.js npm notice 12.5kB dist/web-shell/assets/gherkin--30QC5Em.js npm notice 1.5kB dist/web-shell/assets/git-commit-i4q6IMui.js npm notice 980B dist/web-shell/assets/git-rebase-B-v9cOL2.js npm notice 29.9kB dist/web-shell/assets/gitGraphDiagram-PVQCEYII-DrNRH3oi.js npm notice 14.4kB dist/web-shell/assets/github-dark-default-Cuk6v7N8.js npm notice 11.4kB dist/web-shell/assets/github-dark-DHJKELXO.js npm notice 14.4kB dist/web-shell/assets/github-dark-dimmed-DH5Ifo-i.js npm notice 14.6kB dist/web-shell/assets/github-dark-high-contrast-E3gJ1_iC.js npm notice 11.2kB dist/web-shell/assets/github-light-DAi9KRSo.js npm notice 14.2kB dist/web-shell/assets/github-light-default-D7oLnXFd.js npm notice 14.3kB dist/web-shell/assets/github-light-high-contrast-BfjtVDDH.js npm notice 2.7kB dist/web-shell/assets/gleam-B430Bg39.js npm notice 20.6kB dist/web-shell/assets/glimmer-js-D-cwc0-E.js npm notice 20.6kB dist/web-shell/assets/glimmer-ts-pgjy16dm.js npm notice 3.9kB dist/web-shell/assets/glsl-DBO2IWDn.js npm notice 14.9kB dist/web-shell/assets/gnuplot-CM8KxXT1.js npm notice 52.4kB dist/web-shell/assets/go-B1SYOhNW.js npm notice 23.9kB dist/web-shell/assets/graph-qsFoMdT2.js npm notice 18.2kB dist/web-shell/assets/graphql-cDcHW_If.js npm notice 19.6kB dist/web-shell/assets/groovy-DkBy-JyN.js npm notice 84.7kB dist/web-shell/assets/hack-D1yCygmZ.js npm notice 8.5kB dist/web-shell/assets/haml-B2EZWmdv.js npm notice 12.3kB dist/web-shell/assets/handlebars-BQGss363.js npm notice 43.3kB dist/web-shell/assets/haskell-BILxekzW.js npm notice 35.3kB dist/web-shell/assets/haxe-C5wWYbrZ.js npm notice 12.0kB dist/web-shell/assets/hcl-HzYwdGDm.js npm notice 12.3kB dist/web-shell/assets/hjson-T-Tgc4AT.js npm notice 7.6kB dist/web-shell/assets/hlsl-ifBTmRxC.js npm notice 35.4kB dist/web-shell/assets/houston-DnULxvSX.js npm notice 61.3kB dist/web-shell/assets/html-C2L_23MC.js npm notice 970B dist/web-shell/assets/html-derivative-CSfWNPLT.js npm notice 4.7kB dist/web-shell/assets/http-FRrOvY1W.js npm notice 1.8kB dist/web-shell/assets/hxml-TIA70rKU.js npm notice 2.8kB dist/web-shell/assets/hy-BMj5Y0dO.js npm notice 53.5kB dist/web-shell/assets/imba-bv_oIlVt.js npm notice 1.8MB dist/web-shell/assets/index-CpOXWDPh.js npm notice 156.3kB dist/web-shell/assets/index-oVK7qhre.css npm notice 587B dist/web-shell/assets/infoDiagram-5YYISTIA-CFYBrkVI.js npm notice 1.5kB dist/web-shell/assets/ini-BjABl1g7.js npm notice 147B dist/web-shell/assets/init-Gi6I4Gst.js npm notice 17.6kB dist/web-shell/assets/ishikawaDiagram-YF4QCWOH-Dxsddth7.js npm notice 27.5kB dist/web-shell/assets/java-xI-RfyKK.js npm notice 198.0kB dist/web-shell/assets/javascript-ySlJ1b_l.js npm notice 5.7kB dist/web-shell/assets/jinja-DGy0s7-h.js npm notice 9.7kB dist/web-shell/assets/jison-BqZprYcd.js npm notice 23.6kB dist/web-shell/assets/journeyDiagram-JHISSGLW-DxaDK80t.js npm notice 2.9kB dist/web-shell/assets/json-BQoSv7ci.js npm notice 3.5kB dist/web-shell/assets/json5-w8dY5SsB.js npm notice 3.2kB dist/web-shell/assets/jsonc-TU54ms6u.js npm notice 3.1kB dist/web-shell/assets/jsonl-DREVFZK8.js npm notice 3.6kB dist/web-shell/assets/jsonnet-BfivnA6A.js npm notice 3.0kB dist/web-shell/assets/jssm-P4WzXJd0.js npm notice 201.0kB dist/web-shell/assets/jsx-BAng5TT0.js npm notice 35.7kB dist/web-shell/assets/julia-BBuGR-5E.js npm notice 17.1kB dist/web-shell/assets/kanagawa-dragon-CkXjmgJE.js npm notice 17.1kB dist/web-shell/assets/kanagawa-lotus-CfQXZHmo.js npm notice 17.1kB dist/web-shell/assets/kanagawa-wave-DWedfzmr.js npm notice 20.7kB dist/web-shell/assets/kanban-definition-UN3LZRKU-Q0jQCOct.js npm notice 28.1kB dist/web-shell/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 npm notice 33.5kB dist/web-shell/assets/KaTeX_AMS-Regular-DMm9YOAa.woff npm notice 63.6kB dist/web-shell/assets/KaTeX_AMS-Regular-DRggAlZN.ttf npm notice 12.4kB dist/web-shell/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf npm notice 7.7kB dist/web-shell/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff npm notice 6.9kB dist/web-shell/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 npm notice 7.7kB dist/web-shell/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff npm notice 6.9kB dist/web-shell/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 npm notice 12.3kB dist/web-shell/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf npm notice 19.6kB dist/web-shell/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf npm notice 13.3kB dist/web-shell/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff npm notice 11.3kB dist/web-shell/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 npm notice 19.6kB dist/web-shell/assets/KaTeX_Fraktur-Regular-CB_wures.ttf npm notice 11.3kB dist/web-shell/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 npm notice 13.2kB dist/web-shell/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff npm notice 25.3kB dist/web-shell/assets/KaTeX_Main-Bold-Cx986IdX.woff2 npm notice 29.9kB dist/web-shell/assets/KaTeX_Main-Bold-Jm3AIy58.woff npm notice 51.3kB dist/web-shell/assets/KaTeX_Main-Bold-waoOVXN0.ttf npm notice 16.8kB dist/web-shell/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 npm notice 33.0kB dist/web-shell/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf npm notice 19.4kB dist/web-shell/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff npm notice 33.6kB dist/web-shell/assets/KaTeX_Main-Italic-3WenGoN9.ttf npm notice 19.7kB dist/web-shell/assets/KaTeX_Main-Italic-BMLOBm91.woff npm notice 17.0kB dist/web-shell/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 npm notice 26.3kB dist/web-shell/assets/KaTeX_Main-Regular-B22Nviop.woff2 npm notice 30.8kB dist/web-shell/assets/KaTeX_Main-Regular-Dr94JaBh.woff npm notice 53.6kB dist/web-shell/assets/KaTeX_Main-Regular-ypZvNtVU.ttf npm notice 31.2kB dist/web-shell/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf npm notice 16.4kB dist/web-shell/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 npm notice 18.7kB dist/web-shell/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff npm notice 18.7kB dist/web-shell/assets/KaTeX_Math-Italic-DA0__PXp.woff npm notice 31.3kB dist/web-shell/assets/KaTeX_Math-Italic-flOr_0UB.ttf npm notice 16.4kB dist/web-shell/assets/KaTeX_Math-Italic-t53AETM-.woff2 npm notice 24.5kB dist/web-shell/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf npm notice 12.2kB dist/web-shell/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 npm notice 14.4kB dist/web-shell/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff npm notice 12.0kB dist/web-shell/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 npm notice 14.1kB dist/web-shell/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff npm notice 22.4kB dist/web-shell/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf npm notice 19.4kB dist/web-shell/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf npm notice 12.3kB dist/web-shell/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff npm notice 10.3kB dist/web-shell/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 npm notice 16.6kB dist/web-shell/assets/KaTeX_Script-Regular-C5JkGWo-.ttf npm notice 9.6kB dist/web-shell/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 npm notice 10.6kB dist/web-shell/assets/KaTeX_Script-Regular-D5yQViql.woff npm notice 6.5kB dist/web-shell/assets/KaTeX_Size1-Regular-C195tn64.woff npm notice 12.2kB dist/web-shell/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf npm notice 5.5kB dist/web-shell/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 npm notice 11.5kB dist/web-shell/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf npm notice 5.2kB dist/web-shell/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 npm notice 6.2kB dist/web-shell/assets/KaTeX_Size2-Regular-oD1tc_U0.woff npm notice 4.4kB dist/web-shell/assets/KaTeX_Size3-Regular-CTq5MqoE.woff npm notice 7.6kB dist/web-shell/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf npm notice 6.0kB dist/web-shell/assets/KaTeX_Size4-Regular-BF-4gkZK.woff npm notice 4.9kB dist/web-shell/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 npm notice 10.4kB dist/web-shell/assets/KaTeX_Size4-Regular-DWFBv043.ttf npm notice 16.0kB dist/web-shell/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff npm notice 13.6kB dist/web-shell/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 npm notice 27.6kB dist/web-shell/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf npm notice 8.8kB dist/web-shell/assets/kotlin-B5lbUyaz.js npm notice 20.6kB dist/web-shell/assets/kusto-mebxcVVE.js npm notice 11.5kB dist/web-shell/assets/laserwave-DUszq2jm.js npm notice 59.4kB dist/web-shell/assets/latex-C-cWTeAZ.js npm notice 35.8kB dist/web-shell/assets/layout-CNYaLpI5.js npm notice 4.3kB dist/web-shell/assets/lean-XBlWyCtg.js npm notice 102.5kB dist/web-shell/assets/less-BfCpw3nA.js npm notice 9.9kB dist/web-shell/assets/light-plus-B7mTdjB0.js npm notice 5.7kB dist/web-shell/assets/linear-DGGM2kcP.js npm notice 17.2kB dist/web-shell/assets/liquid-D3W5UaiH.js npm notice 3.0kB dist/web-shell/assets/log-Cc5clBb7.js npm notice 3.2kB dist/web-shell/assets/logo-IuBKFhSY.js npm notice 15.6kB dist/web-shell/assets/lua-CvWAzNxB.js npm notice 12.9kB dist/web-shell/assets/luau-Du5NY7AG.js npm notice 9.0kB dist/web-shell/assets/make-Bvotw-X0.js npm notice 57.0kB dist/web-shell/assets/markdown-UIAJJxZW.js npm notice 19.3kB dist/web-shell/assets/marko-z0MBrx5-.js npm notice 18.6kB dist/web-shell/assets/material-theme-D5KoaKCx.js npm notice 18.6kB dist/web-shell/assets/material-theme-darker-BfHTSMKl.js npm notice 18.6kB dist/web-shell/assets/material-theme-lighter-B0m2ddpp.js npm notice 18.6kB dist/web-shell/assets/material-theme-ocean-CyktbL80.js npm notice 18.6kB dist/web-shell/assets/material-theme-palenight-Csfq5Kiy.js npm notice 20.1kB dist/web-shell/assets/matlab-D9-PGadD.js npm notice 19.7kB dist/web-shell/assets/mdc-DB_EDNY_.js npm notice 140.4kB dist/web-shell/assets/mdx-sdHcTMYB.js npm notice 33.1kB dist/web-shell/assets/mermaid-Ci6OQyBP.js npm notice 619.3kB dist/web-shell/assets/mermaid.core-ByoxnWut.js npm notice 6.3kB dist/web-shell/assets/min-dark-CafNBF8u.js npm notice 7.0kB dist/web-shell/assets/min-light-CTRr51gU.js npm notice 23.4kB dist/web-shell/assets/mindmap-definition-RKZ34NQL-C0ZseHsi.js npm notice 3.4kB dist/web-shell/assets/mipsasm-BC5c_5Pe.js npm notice 72.6kB dist/web-shell/assets/mojo-Tz6hzZYG.js npm notice 7.9kB dist/web-shell/assets/monokai-D4h5O-jR.js npm notice 20.2kB dist/web-shell/assets/move-DB_GagMm.js npm notice 3.7kB dist/web-shell/assets/narrat-DLbgOhZU.js npm notice 4.0kB dist/web-shell/assets/nextflow-B0XVJmRM.js npm notice 35.7kB dist/web-shell/assets/nginx-D_VnBJ67.js npm notice 28.9kB dist/web-shell/assets/night-owl-C39BiMTA.js npm notice 23.6kB dist/web-shell/assets/nim-ZlGxZxc3.js npm notice 15.6kB dist/web-shell/assets/nix-shcSOmrb.js npm notice 26.7kB dist/web-shell/assets/nord-Ddv68eIx.js npm notice 19.7kB dist/web-shell/assets/nushell-D4Tzg5kh.js npm notice 107.8kB dist/web-shell/assets/objective-c-Deuh7S70.js npm notice 175.6kB dist/web-shell/assets/objective-cpp-BUEGK8hf.js npm notice 65.9kB dist/web-shell/assets/ocaml-BNioltXt.js npm notice 33.7kB dist/web-shell/assets/one-dark-pro-GBQ2dnAY.js npm notice 25.3kB dist/web-shell/assets/one-light-PoHY5YXO.js npm notice 1.2kB dist/web-shell/assets/ordinal-Cboi1Yqb.js npm notice 4.2kB dist/web-shell/assets/pascal-JqZropPD.js npm notice 44.5kB dist/web-shell/assets/perl-CHQXSrWU.js npm notice 113.8kB dist/web-shell/assets/php-B5ebYQev.js npm notice 5.3kB dist/web-shell/assets/pieDiagram-4H26LBE5-MQXNhl5A.js npm notice 9.3kB dist/web-shell/assets/plastic-3e1v2bzS.js npm notice 8.6kB dist/web-shell/assets/plsql-LKU2TuZ1.js npm notice 3.4kB dist/web-shell/assets/po-BFLt1xDp.js npm notice 33.5kB dist/web-shell/assets/poimandres-CS3Unz2-.js npm notice 4.7kB dist/web-shell/assets/polar-DKykz6zU.js npm notice 6.5kB dist/web-shell/assets/postcss-B3ZDOciz.js npm notice 5.9kB dist/web-shell/assets/powerquery-CSHBycmS.js npm notice 22.3kB dist/web-shell/assets/powershell-BIEUsx6d.js npm notice 6.4kB dist/web-shell/assets/prisma-B48N-Iqd.js npm notice 11.4kB dist/web-shell/assets/prolog-BY-TUvya.js npm notice 6.6kB dist/web-shell/assets/proto-zocC4JxJ.js npm notice 14.9kB dist/web-shell/assets/pug-CM9l7STV.js npm notice 11.7kB dist/web-shell/assets/puppet-Cza_XSSt.js npm notice 17.1kB dist/web-shell/assets/purescript-Bg-kzb6g.js npm notice 73.5kB dist/web-shell/assets/python-DhUJRlN_.js npm notice 5.4kB dist/web-shell/assets/qml-D8XfuvdV.js npm notice 1.0kB dist/web-shell/assets/qmldir-C8lEn-DE.js npm notice 7.8kB dist/web-shell/assets/qss-DhMKtDLN.js npm notice 34.5kB dist/web-shell/assets/quadrantDiagram-W4KKPZXB-DIR4ee2A.js npm notice 36.9kB dist/web-shell/assets/r-CwjWoCRV.js npm notice 97.6kB dist/web-shell/assets/racket-CzouJOBO.js npm notice 10.6kB dist/web-shell/assets/raku-B1bQXN8T.js npm notice 25.8kB dist/web-shell/assets/razor-CNLDkMZG.js npm notice 6.3kB dist/web-shell/assets/red-bN70gL4F.js npm notice 2.4kB dist/web-shell/assets/reg-5LuOXUq_.js npm notice 8.1kB dist/web-shell/assets/regexp-DWJ3fJO_.js npm notice 3.4kB dist/web-shell/assets/rel-DJlmqQ1C.js npm notice 31.2kB dist/web-shell/assets/requirementDiagram-4Y6WPE33-BTR0UdYQ.js npm notice 7.7kB dist/web-shell/assets/riscv-QhoSD0DR.js npm notice 21.8kB dist/web-shell/assets/rose-pine-CmCqftbK.js npm notice 21.8kB dist/web-shell/assets/rose-pine-dawn-Ds-gbosJ.js npm notice 21.8kB dist/web-shell/assets/rose-pine-moon-CjDtw9vr.js npm notice 10.6kB dist/web-shell/assets/rst-4NLicBqY.js npm notice 51.5kB dist/web-shell/assets/ruby-DeZ3UC14.js npm notice 17.6kB dist/web-shell/assets/rust-Be6lgOlo.js npm notice 23.4kB dist/web-shell/assets/sankeyDiagram-5OEKKPKP-sfnhMELN.js npm notice 9.8kB dist/web-shell/assets/sas-BmTFh92c.js npm notice 9.4kB dist/web-shell/assets/sass-BJ4Li9vH.js npm notice 30.5kB dist/web-shell/assets/scala-DQVVAn-B.js npm notice 8.7kB dist/web-shell/assets/scheme-BJGe-b2p.js npm notice 28.1kB dist/web-shell/assets/scss-C31hgJw-.js npm notice 5.1kB dist/web-shell/assets/sdbl-BLhTXw86.js npm notice 117.3kB dist/web-shell/assets/sequenceDiagram-3UESZ5HK-DXczHOHH.js npm notice 6.3kB dist/web-shell/assets/shaderlab-B7qAK45m.js npm notice 42.7kB dist/web-shell/assets/shellscript-atvbtKCR.js npm notice 719B dist/web-shell/assets/shellsession-C_rIy8kc.js npm notice 9.1kB dist/web-shell/assets/slack-dark-BthQWCQV.js npm notice 9.4kB dist/web-shell/assets/slack-ochin-DqwNpetd.js npm notice 4.2kB dist/web-shell/assets/smalltalk-DkLiglaE.js npm notice 20.8kB dist/web-shell/assets/snazzy-light-Bw305WKR.js npm notice 6.8kB dist/web-shell/assets/solarized-dark-DXbdFlpD.js npm notice 6.5kB dist/web-shell/assets/solarized-light-L9t79GZl.js npm notice 16.2kB dist/web-shell/assets/solidity-C1w2a3ep.js npm notice 7.0kB dist/web-shell/assets/soy-C-lX7w71.js npm notice 1.5kB dist/web-shell/assets/sparql-bYkjHRlG.js npm notice 3.9kB dist/web-shell/assets/splunk-Cf8iN4DR.js npm notice 24.3kB dist/web-shell/assets/sql-COK4E0Yg.js npm notice 3.6kB dist/web-shell/assets/ssh-config-BknIz3MU.js npm notice 61.0kB dist/web-shell/assets/stata-DorPZHa4.js npm notice 10.4kB dist/web-shell/assets/stateDiagram-AJRCARHV-DdE_KQFH.js npm notice 391B dist/web-shell/assets/stateDiagram-v2-BHNVJYJU-BHUSEndU.js npm notice 31.6kB dist/web-shell/assets/stylus-BeQkCIfX.js npm notice 16.9kB dist/web-shell/assets/svelte-MSaWC3Je.js npm notice 91.0kB dist/web-shell/assets/swift-BSxZ-RaX.js npm notice 14.0kB dist/web-shell/assets/synthwave-84-CbfX1IO0.js npm notice 26.8kB dist/web-shell/assets/system-verilog-C7L56vO4.js npm notice 8.0kB dist/web-shell/assets/systemd-CUnW07Te.js npm notice 6.7kB dist/web-shell/assets/talonscript-C1XDQQGZ.js npm notice 3.4kB dist/web-shell/assets/tasl-CQjiPCtT.js npm notice 5.0kB dist/web-shell/assets/tcl-DQ1-QYvQ.js npm notice 24.0kB dist/web-shell/assets/templ-dwX3ZSMB.js npm notice 13.4kB dist/web-shell/assets/terraform-BbSNqyBO.js npm notice 9.4kB dist/web-shell/assets/tex-rYs2v40G.js npm notice 31.4kB dist/web-shell/assets/timeline-definition-PNZ67QCA-DIc61uE8.js npm notice 34.4kB dist/web-shell/assets/tokyo-night-DBQeEorK.js npm notice 6.5kB dist/web-shell/assets/toml-CB2ApiWb.js npm notice 9.2kB dist/web-shell/assets/ts-tags-CipyTH0X.js npm notice 739B dist/web-shell/assets/tsv-B_m7g4N7.js npm notice 198.8kB dist/web-shell/assets/tsx-B6W0miNI.js npm notice 3.7kB dist/web-shell/assets/turtle-BMR_PYu6.js npm notice 23.0kB dist/web-shell/assets/twig-NC5TFiHP.js npm notice 209.0kB dist/web-shell/assets/typescript-Dj6nwHGl.js npm notice 28.2kB dist/web-shell/assets/typespec-BpWG_bgh.js npm notice 8.6kB dist/web-shell/assets/typst-BVUVsWT6.js npm notice 13.7kB dist/web-shell/assets/v-CAQ2eGtk.js npm notice 3.4kB dist/web-shell/assets/vala-BFOHcciG.js npm notice 6.3kB dist/web-shell/assets/vb-CdO5JTpU.js npm notice 41.8kB dist/web-shell/assets/vennDiagram-CIIHVFJN-BF7ODmxB.js npm notice 5.9kB dist/web-shell/assets/verilog-CJaU5se_.js npm notice 12.7kB dist/web-shell/assets/vesper-BEBZ7ncR.js npm notice 23.8kB dist/web-shell/assets/vhdl-DYoNaHQp.js npm notice 21.0kB dist/web-shell/assets/viml-m4uW47V2.js npm notice 13.7kB dist/web-shell/assets/vitesse-black-Bkuqu6BP.js npm notice 13.8kB dist/web-shell/assets/vitesse-dark-D0r3Knsf.js npm notice 13.6kB dist/web-shell/assets/vitesse-light-CVO1_9PV.js npm notice 21.5kB dist/web-shell/assets/vue-BuYVFjOK.js npm notice 8.7kB dist/web-shell/assets/vue-html-xdeiXROB.js npm notice 78.2kB dist/web-shell/assets/vyper-nyqBNV6O.js npm notice 615.3kB dist/web-shell/assets/wardley-L42UT6IY-3pc1MEaw.js npm notice 26.1kB dist/web-shell/assets/wardleyDiagram-YWT4CUSO-9jnPcZuP.js npm notice 15.9kB dist/web-shell/assets/wasm-C6j12Q_x.js npm notice 622.3kB dist/web-shell/assets/wasm-CG6Dc4jp.js npm notice 2.2kB dist/web-shell/assets/wenyan-7A4Fjokl.js npm notice 6.5kB dist/web-shell/assets/wgsl-CB0Krxn9.js npm notice 56.6kB dist/web-shell/assets/wikitext-DCE3LsBG.js npm notice 268.6kB dist/web-shell/assets/wolfram-C3FkfJm5.js npm notice 5.4kB dist/web-shell/assets/xml-e3z08dGr.js npm notice 1.4kB dist/web-shell/assets/xsl-Dd0NUgwM.js npm notice 40.4kB dist/web-shell/assets/xychartDiagram-2RQKCTM6-DcthaZK6.js npm notice 10.8kB dist/web-shell/assets/yaml-CVw76BM1.js npm notice 4.4kB dist/web-shell/assets/zenscript-HnGAYVZD.js npm notice 5.5kB dist/web-shell/assets/zig-BVz_zdnA.js npm notice 1.1kB dist/web-shell/index.html npm notice 8.7kB package.json npm notice 990B scripts/cli-entry.js npm notice Bundled Dependencies npm notice dom-accessibility-api npm notice @alcalzone/ansi-tokenize npm notice @babel/code-frame npm notice @babel/helper-validator-identifier npm notice @babel/runtime npm notice @kwsites/file-exists npm notice @kwsites/promise-deferred npm notice @lydell/node-pty-linux-x64 npm notice @lydell/node-pty npm notice @testing-library/dom npm notice @types/aria-query npm notice ansi-escapes npm notice ansi-regex npm notice aria-query npm notice auto-bind npm notice cli-cursor npm notice code-excerpt npm notice convert-to-spaces npm notice debug npm notice dequal npm notice environment npm notice es-toolkit npm notice get-east-asian-width npm notice indent-string npm notice ink npm notice lz-string npm notice mimic-fn npm notice onetime npm notice patch-console npm notice picocolors npm notice react-reconciler npm notice restore-cursor npm notice scheduler npm notice stack-utils npm notice strip-ansi npm notice tagged-tag npm notice terminal-size npm notice ws npm notice yoga-layout npm notice ms npm notice simple-git npm notice Tarball Details npm notice name: @qwen-code/qwen-code npm notice version: 0.19.2 npm notice filename: qwen-code-qwen-code-0.19.2.tgz npm notice package size: 23.9 MB npm notice unpacked size: 91.2 MB npm notice shasum: f5c38e810d6b7832888a73950d0a97118b79d473 npm notice integrity: sha512-13Y9KUdIbjjqw[...]t0np3ekhHtMRg== npm notice bundled deps: 41 npm notice bundled files: 0 npm notice own files: 4940 npm notice total files: 4940 npm notice qwen-code-qwen-code-0.19.2.tgz ==> Starting check()... > @qwen-code/acp-bridge@0.19.2 test > vitest run --exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts RUN v3.2.4 /startdir/src/qwen-code/packages/acp-bridge ✓ src/compactionEngine.test.ts (40 tests) 23ms ✓ src/eventBus.test.ts (29 tests) 110ms permissionMediator: consensus request req-1 for session sess-1 requires unanimity (votersAtIssue.size=2, default quorum=floor(M/2)+1=2); split votes will only resolve via permissionTimeoutMs (5000ms). This breadcrumb fires once per mediator lifetime; subsequent unanimity-required requests are silent. qwen serve: permission req-1 (session sess-1) timed out after 5000ms qwen serve: permission req-1 (session sess-1): vote rejected (designated_mismatch (voter is not the prompt originator)) by client "client_B" qwen serve: permission req-1 (session sess-1): vote rejected (designated_mismatch (voter not in consensus votersAtIssue snapshot)) by client permissionMediator: consensus request req-1 for session sess-1 requires unanimity (votersAtIssue.size=2, default quorum=floor(M/2)+1=2); split votes will only resolve via permissionTimeoutMs (5000ms). This breadcrumb fires once per mediator lifetime; subsequent unanimity-required requests are silent. qwen serve: permission req-1 (session sess-1): vote rejected (designated_mismatch (voter not in consensus votersAtIssue snapshot)) by client "client_late_join" qwen serve: permission req-1 (session sess-1) timed out after 5000ms permissionMediator: consensusQuorum override 100 capped to 3 (votersAtIssue.size=3) for request req-1 session sess-1 qwen serve: permission req-1 (session sess-1): vote rejected (remote_not_allowed (local-only policy; vote not from loopback)) by client "client_A" permissionMediator: emit failed for session="sess-1" type="permission_resolved": Error: bus closed during shutdown permissionMediator: emit failed for session="sess-1" type="permission_already_resolved": Error: bus closed during shutdown permissionMediator: audit publisher threw: Error: audit ring full permissionMediator: audit publisher threw: Error: audit ring full permissionMediator: audit publisher threw: Error: audit publisher transient error permissionMediator: audit publisher threw: Error: audit publisher transient error qwen serve: permission req-1 (session sess-1) timed out after 5000ms permissionMediator: audit publisher threw: Error: audit publisher transient error ✓ src/permissionMediator.test.ts (40 tests) 65ms a2ui: dropping command with unrecognized shape (version,noop) ✓ src/a2uiExtraction.test.ts (14 tests) 8ms [mid-turn] session=sess:drain drained=2 injected into running turn [mid-turn] session=sess:multi drained=2 originator=client-1 injected into running turn [mid-turn] session=sess:multi drained=1 originator=client-2 injected into running turn ✓ src/bridgeClient.test.ts (23 tests) 32ms ✓ src/status.test.ts (17 tests) 10ms ✓ src/spawnChannel.test.ts (24 tests) 14ms qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) ✓ src/inMemoryChannel.test.ts (8 tests) 120ms qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 1 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) sendPrompt: forward failed for session sess:/work/a: temporary failure qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) broadcastPromptCancelledOnce: suppressed duplicate cancel for session sess:/work/a (latch already set) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) sendPrompt: forward failed for session sess:/work/a: forward boom qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) by client "client_aaf133fc-b213-4d95-8fed-e20f672ec9cd" qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: updated session metadata "sess:/work/a" displayName=set by client "client_73aec7c1-7cb4-458a-a724-84c2883b64e4" qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) sendPrompt: forward failed for session sess:/work/a: first prompt failed qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) sendPrompt: forward failed for session sess:/work/a: first prompt boom qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: legacy permission vote "does-not-exist" has no live session (peek returned undefined); returning 404. qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: legacy permission vote "does-not-exist" has no live session (peek returned undefined); returning 404. qwen serve: legacy permission vote "does-not-exist" has no live session (peek returned undefined); returning 404. qwen serve: legacy permission vote "does-not-exist" has no live session (peek returned undefined); returning 404. qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [reconcile] session=sess:/work/a target=model action=skipped reason=roundtrip_failed qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [reconcile] session=sess:/work/a target=model action=skipped reason=roundtrip_failed qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 1 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [reconcile] session=sess:/work/a target=model action=skipped reason=roundtrip_failed qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [reconcile] session=sess:/work/a target=model action=skipped reason=roundtrip_failed qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 1 session(s) torn down) sendPrompt: forward failed for session stuck:/work/a: agent channel closed mid-request (session stuck:/work/a) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [reconcile] session=sess:/work/a target=approvalMode action=skipped reason=roundtrip_failed qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) sendPrompt: forward failed for session sess:/work/a: Internal error qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: dropping mcp guardrail extNotification for tombstoned session "sess:/work/a" (post-close stale event) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: WARNING aliveChannels.size=3 (expected 1, max 2 during killSession-then-spawnOrAttach overlap) — possible channel leak; check that prior channels' channel.exited fired and the handler ran cleanup. qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [demux] session=sess:/work/a type=current_model_update action=promoted model=qwen-max qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [demux] session=sess:/work/a type=current_model_update action=suppressed reason=bridge_roundtrip_in_flight qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [demux] session=nonexistent-session type=current_model_update action=dropped reason=no_entry qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [demux] session=sess:/work/a type=current_model_update action=promoted model=qwen-max qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [demux] session=sess:/work/a type=prompt_suggestion action=dropped reason=malformed [demux] session=sess:/work/a type=prompt_suggestion action=dropped reason=malformed [demux] session= type=prompt_suggestion action=dropped reason=malformed [demux] session=sess:/work/a type=prompt_suggestion action=dropped reason=malformed qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 3 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: updated session metadata "sess:/work/a" displayName=set qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve debug: rejected permission vote "2b25df9f-0742-47f9-bce9-a6728a551429" for session "sess:/work/a#2"; request belongs to session "sess:/work/a". qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [demux] session=sess:/work/a type=current_mode_update action=promoted mode=auto-edit qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [demux] session=sess:/work/a type=current_mode_update action=suppressed reason=bridge_roundtrip_in_flight qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [demux] session=sess:/work/a type=current_model_update action=promoted model=qwen-max qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [demux] session=sess:/work/a type=current_mode_update action=dropped reason=unknown_mode mode=totally-bogus [demux] session=sess:/work/a type=current_model_update action=promoted model=qwen-max qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [demux] session=sess:/work/a type=current_mode_update action=promoted mode=auto-edit qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [demux] session=sess:/work/a type=current_mode_update action=promoted mode=auto-edit legacy_frame=skipped [demux] session=sess:/work/a type=current_model_update action=promoted model=qwen-max qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [demux] session=sess:/work/a type=current_model_update action=promoted model=qwen-turbo qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [demux] session=sess:/work/a type=current_mode_update action=promoted mode=auto-edit qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [demux] session=sess:/work/a type=current_model_update action=promoted model=qwen-turbo qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [demux] session=sess:/work/a type=current_model_update action=promoted model=qwen-turbo qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [reconcile] session=sess:/work/a target=model action=corrected cached=qwen-max actual=qwen-turbo qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [reconcile] session=sess:/work/a target=model action=failed error=[object Object] qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [reconcile] session=sess:/work/a target=model action=skipped reason=roundtrip_failed [demux] session=sess:/work/a type=current_model_update action=dropped reason=no_entry qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [reconcile] session=sess:/work/a target=model action=skipped reason=generation_changed genBefore=1 genAfter=2 [reconcile] session=sess:/work/a target=model action=corrected cached=qwen-plus actual=qwen-turbo qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [reconcile] session=sess:/work/a target=approvalMode action=corrected cached=yolo actual=plan qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [reconcile] session=sess:/work/a target=approvalMode action=skipped reason=roundtrip_failed qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [reconcile] session=sess:/work/a target=approvalMode action=dropped reason=unknown_mode mode=super-yolo qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: closing session "sess:/work/a#2" (reason: client_close) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: idle timeout (5000ms) expired, killing channel qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: closing session "sess:/work/a#2" (reason: client_close) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: idle timeout (5000ms) expired, killing channel qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 1000ms, idle threshold 5000ms) qwen serve: reaping idle session "sess:/work/a" (idle for 5s, threshold 5s) qwen serve: closing session "sess:/work/a" (reason: idle_timeout) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 1000ms, idle threshold 2000ms) sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a) qwen serve: session reaper started (interval 1000ms, idle threshold 2000ms) qwen serve: reaping idle session "sess:/work/a" (idle for 6s, threshold 2s) qwen serve: closing session "sess:/work/a" (reason: idle_timeout) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 1000ms, idle threshold 2000ms) sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a) qwen serve: session reaper disabled qwen serve: session reaper disabled qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: idle_timeout) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 1000ms, idle threshold 3000ms) qwen serve: reaping idle session "sess:/work/a" (idle for 3s, threshold 3s) qwen serve: closing session "sess:/work/a" (reason: idle_timeout) qwen serve: reaping idle session "sess:/work/a#2" (idle for 3s, threshold 3s) qwen serve: closing session "sess:/work/a#2" (reason: idle_timeout) qwen serve: reaping idle session "sess:/work/a#3" (idle for 3s, threshold 3s) qwen serve: closing session "sess:/work/a#3" (reason: idle_timeout) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 1000ms, idle threshold 5000ms) qwen serve: reaping idle session "sess:/work/a" (idle for 5s, threshold 5s) qwen serve: closing session "sess:/work/a" (reason: idle_timeout) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 1000ms, idle threshold 2000ms) qwen serve: session reaper started (interval 1000ms, idle threshold 3000ms) qwen serve: closing session "sess:/work/a" (reason: last_client_detached) qwen serve: idle timeout (2000ms) expired, killing channel qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper disabled qwen serve: closing session "sess:/work/a" (reason: last_client_detached) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper disabled qwen serve: closing session "sess:/work/a" (reason: last_client_detached) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper disabled qwen serve: closing session "sess:/work/a" (reason: last_client_detached) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: closing session "sess:/work/a" (reason: client_close) sendPrompt: forward failed for session sess:/work/a: cancelled qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 0 session(s) torn down) sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 1 session(s) torn down) sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: channel exited (code=none, signal=none, 1 session(s) torn down) sendPrompt: forward failed for session sess:/work/a: agent channel closed mid-request (session sess:/work/a) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [mid-turn] session=sess:/work/a rejected: session idle; browser keeps it for next turn qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [mid-turn] session=sess:/work/a dropped 1 undrained message(s) at idle; browser resends next turn [mid-turn] session=sess:/work/a rejected: session idle; browser keeps it for next turn qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [mid-turn] session=sess:/work/a rejected: empty message; browser keeps it for next turn qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [mid-turn] session=sess:/work/a drained=2 injected into running turn qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [mid-turn] session=sess:/work/a dropped 1 undrained message(s) at idle; browser resends next turn qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [mid-turn] session=sess:/work/a drained=1 injected into running turn qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [mid-turn] session=sess:/work/a drained=1 originator=client_f5e63556-ac1c-420d-ad4b-022c6a80e262 injected into running turn qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [mid-turn] session=sess:/work/a rejected: queue full (depth 20 >= 20); browser keeps it for next turn [mid-turn] session=sess:/work/a dropped 20 undrained message(s) at idle; browser resends next turn qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) [mid-turn] session=sess:/work/a drained=1 injected into running turn ✓ src/bridge.test.ts (296 tests) 3184ms Test Files 9 passed (9) Tests 491 passed (491) Start at 12:20:45 Duration 14.46s (transform 9.85s, setup 0ms, collect 46.10s, tests 3.57s, environment 2ms, prepare 1.72s) > @qwen-code/audio-capture@0.19.2 test > vitest run --exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts RUN v3.2.4 /startdir/src/qwen-code/packages/audio-capture ✓ src/platform.test.ts (2 tests) 4ms Test Files 1 passed (1) Tests 2 passed (2) Start at 12:21:00 Duration 1.28s (transform 80ms, setup 0ms, collect 84ms, tests 4ms, environment 0ms, prepare 141ms) > @qwen-code/qwen-code@0.19.2 test > vitest run --exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts RUN v3.2.4 /startdir/src/qwen-code/packages/cli Coverage enabled with v8 ✓ src/serve/auth/device-flow.test.ts (47 tests) 35ms (node:3244) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 end listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (Use `node --trace-warnings ...` to show where the warning was created) (node:3244) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 end listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:3244) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 finish listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:3244) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 error listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:3244) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 close listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:3244) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 drain listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:3244) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 finish listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:3244) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 error listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:3244) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 close listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:3244) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 data listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit qwen serve: ignoring invalid QWEN_SERVE_MCP_CLIENT_BUDGET='0x10' (expected positive integer); MCP budget enforcement disabled for this child. qwen serve: ignoring invalid QWEN_SERVE_MCP_CLIENT_BUDGET='1e2' (expected positive integer); MCP budget enforcement disabled for this child. qwen serve: ignoring invalid QWEN_SERVE_MCP_CLIENT_BUDGET='1.0' (expected positive integer); MCP budget enforcement disabled for this child. qwen serve: ignoring invalid QWEN_SERVE_MCP_CLIENT_BUDGET='0b101' (expected positive integer); MCP budget enforcement disabled for this child. qwen serve: ignoring invalid QWEN_SERVE_MCP_CLIENT_BUDGET='5 abc' (expected positive integer); MCP budget enforcement disabled for this child. qwen serve: ignoring invalid QWEN_SERVE_MCP_CLIENT_BUDGET='abc' (expected positive integer); MCP budget enforcement disabled for this child. qwen serve: ignoring invalid QWEN_SERVE_MCP_CLIENT_BUDGET='-5' (expected positive integer); MCP budget enforcement disabled for this child. qwen serve: ignoring invalid QWEN_SERVE_MCP_CLIENT_BUDGET='0' (expected positive integer); MCP budget enforcement disabled for this child. qwen serve: ignoring invalid QWEN_SERVE_MCP_CLIENT_BUDGET=' ' (expected positive integer); MCP budget enforcement disabled for this child. ✓ src/acp-integration/acpAgent.test.ts (155 tests) 7860ms ✓ src/services/insight/generators/DataProcessor.test.ts (45 tests) 81ms ✓ src/utils/modelConfigUtils.test.ts (54 tests) 144ms ✓ src/ui/hooks/atCommandProcessor.test.ts (57 tests) 956ms ✓ src/ui/components/shared/text-buffer.test.ts (158 tests) 332ms qwen serve: fast-path bootstrap failed, falling back to full startup: Failed to read serve fast path settings from /tmp/qws-fast-path-home-houURU/settings.json: Expected property name or '}' in JSON at position 1 (line 1 column 2) qwen serve: fast-path bootstrap failed, falling back to full startup: Serve fast path settings advanced.excludedEnvVars must be a string array. qwen serve: fast-path bootstrap failed, falling back to full startup: Serve fast path settings advanced.runtimeOutputDir must be a string. qwen serve: fast-path bootstrap failed, falling back to full startup: Serve fast path settings security.folderTrust.enabled must be a boolean. ✓ src/serve/fast-path.test.ts (56 tests) 163ms ✓ src/ui/hooks/vim.test.ts (132 tests) 1764ms ✓ src/config/settings.test.ts (144 tests) 219ms ✓ src/serve/fs/workspace-file-system.test.ts (78 tests) 1278ms ✓ src/ui/contexts/KeypressContext.test.tsx (93 tests) 1748ms ✓ KeypressContext - Kitty Protocol > Enter key handling > auto-recovers from a stuck paste mode via idle timeout 1261ms ✓ src/ui/commands/exportCommand.test.ts (40 tests) 159ms qwen serve: daemon log → /tmp/qws-dl-NhETaJ/debug/daemon/serve-3546-a2e682ac.log qwen serve: createServeApp default fsFactory uses trusted=false — agent ACP writeTextFile calls will reject with untrusted_workspace. Inject deps.fsFactory (with explicit trust) or deps.bridge to override. qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: Web Shell index send failed: ENOENT: no such file or directory, stat '/tmp/qwen-webshell-UfNhmp/index.html' qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) ✓ src/ui/hooks/slashCommandProcessor.test.ts (61 tests) 5056ms ✓ useSlashCommandProcessor > Initialization and Command Loading > rebuilds commands when an MCP server connects (surfaces MCP prompts in /) 324ms ✓ useSlashCommandProcessor > Initialization and Command Loading > ignores non-connected MCP status changes (no rebuild) 410ms qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve listening on http://127.0.0.1:35385 (mode=http-bridge, workspace=/tmp/qws-dl-NhETaJ) qwen serve: bound to workspace "/tmp/qws-dl-NhETaJ" qwen serve: startup timing: processToListenMs=53037 runQwenServeToListenMs=2572 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /tmp/qws-pt-t5dhaE/debug/daemon/serve-3546-6f4108c7.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-f073bac0.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-9dde9b28.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-bb7cb32a.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-d9d28d88.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-bd315bb3.log qwen serve: daemon log → /tmp/qws-rt-GVaOhY/debug/daemon/serve-3546-0a8295ca.log qwen serve: daemon log → /tmp/qws-rt-ICnh6G/debug/daemon/serve-3546-8052ae24.log qwen serve: daemon log → /tmp/qws-rt-xyRV2d/debug/daemon/serve-3546-dc84c660.log qwen serve: daemon log → /tmp/qws-rt-kwI726/debug/daemon/serve-3546-3300f0a0.log qwen serve: daemon log → /tmp/qws-rt-72txDn/debug/daemon/serve-3546-f171e373.log qwen serve: daemon log → /tmp/qws-rt-xzCtw8/debug/daemon/serve-3546-763505a7.log qwen serve: daemon log → /tmp/qws-rt-fuvYW0/debug/daemon/serve-3546-7f5ecea4.log qwen serve: daemon log → /tmp/qws-rt-Fn0cgB/debug/daemon/serve-3546-fbf38e93.log qwen serve: daemon log → /tmp/qws-rt-3XIvZX/debug/daemon/serve-3546-8aa28488.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://127.0.0.1:41741 (mode=http-bridge, workspace=/tmp/qws-rt-3XIvZX) qwen serve listening on http://127.0.0.1:35741 (mode=http-bridge, workspace=/tmp/qws-rt-TSgPhs) qwen serve: bound to workspace "/tmp/qws-rt-3XIvZX" qwen serve: startup timing: processToListenMs=53071 runQwenServeToListenMs=11 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /tmp/qws-rt-TSgPhs/debug/daemon/serve-3546-e290ffaf.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/tmp/qws-rt-TSgPhs" qwen serve: startup timing: processToListenMs=53077 runQwenServeToListenMs=5 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve listening on http://127.0.0.1:39077 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-UqIXJ1) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-2d5ae36a.log qwen serve: bound to workspace "/tmp/qws-runtime-fail-UqIXJ1" qwen serve: startup timing: processToListenMs=53079 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: runtime startup failed: runtime boom qwen serve: extensions install: refreshed 1 session(s), 0 failed 2026-07-03T12:21:58.727Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:544:13) at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:1589:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-601a175e.log qwen serve listening on http://127.0.0.1:44137 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-close-AdIrrI) qwen serve: bound to workspace "/tmp/qws-runtime-fail-close-AdIrrI" qwen serve: startup timing: processToListenMs=53110 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: runtime startup failed: runtime boom 2026-07-03T12:21:58.758Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:565:13) at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:1589:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-905c672f.log qwen serve: bound to workspace "/tmp/qws-runtime-starting-route-0bJ3Zs" qwen serve: startup timing: processToListenMs=53124 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve listening on http://127.0.0.1:37341 (mode=http-bridge, workspace=/tmp/qws-runtime-starting-route-0bJ3Zs) qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: runtime startup failed: Daemon runtime stopped before mounting. 2026-07-03T12:21:58.810Z [ERROR] [DAEMON] runtime startup failed Error: Daemon runtime stopped before mounting. at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:1957:17 at processTicksAndRejections (node:internal/process/task_queues:104:5) at waitForRuntimeStartingForShutdown (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:765:3) at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:2122:17 qwen serve: daemon log → /tmp/qws-runtime-fail-log-UhUxET/debug/daemon/serve-3546-6e190d67.log qwen serve: bound to workspace "/tmp/qws-runtime-fail-log-UhUxET" qwen serve: startup timing: processToListenMs=53175 runQwenServeToListenMs=2 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: runtime startup failed: runtime boom 2026-07-03T12:21:58.823Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:728:13) at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:1589:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve listening on http://127.0.0.1:34271 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-log-UhUxET) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-9d2e7e57.log qwen serve listening on http://127.0.0.1:33923 (mode=http-bridge, workspace=/tmp/qws-runtime-flush-pending-ydSFuP) qwen serve: bound to workspace "/tmp/qws-runtime-flush-pending-ydSFuP" qwen serve: startup timing: processToListenMs=53181 runQwenServeToListenMs=2 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-49f54bdf.log qwen serve: bound to workspace "/tmp/qws-runtime-timeout-TpgQqu" qwen serve: startup timing: processToListenMs=53191 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve listening on http://127.0.0.1:37417 (mode=http-bridge, workspace=/tmp/qws-runtime-timeout-TpgQqu) qwen serve: runtime startup failed: Daemon runtime startup timed out after 1ms. 2026-07-03T12:21:58.838Z [ERROR] [DAEMON] runtime startup failed Error: Daemon runtime startup timed out after 1ms. at Timeout. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:1978:15) at listOnTimeout (node:internal/timers:605:17) at processTimers (node:internal/timers:541:7) qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-c9fd16e4.log qwen serve: bound to workspace "/tmp/qws-runtime-fail-bmCNlW" qwen serve: startup timing: processToListenMs=53259 runQwenServeToListenMs=6 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve listening on http://127.0.0.1:33515 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-bmCNlW) qwen serve: runtime startup failed: runtime boom qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed 2026-07-03T12:21:58.907Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:893:13) at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Object.createAcpSessionBridge (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:1589:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-9bd4ef71.log qwen serve listening on http://127.0.0.1:42081 (mode=http-bridge, workspace=/tmp/qws-runtime-partial-fail-mdFucw) qwen serve: bound to workspace "/tmp/qws-runtime-partial-fail-mdFucw" qwen serve: startup timing: processToListenMs=53370 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: runtime startup failed: runtime app boom 2026-07-03T12:21:59.018Z [ERROR] [DAEMON] runtime startup failed Error: runtime app boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:1056:13) at Object.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Object.createServeApp (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:1663:25) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-50996914.log qwen serve: bound to workspace "/tmp/qws-runtime-close-UKHiDl" qwen serve: startup timing: processToListenMs=53400 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve listening on http://127.0.0.1:40183 (mode=http-bridge, workspace=/tmp/qws-runtime-close-UKHiDl) qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: runtime startup failed: Daemon runtime stopped before mounting. 2026-07-03T12:21:59.069Z [ERROR] [DAEMON] runtime startup failed Error: Daemon runtime stopped before mounting. at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:1957:17 at processTicksAndRejections (node:internal/process/task_queues:104:5) at waitForRuntimeStartingForShutdown (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:765:3) at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:2122:17 qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-4963c41f.log qwen serve listening on http://127.0.0.1:38547 (mode=http-bridge, workspace=/tmp/qws-ws-79V2uV) qwen serve: bound to workspace "/tmp/qws-ws-79V2uV" qwen serve: startup timing: processToListenMs=53451 runQwenServeToListenMs=22 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-7a6671da.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://127.0.0.1:36827 (mode=http-bridge, workspace=/tmp/qws-ws-DSLCZM) qwen serve listening on http://127.0.0.1:41405 (mode=http-bridge, workspace=/tmp/qws-ws-Igym1t) qwen serve: bound to workspace "/tmp/qws-ws-DSLCZM" qwen serve: startup timing: processToListenMs=53459 runQwenServeToListenMs=7 qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-0a82679c.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/tmp/qws-ws-Igym1t" qwen serve: startup timing: processToListenMs=53466 runQwenServeToListenMs=5 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-ce10d0af.log qwen serve listening on http://127.0.0.1:41089 (mode=http-bridge, workspace=/tmp/qws-ws-XP3ICC) qwen serve: bound to workspace "/tmp/qws-ws-XP3ICC" qwen serve: startup timing: processToListenMs=53489 runQwenServeToListenMs=22 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-2f87955f.log qwen serve listening on http://127.0.0.1:46859 (mode=http-bridge, workspace=/tmp/qws-ws-Dx8MGq) qwen serve: bound to workspace "/tmp/qws-ws-Dx8MGq" qwen serve: startup timing: processToListenMs=53496 runQwenServeToListenMs=4 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve listening on http://127.0.0.1:39421 (mode=http-bridge, workspace=/tmp/qws-startup-runtime-dir-e0lZMs) qwen serve listening on http://127.0.0.1:42829 (mode=http-bridge, workspace=/tmp/qws-startup-log-dep-AIJYBp) qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve listening on http://127.0.0.1:44649 (mode=http-bridge, workspace=/tmp/qws-startup-storage-dir-kJXAO1) qwen serve listening on http://127.0.0.1:36307 (mode=http-bridge, workspace=/tmp/qws-startup-preheat-dup3WV) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-5e65c714.log qwen serve: bound to workspace "/tmp/qws-startup-preheat-dup3WV" qwen serve: startup timing: processToListenMs=53593 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-03T12:21:59.248Z [INFO] [DAEMON] route=GET /daemon/status durationMs=1 status=200 request completed 2026-07-03T12:21:59.252Z [INFO] [DAEMON] route=GET /daemon/status durationMs=1 status=200 request completed qwen serve: extensions install: refreshed 1 session(s), 0 failed 2026-07-03T12:21:59.255Z [INFO] [DAEMON] route=GET /daemon/status durationMs=1 status=200 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3546-8be448cd.log qwen serve: bound to workspace "/tmp/qws-startup-preheat-BnRnob" qwen serve: startup timing: processToListenMs=53617 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve listening on http://127.0.0.1:45259 (mode=http-bridge, workspace=/tmp/qws-startup-preheat-BnRnob) qwen serve: /acp WebSocket transport enabled on /acp qwen serve: ACP preheat failed, will retry on first session: preheat boom 2026-07-03T12:21:59.277Z [INFO] [DAEMON] route=GET /daemon/status durationMs=1 status=200 request completed 2026-07-03T12:21:59.283Z [INFO] [DAEMON] route=GET /daemon/status durationMs=0 status=200 request completed qwen serve: extensions install: refreshed 1 session(s), 0 failed ✓ src/serve/run-qwen-serve.test.ts (67 tests) 3231ms ✓ runQwenServe daemon logger wiring > creates a daemon log file at boot and flushes on shutdown 2581ms qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: background task failed: https://***REDACTED***@example.com/private-ext failed qwen serve: extensions install: mutation succeeded but refresh failed: refresh broke qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: background task failed: Only GitHub, Git, and npm extension installs are supported over the daemon endpoint. qwen serve: extensions install: background task failed: Install source not found: C:\Users\test\qwen-local-extension qwen serve: extensions install: background task failed: --ref is not applicable for npm extensions. qwen serve: extensions install: background task failed: --registry is only applicable for npm extensions. qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions enable: refreshed 1 session(s), 0 failed qwen serve: extensions disable: refreshed 1 session(s), 0 failed ✓ src/ui/commands/statsCommand.test.ts (36 tests) 445ms qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions update: refreshed 1 session(s), 0 failed ✓ src/ui/hooks/useStatusLine.test.ts (67 tests) 7097ms ✓ useStatusLine > config validation > returns null when no statusLine config is set 6748ms qwen serve: extensions update: background task failed: Extension "missing-ext" not found qwen serve: extensions update: background task failed: Extension "test-ext" has no update qwen serve: extensions update: background task failed: Update check failed for extension "test-ext": https://***REDACTED***@example.com/check failed ✓ src/ui/components/shared/vim-buffer-actions.test.ts (74 tests) 51ms qwen serve: extensions uninstall: refreshed 1 session(s), 0 failed qwen serve: extensions uninstall: refreshed 1 session(s), 0 failed qwen serve: extensions uninstall: background task failed: Extension "plain-name" not found qwen serve: extensions uninstall: background task failed: Extension "https://example.com/missing" not found ✓ src/services/FileCommandLoader.test.ts (40 tests) 191ms ✓ src/nonInteractive/io/BaseJsonOutputAdapter.test.ts (96 tests) 64ms qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: workspace_mismatch (POST /session): daemon bound to "/work/bound", rejected "/work/different" qwen serve: bridge error (POST /session): Error: boom at spawnImpl (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:5010:17) at Object.spawnOrAttach (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:1079:28) at /startdir/src/qwen-code/packages/cli/src/serve/server.ts:3011:36 at Layer.handleRequest (/startdir/src/qwen-code/node_modules/router/lib/layer.js:152:17) at next (/startdir/src/qwen-code/node_modules/router/lib/route.js:157:13) at passthrough (/startdir/src/qwen-code/packages/cli/src/serve/auth.ts:401:8) at Layer.handleRequest (/startdir/src/qwen-code/node_modules/router/lib/layer.js:152:17) at next (/startdir/src/qwen-code/node_modules/router/lib/route.js:157:13) at Route.dispatch (/startdir/src/qwen-code/node_modules/router/lib/route.js:117:3) at handle (/startdir/src/qwen-code/node_modules/router/index.js:435:11) qwen serve: DELETE /workspace/agents/"partial-target" partial — removed=project remaining=user:/tmp/qwen-serve-agents-hc7k01/global/agents/partial-target.md ✓ src/nonInteractiveCli.test.ts (56 tests | 1 skipped) 1007ms qwen serve: workspace_mismatch (POST /session): daemon bound to "/work/bound", rejected "/work/different" ✓ src/serve/workspace-agents.test.ts (38 tests) 466ms ✓ src/ui/commands/modelCommand.test.ts (36 tests) 142ms ✓ src/utils/settingsUtils.test.ts (78 tests) 56ms qwen serve: bridge error (POST /session/:id/language session=session-A): Error: unexpected failure at setLanguageImpl (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:6764:17) at Object.setSessionLanguage (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:1233:14) at /startdir/src/qwen-code/packages/cli/src/serve/server.ts:4132:37 at Layer.handleRequest (/startdir/src/qwen-code/node_modules/router/lib/layer.js:152:17) at next (/startdir/src/qwen-code/node_modules/router/lib/route.js:157:13) at passthrough (/startdir/src/qwen-code/packages/cli/src/serve/auth.ts:401:8) at Layer.handleRequest (/startdir/src/qwen-code/node_modules/router/lib/layer.js:152:17) at next (/startdir/src/qwen-code/node_modules/router/lib/route.js:157:13) at Route.dispatch (/startdir/src/qwen-code/node_modules/router/lib/route.js:117:3) at handle (/startdir/src/qwen-code/node_modules/router/index.js:435:11) qwen serve: getEnvStatus failed: provider boom qwen serve: getDaemonPreflightCells failed: daemon cells boom qwen serve: refreshExtensionsForAllSessions failed: refreshExtensionsForAllSessions is not wired qwen serve: refreshExtensionsForAllSessions failed: bridge down qwen serve: skipping malformed pool restart entry (server=pool-srv): null qwen serve: skipping malformed pool restart entry (server=pool-srv): "not-an-object" ✓ src/ui/commands/doctorCommand.test.ts (37 tests) 229ms ✓ src/serve/workspace-service/__tests__/facade.test.ts (44 tests) 86ms qwen serve: closeSession failed for "aaaabbbb-cccc-dddd-eeee-ffffaaaabbbb": "Client id \"bad-client\" is not registered for session aaaabbbb-cccc-dddd-eeee-ff qwen serve: closeSession failed for "s-1": "bridge exploded" qwen serve: closeSession failed for "aaaa3333-bbbb-cccc-dddd-eeeeeeeeeeee": "agent busy" qwen serve: closeSession failed for "eeee1111-bbbb-cccc-dddd-eeeeeeeeeeee": "Client id \"bad-client\" is not registered for session eeee1111-bbbb-cccc-dddd-ee qwen serve: failed to batch delete sessions: "disk on fire" qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) ✓ src/ui/hooks/useGeminiStream.test.tsx (141 tests) 3831ms qwen serve: /health deep probe failed: bridge wedged ✓ src/ui/components/SettingsDialog.test.tsx (53 tests) 10934ms ✓ SettingsDialog > Settings Navigation > should navigate down with arrow key 327ms ✓ SettingsDialog > Settings Toggling > should toggle setting with Enter key 347ms ✓ SettingsDialog > Settings Toggling > should sync compact mode with CompactModeContext when toggled 1549ms ✓ SettingsDialog > Complex State Management > should handle scrolling when there are many settings 551ms ✓ SettingsDialog > Output Language > treats empty output language as auto 381ms ✓ SettingsDialog > Keyboard Shortcuts Edge Cases > should properly handle Tab navigation between sections 333ms ✓ SettingsDialog > Complex User Interactions > should allow changing multiple settings without losing pending changes 351ms ✓ SettingsDialog > String Settings Editing > should allow editing and committing a string setting 1234ms qwen serve: --allow-origin: * (WARNING: `*` admits any cross-origin browser — bearer token gates API routes; /health and /demo remain pre-auth on loopback unless --require-auth is set) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log ✓ src/utils/nonInteractiveHelpers.test.ts (53 tests) 26ms ✓ src/nonInteractive/io/StreamJsonOutputAdapter.test.ts (50 tests) 48ms qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=60436 runQwenServeToListenMs=424 qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: /acp WebSocket transport enabled on /acp qwen serve listening on http://127.0.0.1:36545 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://127.0.0.1:39233 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=60493 runQwenServeToListenMs=2 qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: /acp WebSocket transport enabled on /acp 2026-07-03T12:22:05.783Z [INFO] [DAEMON] route=GET /capabilities durationMs=0 status=200 request completed qwen serve: /acp connection established ed52f15a (loopback=true, active=1) 2026-07-03T12:22:05.812Z [INFO] [DAEMON] route=POST /acp durationMs=6 status=200 request completed qwen serve listening on http://127.0.0.1:46389 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) 2026-07-03T12:22:05.845Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed qwen serve: /acp connection established e4fe7a60 (loopback=true, active=1) 2026-07-03T12:22:05.870Z [INFO] [DAEMON] route=POST /acp durationMs=2 status=200 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=60650 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: /acp WebSocket transport enabled on /acp qwen serve listening on http://127.0.0.1:44931 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) 2026-07-03T12:22:05.933Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://127.0.0.1:39719 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=60664 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: /acp WebSocket transport enabled on /acp 2026-07-03T12:22:05.947Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://127.0.0.1:36045 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=60677 runQwenServeToListenMs=2 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: /acp WebSocket transport enabled on /acp 2026-07-03T12:22:05.960Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=60691 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: /acp WebSocket transport enabled on /acp qwen serve listening on http://127.0.0.1:41397 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) 2026-07-03T12:22:05.980Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=60715 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=60721 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve listening on http://127.0.0.1:35285 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve listening on http://127.0.0.1:33875 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=60727 runQwenServeToListenMs=2 qwen serve: --require-auth enabled (bearer token mandatory on every route, including loopback /health). qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve listening on http://127.0.0.1:34129 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: Web Shell UI is served WITHOUT auth on a non-loopback bind (the static shell has no secrets; the API stays token-gated). Pass --no-web to disable the UI. qwen serve: without --allow-origin the Web Shell is read-only on a non-loopback bind — same-origin POSTs are blocked by CORS (403). Pass --allow-origin or front it with a same-origin proxy. qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=60738 runQwenServeToListenMs=1 qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://0.0.0.0:33869 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve listening on http://127.0.0.1:45963 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=60744 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=60754 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve listening on http://127.0.0.1:41479 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=60779 runQwenServeToListenMs=3 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve listening on http://127.0.0.1:34989 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=60818 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://127.0.0.1:41675 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://Localhost:35835 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=60836 runQwenServeToListenMs=7 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=60844 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve listening on http://[::1]:34291 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: Web Shell UI is served WITHOUT auth on a non-loopback bind (the static shell has no secrets; the API stays token-gated). Pass --no-web to disable the UI. qwen serve: without --allow-origin the Web Shell is read-only on a non-loopback bind — same-origin POSTs are blocked by CORS (403). Pass --allow-origin or front it with a same-origin proxy. qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=60871 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve listening on http://[::1]:43241 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: Web Shell UI is served WITHOUT auth on a non-loopback bind (the static shell has no secrets; the API stays token-gated). Pass --no-web to disable the UI. qwen serve: without --allow-origin the Web Shell is read-only on a non-loopback bind — same-origin POSTs are blocked by CORS (403). Pass --allow-origin or front it with a same-origin proxy. qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://127.0.0.1:40171 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=60889 runQwenServeToListenMs=7 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-03T12:22:06.173Z [INFO] [DAEMON] route=GET /capabilities durationMs=0 status=200 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://127.0.0.1:46519 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=60944 runQwenServeToListenMs=14 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-7b33433a.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://127.0.0.1:44357 (mode=http-bridge, workspace=/tmp/qwen-runqwen-fs-3M7ALM) qwen serve: bound to workspace "/tmp/qwen-runqwen-fs-3M7ALM" qwen serve: startup timing: processToListenMs=60952 runQwenServeToListenMs=5 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-03T12:22:06.248Z [INFO] [DAEMON] route=GET /file durationMs=11 status=200 request completed 2026-07-03T12:22:06.256Z [WARN] [DAEMON] route=GET /file durationMs=3 status=400 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://127.0.0.1:45995 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve listening on http://127.0.0.1:34441 (mode=http-bridge, workspace=/tmp/qwen-runqwen-trust-pZqJfr) qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=61000 runQwenServeToListenMs=13 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-03T12:22:06.278Z [WARN] [DAEMON] route=GET /file durationMs=1 status=400 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-521a34a5.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/tmp/qwen-runqwen-trust-pZqJfr" qwen serve: startup timing: processToListenMs=61009 runQwenServeToListenMs=4 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-03T12:22:06.290Z [INFO] [DAEMON] route=GET /file durationMs=1 status=200 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://127.0.0.1:42389 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=61033 runQwenServeToListenMs=11 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://127.0.0.1:46799 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=61040 runQwenServeToListenMs=6 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=61047 runQwenServeToListenMs=4 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://127.0.0.1:44149 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=61052 runQwenServeToListenMs=4 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-03T12:22:06.339Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-07-03T12:22:06.345Z [INFO] [DAEMON] sessionId=sess-A durationMs=6 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=61074 runQwenServeToListenMs=4 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-03T12:22:06.351Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-07-03T12:22:06.354Z [INFO] [DAEMON] sessionId=sess-A durationMs=3 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=61084 runQwenServeToListenMs=4 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-03T12:22:06.360Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-07-03T12:22:06.363Z [INFO] [DAEMON] sessionId=sess-A durationMs=3 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=61093 runQwenServeToListenMs=4 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-03T12:22:06.370Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-07-03T12:22:06.373Z [INFO] [DAEMON] sessionId=sess-A durationMs=3 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=61102 runQwenServeToListenMs=3 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-03T12:22:06.379Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened qwen serve listening on http://127.0.0.1:45837 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve listening on http://127.0.0.1:41183 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve listening on http://127.0.0.1:32907 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve listening on http://127.0.0.1:45555 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve listening on http://127.0.0.1:44387 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) 2026-07-03T12:22:06.383Z [INFO] [DAEMON] sessionId=sess-A durationMs=4 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=61113 runQwenServeToListenMs=4 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-03T12:22:06.390Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-07-03T12:22:06.392Z [INFO] [DAEMON] sessionId=sess-A durationMs=2 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=61121 runQwenServeToListenMs=4 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve listening on http://127.0.0.1:42601 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve listening on http://127.0.0.1:36049 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) 2026-07-03T12:22:06.398Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-07-03T12:22:06.408Z [INFO] [DAEMON] sessionId=sess-A durationMs=10 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://127.0.0.1:40135 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=61142 runQwenServeToListenMs=5 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: rejected ?maxQueued "" (not a decimal integer) 2026-07-03T12:22:06.419Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=0 status=400 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://127.0.0.1:33729 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=61158 runQwenServeToListenMs=7 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: rejected ?maxQueued "abc" (not a decimal integer) 2026-07-03T12:22:06.435Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=0 status=400 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://127.0.0.1:35793 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=61170 runQwenServeToListenMs=4 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: rejected ?maxQueued "0" (outside [16, 2048]) 2026-07-03T12:22:06.448Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=1 status=400 request completed qwen serve: rejected ?maxQueued "15" (outside [16, 2048]) 2026-07-03T12:22:06.450Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=1 status=400 request completed qwen serve: rejected ?maxQueued "2049" (outside [16, 2048]) 2026-07-03T12:22:06.456Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=1 status=400 request completed ✓ src/serve/acp-http/transport.test.ts (140 tests) 10059ms ✓ ACP Streamable HTTP transport (over the wire) > initialize → 200 + Acp-Connection-Id; unknown conn → 404 772ms qwen serve: rejected ?maxQueued "9999" (outside [16, 2048]) 2026-07-03T12:22:06.459Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=1 status=400 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=61191 runQwenServeToListenMs=4 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-03T12:22:06.468Z [WARN] [DAEMON] route=GET /session/missing/events sessionId=missing durationMs=0 status=404 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=61200 runQwenServeToListenMs=4 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-03T12:22:06.485Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened qwen serve listening on http://127.0.0.1:39657 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve listening on http://127.0.0.1:35543 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) 2026-07-03T12:22:06.488Z [INFO] [DAEMON] sessionId=sess-A durationMs=3 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://127.0.0.1:46323 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=61324 runQwenServeToListenMs=4 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-03T12:22:06.601Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened qwen serve: bridge iterator error (session sess-A): agent died 2026-07-03T12:22:06.601Z [INFO] [DAEMON] sessionId=sess-A durationMs=0 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://127.0.0.1:42891 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=61333 runQwenServeToListenMs=3 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-03T12:22:06.610Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened qwen serve: bridge iterator error (session sess-A): AcpSessionBridge initialize timed out after 5000ms [init_timeout] 2026-07-03T12:22:06.611Z [INFO] [DAEMON] sessionId=sess-A durationMs=1 SSE stream closed qwen serve listening on http://127.0.0.1:43243 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) 2026-07-03T12:22:06.621Z [INFO] [DAEMON] sessionId=sess-A durationMs=2 SSE stream closed qwen serve listening on http://127.0.0.1:36711 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) 2026-07-03T12:22:06.656Z [INFO] [DAEMON] sessionId=sess-A durationMs=11 SSE stream closed qwen serve listening on http://127.0.0.1:39297 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve listening on http://127.0.0.1:41613 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://127.0.0.1:42299 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=61457 runQwenServeToListenMs=4 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-03T12:22:06.737Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-07-03T12:22:06.738Z [INFO] [DAEMON] sessionId=sess-A durationMs=1 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=61500 runQwenServeToListenMs=4 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: rejected Last-Event-ID "abc" (not a decimal integer) 2026-07-03T12:22:06.781Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-07-03T12:22:06.782Z [INFO] [DAEMON] sessionId=sess-A durationMs=1 SSE stream closed qwen serve: rejected Last-Event-ID "-1" (not a decimal integer) 2026-07-03T12:22:06.785Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-07-03T12:22:06.785Z [INFO] [DAEMON] sessionId=sess-A durationMs=0 SSE stream closed qwen serve listening on http://127.0.0.1:33429 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: rejected Last-Event-ID "1.5e10z" (not a decimal integer) 2026-07-03T12:22:06.792Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-07-03T12:22:06.792Z [INFO] [DAEMON] sessionId=sess-A durationMs=0 SSE stream closed qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: fs audit emit is the default no-op — 1 event(s) dropped so far. Latest type=fs.access (intent=list pathHash=a4a43e0c6981c058). Inject deps.fsFactory in createServeApp to wire audit into the EventBus. qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: fs audit emit is the default no-op — 1 event(s) dropped so far. Latest type=fs.denied (errorKind=untrusted_workspace intent=write pathHash=116e45f02c9787cb). Inject deps.fsFactory in createServeApp to wire audit into the EventBus. [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=828d3bed... clientId=- status=started expiresInMs=600000 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=5e827c7d... clientId=- status=started expiresInMs=600000 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=7a4e60c6... clientId=sdk-A status=started expiresInMs=600000 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=7a4e60c6... clientId=sdk-B status=started hint="take-over (per-provider singleton; original initiator=sdk-A)" [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=32ea4b48... clientId=- status=started expiresInMs=599999 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=945730f3... clientId=- status=started expiresInMs=600000 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=fb113bff... clientId=- status=started expiresInMs=600000 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=fb113bff... clientId=- status=cancelled [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=c0614c03... clientId=- status=started expiresInMs=600000 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=6e6b6113... clientId=sdk-A status=started expiresInMs=600000 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=4fcc9c6f... clientId=- status=started expiresInMs=600000 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=7e263bf6... clientId=- status=started expiresInMs=600000 qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://127.0.0.1:45603 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=62137 runQwenServeToListenMs=8 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-03T12:22:07.430Z [INFO] [DAEMON] sessionId=sess-A promptId=c2d03e2f-3499-4255-87d5-123a9dedb7ab prompt enqueued 2026-07-03T12:22:07.431Z [INFO] [DAEMON] route=POST /session/sess-A/prompt sessionId=sess-A durationMs=2 status=202 request completed 2026-07-03T12:22:07.481Z [INFO] [DAEMON] sessionId=sess-A promptId=c2d03e2f-3499-4255-87d5-123a9dedb7ab prompt turn completed ]0;Qwen - cli ]2;Qwen - cli ]0;Qwen - cli ]2;Qwen - cli ]0;Qwen - root ]2;Qwen - root ]0;Qwen - root ]2;Qwen - root ]0;Qwen - root ]2;Qwen - root  ✓ src/gemini.test.tsx (26 tests) 6422ms ✓ gemini.tsx main function > verifies that we dont load the config before relaunchAppInChildProcess 884ms ✓ gemini.tsx main function > should skip full settings discovery in bare mode 561ms ✓ gemini.tsx main function > passes the outer session ID into the sandbox child process 504ms ✓ gemini.tsx main function > does not pass an empty session ID into the sandbox child process 502ms ✓ gemini.tsx main function > does not inject sandbox session ID when argv contains --continue 503ms ✓ gemini.tsx main function > does not inject sandbox session ID when argv contains -c 505ms ✓ gemini.tsx main function > does not inject sandbox session ID when argv contains --resume 505ms ✓ gemini.tsx main function > does not inject sandbox session ID when argv contains -r 507ms ✓ gemini.tsx main function > does not inject sandbox session ID when argv contains --session-id 503ms ✓ gemini.tsx main function > inserts the sandbox session ID before the argument separator 503ms ✓ gemini.tsx main function > invokes runNonInteractiveStreamJson and performs cleanup in stream-json mode 761ms qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=63443 runQwenServeToListenMs=4 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-03T12:22:08.720Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened qwen serve listening on http://127.0.0.1:41677 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: evicting SSE client (session sess-A) — writer idle for 253ms > 200ms timeout 2026-07-03T12:22:08.975Z [INFO] [DAEMON] sessionId=sess-A durationMs=255 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://127.0.0.1:41307 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=63706 runQwenServeToListenMs=4 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-03T12:22:08.983Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://127.0.0.1:41341 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=64343 runQwenServeToListenMs=11 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-03T12:22:09.620Z [INFO] [DAEMON] sessionId=sess-A durationMs=637 SSE stream closed 2026-07-03T12:22:09.650Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened ✓ src/ui/hooks/useSlashCompletion.test.ts (30 tests) 904ms ✓ src/config/settingsWatcher.test.ts (44 tests) 110ms qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3231-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=65097 runQwenServeToListenMs=4 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve listening on http://127.0.0.1:33449 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) 2026-07-03T12:22:10.379Z [INFO] [DAEMON] sessionId=sess-A durationMs=729 SSE stream closed 2026-07-03T12:22:10.380Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-07-03T12:22:10.753Z [INFO] [DAEMON] sessionId=sess-A durationMs=373 SSE stream closed qwen serve: bridge error (POST /session): Error: legacy-stderr-test-boom at spawnImpl (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:12755:15) at Object.spawnOrAttach (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:1079:28) at /startdir/src/qwen-code/packages/cli/src/serve/server.ts:3011:36 at Layer.handleRequest (/startdir/src/qwen-code/node_modules/router/lib/layer.js:152:17) at next (/startdir/src/qwen-code/node_modules/router/lib/route.js:157:13) at passthrough (/startdir/src/qwen-code/packages/cli/src/serve/auth.ts:401:8) at Layer.handleRequest (/startdir/src/qwen-code/node_modules/router/lib/layer.js:152:17) at next (/startdir/src/qwen-code/node_modules/router/lib/route.js:157:13) at Route.dispatch (/startdir/src/qwen-code/node_modules/router/lib/route.js:117:3) at handle (/startdir/src/qwen-code/node_modules/router/index.js:435:11) ✓ src/ui/hooks/useSelectionList.test.ts (50 tests) 269ms ✓ src/serve/server.test.ts (518 tests) 14508ms ✓ createServeApp > read-only status routes > evicts the oldest terminal extension operations 1914ms ✓ createServeApp > GET /daemon/status > returns full diagnostics with independent workspace section degradation 415ms ✓ runQwenServe > starts with --allow-origin '*' when a token is configured 479ms ✓ T2.9 SSE writer idle timeout (issue #4514) > does not evict when the writer idle timeout is unset (legacy contract) 628ms ✓ T2.9 SSE writer idle timeout (issue #4514) > does NOT evict when active writes keep refreshing lastWriteAt (#4514 T2.9 wenshao review) 763ms ✓ T2.9 SSE writer idle timeout (issue #4514) > does NOT evict when a back-pressured write drains within the idle budget 385ms ✓ src/ui/commands/languageCommand.test.ts (49 tests) 224ms ✓ src/nonInteractive/session.test.ts (27 tests) 507ms ✓ src/ui/components/messages/ToolMessage.test.tsx (42 tests) 2870ms ✓ src/ui/commands/copyCommand.test.ts (37 tests) 241ms ✓ src/acp-integration/session/SubAgentTracker.test.ts (28 tests) 523ms ✓ src/nonInteractive/control/ControlDispatcher.test.ts (35 tests) 119ms ✓ src/ui/components/MainContent.test.tsx (14 tests) 2778ms ✓ > progressively replays Static items when history exceeds the threshold (issue #3899) 406ms ✓ > synchronously resets to the first chunk on historyRemountKey change after a full catch-up (Ctrl+O regression, issue #3899) 319ms ✓ > does NOT reset progressive replay when only currentModel changes (PR #4119 regression guard) 682ms ✓ src/ui/hooks/use-voice-input.test.ts (23 tests) 419ms ✓ src/ui/components/messages/ToolGroupMessage.test.tsx (30 tests) 2407ms ✓ src/ui/utils/commandUtils.test.ts (55 tests) 245ms ✓ src/utils/errors.test.ts (42 tests) 242ms ✓ src/config/config.test.ts (231 tests) 14828ms ✓ parseArguments > should map any @command to prompt (one-shot) 355ms ✓ src/ui/hooks/useHistoryManager.test.ts (22 tests) 270ms (node:5019) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 resize listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (Use `node --trace-warnings ...` to show where the warning was created) ✓ src/acp-integration/session/emitters/ToolCallEmitter.test.ts (47 tests) 221ms ✓ src/ui/components/background-view/BackgroundTasksDialog.test.tsx (36 tests) 9325ms ✓ BackgroundTasksDialog > lets ask-user-question approvals own all keyboard input in detail mode 377ms ✓ BackgroundTasksDialog > Esc backs out of an armed foreground cancel without closing the dialog 416ms ✓ BackgroundTasksDialog > clamps selectedIndex when entries shrink 368ms ✓ BackgroundTasksDialog > MonitorDetailBody render branches > renders pid when defined, omits when undefined 441ms ✓ BackgroundTasksDialog > MonitorDetailBody render branches > uses singular "1 event" / plural "N events" 578ms ✓ BackgroundTasksDialog > MonitorDetailBody render branches > renders droppedLines only when > 0 514ms ✓ BackgroundTasksDialog > MonitorDetailBody render branches > renders "Stopped because" block for completed with auto-stop reason 538ms ✓ BackgroundTasksDialog > dream entries > renders the Error block on failed status with a "+ Stopped because" verb 319ms ✓ BackgroundTasksDialog > dream entries > caps visible topics at 8 and renders a "+N more" tail for overflow 338ms ✓ src/utils/memoryDiagnostics.test.ts (23 tests) 147ms ✓ src/acp-integration/session/Session.test.ts (169 tests) 26925ms ✓ Session > prompt > auto-compress > latches mid-turn drain off after repeated timeouts when the client never responds 6068ms ✓ Session > prompt > auto-compress > resets the timeout strike count when a drain succeeds 8166ms ✓ Session > prompt > auto-compress > recovers a drain that timed out and injects it on the next batch 2116ms ✓ Session > runToolCalls > skips later tools when cancellation confirmation cleanup fails 313ms ✓ src/nonInteractiveCliCommands.test.ts (29 tests) 97ms ✓ src/ui/components/ModelDialog.test.tsx (19 tests) 388ms ]0;Qwen - workspace ]2;Qwen - workspace  ✓ src/ui/hooks/useToolScheduler.test.ts (19 tests) 206ms ✓ src/services/prompt-processors/shellProcessor.test.ts (34 tests) 97ms ✓ src/ui/components/extensions/ExtensionsManagerDialog.test.tsx (23 tests) 6658ms ✓ ExtensionsManagerDialog (tabbed) > caps its width on a wide terminal so the status column is not clipped 305ms ✓ ExtensionsManagerDialog (tabbed) > opens a CC-style plugin detail with an inline scope selector on Enter 441ms ✓ ExtensionsManagerDialog (tabbed) > filters the Discover list as you type 358ms ✓ ExtensionsManagerDialog (tabbed) > groups installed plugins by scope on the Installed tab 333ms ✓ ExtensionsManagerDialog (tabbed) > toggles favorite when pressing f on the Installed tab 380ms ✓ ExtensionsManagerDialog (tabbed) > shows a CC-style marketplace detail with installed plugins and actions 344ms ✓ ExtensionsManagerDialog (tabbed) > collapses a long installed-plugins list in the marketplace detail 383ms ✓ ExtensionsManagerDialog (tabbed) > retries a failed marketplace load when R is pressed 474ms ✓ ExtensionsManagerDialog (tabbed) > Browse plugins jumps to Discover filtered by the marketplace 472ms ✓ ExtensionsManagerDialog (tabbed) > does not close on Escape while a tab sub-view is open 470ms ✓ src/ui/utils/osc8.test.ts (81 tests) 38ms (node:5587) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 resize listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (Use `node --trace-warnings ...` to show where the warning was created) ✓ src/ui/daemon/daemon-tui-adapter.test.ts (14 tests) 159ms ✓ src/ui/components/StandaloneSessionPicker.test.tsx (19 tests) 1026ms ✓ src/ui/components/shared/text-buffer-external-editor.test.ts (36 tests) 135ms ✓ src/acp-integration/session/HistoryReplayer.test.ts (26 tests) 110ms ]0;Qwen - workspace ]2;Qwen - workspace  ✓ src/ui/utils/mergeCompactToolGroups.test.ts (32 tests) 42ms ✓ src/ui/voice/voice-transcriber.test.ts (29 tests) 202ms ✓ src/ui/utils/mermaidImageRenderer.test.ts (25 tests) 2945ms ✓ mermaid image renderer > rejects oversized Mermaid PNG output before reading it 337ms ✓ mermaid image renderer > evicts Mermaid image caches by retained byte size 1046ms ✓ src/ui/hooks/shellCommandProcessor.test.ts (22 tests) 601ms ✓ src/ui/components/background-view/LiveAgentPanel.test.tsx (26 tests) 3135ms ✓ src/utils/installationInfo.test.ts (27 tests) 40ms ✓ src/ui/utils/TableRenderer.test.tsx (60 tests) 6713ms ✓ > stays stable across multiple content widths 696ms ✓ src/nonInteractive/io/JsonOutputAdapter.test.ts (35 tests) 137ms ✓ src/ui/hooks/useCommandCompletion.test.ts (26 tests) 411ms ✓ src/utils/languageUtils.test.ts (52 tests) 38ms ✓ src/ui/utils/MarkdownDisplay.test.tsx (101 tests) 9382ms ✓ > with 'Windows' line endings > renders a fenced code block without a language 306ms qwen serve: GET /workspace/permissions error: load failed qwen serve: POST /workspace/permissions load error: load failed qwen serve: POST /workspace/permissions broadcast error (key=permissions.allow, scope=workspace): broadcast failed qwen serve: POST /workspace/permissions response error: settings unreadable qwen serve: POST /workspace/permissions response error: settings unreadable qwen serve: POST /workspace/permissions broadcast error (key=permissions.deny, scope=workspace): broadcast failed qwen serve: POST /workspace/permissions ACP error (key=permissions.allow, scope=workspace, workspace=/tmp/qwen-permission-routes-0fc0540b-vkQKBZ/workspace): unexpected ACP failure qwen serve: POST /workspace/permissions persist error (key=permissions.allow, scope=workspace, workspace=/tmp/qwen-permission-routes-75310554-w5VHh8/workspace): disk full ✓ src/serve/routes/workspace-permissions.test.ts (18 tests) 259ms ✓ src/config/trustedFolders.test.ts (32 tests) 212ms ✓ src/ui/hooks/useBackgroundTaskView.test.ts (16 tests) 74ms ✓ src/ui/commands/clearCommand.test.ts (15 tests) 290ms ✓ src/ui/hooks/useResumeCommand.test.ts (11 tests) 127ms ✓ src/ui/keyMatchers.test.ts (46 tests) 16ms ✓ src/ui/commands/diffCommand.test.ts (25 tests) 35ms ✓ src/serve/bridge-file-system-adapter.test.ts (18 tests) 124ms ✓ src/validateNonInterActiveAuth.test.ts (13 tests) 88ms ✓ src/serve/auth/qwen-device-flow-provider.test.ts (12 tests) 13ms ✓ src/ui/hooks/useBranchCommand.test.ts (17 tests) 114ms ✓ src/ui/components/agent-view/agentHistoryAdapter.test.ts (35 tests) 32ms ✓ src/ui/commands/directoryCommand.test.tsx (25 tests) 36ms ✓ src/ui/utils/customBanner.test.ts (40 tests) 70ms ✓ src/ui/hooks/useSessionSearchInput.test.ts (36 tests) 83ms ✓ src/utils/handleAutoUpdate.test.ts (24 tests) 279ms qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) (node:6884) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 exit listeners added to [process]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (Use `node --trace-warnings ...` to show where the warning was created) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) ✓ src/ui/AppContainer.test.tsx (94 tests) 27825ms ✓ AppContainer State Management > Basic Rendering > renders without crashing with minimal props 677ms ✓ AppContainer State Management > State Initialization > handles debug mode state 320ms ✓ AppContainer State Management > Context Providers > provides UIStateContext with state management 324ms ✓ AppContainer State Management > Context Providers > provides UIActionsContext with action handlers 408ms ✓ AppContainer State Management > Context Providers > refreshStatic clears the terminal before remounting history 308ms ✓ AppContainer State Management > Context Providers > does not clear the terminal synchronously on width change 514ms ✓ AppContainer State Management > Context Providers > submits /btw immediately instead of queueing while responding 544ms ✓ AppContainer State Management > Context Providers > submits slash commands immediately instead of queueing while idle 310ms ✓ AppContainer State Management > Context Providers > routes bare "exit" to /quit instead of sending as a message 305ms ✓ AppContainer State Management > Context Providers > routes bare "quit" to /quit instead of sending as a message 370ms ✓ AppContainer State Management > Context Providers > routes bare ":q" to /quit instead of sending as a message 313ms ✓ AppContainer State Management > Cancel Handler (issue #3204) > does not repopulate the buffer with the previous prompt on ESC cancel 332ms ✓ AppContainer State Management > Cancel Handler (issue #3204) > does not auto-restore when the lastTurnUserItem text does not match the candidate user item (sanity) 333ms ✓ AppContainer State Management > Cancel Handler (issue #3204) > does not auto-restore when the user queued a follow-up (drains queue but keeps prompt) 348ms ✓ AppContainer State Management > Settings Integration > falls back to rendered Markdown mode for missing or invalid ui.renderMode 440ms ✓ AppContainer State Management > Settings Integration > handles global render mode shortcut through the captured keypress handler 401ms ✓ AppContainer State Management > Version Handling > handles version format: 2.1.3-beta 405ms ✓ AppContainer State Management > Error Handling > handles config methods that might throw 408ms ✓ AppContainer State Management > Error Handling > handles undefined settings gracefully 571ms ✓ AppContainer State Management > Provider Hierarchy > establishes correct provider nesting order 324ms ✓ AppContainer State Management > Terminal Title Update Feature > should not update terminal title when showStatusInTitle is false 359ms ✓ AppContainer State Management > Terminal Title Update Feature > should not update terminal title when hideWindowTitle is true 417ms ✓ AppContainer State Management > Terminal Title Update Feature > should keep default terminal title when active without a session name 472ms ✓ AppContainer State Management > Terminal Title Update Feature > should update terminal title with default text when in Idle state and no thought subject 388ms ✓ AppContainer State Management > Terminal Title Update Feature > should keep default terminal title when waiting for confirmation without a session name 392ms ✓ AppContainer State Management > Terminal Title Update Feature > should use correct ANSI escape code format with padding 351ms ✓ AppContainer State Management > Terminal Title Update Feature > should register for recorded session titles and format them in the terminal title 333ms ✓ AppContainer State Management > Terminal Title Update Feature > should chain with existing titleRecordedCallback from Session (ACP notifications) 364ms ✓ AppContainer State Management > Terminal Height Calculation > loads a collapsed summary into history on cold-boot resume when collapseOnResume is enabled 406ms ✓ AppContainer State Management > Terminal Height Calculation > does not remeasure footer height for sticky todo status-only updates 717ms ✓ AppContainer State Management > Keyboard Input Handling > Ctrl+B does NOT promote when only a non-shell tool is executing (defense-in-depth) 330ms ✓ AppContainer State Management > Keyboard Input Handling > Ctrl+O compact mode toggle (issue #3899) > calls refreshStatic on Ctrl+O when history contains a tool_group 343ms ✓ AppContainer State Management > handleRewindConfirm > skips conversation truncation when both-mode file restore fails 501ms ✓ AppContainer State Management > handleRewindConfirm > skips conversation truncation when both-mode file restore throws 388ms ✓ AppContainer State Management > handleRewindConfirm > truncates conversation when both-mode file restore succeeds 337ms ✓ AppContainer State Management > handleRewindConfirm > falls back to code restore for both-mode rewind with no client 363ms ✓ AppContainer State Management > handleRewindConfirm > surfaces unexpected outer errors through history 309ms ✓ AppContainer State Management > handleRewindConfirm > bails before file restore when the target turn is compressed 1541ms qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: GET /file rejected request missing required ?path qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: GET /stat unexpected error: bound workspace is not configured qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) ✓ src/ui/hooks/useAutoAcceptIndicator.test.ts (15 tests) 163ms qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) ✓ src/serve/routes/workspace-file-read.test.ts (31 tests) 545ms ✓ src/acp-integration/acpAgent.worktree.test.ts (3 tests) 189ms ✓ src/config/migration/versions/v2-to-v3.test.ts (31 tests) 60ms ✓ src/ui/components/shared/VirtualizedList.test.tsx (20 tests) 6368ms ✓ > scrollToIndex moves scroll anchor to the requested index 390ms ✓ > handles initialScrollIndex pointing past the end gracefully 342ms ✓ > scrollBy > scrollBy positive moves the viewport down 512ms ✓ > scrollBy > scrollBy past bottom re-engages sticking-to-bottom with live end anchor 303ms ✓ > scrollBy > scrollBy clamps to 0 when scrolling past the top 437ms ✓ > scrollTo > scrollTo middle offset positions correctly 323ms ✓ > scrollTo > scrollTo 0 moves to the beginning 336ms ✓ > scrollTo > scrollTo past maxScroll re-engages sticking-to-bottom 370ms ✓ > scrollTo > scrollTo negative is clamped to 0 376ms ✓ > auto-scroll during streaming > auto-scrolls when at bottom and data grows 390ms ✓ > auto-scroll during streaming > does NOT auto-scroll when user has scrolled away from bottom 357ms ✓ > auto-scroll during streaming > re-engages auto-scroll when user scrolls back to bottom 594ms qwen serve: POST /workspace/memory refused — existing file /tmp/qwen-serve-memory-BbsPR9/workspace/QWEN.md is 17825792 bytes (cap 16777216) qwen serve: POST /workspace/memory failed (scope=workspace mode=append): Error: EACCES: permission denied, open '/tmp/qwen-serve-memory-YQBpdy/workspace/QWEN.md' at open (node:internal/fs/promises:1360:25) at Object.writeFile (node:internal/fs/promises:2104:14) at runWrite (/startdir/src/qwen-code/packages/core/src/memory/writeContextFile.ts:215:3) at /startdir/src/qwen-code/packages/core/src/memory/writeContextFile.ts:161:19 qwen serve: POST /workspace/memory failed (scope=workspace mode=append): Error: EACCES: permission denied, open '/tmp/qwen-serve-memory-YQBpdy/workspace/QWEN.md' at open (node:internal/fs/promises:1360:25) at Object.writeFile (node:internal/fs/promises:2104:14) at runWrite (/startdir/src/qwen-code/packages/core/src/memory/writeContextFile.ts:215:3) at /startdir/src/qwen-code/packages/core/src/memory/writeContextFile.ts:161:19 qwen serve: GET /workspace/memory failed: Error: boom at Storage. (/startdir/src/qwen-code/packages/cli/src/serve/workspace-memory.test.ts:452:17) at Storage.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at Storage.getGlobalQwenDir (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at collectWorkspaceMemoryStatus (/startdir/src/qwen-code/packages/cli/src/serve/workspace-memory.ts:340:29) at /startdir/src/qwen-code/packages/cli/src/serve/workspace-memory.ts:88:22 ✓ src/config/jsonSchemaArg.test.ts (40 tests) 492ms ✓ src/serve/workspace-memory.test.ts (17 tests) 281ms ✓ src/ui/commands/renameCommand.test.ts (22 tests) 78ms ✓ src/startup/worktreeStartup.test.ts (18 tests) 5602ms ✓ setupStartupWorktree > creates a worktree with an auto-generated slug for bare --worktree 523ms ✓ setupStartupWorktree > creates a worktree with an explicit slug 454ms ✓ setupStartupWorktree > rejects full GitHub PR URLs when origin remote is missing 374ms ✓ setupStartupWorktree > creates a pr- worktree from FETCH_HEAD when fetch succeeds (local fake remote) 863ms ✓ setupStartupWorktree > re-attaches to an existing worktree instead of erroring (Phase 6 G1 fix) 511ms ✓ setupStartupWorktree > refuses to re-attach when an existing dir occupies the slot on a different branch 446ms ✓ persistStartupWorktreeSidecar > adopts a stale marker when re-attaching to an inactive owner 486ms ✓ persistStartupWorktreeSidecar > keeps the marker when the owner runtime is still active 691ms ✓ persistStartupWorktreeSidecar > finds an active owner under a repo-subdir relative runtime dir 611ms ✓ src/serve/auth.test.ts (27 tests) 13ms ✓ src/ui/components/StatsDisplay.test.tsx (17 tests) 1672ms ✓ src/ui/hooks/useExtensionUpdates.test.ts (15 tests) 463ms ✓ src/ui/commands/btwCommand.test.ts (23 tests) 113ms ✓ src/serve/routes/a2ui-action.test.ts (19 tests) 192ms ✓ src/ui/components/shared/BaseSelectionList.test.tsx (26 tests) 2428ms ✓ BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should handle dynamic scrolling through multiple activeIndex changes 310ms ✓ src/ui/hooks/useDeleteCommand.test.ts (14 tests) 102ms ✓ src/commands/sessions/list.test.ts (25 tests) 47ms ✓ src/ui/hooks/useProviderUpdates.test.ts (15 tests) 417ms ✓ src/config/settingsSchema.test.ts (27 tests) 27ms ✓ src/serve/fs/paths.test.ts (29 tests) 38ms ✓ src/ui/components/messages/ToolConfirmationMessage.test.tsx (21 tests) 1516ms ✓ src/services/SkillCommandLoader.test.ts (24 tests) 66ms ✓ src/serve/rate-limit.test.ts (25 tests) 2640ms ✓ rateLimit > fail-open > passes through when bucket map is at capacity 2561ms ✓ src/utils/startupProfiler.test.ts (21 tests) 146ms ✓ src/ui/components/ModelStatsDisplay.test.tsx (16 tests) 1213ms ✓ src/services/McpPromptLoader.test.ts (27 tests) 27ms ✓ src/ui/components/hooks/constants.test.ts (47 tests) 25ms ✓ src/commands/mcp/add.test.ts (27 tests) 1917ms ✓ mcp add command > should auto-detect http transport when commandOrUrl uses an uppercase URL scheme 311ms ✓ src/services/CommandService.test.ts (17 tests) 47ms ✓ src/commands/extensions/install.test.ts (16 tests) 122ms ✓ src/ui/utils/resumeHistoryUtils.test.ts (18 tests) 51ms ✓ src/ui/utils/InlineMarkdownRenderer.test.tsx (23 tests) 1872ms ✓ src/ui/commands/tasksCommand.test.ts (10 tests) 24ms ✓ src/utils/standalone-update.test.ts (20 tests) 16ms ✓ src/serve/workspace-service/__tests__/integration.test.ts (13 tests) 246ms ✓ src/utils/systemInfo.test.ts (22 tests) 61ms ✓ src/config/migration/index.test.ts (30 tests) 15ms Error parsing settings file. Settings file may be corrupted: Unexpected end of JSON input ✓ src/utils/commentJson.test.ts (18 tests) 64ms ✓ src/services/BundledSkillLoader.test.ts (23 tests) 42ms ✓ src/ui/commands/workflowsCommand.test.ts (15 tests) 107ms ✓ src/config/auth.test.ts (20 tests) 40ms ✓ src/ui/commands/cdCommand.test.ts (18 tests) 172ms ✓ src/ui/utils/textUtils.test.ts (29 tests) 21ms ✓ src/ui/components/Composer.test.tsx (20 tests) 1636ms ✓ src/ui/components/HistoryItemDisplay.test.tsx (25 tests) 2545ms Invalid values: Argument: approval-mode, Given: "invalid_mode", Choices: "plan", "default", "auto-edit", "auto", "yolo" Cannot use both --yolo (-y) and --approval-mode together. Use --approval-mode=yolo instead. process.exit unexpectedly called with "1" ✓ src/ui/utils/historyMapping.test.ts (23 tests) 28ms ✓ src/config/config.integration.test.ts (25 tests) 425ms ✓ src/config/claudeMcpImport.test.ts (14 tests) 35ms ❯ src/ui/auth/AuthDialog.test.tsx (25 tests | 12 failed) 64925ms ✓ AuthDialog > should show an error if the initial auth type is invalid 141ms ✓ AuthDialog > GEMINI_API_KEY environment variable > should detect GEMINI_API_KEY environment variable 46ms ✓ AuthDialog > GEMINI_API_KEY environment variable > should not show the GEMINI_API_KEY message if QWEN_DEFAULT_AUTH_TYPE is set to something else 68ms ✓ AuthDialog > GEMINI_API_KEY environment variable > should show the GEMINI_API_KEY message if QWEN_DEFAULT_AUTH_TYPE is set to use api key 74ms ✓ AuthDialog > QWEN_DEFAULT_AUTH_TYPE environment variable > should select the auth type specified by QWEN_DEFAULT_AUTH_TYPE 102ms ✓ AuthDialog > QWEN_DEFAULT_AUTH_TYPE environment variable > should fall back to default if QWEN_DEFAULT_AUTH_TYPE is not set 70ms ✓ AuthDialog > QWEN_DEFAULT_AUTH_TYPE environment variable > should show an error and fall back to default if QWEN_DEFAULT_AUTH_TYPE is invalid 63ms ✓ AuthDialog > should prevent exiting when no auth method is selected and show error message 261ms ✓ AuthDialog > should not exit if there is already an error message 160ms ✓ AuthDialog > should allow exiting when auth method is already selected 199ms ✓ AuthDialog > should preserve the selected main entry when returning from each top-level flow 984ms × AuthDialog > should go back from Coding Plan region selection to Alibaba ModelStudio 5167ms → expected '┌────────────────────────────────────…' to contain 'Alibaba ModelStudio · Step 1/3 · Regi…' × AuthDialog > should go back from third-party provider API key input to provider list 5137ms → expected '┌────────────────────────────────────…' to contain 'Third-party Providers · Provider' ✓ AuthDialog > should show preset providers in third-party provider options 276ms × AuthDialog > drives API key provider steps from endpoint options metadata 5258ms → expected '┌────────────────────────────────────…' to contain 'DeepSeek API Key · Step 1/2 · API Key' ✓ AuthDialog > should show Alibaba ModelStudio access methods after selecting Alibaba ModelStudio 165ms × AuthDialog > should submit Token Plan through the shared subscription handler 5307ms → expected '┌────────────────────────────────────…' to contain 'Alibaba ModelStudio · Step 1/2 · API …' × AuthDialog > should pre-fill the Model IDs step with previously saved custom model IDs 5348ms → expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Token Plan/ × AuthDialog > should return from Token Plan API key input to Token Plan selection 5192ms → expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Token Plan/ × AuthDialog Custom API Key Wizard > navigates to protocol selection when Custom API Key is selected 5137ms → expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Custom Provider/ × AuthDialog Custom API Key Wizard > navigates to base URL input after selecting a protocol 5217ms → expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Custom Provider/ × AuthDialog Custom API Key Wizard > shows review screen with JSON after entering model IDs 5135ms → expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Custom Provider/ × AuthDialog Custom API Key Wizard > calls handleProviderSubmit on Enter in review view 5144ms → expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Custom Provider/ × AuthDialog Custom API Key Wizard > shows advanced config screen after entering model IDs 5116ms → expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Custom Provider/ × AuthDialog Custom API Key Wizard > passes generationConfig when advanced options are toggled 5155ms → expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Custom Provider/ ✓ src/ui/utils/statsDataService.test.ts (17 tests) 46ms ✓ src/acp-integration/session/rewrite/MessageRewriteMiddleware.test.ts (12 tests) 24ms ✓ src/ui/components/messages/AskUserQuestionDialog.test.tsx (18 tests | 1 skipped) 4611ms ✓ > single-select interaction > selects an option with Enter and submits immediately for single question 423ms ✓ > single-select interaction > navigates with selection shortcuts when custom input is not focused 302ms ✓ > single-select interaction > keeps bare k/j in custom input while Ctrl+P/N still navigates options 703ms ✓ > multi-select interaction > does not auto-submit when pressing number key in multi-select mode 403ms ✓ > multiple questions > does not auto-submit when pressing number key on Submit tab 373ms ✓ > focus behavior > does not respond to keys when isFocused is false 387ms ✓ src/ui/commands/arenaCommand.test.ts (15 tests) 106ms ✓ src/ui/commands/aboutCommand.test.ts (12 tests) 56ms ✓ src/ui/hooks/useQwenAuth.test.ts (17 tests) 148ms ✓ src/ui/commands/goalCommand.test.ts (18 tests) 53ms ✓ src/ui/components/QwenOAuthProgress.test.tsx (18 tests) 1783ms ✓ src/ui/components/LoadingIndicator.test.tsx (26 tests) 2224ms ✓ src/utils/doctorChecks.test.ts (18 tests) 79ms qwen serve: --rate-limit-prompt must be a positive integer. qwen serve: --rate-limit-mutation must be a positive integer. Fatal error: Failed to relaunch the CLI process. PROCESS_EXIT_CALLED Fatal error: Failed to relaunch the CLI process. PROCESS_EXIT_CALLED Fatal error: Failed to relaunch the CLI process. Runner failed Fatal error: Failed to relaunch the CLI process. PROCESS_EXIT_CALLED Fatal error: Failed to relaunch the CLI process. PROCESS_EXIT_CALLED qwen serve: --rate-limit-read must be a positive integer. ✓ src/utils/relaunch.test.ts (9 tests) 50ms qwen serve: --rate-limit-window-ms must be an integer >= 1000. ✓ src/commands/extensions/settings.test.ts (20 tests) 1215ms ✓ extensions settings command > should fail if no subcommand is provided 306ms qwen serve: --open passes the token in the browser launch command (visible via `ps` / /proc); on a multi-user host open the URL manually instead. qwen serve: failed to open browser: boom ✓ src/ui/voice/qwen-asr-realtime-session.test.ts (12 tests) 82ms ✓ src/utils/apiPreconnect.test.ts (26 tests) 19ms ✓ src/ui/components/messages/DiffRenderer.test.tsx (16 tests) 2046ms ✓ > should call colorizeCode with null language for new file with unknown extension 322ms ✓ src/ui/auth/useAuth.test.ts (23 tests) 143ms ✓ src/ui/components/shared/ScrollableList.test.tsx (13 tests) 4423ms ✓ mouse scrolling > routes wheel SGR events to viewport scroll (window shifts) 535ms ✓ mouse scrolling > drags the scrollbar to scroll the viewport 329ms ✓ mouse scrolling > keeps dragging after the pointer leaves the scrollbar column 310ms ✓ keyboard scroll > Shift+Up scrolls up by 1 line 466ms ✓ keyboard scroll > Shift+Down scrolls down by 1 line 360ms ✓ keyboard scroll > PageUp scrolls up by one page (containerHeight lines) 404ms ✓ keyboard scroll > PageDown scrolls down by one page 349ms ✓ keyboard scroll > Ctrl+Home scrolls to the very top 511ms ✓ keyboard scroll > Ctrl+End scrolls to the very bottom 388ms ✓ src/utils/cpuProfiler.test.ts (21 tests) 23ms ✓ src/acp-integration/session/emitters/MessageEmitter.test.ts (20 tests) 46ms ✓ src/ui/commands/restoreCommand.test.ts (16 tests) 71ms ✓ src/commands/mcp/reconnect.test.ts (9 tests) 30ms ✓ src/ui/themes/detect-terminal-theme.test.ts (29 tests) 29ms 2026-07-03T12:23:09.114Z [ERROR] [DAEMON] route=POST /x route failed Error: boom at /startdir/src/qwen-code/packages/cli/src/serve/daemon-logger.test.ts:260:17 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20 at new Promise () at runWithTimeout (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10) at runTest (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1574:12) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) at runFiles (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1787:3) 2026-07-03T12:23:09.120Z [INFO] [DAEMON] msg-0 2026-07-03T12:23:09.120Z [INFO] [DAEMON] msg-1 2026-07-03T12:23:09.120Z [INFO] [DAEMON] msg-2 2026-07-03T12:23:09.120Z [INFO] [DAEMON] msg-3 2026-07-03T12:23:09.120Z [INFO] [DAEMON] msg-4 2026-07-03T12:23:09.120Z [INFO] [DAEMON] msg-5 2026-07-03T12:23:09.120Z [INFO] [DAEMON] msg-6 2026-07-03T12:23:09.120Z [INFO] [DAEMON] msg-7 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-8 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-9 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-10 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-11 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-12 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-13 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-14 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-15 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-16 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-17 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-18 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-19 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-20 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-21 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-22 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-23 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-24 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-25 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-26 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-27 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-28 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-29 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-30 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-31 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-32 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-33 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-34 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-35 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-36 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-37 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-38 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-39 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-40 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-41 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-42 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-43 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-44 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-45 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-46 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-47 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-48 2026-07-03T12:23:09.121Z [INFO] [DAEMON] msg-49 ✓ src/serve/daemon-logger.test.ts (21 tests) 228ms ✓ src/commands/extensions/consent.test.ts (21 tests) 15ms ✓ src/serve/fs/audit.test.ts (13 tests) 29ms ✓ src/services/commandMetadata.test.ts (37 tests) 24ms ✓ src/ui/utils/todoSnapshot.test.ts (15 tests) 23ms ✓ src/commands/serve.test.ts (20 tests) 4891ms ✓ serve command args > parses --web (default true) and --no-web 396ms ✓ serve command args > parses --open (default false) 356ms ✓ serve startup import boundary > reaches listening through the dev entrypoint without loading interactive Ink internals first 3482ms ✓ src/utils/sessionPaths.test.ts (8 tests) 189ms ✓ src/serve/workspace-providers-status.test.ts (9 tests) 108ms ✓ src/ui/components/shared/MaxSizedBox.test.tsx (21 tests) 1750ms ✓ src/utils/housekeeping/scheduler.test.ts (13 tests) 41ms ✓ src/utils/warningHandler.test.ts (13 tests) 501ms ✓ initializeWarningHandler — end-to-end stderr behavior > a child process with the handler installed does not print suppressed AbortSignal warnings to stderr 477ms ✓ src/serve/daemon-status.test.ts (5 tests) 42ms ✓ src/ui/auth/ProviderSetupSteps.test.tsx (6 tests) 1258ms ✓ ProviderSetupSteps > maps Ctrl+P/N to advanced-config focus navigation 358ms ✓ ProviderSetupSteps > filters recommended models when typing search while recommendations are focused 407ms ✓ src/ui/hooks/useShellHistory.test.ts (9 tests) 975ms ✓ src/ui/commands/forkCommand.test.ts (15 tests) 62ms ✓ src/utils/earlyInputCapture.test.ts (28 tests) 24ms ✓ src/ui/commands/contextCommand.test.ts (9 tests) 139ms ✓ src/services/BuiltinCommandLoader.test.ts (11 tests) 48ms ✓ src/dualOutput/DualOutputBridge.test.ts (19 tests) 209ms ✓ src/ui/utils/restoreGoal.test.ts (20 tests) 19ms ✓ src/ui/statusLinePresets.test.ts (17 tests) 32ms ✓ src/utils/gitUtils.test.ts (31 tests) 34ms ✓ src/ui/components/RewindSelector.test.tsx (10 tests) 1855ms ✓ src/utils/housekeeping/cleanup.test.ts (15 tests) 47ms ✓ src/serve/fs/contract.test.ts (10 tests) 60ms ✓ src/ui/themes/color-utils.test.ts (23 tests) 16ms ✓ src/ui/components/Footer.test.tsx (17 tests) 1317ms ✓ src/services/FileCommandLoader-extension.test.ts (6 tests) 142ms ✓ src/ui/components/hooks/HooksManagementDialog.test.tsx (8 tests) 3221ms ✓ HooksManagementDialog > should render loading state initially 462ms ✓ HooksManagementDialog > should navigate from a matcher hook to matcher detail 577ms ✓ HooksManagementDialog > should navigate from matcher detail to config detail 687ms ✓ HooksManagementDialog > should navigate directly from a non-matcher hook to config detail 990ms ✓ src/commands/extensions/update.test.ts (14 tests) 44ms ✓ src/utils/osc.test.ts (30 tests) 66ms ✓ src/ui/components/hooks/HookConfigDetailStep.test.tsx (17 tests) 1356ms ✓ src/ui/components/Help.test.tsx (8 tests) 1188ms ✓ src/acp-integration/session/Session.worktree.test.ts (4 tests) 27ms ✓ src/ui/commands/extensionsCommand.test.ts (11 tests) 75ms ✓ src/ui/components/InputPrompt.test.tsx (184 tests) 85504ms ✓ InputPrompt > routes Space through voice input when the prompt is empty 776ms ✓ InputPrompt > onTabConsumerChange reporting (issue #4171) > reports true while the followup prompt suggestion is visible 836ms ✓ InputPrompt > onTabConsumerChange reporting (issue #4171) > reports false when a promptSuggestion is set but the buffer is non-empty 310ms ✓ InputPrompt > onTabConsumerChange reporting (issue #4171) > reports true while the autocomplete dropdown is visible 334ms ✓ InputPrompt > onTabConsumerChange reporting (issue #4171) > reports false when the input area is idle (no dropdown, no followup, no ghost) 333ms ✓ InputPrompt > onTabConsumerChange reporting (issue #4171) > reports false again after the autocomplete dropdown is dismissed 630ms ✓ InputPrompt > onSuggestionsVisibilityChange stays narrow (autocomplete only) > stays false when only a followup prompt suggestion is visible 860ms ✓ InputPrompt > should set the buffer text when a shell history command is retrieved 445ms ✓ InputPrompt > should call shellHistory.addCommandToHistory on submit in shell mode 390ms ✓ InputPrompt > should NOT call shell history methods when not in shell mode 718ms ✓ InputPrompt > should call completion.navigateUp for up arrow when suggestions are showing 702ms ✓ InputPrompt > should call completion.navigateDown for down arrow when suggestions are showing 563ms ✓ InputPrompt > should NOT call completion navigation when suggestions are not showing 907ms ✓ InputPrompt > clipboard image paste > should handle Ctrl+V when clipboard has an image 397ms ✓ InputPrompt > clipboard image paste > should handle Cmd+V when clipboard has an image 491ms ✓ InputPrompt > clipboard image paste > should not insert anything when clipboard has no image 426ms ✓ InputPrompt > clipboard image paste > should handle image save failure gracefully 417ms ✓ InputPrompt > clipboard image paste > should insert image path at cursor position with proper spacing 477ms ✓ InputPrompt > clipboard image paste > should handle errors during clipboard operations gracefully 463ms ✓ InputPrompt > should complete a partial parent command 419ms ✓ InputPrompt > should append a sub-command when the parent command is already complete 431ms ✓ InputPrompt > should handle the "backspace" edge case correctly 523ms ✓ InputPrompt > should complete a partial argument for a command 490ms ✓ InputPrompt > should autocomplete on Enter when suggestions are active, without submitting 586ms ✓ InputPrompt > should complete a command based on its altNames 454ms ✓ InputPrompt > should not submit on Enter when the buffer is empty or only contains whitespace 500ms ✓ InputPrompt > should submit directly on Enter when isPerfectMatch is true 496ms ✓ InputPrompt > should submit a perfect match on Enter when suggestions were not navigated 510ms ✓ InputPrompt > should fill and submit an export format selected with arrow navigation 690ms ✓ InputPrompt > should keep cycling export formats after arrow navigation fills input 745ms ✓ InputPrompt > should keep cycling export formats with Ctrl+P/N after arrow navigation fills input 842ms ✓ InputPrompt > should keep export format suggestions visible after arrow navigation fills input 659ms ✓ InputPrompt > should not clobber manually edited buffer when arrow is pressed after export fill 1140ms ✓ InputPrompt > should wrap to jsonl when pressing Up from the /export Phase 1 popup 567ms ✓ InputPrompt > should wrap Phase 2 cycling backward when pressing Up repeatedly 845ms ✓ InputPrompt > should seed Phase 2 cycling when Tab accepts a format in the /export popup 856ms ✓ InputPrompt > should not overwrite /export html with extra args when Down is pressed 672ms ✓ InputPrompt > should reset export cycling state on Escape so arrows no longer cycle 778ms ✓ InputPrompt > should reset export cycling state on Ctrl+C so new input is not overwritten 829ms ✓ InputPrompt > should cycle export format on Down when /export was typed manually (not via popup) 1018ms ✓ InputPrompt > should not arm export cycling from restored history text 540ms ✓ InputPrompt > should trigger export-specific arrow navigation even when completion suggestions are a superset 665ms ✓ InputPrompt > should fall through to generic accept when Tab targets a non-export item in the /export superset popup 518ms ✓ InputPrompt > should fall through to generic completion when suggestions are missing an export format 627ms ✓ InputPrompt > should trigger Phase 1 export popup even when /export has trailing spaces 497ms ✓ InputPrompt > should autocomplete on Enter when user arrow-navigated a perfect-match suggestion list 623ms ✓ InputPrompt > should submit directly on Enter after arrow-navigate + backspace + retype to perfect match 1397ms ✓ InputPrompt > should submit directly on Enter for a perfect match without prior arrow navigation 489ms ✓ InputPrompt > should dismiss completion on Enter after accepting @path suggestion 505ms ✓ InputPrompt > should autocomplete @path on Tab without submitting or resetting completion 506ms ✓ InputPrompt > should reset history navigation after submitting on Enter 483ms ✓ InputPrompt > should submit directly on Enter when a complete leaf command is typed 446ms ✓ InputPrompt > should autocomplete an @-path on Enter without submitting 405ms ✓ InputPrompt > should add a newline on enter when the line ends with a backslash 508ms ✓ InputPrompt > should clear the buffer on Ctrl+C if it has text 543ms ✓ InputPrompt > should NOT clear the buffer on Ctrl+C if it is empty 635ms ✓ InputPrompt > cursor-based completion trigger > should trigger completion when cursor is after / without spaces 423ms ✓ InputPrompt > cursor-based completion trigger > should NOT trigger completion when cursor is after space following @ 526ms ✓ InputPrompt > cursor-based completion trigger > should handle multiline text correctly 327ms ✓ InputPrompt > cursor-based completion trigger > should handle single line slash command correctly 330ms ✓ InputPrompt > cursor-based completion trigger > should handle Unicode characters with spaces after them 435ms ✓ InputPrompt > cursor-based completion trigger > should handle escaped spaces in paths correctly 308ms ✓ InputPrompt > cursor-based completion trigger > should handle Unicode characters with escaped spaces 332ms ✓ InputPrompt > vim mode > should not call buffer.handleInput when vim handles the input 490ms ✓ InputPrompt > vim mode > should call buffer.handleInput when vim does not handle the input 533ms ✓ InputPrompt > vim mode > should call handleInput when vim mode is disabled 532ms ✓ InputPrompt > vim mode > should toggle shortcuts when vim passes through ? on an empty prompt 482ms ✓ InputPrompt > unfocused paste > should handle bracketed paste when not focused 432ms ✓ InputPrompt > unfocused paste > should ignore regular keypresses when not focused 593ms ✓ InputPrompt > Highlighting and Cursor Display > should display cursor mid-word by highlighting the character 353ms ✓ InputPrompt > Highlighting and Cursor Display > should display cursor at the beginning of the line 301ms ✓ InputPrompt > Highlighting and Cursor Display > should display cursor at the end of a line with unicode characters 383ms ✓ InputPrompt > Highlighting and Cursor Display > should display cursor on an empty line 309ms ✓ InputPrompt > Highlighting and Cursor Display > should display cursor in the middle of a line in a multiline block 357ms ✓ InputPrompt > Highlighting and Cursor Display > should display cursor on a blank line in a multiline block 420ms ✓ InputPrompt > multiline rendering > should correctly render multiline input including blank lines 341ms ✓ InputPrompt > multiline paste > should handle multiline paste 'with \n newlines' 445ms ✓ InputPrompt > multiline paste > should handle multiline paste 'with extra slashes before \n newlines' 474ms ✓ InputPrompt > multiline paste > should handle multiline paste 'with \r\n newlines' 447ms ✓ InputPrompt > paste auto-submission protection > should prevent auto-submission immediately after paste with newlines 771ms ✓ InputPrompt > paste auto-submission protection > should allow submission after paste protection timeout 476ms ✓ InputPrompt > paste auto-submission protection > should not interfere with normal Enter key submission when no recent paste 454ms ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should clear buffer on second ESC press 515ms ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should reset escape state on any non-ESC key 381ms ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should handle ESC in shell mode by disabling shell mode 529ms ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should handle ESC when completion suggestions are showing 447ms ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should not call onEscapePromptChange when not provided 507ms ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should not interfere with existing keyboard shortcuts 660ms ✓ InputPrompt > reverse search > invokes reverse search on Ctrl+R 790ms ✓ InputPrompt > reverse search > resets reverse search state on Escape 543ms ✓ InputPrompt > reverse search > completes the highlighted entry on Tab and exits reverse-search 544ms ✓ InputPrompt > reverse search > submits the highlighted entry on Enter and exits reverse-search 530ms ✓ InputPrompt > reverse search > text and cursor position should be restored after reverse search 405ms ✓ InputPrompt > reverse search > does not fall through to shell history on Ctrl+P/N while reverse search is active 779ms ✓ InputPrompt > Ctrl+E keyboard shortcut > should move cursor to end of current line in multiline input 530ms ✓ InputPrompt > Ctrl+E keyboard shortcut > should move cursor to end of current line for single line input 645ms ✓ InputPrompt > command search (Ctrl+R when not in shell) > passes newest-first user history to command search 377ms ✓ InputPrompt > command search (Ctrl+R when not in shell) > enters command search on Ctrl+R and shows suggestions 490ms ✓ InputPrompt > command search (Ctrl+R when not in shell) > shows command search suggestions over active export suggestions 633ms ✓ InputPrompt > command search (Ctrl+R when not in shell) > expands and collapses long suggestion via Right/Left arrows 534ms ✓ InputPrompt > command search (Ctrl+R when not in shell) > renders match window and expanded view (snapshots) 625ms ✓ InputPrompt > command search (Ctrl+R when not in shell) > does not show expand/collapse indicator for short suggestions 666ms ✓ InputPrompt > snapshots > should render correctly in shell mode 405ms ✓ InputPrompt > snapshots > should render correctly when accepting edits 368ms ✓ InputPrompt > snapshots > should render correctly in yolo mode 454ms ✓ InputPrompt > snapshots > should not show inverted cursor when shell is focused 348ms ✓ InputPrompt > should still allow input when shell is not focused 465ms ✓ InputPrompt > large paste placeholder > should create placeholder for paste > 1000 characters 544ms ✓ InputPrompt > large paste placeholder > should create placeholder for paste > 10 lines 464ms ✓ InputPrompt > large paste placeholder > should use sequential IDs for multiple pastes of same size 718ms ✓ InputPrompt > large paste placeholder > should expand placeholder to full content on submit 394ms ✓ InputPrompt > large paste placeholder > should expand same-size placeholders correctly when #2 appears first 530ms ✓ InputPrompt > large paste placeholder > should write expanded placeholder content to shell history 706ms ✓ InputPrompt > large paste placeholder > should reuse placeholder ID after deletion 495ms ✓ InputPrompt > large paste placeholder > should handle mixed pastes with different character counts 769ms ✓ InputPrompt > Ctrl+Y retry shortcut > should trigger handleRetryLastPrompt on Ctrl+Y 450ms ✓ InputPrompt > Ctrl+Y retry shortcut > should NOT trigger retry on plain y key 496ms ✓ InputPrompt > Ctrl+Y retry shortcut > should NOT trigger retry on Ctrl+R (reverse search) 587ms ✓ InputPrompt > Ctrl+Y retry shortcut > should handle Ctrl+Y when feedback dialog is open 423ms ✓ InputPrompt > queue input editing > should pop queued messages into input on Up arrow when queue is non-empty 427ms ✓ InputPrompt > queue input editing > should prepend queued messages before existing input text 663ms ✓ InputPrompt > queue input editing > should pop queued messages on ESC when queue is non-empty 640ms ✓ InputPrompt > queue input editing > should fall through to history when pop returns null (race condition) 470ms ✓ InputPrompt > queue input editing > should navigate history on Up arrow when queue is empty 477ms ✓ InputPrompt > queue input editing > should not intercept Ctrl+P when queue is non-empty 580ms ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+P with cursor mid-line snaps to col 0 without touching history 586ms ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+N with cursor not at end-of-line snaps to end without touching history 685ms ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+P at col 0 walks history and parks the cursor at offset 0 491ms ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+P/N and arrows do not change input history while a tool confirmation owns navigation 917ms ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+N falls through to the agent tab bar when there is no newer history 502ms ✓ InputPrompt > two-step edge transition for history navigation > arrow Down applies the same snap-before-history rule as Ctrl+N 390ms ✓ InputPrompt > two-step edge transition for history navigation > arrow Down at end-of-line walks history 462ms ✓ InputPrompt > two-step edge transition for history navigation > arrow Down falls through to the agent tab bar when there is no newer history 625ms ✓ InputPrompt > two-step edge transition for history navigation > arrow Down jumps straight to the live agent panel when a bg sub-agent is running (#4907) 435ms ✓ InputPrompt > two-step edge transition for history navigation > arrow Down still falls through to the tab bar when the only bg entry is a non-agent (shell) task 505ms ✓ InputPrompt > two-step edge transition for history navigation > arrow Down skips terminal bg agents after the live panel visibility window (#5067) 439ms ✓ InputPrompt > two-step edge transition for history navigation > arrow Down focuses the background-tasks pill when only the pill is shown (workflow-only session) 482ms ✓ InputPrompt > two-step edge transition for history navigation > Down at the bottom of the live agent panel descends to the agent tab bar 522ms ✓ InputPrompt > two-step edge transition for history navigation > Down at the bottom of the live agent panel returns to the composer when no tab bar exists 436ms ✓ InputPrompt > two-step edge transition for history navigation > Down from an expired live panel falls through to the tab bar 433ms ✓ InputPrompt > two-step edge transition for history navigation > Enter on the live panel maps visible agents back to their bg entry index 438ms ✓ InputPrompt > two-step edge transition for history navigation > arrow Up applies the same two-step rule as Ctrl+P (snap before navigate) 464ms ✓ InputPrompt > two-step edge transition for history navigation > suppresses completion menu navigation for history-restored text until edited 943ms ✓ src/utils/writeWithBackup.test.ts (13 tests) 53ms ✓ src/utils/envVarResolver.test.ts (16 tests) 19ms ✓ src/ui/themes/theme-manager.test.ts (19 tests) 61ms ✓ src/utils/runBudget.test.ts (42 tests) 25ms ✓ src/services/command-migration-tool.test.ts (14 tests) 93ms ✓ src/ui/components/hooks/HookDetailStep.test.tsx (14 tests) 959ms ✓ src/services/prompt-processors/injectionParser.test.ts (21 tests) 33ms ✓ src/ui/hooks/useKeypress.test.ts (15 tests) 152ms ✓ src/serve/env-snapshot.test.ts (13 tests) 663ms ✓ src/commands/mcp/list.test.ts (7 tests) 42ms ✓ src/config/migration/versions/v3-to-v4.test.ts (32 tests) 26ms ✓ src/ui/commands/insightCommand.test.ts (5 tests) 43ms ✓ src/acp-integration/session/rewrite/LlmRewriter.test.ts (9 tests) 21ms ✓ src/ui/hooks/useLoadingIndicator.test.ts (8 tests) 187ms qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) ✓ src/serve/routes/workspace-file-write.test.ts (10 tests) 329ms ✓ src/acp-integration/session/emitters/PlanEmitter.test.ts (19 tests) 27ms ✓ src/ui/commands/ideCommand.test.ts (8 tests) 33ms ✓ src/ui/components/ShellConfirmationDialog.test.tsx (12 tests) 1051ms ✓ src/ui/hooks/useInputHistoryStore.test.ts (14 tests) 110ms ✓ src/ui/commands/compressCommand.test.ts (10 tests) 121ms ✓ src/ui/hooks/useInputHistory.test.ts (11 tests) 62ms ✓ src/ui/hooks/useEditorSettings.test.ts (10 tests) 94ms ✓ src/ui/hooks/useSessionPicker.test.tsx (8 tests) 129ms ✓ src/ui/components/messages/InlineParallelAgentsDisplay.test.tsx (6 tests) 424ms ✓ src/ui/utils/asciiCharts.test.ts (21 tests) 110ms ✓ src/ui/components/hooks/HandlerListBody.test.tsx (11 tests) 855ms ✓ src/ui/hooks/useMessageQueue.test.ts (16 tests) 119ms ✓ src/ui/utils/computeStats.test.ts (12 tests) 6ms ✓ src/config/migration/versions/v1-to-v2.test.ts (20 tests) 26ms ✓ src/ui/components/StatusLineDialog.test.tsx (5 tests) 1239ms ✓ StatusLineDialog > persists selected presets on enter 302ms ✓ StatusLineDialog > keeps preset priority order after an item is toggled off and on 410ms ✓ src/ui/hooks/useReverseSearchCompletion.test.tsx (10 tests) 94ms Warning: MCP approvals file error: MCP approvals file is not a valid JSON object. Warning: MCP approvals file error: Expected property name or '}' in JSON at position 1 (line 1 column 2) ✓ src/services/prompt-processors/atFileProcessor.test.ts (11 tests) 33ms ✓ src/config/mcpApprovals.test.ts (16 tests) 70ms ✓ src/ui/utils/formatters.test.ts (33 tests) 13ms ✓ src/serve/fs/policy.test.ts (18 tests) 63ms ✓ src/ui/hooks/useCompletion.test.ts (13 tests) 181ms ✓ src/ui/commands/voice-command.test.ts (11 tests) 25ms ✓ src/ui/components/PluginChoicePrompt.test.tsx (13 tests) 1075ms ✓ src/ui/hooks/useAttentionNotifications.test.ts (9 tests) 66ms ✓ src/ui/commands/lspCommand.test.ts (9 tests) 77ms ✓ src/commands/channel/start.test.ts (5 tests) 30ms ✓ src/serve/daemon-status-provider.test.ts (4 tests) 966ms ✓ DaemonWorkspaceService — daemon-host status provider integration > merges daemon cells with live ACP-side preflight cells when a channel is up 325ms ✓ DaemonWorkspaceService — daemon-host status provider integration > falls back to idle ACP cells + envelope error when queryWorkspaceStatus throws mid-preflight 342ms ✓ src/ui/hooks/useExportCompletion.test.ts (20 tests) 177ms ✓ src/ui/components/SettingsCorruptedDialog.test.tsx (8 tests) 1913ms ✓ SettingsCorruptedDialog > should call onContinue when pressing Enter on CONTINUE option 349ms ✓ src/ui/hooks/useIdeTrustListener.test.ts (5 tests) 89ms ✓ src/ui/hooks/useTurnDiffs.test.ts (7 tests) 393ms ✓ src/ui/commands/setupGithubCommand.test.ts (8 tests) 66ms ✓ src/ui/commands/bugCommand.test.ts (4 tests) 49ms ✓ src/serve/permission-audit.test.ts (10 tests) 11ms ✓ src/commands/channel/pidfile.test.ts (16 tests) 272ms ✓ src/acp-integration/service/filesystem.test.ts (8 tests) 32ms ✓ src/ui/components/hooks/matcherGrouping.test.ts (13 tests) 12ms ✓ src/ui/components/background-view/BackgroundTasksPill.test.tsx (19 tests) 7ms ✓ src/ui/hooks/useMemoryMonitor.test.ts (8 tests) 57ms ✓ src/ui/voice/voice-recorder.test.ts (8 tests) 15ms ✓ src/serve/fs/errors.test.ts (20 tests) 34ms ✓ src/ui/hooks/useTrustModify.test.ts (8 tests) 129ms ✓ src/ui/commands/skillsCommand.test.ts (9 tests) 19ms ✓ src/commands/extensions/sources.test.ts (11 tests) 58ms ✓ src/commands/extensions/new.test.ts (9 tests) 214ms ✓ src/ui/commands/hooksCommand.test.ts (8 tests) 58ms ✓ src/commands/channel/config-utils.test.ts (17 tests) 22ms ✓ src/utils/windowTitle.test.ts (21 tests) 12ms ✓ src/i18n/mustTranslateKeys.test.ts (20 tests) 774ms ✓ src/ui/voice/voice-stream-session.test.ts (10 tests) 46ms ✓ src/config/migration/versions/v5-to-v4.test.ts (17 tests) 31ms ✓ src/ui/components/agent-view/AgentTabBar.test.tsx (7 tests) 504ms ✓ src/ui/components/BaseTextInput.test.tsx (12 tests) 548ms ✓ src/nonInteractive/io/StreamJsonInputReader.test.ts (11 tests) 37ms ✓ src/ui/components/Header.test.tsx (18 tests) 1322ms ✓ src/ui/hooks/useFolderTrust.test.ts (9 tests) 87ms ✓ src/ui/utils/highlight.test.ts (18 tests) 9ms ✓ src/ui/components/messages/CompressionMessage.test.tsx (8 tests) 901ms ✓ src/ui/hooks/usePhraseCycler.test.ts (9 tests) 186ms ✓ src/ui/components/MemoryDialog.test.tsx (6 tests) 1073ms ✓ src/ui/components/hooks/HookMatcherDetailStep.test.tsx (8 tests) 603ms ✓ src/ui/layouts/DefaultAppLayout.test.tsx (7 tests) 593ms ✓ src/ui/utils/historyUtils.test.ts (13 tests) 6ms ✓ src/utils/terminalSequence.test.ts (26 tests) 27ms ✓ src/ui/utils/synchronizedOutput.test.ts (17 tests) 44ms ✓ src/config/loadedSettingsAdapter.test.ts (5 tests) 63ms ✓ src/services/commandUtils.test.ts (14 tests) 7ms ✓ src/ui/components/mcp/utils.test.ts (16 tests) 29ms ✓ src/ui/components/arena/ArenaSelectDialog.test.tsx (5 tests) 1296ms ✓ ArenaSelectDialog > toggles quick preview and detailed diff for the highlighted agent 569ms ✓ ArenaSelectDialog > ignores Enter when the highlighted agent is not selectable 359ms ✓ src/ui/utils/clipboardUtils.test.ts (27 tests) 92418ms ✓ clipboardUtils > clipboardHasImage > should return true when clipboard contains image 7761ms ✓ clipboardUtils > clipboardHasImage > should return false when clipboard does not contain image 3188ms ✓ clipboardUtils > clipboardHasImage > should return false when wl-paste is not found 3690ms ✓ clipboardUtils > xclip / X11 path > clipboardHasImage > should detect xclip as the clipboard tool on X11 4103ms ✓ clipboardUtils > xclip / X11 path > clipboardHasImage > should return false when xclip reports no image types 3038ms ✓ clipboardUtils > xclip / X11 path > clipboardHasImage > should return false when xclip is not found 2792ms ✓ clipboardUtils > xclip / X11 path > saveClipboardImage > should return null when xclip is not found 2702ms ✓ clipboardUtils > BMP-to-PNG conversion (wl-paste) > should return null when python3 PIL conversion fails 2636ms ✓ clipboardUtils > BMP-to-PNG conversion (wl-paste) > should prefer PNG over BMP when both are available 3060ms ✓ clipboardUtils > saveFromCommand error paths > should return null on spawn timeout (5s) 3976ms ✓ clipboardUtils > saveFromCommand error paths > should return null on spawn error 2856ms ✓ clipboardUtils > saveFromCommand error paths > should return null on stdout error 3431ms ✓ clipboardUtils > saveClipboardImage > should return null when no clipboard tool is available 2818ms ✓ clipboardUtils > saveClipboardImage > should return null on spawn error during list-types 4216ms ✓ clipboardUtils > cleanupOldClipboardImages > should not throw errors when directory does not exist 4088ms ✓ clipboardUtils > cleanupOldClipboardImages > should complete without errors on valid directory 3358ms ✓ clipboardUtils > macOS/Windows fallback > should return false on non-linux platform when @teddyzhu/clipboard fails 3934ms ✓ clipboardUtils > macOS/Windows fallback > should return null on non-linux platform when saving fails 2925ms ✓ clipboardUtils > cache behavior > should reset wl-paste cache between clipboardHasImage calls 3769ms ✓ clipboardUtils > writeOsc52 > should write OSC 52 sequence to stdout when stdout is TTY 3598ms ✓ clipboardUtils > writeOsc52 > should write OSC 52 sequence to stderr when stdout is not TTY but stderr is 2555ms ✓ clipboardUtils > writeOsc52 > should return false and not write when neither stdout nor stderr is TTY 2947ms ✓ clipboardUtils > writeOsc52 > should handle special characters in text 3681ms ✓ clipboardUtils > writeOsc52 > should handle empty string 2517ms ✓ clipboardUtils > writeOsc52 > should return false on write error 2714ms ✓ clipboardUtils > writeOsc52 > should wrap in tmux DCS envelope when TMUX is set 3100ms ✓ clipboardUtils > writeOsc52 > should wrap in screen DCS envelope when STY is set 2963ms ✓ src/ui/components/TrustDialog.test.tsx (6 tests) 732ms ✓ src/commands/extensions/utils.test.ts (11 tests) 29ms ✓ src/ui/commands/mcpCommand.test.ts (10 tests) 26ms (node:18363) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 exit listeners added to [process]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (Use `node --trace-warnings ...` to show where the warning was created) ✓ src/ui/components/SessionPreview.test.tsx (7 tests) 897ms ✓ src/nonInteractive/control/controllers/permissionController.test.ts (4 tests) 75ms ✓ src/ui/voice/native-audio-recorder.test.ts (7 tests) 26ms ✓ src/services/saved-workflow-loader.test.ts (11 tests) 13ms ✓ src/utils/deepMerge.test.ts (13 tests) 7ms ✓ src/core/initializer.test.ts (11 tests) 17ms ✓ src/remoteInput/RemoteInputWatcher.test.ts (7 tests) 533ms ✓ src/ui/hooks/useMcpApproval.test.ts (7 tests) 90ms ✓ src/ui/commands/approvalModeCommand.test.ts (13 tests) 127ms ✓ src/ui/models/availableModels.test.ts (14 tests) 11ms ✓ src/ui/hooks/useGitBranchName.test.ts (8 tests) 95ms ✓ src/ui/contexts/SessionContext.test.tsx (4 tests) 293ms ✓ src/ui/utils/lowlightLoader.test.ts (5 tests) 112ms ✓ src/ui/components/Tips.test.ts (9 tests) 13ms qwen serve: /acp WS error: test error qwen serve: /acp WS write failed: write failed ✓ src/serve/acp-http/ws-stream.test.ts (14 tests) 50ms ✓ src/ui/components/shared/RadioButtonSelect.test.tsx (5 tests) 512ms ✓ src/ui/commands/initCommand.test.ts (5 tests) 34ms ✓ src/ui/components/AnsiOutput.test.tsx (8 tests) 799ms ✓ src/ui/components/messages/CompactToolGroupDisplay.test.tsx (8 tests) 626ms ✓ src/ui/utils/mouse.test.ts (15 tests) 24ms ✓ src/ui/voice/sox-recorder.test.ts (5 tests) 36ms ✓ src/ui/components/AppHeader.test.tsx (6 tests) 598ms ✓ src/utils/costCalculator.test.ts (14 tests) 17ms ✓ src/config/migration/scheduler.test.ts (7 tests) 50ms ✓ src/ui/commands/compressFastCommand.test.ts (7 tests) 42ms ✓ src/nonInteractive/control/controllers/systemController.test.ts (8 tests) 11ms ✓ src/ui/components/ConsentPrompt.test.tsx (9 tests) 748ms ✓ src/ui/components/hooks/HooksListStep.test.tsx (9 tests) 916ms ✓ src/config/mcpJson.test.ts (11 tests) 23ms ✓ src/ui/voice/voice-refine.test.ts (11 tests) 14ms ✓ src/ui/hooks/useSlashCompletion.integration.test.ts (3 tests) 246ms ✓ src/ui/commands/planCommand.test.ts (7 tests) 47ms ✓ src/utils/commands.test.ts (13 tests) 24ms ✓ src/ui/components/messages/DiffStatsDisplay.test.tsx (6 tests) 556ms ✓ src/i18n/index.test.ts (11 tests) 25539ms ✓ bundled locale fallback > loads bundled builtin translations when locale files are absent on disk 3347ms ✓ bundled locale fallback > falls back to bundled translations when a user locale default export is null 2681ms ✓ bundled locale fallback > falls back to bundled translations when a user locale default export is an array 3373ms ✓ language normalization > normalizes explicit locale IDs before loading translations 3623ms ✓ language normalization > normalizes explicit POSIX locale strings before loading translations 3283ms ✓ localizeToolDisplayName > translates tool badges without colliding with generic UI strings 2618ms ✓ localizeToolDisplayName > falls back to the English display name for untranslated tools 3226ms ✓ localizeToolDisplayName > has a zh translation for every core tool display name 3376ms ✓ src/ui/commands/resumeCommand.test.ts (9 tests) 21ms ✓ src/commands/extensions/disable.test.ts (9 tests) 128ms qwen serve: /acp SSE onClose threw: onClose boom qwen serve: /acp SSE write failed, closing stream: EPIPE ✓ src/serve/acp-http/sse-stream.test.ts (8 tests) 50ms ✓ src/ui/components/background-view/workflow-save-overlay.test.tsx (7 tests) 1263ms ✓ src/utils/cleanup.test.ts (8 tests) 161ms ✓ src/ui/utils/terminalRedrawOptimizer.test.ts (9 tests) 32ms ✓ src/commands/mcp/approve.test.ts (7 tests) 39ms ✓ src/ui/utils/sessionPickerUtils.test.ts (15 tests) 36ms ✓ src/ui/utils/updateCheck.test.ts (9 tests) 21ms ✓ src/ui/components/mcp/steps/ResourceListStep.test.tsx (5 tests) 1426ms ✓ ResourceListStep > windows a long list with correct count + arrow indicators 1044ms ✓ src/ui/components/StickyTodoList.test.tsx (6 tests) 696ms ✓ src/ui/components/arena/ArenaCards.test.tsx (2 tests) 243ms ✓ src/ui/layouts/ScreenReaderAppLayout.test.tsx (6 tests) 371ms ✓ src/ui/components/ToolStatsDisplay.test.tsx (5 tests) 476ms ✓ src/ui/utils/CodeColorizer.test.ts (18 tests) 10ms ✓ src/ui/components/SuggestionsDisplay.test.tsx (5 tests) 604ms ✓ SuggestionsDisplay > renders localized loading text in zh 311ms ✓ src/services/FileCommandLoader-markdown.test.ts (4 tests) 138ms ✓ src/ui/App.test.tsx (7 tests) 508ms ✓ src/services/markdown-command-parser.test.ts (13 tests) 88ms ✓ src/ui/utils/MermaidDiagram.test.tsx (5 tests) 628ms ✓ src/ui/utils/backgroundWorkUtils.test.ts (8 tests) 8ms ✓ src/ui/commands/docsCommand.test.ts (5 tests) 27ms ✓ src/commands/extensions/enable.test.ts (9 tests) 331ms ✓ src/services/notificationService.test.ts (9 tests) 10ms ✓ src/utils/sandbox.test.ts (17 tests) 7ms ✓ src/ui/components/ApprovalModeDialog.test.tsx (9 tests) 755ms ✓ src/ui/components/views/McpStatus.test.tsx (12 tests) 781ms ✓ src/nonInteractive/io/StreamJsonOutputAdapter.dualOutput.test.ts (5 tests) 12ms ✓ src/config/normalizeDisabledTools.test.ts (16 tests) 16ms ✓ src/services/tips/tipScheduler.test.ts (7 tests) 11ms ✓ src/ui/components/SessionSummaryDisplay.test.tsx (3 tests) 289ms ✓ src/ui/commands/historyCommand.test.ts (5 tests) 13ms ✓ src/utils/housekeeping/throttledOnce.test.ts (7 tests) 87ms ✓ src/ui/commands/importConfigCommand.test.ts (9 tests) 30ms ✓ src/utils/readStdin.test.ts (5 tests) 603ms ✓ readStdin > should enforce the stdin limit by UTF-8 byte size 566ms ✓ src/ui/hooks/useFocus.test.ts (6 tests) 112ms ✓ src/ui/utils/modelsBySource.test.ts (7 tests) 18ms ✓ src/services/tips/tipHistory.test.ts (11 tests) 27ms ✓ src/ui/commands/arenaCommand.agentComplete.test.ts (1 test) 12ms ✓ src/ui/hooks/useTimer.test.ts (8 tests) 137ms ✓ src/ui/components/shared/EnumSelector.test.tsx (9 tests) 760ms ✓ src/ui/hooks/useAwaySummary.test.ts (2 tests) 100ms ✓ src/ui/components/DiffDialog.test.tsx (1 test) 165ms ✓ src/ui/commands/dreamCommand.test.ts (5 tests) 32ms ✓ src/ui/components/shared/TextInput.test.tsx (6 tests) 646ms ✓ src/ui/components/views/ContextUsage.test.tsx (4 tests) 858ms ✓ src/ui/contexts/VimModeContext.test.tsx (4 tests) 523ms ✓ src/ui/components/FolderTrustDialog.test.tsx (9 tests) 1081ms ✓ src/ui/components/hooks/HooksDisabledStep.test.tsx (8 tests) 687ms ✓ src/ui/hooks/useWelcomeBack.test.ts (4 tests) 216ms ✓ src/ui/hooks/useResizeSettleRepaint.test.ts (6 tests) 94ms ✓ src/ui/hooks/useSessionPicker.test.ts (4 tests) 81ms ✓ src/ui/utils/measure-element-position.test.tsx (4 tests) 305ms ✓ src/ui/components/mcp/steps/ResourceDetailStep.test.tsx (6 tests) 473ms ✓ src/ui/hooks/useConfigInitMessage.test.ts (7 tests) 89ms ✓ src/utils/userStartupWarnings.test.ts (5 tests) 37ms ✓ src/ui/components/extensions/steps/ExtensionListStep.test.tsx (5 tests) 492ms ✓ src/ui/components/hooks/sourceLabels.test.ts (10 tests) 7ms ✓ src/ui/components/messages/ConversationMessages.test.tsx (10 tests) 922ms ✓ src/ui/components/shared/ToolElapsedTime.test.tsx (8 tests) 758ms ✓ src/ui/utils/markdownUtilities.test.ts (12 tests) 35ms ✓ src/ui/components/PrepareLabel.test.tsx (6 tests) 604ms ✓ src/acp-integration/session/rewrite/TurnBuffer.test.ts (12 tests) 13ms ✓ src/ui/hooks/useWorktreeSession.test.tsx (4 tests) 458ms ✓ src/ui/hooks/useTerminalNotification.test.ts (6 tests) 44ms ✓ src/ui/components/SettingInputPrompt.test.tsx (6 tests) 613ms ✓ src/ui/commands/toolsCommand.test.ts (4 tests) 44ms ✓ src/utils/userPromptExpansionHook.test.ts (12 tests) 6ms ✓ src/ui/components/agent-view/AgentComposer.test.tsx (1 test) 122ms ✓ src/ui/components/QueuedMessageDisplay.test.tsx (7 tests) 898ms ✓ src/ui/hooks/useAnimatedScrollbar.test.ts (6 tests) 68ms ✓ src/commands/mcp/remove.test.ts (4 tests) 28ms ✓ src/ui/commands/forgetCommand.test.ts (6 tests) 12ms ✓ src/utils/headlessSafetyWarnings.test.ts (7 tests) 17ms ✓ src/config/mcpServers.test.ts (6 tests) 7ms ✓ src/ui/themes/theme.test.ts (5 tests) 17ms ✓ src/ui/hooks/useFollowupSuggestions.test.tsx (2 tests) 140ms ✓ src/acp-integration/session/permissionUtils.test.ts (4 tests) 17ms ✓ src/serve/acp-http/connection-registry.test.ts (2 tests) 11ms ✓ src/ui/utils/mermaidVisualRenderer.test.ts (4 tests) 21ms ✓ src/acp-integration/session/rewrite/config.test.ts (5 tests) 10ms ✓ src/ui/voice/voice-stream-retry.test.ts (5 tests) 22ms ✓ src/commands/extensions/list.test.ts (4 tests) 149ms No extensions installed. ✓ src/ui/components/views/ExtensionsList.test.tsx (9 tests) 495ms ✓ src/commands/auth.test.ts (9 tests) 802ms ✓ auth command > routes `auth` to the removal notice 425ms ✓ auth command > routes `auth status` to the removal notice 340ms ✓ src/ui/components/extensions/steps/ActionSelectionStep.test.tsx (5 tests) 359ms ✓ src/commands/extensions.test.tsx (11 tests) 2258ms ✓ extensions command > should register uninstall subcommand 464ms ✓ extensions command > should register disable subcommand 518ms ✓ extensions command > should register enable subcommand 382ms ✓ src/ui/components/ThemeDialog.test.tsx (2 tests) 859ms ✓ ThemeDialog Snapshots > should render correctly in theme selection mode 580ms ✓ src/ui/utils/displayUtils.test.ts (8 tests) 4ms ✓ src/ui/hooks/useMouseEvents.test.tsx (1 test) 46ms ✓ src/services/insight/generators/StaticInsightGenerator.test.ts (1 test) 74ms ✓ src/ui/utils/software-cursor.test.ts (10 tests) 26ms ✓ src/commands/extensions/link.test.ts (4 tests) 548ms ✓ extensions link command > should fail if no path is provided 316ms ✓ src/config/keyBindings.test.ts (4 tests) 28ms ✓ src/commands/sessions.test.ts (3 tests) 135ms ✓ src/ui/hooks/mcpResourceRef.test.ts (7 tests) 13ms ✓ src/config/modelProvidersScope.test.ts (4 tests) 4ms ✓ src/ui/components/ContextSummaryDisplay.test.tsx (4 tests) 239ms ✓ src/serve/acp-http/json-rpc.test.ts (9 tests) 5ms ✓ src/services/tips/tipRegistry.test.ts (5 tests) 7ms ✓ src/ui/commands/branchCommand.test.ts (6 tests) 16ms ✓ src/acp-integration/authPreflight.test.ts (3 tests) 4ms ✓ src/ui/commands/terminalSetupCommand.test.ts (5 tests) 9ms ✓ src/commands/sessions/common.test.ts (3 tests) 18ms ✓ src/ui/components/TodoDisplay.test.tsx (6 tests) 352ms ✓ src/config/path-freshness.test.ts (3 tests) 9ms ✓ src/utils/startupWarnings.test.ts (4 tests) 7ms ✓ src/ui/components/mcp/steps/ServerDetailStep.test.tsx (4 tests) 477ms ✓ src/ui/hooks/useBatchedScroll.test.ts (4 tests) 81ms ✓ src/utils/systemInfoFields.test.ts (2 tests) 15ms ✓ src/ui/components/IdeTrustChangeDialog.test.tsx (6 tests) 504ms ✓ src/utils/acpModelUtils.test.ts (20 tests) 23ms ✓ src/ui/utils/export/collect.test.ts (1 test) 13ms ✓ src/core/auth.test.ts (3 tests) 37ms ✓ src/ui/commands/authCommand.test.ts (6 tests) 29ms ✓ src/commands/mcp.test.ts (3 tests) 58ms ✓ src/ui/hooks/useModelCommand.test.ts (4 tests) 60ms ✓ src/ui/components/shared/DescriptiveRadioButtonSelect.test.tsx (2 tests) 365ms ✓ src/ui/commands/rememberCommand.test.ts (5 tests) 25ms ✓ src/ui/components/messages/BtwMessage.test.tsx (5 tests) 410ms ✓ src/core/theme.test.ts (5 tests) 25ms ✓ src/test-utils/mockCommandContext.test.ts (3 tests) 8ms ✓ src/ui/utils/theme-background.test.ts (3 tests) 6ms ✓ src/ui/components/WorktreeExitDialog.test.tsx (1 test) 265ms ✓ src/ui/components/mcp/steps/ServerListStep.test.tsx (1 test) 253ms ✓ src/utils/resolvePath.test.ts (7 tests) 10ms ✓ src/ui/utils/export/normalize.test.ts (1 test) 5ms ✓ src/ui/components/GoalPill.test.tsx (2 tests) 445ms ✓ src/ui/utils/approvalModeDisplay.test.ts (5 tests) 4ms ✓ src/ui/components/subagents/manage/AgentSelectionStep.test.tsx (1 test) 184ms ✓ src/ui/voice/voice-model.test.ts (4 tests) 20ms ✓ src/ui/commands/statuslineCommand.test.ts (4 tests) 11ms ✓ src/ui/components/mcp/steps/ToolListStep.test.tsx (1 test) 401ms ✓ ToolListStep > navigates with Ctrl+N/P readline aliases 398ms ✓ src/ui/utils/workflow-keyword.test.ts (11 tests) 5ms ✓ src/utils/standalone-update-verify.test.ts (3 tests) 52ms ✓ src/ui/utils/latexRenderer.test.ts (4 tests) 36ms ✓ src/ui/commands/helpCommand.test.ts (3 tests) 17ms ✓ src/ui/hooks/useThemeCommand.test.ts (1 test) 55ms ✓ src/ui/contexts/AgentViewContext.test.tsx (2 tests) 179ms ✓ src/ui/components/mcp/MCPHealthPill.test.tsx (6 tests) 4ms ✓ src/ui/utils/layoutUtils.test.ts (4 tests) 15ms ✓ src/ui/voice/voice-availability.test.ts (5 tests) 8ms ✓ src/ui/components/messages/GoalStatusMessage.test.tsx (3 tests) 243ms ✓ src/ui/commands/quitCommand.test.ts (1 test) 47ms ✓ src/ui/components/views/ToolsList.test.tsx (3 tests) 335ms ✓ src/ui/voice/voice-keyterms.test.ts (2 tests) 13ms ✓ src/utils/processUtils.test.ts (1 test) 8ms ✓ src/ui/components/LoopDetectionConfirmation.test.tsx (2 tests) 459ms ✓ LoopDetectionConfirmation > renders correctly 393ms ✓ src/services/command-factory.test.ts (2 tests) 47ms ✓ src/services/prompt-processors/argumentProcessor.test.ts (2 tests) 52ms ✓ src/ui/commands/themeCommand.test.ts (2 tests) 29ms ✓ src/ui/components/GeminiRespondingSpinner.test.tsx (2 tests) 129ms ✓ src/ui/components/approvalModeVisuals.test.ts (3 tests) 5ms ✓ src/ui/commands/trustCommand.test.ts (3 tests) 21ms ✓ src/ui/components/messages/StatusMessages.test.tsx (1 test) 180ms ✓ src/acp-integration/runtimeOutputDirContext.test.ts (1 test) 5ms ✓ src/ui/commands/settingsCommand.test.ts (2 tests) 24ms ✓ src/ui/commands/deleteCommand.test.ts (2 tests) 15ms ✓ src/ui/commands/permissionsCommand.test.ts (3 tests) 12ms ✓ src/ui/commands/editorCommand.test.ts (2 tests) 6ms ✓ src/acp-integration/authMethods.test.ts (2 tests) 8ms ✓ src/ui/components/ExternalAuthProgress.test.tsx (1 test) 100ms ✓ src/utils/midTurnUserMessage.test.ts (3 tests) 4ms ✓ src/ui/components/VoiceIndicator.test.tsx (2 tests) 159ms ✓ src/commands/extensions/uninstall.test.ts (1 test) 13ms ✓ src/ui/commands/memoryCommand.test.ts (1 test) 9ms qwen serve: voice websocket accepted; activeSessions=1 qwen serve: voice websocket start received qwen serve: voice websocket stop received qwen serve: voice websocket finalized successfully qwen serve: voice websocket slot released; activeSessions=0 qwen serve: voice websocket accepted; activeSessions=1 qwen serve: voice websocket accepted; activeSessions=1 qwen serve: voice websocket start received qwen serve: voice websocket stop received qwen serve: voice websocket finalized successfully qwen serve: voice websocket slot released; activeSessions=0 qwen serve: voice websocket accepted; activeSessions=1 qwen serve: voice websocket start received qwen serve: voice websocket failed: No voice model is configured for this workspace. qwen serve: voice websocket slot released; activeSessions=0 qwen serve: voice websocket accepted; activeSessions=1 qwen serve: voice websocket start received qwen serve: voice websocket failed: Voice transcription failed. Please try again. qwen serve: voice websocket slot released; activeSessions=0 qwen serve: voice websocket accepted; activeSessions=1 qwen serve: voice websocket start received qwen serve: voice websocket stop received qwen serve: voice websocket failed: Voice transcription failed. Please try again. qwen serve: voice websocket slot released; activeSessions=0 qwen serve: voice websocket accepted; activeSessions=1 qwen serve: voice websocket start received qwen serve: voice websocket abort received qwen serve: voice websocket slot released; activeSessions=0 qwen serve: voice websocket accepted; activeSessions=1 qwen serve: voice websocket start received qwen serve: voice websocket abort received qwen serve: voice websocket slot released; activeSessions=0 qwen serve: voice websocket accepted; activeSessions=1 qwen serve: voice websocket stop received qwen serve: voice websocket abort received qwen serve: voice websocket slot released; activeSessions=0 qwen serve: voice websocket accepted; activeSessions=1 qwen serve: voice websocket start received qwen serve: voice websocket slot released; activeSessions=0 qwen serve: voice websocket accepted; activeSessions=1 qwen serve: voice websocket start received qwen serve: voice websocket stop received qwen serve: voice websocket failed: Voice session exceeded the time limit. qwen serve: voice websocket accepted; activeSessions=1 qwen serve: voice websocket start received qwen serve: voice websocket failed: Recording is too long for transcription (max ~5 minutes). qwen serve: voice websocket slot released; activeSessions=0 qwen serve: voice websocket accepted; activeSessions=1 qwen serve: voice websocket start received qwen serve: voice websocket failed: Queued voice audio exceeded the memory limit. qwen serve: voice websocket accepted; activeSessions=1 qwen serve: voice websocket start received qwen serve: voice websocket failed: Voice session exceeded the time limit. qwen serve: voice websocket slot released; activeSessions=0 qwen serve: voice websocket accepted; activeSessions=1 qwen serve: voice websocket accepted; activeSessions=2 qwen serve: voice websocket accepted; activeSessions=3 qwen serve: voice websocket accepted; activeSessions=4 qwen serve: voice websocket accepted; activeSessions=5 qwen serve: voice websocket accepted; activeSessions=6 qwen serve: voice websocket accepted; activeSessions=7 qwen serve: voice websocket accepted; activeSessions=8 qwen serve: voice websocket failed: Voice session exceeded the time limit. qwen serve: voice websocket slot released; activeSessions=7 qwen serve: voice websocket failed: Voice session exceeded the time limit. qwen serve: voice websocket slot released; activeSessions=6 qwen serve: voice websocket failed: Voice session exceeded the time limit. qwen serve: voice websocket slot released; activeSessions=5 qwen serve: voice websocket failed: Voice session exceeded the time limit. qwen serve: voice websocket slot released; activeSessions=4 qwen serve: voice websocket failed: Voice session exceeded the time limit. qwen serve: voice websocket slot released; activeSessions=3 qwen serve: voice websocket failed: Voice session exceeded the time limit. qwen serve: voice websocket slot released; activeSessions=2 qwen serve: voice websocket failed: Voice session exceeded the time limit. qwen serve: voice websocket slot released; activeSessions=1 qwen serve: voice websocket failed: Voice session exceeded the time limit. qwen serve: voice websocket slot released; activeSessions=0 qwen serve: voice websocket accepted; activeSessions=1 qwen serve: voice websocket accepted; activeSessions=1 qwen serve: voice websocket accepted; activeSessions=2 qwen serve: voice websocket accepted; activeSessions=3 qwen serve: voice websocket accepted; activeSessions=4 qwen serve: voice websocket accepted; activeSessions=5 qwen serve: voice websocket accepted; activeSessions=6 qwen serve: voice websocket accepted; activeSessions=7 qwen serve: voice websocket accepted; activeSessions=8 qwen serve: voice websocket rejected; activeSessions=8 qwen serve: voice websocket slot released; activeSessions=7 qwen serve: voice websocket accepted; activeSessions=8 ✓ src/serve/voice/voice-ws.test.ts (16 tests) 23ms ⎯⎯⎯⎯⎯⎯ Failed Tests 12 ⎯⎯⎯⎯⎯⎯⎯ FAIL src/ui/auth/AuthDialog.test.tsx > AuthDialog > should go back from Coding Plan region selection to Alibaba ModelStudio AssertionError: expected '┌────────────────────────────────────…' to contain 'Alibaba ModelStudio · Step 1/3 · Regi…' - Expected + Received - Alibaba ModelStudio · Step 1/3 · Region + ┌──────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ │ + │ Alibaba ModelStudio · Access Method │ + │ │ + │ › Coding Plan │ + │ For individual developers · Weekly quota included │ + │ │ + │ Token Plan │ + │ For teams and companies · Usage-based billing with dedicated endpoint │ + │ │ + │ Standard API Key │ + │ Connect with an existing ModelStudio API key │ + │ │ + │ Enter to select, ↑↓ to navigate, Esc to go back │ + │ │ + └──────────────────────────────────────────────────────────────────────────────────────────────────┘ ❯ vi.waitFor.timeout src/ui/auth/AuthDialog.test.tsx:155:27 153| await vi.waitFor( 154| () => { 155| expect(lastFrame()).toContain(expectedText); | ^ 156| }, 157| { timeout: WAIT_FOR_TIMEOUT }, ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/12]⎯ FAIL src/ui/auth/AuthDialog.test.tsx > AuthDialog > should go back from third-party provider API key input to provider list AssertionError: expected '┌────────────────────────────────────…' to contain 'Third-party Providers · Provider' - Expected + Received - Third-party Providers · Provider + ┌──────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ │ + │ Connect a Provider │ + │ │ + │ Alibaba ModelStudio │ + │ Official recommended setup: Coding Plan, Token Plan, or Standard API Key │ + │ │ + │ › Third-party Providers │ + │ Choose a built-in provider and connect with an API key │ + │ │ + │ Custom Provider │ + │ Manually connect a local server, proxy, or unsupported provider │ + │ │ + │ ──────────────────────────────────────────────────────────────────────────────── │ + │ │ + │ Terms of Services and Privacy Notice: │ + │ https://qwenlm.github.io/qwen-code-docs/en/users/support/tos-privacy/ │ + │ │ + └──────────────────────────────────────────────────────────────────────────────────────────────────┘ ❯ vi.waitFor.timeout src/ui/auth/AuthDialog.test.tsx:155:27 153| await vi.waitFor( 154| () => { 155| expect(lastFrame()).toContain(expectedText); | ^ 156| }, 157| { timeout: WAIT_FOR_TIMEOUT }, ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/12]⎯ FAIL src/ui/auth/AuthDialog.test.tsx > AuthDialog > drives API key provider steps from endpoint options metadata AssertionError: expected '┌────────────────────────────────────…' to contain 'DeepSeek API Key · Step 1/2 · API Key' - Expected + Received - DeepSeek API Key · Step 1/2 · API Key + ┌──────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ │ + │ Third-party Providers · Provider │ + │ │ + │ › DeepSeek API Key │ + │ Quick setup for DeepSeek (deepseek-v4-flash, deepseek-v4-pro) │ + │ │ + │ MiniMax API Key │ + │ Quick setup for MiniMax models │ + │ │ + │ Z.AI API Key │ + │ Quick setup for Z.AI models │ + │ │ + │ Idealab API Key │ + │ Alibaba internal LLM service (Qwen3.6-Plus-DogFooding, DeepSeek V4, Kimi K2.6) │ + │ │ + │ ModelScope API Key │ + │ Quick setup for ModelScope API Inference │ + │ │ + │ OpenRouter │ + │ Connect with an OpenRouter API key (get one from openrouter.ai/keys) │ + │ │ + │ Requesty │ + │ Connect with a Requesty API key (get one from app.requesty.ai/api-keys) │ + │ │ + │ Enter to select, ↑↓ to navigate, Esc to go back │ + │ │ + └──────────────────────────────────────────────────────────────────────────────────────────────────┘ ❯ vi.waitFor.timeout src/ui/auth/AuthDialog.test.tsx:155:27 153| await vi.waitFor( 154| () => { 155| expect(lastFrame()).toContain(expectedText); | ^ 156| }, 157| { timeout: WAIT_FOR_TIMEOUT }, ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/12]⎯ FAIL src/ui/auth/AuthDialog.test.tsx > AuthDialog > should submit Token Plan through the shared subscription handler AssertionError: expected '┌────────────────────────────────────…' to contain 'Alibaba ModelStudio · Step 1/2 · API …' - Expected + Received - Alibaba ModelStudio · Step 1/2 · API Key + ┌──────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ │ + │ Alibaba ModelStudio · Access Method │ + │ │ + │ Coding Plan │ + │ For individual developers · Weekly quota included │ + │ │ + │ › Token Plan │ + │ For teams and companies · Usage-based billing with dedicated endpoint │ + │ │ + │ Standard API Key │ + │ Connect with an existing ModelStudio API key │ + │ │ + │ Enter to select, ↑↓ to navigate, Esc to go back │ + │ │ + └──────────────────────────────────────────────────────────────────────────────────────────────────┘ ❯ vi.waitFor.timeout src/ui/auth/AuthDialog.test.tsx:155:27 153| await vi.waitFor( 154| () => { 155| expect(lastFrame()).toContain(expectedText); | ^ 156| }, 157| { timeout: WAIT_FOR_TIMEOUT }, ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/12]⎯ FAIL src/ui/auth/AuthDialog.test.tsx > AuthDialog > should pre-fill the Model IDs step with previously saved custom model IDs FAIL src/ui/auth/AuthDialog.test.tsx > AuthDialog > should return from Token Plan API key input to Token Plan selection AssertionError: expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Token Plan/ - Expected: /›\s*(?:\d+\.\s*)?Token Plan/ + Received: "┌──────────────────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ Alibaba ModelStudio · Access Method │ │ │ │ › Coding Plan │ │ For individual developers · Weekly quota included │ │ │ │ Token Plan │ │ For teams and companies · Usage-based billing with dedicated endpoint │ │ │ │ Standard API Key │ │ Connect with an existing ModelStudio API key │ │ │ │ Enter to select, ↑↓ to navigate, Esc to go back │ │ │ └──────────────────────────────────────────────────────────────────────────────────────────────────┘" ❯ expectSelectedOption src/ui/auth/AuthDialog.test.tsx:130:17 128| 129| const expectSelectedOption = (frame: string | undefined, label: string… 130| expect(frame).toMatch( | ^ 131| new RegExp(`›\\s*(?:\\d+\\.\\s*)?${escapeRegExp(label)}`), 132| ); ❯ vi.waitFor.timeout src/ui/auth/AuthDialog.test.tsx:141:7 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/12]⎯ FAIL src/ui/auth/AuthDialog.test.tsx > AuthDialog Custom API Key Wizard > navigates to protocol selection when Custom API Key is selected FAIL src/ui/auth/AuthDialog.test.tsx > AuthDialog Custom API Key Wizard > navigates to base URL input after selecting a protocol FAIL src/ui/auth/AuthDialog.test.tsx > AuthDialog Custom API Key Wizard > shows review screen with JSON after entering model IDs FAIL src/ui/auth/AuthDialog.test.tsx > AuthDialog Custom API Key Wizard > calls handleProviderSubmit on Enter in review view FAIL src/ui/auth/AuthDialog.test.tsx > AuthDialog Custom API Key Wizard > shows advanced config screen after entering model IDs FAIL src/ui/auth/AuthDialog.test.tsx > AuthDialog Custom API Key Wizard > passes generationConfig when advanced options are toggled AssertionError: expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Custom Provider/ - Expected: /›\s*(?:\d+\.\s*)?Custom Provider/ + Received: "┌──────────────────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ Connect a Provider │ │ │ │ Alibaba ModelStudio │ │ Official recommended setup: Coding Plan, Token Plan, or Standard API Key │ │ │ │ › Third-party Providers │ │ Choose a built-in provider and connect with an API key │ │ │ │ Custom Provider │ │ Manually connect a local server, proxy, or unsupported provider │ │ │ │ ──────────────────────────────────────────────────────────────────────────────── │ │ │ │ Terms of Services and Privacy Notice: │ │ https://qwenlm.github.io/qwen-code-docs/en/users/support/tos-privacy/ │ │ │ └──────────────────────────────────────────────────────────────────────────────────────────────────┘" ❯ expectSelectedOption src/ui/auth/AuthDialog.test.tsx:130:17 128| 129| const expectSelectedOption = (frame: string | undefined, label: string… 130| expect(frame).toMatch( | ^ 131| new RegExp(`›\\s*(?:\\d+\\.\\s*)?${escapeRegExp(label)}`), 132| ); ❯ vi.waitFor.timeout src/ui/auth/AuthDialog.test.tsx:141:7 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[6/12]⎯ Test Files 1 failed | 486 passed (487) Tests 12 failed | 9487 passed | 2 skipped (9501) Start at 12:21:02 Duration 278.12s (transform 200.56s, setup 113.75s, collect 3648.43s, tests 609.01s, environment 448.93s, prepare 99.21s) JUNIT report written to /startdir/src/qwen-code/packages/cli/junit.xml npm error Lifecycle script `test` failed with error: npm error code 1 npm error path /startdir/src/qwen-code/packages/cli npm error workspace @qwen-code/qwen-code@0.19.2 npm error location /startdir/src/qwen-code/packages/cli npm error command failed npm error command sh -c vitest run '--exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts' > @qwen-code/qwen-code-core@0.19.2 test > vitest run --exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts RUN v3.2.4 /startdir/src/qwen-code/packages/core Coverage enabled with v8 ✓ src/telemetry/session-tracing.test.ts (120 tests) 111ms ✓ src/utils/schemaValidator.test.ts (132 tests) 545ms ✓ src/services/shellExecutionService.test.ts (100 tests) 641ms ✓ src/services/sessionService.test.ts (66 tests) 385ms ✓ src/hooks/hookEventHandler.test.ts (125 tests) 311ms +----------------- Qwen OAuth Device Authorization ------------------+ | | | Please visit the following URL in your browser to authorize: | | | | https://chat.qwen.ai/device?code=TEST123 | | | | Waiting for authorization to complete... | | | +--------------------------------------------------------------------+ +----------------- Qwen OAuth Device Authorization ------------------+ | | | Please visit the following URL in your browser to authorize: | | | | https://chat.qwen.ai/device?code=TEST123 | | | | Waiting for authorization to complete... | | | +--------------------------------------------------------------------+ +----------------- Qwen OAuth Device Authorization ------------------+ | | | Please visit the following URL in your browser to authorize: | | | | https://chat.qwen.ai/device?code=TEST123 | | | | Waiting for authorization to complete... | | | +--------------------------------------------------------------------+ +----------------- Qwen OAuth Device Authorization ------------------+ | | | Please visit the following URL in your browser to authorize: | | | | https://chat.qwen.ai/device?code=TEST123 | | | | Waiting for authorization to complete... | | | +--------------------------------------------------------------------+ +----------------- Qwen OAuth Device Authorization ------------------+ | | | Please visit the following URL in your browser to authorize: | | | | https://chat.qwen.ai/device?code=TEST123 | | | | Waiting for authorization to complete... | | | +--------------------------------------------------------------------+ ✓ src/qwen/qwenOAuth2.test.ts (86 tests) 2147ms ✓ getQwenOAuthClient - Enhanced Error Scenarios > should handle different authentication failure reasons - timeout 2046ms ✓ src/agents/background-tasks.test.ts (88 tests) 193ms ✓ src/core/loggingContentGenerator/loggingContentGenerator.test.ts (49 tests) 104ms ✓ src/models/modelsConfig.test.ts (73 tests) 78ms ✓ src/core/openaiContentGenerator/pipeline.test.ts (58 tests) 122ms ✓ src/services/memoryPressureMonitor.test.ts (72 tests) 199ms ✓ src/utils/fileUtils.test.ts (98 tests) 317ms ✓ src/services/cronScheduler.test.ts (89 tests) 1823ms ✓ CronScheduler > durable ownership > reloads durable tasks when the file changes on disk 326ms ✓ src/utils/retry.test.ts (84 tests) 170ms ✓ src/tools/skill.test.ts (72 tests) 165ms ✓ src/tools/ripGrep.test.ts (75 tests) 660ms ✓ src/utils/atomicFileWrite.test.ts (81 tests) 215ms ✓ src/hooks/hookSystem.test.ts (88 tests) 314ms ✓ src/core/openaiContentGenerator/converter.test.ts (134 tests) 119ms ✓ src/services/chatCompressionService.test.ts (71 tests) 179ms ✓ src/permissions/permission-manager.test.ts (247 tests) 257ms ✓ src/agents/background-agent-resume.test.ts (28 tests) 620ms ✓ src/tools/mcp-transport-pool.test.ts (34 tests) 429ms qwen serve: MCP server 'c' refused (budget exhausted, budget=2, mode=enforce) qwen serve: MCP server 'd' refused (budget exhausted, budget=2, mode=enforce) qwen serve: MCP server 'mike' refused (budget exhausted, budget=2, mode=enforce) qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce) qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce) qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce) qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce) qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce) qwen serve: ignoring invalid QWEN_SERVE_MCP_CLIENT_BUDGET='-3' (expected positive integer); MCP budget enforcement disabled for this child. qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce) qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce) qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce) qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce) qwen serve: QWEN_SERVE_MCP_BUDGET_MODE=enforce requires QWEN_SERVE_MCP_CLIENT_BUDGET=N; downgrading to off. Set both env vars to enable MCP guardrail enforcement. qwen serve: MCP server 'third' refused (budget exhausted, budget=2, mode=enforce) qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce) qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce) qwen serve: QWEN_SERVE_MCP_BUDGET_MODE=warn requires QWEN_SERVE_MCP_CLIENT_BUDGET=N; downgrading to off. Set both env vars to enable MCP guardrail enforcement. qwen serve: McpClientManager constructed with budgetMode=enforce but no clientBudget; downgrading to off. qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce) qwen serve: MCP server 'c' refused (budget exhausted, budget=1, mode=enforce) qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce) qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce) qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce) qwen serve: MCP server 'c' refused (budget exhausted, budget=1, mode=enforce) qwen serve: MCP server 'd' refused (budget exhausted, budget=1, mode=enforce) qwen serve: MCP server 'e' refused (budget exhausted, budget=1, mode=enforce) qwen serve: MCP server 'b' refused (budget exhausted, budget=1, mode=enforce) qwen serve: MCP server 'c' refused (budget exhausted, budget=1, mode=enforce) qwen serve: MCP server 'd' refused (budget exhausted, budget=1, mode=enforce) ✓ src/tools/edit.test.ts (76 tests) 545ms ✓ src/tools/mcp-client-manager.test.ts (102 tests) 771ms ✓ src/tools/mcp-client.test.ts (89 tests) 944ms ✓ src/tools/agent/agent.test.ts (111 tests) 1370ms ✓ AgentTool > AgentToolInvocation > passes custom ignore files into worktree isolation file service 504ms ✓ src/skills/skill-manager.test.ts (73 tests) 314ms ✓ src/subagents/subagent-manager.test.ts (113 tests) 1091ms ✓ SubagentManager > Runtime Configuration Methods > createAgentHeadless model override > should create a new ContentGenerator for bare model IDs 347ms ✓ src/agents/runtime/workflow-orchestrator.test.ts (115 tests) 637ms ✓ src/core/coreToolScheduler.test.ts (208 tests) 1691ms ✓ src/config/config.test.ts (251 tests) 2427ms ✓ Server Config (config.ts) > MemoryPressureMonitor isolation > returns a distinct monitor for child Configs created via Object.create 901ms ✓ src/services/postCompactAttachments.test.ts (67 tests) 165ms ✓ src/core/anthropicContentGenerator/converter.test.ts (51 tests) 67ms ✓ src/mcp/oauth-provider.test.ts (27 tests) 366ms ✓ src/core/anthropicContentGenerator/anthropicContentGenerator.test.ts (69 tests) 16288ms ✓ AnthropicContentGenerator > uses claude-cli identity (User-Agent + x-app + Bearer auth) for non-Anthropic baseURLs 2307ms ✓ AnthropicContentGenerator > per-request anthropic-beta header > does not leak customHeaders[anthropic-beta] (any casing) into defaultHeaders 320ms ✓ AnthropicContentGenerator > DeepSeek anthropic-compatible provider > does not inject when request sets thinkingConfig.includeThoughts=false 1012ms ✓ AnthropicContentGenerator > countTokens > counts tokens using the request tokenizer 1095ms ✓ AnthropicContentGenerator > countTokens > falls back to character approximation when tokenizer throws 702ms ✓ AnthropicContentGenerator > generateContentStream > redacts proxy credentials from stream creation errors 505ms ✓ src/services/loopDetectionService.test.ts (62 tests) 735ms ✓ LoopDetectionService > Content Loop Detection > should not detect a loop for random content 421ms ✓ src/telemetry/sdk.test.ts (59 tests) 964ms ✓ src/tools/read-file.test.ts (62 tests) 636ms ✓ src/tools/shell.test.ts (241 tests) 5222ms ✓ src/agents/runtime/agent-headless.test.ts (37 tests) 5632ms ✓ subagent.ts > AgentHeadless > create (Tool Validation) > should create a AgentHeadless successfully with minimal config 1991ms ✓ src/services/fileHistoryService.test.ts (51 tests) 426ms ✓ src/core/openaiContentGenerator/provider/dashscope.test.ts (70 tests) 132ms ✓ src/services/microcompaction/microcompact.test.ts (56 tests) 31ms ✓ src/telemetry/log-to-span-processor.test.ts (51 tests) 78ms ✓ src/lsp/NativeLspService.test.ts (18 tests) 109ms ✓ src/tools/lsp.test.ts (70 tests) 877ms ✓ src/utils/filesearch/crawler.test.ts (48 tests) 3695ms ✓ crawler > two-tier strategy: git ls-files + ripgrep fallback > should recurse into tracked submodules on the git path 414ms ✓ src/core/logger.test.ts (52 tests) 443ms ✓ src/utils/memoryDiscovery.test.ts (38 tests) 259ms ✓ src/hooks/hookAggregator.test.ts (49 tests) 23ms ✓ src/utils/memoryImportProcessor.test.ts (31 tests) 120ms ✓ src/utils/gitDiff.test.ts (58 tests) 4608ms ✓ fetchGitDiff > marks oversized untracked text files as truncated 353ms ✓ fetchGitDiff fast path with untracked-only workspaces > takes the >MAX_FILES_FOR_DETAILS short-circuit when shortstat is empty 325ms ✓ fetchGitDiff untracked counting > line-counts every untracked file in the slow path, not just the first MAX_FILES 448ms ✓ src/hooks/hookPlanner.test.ts (64 tests) 72ms ✓ src/utils/editor.test.ts (152 tests) 52ms ✓ src/extension/github.test.ts (64 tests) 284ms ✓ src/core/toolHookTriggers.test.ts (58 tests) 117ms ✓ src/telemetry/uiTelemetry.test.ts (38 tests) 125ms ✓ src/services/monitorRegistry.test.ts (56 tests) 165ms ✓ src/qwen/qwenContentGenerator.test.ts (44 tests) 343ms ✓ src/ide/ide-client.test.ts (33 tests) 201ms ✓ src/qwen/sharedTokenManager.test.ts (32 tests) 393ms ✓ src/agents/team/tasks.test.ts (53 tests) 374ms ✓ src/services/fileReadCache.test.ts (53 tests) 94ms ✓ src/telemetry/loggers.test.ts (56 tests) 126ms ✓ src/extension/claude-converter.test.ts (50 tests) 214ms ✓ src/tools/mcp-tool.test.ts (54 tests) 319ms ✓ src/tools/write-file.test.ts (47 tests) 377ms ✓ src/extension/extensionManager.test.ts (55 tests) 294ms ✓ src/memory/manager.test.ts (37 tests) 179ms ✓ src/tools/monitor.test.ts (73 tests) 119ms ✓ src/utils/paths.test.ts (117 tests | 1 skipped) 68ms ✓ src/services/commitAttribution.test.ts (58 tests) 71ms ✓ src/skills/skill-load.test.ts (68 tests) 120ms ✓ src/permissions/autoMode.test.ts (83 tests) 67ms ✓ src/hooks/hookRegistry.test.ts (36 tests) 126ms ✓ src/core/openaiContentGenerator/streamingToolCallParser.test.ts (60 tests) 27ms ✓ src/utils/sessionStorageUtils.test.ts (53 tests) 53ms ✓ src/models/modelRegistry.test.ts (56 tests) 52ms ✓ src/core/baseLlmClient.test.ts (35 tests) 88ms ✓ src/services/backgroundShellRegistry.test.ts (45 tests) 42ms ✓ src/tools/todoWrite.test.ts (28 tests) 169ms ✓ src/utils/environmentContext.test.ts (44 tests) 151ms ✓ src/models/modelConfigResolver.test.ts (51 tests) 65ms ✓ src/utils/shell-utils.test.ts (138 tests) 69ms ✓ src/agents/team/test-utils/coordination-harness.test.ts (28 tests) 561ms ✓ src/core/prompts.test.ts (58 tests) 51ms ✓ src/services/chatRecordingService.test.ts (34 tests) 297ms ✓ src/telemetry/qwen-logger/qwen-logger.test.ts (36 tests) 98ms ✓ src/extension/extensionSettings.test.ts (23 tests) 247ms ✓ src/core/geminiChat.test.ts (192 tests) 17284ms ✓ GeminiChat > should correctly retry and append to an existing history mid-conversation 2198ms ✓ GeminiChat > should retry if the model returns a completely empty stream (no chunks) 2172ms ✓ GeminiChat > should discard valid partial content from a failed attempt upon retry 2085ms ✓ src/permissions/shell-semantics.test.ts (103 tests) 95ms ✓ src/tools/tool-registry.test.ts (34 tests) 307ms ✓ src/agents/backends/InProcessBackend.test.ts (34 tests) 264ms ✓ src/lsp/NativeLspService.integration.test.ts (30 tests) 31ms ✓ src/config/storage.test.ts (63 tests) 65ms ✓ src/core/turn.test.ts (25 tests) 32ms ✓ src/utils/openaiLogger.test.ts (38 tests) 285ms ✓ src/utils/truncation.test.ts (28 tests) 61ms ✓ src/services/gitWorktreeService.test.ts (27 tests) 27ms ✓ src/hooks/hookRunner.test.ts (36 tests) 241ms ✓ src/tools/workflow/workflow.test.ts (34 tests) 394ms ✓ src/utils/filesearch/fileSearch.test.ts (29 tests) 1182ms ✓ src/utils/runtimeFetchOptions.test.ts (44 tests) 36ms ✓ src/utils/notebook.test.ts (30 tests) 74ms ✓ src/services/sessionService.rename.test.ts (18 tests) 76ms ✓ src/utils/memoryDiagnostics.test.ts (12 tests) 291ms ✓ src/utils/workspaceContext.test.ts (45 tests) 87ms ✓ src/tools/grep.test.ts (51 tests) 4039ms ✓ GrepTool > Result limiting > should show all results when no limit is specified 620ms ✓ GrepTool > Result limiting > should respect custom limit parameter 819ms ✓ GrepTool > Result limiting > should not show truncation warning when all results fit 751ms ✓ src/utils/pdf.test.ts (34 tests) 37ms ✓ src/services/fileSystemService.test.ts (43 tests) 72ms [ToolSearch] setTools() failed while revealing deferred tools: chat not initialised [ToolSearch] setTools() failed while revealing deferred tools: chat not initialised [ToolSearch] ensureTool failed for "bravo": mid-batch failure ✓ src/hooks/promptHookRunner.test.ts (25 tests) 293ms ✓ src/tools/notebook-edit.test.ts (29 tests) 375ms ✓ src/utils/gitDirect.test.ts (68 tests) 126ms ✓ src/tools/glob.test.ts (48 tests) 4618ms ✓ src/agents/backends/ITermBackend.test.ts (46 tests) 69ms ✓ src/tools/tool-search.test.ts (33 tests) 269ms ✓ src/services/compactionInputSlimming.test.ts (35 tests) 12ms ✓ src/core/openaiContentGenerator/provider/default.test.ts (26 tests) 30ms ✓ src/memory/extract.test.ts (14 tests) 250ms ✓ src/agents/runtime/workflow-sandbox.test.ts (109 tests) 30942ms ✓ createWorkflowSandbox security > synchronous infinite loop is aborted by vm timeout 30104ms ✓ src/utils/secure-browser-launcher.test.ts (31 tests) 75ms ✓ src/providers/__tests__/install.test.ts (20 tests) 66ms ✓ src/goals/goalHook.test.ts (22 tests) 49ms ✓ src/services/visionBridge/vision-bridge-service.test.ts (30 tests) 33ms ✓ src/tools/computer-use/tool.test.ts (40 tests) 148ms ✓ src/agents/agent-transcript.test.ts (25 tests) 55ms ✓ src/utils/rulesDiscovery.test.ts (34 tests) 146ms ✓ src/services/tokenUsageService.test.ts (18 tests) 546ms ✓ src/hooks/sessionHooksManager.test.ts (32 tests) 22ms ✓ src/telemetry/metrics.test.ts (40 tests) 2733ms ✓ src/agents/arena/ArenaAgentClient.test.ts (21 tests) 66ms ✓ src/telemetry/tracer.test.ts (31 tests) 47ms ✓ src/utils/shellAstParser.test.ts (148 tests) 366ms ✓ src/mcp/oauth-utils.test.ts (33 tests) 65ms ✓ src/utils/sideQuery.test.ts (21 tests) 175ms ✓ src/agents/backends/TmuxBackend.test.ts (27 tests) 56ms ✓ src/tools/ls.test.ts (30 tests) 253ms ✓ src/tools/exitPlanMode.test.ts (33 tests) 30ms ✓ src/utils/systemEncoding.test.ts (41 tests) 40ms ✓ src/agents/workflow-run-registry.test.ts (32 tests) 24ms ✓ src/core/openaiContentGenerator/provider/deepseek.test.ts (25 tests) 29ms ✓ src/extension/variables.test.ts (20 tests) 70ms ✓ src/agents/runtime/agent-interactive.test.ts (22 tests) 791ms ✓ src/core/client.test.ts (206 tests) 26742ms ✓ Gemini Client (client.ts) > sendMessageStream > should stop infinite loop after MAX_TURNS when nextSpeaker always returns model 403ms ✓ Gemini Client (client.ts) > sendMessageStream > should respect MAX_TURNS limit even when turns parameter is set to a large value 372ms ✓ Gemini Client (client.ts) > sendMessageStream > IDE context with pending tool calls > should send the latest IDE context on the next message after a skipped context 359ms ✓ Gemini Client (client.ts) > sendMessageStream > hooks fast-path optimization > emits active_goal null when the Stop hook clears the goal 419ms ✓ Gemini Client (client.ts) > sendMessageStream > hooks fast-path optimization > emits active_goal null when the Stop hook clears the goal before aborting 383ms ✓ Gemini Client (client.ts) > sendMessageStream > hooks fast-path optimization > emits active_goal changes when aborting before Stop hook continuation 335ms ✓ Gemini Client (client.ts) > generateContent with fast model > should resolve per-model config and fall back when createContentGenerator fails 520ms ✓ Gemini Client (client.ts) > generateContent with fast model > should resolve model across authTypes when main authType misses 324ms ✓ Gemini Client (client.ts) > drainSkillAndCommandReminders > drain with a genuinely new skill emits a reminder 381ms ✓ Gemini Client (client.ts) > drainSkillAndCommandReminders > removed skill prunes its key so re-adding re-announces 334ms ✓ Gemini Client (client.ts) > drainSkillAndCommandReminders > returns early when Skill tool is not registered 530ms ✓ Gemini Client (client.ts) > drainSkillAndCommandReminders > returns early and logs when collectAvailableSkillEntries throws 350ms ✓ Gemini Client (client.ts) > #5147 shutdown gate > is idempotent when called multiple times 309ms ✓ src/services/sleepInhibitor.test.ts (21 tests) 818ms ✓ src/services/usageHistoryService.test.ts (13 tests) 49ms ✓ src/goals/goalJudge.test.ts (20 tests) 38ms ✓ src/tools/task-stop.test.ts (14 tests) 167ms ✓ src/utils/pathReader.test.ts (17 tests) 193ms ✓ src/core/tokenLimits.test.ts (59 tests) 14ms ✓ src/mcp/oauth-token-storage.test.ts (31 tests) 3203ms ✓ MCPOAuthTokenStorage > with encrypted flag false > saveToken > should warn on a successful retry after a plaintext write fails 318ms ✓ src/utils/readManyFiles.test.ts (19 tests) 81ms ✓ src/agents/runtime/workflow-saved.test.ts (33 tests) 138ms ✓ src/hooks/asyncHookRegistry.test.ts (20 tests) 40ms ✓ src/mcp/token-storage/file-token-storage.test.ts (25 tests) 1993ms ✓ src/memory/writeContextFile.test.ts (16 tests) 94ms ✓ src/services/toolUseSummary.test.ts (34 tests) 103ms ✓ src/extension/marketplace.test.ts (32 tests) 90ms ✓ src/agents/team/mailbox.test.ts (18 tests) 166ms ✓ src/tools/team-lifecycle.test.ts (5 tests) 745ms ✓ Team lifecycle E2E > full lifecycle: create → tasks → messages → list → update → delete 725ms ✓ src/telemetry/config.test.ts (36 tests) 36ms ✓ src/agents/team/teamHelpers.test.ts (45 tests) 153ms ✓ src/utils/abortController.test.ts (26 tests | 1 skipped) 39ms ✓ src/subagents/validation.test.ts (41 tests) 22ms ✓ src/permissions/classifier-transcript.test.ts (14 tests) 17ms ✓ src/utils/rateLimit.test.ts (35 tests) 32ms ✓ src/telemetry/detailed-span-attributes.test.ts (28 tests) 35ms ✓ src/tools/askUserQuestion.test.ts (23 tests) 25ms ✓ src/hooks/functionHookRunner.test.ts (20 tests) 118ms ✓ src/services/chatRecordingService.autoTitle.test.ts (17 tests) 24ms ✓ src/permissions/classifier.test.ts (23 tests) 38ms ✓ src/ide/ideContext.test.ts (23 tests) 37ms ✓ src/core/geminiContentGenerator/geminiContentGenerator.test.ts (12 tests) 28ms ✓ src/agents/arena/ArenaManager.test.ts (25 tests) 3635ms ✓ ArenaManager > backend initialization > should emit SESSION_UPDATE with type warning when backend detection returns warning 514ms ✓ ArenaManager > chat history forwarding > should pass chatHistory to backend spawnAgent calls 512ms ✓ ArenaManager > chat history forwarding > should pass undefined chatHistory when not provided 508ms ✓ ArenaManager > active session lifecycle > collects diff summaries and fallback approach summaries 1015ms ✓ ArenaManager > active session lifecycle > cancel should stop backend and move session to CANCELLED 510ms ✓ ArenaManager > active session lifecycle > cleanup should release backend and worktree resources after start 505ms ✓ src/services/gitWorktreeService.symlinks.integ.test.ts (15 tests) 4772ms ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > symlinks a configured directory into the new worktree 389ms ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > silently skips an existing destination (no overwrite) 316ms ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > rejects absolute paths 424ms ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > rejects paths that traverse outside the repo root 457ms ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > rejects paths inside .git (security guard) 413ms ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > rejects paths inside .qwen (security guard) 396ms ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > works when the repo path itself contains a symlink boundary (round-7 self-inflicted regression guard) 568ms ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > handles multiple entries — some present, some missing 304ms ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > is a no-op when symlinkDirectories is omitted or empty 355ms ✓ src/utils/sedEditParser.test.ts (34 tests) 21ms ✓ src/tools/computer-use/client.test.ts (27 tests) 4044ms ✓ callTool reconnect path > succeeds on a later attempt after backing off past an earlier transport failure 1002ms ✓ callTool reconnect path > exhausts exactly 3 reconnect attempts on persistent transport errors, then re-throws the last 3010ms ✓ src/utils/toolResultDisplayCompaction.test.ts (14 tests) 33ms ✓ src/utils/partUtils.test.ts (43 tests) 18ms ✓ src/core/__tests__/openaiTimeoutHandling.test.ts (12 tests) 58ms ✓ src/utils/forkedAgent.cache.test.ts (12 tests) 14ms ✓ src/utils/retryErrorClassification.test.ts (27 tests) 26ms ✓ src/services/chatRecordingService.customTitle.test.ts (13 tests) 28ms ✓ src/utils/forkedAgent.agent.test.ts (7 tests) 37ms ✓ src/services/cronTasksFile.test.ts (22 tests) 222ms ✓ src/followup/followupState.test.ts (18 tests) 24ms ✓ src/telemetry/daemon-metrics.test.ts (18 tests) 869ms ✓ src/utils/jsonl-utils.test.ts (28 tests) 106ms ✓ src/tools/send-message.test.ts (16 tests) 263ms ✓ src/core/openaiContentGenerator/openaiContentGenerator.test.ts (14 tests) 71ms ✓ src/memory/skillReviewNudge.integration.test.ts (18 tests) 70ms ✓ src/core/openaiContentGenerator/errorHandler.test.ts (36 tests) 83ms ✓ src/tools/artifact/artifact-tool.test.ts (18 tests) 643ms ✓ ArtifactTool > enforces the size cap 478ms ✓ src/utils/ignorePatterns.test.ts (29 tests) 47ms ✓ src/agents/team/test-utils/fake-agent.test.ts (28 tests) 21ms ✓ src/tools/session-mcp-view.test.ts (17 tests) 51ms ↓ src/agents/runtime/workflow-p4a-meta-live.live.test.ts (6 tests | 6 skipped) ✓ src/agents/runtime/agent-core.test.ts (10 tests) 15ms ✓ src/utils/request-tokenizer/imageTokenizer.test.ts (18 tests) 35ms ✓ src/agents/runtime/agent-statistics.test.ts (32 tests) 136ms ✓ src/permissions/dangerousRules.test.ts (110 tests) 57ms ✓ src/permissions/classifier-prompts/system-prompt.test.ts (21 tests) 15ms ✓ src/memory/userMemory.test.ts (13 tests) 39ms ✓ src/mcp/token-storage/keychain-token-storage.test.ts (24 tests) 3530ms ✓ src/utils/debugLogger.test.ts (21 tests) 119ms ✓ src/services/sessionTitle.test.ts (15 tests) 163ms ✓ src/memory/skillReviewAgentPlanner.test.ts (19 tests) 65ms ✓ src/tools/agent/agent-override.test.ts (9 tests) 210ms ✓ src/permissions/destructive-commands.test.ts (31 tests) 10ms ✓ src/mcp/token-storage/hybrid-token-storage.test.ts (13 tests) 58ms ✓ src/utils/yaml-parser.test.ts (38 tests) 161ms ✓ src/core/openaiContentGenerator/pipeline.concurrent.test.ts (2 tests) 80ms ✓ src/utils/getFolderStructure.test.ts (15 tests) 72ms ✓ src/services/memoryDiagnosticsDumper.test.ts (11 tests) 54ms ✓ src/utils/request-tokenizer/textTokenizer.test.ts (31 tests) 128ms ✓ src/tools/read-mcp-resource.test.ts (15 tests) 139ms ✓ src/tools/web-fetch.test.ts (18 tests) 241ms ✓ src/agents/backends/iterm-it2.test.ts (19 tests) 61ms ✓ src/tools/modifiable-tool.test.ts (11 tests) 112ms ✓ src/tools/enter-worktree.test.ts (26 tests) 133ms ✓ src/utils/generateContentResponseUtilities.test.ts (29 tests) 16ms ✓ src/services/worktreeSessionService.test.ts (19 tests) 147ms ✓ src/utils/filesearch/ignore.test.ts (20 tests) 70ms ✓ src/core/openaiContentGenerator/taggedThinkingParser.test.ts (27 tests) 26ms ✓ src/agents/runtime/workflow-stall.test.ts (19 tests) 49ms ✓ src/utils/filesearch/fzfWorkerHandle.test.ts (13 tests) 685ms ✓ src/subagents/agent-frontmatter-schema.test.ts (26 tests) 20ms ✓ src/services/sessionService.corruption.test.ts (11 tests) 45ms ✓ src/permissions/denialTracking.test.ts (25 tests) 12ms ✓ src/confirmation-bus/message-bus.test.ts (15 tests) 83ms ✓ src/telemetry/resource-attributes.test.ts (35 tests) 42ms ✓ src/extension/npm.test.ts (26 tests) 45ms ✓ src/output/json-formatter.test.ts (15 tests) 18ms ✓ src/telemetry/daemon-tracing.test.ts (10 tests) 39ms ✓ src/tools/artifact/oss-publisher.test.ts (16 tests) 55ms ✓ src/utils/terminalSerializer.test.ts (20 tests) 181ms ✓ src/tools/computer-use/bootstrap.test.ts (13 tests) 147ms ✓ src/hooks/httpHookRunner.test.ts (10 tests) 77ms ✓ src/plan-gate/planApprovalGate.test.ts (22 tests) 4038ms ✓ runPlanApprovalGate > should return unavailable when agent exhausts retries 2013ms ✓ runPlanApprovalGate decision edge cases > should succeed after partial retries (fail 2, then succeed) 2007ms ✓ src/tools/task-update.test.ts (14 tests) 328ms ✓ src/utils/runtimeStatus.test.ts (19 tests) 156ms ✓ src/utils/gitIgnoreParser.test.ts (21 tests) 146ms ✓ src/tools/loop-wakeup.test.ts (18 tests) 146ms ✓ src/extension/sourceRegistry.test.ts (22 tests) 18ms ✓ src/services/fileDiscoveryService.test.ts (15 tests) 91ms ✓ src/memory/store.test.ts (10 tests) 60ms ✓ src/utils/nextSpeakerChecker.test.ts (13 tests) 96ms ✓ src/core/modalityDefaults.test.ts (42 tests) 27ms ✓ src/services/cronTasksLock.test.ts (15 tests) 37ms ✓ src/agents/team/test-utils/fake-backend.test.ts (18 tests) 107ms ✓ src/services/runtimeSampleRing.test.ts (10 tests) 28ms ✓ src/utils/envVarResolver.test.ts (16 tests) 27ms ✓ src/models/content-generator-config.test.ts (13 tests) 12ms ✓ src/services/fileReadCache.integration.test.ts (3 tests) 225ms ✓ src/tools/exit-worktree.session.integ.test.ts (8 tests) 4669ms ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > preserves the sidecar after keep so --resume can restore the worktree binding 445ms ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > clears the sidecar after remove 562ms ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > does not clear the sidecar when slug does not match 629ms ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > is a no-op when no sidecar exists 347ms ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > removes a re-attached worktree when the old marker owner is inactive 805ms ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > removes a stale-owned worktree when launched from inside it without a sidecar 862ms ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > refuses a re-attached remove when the marker owner runtime is active 523ms ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > refuses a re-attached remove when the owner is active under a repo-subdir relative runtime dir 493ms ✓ src/utils/retryPolicy.test.ts (20 tests) 25ms ✓ src/tools/exit-worktree.test.ts (16 tests) 2525ms ✓ ExitWorktreeTool > execute() — session ownership & lifecycle > refuses remove when the marker names a different session 389ms ✓ ExitWorktreeTool > execute() — session ownership & lifecycle > keep returns success and leaves the worktree + branch intact 466ms ✓ ExitWorktreeTool > execute() — session ownership & lifecycle > allows removal when the worktree predates the session-marker guard 478ms ✓ ExitWorktreeTool > execute() — session ownership & lifecycle > refuses removal when the worktree branch has unmerged commits 556ms ✓ ExitWorktreeTool > execute() — session ownership & lifecycle > marker also written by writeWorktreeSessionMarker survives round-trip 512ms ✓ src/memory/relevanceSelector.test.ts (9 tests) 39ms ✓ src/utils/request-tokenizer/requestTokenizer.test.ts (11 tests) 16ms ✓ src/utils/filesearch/crawlCache.test.ts (13 tests) 142ms ✓ src/telemetry/trace-context.test.ts (18 tests) 9ms ✓ src/utils/subagentGenerator.test.ts (9 tests) 105ms ✓ src/mcp/token-storage/base-token-storage.test.ts (14 tests) 35ms ✓ src/agents/workflow-snapshot.test.ts (9 tests) 102ms ✓ src/core/contentGenerator.test.ts (9 tests) 72ms [warn] Corrupt extension state file /tmp/ext-prefs-rUm66X/nested/extension-preferences.json moved aside to /tmp/ext-prefs-rUm66X/nested/extension-preferences.json.corrupted ✓ src/extension/extensionPreferences.test.ts (11 tests) 30ms ✓ src/utils/cronParser.test.ts (25 tests) 58ms ✓ src/utils/runtimeDiagnostics.test.ts (4 tests) 15ms ✓ src/utils/qwenIgnoreParser.test.ts (11 tests) 49ms ✓ src/tools/mcp-resource-content.test.ts (13 tests) 8ms ✓ src/extension/gemini-converter.test.ts (11 tests) 11ms ✓ src/utils/safeJsonStringify.test.ts (17 tests) 9ms ✓ src/utils/errorParsing.test.ts (18 tests) 15ms ✓ src/subagents/subagent-manager-override.test.ts (6 tests) 17ms ✓ src/utils/editHelper.test.ts (17 tests) 20ms ✓ src/tools/computer-use/constants.test.ts (20 tests) 14ms ✓ src/tools/tools.test.ts (11 tests) 12ms ✓ src/core/nonInteractiveToolExecutor.test.ts (8 tests) 37ms ✓ src/agents/runtime/agent-context.test.ts (17 tests) 32ms ✓ src/utils/modelId.test.ts (25 tests) 24ms ✓ src/hooks/envInterpolator.test.ts (30 tests) 21ms ✓ src/lsp/LspConfigLoader.test.ts (8 tests) 39ms ✓ src/utils/shellContextEnv.test.ts (12 tests) 33ms ✓ src/followup/overlayFs.test.ts (15 tests) 67ms ✓ src/hooks/detectTodoChanges.test.ts (12 tests) 15ms ✓ src/utils/ripgrepUtils.test.ts (8 tests) 29ms ✓ src/hooks/registerSkillHooks.test.ts (7 tests) 9ms ✓ src/hooks/urlValidator.test.ts (20 tests) 30ms ❯ src/skills/skill-activation.test.ts (20 tests | 1 failed) 9771ms ✓ splitConditionalSkills > treats skills without paths as unconditional 3ms ✓ splitConditionalSkills > treats empty paths array as unconditional 0ms ✓ splitConditionalSkills > classifies skills with non-empty paths as conditional 1ms ✓ SkillActivationRegistry > returns empty when no conditional skills are registered 0ms ✓ SkillActivationRegistry > activates a conditional skill when a matching path is touched 3ms ✓ SkillActivationRegistry > does not re-activate an already-active skill on subsequent matches 2ms ✓ SkillActivationRegistry > returns empty for paths that do not match any skill 0ms ✓ SkillActivationRegistry > activates multiple skills whose globs overlap on a single file 0ms ✓ SkillActivationRegistry > accepts relative file paths by resolving against the project root 0ms ✓ SkillActivationRegistry > ignores paths outside the project root 0ms ✓ SkillActivationRegistry > supports multiple glob patterns per skill (OR semantics) 0ms ✓ SkillActivationRegistry > activates broad globs on dotfiles too (dot: true semantics) 0ms ✓ SkillActivationRegistry > survives an invalid picomatch pattern (drops it, keeps the rest) 0ms ✓ SkillActivationRegistry > rejects an absolute relative path (Windows cross-drive case) 0ms ✓ resolveProjectRelativePath > returns the forward-slash-normalized relative path for in-project files (POSIX) 0ms ✓ resolveProjectRelativePath > returns null for paths outside the project root (POSIX, `..` prefix) 0ms ✓ resolveProjectRelativePath > returns null for Windows cross-drive paths (different drive letter) 0ms ✓ resolveProjectRelativePath > normalizes backslashes for in-project Windows paths 0ms × extractToolFilePaths → SkillActivationRegistry integration > activates a skill keyed on src/**/*.ts from glob({ path: "src", pattern: "**/*.ts" }) 5023ms → Test timed out in 5000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ✓ extractToolFilePaths → SkillActivationRegistry integration > does NOT activate from external glob.path (project-root guard wins) 4732ms ✓ src/agents/runtime/workflow-budget.test.ts (20 tests) 9ms ✓ src/hooks/promptHookIntegration.test.ts (9 tests) 151ms ✓ src/tools/artifact/html.test.ts (38 tests) 11ms ✓ src/tools/cron-list.test.ts (8 tests) 142ms ✓ src/hooks/ssrfGuard.test.ts (21 tests) 28ms ✓ src/tools/artifact/host-publisher.test.ts (17 tests) 56ms ✓ src/memory/extractionAgentPlanner.test.ts (10 tests) 15ms ✓ src/memory/recall.test.ts (6 tests) 12ms ✓ src/ide/ide-installer.test.ts (10 tests) 33ms ✓ src/mcp/sa-impersonation-provider.test.ts (8 tests) 48ms ✓ src/lsp/LspServerManager.test.ts (7 tests) 14ms ✓ src/utils/gitUtils.test.ts (6 tests) 17ms ✓ src/utils/contextLengthError.test.ts (27 tests) 10ms ✓ src/tools/toAutoClassifierInput.test.ts (12 tests) 12ms ✓ src/tools/computer-use/downloader.test.ts (7 tests) 39ms ✓ src/tools/mcp-pool-key.test.ts (24 tests) 11ms ✓ src/goals/goalLoop.integration.test.ts (2 tests) 10ms ✓ src/core/permissionFlow.test.ts (20 tests) 14ms ✓ src/extension/i18n.test.ts (16 tests) 20ms ✓ src/tools/diffOptions.test.ts (9 tests) 15ms ✓ src/ide/process-utils.test.ts (6 tests) 30ms ✓ src/services/tokenEstimation.test.ts (15 tests) 5ms ✓ src/followup/speculationToolGate.test.ts (29 tests) 134ms ✓ src/memory/memoryLifecycle.integration.test.ts (1 test) 64ms ✓ src/utils/shellReadOnlyChecker.test.ts (33 tests) 18ms ✓ src/tools/mcp-workspace-budget.test.ts (17 tests) 47ms ✓ src/tools/cron-create.test.ts (11 tests) 743ms ✓ CronCreateTool > rejects a cron that never matches a real date 604ms ✓ src/utils/textUtils.test.ts (25 tests) 19ms ✓ src/resources/resource-registry.test.ts (11 tests) 42ms ✓ src/agents/runtime/workflow-journal.test.ts (14 tests) 89ms ✓ src/core/openaiContentGenerator/provider/mimo.test.ts (9 tests) 50ms ✓ src/utils/safeJsonParse.test.ts (14 tests) 11ms ✓ src/ide/detect-ide.test.ts (14 tests) 30ms ✓ src/utils/concurrencyLimiter.test.ts (8 tests) 78ms ✓ src/tools/mcp-discovery-timeout.test.ts (14 tests) 63ms ✓ src/extension/override.test.ts (16 tests) 14ms ✓ src/prompts/prompt-registry.test.ts (11 tests) 27ms ✓ src/followup/suggestionGenerator.test.ts (19 tests) 40ms ✓ src/agents/team/identity.test.ts (15 tests) 6ms ✓ src/hooks/types.test.ts (12 tests) 9ms ✓ src/utils/quotaErrorDetection.test.ts (16 tests) 7ms ✓ src/extension/settings.test.ts (10 tests) 7ms ✓ src/core/loggingContentGenerator/streamContentDetection.test.ts (16 tests) 18ms ✓ src/services/generatedFiles.test.ts (11 tests) 6ms ✓ src/utils/errorReporting.test.ts (5 tests) 9ms ✓ src/tools/grepReadTracking.test.ts (7 tests) 42ms ✓ src/core/anthropicContentGenerator/usage.test.ts (7 tests) 5ms ✓ src/tools/task-create.test.ts (8 tests) 97ms ✓ src/utils/configResolver.test.ts (12 tests) 11ms ✓ src/tools/team-create.test.ts (11 tests) 308ms ✓ src/providers/__tests__/presets/alibaba-standard.test.ts (8 tests) 26ms ✓ src/mcp/configHash.test.ts (15 tests) 14ms ✓ src/agents/arena/diff-summary.test.ts (8 tests) 12ms ✓ src/hooks/trustedHooks.test.ts (5 tests) 13ms ✓ src/telemetry/file-exporters.test.ts (3 tests) 17ms ✓ src/tools/cron-delete.test.ts (7 tests) 112ms ✓ src/utils/schemaConverter.test.ts (12 tests) 21ms ✓ src/config/config.workflow-registration.test.ts (4 tests) 236ms ✓ src/services/attributionTrailer.test.ts (4 tests) 10ms ✓ src/followup/speculation.test.ts (8 tests) 72ms ✓ src/core/openaiContentGenerator/provider/minimax.test.ts (9 tests) 16ms ✓ src/utils/proxyUtils.test.ts (18 tests) 26ms ✓ src/utils/terminalSafe.test.ts (11 tests) 15ms ✓ src/skills/skill-paths.test.ts (7 tests) 38ms ✓ src/core/openaiContentGenerator/provider/modelscope.test.ts (5 tests) 6ms ✓ src/utils/toml-to-markdown-converter.test.ts (11 tests) 29ms ✓ src/utils/filesearch/result-cache.test.ts (6 tests) 119ms ✓ src/utils/xml.test.ts (10 tests) 11ms ✓ src/mcp/google-auth-provider.test.ts (8 tests) 37ms ✓ src/core/inlineMediaLimit.test.ts (13 tests) 26ms ✓ src/tools/task-list.test.ts (6 tests) 277ms ✓ src/followup/smoke.test.ts (21 tests) 37ms ✓ src/utils/projectRoot.test.ts (5 tests) 19ms ✓ src/tools/computer-use/schemas.test.ts (8 tests) 11ms ✓ src/memory/prompt.test.ts (6 tests) 12ms ✓ src/hooks/combinedAbortSignal.test.ts (8 tests) 329ms ✓ src/subagents/builtin-agents.test.ts (8 tests) 23ms ✓ src/services/visionBridge/image-part-utils.test.ts (15 tests) 12ms ✓ src/core/toolCallIdUtils.test.ts (3 tests) 14ms ✓ src/skills/skill-load.real-parser.test.ts (7 tests) 25ms ✓ src/tools/enterPlanMode.test.ts (13 tests) 83ms ✓ src/utils/installationManager.test.ts (4 tests) 7ms ✓ src/providers/__tests__/presets/idealab.test.ts (6 tests) 14ms ✓ src/core/openaiContentGenerator/provider/mistral.test.ts (4 tests) 17ms ✓ src/utils/runtimeStatus.config.test.ts (4 tests) 300ms ✓ src/hooks/stopHookCap.test.ts (9 tests) 22ms ✓ src/lsp/NativeLspClient.test.ts (2 tests) 19ms ✓ src/core/permission-helpers.test.ts (6 tests) 29ms ✓ src/agents/team/leaderPermissionBridge.test.ts (7 tests) 25ms ✓ src/extension/storage.test.ts (5 tests) 16ms ✓ src/utils/errors.test.ts (12 tests) 6ms ✓ src/extension/redaction.test.ts (11 tests) 12ms ✓ src/memory/extractAgent.test.ts (1 test) 92ms ✓ src/config/config.workflows.test.ts (4 tests) 28ms ✓ src/skills/symlinkScope.test.ts (5 tests) 6ms ✓ src/utils/tool-utils.test.ts (20 tests) 7ms ✓ src/core/geminiRequest.test.ts (12 tests) 6ms ✓ src/utils/bundlePaths.test.ts (4 tests) 7ms ✓ src/utils/thoughtUtils.test.ts (11 tests) 14ms ✓ src/hooks/instructionsLoadedCallback.test.ts (4 tests) 12ms ✓ src/telemetry/sanitize.test.ts (10 tests) 14ms ✓ src/memory/scan.test.ts (2 tests) 46ms ✓ src/goals/activeGoalStore.test.ts (7 tests) 6ms ✓ src/tools/team-delete.test.ts (5 tests) 625ms ✓ TeamDeleteTool > deletes an active team 309ms ✓ src/tools/syntheticOutput.test.ts (7 tests) 71ms ✓ src/tools/skill-utils.test.ts (5 tests) 7ms ✓ src/telemetry/session-context.test.ts (7 tests) 4ms ✓ src/memory/indexer.test.ts (2 tests) 46ms ✓ src/memory/const.test.ts (4 tests) 5ms ✓ src/utils/projectSummary.test.ts (3 tests) 50ms ✓ src/tools/computer-use/install-state.test.ts (6 tests) 43ms ✓ src/skills/bundled/loop/SKILL.test.ts (4 tests) 18ms ✓ src/memory/forget.test.ts (1 test) 9ms ✓ src/extension/corruptFile.test.ts (2 tests) 23ms ✓ src/core/geminiContentGenerator/index.test.ts (3 tests) 12ms ✓ src/utils/asyncMessageQueue.test.ts (7 tests) 5ms ✓ src/memory/dream.test.ts (3 tests) 54ms ✓ src/tools/artifact/local-publisher.test.ts (3 tests) 34ms ✓ src/tools/computer-use/permission-detector.test.ts (6 tests) 18ms ✓ src/tools/artifact/create-publisher.test.ts (5 tests) 10ms ✓ src/utils/fetch.test.ts (3 tests) 8ms ❯ src/config/config-session-env.test.ts (3 tests | 3 failed) 15041ms × Config sessionEnvClaimed guard > first Config sets process.env QWEN_CODE_SESSION_ID to its sessionId 5031ms → Test timed out in 5000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". × Config sessionEnvClaimed guard > subsequent Config does not overwrite the env var set by the first 5005ms → Test timed out in 5000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". × Config sessionEnvClaimed guard > startNewSession updates env var to the new session ID 5004ms → Test timed out in 5000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ✓ src/plan-gate/gateReviewAgents.test.ts (12 tests) 10ms ✓ src/memory/dreamAgentPlanner.test.ts (5 tests) 47ms ✓ src/providers/__tests__/presets/modelscope.test.ts (3 tests) 6ms ✓ src/utils/startupEventSink.test.ts (4 tests) 11ms ✓ src/utils/internalPromptIds.test.ts (9 tests) 17ms ✓ src/lsp/LspConnectionFactory.test.ts (2 tests) 227ms ✓ src/skills/bundled-skills.integration.test.ts (8 tests) 57ms ✓ src/telemetry/trace-id-utils.test.ts (8 tests) 42ms ✓ src/utils/messageInspectors.test.ts (5 tests) 8ms ✓ src/subagents/types.test.ts (3 tests) 6ms ✓ src/telemetry/telemetry-utils.test.ts (6 tests) 8ms ✓ src/providers/__tests__/presets/openrouter.test.ts (5 tests) 16ms ✓ src/memory/entries.test.ts (1 test) 14ms ✓ src/tools/artifact/publisher.test.ts (5 tests) 16ms ✓ src/utils/getPty.test.ts (1 test) 19ms ✓ src/utils/cronDisplay.test.ts (2 tests) 10ms ✓ src/index.test.ts (1 test) 2ms ✓ src/utils/env.test.ts (12 tests) 4ms ✓ src/providers/__tests__/presets/requesty.test.ts (5 tests) 9ms ✓ src/tools/enter-worktree.session.integ.test.ts (2 tests) 1016ms ✓ EnterWorktreeTool — WorktreeSession sidecar > writes a WorktreeSession sidecar with all fields after creating worktree 414ms ✓ EnterWorktreeTool — WorktreeSession sidecar > overwrites a previous sidecar when entering a new worktree in the same session 601ms ✓ src/providers/__tests__/presets/deepseek.test.ts (3 tests) 7ms ✓ src/providers/__tests__/presets/custom-provider.test.ts (11 tests) 26ms ✓ src/providers/__tests__/provider-config.test.ts (63 tests) 27ms ✓ src/providers/__tests__/presets/alibaba-token-plan.test.ts (2 tests) 6ms ✓ src/services/gitWorktreeService.hooks.integ.test.ts (3 tests) 1024ms ✓ GitWorktreeService.createUserWorktree() — hooksPath setup > points core.hooksPath at .husky when present 375ms ✓ GitWorktreeService.createUserWorktree() — hooksPath setup > falls back to .git/hooks when .husky is missing 331ms ✓ GitWorktreeService.createUserWorktree() — hooksPath setup > still creates the worktree even when hooksPath setup fails 316ms ✓ src/tools/computer-use/registration.test.ts (2 tests) 10ms ✓ src/providers/__tests__/presets/zai.test.ts (3 tests) 22ms ✓ src/agents/backends/tmux-commands.test.ts (8 tests) 13ms ✓ src/providers/__tests__/presets/alibaba-coding-plan.test.ts (2 tests) 11ms ✓ src/providers/__tests__/presets/minimax.test.ts (3 tests) 9ms ✓ src/telemetry/telemetry.test.ts (2 tests) 46ms ✓ src/services/worktreeCleanup.test.ts (3 tests) 3ms ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 4 ⎯⎯⎯⎯⎯⎯⎯ FAIL src/config/config-session-env.test.ts > Config sessionEnvClaimed guard > first Config sets process.env QWEN_CODE_SESSION_ID to its sessionId Error: Test timed out in 5000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ src/config/config-session-env.test.ts:134:3 132| }); 133| 134| it('first Config sets process.env QWEN_CODE_SESSION_ID to its sessio… | ^ 135| const { Config } = await import('./config.js'); 136| const config = new Config({ ...baseParams }); ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/4]⎯ FAIL src/config/config-session-env.test.ts > Config sessionEnvClaimed guard > subsequent Config does not overwrite the env var set by the first Error: Test timed out in 5000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ src/config/config-session-env.test.ts:141:3 139| }); 140| 141| it('subsequent Config does not overwrite the env var set by the firs… | ^ 142| const { Config } = await import('./config.js'); 143| const firstConfig = new Config({ ...baseParams }); ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/4]⎯ FAIL src/config/config-session-env.test.ts > Config sessionEnvClaimed guard > startNewSession updates env var to the new session ID Error: Test timed out in 5000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ src/config/config-session-env.test.ts:159:3 157| }); 158| 159| it('startNewSession updates env var to the new session ID', async ()… | ^ 160| const { Config } = await import('./config.js'); 161| const config = new Config({ ...baseParams }); ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/4]⎯ FAIL src/skills/skill-activation.test.ts > extractToolFilePaths → SkillActivationRegistry integration > activates a skill keyed on src/**/*.ts from glob({ path: "src", pattern: "**/*.ts" }) Error: Test timed out in 5000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ src/skills/skill-activation.test.ts:250:3 248| // to activate skills keyed on the joined effective selector — there 249| // was no test exercising the path that mattered. 250| it('activates a skill keyed on src/**/*.ts from glob({ path: "src", … | ^ 251| const { extractToolFilePaths } = await import( 252| '../core/coreToolScheduler.js' ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/4]⎯ Test Files 2 failed | 441 passed | 1 skipped (444) Tests 4 failed | 13118 passed | 8 skipped (13130) Start at 12:25:45 Duration 102.45s (transform 124.92s, setup 15.51s, collect 1254.96s, tests 240.29s, environment 163ms, prepare 85.64s) JUNIT report written to /startdir/src/qwen-code/packages/core/junit.xml npm error Lifecycle script `test` failed with error: npm error code 1 npm error path /startdir/src/qwen-code/packages/core npm error workspace @qwen-code/qwen-code-core@0.19.2 npm error location /startdir/src/qwen-code/packages/core npm error command failed npm error command sh -c vitest run '--exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts' > @qwen-code/sdk@0.1.8 test > vitest run --exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts RUN v1.6.1 /startdir/src/qwen-code/packages/sdk-typescript ✓ test/unit/daemonEvents.test.ts (89 tests) 36ms 2026-07-03 12:27:38 [ERROR] [ProcessTransport] Failed to initialize CLI process: Transport start aborted 2026-07-03 12:27:38 [ERROR] [ProcessTransport] Failed to initialize CLI process: Transport start aborted 2026-07-03 12:27:38 [ERROR] [ProcessTransport] CLI process error: Spawn failed 2026-07-03 12:27:38 [ERROR] [ProcessTransport] CLI process exited with code 1 2026-07-03 12:27:38 [ERROR] [ProcessTransport] CLI process terminated by signal SIGTERM 2026-07-03 12:27:38 [ERROR] [ProcessTransport] CLI process error: Process error 2026-07-03 12:27:38 [DEBUG] [ProcessTransport] Spawning CLI (native): qwen --input-format stream-json --output-format stream-json --channel=SDK 2026-07-03 12:27:38 [ERROR] [ProcessTransport] CLI process exited with code 1 2026-07-03 12:27:38 [ERROR] [ProcessTransport] CLI process error: Process error 2026-07-03 12:27:38 [ERROR] [ProcessTransport] CLI process exited with code 1 2026-07-03 12:27:38 [ERROR] [ProcessTransport] CLI process terminated by signal SIGKILL 2026-07-03 12:27:38 [INFO] [ProcessTransport] CLI process started successfully 2026-07-03 12:27:38 [DEBUG] [ProcessTransport] Forking CLI (node): /path/to/cli.js --input-format stream-json --output-format stream-json --channel=SDK 2026-07-03 12:27:38 [INFO] [ProcessTransport] CLI process started successfully ✓ test/unit/ProcessTransport.test.ts (71 tests) 165ms ✓ test/unit/daemonUi.test.ts (245 tests) 164ms stderr | test/unit/daemonUi.test.ts > daemon UI reducer state machine (PR-E) > enters resync-required state and skips later non-terminal deltas [daemon-ui] dropping event `assistant.text.delta` while awaitingResync; state may be stale until session reconnect (lastResyncRequired: {"reason":"ring_evicted","lastDeliveredId":1,"earliestAvailableId":4}) stderr | test/unit/daemonUi.test.ts > R6 review batch — recovery flow + pending pointer > clearAwaitingResync AFTER dispatching events: events ARE dropped (documents the flow) [daemon-ui] dropping event `assistant.text.delta` while awaitingResync; state may be stale until session reconnect (lastResyncRequired: {"reason":"sse_eviction","lastDeliveredId":5,"earliestAvailableId":12}) ✓ test/unit/DaemonSessionClient.test.ts (34 tests) 397ms ✓ test/unit/acpRouteTable.test.ts (68 tests) 21ms 2026-07-03 12:27:39 [ERROR] [Query] Control response error for request eb7f1fa3-35c2-4912-a957-e3c92a605791: Test error 2026-07-03 12:27:39 [ERROR] [Query] Initialization error: Test error [serve-bridge] Tool error: Error: something broke at /startdir/src/qwen-code/packages/sdk-typescript/test/unit/serve-bridge.test.ts:151:44 at file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:135:14 at file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:60:26 at runTest (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:781:17) at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15) at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15) at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15) at runFiles (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:958:5) at startTests (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:967:3) at file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/vitest/dist/chunks/runtime-runBaseTests.oAvMKtQC.js:116:7 ✓ test/unit/serve-bridge.test.ts (30 tests) 70ms [serve-bridge] Tool error: string error [serve-bridge] SSE stream ended unexpectedly for session new-session-id: GET /session/:id/events: HTTP 404 [serve-bridge] Tool error: Error: No SSE stream for session. Was the session created via session_create? at /startdir/src/qwen-code/packages/sdk-typescript/src/daemon-mcp/serve-bridge/tools/agent.ts:33:17 at Object.handler (/startdir/src/qwen-code/packages/sdk-typescript/src/daemon-mcp/serve-bridge/helpers.ts:45:20) at /startdir/src/qwen-code/packages/sdk-typescript/test/unit/serve-bridge.test.ts:397:39 at runTest (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:781:11) at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15) at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15) at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15) at runFiles (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:958:5) at startTests (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:967:3) at file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/vitest/dist/chunks/runtime-runBaseTests.oAvMKtQC.js:116:7 [serve-bridge] Tool error: Error: Another prompt is already in progress for this session. Wait for it to complete or call prompt_cancel first. at /startdir/src/qwen-code/packages/sdk-typescript/src/daemon-mcp/serve-bridge/tools/agent.ts:40:17 at Object.handler (/startdir/src/qwen-code/packages/sdk-typescript/src/daemon-mcp/serve-bridge/helpers.ts:45:20) at /startdir/src/qwen-code/packages/sdk-typescript/test/unit/serve-bridge.test.ts:427:39 at runTest (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:781:11) at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15) at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15) at runSuite (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:909:15) at runFiles (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:958:5) at startTests (file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/@vitest/runner/dist/index.js:967:3) at file:///startdir/src/qwen-code/packages/sdk-typescript/node_modules/vitest/dist/chunks/runtime-runBaseTests.oAvMKtQC.js:116:7 ✓ test/unit/AcpHttpTransport.test.ts (21 tests) 21ms ✓ test/unit/RestSseTransport.test.ts (28 tests) 77ms ✓ test/unit/DaemonClient.test.ts (178 tests) 1888ms ✓ test/unit/cliPath.test.ts (33 tests) 17ms ✓ test/unit/daemon-sse.test.ts (18 tests) 18ms ✓ test/unit/AutoReconnectTransport.test.ts (18 tests) 35ms ✓ test/unit/createSdkMcpServer.test.ts (18 tests) 22ms ✓ test/unit/daemon-public-surface.test.ts (13 tests) 7ms ✓ test/unit/negotiateTransport.test.ts (15 tests) 166ms ✓ test/unit/AcpWsTransport.test.ts (31 tests) 14ms ✓ test/unit/Stream.test.ts (22 tests) 29ms ✓ test/unit/AcpEventDenormalizer.test.ts (18 tests) 8ms ✓ test/unit/createQuery.test.ts (3 tests) 24ms 2026-07-03 12:27:51 [ERROR] [Query] Initialization error: Query is closed ✓ test/unit/DaemonAuthFlow.test.ts (14 tests) 13077ms ✓ test/unit/approval-mode-drift.test.ts (1 test) 2ms ✓ test/daemon-ui-transcript.test.ts (1 test) 3ms 2026-07-03 12:28:02 [ERROR] [Query] Control response error for request acae08d7-ba42-4425-b4de-025a6c8f48cd: Malformed error ✓ test/unit/Query.test.ts (55 tests) 23823ms Test Files 23 passed (23) Tests 1024 passed (1024) Start at 12:27:36 Duration 26.09s (transform 7.29s, setup 1ms, collect 12.67s, tests 40.08s, environment 9ms, prepare 2.12s) > qwen-code-vscode-ide-companion@0.19.2 test > vitest run --exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts RUN v3.2.4 /startdir/src/qwen-code/packages/vscode-ide-companion stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > current_mode_update handling > calls onModeChanged callback with mode id [SessionUpdateHandler] Processing update type: current_mode_update stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > agent_message_chunk handling > calls onStreamChunk callback with text content [SessionUpdateHandler] Processing update type: agent_message_chunk stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > agent_message_chunk handling > routes background notification chunks as discrete assistant messages [SessionUpdateHandler] Processing update type: agent_message_chunk stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > agent_message_chunk handling > forwards the originating sessionId on discrete messages so the receiver can attribute notifications to the owning conversation [SessionUpdateHandler] Processing update type: agent_message_chunk stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > agent_message_chunk handling > omits sessionId on the emitted message when the notification has no sessionId [SessionUpdateHandler] Processing update type: agent_message_chunk stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > agent_message_chunk handling > emits usage metadata when present [SessionUpdateHandler] Processing update type: agent_message_chunk stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > agent_message_chunk handling > maps SDK usage field names to both SDK and legacy fields [SessionUpdateHandler] Processing update type: agent_message_chunk stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > tool_call handling > calls onToolCall callback with tool call data [SessionUpdateHandler] Processing update type: tool_call stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > tool_call handling > forwards rawOutput for structured agent execution updates [SessionUpdateHandler] Processing update type: tool_call_update stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > plan handling > calls onPlan callback with plan entries [SessionUpdateHandler] Processing update type: plan stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > plan handling > falls back to stream chunk when onPlan is not set [SessionUpdateHandler] Processing update type: plan stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > available_commands_update handling > calls onAvailableCommands callback with commands [SessionUpdateHandler] Processing update type: available_commands_update stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > available_commands_update handling > handles commands with input hint [SessionUpdateHandler] Processing update type: available_commands_update stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > available_commands_update handling > does not call callback when onAvailableCommands is not set [SessionUpdateHandler] Processing update type: available_commands_update stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > available_commands_update handling > handles empty commands list [SessionUpdateHandler] Processing update type: available_commands_update stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > available skills handling > reads available skills from available_commands_update metadata [SessionUpdateHandler] Processing update type: available_commands_update stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > available skills handling > clears available skills when metadata is absent [SessionUpdateHandler] Processing update type: available_commands_update stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > updateCallbacks > updates mode callback and uses new one [SessionUpdateHandler] Processing update type: current_mode_update stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > updateCallbacks > updates onAvailableCommands callback [SessionUpdateHandler] Processing update type: available_commands_update stderr | src/services/conversationStore.test.ts > ConversationStore > replaceMessages returns false when the conversation is missing [ConversationStore] replaceMessages: conversation not found: missing stderr | src/services/conversationStore.test.ts > ConversationStore > renameConversationId returns false when the target id already exists [ConversationStore] renameConversationId: target conversation already exists: session-1 stderr | src/services/conversationStore.test.ts > ConversationStore > truncateFromUserTurn returns false when the target turn is missing [ConversationStore] truncateFromUserTurn: target turn not found: 4 ✓ src/services/qwenSessionUpdateHandler.test.ts (19 tests) 22ms ✓ src/services/conversationStore.test.ts (8 tests) 10ms ✓ src/utils/editorGroupUtils.test.ts (12 tests) 13ms stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > returns full content when no line/limit specified [ACP] fs/read_text_file request received for: /test/file.txt [ACP] Parameters: { line: null, limit: null, sessionId: 'sid' } stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > returns full content when no line/limit specified [ACP] Successfully read file: /test/file.txt (18 chars) [ACP] Returning full file content stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > uses 1-based line indexing (ACP spec) [ACP] fs/read_text_file request received for: /test/file.txt [ACP] Parameters: { line: 2, limit: 2, sessionId: 'sid' } stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > uses 1-based line indexing (ACP spec) [ACP] Successfully read file: /test/file.txt (29 chars) [ACP] Returning 2 lines stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > treats line=1 as first line [ACP] fs/read_text_file request received for: /test/file.txt [ACP] Parameters: { line: 1, limit: 1, sessionId: 'sid' } stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > treats line=1 as first line [ACP] Successfully read file: /test/file.txt (18 chars) [ACP] Returning 1 lines stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > defaults to line=1 when line is null but limit is set [ACP] fs/read_text_file request received for: /test/file.txt [ACP] Parameters: { line: null, limit: 2, sessionId: 'sid' } stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > defaults to line=1 when line is null but limit is set [ACP] Successfully read file: /test/file.txt (7 chars) [ACP] Returning 2 lines stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > clamps negative line values to 0 [ACP] fs/read_text_file request received for: /test/file.txt [ACP] Parameters: { line: -5, limit: null, sessionId: 'sid' } stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > clamps negative line values to 0 [ACP] Successfully read file: /test/file.txt (5 chars) [ACP] Returning 3 lines stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > propagates ENOENT errors [ACP] fs/read_text_file request received for: /missing/file.txt [ACP] Parameters: { line: null, limit: null, sessionId: 'sid' } stderr | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > propagates ENOENT errors [ACP] Failed to read file /missing/file.txt: ENOENT stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > normalises VS Code FileNotFound to ENOENT [ACP] fs/read_text_file request received for: /missing/file.txt [ACP] Parameters: { line: null, limit: null, sessionId: 'sid' } stderr | src/services/acpFileHandler.test.ts > AcpFileHandler > handleReadTextFile > normalises VS Code FileNotFound to ENOENT [ACP] Failed to read file /missing/file.txt: file not found stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleWriteTextFile > creates directory and uses WorkspaceEdit for existing file [ACP] fs/write_text_file request received for: /test/dir/file.txt [ACP] Content size: 5 bytes [ACP] Ensuring directory exists: /test/dir stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleWriteTextFile > creates directory and uses WorkspaceEdit for existing file [ACP] Successfully wrote file: /test/dir/file.txt stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleWriteTextFile > writes bytes directly for new (non-existing) file [ACP] fs/write_text_file request received for: /test/dir/newfile.txt [ACP] Content size: 5 bytes [ACP] Ensuring directory exists: /test/dir stdout | src/services/acpFileHandler.test.ts > AcpFileHandler > handleWriteTextFile > writes bytes directly for new (non-existing) file [ACP] Successfully wrote file: /test/dir/newfile.txt ✓ src/services/acpFileHandler.test.ts (9 tests) 14ms ✓ src/utils/paths.test.ts (18 tests) 11ms ✓ src/webview/hooks/useWebViewMessages.test.ts (5 tests) 10ms ✓ src/services/acpConnection.test.ts (17 tests) 33ms ✓ src/commands/index.test.ts (5 tests) 18ms ✓ src/open-files-manager.test.ts (17 tests) 51ms stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > proceeds with a second connect after the first one fails [DaemonIdeConnection] Previous connect failed: { error: 'first connect failed' } stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > sends prompts through the bound daemon session [DaemonIdeConnection] Sending prompt: { sessionId: 'session-1' } stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > sends prompts through the bound daemon session [DaemonIdeConnection] Prompt completed: { sessionId: 'session-1', stopReason: 'end_turn' } stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > sends prompts through the bound daemon session [DaemonIdeConnection] Sending prompt: { sessionId: 'session-1' } stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > sends prompts through the bound daemon session [DaemonIdeConnection] Prompt completed: { sessionId: 'session-1', stopReason: 'end_turn' } stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > sends prompts through the bound daemon session [DaemonIdeConnection] Sending prompt: { sessionId: 'session-1' } stderr | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > sends prompts through the bound daemon session [DaemonIdeConnection] Prompt failed: { sessionId: 'session-1', error: 'prompt failed' } ✓ src/webview/utils/utils.test.ts (15 tests) 6ms stderr | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > cancels permission requests by default and for reject options [DaemonIdeConnection] Permission option not advertised; cancelling { requestId: 'request-3', optionId: 'stale-option' } stderr | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > forwards ask-user-question answers and cancels invalid selections [DaemonIdeConnection] AskUserQuestion option not advertised; cancelling { requestId: 'ask-3', optionId: 'stale-option' } ✓ src/services/sessionExportService.test.ts (9 tests) 15ms stderr | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > ignores malformed permission events [DaemonIdeConnection] Malformed permission request data stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > surfaces session_died as a disconnect [DaemonIdeConnection] Session died: { sessionId: 'session-1', reason: 'agent exited' } [DaemonIdeConnection] Clearing session: { sessionId: 'session-1', reason: 'agent exited' } stderr | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > ignores stale session_died events from another session [DaemonIdeConnection] Malformed session_died event stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > surfaces event stream failures and normal stream completion [DaemonIdeConnection] Event stream session: { sessionId: 'session-1' } [DaemonIdeConnection] Clearing session: { sessionId: 'session-1', reason: 'daemon_error' } stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > surfaces event stream failures and normal stream completion [DaemonIdeConnection] Clearing session: { sessionId: 'session-1', reason: 'stream_ended' } ✓ src/webview/providers/WebViewContent.test.ts (5 tests) 8ms ✓ src/services/daemonIdeConnection.test.ts (19 tests) 93ms ✓ src/webview/utils/slashCommandUtils.test.ts (6 tests) 12ms ✓ src/webview/utils/contextUsage.test.ts (4 tests) 7ms ✓ src/webview/providers/ChatWebviewViewProvider.test.ts (2 tests) 15ms ✓ src/webview/utils/completionUtils.test.ts (4 tests) 9ms ✓ src/webview/providers/ChatProviderRegistry.test.ts (2 tests) 5ms ✓ src/package.test.ts (2 tests) 11ms ✓ src/utils/file-path.test.ts (4 tests) 4ms ✓ src/services/subscriptionPlanDefinitions.test.ts (1 test) 19ms ✓ src/webview/providers/chatViewRegistration.test.ts (1 test) 16ms ✓ src/utils/errorMessage.test.ts (2 tests) 17ms ✓ src/webview/hooks/useImage.test.ts (2 tests) 152ms ✓ src/utils/imageSupport.bundle.test.ts (2 tests) 322ms ✓ src/webview/components/layout/ModelSelector.test.tsx (9 tests) 123ms stdout | src/webview/hooks/useWebViewMessages.test.tsx > useWebViewMessages > ignores background streamEnd while a tagged request is active [useWebViewMessages] Ignoring stale/untagged streamEnd: null active: req-1 source: background_notification stderr | src/webview/hooks/useWebViewMessages.test.tsx > useWebViewMessages > ignores conversation rewind events when the target turn is missing [useWebViewMessages] conversationRewound target turn not found: 99 ✓ src/webview/components/layout/ProviderSetupForm.test.tsx (1 test) 177ms ✓ src/webview/hooks/message/useMessageHandling.test.tsx (3 tests) 114ms ✓ src/webview/hooks/useWebViewMessages.test.tsx (12 tests) 176ms ✓ src/webview/hooks/useMessageSubmit.test.ts (19 tests) 37ms ✓ src/webview/hooks/useToolCalls.test.tsx (2 tests) 62ms ✓ src/webview/components/layout/Onboarding.test.tsx (1 test) 82ms ✓ src/webview/App.test.tsx (10 tests) 248ms ✓ src/webview/components/messages/toolcalls/index.test.tsx (3 tests) 115ms ✓ src/webview/components/layout/InputForm.test.tsx (2 tests) 49ms ✓ src/utils/acpModelInfo.test.ts (15 tests) 8ms stderr | src/webview/utils/imageHandler.test.ts > imageHandler > returns null when file write throws [ImageHandler] Failed to save image: Error: disk full at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/utils/imageHandler.test.ts:110:41 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20 at new Promise () at runWithTimeout (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10) at runTest (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1574:12) at processTicksAndRejections (node:internal/process/task_queues:104:5) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) ✓ src/webview/utils/imageHandler.test.ts (12 tests) 20ms stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > configures sidebar views with workspace/temp roots and resolves image paths through the attached webview [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > configures sidebar views with workspace/temp roots and resolves image paths through the attached webview [WebViewProvider] Attempting connection... ✓ src/utils/imageSupport.test.ts (1 test) 3ms ✓ src/webview/handlers/AuthMessageHandler.test.ts (10 tests) 20ms stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > reports clipboard copy success back to the requesting webview [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > reports clipboard copy success back to the requesting webview [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > reports clipboard copy failures back to the requesting webview [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > reports clipboard copy failures back to the requesting webview [WebViewProvider] Attempting connection... ✓ src/webview/utils/discontinuedModel.test.ts (13 tests) 5ms stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > streams slash-command notifications into the attached webview [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > streams slash-command notifications into the attached webview [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > re-sends cached available commands when the webview becomes ready [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > re-sends cached available commands when the webview becomes ready [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > does not special-case plain insight slash notifications in the provider [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > does not special-case plain insight slash notifications in the provider [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > routes structured insight progress markers into the attached webview [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > routes structured insight progress markers into the attached webview [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > routes structured insight progress markers even when command text is normalized differently [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > routes structured insight progress markers even when command text is normalized differently [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > clears structured insight progress when the ready marker arrives [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > clears structured insight progress when the ready marker arrives [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > opens the insight report in the browser when requested from the webview [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > opens the insight report in the browser when requested from the webview [WebViewProvider] Attempting connection... stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > searches files using fuzzy search when query is provided [FileMessageHandler] handleGetWorkspaceFiles start { query: 'txt', requestId: 7 } [FileMessageHandler] Searching workspace files with fuzzy search for query txt stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > searches files using fuzzy search when query is provided [FileMessageHandler] Sent final workspaceFiles 2 stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > filters ignored paths in non-query mode [FileMessageHandler] handleGetWorkspaceFiles start { query: undefined, requestId: 7 } [FileMessageHandler] Sent initial workspaceFiles (open tabs/active) 0 stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > filters ignored paths in non-query mode [FileMessageHandler] Sent final workspaceFiles 1 stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > openFile resolves relative paths against the workspace [FileOperations] Opening file: src/app.ts stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > openFile resolves relative paths against the workspace [FileOperations] File opened successfully: /workspace/src/app.ts stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > openFile keeps UNC paths absolute [FileOperations] Opening file: \\server\share\app.ts stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > openFile keeps UNC paths absolute [FileOperations] File opened successfully: \\server\share\app.ts stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > openFile clamps zero line and column values to the file start [FileOperations] Opening file: src/app.ts:0:0 stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > openFile clamps zero line and column values to the file start [FileOperations] File opened successfully: /workspace/src/app.ts stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > routes resolved image paths back to the requesting attached webview even when a panel exists [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > routes resolved image paths back to the requesting attached webview even when a panel exists [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > marks rejected switch_mode permission requests as failed without cancelling the session [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > marks rejected switch_mode permission requests as failed without cancelling the session [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > replays available skills to the webview after webviewReady [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > replays available skills to the webview after webviewReady [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > replays available commands to the webview after webviewReady [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > replays available commands to the webview after webviewReady [WebViewProvider] Attempting connection... stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > createAndOpenTempFile viewColumn selection > opens in left group when chat webview has a left neighbor [FileMessageHandler] Created and opened readonly file: [object Object] in viewColumn: 1 stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > createAndOpenTempFile viewColumn selection > opens in right group when no left neighbor but right exists [FileMessageHandler] Created and opened readonly file: [object Object] in viewColumn: 2 stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > createAndOpenTempFile viewColumn selection > falls back to ViewColumn.Beside when neither left nor right neighbor exists [FileMessageHandler] Created and opened readonly file: [object Object] in viewColumn: -2 stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > does not report success for api-key settings without interactive auth data [WebViewProvider] Skipping VSCode settings sync for api-key provider; interactive auth owns provider details stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > only syncs non-secret VS Code settings from ~/.qwen/settings.json [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > reacts to auth-related qwen-code setting changes [WebViewProvider] Auth-related qwen-code settings changed by user, syncing... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > clears persisted credentials and disconnects when apiKey is emptied [WebViewProvider] Auth-related qwen-code settings changed by user, syncing... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > clears persisted credentials and disconnects when apiKey is emptied [WebViewProvider] apiKey cleared — de-authenticating and clearing persisted credentials stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > does not de-auth when non-apiKey auth settings change on an api-key provider [WebViewProvider] Auth-related qwen-code settings changed by user, syncing... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > applies the requested initial model after creating a new session [WebViewProvider] Initializing with new session (skipping restoration) stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > applies the requested initial model after creating a new session [WebViewProvider] ACP session created successfully stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > applies the requested initial model after creating a new session [WebViewProvider] Initializing empty conversation stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > applies the requested initial model after creating a new session [WebViewProvider] Empty conversation initialized: null stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > shows orange dot and notification when a long task completes while panel is not active [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > shows orange dot and notification when a long task completes while panel is not active [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show notification for short tasks (< 20s) [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show notification for short tasks (< 20s) [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show notification when user is watching the panel [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show notification when user is watching the panel [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > shows blue dot and notification for permission requests when panel is not active [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > shows blue dot and notification for permission requests when panel is not active [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > blue dot takes priority over orange dot [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > blue dot takes priority over orange dot [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not send duplicate idle notifications for multi-turn tasks [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not send duplicate idle notifications for multi-turn tasks [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show idle notification for background notification turns [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show idle notification for background notification turns [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not notify when notifications setting is disabled [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not notify when notifications setting is disabled [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > cancellation resets agentStartTime so the next short task does not trigger phantom notification [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > cancellation resets agentStartTime so the next short task does not trigger phantom notification [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show dot when dotIndicator setting is disabled [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show dot when dotIndicator setting is disabled [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > notifies when VS Code is focused but panel is not visible [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > notifies when VS Code is focused but panel is not visible [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > notifies when VS Code is not focused but panel is visible [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > notifies when VS Code is not focused but panel is visible [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > shows blue dot and notification for askUserQuestion when panel is not active [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > shows blue dot and notification for askUserQuestion when panel is not active [WebViewProvider] Attempting connection... stderr | src/services/settingsWriter.test.ts > settingsWriter > applyProviderInstallPlanToFile > throws on malformed settings file instead of silently overwriting it [settingsWriter] Failed to parse /tmp/qwen-vscode-settings-gvH8TY/.qwen/settings.json; refusing to overwrite a malformed file. SyntaxError: Expected ',' or ']' after array element in JSON at position 17 (line 1 column 18) at JSON.parse () at readSettings (/startdir/src/qwen-code/packages/vscode-ide-companion/src/services/settingsWriter.ts:185:17) at createFileSettingsAdapter (/startdir/src/qwen-code/packages/vscode-ide-companion/src/services/settingsWriter.ts:436:14) at Module.applyProviderInstallPlanToFile (/startdir/src/qwen-code/packages/vscode-ide-companion/src/services/settingsWriter.ts:545:20) at /startdir/src/qwen-code/packages/vscode-ide-companion/src/services/settingsWriter.test.ts:283:20 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20 at new Promise () at runWithTimeout (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10) stderr | src/services/settingsWriter.test.ts > settingsWriter > snapshotSettingsForRollback / restoreSettingsSnapshot > snapshot returns null on a malformed file and restore is then a no-op [settingsWriter] Failed to parse /tmp/qwen-vscode-settings-P3g59N/.qwen/settings.json; refusing to overwrite a malformed file. SyntaxError: Expected ',' or ']' after array element in JSON at position 17 (line 1 column 18) at JSON.parse () at readSettings (/startdir/src/qwen-code/packages/vscode-ide-companion/src/services/settingsWriter.ts:185:17) at Module.snapshotSettingsForRollback (/startdir/src/qwen-code/packages/vscode-ide-companion/src/services/settingsWriter.ts:563:28) at /startdir/src/qwen-code/packages/vscode-ide-companion/src/services/settingsWriter.test.ts:440:24 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20 at new Promise () at runWithTimeout (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10) at runTest (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1574:12) [settingsWriter] snapshotSettingsForRollback failed; credential rollback disabled: Error ✓ src/services/settingsWriter.test.ts (17 tests) 54ms ✓ src/webview/handlers/FileMessageHandler.test.ts (8 tests) 36ms stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.handleAuthInteractive credential rollback > restores the snapshot when the reconnect leaves authState !== true [WebViewProvider] authInteractive: provider=deepseek, host=api.deepseek.com stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > does not create conversation state or send an empty prompt when all pasted images fail to materialize [SessionMessageHandler] handleSendMessage called with: stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > does not create conversation state or send an empty prompt when all pasted images fail to materialize [SessionMessageHandler] Failed to attach the pasted image. Nothing was sent. Please paste the image again. stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > sends formatted prompt text so session restore can reconstruct pasted images [SessionMessageHandler] handleSendMessage called with: 这是什么内容 stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > sends formatted prompt text so session restore can reconstruct pasted images [SessionMessageHandler] No active conversation, creating one... stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > keeps the conversation store aligned with the ACP session id before editing [SessionMessageHandler] handleSendMessage called with: first prompt stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > keeps the conversation store aligned with the ACP session id before editing [SessionMessageHandler] No active conversation, creating one... stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > keeps the conversation store aligned with the ACP session id before editing [SessionMessageHandler] handleSendMessage called with: edited prompt stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > does not switch to a colliding ACP session id when rename fails [SessionMessageHandler] handleSendMessage called with: first prompt stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > does not switch to a colliding ACP session id when rename fails [SessionMessageHandler] No active conversation, creating one... stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > does not switch to a colliding ACP session id when rename fails [SessionMessageHandler] Failed to align conversation store with ACP session id: conversation-1 session-1 stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > syncs ACP session id alignment through the owning router setter [SessionMessageHandler] handleSendMessage called with: first prompt stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > syncs ACP session id alignment through the owning router setter [SessionMessageHandler] No active conversation, creating one... stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > rewinds the active ACP session before sending an edited message [SessionMessageHandler] handleSendMessage called with: edited prompt stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > restores the edited conversation snapshot when replacement send fails [SessionMessageHandler] handleSendMessage called with: edited prompt stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > restores the edited conversation snapshot when replacement send fails [SessionMessageHandler] Error sending message: Error: send failed at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/handlers/SessionMessageHandler.test.ts:534:46 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20 at new Promise () at runWithTimeout (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10) at runTest (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1574:12) at processTicksAndRejections (node:internal/process/task_queues:104:5) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > continues edits with ACP-only rewind when no local snapshot exists [SessionMessageHandler] handleSendMessage called with: edited prompt stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > continues edits with ACP-only rewind when no local snapshot exists [SessionMessageHandler] Local conversation snapshot missing before edit; continuing with ACP rewind only. stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > recovers a missing edit snapshot from persisted session messages [SessionMessageHandler] handleSendMessage called with: edited prompt stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > restores the edited conversation snapshot when ACP rewind fails [SessionMessageHandler] handleSendMessage called with: edited prompt stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > restores the edited conversation snapshot when ACP rewind fails [SessionMessageHandler] Failed to rewind session: Error: rewind failed at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/handlers/SessionMessageHandler.test.ts:736:48 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20 at new Promise () at runWithTimeout (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10) at runTest (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1574:12) at processTicksAndRejections (node:internal/process/task_queues:104:5) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > restores store and ACP history when saving the edited user message fails [SessionMessageHandler] handleSendMessage called with: edited prompt stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > restores store and ACP history when saving the edited user message fails [SessionMessageHandler] Failed to save user message: Error: storage failed at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/handlers/SessionMessageHandler.test.ts:806:45 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20 at new Promise () at runWithTimeout (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10) at runTest (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1574:12) at processTicksAndRejections (node:internal/process/task_queues:104:5) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > rejects edit submissions with invalid target turn indexes [SessionMessageHandler] handleSendMessage called with: edited prompt stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > rejects edit submissions with invalid target turn indexes [SessionMessageHandler] Invalid message edit target. -1 stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > keeps currentConversationId aligned with the archived sessionId when session/load falls back to a new ACP session [SessionMessageHandler] Switching to session: archived-session stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > keeps currentConversationId aligned with the archived sessionId when session/load falls back to a new ACP session [SessionMessageHandler] session/load failed, using fallback: Error: session not found on server at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/handlers/SessionMessageHandler.test.ts:892:28 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20 at new Promise () at runWithTimeout (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10) at runTest (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1574:12) at processTicksAndRejections (node:internal/process/task_queues:104:5) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > forces a fresh ACP session when the webview requests a new session [SessionMessageHandler] Creating new Qwen session... stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > intercepts /export html and uses the VSCode export flow instead of sending a prompt [SessionMessageHandler] handleSendMessage called with: /export html stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > prefers the active ACP session id over the local conversation id when exporting [SessionMessageHandler] handleSendMessage called with: /export html stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > reports bare /export as a missing subcommand instead of exporting [SessionMessageHandler] handleSendMessage called with: /export stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > reports export failures back to the user [SessionMessageHandler] handleSendMessage called with: /export md stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > reports export failures back to the user [SessionMessageHandler] Failed to export session: Error: disk full at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/handlers/SessionMessageHandler.test.ts:1084:47 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20 at new Promise () at runWithTimeout (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10) at runTest (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1574:12) at processTicksAndRejections (node:internal/process/task_queues:104:5) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > encodes exported file links before rendering markdown [SessionMessageHandler] handleSendMessage called with: /export html stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > handleSetModel — discontinued model defensive validation (Issue #3745) > rejects a non-runtime Qwen OAuth model and surfaces an error [SessionMessageHandler] Rejected discontinued model qwen3-coder-plus(qwen-oauth) ✓ src/webview/handlers/SessionMessageHandler.test.ts (23 tests) 52ms stdout | src/services/qwenAgentManager.test.ts > QwenAgentManager.createNewSession > creates a fresh ACP session when explicitly requested even if one is already active [QwenAgentManager] Creating new session... stdout | src/services/qwenAgentManager.test.ts > QwenAgentManager.createNewSession > creates a fresh ACP session when explicitly requested even if one is already active [QwenAgentManager] newSession returned: { "sessionId": "session-2" } [QwenAgentManager] New session created with ID: session-2 stdout | src/services/qwenAgentManager.test.ts > QwenAgentManager.createNewSession > creates a distinct fresh session after an in-flight bootstrap when forceNew is requested [QwenAgentManager] createNewSession: session creation already in flight stdout | src/services/qwenAgentManager.test.ts > QwenAgentManager.createNewSession > creates a distinct fresh session after an in-flight bootstrap when forceNew is requested [QwenAgentManager] Creating new session... stdout | src/services/qwenAgentManager.test.ts > QwenAgentManager.createNewSession > creates a distinct fresh session after an in-flight bootstrap when forceNew is requested [QwenAgentManager] newSession returned: { "sessionId": "session-2" } [QwenAgentManager] New session created with ID: session-2 ✓ src/services/qwenAgentManager.test.ts (9 tests) 19ms stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.handleAuthInteractive credential rollback > disconnects the agent after rolling back rejected credentials [WebViewProvider] authInteractive: provider=deepseek, host=api.deepseek.com ✓ src/ide-server.test.ts (13 tests | 1 skipped) 186ms stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.handleAuthInteractive credential rollback > does NOT restore when the reconnect authenticates (authState === true) [WebViewProvider] authInteractive: provider=deepseek, host=api.deepseek.com stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.handleAuthInteractive credential rollback > swallows a rollback write failure so the authError message still sends [WebViewProvider] authInteractive: provider=deepseek, host=api.deepseek.com stderr | src/extension.test.ts > activate > should not show the info message on subsequent activations [ReadonlyFileSystemProvider] Instance already exists, replacing with new instance stderr | src/extension.test.ts > activate > should register a handler for onDidGrantWorkspaceTrust [ReadonlyFileSystemProvider] Instance already exists, replacing with new instance stderr | src/extension.test.ts > activate > should register the webview view provider for the sidebar position [ReadonlyFileSystemProvider] Instance already exists, replacing with new instance stderr | src/extension.test.ts > activate > should launch the Qwen Code when the user clicks the button [ReadonlyFileSystemProvider] Instance already exists, replacing with new instance stderr | src/extension.test.ts > activate > update notification > should show an update notification if a newer version is available [ReadonlyFileSystemProvider] Instance already exists, replacing with new instance stderr | src/extension.test.ts > activate > update notification > should not show an update notification if the version is the same [ReadonlyFileSystemProvider] Instance already exists, replacing with new instance stderr | src/extension.test.ts > activate > update notification > does not show the notification for 'cloudshell' [ReadonlyFileSystemProvider] Instance already exists, replacing with new instance stderr | src/extension.test.ts > activate > update notification > does not show the notification for 'firebasestudio' [ReadonlyFileSystemProvider] Instance already exists, replacing with new instance stderr | src/extension.test.ts > activate > update notification > should not show an update notification if the version is older [ReadonlyFileSystemProvider] Instance already exists, replacing with new instance stderr | src/extension.test.ts > activate > update notification > should execute the install command when the user clicks "Update" [ReadonlyFileSystemProvider] Instance already exists, replacing with new instance stderr | src/extension.test.ts > activate > update notification > should handle fetch errors gracefully [ReadonlyFileSystemProvider] Instance already exists, replacing with new instance ✓ src/extension.test.ts (12 tests) 86ms stderr | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.handleAuthInteractive credential rollback > swallows a rollback write failure so the authError message still sends [WebViewProvider] settings rollback failed: Error: EPERM: rename failed at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.test.ts:1901:13 at mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at spy (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at safeRollback (/startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.ts:1395:9) at WebViewProvider.handleAuthInteractive (/startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.ts:1447:9) at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.test.ts:1917:5 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20 stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.handleAuthInteractive credential rollback > rolls back + disconnects + reports authError when doInitializeAgentConnection throws (outer catch) [WebViewProvider] authInteractive: provider=deepseek, host=api.deepseek.com stderr | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.handleAuthInteractive credential rollback > rolls back + disconnects + reports authError when doInitializeAgentConnection throws (outer catch) [WebViewProvider] authInteractive failed: Error: disk exploded mid-reconnect at WebViewProvider. (/startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.test.ts:1954:13) at WebViewProvider.mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at WebViewProvider.spy [as doInitializeAgentConnection] (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at WebViewProvider.handleAuthInteractive (/startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.ts:1432:18) at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.test.ts:1957:5 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20 [WebViewProvider] settings rollback failed: Error: EPERM: rename failed at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.test.ts:1901:13 at mockCall (file:///startdir/src/qwen-code/node_modules/@vitest/spy/dist/index.js:96:15) at spy (file:///startdir/src/qwen-code/node_modules/tinyspy/dist/index.js:47:103) at safeRollback (/startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.ts:1395:9) at WebViewProvider.handleAuthInteractive (/startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.ts:1469:7) at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.test.ts:1957:5 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20 ✓ src/webview/providers/WebViewProvider.test.ts (48 tests) 1747ms ✓ WebViewProvider.handleAuthInteractive credential rollback > restores the snapshot when the reconnect leaves authState !== true 335ms ✓ WebViewProvider.handleAuthInteractive credential rollback > disconnects the agent after rolling back rejected credentials 311ms ✓ WebViewProvider.handleAuthInteractive credential rollback > does NOT restore when the reconnect authenticates (authState === true) 307ms ✓ WebViewProvider.handleAuthInteractive credential rollback > swallows a rollback write failure so the authError message still sends 326ms ✓ WebViewProvider.handleAuthInteractive credential rollback > rolls back + disconnects + reports authError when doInitializeAgentConnection throws (outer catch) 308ms Test Files 47 passed (47) Tests 432 passed | 1 skipped (433) Start at 12:28:03 Duration 14.31s (transform 19.73s, setup 0ms, collect 161.41s, tests 4.31s, environment 6.92s, prepare 7.13s) > @qwen-code/web-shell@0.19.2 test > vitest run --exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts RUN v3.2.4 /startdir/src/qwen-code/packages/web-shell/client ✓ adapters/transcriptAdapter.test.ts (6 tests) 12ms ✓ build-artifact.test.ts (5 tests) 21ms ✓ utils/copyCommand.test.ts (11 tests) 43ms ✓ midTurnDedup.test.ts (12 tests) 31ms ✓ components/messages/toolFormatting.test.ts (28 tests) 25ms ✓ adapters/transcriptToMessages.test.ts (97 tests) 115ms ✓ voice/useVoiceCapture.test.tsx (9 tests) 116ms ✓ components/Editor.keymap.test.ts (5 tests) 118ms ✓ components/messages/SettingsMessage.test.ts (10 tests) 4ms ✓ completions/slashCompletion.test.ts (19 tests) 27ms ✓ components/MessageTimestamp.test.tsx (5 tests) 40ms ✓ config/daemon.test.ts (14 tests) 587ms ✓ getAllowedDaemonOrigin (via getDaemonBaseUrl) > accepts same-origin daemon URL 369ms ✓ voice/VoiceButton.test.tsx (3 tests) 104ms ✓ components/messages/TodoView.test.tsx (4 tests) 113ms ✓ components/MessageList.dom.test.tsx (8 tests) 130ms ✓ components/messages/PlanMessage.test.tsx (6 tests) 93ms ✓ components/messages/Markdown.test.ts (22 tests) 46ms ✓ components/messages/AssistantMessage.test.tsx (3 tests) 9ms ✓ components/messages/UserMessage.test.tsx (2 tests) 53ms ✓ utils/todos.test.ts (64 tests) 21ms ✓ components/messages/ToolApproval.test.ts (2 tests) 3ms ✓ hooks/useComposerCore.test.ts (10 tests) 5ms ✓ components/messages/ToolGroup.test.tsx (10 tests) 10ms ✓ components/messages/tools/SubAgentPanel.test.tsx (3 tests) 56ms ✓ components/MessageList.test.ts (62 tests) 37ms Test Files 25 passed (25) Tests 420 passed (420) Start at 12:28:18 Duration 7.67s (transform 15.60s, setup 0ms, collect 44.88s, tests 1.82s, environment 6.36s, prepare 4.94s) > @qwen-code/webui@0.19.2 test > vitest run --exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts RUN v3.2.4 /startdir/src/qwen-code/packages/webui ✓ src/daemon/session/selectors.test.ts (7 tests) 8ms ✓ src/daemon/session/promptContent.test.ts (2 tests) 37ms ✓ src/daemon/session/mappers.test.ts (8 tests) 14ms ✓ src/components/toolcalls/labelUtils.test.ts (8 tests) 51ms Browserslist: browsers data (caniuse-lite) is 8 months old. Please run: npx update-browserslist-db@latest Why you should do it regularly: https://github.com/browserslist/update-db#readme ✓ src/daemon/session/clientLifecycle.test.ts (13 tests) 101ms stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > loads data on autoLoad The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > loads data on autoLoad The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > loads data on autoLoad The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > loads data on autoLoad The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > does not load when enabled is false The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > does not load when enabled is false The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > reports error on load failure The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > reports error on load failure The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > reports error on load failure The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > reports error on load failure The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > stale response does not overwrite fresh data The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > stale response does not overwrite fresh data The current testing environment is not configured to support act(...) The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > stale response does not overwrite fresh data The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > stale response does not overwrite fresh data The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > stale error does not overwrite fresh data The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > stale error does not overwrite fresh data The current testing environment is not configured to support act(...) The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > stale error does not overwrite fresh data The current testing environment is not configured to support act(...) stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > stale error does not overwrite fresh data The current testing environment is not configured to support act(...) ✓ src/daemon/workspace/hooks/useDaemonResource.test.tsx (5 tests) 44ms ✓ src/components/messages/MarkdownRenderer/MarkdownRenderer.test.tsx (2 tests) 61ms ✓ src/components/PermissionDrawer.test.tsx (2 tests) 55ms ✓ src/components/messages/MessageMeta.test.tsx (4 tests) 85ms ✓ src/components/toolcalls/routing.test.ts (11 tests) 18ms ✓ src/daemon/transcriptAdapter.test.ts (9 tests) 8ms stdout | src/daemon/midTurnInjectedSidechannel.test.ts > mid-turn injected sidechannel pub/sub > caps the buffer, evicting oldest batches past the limit [mid-turn] sidechannel buffer over 64; evicting 1 oldest batch(es) [mid-turn] sidechannel buffer over 64; evicting 1 oldest batch(es) [mid-turn] sidechannel buffer over 64; evicting 1 oldest batch(es) [mid-turn] sidechannel buffer over 64; evicting 1 oldest batch(es) [mid-turn] sidechannel buffer over 64; evicting 1 oldest batch(es) [mid-turn] sidechannel buffer over 64; evicting 1 oldest batch(es) ✓ src/daemon/midTurnInjectedSidechannel.test.ts (11 tests) 11ms ✓ src/components/ChatViewer/ChatViewer.test.tsx (2 tests) 17ms ✓ src/daemon/workspace/DaemonWorkspaceProvider.test.tsx (9 tests) 71ms stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps capabilities handshake failures out of the transcript [DaemonSessionProvider] retriable SSE error, preserving session for delta resume (sessionId=undefined) stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > uses session context models over workspace provider defaults [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > falls back to provider context window for session context models [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > falls back to provider models when session context only has current model [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not use provider context window for an unmatched session model [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > adds daemon goal status metadata to the transcript [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > adds daemon goal status metadata to the transcript [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes mid_turn_message_injected frames to the sidechannel and transcript [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps prompt loading active after non-blocking prompt acceptance [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps prompt loading active after non-blocking prompt acceptance [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles non-blocking prompts when turn completion arrives before acceptance returns [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles non-blocking prompts when turn completion arrives before acceptance returns [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > allows the next prompt after a turn completes before acceptance returns [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > allows the next prompt after a turn completes before acceptance returns [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > rejects the prompt when turn_error arrives before acceptance returns [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > rejects the prompt when turn_error arrives before acceptance returns [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > sends image prompt content through the daemon action [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > passes retry prompts through the daemon action [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > submits permission selections with optional answers [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes pending permission blocks [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes pending permission blocks [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes workspace event signals from daemon session events [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes workspace event signals from daemon session events [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > treats prompt abort during cancel as cancellation and keeps busy until cancel completes [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > ends assistant streaming when prompt fails with a non-abort error [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not insert abort errors from shell commands into the transcript [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps cancellation turn errors in the transcript [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps cancellation turn errors in the transcript [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes prompt cancellation events as transcript blocks [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes prompt cancellation events as transcript blocks [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps forward-failed prompt cancellations out of blocks [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps forward-failed prompt cancellations out of blocks [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes catchingUp on resume and clears it on replay_complete [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > never sets catchingUp on a fresh subscription (no Last-Event-ID) [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears prompt state and transcript when reconnect attaches a different session [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > reuses the same session client after a normal SSE stream end [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > reuses the same session client after a normal SSE stream end [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not inject replay snapshot again after a normal SSE stream end [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not inject replay snapshot again after a normal SSE stream end [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > injects replay snapshot on initial session load [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps replayed non-turn events from marking a prompt as waiting [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > marks replayed user turns without terminal events as waiting [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > finishes replayed assistant streaming when replay ends with turn_error [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > finishes each completed turn in replay snapshots [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not let replay state events overwrite fresh connection status [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > uses providers current model when session context has no model [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > seeds tokenCount from the latest replay usage on attach [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps the in-memory tokenCount across SSE re-subscribe when replay has no usage [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps the in-memory tokenCount across SSE re-subscribe when replay has no usage [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > resets tokenCount when reconnect attaches a different session without replay usage [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > bumps workspace event signals from replay snapshot events [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > finishes passive assistant streaming when no prompt action is active [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > finishes replayed assistant streaming when replay completes [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > creates a fresh thread session without cancelling the previous session [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > creates a fresh thread session without cancelling the previous session [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > uses session-scoped client IDs when switching between loaded sessions [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > uses session-scoped client IDs when switching between loaded sessions An update to DaemonSessionProvider inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to DaemonSessionProvider inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to DaemonSessionProvider inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to DaemonSessionProvider inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > uses session-scoped client IDs when switching between loaded sessions [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > uses session-scoped client IDs when switching between loaded sessions An update to DaemonSessionProvider inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to DaemonSessionProvider inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to DaemonSessionProvider inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to DaemonSessionProvider inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > uses session-scoped client IDs when switching between loaded sessions [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > reuses the branched session client when switching after branch [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > reuses the branched session client when switching after branch [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes daemon capabilities on the connection state [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > exposes the restored session display name on the connection state [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > updates the connection display name from metadata events [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > recovers internally when the daemon requests a state resync [DaemonSessionProvider] ring eviction detected, reloading session (sessionId=session-resync) stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > recovers internally when the daemon requests a state resync [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > marks the connection unhealthy after repeated heartbeat failures [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > ignores stale connect attempts after provider props change [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > ignores stale connect attempts after provider props change [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > rejects interrupted session loads as AbortError during cleanup [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4171 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4171 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > rejects interrupted session loads as AbortError during cleanup [DaemonSessionProvider] retriable SSE error, preserving session for delta resume (sessionId=undefined) stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > rejects interrupted session loads as AbortError during cleanup [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears the session when reconnect is disabled after SSE stream end [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears the session when reconnect is disabled after SSE stream end [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > still reconnects on 410 session-not-found errors when autoReconnect is true [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > leaves missing sessions disconnected on 404 when requested [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > times out hung setModel actions [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > times out hung respondToPermission actions [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > resets stale transcript and accepts replay after epoch-reset resync [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > reloads the session snapshot after ring-evicted resync [DaemonSessionProvider] ring eviction detected, reloading session (sessionId=session-ring-evicted) stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > reloads the session snapshot after ring-evicted resync [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles active prompts from replay snapshot after ring eviction [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles active prompts from replay snapshot after ring eviction [DaemonSessionProvider] ring eviction detected, reloading session (sessionId=session-ring-active-prompt) stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > rejects active prompts from replay turn_error after ring eviction [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > rejects active prompts from replay turn_error after ring eviction [DaemonSessionProvider] ring eviction detected, reloading session (sessionId=session-ring-active-error) stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not settle unaccepted prompts from historical replay turns [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not settle unaccepted prompts from historical replay turns [DaemonSessionProvider] ring eviction detected, reloading session (sessionId=session-ring-unaccepted-prompt) stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not settle unaccepted prompts from historical replay turns [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not settle unaccepted prompts from historical replay turns [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps own user messages when replay rebuilds after ring eviction [DaemonSessionProvider] ring eviction detected, reloading session (sessionId=session-own-user-replay) stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps own user messages when replay rebuilds after ring eviction [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > skips malformed replay events without dropping later replay history [DaemonSessionProvider] ring eviction detected, reloading session (sessionId=session-bad-replay) stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > skips malformed replay events without dropping later replay history [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > skips malformed replay events without dropping later replay history [DaemonSessionProvider] retriable SSE error, preserving session for delta resume (sessionId=session-bad-replay) stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > skips malformed replay events without dropping later replay history [DaemonSessionProvider] skipped malformed replay event: Error: bad replay payload at Object.get (/startdir/src/qwen-code/packages/webui/src/daemon/session/DaemonSessionProvider.test.tsx:4405:15) at extractServerTimestamp (/startdir/src/qwen-code/packages/sdk-typescript/src/daemon/ui/normalizer.ts:476:22) at createBase (/startdir/src/qwen-code/packages/sdk-typescript/src/daemon/ui/normalizer.ts:440:27) at normalizeDaemonEvent (/startdir/src/qwen-code/packages/sdk-typescript/src/daemon/ui/normalizer.ts:58:16) at normalizeAndFilterEvent (/startdir/src/qwen-code/packages/webui/src/daemon/session/DaemonSessionProvider.tsx:1352:22) at run (/startdir/src/qwen-code/packages/webui/src/daemon/session/DaemonSessionProvider.tsx:619:40) stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > retries when ring-evicted reload fails once [DaemonSessionProvider] ring eviction detected, reloading session (sessionId=session-ring-retry) stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > retries when ring-evicted reload fails once [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > retries when ring-evicted reload fails once [DaemonSessionProvider] retriable SSE error, preserving session for delta resume (sessionId=undefined) stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > accepts live events after ring-evicted reload reconnects [DaemonSessionProvider] ring eviction detected, reloading session (sessionId=session-reattach) stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > accepts live events after ring-evicted reload reconnects [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > preserves session and uses delta resume after a retriable SSE error [DaemonSessionProvider] retriable SSE error, preserving session for delta resume (sessionId=session-1) stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > preserves session and uses delta resume after a retriable SSE error [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes session_died errors to notices, not transcript [DaemonSessionProvider] daemon notice: { message: 'Session died (no details available)', debugMessage: 'Session died (no details available)', recoverable: false, severity: 'error', category: 'connection', operation: 'stream', code: 'daemon.session_died', id: 'daemon-notice-1783081714657-1', createdAt: 1783081714657 } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes session_died errors to notices, not transcript [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes session_died errors to notices, not transcript [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes stream_error to notices with connection category [DaemonSessionProvider] daemon notice: { message: 'SSE stream error (no details available)', debugMessage: 'SSE stream error (no details available)', recoverable: true, severity: 'warning', category: 'connection', operation: 'stream', code: 'daemon.stream_error', id: 'daemon-notice-1783081715145-1', createdAt: 1783081715145 } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes stream_error to notices with connection category [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes stream_error to notices with connection category [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes model_switch_failed to notices with user_action category [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps turn_error in transcript instead of routing to notices [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes client_evicted to notices with connection category [DaemonSessionProvider] daemon notice: { message: 'Another client connected', debugMessage: 'Another client connected', recoverable: true, severity: 'warning', category: 'connection', operation: 'stream', code: 'daemon.client_evicted', id: 'daemon-notice-1783081715156-1', createdAt: 1783081715156 } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > routes client_evicted to notices with connection category [DaemonSessionProvider] SSE stream ended ✓ src/daemon/session/DaemonSessionProvider.test.tsx (89 tests) 1474ms Test Files 15 passed (15) Tests 182 passed (182) Start at 12:28:28 Duration 6.33s (transform 7.16s, setup 0ms, collect 17.05s, tests 2.06s, environment 4.40s, prepare 19.94s) > @qwen-code/channel-telegram@0.19.2 test > vitest run --exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts RUN v3.2.4 /startdir/src/qwen-code/packages/channels/telegram ✓ src/TelegramAdapter.test.ts (1 test) 7ms Test Files 1 passed (1) Tests 1 passed (1) Start at 12:28:35 Duration 1.01s (transform 182ms, setup 0ms, collect 502ms, tests 7ms, environment 0ms, prepare 179ms) > @qwen-code/channel-dingtalk@0.19.2 test > vitest run --exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts RUN v3.2.4 /startdir/src/qwen-code/packages/channels/dingtalk ✓ src/markdown.test.ts (26 tests) 19ms ✓ src/DingtalkAdapter.test.ts (3 tests) 6ms Test Files 2 passed (2) Tests 29 passed (29) Start at 12:28:37 Duration 700ms (transform 211ms, setup 0ms, collect 249ms, tests 24ms, environment 0ms, prepare 390ms) > @qwen-code/channel-qqbot@0.19.2 test > vitest run --exclude=**/{qwenConnectionHandler,useAtCompletion,pid-descendants}.test.ts RUN v3.2.4 /startdir/src/qwen-code/packages/channels/qqbot ✓ src/accounts.test.ts (8 tests) 14ms ✓ src/api.test.ts (13 tests) 32ms [QQ:test-bot] Markdown rejected (HTTP 400: markdown unsupported), retrying as plain text [QQ:test-bot] Send HTTP 500 (msg_seq=-): [QQ:test-bot] Token refresh failed: Error: token endpoint down, retrying in 60s [QQ:test-bot] Token refresh failed: Error: still down, retrying in 60s [QQ:test-bot] RC: gateway down (retry in 2000ms, attempt 1/5) [QQ:test-bot] RC: gateway down (retry in 4000ms, attempt 2/5) [QQ:test-bot] RC: gateway down (retry in 8000ms, attempt 3/5) [QQ:test-bot] RC: gateway down (retry in 16000ms, attempt 4/5) [QQ:test-bot] RC: gateway down (retry in 30000ms, attempt 5/5) [QQ:test-bot] RC: exhausted 5 reconnect retries, will retry in 60s [QQ:test-bot] RC: reconnect attempts exhausted, giving up [QQ:test-bot] RC: token refresh failed, retrying... [QQ:test-bot] RC: token refresh failed, retrying... [QQ:test-bot] RC: token refresh failed, retrying... [QQ:test-bot] RC: token refresh failed, retrying... [QQ:test-bot] RC: token refresh failed, retrying... [QQ:test-bot] RC: exhausted 5 reconnect retries, will retry in 60s [QQ:test-bot] Send error: Error: network down [QQ:test-bot] WebSocket closed (code=4001) [QQ:test-bot] Reconnecting in 2000ms (attempt 1/20) ✓ src/send.test.ts (45 tests) 86ms Test Files 3 passed (3) Tests 66 passed (66) Start at 12:28:38 Duration 897ms (transform 265ms, setup 0ms, collect 460ms, tests 132ms, environment 1ms, prepare 506ms) ==> ERROR: A failure occurred in check(). Aborting... ==> ERROR: Build failed, check /home/alhp/workspace/chroot/build_f47124f2-8107-49c8-8c7a-ca3e314c9fac/build