==> Synchronizing chroot copy [/home/alhp/workspace/chroot/root] -> [build_868e8784-9781-43f2-9305-c1e238cde4c6]...done ==> Making package: qwen-code 0.19.3-1.1 (Fri Jul 31 14:16:06 2026) ==> Retrieving sources... -> Cloning qwen-code git repo... Cloning into bare repository '/home/alhp/workspace/build/x86-64-v2/qwen-code-0.19.3-1/qwen-code'... ==> Validating source files with sha256sums... qwen-code ... Passed ==> Validating source files with b2sums... qwen-code ... Passed Note: in a future version of systemd-nspawn the default set of permitted socket address families will be restricted to AF_INET, AF_INET6 and AF_UNIX. Use --restrict-address-families= to configure the set of permitted socket address families, or set RestrictAddressFamilies= in a .nspawn file. ==> Making package: qwen-code 0.19.3-1.1 (Fri Jul 31 12:17:42 2026) ==> Checking runtime dependencies... ==> Installing missing dependencies... resolving dependencies... looking for conflicting packages... Package (6) New Version Net Change extra/ada 3.4.4-1 1.08 MiB extra/c-ares 1.34.8-1 0.53 MiB extra/libuv 1.52.1-1 0.64 MiB extra/simdjson 1:4.6.4-1 7.58 MiB extra/nodejs 26.5.0-1 61.19 MiB extra/ripgrep 15.2.0-1 4.29 MiB Total Installed Size: 75.31 MiB :: Proceed with installation? [Y/n] checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing ada... installing c-ares... installing libuv... installing simdjson... installing nodejs... Optional dependencies for nodejs npm: nodejs package manager installing ripgrep... :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... ==> Checking buildtime dependencies... ==> Installing missing dependencies... resolving dependencies... looking for conflicting packages... Package (11) New Version Net Change extra/node-gyp 13.0.1-1 6.74 MiB extra/nodejs-nopt 10.0.1-1 0.03 MiB extra/oniguruma 6.9.10-1 0.88 MiB extra/perl-error 0.17030-3 0.04 MiB extra/perl-mailtools 2.22-3 0.10 MiB extra/perl-timedate 2.35-1 0.15 MiB extra/semver 7.8.5-1 0.10 MiB extra/zlib-ng 2.3.3-1 0.28 MiB extra/git 2.55.0-1 31.33 MiB extra/jq 1.8.2-1 0.47 MiB extra/npm 12.0.1-1 9.39 MiB Total Installed Size: 49.50 MiB :: Proceed with installation? [Y/n] checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing perl-error... installing perl-timedate... installing perl-mailtools... installing zlib-ng... installing git... Optional dependencies for git git-zsh-completion: upstream zsh completion tk: gitk and git gui openssh: ssh transport and crypto man: show help with `git command --help` perl-libwww: git svn perl-term-readkey: git svn and interactive.singlekey setting perl-io-socket-ssl: git send-email TLS support perl-authen-sasl: git send-email TLS support perl-cgi: gitweb (web interface) support python: git svn & git p4 [installed] subversion: git svn org.freedesktop.secrets: keyring credential helper libsecret: libsecret credential helper [installed] less: the default pager for git installing oniguruma... installing jq... installing nodejs-nopt... installing semver... installing node-gyp... Optional dependencies for node-gyp gcc: to build C++ modules [installed] make: to build C++ modules [installed] python: to build C++ modules [installed] installing npm... Optional dependencies for npm git: for dependencies using Git URL's [installed] :: Running post-transaction hooks... (1/3) Creating system user accounts... Creating group 'git' with GID 969. Creating user 'git' (git daemon user) with UID 969 and GID 969. (2/3) Reloading system manager configuration... Skipped: Current root is not booted. (3/3) Arming ConditionNeedsUpdate... ==> Retrieving sources... ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources... -> Creating working copy of qwen-code git repo... Cloning into 'qwen-code'... done. 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 node-domexception@1.0.0: Use your platform's native DOMException instead npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. npm warn deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead npm warn deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm warn deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options. npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported added 1814 packages, and audited 1832 packages in 34s 541 packages are looking for funding run `npm fund` for details 71 vulnerabilities (3 low, 37 moderate, 25 high, 6 critical) To address issues that do not require attention, run: npm audit fix To address all issues (including breaking changes), run: npm audit fix --force Run `npm audit` for details. patch-package 8.0.1 Applying patches... ink@7.0.3 ✔ ==> Starting build()... npm notice run @qwen-code/qwen-code@0.19.3 build npm notice run cross-env NODE_OPTIONS="--max-old-space-size=3072" node scripts/build.js npm notice run @qwen-code/qwen-code@0.19.3 generate npm notice run node scripts/generate-git-commit-info.js npm notice run @qwen-code/qwen-code-core@0.19.3 build npm notice run node ../../scripts/build_package.js Successfully copied files. npm notice run @qwen-code/web-templates@0.19.3 build npm notice run node build.mjs && tsc --build --clean && tsc Building web-templates... Building insight assets with Vite... vite v5.4.21 building for production... transforming... Browserslist: browsers data (caniuse-lite) is 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 175ms Reading generated files... Successfully generated /startdir/src/qwen-code/packages/web-templates/src/generated/insightTemplate.ts Successfully built all web-templates. npm notice run @qwen-code/channel-base@0.19.3 build npm notice run tsc --build npm notice run @qwen-code/channel-telegram@0.19.3 build npm notice run tsc --build npm notice run @qwen-code/channel-weixin@0.19.3 build npm notice run tsc --build npm notice run @qwen-code/channel-dingtalk@0.19.3 build npm notice run tsc --build npm notice run @qwen-code/channel-feishu@0.19.3 build npm notice run tsc --build npm notice run @qwen-code/channel-qqbot@0.19.3 build npm notice run tsc --build npm notice run @qwen-code/channel-plugin-example@0.19.3 build npm notice run tsc --build npm notice run @qwen-code/audio-capture@0.19.3 build:ts npm notice run tsc --build npm notice run @qwen-code/acp-bridge@0.19.3 build npm notice run node ../../scripts/build_package.js Successfully copied files. npm notice run @qwen-code/qwen-code@0.19.3 build npm notice run node ../../scripts/build_package.js Successfully copied files. Generated settings JSON Schema at: /startdir/src/qwen-code/packages/vscode-ide-companion/schemas/settings.schema.json (node:1566) [DEP0205] DeprecationWarning: `module.register()` is deprecated. Use `module.registerHooks()` instead. (Use `node --trace-deprecation ...` to show where the warning was created) npm notice run @qwen-code/webui@0.19.3 build npm notice run 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 138.65 kB │ gzip: 25.56 kB │ map: 267.73 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 4769ms. 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 139.59 kB │ gzip: 25.56 kB │ map: 268.91 kB dist/index.cjs 398.60 kB │ gzip: 98.60 kB │ map: 839.55 kB ✓ built in 5.74s npm notice run @qwen-code/sdk@0.1.8 build npm notice run node scripts/build.js npm notice run @qwen-code/qwen-code@0.19.3 npx npm notice run 'dts-bundle-generator' --project tsconfig.build.json -o dist/index.d.ts src/index.ts Compiling input files... Processing src/index.ts Writing src/index.ts -> dist/index.d.ts Checking generated files... Compiler option "skipLibCheck" is disabled to properly check generated output Done in 9.09s npm notice run @qwen-code/web-shell@0.19.3 build npm notice run vite build && vite build --config vite.lib.config.ts && tsc -p tsconfig.lib.json vite v5.4.21 building for production... transforming... ✓ 2856 modules transformed. rendering chunks... computing gzip size... ../dist/index.html 1.10 kB │ gzip: 0.64 kB ../dist/assets/insert-DmRbh9Rv.svg 4.16 kB │ gzip: 1.20 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/default-aEtf0G7-.svg 8.90 kB │ gzip: 2.64 kB ../dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 9.64 kB ../dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 10.34 kB ../dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf 10.36 kB ../dist/assets/KaTeX_Script-Regular-D5yQViql.woff 10.59 kB ../dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 11.32 kB ../dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 11.35 kB ../dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf 11.51 kB ../dist/assets/queue-DWpnpFgW.svg 11.56 kB │ gzip: 2.42 kB ../dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 12.03 kB ../dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 12.22 kB ../dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf 12.23 kB ../dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff 12.32 kB ../dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf 12.34 kB ../dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf 12.37 kB ../dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff 13.21 kB ../dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff 13.30 kB ../dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 13.57 kB ../dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff 14.11 kB ../dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff 14.41 kB ../dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff 16.03 kB ../dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 16.40 kB ../dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 16.44 kB ../dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf 16.65 kB ../dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 16.78 kB ../dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 16.99 kB ../dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff 18.67 kB ../dist/assets/KaTeX_Math-Italic-DA0__PXp.woff 18.75 kB ../dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff 19.41 kB ../dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf 19.44 kB ../dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf 19.57 kB ../dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf 19.58 kB ../dist/assets/KaTeX_Main-Italic-BMLOBm91.woff 19.68 kB ../dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf 22.36 kB ../dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf 24.50 kB ../dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 25.32 kB ../dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 26.27 kB ../dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf 27.56 kB ../dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 28.08 kB ../dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff 29.91 kB ../dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff 30.77 kB ../dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf 31.20 kB ../dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf 31.31 kB ../dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf 32.97 kB ../dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff 33.52 kB ../dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf 33.58 kB ../dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf 51.34 kB ../dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf 53.58 kB ../dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf 63.63 kB ../dist/assets/index-CHmzAWys.css 181.94 kB │ gzip: 34.84 kB ../dist/assets/channel-iRo68q4Q.js 0.11 kB │ gzip: 0.13 kB ../dist/assets/init-Gi6I4Gst.js 0.15 kB │ gzip: 0.13 kB ../dist/assets/chunk-QZHKN3VN-aTJD3lSQ.js 0.19 kB │ gzip: 0.16 kB ../dist/assets/chunk-55IACEB6-B7bnXNfu.js 0.24 kB │ gzip: 0.21 kB ../dist/assets/chunk-4BX2VUAB-BkKMlwBX.js 0.30 kB │ gzip: 0.21 kB ../dist/assets/chunk-FMBD7UC4-GHr2LN_p.js 0.37 kB │ gzip: 0.27 kB ../dist/assets/stateDiagram-v2-BHNVJYJU-t1LRI0oY.js 0.39 kB │ gzip: 0.29 kB ../dist/assets/classDiagram-4FO5ZUOK-iHF24a8X.js 0.47 kB │ gzip: 0.32 kB ../dist/assets/classDiagram-v2-Q7XG4LA2-iHF24a8X.js 0.47 kB │ gzip: 0.32 kB ../dist/assets/chunk-2J33WTMH-mdeQVz59.js 0.53 kB │ gzip: 0.37 kB ../dist/assets/codeowners-Bp6g37R7.js 0.55 kB │ gzip: 0.32 kB ../dist/assets/infoDiagram-5YYISTIA-CuB8Ebua.js 0.59 kB │ gzip: 0.41 kB ../dist/assets/shellsession-C_rIy8kc.js 0.72 kB │ gzip: 0.43 kB ../dist/assets/tsv-B_m7g4N7.js 0.74 kB │ gzip: 0.34 kB ../dist/assets/html-derivative-CSfWNPLT.js 0.97 kB │ gzip: 0.53 kB ../dist/assets/git-rebase-B-v9cOL2.js 0.98 kB │ gzip: 0.44 kB ../dist/assets/qmldir-C8lEn-DE.js 1.00 kB │ gzip: 0.45 kB ../dist/assets/fortran-fixed-form-TqA4NnZg.js 1.11 kB │ gzip: 0.54 kB ../dist/assets/ordinal-Cboi1Yqb.js 1.19 kB │ gzip: 0.57 kB ../dist/assets/csv-B0qRVHPH.js 1.22 kB │ gzip: 0.37 kB ../dist/assets/xsl-Dd0NUgwM.js 1.39 kB │ gzip: 0.52 kB ../dist/assets/sparql-bYkjHRlG.js 1.51 kB │ gzip: 0.83 kB ../dist/assets/ini-BjABl1g7.js 1.53 kB │ gzip: 0.50 kB ../dist/assets/git-commit-i4q6IMui.js 1.55 kB │ gzip: 0.67 kB ../dist/assets/dotenv-BjQB5zDj.js 1.70 kB │ gzip: 0.63 kB ../dist/assets/wenyan-7A4Fjokl.js 1.71 kB │ gzip: 1.08 kB ../dist/assets/docker-COcR7UxN.js 1.77 kB │ gzip: 0.60 kB ../dist/assets/hxml-TIA70rKU.js 1.83 kB │ gzip: 0.89 kB ../dist/assets/chunk-ND2GUHAM-7R91lnUx.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-BqGRzwSc.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-DA7r8Ueo.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-BRydGNW5.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-Q4dTyLeF.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-CZqRdJIU.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-CROtRy1w.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-CA9PEBUo.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-CMrcEtA7.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-_sgp3WuA.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-D0ilgNjV.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-D_tyhVwh.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-PZUtcbPx.js 20.70 kB │ gzip: 7.23 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-D_Y75ID7.js 23.36 kB │ gzip: 7.81 kB ../dist/assets/sankeyDiagram-5OEKKPKP-CHuZ_ecH.js 23.39 kB │ gzip: 8.54 kB ../dist/assets/journeyDiagram-JHISSGLW-CgCwJQNU.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-BOn6hKss.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-2lnQeJUM.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-HDXI-F1B.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-DbVDm4It.js 31.20 kB │ gzip: 9.69 kB ../dist/assets/timeline-definition-PNZ67QCA-Bhlo4WVc.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-ckw329Ft.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-BQAydUNk.js 37.55 kB │ gzip: 12.11 kB ../dist/assets/xychartDiagram-2RQKCTM6-BsP4-I_y.js 40.39 kB │ gzip: 11.48 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-6xtPLsyl.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-DGz8Mm6i.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-C_ZMdQiC.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-Dw9V_Ny0.js 69.29 kB │ gzip: 23.10 kB ../dist/assets/c4Diagram-AAUBKEIU-BHFjzIi4.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-vrtOf1kJ.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-BTf8t1RL.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-DU2YSpq-.js 117.29 kB │ gzip: 30.92 kB ../dist/assets/mdx-sdHcTMYB.js 140.36 kB │ gzip: 23.83 kB ../dist/assets/architectureDiagram-3BPJPVTR-ZDUxPtZ2.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-3eozmXPf.js 615.19 kB │ gzip: 147.94 kB ../dist/assets/mermaid.core-CPW_4UEF.js 619.27 kB │ gzip: 147.86 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-w6GTOHh1.js 1,818.67 kB │ gzip: 552.44 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 6.93s vite v5.4.21 building for production... transforming... ✓ 156 modules transformed. rendering chunks... computing gzip size... dist/index.js 1,028.89 kB │ gzip: 245.19 kB ✓ built in 910ms npm notice run qwen-code-vscode-ide-companion@0.19.3 build npm notice run npm run build:dev npm notice run qwen-code-vscode-ide-companion@0.19.3 build:dev npm notice run npm run check-types && npm run lint && node esbuild.js npm notice run qwen-code-vscode-ide-companion@0.19.3 check-types npm notice run tsc --noEmit npm notice run qwen-code-vscode-ide-companion@0.19.3 lint npm notice run 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 npm notice run @qwen-code/qwen-code@0.19.3 bundle npm notice run npm run generate && node esbuild.config.js && node scripts/copy_bundle_assets.js npm notice run @qwen-code/qwen-code@0.19.3 generate npm notice run node scripts/generate-git-commit-info.js Copied sandbox profiles to dist/ Copying vendor directory... Copied vendor directory to dist/ Copied bundled skills to dist/bundled/ Copied docs/users/ to dist/bundled/qc-helper/docs/ Copied builtin locales to dist/locales/ Copied 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.3 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 20.1kB dist/bundled/extension-creator/SKILL.md npm notice 7.3kB dist/bundled/loop/SKILL.md npm notice 3.8kB 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 18.2kB dist/bundled/qc-helper/docs/configuration/auth.md npm notice 35.8kB dist/bundled/qc-helper/docs/configuration/model-providers.md npm notice 3.0kB dist/bundled/qc-helper/docs/configuration/qwen-ignore.md npm notice 178.4kB 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 46.2kB 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 11.4kB 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 77.8kB 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 8.1kB 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 372.4kB dist/chunks/acpAgent-DM7R4BPC.js npm notice 1.7kB dist/chunks/agent-5J33WFFK.js npm notice 1.5kB dist/chunks/agent-headless-BV2NMKGJ.js npm notice 200.6kB dist/chunks/anthropicContentGenerator-PFITVL7Y.js npm notice 23.9kB dist/chunks/artifact-tool-D2X7G3C3.js npm notice 12.7kB dist/chunks/askUserQuestion-UGETICJQ.js npm notice 1.8kB dist/chunks/bridge-TAPJVK2T.js npm notice 120.7kB dist/chunks/ca-IUFWESZL.js npm notice 110.8kB dist/chunks/chunk-2AN4ZN7X.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 233.0kB dist/chunks/chunk-4CGOWHKM.js npm notice 181.7kB dist/chunks/chunk-4EFJCW6G.js npm notice 1.2kB dist/chunks/chunk-5DWXLGOM.js npm notice 1.8kB dist/chunks/chunk-5GOVVXEV.js npm notice 129.5kB dist/chunks/chunk-5IFG2VC4.js npm notice 260.8kB dist/chunks/chunk-7RYW5LQV.js npm notice 8.3kB dist/chunks/chunk-22IFUCVR.js npm notice 3.8kB dist/chunks/chunk-37PWGUFM.js npm notice 1.2MB dist/chunks/chunk-55ZMG67I.js npm notice 3.1kB dist/chunks/chunk-64WXLC72.js npm notice 12.6kB dist/chunks/chunk-3227DZO4.js npm notice 770B dist/chunks/chunk-A4BMJM77.js npm notice 12.0kB dist/chunks/chunk-ALX6BUYW.js npm notice 939B dist/chunks/chunk-BC3C4F3Q.js npm notice 37.5kB dist/chunks/chunk-BKXBARJZ.js npm notice 1.1kB dist/chunks/chunk-BMFMJINR.js npm notice 3.3kB dist/chunks/chunk-BR4QREVK.js npm notice 2.4kB dist/chunks/chunk-BUUQ5HPX.js npm notice 61.8kB dist/chunks/chunk-BVSVIN45.js npm notice 35.7kB dist/chunks/chunk-BW4KCQFD.js npm notice 601.8kB dist/chunks/chunk-BX5YO7UW.js npm notice 175.1kB dist/chunks/chunk-CC7ZD5DN.js npm notice 9.7kB dist/chunks/chunk-CF6BB3LT.js npm notice 19.3kB dist/chunks/chunk-CJCKDMWO.js npm notice 9.7kB dist/chunks/chunk-CKQA6AWF.js npm notice 30.0kB dist/chunks/chunk-CS72A5DF.js npm notice 9.4kB dist/chunks/chunk-DDMOU62Q.js npm notice 555.4kB dist/chunks/chunk-EJYJYJZ2.js npm notice 1.8kB dist/chunks/chunk-FDUYT7MN.js npm notice 9.8kB dist/chunks/chunk-FMBPGXQR.js npm notice 5.4MB dist/chunks/chunk-FRTQU4PB.js npm notice 928B dist/chunks/chunk-FXGLL2HL.js npm notice 1.5MB dist/chunks/chunk-G3I5LRKY.js npm notice 15.7kB dist/chunks/chunk-G6U2KIMY.js npm notice 12.9kB dist/chunks/chunk-GANV2UWW.js npm notice 1.1kB dist/chunks/chunk-GT2FGICD.js npm notice 1.0kB dist/chunks/chunk-H6BD2ELD.js npm notice 8.6kB dist/chunks/chunk-HYCC3XM3.js npm notice 85.0kB dist/chunks/chunk-I4H7PRWQ.js npm notice 7.2kB dist/chunks/chunk-ITOGNELQ.js npm notice 44.4kB dist/chunks/chunk-IUAZJQF3.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 11.5kB dist/chunks/chunk-JE5FVRPC.js npm notice 15.6kB dist/chunks/chunk-JGE7KUMJ.js npm notice 870.7kB dist/chunks/chunk-JKJWQVGR.js npm notice 31.3kB dist/chunks/chunk-JOLIREYR.js npm notice 3.4kB dist/chunks/chunk-JZSY4WP3.js npm notice 542.0kB dist/chunks/chunk-K5PGHDBN.js npm notice 5.0kB dist/chunks/chunk-K5XU6E4T.js npm notice 2.2kB dist/chunks/chunk-KCEIFAG6.js npm notice 2.9kB dist/chunks/chunk-KHDZHZMH.js npm notice 579B dist/chunks/chunk-KHQOHEZ6.js npm notice 4.6kB dist/chunks/chunk-KMGMKW5Q.js npm notice 764B dist/chunks/chunk-KSPVDFE4.js npm notice 19.3kB dist/chunks/chunk-KYMBIKIW.js npm notice 406.6kB dist/chunks/chunk-KZ3FAO2L.js npm notice 2.3kB dist/chunks/chunk-LD2XBG6Z.js npm notice 3.2kB dist/chunks/chunk-LQ7TMOCE.js npm notice 793.7kB dist/chunks/chunk-M2U5NM24.js npm notice 5.7kB dist/chunks/chunk-M7QJ5VI2.js npm notice 78.0kB dist/chunks/chunk-MFKSOJ3X.js npm notice 706B dist/chunks/chunk-MLZQVCF3.js npm notice 671B dist/chunks/chunk-MRO43B25.js npm notice 29.4kB dist/chunks/chunk-MY4OKIQC.js npm notice 14.7kB dist/chunks/chunk-NDOC6M5S.js npm notice 14.3kB dist/chunks/chunk-NL4C3H6C.js npm notice 5.5kB dist/chunks/chunk-O2VBQ3Y2.js npm notice 565B dist/chunks/chunk-OFEVLU4C.js npm notice 11.9kB dist/chunks/chunk-OFT6YGAC.js npm notice 633.7kB dist/chunks/chunk-OIZIMP5V.js npm notice 10.5kB dist/chunks/chunk-OMX7CUOE.js npm notice 38.3kB dist/chunks/chunk-OTC2IDVF.js npm notice 93.2kB dist/chunks/chunk-P3MYAZBY.js npm notice 8.6kB dist/chunks/chunk-P6PMSDNN.js npm notice 353B dist/chunks/chunk-P7M4GA57.js npm notice 3.1kB dist/chunks/chunk-PQS2MRCN.js npm notice 29.6kB dist/chunks/chunk-PVGYFFLJ.js npm notice 369B dist/chunks/chunk-QBZ22PQX.js npm notice 9.8kB dist/chunks/chunk-QCL5A3CH.js npm notice 21.5kB dist/chunks/chunk-QI7GOGJR.js npm notice 19.0kB dist/chunks/chunk-QLDPRILK.js npm notice 20.2kB dist/chunks/chunk-QN5NZ3UQ.js npm notice 496B dist/chunks/chunk-QQDPRDVW.js npm notice 376.1kB dist/chunks/chunk-QSCUMCFH.js npm notice 4.3kB dist/chunks/chunk-QYUE6W3T.js npm notice 262B dist/chunks/chunk-R2BXK7SX.js npm notice 2.8MB dist/chunks/chunk-R4GGQ7TB.js npm notice 9.7kB dist/chunks/chunk-RD6YJJJ6.js npm notice 259B dist/chunks/chunk-RKIZXJMB.js npm notice 2.5kB dist/chunks/chunk-RRVGUXU5.js npm notice 433.3kB dist/chunks/chunk-RYLJU2DY.js npm notice 34.3kB dist/chunks/chunk-S7AKE7HL.js npm notice 4.6kB dist/chunks/chunk-SBBN4BWR.js npm notice 14.5kB dist/chunks/chunk-SKAZWEV5.js npm notice 2.0kB dist/chunks/chunk-SKQZZVAV.js npm notice 723B dist/chunks/chunk-SMXULRAN.js npm notice 727.4kB dist/chunks/chunk-TERL2NBH.js npm notice 430B dist/chunks/chunk-TLRYABYP.js npm notice 2.7kB dist/chunks/chunk-TTI4AO4U.js npm notice 815.0kB dist/chunks/chunk-U3KSMM7G.js npm notice 78.6kB dist/chunks/chunk-UFC57OYT.js npm notice 46.8kB dist/chunks/chunk-UO5GVXQE.js npm notice 312.5kB dist/chunks/chunk-UUIVNMJB.js npm notice 3.4kB dist/chunks/chunk-UWCTAVOD.js npm notice 33.9kB dist/chunks/chunk-UX4SGCGN.js npm notice 16.0kB dist/chunks/chunk-V256PQI4.js npm notice 10.1kB dist/chunks/chunk-VRUV32XG.js npm notice 20.7kB dist/chunks/chunk-VVLOGDB6.js npm notice 13.5kB dist/chunks/chunk-WKKEODNI.js npm notice 6.7kB dist/chunks/chunk-X6L4HUD2.js npm notice 22.2kB dist/chunks/chunk-X7OER5JM.js npm notice 7.2kB dist/chunks/chunk-XJYUPHRC.js npm notice 11.3kB dist/chunks/chunk-XM4PA4OX.js npm notice 4.8kB dist/chunks/chunk-Y6YMRS3U.js npm notice 779B dist/chunks/chunk-Y6Z2O3WR.js npm notice 18.3kB dist/chunks/chunk-YJWNDAM6.js npm notice 61.0kB dist/chunks/chunk-Z2Z3GUXZ.js npm notice 18.7kB dist/chunks/chunk-ZERZSAZL.js npm notice 8.1kB dist/chunks/chunk-ZP6UKOPB.js npm notice 1.5kB dist/chunks/chunk-ZTQ26VBE.js npm notice 6.5kB dist/chunks/chunk-ZWLCYITF.js npm notice 90.4kB dist/chunks/computer-use-IAMA4T3E.js npm notice 1.7kB dist/chunks/contextCommand-BBUIE5TJ.js npm notice 8.1kB dist/chunks/cron-create-SKEY55RG.js npm notice 2.9kB dist/chunks/cron-delete-I3NAT32Z.js npm notice 4.0kB dist/chunks/cron-list-6XRRL6TH.js npm notice 1.9kB dist/chunks/daemon-status-provider-E2U3ENI6.js npm notice 123.8kB dist/chunks/de-EOW5PVHF.js npm notice 747.0kB dist/chunks/devtools-FM6GJPYG.js npm notice 258B dist/chunks/dist-63IS3ZMI.js npm notice 160.7kB dist/chunks/dist-663NZ6MI.js npm notice 497.6kB dist/chunks/dist-J37VXPLD.js npm notice 4.9MB dist/chunks/dist-LB6OGPVM.js npm notice 21.8kB dist/chunks/dist-NHEYYB2B.js npm notice 72.6kB dist/chunks/dist-PQPZ5Q4N.js npm notice 1.7kB dist/chunks/earlyInputCapture-EW6XVPEN.js npm notice 33.2kB dist/chunks/edit-TY27ZGCZ.js npm notice 140.3kB dist/chunks/en-HPWEJBTR.js npm notice 8.7kB dist/chunks/enter-worktree-FLNYO6WW.js npm notice 6.3kB dist/chunks/enterPlanMode-225WXIAE.js npm notice 1.9kB dist/chunks/errors-3A7CJOK7.js npm notice 18.1kB dist/chunks/exit-worktree-KV5F4ZDC.js npm notice 28.7kB dist/chunks/exitPlanMode-NSZCSJ6P.js npm notice 14.5kB dist/chunks/fast-path-3PUH6LX3.js npm notice 556B dist/chunks/fast-path-settings-OAGU3X5H.js npm notice 4.8kB dist/chunks/fileFromPath-IBEHA3CO.js npm notice 127.4kB dist/chunks/fr-BN5NKSAC.js npm notice 90.5kB dist/chunks/gemini-TGDEXHJX.js npm notice 7.9kB dist/chunks/geminiContentGenerator-XV6SV6CD.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-NXXPEZN2.js npm notice 21.9kB dist/chunks/grep-5FOUGNRA.js npm notice 1.6kB dist/chunks/headlessSafetyWarnings-XMQYUD3D.js npm notice 1.7kB dist/chunks/initializer-LUGSTHIE.js npm notice 170.0kB dist/chunks/ja-7DEUB2TS.js npm notice 270B dist/chunks/keychain-token-storage-YLMDLKXT.js npm notice 382B dist/chunks/kittyProtocolDetector-OJRCJLIU.js npm notice 1.8kB dist/chunks/list-MNB5NKFH.js npm notice 1.7kB dist/chunks/loadedSettingsAdapter-RDC5KR7V.js npm notice 6.7kB dist/chunks/loop-wakeup-CITGGQHA.js npm notice 1.5MB dist/chunks/lowlight-FYAAUU5J.js npm notice 9.4kB dist/chunks/ls-R5WP4BGZ.js npm notice 35.5kB dist/chunks/lsp-GSICJMMW.js npm notice 1.8kB dist/chunks/MaxSizedBox-M6JOIFYI.js npm notice 21.5kB dist/chunks/monitor-GUISQJON.js npm notice 12.1kB dist/chunks/multipart-parser-AJ4WASWR.js npm notice 2.8kB dist/chunks/nonInteractiveCli-7GLZF5TR.js npm notice 27.6kB dist/chunks/notebook-edit-BZOBLSX4.js npm notice 1.5kB dist/chunks/openaiContentGenerator-3NMKQ6OV.js npm notice 123.2kB dist/chunks/pt-TNZRNLQB.js npm notice 7.1kB dist/chunks/qwenContentGenerator-7JOW24TZ.js npm notice 1.2kB dist/chunks/qwenOAuth2-AG3PFFLZ.js npm notice 764B dist/chunks/read-file-66QQ3LAM.js npm notice 6.4kB dist/chunks/read-mcp-resource-DQQW7H7T.js npm notice 171.4kB dist/chunks/read-package-up-ER5OJUGP.js npm notice 1.5kB dist/chunks/ripGrep-DI4467XM.js npm notice 299.9kB dist/chunks/ru-NIAUBKCN.js npm notice 71.3kB dist/chunks/run-qwen-serve-SZQSII7T.js npm notice 11.1kB dist/chunks/scheduler-RIBESRJW.js npm notice 9.6kB dist/chunks/send-message-EE4TWKVU.js npm notice 1.8kB dist/chunks/serve-AMSNPTEQ.js npm notice 487.1kB dist/chunks/server-KTAP34OR.js npm notice 72.2kB dist/chunks/session-6PKOHKDB.js npm notice 2.8kB dist/chunks/settings-GB3VX5GM.js npm notice 1.7kB dist/chunks/shell-U3OR5FSV.js npm notice 17.3kB dist/chunks/skill-NLWDX2AM.js npm notice 1.8kB dist/chunks/spawnChannel-2SDMA2GM.js npm notice 59.9kB dist/chunks/src-2U3HPJAA.js npm notice 48.9kB dist/chunks/src-7XL4G4DC.js npm notice 6.1kB dist/chunks/StandaloneSessionPicker-PP2IJ55T.js npm notice 1.8MB dist/chunks/startInteractiveUI-3KVR5B6R.js npm notice 368B dist/chunks/syntheticOutput-T5YHQ6S2.js npm notice 492B dist/chunks/task-create-BLY7RHXX.js npm notice 4.1kB dist/chunks/task-list-3QUYNVYR.js npm notice 7.3kB dist/chunks/task-stop-U4RATK2V.js npm notice 12.6kB dist/chunks/task-update-U54O7KJX.js npm notice 12.7kB dist/chunks/team-create-QDEBI7QJ.js npm notice 2.9kB dist/chunks/team-delete-LKBYPASD.js npm notice 1.6kB dist/chunks/theme-manager-5VHMD34K.js npm notice 21.4kB dist/chunks/todoWrite-OYXKTVYN.js npm notice 15.8kB dist/chunks/tool-search-LZ667UVG.js npm notice 1.9MB dist/chunks/tree-sitter-bash-EZ4S5QRV.js npm notice 254.7kB dist/chunks/tree-sitter-G7JNPPOS.js npm notice 2.0kB dist/chunks/trustedFolders-JYUBGRVC.js npm notice 338B dist/chunks/types-QX5C3CHJ.js npm notice 5.0kB dist/chunks/validateNonInterActiveAuth-R3BIAO7M.js npm notice 260.4kB dist/chunks/web-fetch-EEB5LZYU.js npm notice 88.1kB dist/chunks/workflow-GIJJD7I7.js npm notice 1.8kB dist/chunks/workspace-providers-status-BDY64EJW.js npm notice 2.1kB dist/chunks/workspace-service-2TVYYE7K.js npm notice 18.1kB dist/chunks/write-file-IDOEIDE5.js npm notice 173.4kB dist/chunks/zh-5EUYXASN.js npm notice 164.1kB dist/chunks/zh-TW-TR3XYGE5.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 120.0kB dist/locales/ca.js npm notice 123.9kB dist/locales/de.js npm notice 141.6kB dist/locales/en.js npm notice 125.8kB dist/locales/fr.js npm notice 120.7kB dist/locales/ja.js npm notice 121.5kB dist/locales/pt.js npm notice 155.1kB dist/locales/ru.js npm notice 125.0kB dist/locales/zh-TW.js npm notice 134.4kB 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-DA7r8Ueo.js npm notice 149.5kB dist/web-shell/assets/architectureDiagram-3BPJPVTR-ZDUxPtZ2.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-vrtOf1kJ.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-BHFjzIi4.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-iRo68q4Q.js npm notice 532B dist/web-shell/assets/chunk-2J33WTMH-mdeQVz59.js npm notice 297B dist/web-shell/assets/chunk-4BX2VUAB-BkKMlwBX.js npm notice 235B dist/web-shell/assets/chunk-55IACEB6-B7bnXNfu.js npm notice 49.1kB dist/web-shell/assets/chunk-727SXJPM-DGz8Mm6i.js npm notice 37.6kB dist/web-shell/assets/chunk-AQP2D5EJ-BQAydUNk.js npm notice 366B dist/web-shell/assets/chunk-FMBD7UC4-GHr2LN_p.js npm notice 1.9kB dist/web-shell/assets/chunk-ND2GUHAM-7R91lnUx.js npm notice 193B dist/web-shell/assets/chunk-QZHKN3VN-aTJD3lSQ.js npm notice 14.6kB dist/web-shell/assets/clarity-BHOwM8T6.js npm notice 467B dist/web-shell/assets/classDiagram-4FO5ZUOK-iHF24a8X.js npm notice 467B dist/web-shell/assets/classDiagram-v2-Q7XG4LA2-iHF24a8X.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-BTf8t1RL.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-_sgp3WuA.js npm notice 9.1kB dist/web-shell/assets/dark-plus-C3mMm8J8.js npm notice 7.9kB dist/web-shell/assets/dart-B9wLZaAG.js npm notice 5.5kB dist/web-shell/assets/dax-ClGRhx96.js npm notice 8.9kB dist/web-shell/assets/default-aEtf0G7-.svg npm notice 4.7kB dist/web-shell/assets/defaultLocale-DX6XiGOO.js npm notice 2.0kB dist/web-shell/assets/desktop-DEIpsLCJ.js npm notice 6.0kB dist/web-shell/assets/diagram-2AECGRRQ-CROtRy1w.js npm notice 2.8kB dist/web-shell/assets/diagram-5GNKFQAL-BqGRzwSc.js npm notice 10.8kB dist/web-shell/assets/diagram-KO2AKTUF-CMrcEtA7.js npm notice 4.2kB dist/web-shell/assets/diagram-LMA3HP47-BRydGNW5.js npm notice 15.9kB dist/web-shell/assets/diagram-OG6HWLK6-D0ilgNjV.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-2lnQeJUM.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-C_ZMdQiC.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-Dw9V_Ny0.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-HDXI-F1B.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 181.9kB dist/web-shell/assets/index-CHmzAWys.css npm notice 1.8MB dist/web-shell/assets/index-w6GTOHh1.js npm notice 587B dist/web-shell/assets/infoDiagram-5YYISTIA-CuB8Ebua.js npm notice 1.5kB dist/web-shell/assets/ini-BjABl1g7.js npm notice 147B dist/web-shell/assets/init-Gi6I4Gst.js npm notice 4.2kB dist/web-shell/assets/insert-DmRbh9Rv.svg npm notice 17.6kB dist/web-shell/assets/ishikawaDiagram-YF4QCWOH-D_tyhVwh.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-CgCwJQNU.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-PZUtcbPx.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-CZqRdJIU.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-CPW_4UEF.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-D_Y75ID7.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-Q4dTyLeF.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-ckw329Ft.js npm notice 11.6kB dist/web-shell/assets/queue-DWpnpFgW.svg npm notice 36.9kB dist/web-shell/assets/r-CwjWoCRV.js npm notice 97.6kB dist/web-shell/assets/racket-CzouJOBO.js npm notice 10.6kB dist/web-shell/assets/raku-B1bQXN8T.js npm notice 25.8kB dist/web-shell/assets/razor-CNLDkMZG.js npm notice 6.3kB dist/web-shell/assets/red-bN70gL4F.js npm notice 2.4kB dist/web-shell/assets/reg-5LuOXUq_.js npm notice 8.1kB dist/web-shell/assets/regexp-DWJ3fJO_.js npm notice 3.4kB dist/web-shell/assets/rel-DJlmqQ1C.js npm notice 31.2kB dist/web-shell/assets/requirementDiagram-4Y6WPE33-DbVDm4It.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-CHuZ_ecH.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-DU2YSpq-.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-CA9PEBUo.js npm notice 391B dist/web-shell/assets/stateDiagram-v2-BHNVJYJU-t1LRI0oY.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-Bhlo4WVc.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-6xtPLsyl.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-3eozmXPf.js npm notice 26.1kB dist/web-shell/assets/wardleyDiagram-YWT4CUSO-BOn6hKss.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-BsP4-I_y.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.4kB package.json npm notice 1.4kB 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.3 npm notice filename: qwen-code-qwen-code-0.19.3.tgz npm notice package size: 24.0 MB npm notice unpacked size: 91.7 MB npm notice shasum: 62336f13d4eb478ce5e5da3a67ee1deeb7146501 npm notice integrity: sha512-au2E0e4q/RhUv[...]UK7u0qFf9T5Mw== npm notice bundled deps: 41 npm notice bundled files: 0 npm notice own files: 4953 npm notice total files: 4953 npm notice qwen-code-qwen-code-0.19.3.tgz ==> Starting check()... npm notice run @qwen-code/acp-bridge@0.19.3 test npm notice run 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) 11ms ✓ src/eventBus.test.ts (29 tests) 59ms 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" a2ui: dropping command with unrecognized shape (version,noop) ✓ src/a2uiExtraction.test.ts (14 tests) 6ms 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 [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) 20ms ✓ src/permissionMediator.test.ts (40 tests) 27ms ✓ src/status.test.ts (17 tests) 4ms ✓ src/spawnChannel.test.ts (24 tests) 9ms qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 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) 111ms 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_201fb342-c625-4771-88cc-5816b7dc1307" 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_4c754b03-bc7f-453f-a8c0-c632f66cc30a" qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 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) 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: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve debug: rejected permission vote "4edd3be1-10b7-4528-b382-4d76e585a9a3" 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_34d8cdee-14b8-4464-b4af-431006521311 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 (299 tests) 2752ms Test Files 9 passed (9) Tests 494 passed (494) Start at 12:19:39 Duration 5.91s (transform 3.30s, setup 0ms, collect 13.31s, tests 3.00s, environment 1ms, prepare 759ms) npm notice run @qwen-code/audio-capture@0.19.3 test RUN v3.2.4 /startdir/src/qwen-code/packages/audio-capture ✓ src/platform.test.ts (2 tests) 2ms Test Files 1 passed (1) Tests 2 passed (2) Start at 12:19:45 Duration 204ms (transform 32ms, setup 0ms, collect 24ms, tests 2ms, environment 0ms, prepare 57ms) npm notice run @qwen-code/qwen-code@0.19.3 test RUN v3.2.4 /startdir/src/qwen-code/packages/cli Coverage enabled with v8 ✓ src/serve/auth/device-flow.test.ts (47 tests) 22ms (node:3251) 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:3251) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 end listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:3251) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 finish listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:3251) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 error listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:3251) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 close listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:3251) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 drain listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:3251) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 finish listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:3251) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 error listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:3251) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 close listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:3251) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 data listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit ✓ src/services/insight/generators/DataProcessor.test.ts (45 tests) 35ms ✓ src/utils/modelConfigUtils.test.ts (59 tests) 47ms ✓ src/ui/components/shared/text-buffer.test.ts (158 tests) 199ms ✓ src/config/settings.test.ts (145 tests) 159ms ✓ src/serve/fs/workspace-file-system.test.ts (78 tests) 366ms ✓ src/ui/commands/modelCommand.test.ts (47 tests) 117ms ✓ src/ui/hooks/atCommandProcessor.test.ts (57 tests) 209ms ✓ src/serve/workspace-service/__tests__/facade.test.ts (56 tests) 196ms ✓ src/ui/hooks/vim.test.ts (132 tests) 1389ms ✓ src/ui/contexts/KeypressContext.test.tsx (95 tests) 1714ms ✓ KeypressContext - Kitty Protocol > Enter key handling > auto-recovers from a stuck paste mode via idle timeout 1255ms qwen serve: daemon log → /tmp/qws-dl-cBz532/debug/daemon/serve-3714-a640111b.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: createServeApp default fsFactory uses trusted=false — agent ACP writeTextFile calls will reject with untrusted_workspace. Inject deps.fsFactory (with explicit trust) or deps.bridge to override. qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve listening on http://127.0.0.1:45501 (mode=http-bridge, workspace=/tmp/qws-dl-cBz532) qwen serve: bound to workspace "/tmp/qws-dl-cBz532" qwen serve: startup timing: processToListenMs=7527 runQwenServeToListenMs=123 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-3714-dcc97b62.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/tmp/qws-tv-fYrX0a" qwen serve: startup timing: processToListenMs=7534 runQwenServeToListenMs=3 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: runtime startup failed: Invalid telemetry configuration: Invalid QWEN_TELEMETRY_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH: must be a positive integer no greater than 104857600, got ''. qwen serve listening on http://127.0.0.1:35947 (mode=http-bridge, workspace=/tmp/qws-tv-fYrX0a) 2026-07-31T12:19:56.946Z [ERROR] [DAEMON] runtime startup failed Error: Invalid telemetry configuration: Invalid QWEN_TELEMETRY_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH: must be a positive integer no greater than 104857600, got ''. at buildRuntime (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:1528:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve: daemon log → /tmp/qws-pt-0p840G/debug/daemon/serve-3714-4486d4ab.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3714-f7e59730.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3714-aea67e77.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3714-82c22908.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3714-036a9d1a.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3714-391c08e0.log qwen serve: daemon log → /tmp/qws-rt-RhbslV/debug/daemon/serve-3714-c394ab37.log qwen serve: daemon log → /tmp/qws-rt-EPKynq/debug/daemon/serve-3714-fbf20fd3.log qwen serve: daemon log → /tmp/qws-rt-4gRWIB/debug/daemon/serve-3714-23ff83b1.log qwen serve: daemon log → /tmp/qws-rt-e3GeUN/debug/daemon/serve-3714-bd4d2f12.log qwen serve: daemon log → /tmp/qws-rt-HjJPnS/debug/daemon/serve-3714-4ce56722.log qwen serve: daemon log → /tmp/qws-rt-T4sVTX/debug/daemon/serve-3714-0a76e84b.log qwen serve: daemon log → /tmp/qws-rt-oFZMfQ/debug/daemon/serve-3714-14608dca.log qwen serve: daemon log → /tmp/qws-rt-vKe3L0/debug/daemon/serve-3714-596119cb.log qwen serve: daemon log → /tmp/qws-rt-wN8IdV/debug/daemon/serve-3714-27c401d9.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve listening on http://127.0.0.1:41081 (mode=http-bridge, workspace=/tmp/qws-rt-wN8IdV) qwen serve: bound to workspace "/tmp/qws-rt-wN8IdV" qwen serve: startup timing: processToListenMs=7578 runQwenServeToListenMs=7 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /tmp/qws-rt-jxxTgd/debug/daemon/serve-3714-0b8cf143.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:37975 (mode=http-bridge, workspace=/tmp/qws-rt-jxxTgd) qwen serve: bound to workspace "/tmp/qws-rt-jxxTgd" qwen serve: startup timing: processToListenMs=7589 runQwenServeToListenMs=10 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3714-0da83381.log qwen serve: bound to workspace "/tmp/qws-runtime-fail-p0GV4c" qwen serve: startup timing: processToListenMs=7594 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve listening on http://127.0.0.1:39293 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-p0GV4c) qwen serve: runtime startup failed: runtime boom 2026-07-31T12:19:57.006Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:577: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:1682:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3714-1825bc66.log qwen serve listening on http://127.0.0.1:38009 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-close-KmsINO) qwen serve: bound to workspace "/tmp/qws-runtime-fail-close-KmsINO" qwen serve: startup timing: processToListenMs=7604 runQwenServeToListenMs=2 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: runtime startup failed: runtime boom 2026-07-31T12:19:57.016Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:598: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:1682:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3714-14c1ad4a.log qwen serve: bound to workspace "/tmp/qws-runtime-starting-route-tW3Lpw" qwen serve: startup timing: processToListenMs=7620 runQwenServeToListenMs=2 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve listening on http://127.0.0.1:45715 (mode=http-bridge, workspace=/tmp/qws-runtime-starting-route-tW3Lpw) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: runtime startup failed: Daemon runtime stopped before mounting. 2026-07-31T12:19:57.073Z [ERROR] [DAEMON] runtime startup failed Error: Daemon runtime stopped before mounting. at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:2057:17 at processTicksAndRejections (node:internal/process/task_queues:104:5) at waitForRuntimeStartingForShutdown (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:776:3) at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:2223:17 qwen serve: daemon log → /tmp/qws-runtime-fail-log-0uPo6l/debug/daemon/serve-3714-d74a606a.log qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve listening on http://127.0.0.1:39889 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-log-0uPo6l) qwen serve: bound to workspace "/tmp/qws-runtime-fail-log-0uPo6l" qwen serve: startup timing: processToListenMs=7673 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: runtime startup failed: runtime boom 2026-07-31T12:19:57.085Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:763: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:1682:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3714-97edcd75.log qwen serve: bound to workspace "/tmp/qws-runtime-flush-pending-0Pb8kL" qwen serve: startup timing: processToListenMs=7678 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve listening on http://127.0.0.1:39157 (mode=http-bridge, workspace=/tmp/qws-runtime-flush-pending-0Pb8kL) qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3714-b604b1eb.log qwen serve: bound to workspace "/tmp/qws-runtime-timeout-GNbJfF" qwen serve: startup timing: processToListenMs=7687 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:36855 (mode=http-bridge, workspace=/tmp/qws-runtime-timeout-GNbJfF) qwen serve: runtime startup failed: Daemon runtime startup timed out after 1ms. 2026-07-31T12:19:57.098Z [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:2078:15) at listOnTimeout (node:internal/timers:635:17) at processTimers (node:internal/timers:571:7) 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-nnJ505/index.html' 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-3714-4101d961.log qwen serve listening on http://127.0.0.1:45437 (mode=http-bridge, workspace=/tmp/qws-runtime-fail-az8ksr) qwen serve: bound to workspace "/tmp/qws-runtime-fail-az8ksr" qwen serve: startup timing: processToListenMs=7749 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: runtime startup failed: runtime boom 2026-07-31T12:19:57.161Z [ERROR] [DAEMON] runtime startup failed Error: runtime boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:931: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:1682:15) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) ✓ src/ui/commands/exportCommand.test.ts (40 tests) 102ms 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-3714-ee200dbf.log qwen serve: bound to workspace "/tmp/qws-runtime-partial-fail-rJzCz6" qwen serve: startup timing: processToListenMs=7788 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-31T12:19:57.200Z [ERROR] [DAEMON] runtime startup failed Error: runtime app boom at Object. (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.test.ts:1094: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:1758:25) at processTicksAndRejections (node:internal/process/task_queues:104:5) qwen serve listening on http://127.0.0.1:33967 (mode=http-bridge, workspace=/tmp/qws-runtime-partial-fail-rJzCz6) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3714-6238d61b.log qwen serve: bound to workspace "/tmp/qws-runtime-close-n83bWW" qwen serve: startup timing: processToListenMs=7793 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve listening on http://127.0.0.1:34261 (mode=http-bridge, workspace=/tmp/qws-runtime-close-n83bWW) qwen serve: runtime startup failed: Daemon runtime stopped before mounting. 2026-07-31T12:19:57.208Z [ERROR] [DAEMON] runtime startup failed Error: Daemon runtime stopped before mounting. at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:2057:17 at processTicksAndRejections (node:internal/process/task_queues:104:5) at waitForRuntimeStartingForShutdown (/startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:776:3) at /startdir/src/qwen-code/packages/cli/src/serve/run-qwen-serve.ts:2223:17 qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3714-1e6faddd.log qwen serve listening on http://127.0.0.1:39215 (mode=http-bridge, workspace=/tmp/qws-ws-UrcuNb) qwen serve: bound to workspace "/tmp/qws-ws-UrcuNb" qwen serve: startup timing: processToListenMs=7814 runQwenServeToListenMs=13 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3714-548622d3.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve listening on http://127.0.0.1:33315 (mode=http-bridge, workspace=/tmp/qws-ws-e0xhAd) qwen serve: bound to workspace "/tmp/qws-ws-e0xhAd" qwen serve: startup timing: processToListenMs=7819 runQwenServeToListenMs=5 qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3714-58284369.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:37781 (mode=http-bridge, workspace=/tmp/qws-ws-hs8jTQ) qwen serve: bound to workspace "/tmp/qws-ws-hs8jTQ" qwen serve: startup timing: processToListenMs=7828 runQwenServeToListenMs=7 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3714-40c81a16.log qwen serve: bound to workspace "/tmp/qws-ws-X0M94C" qwen serve: startup timing: processToListenMs=7833 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:34169 (mode=http-bridge, workspace=/tmp/qws-ws-X0M94C) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3714-b169ecbd.log qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: bound to workspace "/tmp/qws-ws-REgJ1W" qwen serve: startup timing: processToListenMs=7839 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: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve listening on http://127.0.0.1:36503 (mode=http-bridge, workspace=/tmp/qws-ws-REgJ1W) 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: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve listening on http://127.0.0.1:37431 (mode=http-bridge, workspace=/tmp/qws-startup-runtime-dir-x32BYN) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: ignoring invalid QWEN_SERVE_MCP_CLIENT_BUDGET='1.0' (expected positive integer); MCP budget enforcement disabled for this child. qwen serve listening on http://127.0.0.1:45727 (mode=http-bridge, workspace=/tmp/qws-startup-log-dep-00b96u) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) 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 listening on http://127.0.0.1:39297 (mode=http-bridge, workspace=/tmp/qws-startup-storage-dir-xQpH3A) qwen serve listening on http://127.0.0.1:35663 (mode=http-bridge, workspace=/tmp/qws-startup-preheat-aCKZyl) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3714-efab2cf5.log qwen serve: bound to workspace "/tmp/qws-startup-preheat-aCKZyl" qwen serve: startup timing: processToListenMs=7894 runQwenServeToListenMs=2 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-31T12:19:57.328Z [INFO] [DAEMON] route=GET /daemon/status durationMs=1 status=200 request completed 2026-07-31T12:19:57.331Z [INFO] [DAEMON] route=GET /daemon/status durationMs=1 status=200 request completed 2026-07-31T12:19:57.335Z [INFO] [DAEMON] route=GET /daemon/status durationMs=0 status=200 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3714-237ec521.log qwen serve: bound to workspace "/tmp/qws-startup-preheat-tMfLNo" qwen serve: startup timing: processToListenMs=7936 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: ignoring invalid QWEN_SERVE_MCP_CLIENT_BUDGET=' ' (expected positive integer); MCP budget enforcement disabled for this child. qwen serve listening on http://127.0.0.1:35263 (mode=http-bridge, workspace=/tmp/qws-startup-preheat-tMfLNo) qwen serve: /acp WebSocket transport enabled on /acp qwen serve: ACP preheat failed, will retry on first session: preheat boom 2026-07-31T12:19:57.354Z [INFO] [DAEMON] route=GET /daemon/status durationMs=1 status=200 request completed 2026-07-31T12:19:57.357Z [INFO] [DAEMON] route=GET /daemon/status durationMs=0 status=200 request completed ✓ src/acp-integration/acpAgent.test.ts (157 tests) 7617ms ✓ src/serve/run-qwen-serve.test.ts (68 tests) 562ms 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 (node:3400) [UNDICI-EHPA] Warning: EnvHttpProxyAgent is experimental, expect them to change at any time. (Use `node --trace-warnings ...` to show where the warning was created) 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 ✓ src/config/config.test.ts (236 tests) 1473ms 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: fast-path bootstrap failed, falling back to full startup: Failed to read serve fast path settings from /tmp/qws-fast-path-home-CP5l1a/settings.json: Expected property name or '}' in JSON at position 1 (line 1 column 2) qwen serve: fast-path bootstrap failed, falling back to full startup: Serve fast path settings advanced.excludedEnvVars must be a string array. qwen serve: fast-path bootstrap failed, falling back to full startup: Serve fast path settings advanced.runtimeOutputDir must be a string. qwen serve: fast-path bootstrap failed, falling back to full startup: Serve fast path settings security.folderTrust.enabled must be a boolean. qwen serve: extensions install: refreshed 1 session(s), 0 failed ✓ src/nonInteractive/io/BaseJsonOutputAdapter.test.ts (96 tests) 51ms 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 ✓ src/serve/fast-path.test.ts (56 tests) 58ms qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions install: refreshed 1 session(s), 0 failed ✓ src/ui/components/shared/vim-buffer-actions.test.ts (74 tests) 22ms ✓ src/services/FileCommandLoader.test.ts (40 tests) 112ms 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 ✓ src/ui/hooks/useStatusLine.test.ts (68 tests) 2989ms ✓ useStatusLine > config validation > renders the default preset when no statusLine config is set 2783ms 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 ✓ src/ui/commands/statsCommand.test.ts (38 tests) 481ms 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 ✓ src/nonInteractiveCli.test.ts (58 tests | 1 skipped) 750ms 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 ✓ src/ui/hooks/slashCommandProcessor.test.ts (67 tests) 4981ms ✓ useSlashCommandProcessor > Initialization and Command Loading > rebuilds commands when an MCP server connects (surfaces MCP prompts in /) 313ms ✓ 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 ✓ src/utils/settingsUtils.test.ts (81 tests) 41ms 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 qwen serve: extensions install: refreshed 1 session(s), 0 failed qwen serve: extensions update: refreshed 1 session(s), 0 failed 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 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/ui/hooks/useGeminiStream.test.tsx (148 tests) 2644ms qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle 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:5320:17) at Object.spawnOrAttach (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:1178:28) at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:97: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: workspace_mismatch (POST /session): daemon bound to "/work/bound", rejected "/work/different" qwen serve: DELETE /workspace/agents/"partial-target" partial — removed=project remaining=user:/tmp/qwen-serve-agents-nc4ftC/global/agents/partial-target.md ✓ src/serve/workspace-agents.test.ts (38 tests) 689ms ✓ src/ui/components/messages/ToolGroupMessage.test.tsx (41 tests) 1750ms 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:7143:17) at Object.setSessionLanguage (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:1344:14) at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:1263: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) ✓ src/nonInteractive/io/StreamJsonOutputAdapter.test.ts (50 tests) 47ms ✓ src/ui/voice/voice-transcriber.test.ts (38 tests) 85ms ✓ src/utils/nonInteractiveHelpers.test.ts (53 tests) 27ms ✓ src/ui/commands/doctorCommand.test.ts (37 tests) 86ms ✓ src/config/settingsWatcher.test.ts (46 tests) 58ms ✓ src/ui/components/SettingsDialog.test.tsx (54 tests) 8198ms ✓ SettingsDialog > Settings Toggling > should sync compact mode with CompactModeContext when toggled 989ms ✓ SettingsDialog > Settings Toggling > should not save number settings below their configured minimum 808ms ✓ SettingsDialog > Complex State Management > should handle scrolling when there are many settings 435ms ✓ SettingsDialog > Output Language > treats empty output language as auto 365ms ✓ SettingsDialog > String Settings Editing > should allow editing and committing a string setting 958ms 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) qwen serve: /health deep probe failed: bridge wedged 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-3243-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:45015 (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=17515 runQwenServeToListenMs=44 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-3243-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=17568 runQwenServeToListenMs=1 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:34817 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) 2026-07-31T12:20:04.153Z [INFO] [DAEMON] route=GET /capabilities durationMs=3 status=200 request completed qwen serve: /acp connection established 04e972b7 (loopback=true, active=1) 2026-07-31T12:20:04.168Z [INFO] [DAEMON] route=POST /acp durationMs=2 status=200 request completed qwen serve listening on http://127.0.0.1:43269 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) 2026-07-31T12:20:04.196Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed qwen serve: /acp connection established aa4cb0eb (loopback=true, active=1) 2026-07-31T12:20:04.202Z [INFO] [DAEMON] route=POST /acp durationMs=3 status=200 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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:46839 (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=17655 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-31T12:20:04.225Z [INFO] [DAEMON] route=GET /capabilities durationMs=0 status=200 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-9f1b7a7f.log qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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=17667 runQwenServeToListenMs=1 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve listening on http://127.0.0.1:35985 (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 2026-07-31T12:20:04.236Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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:36437 (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=17681 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-31T12:20:04.250Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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:33357 (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=17692 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-31T12:20:04.261Z [INFO] [DAEMON] route=GET /capabilities durationMs=1 status=200 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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:44827 (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=17702 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-3243-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:37655 (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=17707 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-3243-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:37933 (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=17713 runQwenServeToListenMs=1 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: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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=17724 runQwenServeToListenMs=1 qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve listening on http://0.0.0.0:40505 (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-3243-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:43347 (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=17729 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-3243-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:43989 (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=17752 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-3243-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=17764 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 listening on http://127.0.0.1:36345 (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-3243-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:43315 (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=17777 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-3243-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-3243-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-3243-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=17784 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 qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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=17790 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://Localhost:36657 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve listening on http://[::1]:36251 (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-3243-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-3243-9f1b7a7f.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve listening on http://[::1]:43425 (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=17795 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-3243-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-3243-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:45481 (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=17819 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-31T12:20:04.393Z [INFO] [DAEMON] route=GET /capabilities durationMs=10 status=200 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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:45289 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve listening on http://127.0.0.1:42173 (mode=http-bridge, workspace=/tmp/qwen-runqwen-fs-htwF7M) qwen serve: bound to workspace "/startdir/src/qwen-code/packages/cli" qwen serve: startup timing: processToListenMs=17846 runQwenServeToListenMs=7 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-747d82a9.log qwen serve: Web Shell UI served from /startdir/src/qwen-code/packages/web-shell/dist qwen serve: bound to workspace "/tmp/qwen-runqwen-fs-htwF7M" qwen serve: startup timing: processToListenMs=17855 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-31T12:20:04.439Z [INFO] [DAEMON] route=GET /file durationMs=20 status=200 request completed 2026-07-31T12:20:04.441Z [WARN] [DAEMON] route=GET /file durationMs=1 status=400 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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=17884 runQwenServeToListenMs=3 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:37215 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) 2026-07-31T12:20:04.452Z [WARN] [DAEMON] route=GET /file durationMs=0 status=400 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-0189f6da.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:34159 (mode=http-bridge, workspace=/tmp/qwen-runqwen-trust-hK5o6T) qwen serve: bound to workspace "/tmp/qwen-runqwen-trust-hK5o6T" qwen serve: startup timing: processToListenMs=17905 runQwenServeToListenMs=7 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp ✓ src/ui/components/ModelDialog.test.tsx (25 tests) 294ms 2026-07-31T12:20:04.498Z [INFO] [DAEMON] route=GET /file durationMs=22 status=200 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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=17966 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-3243-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=17974 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 listening on http://127.0.0.1:42577 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve listening on http://127.0.0.1:39361 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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:35741 (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=17984 runQwenServeToListenMs=8 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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:33741 (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=17994 runQwenServeToListenMs=9 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-31T12:20:04.560Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-07-31T12:20:04.566Z [INFO] [DAEMON] sessionId=sess-A durationMs=6 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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:39977 (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=18013 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-31T12:20:04.580Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-07-31T12:20:04.586Z [INFO] [DAEMON] sessionId=sess-A durationMs=6 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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:40105 (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=18041 runQwenServeToListenMs=16 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-31T12:20:04.620Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-07-31T12:20:04.623Z [INFO] [DAEMON] sessionId=sess-A durationMs=3 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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=18071 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 listening on http://127.0.0.1:34067 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) 2026-07-31T12:20:04.636Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-07-31T12:20:04.640Z [INFO] [DAEMON] sessionId=sess-A durationMs=4 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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:40201 (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=18083 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-31T12:20:04.648Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-07-31T12:20:04.656Z [INFO] [DAEMON] sessionId=sess-A durationMs=8 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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:39621 (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=18109 runQwenServeToListenMs=15 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-31T12:20:04.674Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-07-31T12:20:04.676Z [INFO] [DAEMON] sessionId=sess-A durationMs=2 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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:33233 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve listening on http://127.0.0.1:33283 (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=18128 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-31T12:20:04.693Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-07-31T12:20:04.696Z [INFO] [DAEMON] sessionId=sess-A durationMs=3 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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=18141 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 "" (not a decimal integer) 2026-07-31T12:20:04.713Z [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-3243-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=18160 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 "abc" (not a decimal integer) 2026-07-31T12:20:04.725Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=0 status=400 request completed qwen serve listening on http://127.0.0.1:44543 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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:39787 (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=18178 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-31T12:20:04.743Z [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-31T12:20:04.746Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=0 status=400 request completed qwen serve: rejected ?maxQueued "2049" (outside [16, 2048]) 2026-07-31T12:20:04.750Z [WARN] [DAEMON] route=GET /session/sess-A/events sessionId=sess-A durationMs=1 status=400 request completed qwen serve: rejected ?maxQueued "9999" (outside [16, 2048]) 2026-07-31T12:20:04.753Z [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-3243-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=18199 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-31T12:20:04.764Z [WARN] [DAEMON] route=GET /session/missing/events sessionId=missing durationMs=1 status=404 request completed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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:40639 (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=18208 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:33819 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) 2026-07-31T12:20:04.773Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-07-31T12:20:04.776Z [INFO] [DAEMON] sessionId=sess-A durationMs=3 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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:43669 (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=18324 runQwenServeToListenMs=10 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-31T12:20:04.889Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened qwen serve: bridge iterator error (session sess-A): agent died 2026-07-31T12:20:04.890Z [INFO] [DAEMON] sessionId=sess-A durationMs=1 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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:44569 (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=18335 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-31T12:20:04.900Z [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-31T12:20:04.901Z [INFO] [DAEMON] sessionId=sess-A durationMs=1 SSE stream closed qwen serve listening on http://127.0.0.1:43383 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) 2026-07-31T12:20:04.914Z [INFO] [DAEMON] sessionId=sess-A durationMs=3 SSE stream closed qwen serve listening on http://127.0.0.1:43841 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) 2026-07-31T12:20:04.925Z [INFO] [DAEMON] sessionId=sess-A durationMs=3 SSE stream closed qwen serve listening on http://127.0.0.1:45231 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve listening on http://127.0.0.1:44277 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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=18395 runQwenServeToListenMs=3 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve listening on http://127.0.0.1:44255 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) qwen serve: /acp WebSocket transport enabled on /acp 2026-07-31T12:20:04.960Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-07-31T12:20:04.960Z [INFO] [DAEMON] sessionId=sess-A durationMs=0 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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:44865 (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=18407 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 Last-Event-ID "abc" (not a decimal integer) 2026-07-31T12:20:04.972Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-07-31T12:20:04.972Z [INFO] [DAEMON] sessionId=sess-A durationMs=0 SSE stream closed qwen serve: rejected Last-Event-ID "-1" (not a decimal integer) 2026-07-31T12:20:04.980Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened 2026-07-31T12:20:04.980Z [INFO] [DAEMON] sessionId=sess-A durationMs=0 SSE stream closed qwen serve: rejected Last-Event-ID "1.5e10z" (not a decimal integer) 2026-07-31T12:20:04.983Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened ✓ src/ui/hooks/useSlashCompletion.test.ts (30 tests) 932ms 2026-07-31T12:20:04.984Z [INFO] [DAEMON] sessionId=sess-A durationMs=1 SSE stream closed ✓ src/ui/hooks/useSelectionList.test.ts (50 tests) 126ms 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=566c63e47cba903f). 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=303ee418a718dedd). Inject deps.fsFactory in createServeApp to wire audit into the EventBus. [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=c5c8513f... clientId=- status=started expiresInMs=600000 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=6c810eb3... clientId=- status=started expiresInMs=600000 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=c81c9586... clientId=sdk-A status=started expiresInMs=600000 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=c81c9586... clientId=sdk-B status=started hint="take-over (per-provider singleton; original initiator=sdk-A)" [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=075fa45b... clientId=- status=started expiresInMs=600000 ✓ src/nonInteractiveCliCommands.test.ts (35 tests) 59ms [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=bb12ade8... clientId=- status=started expiresInMs=600000 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=4ad37f8d... clientId=- status=started expiresInMs=599999 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=4ad37f8d... clientId=- status=cancelled [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=6bf145e2... clientId=- status=started expiresInMs=600000 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=cb39ddeb... clientId=sdk-A status=started expiresInMs=600000 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=55b0b421... clientId=- status=started expiresInMs=600000 [serve] auth.device-flow: provider=qwen-oauth deviceFlowId=0df82b05... clientId=- status=started expiresInMs=600000 qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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=19018 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-31T12:20:05.583Z [INFO] [DAEMON] sessionId=sess-A promptId=1facbc1b-0d1e-450c-9981-a28a740ac1e7 prompt enqueued 2026-07-31T12:20:05.584Z [INFO] [DAEMON] route=POST /session/sess-A/prompt sessionId=sess-A durationMs=1 status=202 request completed qwen serve listening on http://127.0.0.1:33807 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) 2026-07-31T12:20:05.634Z [INFO] [DAEMON] sessionId=sess-A promptId=1facbc1b-0d1e-450c-9981-a28a740ac1e7 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) 5492ms ✓ gemini.tsx main function > verifies that we dont load the config before relaunchAppInChildProcess 607ms ✓ gemini.tsx main function > should skip full settings discovery in bare mode 538ms ✓ 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 505ms ✓ gemini.tsx main function > does not inject sandbox session ID when argv contains -c 507ms ✓ gemini.tsx main function > does not inject sandbox session ID when argv contains --resume 504ms ✓ 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 507ms ✓ gemini.tsx main function > inserts the sandbox session ID before the argument separator 503ms ✓ src/ui/components/messages/ToolMessage.test.tsx (45 tests) 2511ms ✓ src/ui/components/MainContent.test.tsx (14 tests) 1619ms qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle 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-3243-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:36099 (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=20239 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-31T12:20:06.803Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened qwen serve: evicting SSE client (session sess-A) — writer idle for 251ms > 200ms timeout 2026-07-31T12:20:07.055Z [INFO] [DAEMON] sessionId=sess-A durationMs=252 SSE stream closed qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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:35217 (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=20507 runQwenServeToListenMs=10 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-31T12:20:07.078Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened ✓ src/serve/acp-http/transport.test.ts (173 tests) 10178ms ✓ src/ui/commands/languageCommand.test.ts (49 tests) 81ms ✓ src/nonInteractive/control/ControlDispatcher.test.ts (35 tests) 94ms ]0;Qwen - workspace ]2;Qwen - workspace  ✓ src/ui/utils/commandUtils.test.ts (56 tests) 66ms qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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:37397 (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=21160 runQwenServeToListenMs=20 qwen serve: bearer auth disabled (loopback default). Set QWEN_SERVER_TOKEN to enable. qwen serve: /acp WebSocket transport enabled on /acp 2026-07-31T12:20:07.724Z [INFO] [DAEMON] sessionId=sess-A durationMs=646 SSE stream closed 2026-07-31T12:20:07.725Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened ✓ src/nonInteractive/session.test.ts (27 tests) 387ms ✓ src/ui/commands/copyCommand.test.ts (37 tests) 62ms ✓ src/ui/hooks/use-voice-input.test.ts (23 tests) 185ms ✓ src/acp-integration/session/SubAgentTracker.test.ts (28 tests) 490ms qwen serve: daemon log → /build/.qwen/debug/daemon/serve-3243-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=21881 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-31T12:20:08.444Z [INFO] [DAEMON] sessionId=sess-A durationMs=719 SSE stream closed 2026-07-31T12:20:08.445Z [INFO] [DAEMON] sessionId=sess-A SSE stream opened qwen serve listening on http://127.0.0.1:40427 (mode=http-bridge, workspace=/startdir/src/qwen-code/packages/cli) 2026-07-31T12:20:08.809Z [INFO] [DAEMON] sessionId=sess-A durationMs=364 SSE stream closed ]0;Qwen - workspace ]2;Qwen - workspace qwen serve: bridge error (POST /session): Error: legacy-stderr-test-boom at spawnImpl (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:13331:15) at Object.spawnOrAttach (/startdir/src/qwen-code/packages/cli/src/serve/server.test.ts:1178:28) at /startdir/src/qwen-code/packages/cli/src/serve/routes/session.ts:97: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/utils/errors.test.ts (42 tests) 61ms 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) ✓ src/serve/server.test.ts (532 tests) 11983ms ✓ createServeApp > read-only status routes > evicts the oldest terminal extension operations 2666ms ✓ T2.9 SSE writer idle timeout (issue #4514) > does not evict when the writer idle timeout is unset (legacy contract) 642ms ✓ T2.9 SSE writer idle timeout (issue #4514) > does NOT evict when active writes keep refreshing lastWriteAt (#4514 T2.9 wenshao review) 737ms ✓ T2.9 SSE writer idle timeout (issue #4514) > does NOT evict when a back-pressured write drains within the idle budget 369ms qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) ✓ src/ui/hooks/useHistoryManager.test.ts (22 tests) 89ms qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 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/acp-integration/session/emitters/ToolCallEmitter.test.ts (47 tests) 47ms ✓ src/serve/routes/workspace-voice.test.ts (29 tests) 552ms (node:5619) 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/components/background-view/BackgroundTasksDialog.test.tsx (36 tests) 4383ms ✓ src/utils/memoryDiagnostics.test.ts (23 tests) 98ms ✓ src/ui/hooks/useCommandCompletion.test.ts (29 tests) 200ms ✓ src/ui/utils/osc8.test.ts (81 tests) 23ms ✓ src/services/prompt-processors/shellProcessor.test.ts (34 tests) 70ms ✓ src/ui/hooks/useToolScheduler.test.ts (19 tests) 150ms (node:6325) 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) 59ms ✓ src/acp-integration/session/HistoryReplayer.test.ts (26 tests) 32ms ✓ src/ui/components/StandaloneSessionPicker.test.tsx (19 tests) 771ms ✓ src/ui/components/shared/text-buffer-external-editor.test.ts (36 tests) 127ms ✓ src/ui/utils/mermaidImageRenderer.test.ts (25 tests) 1420ms ✓ mermaid image renderer > evicts Mermaid image caches by retained byte size 509ms ✓ src/ui/components/extensions/ExtensionsManagerDialog.test.tsx (23 tests) 3781ms ✓ ExtensionsManagerDialog (tabbed) > Browse plugins jumps to Discover filtered by the marketplace 312ms ✓ src/ui/utils/mergeCompactToolGroups.test.ts (32 tests) 12ms ✓ src/config/trustedFolders.test.ts (36 tests) 66ms ✓ src/ui/hooks/shellCommandProcessor.test.ts (22 tests) 519ms ✓ src/ui/components/background-view/LiveAgentPanel.test.tsx (26 tests) 1788ms ✓ src/utils/installationInfo.test.ts (27 tests) 21ms ✓ src/nonInteractive/io/JsonOutputAdapter.test.ts (35 tests) 28ms ✓ src/utils/languageUtils.test.ts (52 tests) 28ms ✓ src/ui/commands/clearCommand.test.ts (15 tests) 69ms ✓ src/ui/hooks/useBackgroundTaskView.test.ts (16 tests) 62ms ✓ src/ui/hooks/useResumeCommand.test.ts (11 tests) 74ms ✓ src/ui/utils/TableRenderer.test.tsx (60 tests) 4102ms ✓ > stays stable across multiple content widths 368ms ✓ src/ui/keyMatchers.test.ts (46 tests) 17ms ✓ src/ui/utils/MarkdownDisplay.test.tsx (101 tests) 5870ms ✓ src/serve/bridge-file-system-adapter.test.ts (18 tests) 78ms ✓ src/ui/commands/diffCommand.test.ts (25 tests) 32ms ✓ src/ui/hooks/useBranchCommand.test.ts (17 tests) 114ms ✓ src/ui/commands/directoryCommand.test.tsx (25 tests) 26ms ✓ src/serve/auth/qwen-device-flow-provider.test.ts (12 tests) 22ms ✓ src/acp-integration/session/Session.test.ts (172 tests) 22295ms ✓ Session > prompt > auto-compress > latches mid-turn drain off after repeated timeouts when the client never responds 6046ms ✓ Session > prompt > auto-compress > resets the timeout strike count when a drain succeeds 8068ms ✓ Session > prompt > auto-compress > recovers a drain that timed out and injects it on the next batch 2082ms ✓ src/ui/AppContainer.test.tsx (95 tests) 16499ms ✓ AppContainer State Management > Basic Rendering > renders without crashing with minimal props 315ms ✓ AppContainer State Management > Terminal Height Calculation > does not remeasure footer height for sticky todo status-only updates 386ms ✓ AppContainer State Management > handleRewindConfirm > skips conversation truncation when both-mode file restore fails 488ms ✓ AppContainer State Management > handleRewindConfirm > surfaces unexpected outer errors through history 809ms ✓ src/validateNonInterActiveAuth.test.ts (13 tests) 62ms ✓ src/config/settingsSchema.test.ts (29 tests) 20ms ✓ src/ui/utils/customBanner.test.ts (40 tests) 56ms ✓ src/ui/components/agent-view/agentHistoryAdapter.test.ts (35 tests) 36ms ✓ src/utils/handleAutoUpdate.test.ts (24 tests) 244ms ✓ src/ui/hooks/useSessionSearchInput.test.ts (36 tests) 77ms qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: GET /file rejected request missing required ?path qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: GET /stat unexpected error: bound workspace is not configured qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) ✓ src/config/migration/versions/v2-to-v3.test.ts (31 tests) 16ms ✓ src/serve/routes/workspace-file-read.test.ts (31 tests) 474ms ✓ src/ui/hooks/useAutoAcceptIndicator.test.ts (15 tests) 81ms ✓ src/acp-integration/acpAgent.worktree.test.ts (3 tests) 192ms ✓ src/config/jsonSchemaArg.test.ts (40 tests) 426ms (node:7695) 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/startup/worktreeStartup.test.ts (18 tests) 4113ms ✓ setupStartupWorktree > creates a worktree with an auto-generated slug for bare --worktree 339ms ✓ setupStartupWorktree > creates a worktree with an explicit slug 325ms ✓ setupStartupWorktree > creates a pr- worktree from FETCH_HEAD when fetch succeeds (local fake remote) 647ms ✓ setupStartupWorktree > re-attaches to an existing worktree instead of erroring (Phase 6 G1 fix) 525ms ✓ persistStartupWorktreeSidecar > adopts a stale marker when re-attaching to an inactive owner 460ms ✓ persistStartupWorktreeSidecar > keeps the marker when the owner runtime is still active 422ms ✓ persistStartupWorktreeSidecar > finds an active owner under a repo-subdir relative runtime dir 402ms qwen serve: POST /workspace/memory refused — existing file /tmp/qwen-serve-memory-CfpUUZ/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-02XhY3/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-02XhY3/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/ui/components/shared/VirtualizedList.test.tsx (20 tests) 4462ms ✓ > scrollTo > scrollTo middle offset positions correctly 336ms ✓ > auto-scroll during streaming > does NOT auto-scroll when user has scrolled away from bottom 312ms ✓ > auto-scroll during streaming > re-engages auto-scroll when user scrolls back to bottom 401ms ✓ src/serve/workspace-memory.test.ts (17 tests) 188ms ✓ src/serve/fs/paths.test.ts (29 tests) 58ms ✓ src/ui/commands/renameCommand.test.ts (22 tests) 54ms ✓ src/serve/auth.test.ts (27 tests) 13ms ✓ src/ui/hooks/useExtensionUpdates.test.ts (15 tests) 361ms ✓ src/ui/components/shared/BaseSelectionList.test.tsx (26 tests) 1463ms ✓ src/ui/hooks/useProviderUpdates.test.ts (15 tests) 333ms ✓ src/ui/components/StatsDisplay.test.tsx (17 tests) 1145ms ✓ src/ui/hooks/useDeleteCommand.test.ts (14 tests) 101ms ✓ src/ui/commands/btwCommand.test.ts (23 tests) 70ms ✓ src/config/hot-reload.test.ts (24 tests) 75ms ✓ src/services/SkillCommandLoader.test.ts (24 tests) 23ms ✓ src/serve/routes/a2ui-action.test.ts (19 tests) 154ms ✓ src/ui/components/messages/ToolConfirmationMessage.test.tsx (21 tests) 1282ms ✓ src/ui/voice/voice-keyterms.test.ts (28 tests) 70ms ✓ src/commands/sessions/list.test.ts (25 tests) 28ms ✓ src/services/McpPromptLoader.test.ts (27 tests) 21ms ✓ src/ui/components/ModelStatsDisplay.test.tsx (16 tests) 1125ms ✓ src/ui/utils/resumeHistoryUtils.test.ts (18 tests) 18ms ✓ src/utils/startupProfiler.test.ts (21 tests) 58ms ✓ src/commands/mcp/add.test.ts (27 tests) 175ms ✓ src/services/CommandService.test.ts (17 tests) 40ms ✓ src/ui/components/hooks/constants.test.ts (47 tests) 47ms ✓ src/ui/utils/InlineMarkdownRenderer.test.tsx (23 tests) 1053ms ✓ src/utils/standalone-update.test.ts (20 tests) 20ms ✓ src/serve/routes/workspace-setup-github.test.ts (12 tests) 313ms ✓ src/ui/commands/tasksCommand.test.ts (10 tests) 22ms ✓ src/config/auth.test.ts (21 tests) 56ms ✓ src/ui/components/HistoryItemDisplay.test.tsx (27 tests) 1526ms ✓ src/commands/extensions/install.test.ts (16 tests) 28ms ✓ src/utils/systemInfo.test.ts (22 tests) 33ms ✓ src/config/migration/index.test.ts (30 tests) 14ms ✓ src/services/BundledSkillLoader.test.ts (23 tests) 51ms ✓ src/serve/rate-limit.test.ts (25 tests) 1524ms ✓ rateLimit > fail-open > passes through when bucket map is at capacity 1497ms Error parsing settings file. Settings file may be corrupted: Unexpected end of JSON input ✓ src/utils/commentJson.test.ts (18 tests) 24ms ✓ src/serve/workspace-service/__tests__/integration.test.ts (13 tests) 190ms ✓ src/ui/commands/workflowsCommand.test.ts (15 tests) 44ms ✓ src/ui/utils/textUtils.test.ts (29 tests) 22ms ✓ src/ui/utils/historyMapping.test.ts (23 tests) 13ms ✓ src/ui/commands/cdCommand.test.ts (18 tests) 110ms Invalid values: Argument: approval-mode, Given: "invalid_mode", Choices: "plan", "default", "auto-edit", "auto", "yolo" Cannot use both --yolo (-y) and --approval-mode together. Use --approval-mode=yolo instead. process.exit unexpectedly called with "1" ✓ src/config/config.integration.test.ts (25 tests) 199ms ✓ src/ui/components/Composer.test.tsx (20 tests) 852ms ✓ src/config/claudeMcpImport.test.ts (14 tests) 30ms ✓ src/ui/components/LoadingIndicator.test.tsx (27 tests) 1188ms ✓ src/ui/utils/statsDataService.test.ts (17 tests) 30ms ✓ src/ui/commands/arenaCommand.test.ts (15 tests) 56ms qwen serve: --rate-limit-prompt must be a positive integer. qwen serve: --rate-limit-mutation must be a positive integer. qwen serve: --rate-limit-read must be a positive integer. qwen serve: --rate-limit-window-ms must be an integer >= 1000. qwen serve: --open passes the token in the browser launch command (visible via `ps` / /proc); on a multi-user host open the URL manually instead. qwen serve: failed to open browser: boom ✓ src/serve/routes/workspace-permissions.test.ts (10 tests) 217ms ✓ src/ui/components/messages/AskUserQuestionDialog.test.tsx (18 tests | 1 skipped) 3006ms ✓ > single-select interaction > keeps bare k/j in custom input while Ctrl+P/N still navigates options 374ms ✓ > multiple questions > does not auto-submit when pressing number key on Submit tab 322ms ✓ src/ui/hooks/useQwenAuth.test.ts (17 tests) 50ms ✓ src/ui/commands/aboutCommand.test.ts (12 tests) 49ms ✓ src/ui/commands/goalCommand.test.ts (18 tests) 89ms ✓ src/acp-integration/session/rewrite/MessageRewriteMiddleware.test.ts (12 tests) 28ms ✓ src/ui/hooks/useLoadingIndicator.test.ts (11 tests) 108ms ✓ src/ui/components/QwenOAuthProgress.test.tsx (18 tests) 1207ms ✓ src/ui/auth/useAuth.test.ts (23 tests) 80ms ✓ src/ui/voice/qwen-asr-realtime-session.test.ts (12 tests) 61ms ✓ src/ui/components/messages/DiffRenderer.test.tsx (16 tests) 1188ms ✓ src/commands/extensions/settings.test.ts (20 tests) 81ms Fatal error: Failed to relaunch the CLI process. PROCESS_EXIT_CALLED Fatal error: Failed to relaunch the CLI process. PROCESS_EXIT_CALLED Fatal error: Failed to relaunch the CLI process. Runner failed Fatal error: Failed to relaunch the CLI process. PROCESS_EXIT_CALLED Fatal error: Failed to relaunch the CLI process. PROCESS_EXIT_CALLED ✓ src/serve/workspace-providers-status.test.ts (10 tests) 73ms ✓ src/utils/relaunch.test.ts (9 tests) 32ms ✓ src/utils/cpuProfiler.test.ts (21 tests) 47ms ✓ src/ui/components/shared/ScrollableList.test.tsx (13 tests) 3019ms ✓ mouse scrolling > routes wheel SGR events to viewport scroll (window shifts) 325ms ✓ mouse scrolling > keeps dragging after the pointer leaves the scrollbar column 339ms ✓ keyboard scroll > PageUp scrolls up by one page (containerHeight lines) 431ms ✓ src/utils/doctorChecks.test.ts (18 tests) 48ms ✓ src/utils/apiPreconnect.test.ts (26 tests) 18ms ✓ src/commands/mcp/reconnect.test.ts (9 tests) 28ms ✓ src/acp-integration/session/emitters/MessageEmitter.test.ts (20 tests) 25ms ✓ src/ui/themes/detect-terminal-theme.test.ts (29 tests) 47ms ✓ src/serve/fs/audit.test.ts (13 tests) 10ms 2026-07-31T12:20:38.517Z [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-31T12:20:38.525Z [INFO] [DAEMON] msg-0 2026-07-31T12:20:38.525Z [INFO] [DAEMON] msg-1 2026-07-31T12:20:38.525Z [INFO] [DAEMON] msg-2 2026-07-31T12:20:38.525Z [INFO] [DAEMON] msg-3 2026-07-31T12:20:38.525Z [INFO] [DAEMON] msg-4 2026-07-31T12:20:38.525Z [INFO] [DAEMON] msg-5 2026-07-31T12:20:38.525Z [INFO] [DAEMON] msg-6 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-7 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-8 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-9 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-10 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-11 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-12 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-13 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-14 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-15 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-16 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-17 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-18 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-19 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-20 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-21 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-22 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-23 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-24 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-25 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-26 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-27 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-28 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-29 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-30 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-31 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-32 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-33 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-34 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-35 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-36 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-37 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-38 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-39 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-40 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-41 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-42 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-43 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-44 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-45 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-46 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-47 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-48 2026-07-31T12:20:38.526Z [INFO] [DAEMON] msg-49 ✓ src/serve/daemon-logger.test.ts (21 tests) 208ms ✓ src/services/commandMetadata.test.ts (37 tests) 14ms ✓ src/commands/extensions/consent.test.ts (21 tests) 17ms ✓ src/ui/commands/restoreCommand.test.ts (16 tests) 118ms ✓ src/ui/utils/todoSnapshot.test.ts (15 tests) 7ms ✓ src/utils/sessionPaths.test.ts (8 tests) 99ms ✓ src/ui/statusLinePresets.test.ts (18 tests) 24ms ✓ src/utils/housekeeping/scheduler.test.ts (13 tests) 45ms ✓ src/commands/serve.test.ts (22 tests) 6133ms ✓ serve startup import boundary > reaches listening through the dev entrypoint without loading interactive Ink internals first 5987ms ✓ src/ui/components/Footer.test.tsx (19 tests) 1085ms ✓ src/ui/components/shared/MaxSizedBox.test.tsx (21 tests) 1049ms ✓ src/utils/warningHandler.test.ts (13 tests) 296ms ✓ src/ui/auth/ProviderSetupSteps.test.tsx (6 tests) 926ms ✓ ProviderSetupSteps > filters recommended models when typing search while recommendations are focused 309ms ✓ src/utils/earlyInputCapture.test.ts (28 tests) 32ms ✓ src/ui/commands/contextCommand.test.ts (9 tests) 56ms ✓ src/services/setup-github.test.ts (10 tests) 50ms ✓ src/serve/daemon-status.test.ts (5 tests) 25ms ✓ src/services/BuiltinCommandLoader.test.ts (11 tests) 26ms ✓ src/ui/commands/forkCommand.test.ts (15 tests) 24ms ✓ src/dualOutput/DualOutputBridge.test.ts (19 tests) 128ms ✓ src/ui/utils/restoreGoal.test.ts (20 tests) 13ms ✓ src/ui/hooks/useShellHistory.test.ts (9 tests) 848ms ✓ src/serve/fs/contract.test.ts (10 tests) 30ms 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/FileCommandLoader-extension.test.ts (6 tests) 62ms ✓ src/config/mcpApprovals.test.ts (20 tests) 58ms ✓ src/ui/themes/color-utils.test.ts (23 tests) 26ms ✓ src/ui/components/RewindSelector.test.tsx (10 tests) 1526ms ✓ src/ui/components/hooks/HookConfigDetailStep.test.tsx (17 tests) 1176ms ✓ src/utils/housekeeping/cleanup.test.ts (15 tests) 99ms ✓ src/ui/components/hooks/HooksManagementDialog.test.tsx (8 tests) 2436ms ✓ HooksManagementDialog > should navigate from a matcher hook to matcher detail 521ms ✓ HooksManagementDialog > should navigate from matcher detail to config detail 462ms ✓ HooksManagementDialog > should navigate directly from a non-matcher hook to config detail 842ms ✓ src/utils/osc.test.ts (30 tests) 11ms ✓ src/commands/extensions/update.test.ts (14 tests) 34ms ✓ src/acp-integration/session/Session.worktree.test.ts (4 tests) 27ms ✓ src/ui/commands/extensionsCommand.test.ts (11 tests) 34ms ✓ src/ui/components/Help.test.tsx (8 tests) 959ms ✓ src/ui/themes/theme-manager.test.ts (19 tests) 32ms ✓ src/ui/hooks/extension-mention-ref.test.ts (24 tests) 20ms ✓ src/serve/env-snapshot.test.ts (13 tests) 398ms ✓ src/ui/hooks/useKeypress.test.ts (15 tests) 82ms ✓ src/services/command-migration-tool.test.ts (14 tests) 70ms ✓ src/ui/components/hooks/HookDetailStep.test.tsx (14 tests) 806ms ✓ src/config/migration/versions/v3-to-v4.test.ts (32 tests) 13ms ✓ src/ui/components/messages/CompactToolGroupDisplay.test.tsx (19 tests) 283ms ✓ src/utils/envVarResolver.test.ts (16 tests) 8ms ✓ src/ui/commands/insightCommand.test.ts (5 tests) 24ms ✓ src/utils/writeWithBackup.test.ts (13 tests) 12ms ✓ src/utils/runBudget.test.ts (42 tests) 23ms ✓ src/ui/commands/ideCommand.test.ts (8 tests) 25ms ✓ src/services/prompt-processors/injectionParser.test.ts (21 tests) 16ms ✓ src/commands/mcp/list.test.ts (7 tests) 16ms qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) ✓ src/ui/components/ShellConfirmationDialog.test.tsx (12 tests) 842ms ✓ src/acp-integration/session/rewrite/LlmRewriter.test.ts (9 tests) 10ms qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 60000ms, idle threshold 1800000ms) qwen serve: session reaper started (interval 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/acp-integration/session/emitters/PlanEmitter.test.ts (19 tests) 14ms ✓ src/serve/routes/workspace-file-write.test.ts (10 tests) 351ms ✓ src/ui/components/messages/InlineParallelAgentsDisplay.test.tsx (6 tests) 350ms ✓ src/ui/hooks/useInputHistoryStore.test.ts (14 tests) 106ms ✓ src/ui/components/MemoryDialog.test.tsx (7 tests) 1248ms ✓ src/ui/commands/compressCommand.test.ts (10 tests) 50ms ❯ src/ui/auth/AuthDialog.test.tsx (25 tests | 10 failed) 55138ms ✓ AuthDialog > should show an error if the initial auth type is invalid 99ms ✓ AuthDialog > GEMINI_API_KEY environment variable > should detect GEMINI_API_KEY environment variable 45ms ✓ AuthDialog > GEMINI_API_KEY environment variable > should not show the GEMINI_API_KEY message if QWEN_DEFAULT_AUTH_TYPE is set to something else 32ms ✓ AuthDialog > GEMINI_API_KEY environment variable > should show the GEMINI_API_KEY message if QWEN_DEFAULT_AUTH_TYPE is set to use api key 29ms ✓ AuthDialog > QWEN_DEFAULT_AUTH_TYPE environment variable > should select the auth type specified by QWEN_DEFAULT_AUTH_TYPE 26ms ✓ AuthDialog > QWEN_DEFAULT_AUTH_TYPE environment variable > should fall back to default if QWEN_DEFAULT_AUTH_TYPE is not set 24ms ✓ AuthDialog > QWEN_DEFAULT_AUTH_TYPE environment variable > should show an error and fall back to default if QWEN_DEFAULT_AUTH_TYPE is invalid 26ms ✓ AuthDialog > should prevent exiting when no auth method is selected and show error message 137ms ✓ AuthDialog > should not exit if there is already an error message 112ms ✓ AuthDialog > should allow exiting when auth method is already selected 111ms ✓ AuthDialog > should preserve the selected main entry when returning from each top-level flow 801ms ✓ AuthDialog > should go back from Coding Plan region selection to Alibaba ModelStudio 302ms × AuthDialog > should go back from third-party provider API key input to provider list 5232ms → expected '┌────────────────────────────────────…' to contain 'DeepSeek API Key · Step 1/2 · API Key' ✓ AuthDialog > should show preset providers in third-party provider options 267ms × AuthDialog > drives API key provider steps from endpoint options metadata 5211ms → expected '┌────────────────────────────────────…' to contain 'DeepSeek API Key · Step 1/2 · API Key' ✓ AuthDialog > should show Alibaba ModelStudio access methods after selecting Alibaba ModelStudio 221ms × AuthDialog > should submit Token Plan through the shared subscription handler 5708ms → expected "spy" to be called at least once × AuthDialog > should pre-fill the Model IDs step with previously saved custom model IDs 5124ms → expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Token Plan/ ✓ AuthDialog > should return from Token Plan API key input to Token Plan selection 457ms × AuthDialog Custom API Key Wizard > navigates to protocol selection when Custom API Key is selected 5108ms → expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Custom Provider/ × AuthDialog Custom API Key Wizard > navigates to base URL input after selecting a protocol 5334ms → expected '┌────────────────────────────────────…' to contain 'Custom Provider · Step 2/6 · Base URL' × AuthDialog Custom API Key Wizard > shows review screen with JSON after entering model IDs 5151ms → expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Custom Provider/ × AuthDialog Custom API Key Wizard > calls handleProviderSubmit on Enter in review view 5092ms → expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Custom Provider/ × AuthDialog Custom API Key Wizard > shows advanced config screen after entering model IDs 5110ms → expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?Custom Provider/ × AuthDialog Custom API Key Wizard > passes generationConfig when advanced options are toggled 5373ms → expected '┌────────────────────────────────────…' to contain 'Custom Provider · Step 3/6 · API Key' ✓ src/ui/voice/native-audio-recorder.test.ts (12 tests) 26ms ✓ src/ui/hooks/useSessionPicker.test.tsx (8 tests) 118ms ✓ src/ui/hooks/useInputHistory.test.ts (11 tests) 65ms ✓ src/ui/hooks/useEditorSettings.test.ts (10 tests) 96ms ✓ src/ui/hooks/useMessageQueue.test.ts (16 tests) 61ms ✓ src/ui/components/hooks/HandlerListBody.test.tsx (11 tests) 748ms ✓ src/ui/utils/asciiCharts.test.ts (21 tests) 53ms ✓ src/config/migration/versions/v1-to-v2.test.ts (20 tests) 11ms ✓ src/ui/hooks/useReverseSearchCompletion.test.tsx (10 tests) 50ms ✓ src/utils/gitUtils.test.ts (33 tests) 44ms ✓ src/ui/components/StatusLineDialog.test.tsx (5 tests) 1114ms ✓ StatusLineDialog > keeps preset priority order after an item is toggled off and on 482ms ✓ src/ui/utils/computeStats.test.ts (12 tests) 12ms ✓ src/services/prompt-processors/atFileProcessor.test.ts (11 tests) 23ms ✓ src/serve/fs/policy.test.ts (18 tests) 49ms ✓ src/ui/hooks/useCompletion.test.ts (13 tests) 59ms ✓ src/ui/hooks/useExportCompletion.test.ts (20 tests) 69ms ✓ src/commands/channel/start.test.ts (5 tests) 24ms ✓ src/ui/utils/formatters.test.ts (33 tests) 13ms ✓ src/ui/commands/voice-command.test.ts (11 tests) 17ms ✓ src/ui/commands/lspCommand.test.ts (9 tests) 27ms ✓ src/ui/components/PluginChoicePrompt.test.tsx (13 tests) 957ms ✓ src/ui/commands/setupGithubCommand.test.ts (9 tests) 108ms ✓ src/serve/daemon-status-provider.test.ts (4 tests) 678ms ✓ src/ui/contexts/SessionContext.test.tsx (6 tests) 356ms ✓ src/ui/hooks/useAttentionNotifications.test.ts (9 tests) 50ms ✓ src/serve/permission-audit.test.ts (10 tests) 9ms ✓ src/ui/hooks/useTurnDiffs.test.ts (7 tests) 325ms ✓ src/ui/components/SettingsCorruptedDialog.test.tsx (8 tests) 1669ms ✓ SettingsCorruptedDialog > should call onContinue when pressing Enter on CONTINUE option 309ms ✓ src/ui/commands/bugCommand.test.ts (4 tests) 40ms ✓ src/services/voice-service.test.ts (9 tests) 23ms ✓ src/acp-integration/service/filesystem.test.ts (8 tests) 10ms ✓ src/ui/hooks/useIdeTrustListener.test.ts (5 tests) 54ms ✓ src/commands/channel/pidfile.test.ts (16 tests) 327ms ✓ src/ui/components/hooks/matcherGrouping.test.ts (13 tests) 8ms ✓ src/ui/hooks/useMemoryMonitor.test.ts (8 tests) 32ms ✓ src/ui/hooks/useTrustModify.test.ts (8 tests) 59ms ✓ src/ui/components/background-view/BackgroundTasksPill.test.tsx (19 tests) 28ms ✓ src/ui/commands/skillsCommand.test.ts (9 tests) 25ms ✓ src/ui/hooks/useMcpApproval.test.ts (9 tests) 52ms ✓ src/ui/hooks/useTimer.test.ts (13 tests) 59ms ✓ src/ui/voice/voice-recorder.test.ts (8 tests) 27ms ✓ src/ui/commands/hooksCommand.test.ts (8 tests) 37ms ✓ src/serve/fs/errors.test.ts (20 tests) 10ms ✓ src/commands/extensions/new.test.ts (9 tests) 95ms ✓ src/commands/extensions/sources.test.ts (11 tests) 43ms ✓ src/utils/windowTitle.test.ts (21 tests) 11ms ✓ src/commands/channel/config-utils.test.ts (17 tests) 18ms ✓ src/ui/voice/voice-stream-session.test.ts (10 tests) 20ms ✓ src/i18n/mustTranslateKeys.test.ts (20 tests) 542ms ✓ src/ui/components/agent-view/AgentTabBar.test.tsx (7 tests) 347ms ✓ src/ui/components/BaseTextInput.test.tsx (12 tests) 368ms ✓ src/ui/components/Header.test.tsx (18 tests) 1011ms ✓ src/config/migration/versions/v5-to-v4.test.ts (17 tests) 8ms ✓ src/nonInteractive/io/StreamJsonInputReader.test.ts (11 tests) 18ms ✓ src/ui/components/messages/CompressionMessage.test.tsx (8 tests) 626ms ✓ src/ui/hooks/useFolderTrust.test.ts (9 tests) 48ms ✓ src/ui/hooks/usePhraseCycler.test.ts (9 tests) 82ms ✓ src/ui/utils/historyUtils.test.ts (13 tests) 5ms ✓ src/ui/components/hooks/HookMatcherDetailStep.test.tsx (8 tests) 561ms ✓ src/ui/utils/highlight.test.ts (18 tests) 7ms ✓ src/utils/terminalSequence.test.ts (26 tests) 10ms ✓ src/ui/layouts/DefaultAppLayout.test.tsx (7 tests) 412ms ✓ src/ui/utils/synchronizedOutput.test.ts (17 tests) 9ms ✓ src/config/loadedSettingsAdapter.test.ts (5 tests) 20ms ✓ src/services/commandUtils.test.ts (14 tests) 17ms ✓ src/ui/components/mcp/utils.test.ts (16 tests) 11ms ✓ src/ui/utils/clipboardUtils.test.ts (27 tests) 55880ms ✓ clipboardUtils > clipboardHasImage > should return true when clipboard contains image 3288ms ✓ clipboardUtils > clipboardHasImage > should return false when clipboard does not contain image 1959ms ✓ clipboardUtils > clipboardHasImage > should return false when wl-paste is not found 1939ms ✓ clipboardUtils > xclip / X11 path > clipboardHasImage > should detect xclip as the clipboard tool on X11 2399ms ✓ clipboardUtils > xclip / X11 path > clipboardHasImage > should return false when xclip reports no image types 2027ms ✓ clipboardUtils > xclip / X11 path > clipboardHasImage > should return false when xclip is not found 1681ms ✓ clipboardUtils > xclip / X11 path > saveClipboardImage > should return null when xclip is not found 2220ms ✓ clipboardUtils > BMP-to-PNG conversion (wl-paste) > should return null when python3 PIL conversion fails 1782ms ✓ clipboardUtils > BMP-to-PNG conversion (wl-paste) > should prefer PNG over BMP when both are available 1864ms ✓ clipboardUtils > saveFromCommand error paths > should return null on spawn timeout (5s) 2036ms ✓ clipboardUtils > saveFromCommand error paths > should return null on spawn error 1889ms ✓ clipboardUtils > saveFromCommand error paths > should return null on stdout error 1877ms ✓ clipboardUtils > saveClipboardImage > should return null when no clipboard tool is available 2004ms ✓ clipboardUtils > saveClipboardImage > should return null on spawn error during list-types 2372ms ✓ clipboardUtils > cleanupOldClipboardImages > should not throw errors when directory does not exist 1857ms ✓ clipboardUtils > cleanupOldClipboardImages > should complete without errors on valid directory 1974ms ✓ clipboardUtils > macOS/Windows fallback > should return false on non-linux platform when @teddyzhu/clipboard fails 2174ms ✓ clipboardUtils > macOS/Windows fallback > should return null on non-linux platform when saving fails 1755ms ✓ clipboardUtils > cache behavior > should reset wl-paste cache between clipboardHasImage calls 2279ms ✓ clipboardUtils > writeOsc52 > should write OSC 52 sequence to stdout when stdout is TTY 2522ms ✓ clipboardUtils > writeOsc52 > should write OSC 52 sequence to stderr when stdout is not TTY but stderr is 1756ms ✓ clipboardUtils > writeOsc52 > should return false and not write when neither stdout nor stderr is TTY 2005ms ✓ clipboardUtils > writeOsc52 > should handle special characters in text 2166ms ✓ clipboardUtils > writeOsc52 > should handle empty string 1848ms ✓ clipboardUtils > writeOsc52 > should return false on write error 2017ms ✓ clipboardUtils > writeOsc52 > should wrap in tmux DCS envelope when TMUX is set 1912ms ✓ clipboardUtils > writeOsc52 > should wrap in screen DCS envelope when STY is set 2273ms ✓ src/commands/extensions/utils.test.ts (11 tests) 15ms ✓ src/ui/commands/mcpCommand.test.ts (10 tests) 37ms ✓ src/ui/components/arena/ArenaSelectDialog.test.tsx (5 tests) 723ms ✓ ArenaSelectDialog > toggles quick preview and detailed diff for the highlighted agent 302ms ✓ src/ui/components/TrustDialog.test.tsx (6 tests) 545ms ✓ src/nonInteractive/control/controllers/permissionController.test.ts (4 tests) 65ms ✓ src/ui/components/InputPrompt.test.tsx (184 tests) 71386ms ✓ InputPrompt > onTabConsumerChange reporting (issue #4171) > reports true while the followup prompt suggestion is visible 823ms ✓ InputPrompt > onTabConsumerChange reporting (issue #4171) > reports false again after the autocomplete dropdown is dismissed 524ms ✓ InputPrompt > onSuggestionsVisibilityChange stays narrow (autocomplete only) > stays false when only a followup prompt suggestion is visible 812ms ✓ InputPrompt > should set the buffer text when a shell history command is retrieved 393ms ✓ InputPrompt > should call shellHistory.addCommandToHistory on submit in shell mode 421ms ✓ InputPrompt > should NOT call shell history methods when not in shell mode 751ms ✓ InputPrompt > should call completion.navigateUp for up arrow when suggestions are showing 571ms ✓ InputPrompt > should call completion.navigateDown for down arrow when suggestions are showing 577ms ✓ InputPrompt > should NOT call completion navigation when suggestions are not showing 866ms ✓ InputPrompt > clipboard image paste > should handle Ctrl+V when clipboard has an image 404ms ✓ InputPrompt > clipboard image paste > should handle Cmd+V when clipboard has an image 398ms ✓ InputPrompt > clipboard image paste > should not insert anything when clipboard has no image 416ms ✓ InputPrompt > clipboard image paste > should handle image save failure gracefully 385ms ✓ InputPrompt > clipboard image paste > should insert image path at cursor position with proper spacing 425ms ✓ InputPrompt > clipboard image paste > should handle errors during clipboard operations gracefully 432ms ✓ InputPrompt > should complete a partial parent command 463ms ✓ InputPrompt > should append a sub-command when the parent command is already complete 397ms ✓ InputPrompt > should handle the "backspace" edge case correctly 431ms ✓ InputPrompt > should complete a partial argument for a command 399ms ✓ InputPrompt > should autocomplete on Enter when suggestions are active, without submitting 403ms ✓ InputPrompt > should complete a command based on its altNames 399ms ✓ InputPrompt > should not submit on Enter when the buffer is empty or only contains whitespace 384ms ✓ InputPrompt > should submit directly on Enter when isPerfectMatch is true 406ms ✓ InputPrompt > should submit a perfect match on Enter when suggestions were not navigated 417ms ✓ InputPrompt > should fill and submit an export format selected with arrow navigation 581ms ✓ InputPrompt > should keep cycling export formats after arrow navigation fills input 651ms ✓ InputPrompt > should keep cycling export formats with Ctrl+P/N after arrow navigation fills input 808ms ✓ InputPrompt > should keep export format suggestions visible after arrow navigation fills input 460ms ✓ InputPrompt > should not clobber manually edited buffer when arrow is pressed after export fill 983ms ✓ InputPrompt > should wrap to jsonl when pressing Up from the /export Phase 1 popup 415ms ✓ InputPrompt > should wrap Phase 2 cycling backward when pressing Up repeatedly 702ms ✓ InputPrompt > should seed Phase 2 cycling when Tab accepts a format in the /export popup 744ms ✓ InputPrompt > should not overwrite /export html with extra args when Down is pressed 588ms ✓ InputPrompt > should reset export cycling state on Escape so arrows no longer cycle 752ms ✓ InputPrompt > should reset export cycling state on Ctrl+C so new input is not overwritten 768ms ✓ InputPrompt > should cycle export format on Down when /export was typed manually (not via popup) 725ms ✓ InputPrompt > should not arm export cycling from restored history text 468ms ✓ InputPrompt > should trigger export-specific arrow navigation even when completion suggestions are a superset 466ms ✓ InputPrompt > should fall through to generic accept when Tab targets a non-export item in the /export superset popup 438ms ✓ InputPrompt > should fall through to generic completion when suggestions are missing an export format 404ms ✓ InputPrompt > should trigger Phase 1 export popup even when /export has trailing spaces 408ms ✓ InputPrompt > should autocomplete on Enter when user arrow-navigated a perfect-match suggestion list 592ms ✓ InputPrompt > should submit directly on Enter after arrow-navigate + backspace + retype to perfect match 1057ms ✓ InputPrompt > should submit directly on Enter for a perfect match without prior arrow navigation 420ms ✓ InputPrompt > should dismiss completion on Enter after accepting @path suggestion 434ms ✓ InputPrompt > should autocomplete @path on Tab without submitting or resetting completion 447ms ✓ InputPrompt > should reset history navigation after submitting on Enter 417ms ✓ InputPrompt > should submit directly on Enter when a complete leaf command is typed 405ms ✓ InputPrompt > should autocomplete an @-path on Enter without submitting 428ms ✓ InputPrompt > should add a newline on enter when the line ends with a backslash 421ms ✓ InputPrompt > should clear the buffer on Ctrl+C if it has text 416ms ✓ InputPrompt > should NOT clear the buffer on Ctrl+C if it is empty 417ms ✓ InputPrompt > cursor-based completion trigger > should handle multiline text correctly 328ms ✓ InputPrompt > vim mode > should not call buffer.handleInput when vim handles the input 408ms ✓ InputPrompt > vim mode > should call buffer.handleInput when vim does not handle the input 423ms ✓ InputPrompt > vim mode > should call handleInput when vim mode is disabled 412ms ✓ InputPrompt > vim mode > should toggle shortcuts when vim passes through ? on an empty prompt 401ms ✓ InputPrompt > unfocused paste > should handle bracketed paste when not focused 411ms ✓ InputPrompt > unfocused paste > should ignore regular keypresses when not focused 410ms ✓ InputPrompt > multiline paste > should handle multiline paste 'with \n newlines' 408ms ✓ InputPrompt > multiline paste > should handle multiline paste 'with extra slashes before \n newlines' 391ms ✓ InputPrompt > multiline paste > should handle multiline paste 'with \r\n newlines' 401ms ✓ InputPrompt > paste auto-submission protection > should prevent auto-submission immediately after paste with newlines 722ms ✓ InputPrompt > paste auto-submission protection > should allow submission after paste protection timeout 342ms ✓ InputPrompt > paste auto-submission protection > should not interfere with normal Enter key submission when no recent paste 430ms ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should clear buffer on second ESC press 522ms ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should handle ESC in shell mode by disabling shell mode 423ms ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should handle ESC when completion suggestions are showing 417ms ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should not call onEscapePromptChange when not provided 410ms ✓ InputPrompt > enhanced input UX - double ESC clear functionality > should not interfere with existing keyboard shortcuts 554ms ✓ InputPrompt > reverse search > invokes reverse search on Ctrl+R 436ms ✓ InputPrompt > reverse search > resets reverse search state on Escape 531ms ✓ InputPrompt > reverse search > completes the highlighted entry on Tab and exits reverse-search 459ms ✓ InputPrompt > reverse search > submits the highlighted entry on Enter and exits reverse-search 368ms ✓ InputPrompt > reverse search > text and cursor position should be restored after reverse search 324ms ✓ InputPrompt > reverse search > does not fall through to shell history on Ctrl+P/N while reverse search is active 734ms ✓ InputPrompt > Ctrl+E keyboard shortcut > should move cursor to end of current line in multiline input 440ms ✓ InputPrompt > Ctrl+E keyboard shortcut > should move cursor to end of current line for single line input 416ms ✓ InputPrompt > command search (Ctrl+R when not in shell) > enters command search on Ctrl+R and shows suggestions 417ms ✓ InputPrompt > command search (Ctrl+R when not in shell) > shows command search suggestions over active export suggestions 575ms ✓ InputPrompt > command search (Ctrl+R when not in shell) > expands and collapses long suggestion via Right/Left arrows 492ms ✓ InputPrompt > command search (Ctrl+R when not in shell) > renders match window and expanded view (snapshots) 582ms ✓ InputPrompt > command search (Ctrl+R when not in shell) > does not show expand/collapse indicator for short suggestions 486ms ✓ InputPrompt > snapshots > should render correctly in yolo mode 328ms ✓ InputPrompt > snapshots > should not show inverted cursor when shell is focused 311ms ✓ InputPrompt > should still allow input when shell is not focused 433ms ✓ InputPrompt > large paste placeholder > should create placeholder for paste > 1000 characters 419ms ✓ InputPrompt > large paste placeholder > should create placeholder for paste > 10 lines 479ms ✓ InputPrompt > large paste placeholder > should use sequential IDs for multiple pastes of same size 597ms ✓ InputPrompt > large paste placeholder > should expand placeholder to full content on submit 349ms ✓ InputPrompt > large paste placeholder > should expand same-size placeholders correctly when #2 appears first 368ms ✓ InputPrompt > large paste placeholder > should write expanded placeholder content to shell history 351ms ✓ InputPrompt > large paste placeholder > should reuse placeholder ID after deletion 337ms ✓ InputPrompt > large paste placeholder > should handle mixed pastes with different character counts 735ms ✓ InputPrompt > Ctrl+Y retry shortcut > should trigger handleRetryLastPrompt on Ctrl+Y 386ms ✓ InputPrompt > Ctrl+Y retry shortcut > should NOT trigger retry on plain y key 403ms ✓ InputPrompt > Ctrl+Y retry shortcut > should NOT trigger retry on Ctrl+R (reverse search) 431ms ✓ InputPrompt > Ctrl+Y retry shortcut > should handle Ctrl+Y when feedback dialog is open 439ms ✓ InputPrompt > queue input editing > should pop queued messages into input on Up arrow when queue is non-empty 414ms ✓ InputPrompt > queue input editing > should prepend queued messages before existing input text 404ms ✓ InputPrompt > queue input editing > should pop queued messages on ESC when queue is non-empty 437ms ✓ InputPrompt > queue input editing > should fall through to history when pop returns null (race condition) 454ms ✓ InputPrompt > queue input editing > should navigate history on Up arrow when queue is empty 444ms ✓ InputPrompt > queue input editing > should not intercept Ctrl+P when queue is non-empty 469ms ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+P with cursor mid-line snaps to col 0 without touching history 443ms ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+N with cursor not at end-of-line snaps to end without touching history 412ms ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+P at col 0 walks history and parks the cursor at offset 0 430ms ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+P/N and arrows do not change input history while a tool confirmation owns navigation 836ms ✓ InputPrompt > two-step edge transition for history navigation > Ctrl+N falls through to the agent tab bar when there is no newer history 421ms ✓ InputPrompt > two-step edge transition for history navigation > arrow Down applies the same snap-before-history rule as Ctrl+N 468ms ✓ InputPrompt > two-step edge transition for history navigation > arrow Down at end-of-line walks history 424ms ✓ InputPrompt > two-step edge transition for history navigation > arrow Down falls through to the agent tab bar when there is no newer history 403ms ✓ 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) 434ms ✓ 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 454ms ✓ InputPrompt > two-step edge transition for history navigation > arrow Down skips terminal bg agents after the live panel visibility window (#5067) 449ms ✓ InputPrompt > two-step edge transition for history navigation > arrow Down focuses the background-tasks pill when only the pill is shown (workflow-only session) 453ms ✓ InputPrompt > two-step edge transition for history navigation > Down at the bottom of the live agent panel descends to the agent tab bar 423ms ✓ 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 431ms ✓ InputPrompt > two-step edge transition for history navigation > Down from an expired live panel falls through to the tab bar 416ms ✓ InputPrompt > two-step edge transition for history navigation > Enter on the live panel maps visible agents back to their bg entry index 461ms ✓ InputPrompt > two-step edge transition for history navigation > arrow Up applies the same two-step rule as Ctrl+P (snap before navigate) 430ms ✓ InputPrompt > two-step edge transition for history navigation > suppresses completion menu navigation for history-restored text until edited 875ms ✓ src/ui/components/SessionPreview.test.tsx (7 tests) 863ms (node:19516) 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/services/saved-workflow-loader.test.ts (11 tests) 9ms ✓ src/core/initializer.test.ts (11 tests) 20ms ✓ src/utils/deepMerge.test.ts (13 tests) 20ms ✓ src/ui/commands/approvalModeCommand.test.ts (13 tests) 27ms ✓ src/remoteInput/RemoteInputWatcher.test.ts (7 tests) 500ms ✓ src/ui/hooks/useGitBranchName.test.ts (8 tests) 42ms ✓ src/ui/models/availableModels.test.ts (14 tests) 17ms ✓ src/ui/components/Tips.test.ts (9 tests) 16ms ✓ src/ui/utils/lowlightLoader.test.ts (5 tests) 67ms ✓ src/ui/components/shared/RadioButtonSelect.test.tsx (5 tests) 223ms ✓ src/ui/commands/initCommand.test.ts (5 tests) 35ms ✓ src/ui/components/AnsiOutput.test.tsx (8 tests) 495ms qwen serve: /acp WS error: test error qwen serve: /acp WS write failed: write failed ✓ src/ui/components/background-view/liveAgentPanelLayout.measurement.test.tsx (2 tests) 404ms ✓ src/serve/acp-http/ws-stream.test.ts (14 tests) 25ms ✓ src/ui/components/SuggestionsDisplay.test.tsx (6 tests) 374ms ✓ src/ui/utils/mouse.test.ts (15 tests) 9ms ✓ src/ui/voice/sox-recorder.test.ts (5 tests) 14ms ✓ src/utils/costCalculator.test.ts (14 tests) 7ms ✓ src/config/migration/scheduler.test.ts (7 tests) 29ms ✓ src/ui/components/AppHeader.test.tsx (6 tests) 491ms ✓ src/ui/commands/compressFastCommand.test.ts (7 tests) 20ms ✓ src/ui/components/hooks/HooksListStep.test.tsx (9 tests) 587ms ✓ src/config/mcpJson.test.ts (11 tests) 15ms ✓ src/ui/voice/voice-refine.test.ts (11 tests) 23ms ✓ src/nonInteractive/control/controllers/systemController.test.ts (8 tests) 12ms ✓ src/ui/components/ConsentPrompt.test.tsx (9 tests) 668ms ✓ src/utils/commands.test.ts (13 tests) 12ms ✓ src/ui/hooks/useSlashCompletion.integration.test.ts (3 tests) 207ms ✓ src/ui/commands/planCommand.test.ts (7 tests) 14ms ✓ src/ui/components/background-view/liveAgentPanelVisibility.test.ts (11 tests) 10ms ✓ src/ui/commands/resumeCommand.test.ts (9 tests) 17ms ✓ src/commands/extensions/disable.test.ts (9 tests) 47ms ✓ src/ui/components/messages/DiffStatsDisplay.test.tsx (6 tests) 307ms 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) 971ms ✓ src/utils/cleanup.test.ts (8 tests) 169ms ✓ src/ui/components/mcp/steps/ResourceListStep.test.tsx (5 tests) 719ms ✓ ResourceListStep > windows a long list with correct count + arrow indicators 472ms ✓ src/ui/utils/updateCheck.test.ts (9 tests) 14ms ✓ src/ui/components/arena/ArenaCards.test.tsx (2 tests) 216ms ✓ src/i18n/index.test.ts (11 tests) 17012ms ✓ bundled locale fallback > loads bundled builtin translations when locale files are absent on disk 2196ms ✓ bundled locale fallback > falls back to bundled translations when a user locale default export is null 2123ms ✓ bundled locale fallback > falls back to bundled translations when a user locale default export is an array 2186ms ✓ language normalization > normalizes explicit locale IDs before loading translations 2092ms ✓ language normalization > normalizes explicit POSIX locale strings before loading translations 2303ms ✓ localizeToolDisplayName > translates tool badges without colliding with generic UI strings 2389ms ✓ localizeToolDisplayName > falls back to the English display name for untranslated tools 1938ms ✓ localizeToolDisplayName > has a zh translation for every core tool display name 1771ms ✓ src/ui/utils/terminalRedrawOptimizer.test.ts (9 tests) 12ms ✓ src/ui/components/StickyTodoList.test.tsx (6 tests) 452ms ✓ src/services/FileCommandLoader-markdown.test.ts (4 tests) 87ms ✓ src/ui/layouts/ScreenReaderAppLayout.test.tsx (6 tests) 344ms ✓ src/commands/mcp/approve.test.ts (7 tests) 71ms ✓ src/ui/utils/CodeColorizer.test.ts (18 tests) 7ms ✓ src/ui/components/ToolStatsDisplay.test.tsx (5 tests) 328ms ✓ src/ui/voice/voice-keyterms-race.test.ts (3 tests) 3943ms ✓ buildVoiceKeyterms race checks > does not read a keyterms file swapped in before open 3940ms ✓ src/ui/utils/sessionPickerUtils.test.ts (15 tests) 15ms ✓ src/ui/utils/MermaidDiagram.test.tsx (5 tests) 627ms ✓ src/ui/App.test.tsx (7 tests) 400ms ✓ src/ui/utils/backgroundWorkUtils.test.ts (8 tests) 9ms ✓ src/services/markdown-command-parser.test.ts (13 tests) 35ms ✓ src/ui/components/SkillReviewDialog.test.tsx (7 tests) 405ms ✓ src/ui/commands/docsCommand.test.ts (5 tests) 23ms ✓ src/nonInteractive/io/StreamJsonOutputAdapter.dualOutput.test.ts (5 tests) 12ms ✓ src/ui/components/ApprovalModeDialog.test.tsx (9 tests) 617ms ✓ src/commands/extensions/enable.test.ts (9 tests) 52ms ✓ src/services/tips/tipScheduler.test.ts (7 tests) 12ms ✓ src/utils/sandbox.test.ts (17 tests) 7ms ✓ src/ui/components/views/McpStatus.test.tsx (12 tests) 623ms ✓ src/services/notificationService.test.ts (9 tests) 17ms ✓ src/ui/utils/modelsBySource.test.ts (7 tests) 8ms ✓ src/ui/commands/importConfigCommand.test.ts (9 tests) 11ms ✓ src/config/normalizeDisabledTools.test.ts (16 tests) 11ms ✓ src/ui/commands/historyCommand.test.ts (5 tests) 12ms ✓ src/utils/housekeeping/throttledOnce.test.ts (7 tests) 95ms ✓ src/services/tips/tipHistory.test.ts (11 tests) 11ms ✓ src/ui/hooks/useFocus.test.ts (6 tests) 58ms ✓ src/ui/commands/arenaCommand.agentComplete.test.ts (1 test) 35ms ✓ src/ui/components/SessionSummaryDisplay.test.tsx (3 tests) 444ms ✓ src/ui/components/DiffDialog.test.tsx (1 test) 111ms ✓ src/ui/components/shared/EnumSelector.test.tsx (9 tests) 567ms ✓ src/ui/hooks/useAwaySummary.test.ts (2 tests) 91ms ✓ src/utils/readStdin.test.ts (5 tests) 250ms ✓ src/ui/commands/dreamCommand.test.ts (5 tests) 12ms ✓ src/ui/components/shared/TextInput.test.tsx (6 tests) 362ms ✓ src/serve/routes/workspace-settings.test.ts (6 tests) 92ms ✓ src/ui/components/mcp/steps/ServerListStep.test.tsx (5 tests) 407ms ✓ src/ui/components/FolderTrustDialog.test.tsx (9 tests) 838ms ✓ src/ui/components/views/ContextUsage.test.tsx (4 tests) 615ms ✓ src/ui/components/hooks/HooksDisabledStep.test.tsx (8 tests) 430ms ✓ src/ui/utils/measure-element-position.test.tsx (4 tests) 205ms ✓ src/ui/hooks/useResizeSettleRepaint.test.ts (6 tests) 63ms ✓ src/ui/hooks/useWelcomeBack.test.ts (4 tests) 221ms ✓ src/ui/contexts/VimModeContext.test.tsx (4 tests) 279ms ✓ src/ui/components/messages/ConversationMessages.test.tsx (10 tests) 585ms ✓ src/ui/hooks/useConfigInitMessage.test.ts (7 tests) 67ms ✓ src/ui/hooks/useSessionPicker.test.ts (4 tests) 36ms ✓ src/ui/components/hooks/sourceLabels.test.ts (10 tests) 6ms ✓ src/ui/components/mcp/steps/ResourceDetailStep.test.tsx (6 tests) 343ms ✓ src/serve/acp-http/connection-registry.test.ts (3 tests) 11ms ✓ src/ui/commands/toolsCommand.test.ts (4 tests) 14ms ✓ src/ui/utils/markdownUtilities.test.ts (12 tests) 5ms ✓ src/ui/app-container-controls-dep.test.ts (3 tests) 3ms ✓ src/acp-integration/session/rewrite/TurnBuffer.test.ts (12 tests) 5ms ✓ src/ui/hooks/useWorktreeSession.test.tsx (4 tests) 390ms ✓ src/ui/components/extensions/steps/ExtensionListStep.test.tsx (5 tests) 390ms ✓ src/ui/components/shared/ToolElapsedTime.test.tsx (8 tests) 481ms ✓ src/utils/userPromptExpansionHook.test.ts (12 tests) 8ms ✓ src/ui/components/PrepareLabel.test.tsx (6 tests) 307ms ✓ src/ui/components/SettingInputPrompt.test.tsx (6 tests) 428ms ✓ src/ui/components/agent-view/AgentComposer.test.tsx (1 test) 289ms ✓ src/ui/hooks/useTerminalNotification.test.ts (6 tests) 11ms ✓ src/ui/hooks/useAnimatedScrollbar.test.ts (6 tests) 37ms ✓ src/ui/components/QueuedMessageDisplay.test.tsx (7 tests) 615ms ✓ src/ui/commands/forgetCommand.test.ts (6 tests) 12ms ✓ src/ui/hooks/useModelCommand.test.ts (6 tests) 83ms ✓ src/commands/mcp/remove.test.ts (4 tests) 52ms ✓ src/utils/headlessSafetyWarnings.test.ts (7 tests) 9ms ✓ src/config/mcpServers.test.ts (6 tests) 7ms ✓ src/ui/themes/theme.test.ts (5 tests) 5ms ✓ src/ui/hooks/useFollowupSuggestions.test.tsx (2 tests) 31ms ✓ src/acp-integration/session/permissionUtils.test.ts (4 tests) 8ms ✓ src/ui/utils/mermaidVisualRenderer.test.ts (4 tests) 23ms ✓ src/acp-integration/session/rewrite/config.test.ts (5 tests) 10ms No extensions installed. ✓ src/commands/extensions.test.tsx (11 tests) 62ms ✓ src/commands/auth.test.ts (9 tests) 55ms ✓ src/ui/voice/voice-stream-retry.test.ts (5 tests) 13ms ✓ src/ui/components/extensions/steps/ActionSelectionStep.test.tsx (5 tests) 333ms ✓ src/commands/extensions/list.test.ts (4 tests) 58ms ✓ src/ui/components/views/ExtensionsList.test.tsx (9 tests) 495ms ✓ src/ui/hooks/useMouseEvents.test.tsx (1 test) 38ms ✓ src/services/insight/generators/StaticInsightGenerator.test.ts (1 test) 26ms ✓ src/ui/utils/displayUtils.test.ts (8 tests) 11ms ✓ src/ui/utils/software-cursor.test.ts (10 tests) 15ms ✓ src/commands/extensions/link.test.ts (4 tests) 40ms ✓ src/ui/components/ThemeDialog.test.tsx (2 tests) 580ms ✓ ThemeDialog Snapshots > should render correctly in theme selection mode 372ms ✓ src/ui/components/ContextSummaryDisplay.test.tsx (4 tests) 238ms ✓ src/config/modelProvidersScope.test.ts (4 tests) 3ms ✓ src/services/tips/tipRegistry.test.ts (5 tests) 4ms ✓ src/commands/sessions.test.ts (3 tests) 18ms ✓ src/ui/components/TodoDisplay.test.tsx (6 tests) 394ms ✓ src/config/keyBindings.test.ts (4 tests) 8ms ✓ src/ui/commands/branchCommand.test.ts (6 tests) 11ms ✓ src/acp-integration/authPreflight.test.ts (3 tests) 4ms ✓ src/ui/hooks/mcpResourceRef.test.ts (7 tests) 4ms ✓ src/serve/acp-http/json-rpc.test.ts (9 tests) 5ms ✓ src/ui/commands/terminalSetupCommand.test.ts (5 tests) 6ms ✓ src/commands/sessions/common.test.ts (3 tests) 5ms ✓ src/utils/startupWarnings.test.ts (4 tests) 6ms ✓ src/config/path-freshness.test.ts (3 tests) 29ms ✓ src/ui/components/SkillStatsDisplay.test.tsx (2 tests) 164ms ✓ src/utils/systemInfoFields.test.ts (2 tests) 9ms ✓ src/ui/hooks/useBatchedScroll.test.ts (4 tests) 38ms ✓ src/ui/components/mcp/steps/ServerDetailStep.test.tsx (4 tests) 258ms ✓ src/ui/components/IdeTrustChangeDialog.test.tsx (6 tests) 374ms ✓ src/ui/utils/export/collect.test.ts (1 test) 9ms ✓ src/utils/acpModelUtils.test.ts (20 tests) 15ms ✓ src/core/auth.test.ts (3 tests) 7ms ✓ src/ui/commands/authCommand.test.ts (6 tests) 12ms ✓ src/ui/commands/rememberCommand.test.ts (5 tests) 18ms ✓ src/commands/mcp.test.ts (3 tests) 21ms ✓ src/ui/components/shared/DescriptiveRadioButtonSelect.test.tsx (2 tests) 169ms ✓ src/utils/userStartupWarnings.test.ts (3 tests) 43ms ✓ src/core/theme.test.ts (5 tests) 10ms ✓ src/ui/components/messages/BtwMessage.test.tsx (5 tests) 281ms ✓ src/test-utils/mockCommandContext.test.ts (3 tests) 11ms ✓ src/ui/utils/theme-background.test.ts (3 tests) 6ms ✓ src/utils/resolvePath.test.ts (7 tests) 6ms ✓ src/ui/components/WorktreeExitDialog.test.tsx (1 test) 164ms ✓ src/ui/components/GoalPill.test.tsx (2 tests) 228ms ✓ src/ui/components/subagents/manage/AgentSelectionStep.test.tsx (1 test) 132ms ✓ src/ui/components/mcp/steps/ToolListStep.test.tsx (1 test) 111ms ✓ src/ui/utils/export/normalize.test.ts (1 test) 4ms ✓ src/ui/utils/approvalModeDisplay.test.ts (5 tests) 16ms ✓ src/utils/standalone-update-verify.test.ts (3 tests) 10ms ✓ src/ui/utils/workflow-keyword.test.ts (11 tests) 8ms ✓ src/ui/voice/voice-model.test.ts (4 tests) 5ms ✓ src/ui/utils/latexRenderer.test.ts (4 tests) 6ms ✓ src/ui/commands/statuslineCommand.test.ts (4 tests) 14ms ✓ src/serve/server-workspace-service.test.ts (1 test) 34ms ✓ src/ui/commands/helpCommand.test.ts (3 tests) 20ms ✓ src/ui/contexts/AgentViewContext.test.tsx (2 tests) 159ms ✓ src/ui/components/mcp/MCPHealthPill.test.tsx (6 tests) 3ms ✓ src/ui/hooks/useThemeCommand.test.ts (1 test) 22ms ✓ src/ui/voice/voice-availability.test.ts (5 tests) 4ms ✓ src/ui/utils/layoutUtils.test.ts (4 tests) 7ms ✓ src/ui/components/messages/GoalStatusMessage.test.tsx (3 tests) 153ms ✓ src/ui/commands/quitCommand.test.ts (1 test) 28ms ✓ src/services/command-factory.test.ts (2 tests) 34ms ✓ src/ui/components/views/ToolsList.test.tsx (3 tests) 218ms ✓ src/utils/processUtils.test.ts (1 test) 5ms ✓ src/ui/components/LoopDetectionConfirmation.test.tsx (2 tests) 252ms ✓ src/services/prompt-processors/argumentProcessor.test.ts (2 tests) 10ms ✓ src/ui/components/approvalModeVisuals.test.ts (3 tests) 3ms ✓ src/ui/commands/themeCommand.test.ts (2 tests) 8ms ✓ src/ui/commands/permissionsCommand.test.ts (3 tests) 8ms ✓ src/ui/commands/trustCommand.test.ts (3 tests) 10ms ✓ src/acp-integration/runtimeOutputDirContext.test.ts (1 test) 3ms ✓ src/ui/components/GeminiRespondingSpinner.test.tsx (2 tests) 95ms ✓ src/ui/commands/settingsCommand.test.ts (2 tests) 6ms ✓ src/ui/components/messages/StatusMessages.test.tsx (1 test) 101ms ✓ src/ui/commands/editorCommand.test.ts (2 tests) 5ms ✓ src/ui/components/mcp/MCPManagementDialog.test.tsx (1 test) 68ms ✓ src/ui/commands/deleteCommand.test.ts (2 tests) 6ms ✓ src/acp-integration/authMethods.test.ts (2 tests) 3ms ✓ src/ui/hooks/useDialogClose.test.ts (1 test) 17ms ✓ src/utils/midTurnUserMessage.test.ts (3 tests) 4ms ✓ src/ui/components/VoiceIndicator.test.tsx (2 tests) 86ms ✓ src/ui/components/ExternalAuthProgress.test.tsx (1 test) 60ms ✓ src/ui/commands/memoryCommand.test.ts (1 test) 4ms ✓ src/ui/components/CronPill.test.tsx (2 tests) 117ms ✓ src/commands/extensions/uninstall.test.ts (1 test) 11ms 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) 13ms ⎯⎯⎯⎯⎯⎯ Failed Tests 10 ⎯⎯⎯⎯⎯⎯⎯ FAIL src/ui/auth/AuthDialog.test.tsx > AuthDialog > should go back from third-party provider API key input to provider list 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 }, ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/10]⎯ FAIL src/ui/auth/AuthDialog.test.tsx > AuthDialog > should submit Token Plan through the shared subscription handler AssertionError: expected "spy" to be called at least once ❯ vi.waitFor.timeout src/ui/auth/AuthDialog.test.tsx:1250:40 1248| await vi.waitFor( 1249| () => { 1250| expect(handleProviderSubmit).toHaveBeenCalled(); | ^ 1251| }, 1252| { timeout: WAIT_FOR_TIMEOUT }, ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/10]⎯ FAIL src/ui/auth/AuthDialog.test.tsx > AuthDialog > should pre-fill the Model IDs step with previously saved custom model IDs 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 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/10]⎯ 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 > 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 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 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/10]⎯ FAIL src/ui/auth/AuthDialog.test.tsx > AuthDialog Custom API Key Wizard > navigates to base URL input after selecting a protocol AssertionError: expected '┌────────────────────────────────────…' to contain 'Custom Provider · Step 2/6 · Base URL' - Expected + Received - Custom Provider · Step 2/6 · Base URL + ┌──────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ │ + │ Custom Provider · Step 1/6 · Protocol │ + │ │ + │ › OpenAI-compatible │ + │ Standard OpenAI API format (most common) │ + │ │ + │ Anthropic-compatible │ + │ Anthropic Messages API format │ + │ │ + │ Gemini-compatible │ + │ Google Gemini API format │ + │ │ + │ 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 }, ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/10]⎯ FAIL src/ui/auth/AuthDialog.test.tsx > AuthDialog Custom API Key Wizard > passes generationConfig when advanced options are toggled AssertionError: expected '┌────────────────────────────────────…' to contain 'Custom Provider · Step 3/6 · API Key' - Expected + Received - Custom Provider · Step 3/6 · API Key + ┌──────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ │ + │ Custom Provider · Step 2/6 · Base URL │ + │ │ + │ │ + │ Enter the API endpoint for this protocol. │ + │ │ + │ > https://api.openai.com/v1 │ + │ │ + │ Enter to submit, 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 }, ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[6/10]⎯ Test Files 1 failed | 503 passed (504) Tests 10 failed | 9865 passed | 2 skipped (9877) Start at 12:19:46 Duration 139.11s (transform 59.04s, setup 74.14s, collect 1699.12s, tests 436.25s, environment 239.75s, prepare 59.29s) 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.3 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' npm notice run @qwen-code/qwen-code-core@0.19.3 test RUN v3.2.4 /startdir/src/qwen-code/packages/core Coverage enabled with v8 ✓ src/telemetry/session-tracing.test.ts (126 tests) 43ms ✓ src/utils/schemaValidator.test.ts (132 tests) 329ms ✓ src/services/shellExecutionService.test.ts (120 tests) 442ms ✓ src/services/sessionService.test.ts (66 tests) 168ms ✓ src/hooks/hookEventHandler.test.ts (125 tests) 152ms ✓ src/agents/background-tasks.test.ts (88 tests) 53ms ✓ src/core/loggingContentGenerator/loggingContentGenerator.test.ts (58 tests) 71ms ✓ src/models/modelsConfig.test.ts (77 tests) 42ms ✓ src/core/openaiContentGenerator/pipeline.test.ts (80 tests) 126ms ✓ src/services/memoryPressureMonitor.test.ts (72 tests) 119ms +----------------- 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/utils/fileUtils.test.ts (98 tests) 165ms ✓ src/qwen/qwenOAuth2.test.ts (86 tests) 2092ms ✓ getQwenOAuthClient - Enhanced Error Scenarios > should handle different authentication failure reasons - timeout 2035ms ✓ src/tools/skill.test.ts (73 tests) 108ms ✓ src/hooks/hookSystem.test.ts (88 tests) 183ms ✓ src/permissions/permission-manager.test.ts (247 tests) 161ms ✓ src/core/anthropicContentGenerator/anthropicContentGenerator.test.ts (72 tests) 5039ms ✓ AnthropicContentGenerator > uses claude-cli identity (User-Agent + x-app + Bearer auth) for non-Anthropic baseURLs 818ms ✓ src/core/openaiContentGenerator/converter.test.ts (135 tests) 62ms ✓ src/skills/skill-manager.test.ts (73 tests) 217ms ✓ src/tools/mcp-client.test.ts (89 tests) 413ms ✓ src/services/chatCompressionService.test.ts (71 tests) 206ms 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) ✓ src/tools/mcp-transport-pool.test.ts (34 tests) 342ms 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) ✓ src/agents/runtime/workflow-orchestrator.test.ts (115 tests) 573ms 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 (81 tests) 486ms ✓ src/tools/mcp-client-manager.test.ts (109 tests) 695ms ✓ src/agents/background-agent-resume.test.ts (28 tests) 606ms ✓ src/services/cronScheduler.test.ts (89 tests) 1660ms ✓ CronScheduler > durable ownership > reloads durable tasks when the file changes on disk 367ms ✓ src/subagents/subagent-manager.test.ts (113 tests) 650ms ✓ SubagentManager > Runtime Configuration Methods > createAgentHeadless model override > should create a new ContentGenerator for bare model IDs 365ms ✓ src/tools/agent/agent.test.ts (111 tests) 1109ms ✓ AgentTool > AgentToolInvocation > passes custom ignore files into worktree isolation file service 374ms ✓ src/services/postCompactAttachments.test.ts (67 tests) 117ms ✓ src/utils/atomicFileWrite.test.ts (81 tests) 244ms ✓ src/core/coreToolScheduler.test.ts (222 tests) 1374ms ✓ src/config/config.test.ts (291 tests) 1813ms ✓ Server Config (config.ts) > MCP hot-reload (sub-task 3) > setMcpServers REPLACES (not merges) and works post-init 795ms ✓ src/tools/ripGrep.test.ts (75 tests) 505ms ✓ src/core/anthropicContentGenerator/converter.test.ts (51 tests) 18ms ✓ src/ide/ide-client.test.ts (60 tests) 219ms ✓ src/memory/manager.test.ts (45 tests) 193ms ✓ src/services/loopDetectionService.test.ts (62 tests) 405ms ✓ src/agents/runtime/agent-headless.test.ts (38 tests) 2577ms ✓ subagent.ts > AgentHeadless > create (Tool Validation) > should create a AgentHeadless successfully with minimal config 1087ms ✓ src/utils/retry.test.ts (84 tests) 163ms ✓ src/mcp/oauth-provider.test.ts (27 tests) 220ms ✓ src/telemetry/sdk.test.ts (59 tests) 588ms ✓ src/services/microcompaction/microcompact.test.ts (56 tests) 40ms ✓ src/core/openaiContentGenerator/provider/dashscope.test.ts (70 tests) 52ms ✓ src/tools/read-file.test.ts (62 tests) 357ms ✓ src/tools/shell.test.ts (250 tests) 3694ms ✓ src/services/fileHistoryService.test.ts (51 tests) 280ms ✓ src/utils/filesearch/crawler.test.ts (48 tests) 1957ms ✓ src/lsp/NativeLspService.test.ts (18 tests) 64ms ✓ src/telemetry/log-to-span-processor.test.ts (51 tests) 65ms ✓ src/utils/memoryDiscovery.test.ts (38 tests) 241ms ✓ src/core/baseLlmClient.test.ts (46 tests) 64ms ✓ src/models/modelRegistry.test.ts (74 tests) 39ms ✓ src/tools/lsp.test.ts (70 tests) 661ms ✓ src/utils/gitDiff.test.ts (58 tests) 2236ms ✓ src/hooks/hookAggregator.test.ts (49 tests) 14ms ✓ src/utils/memoryImportProcessor.test.ts (31 tests) 75ms ✓ src/core/toolHookTriggers.test.ts (58 tests) 36ms ✓ src/core/logger.test.ts (52 tests) 177ms ✓ src/hooks/hookPlanner.test.ts (64 tests) 17ms ✓ src/telemetry/uiTelemetry.test.ts (42 tests) 32ms ✓ src/utils/editor.test.ts (152 tests) 77ms ✓ src/services/monitorRegistry.test.ts (56 tests) 64ms ✓ src/agents/team/tasks.test.ts (53 tests) 190ms ✓ src/extension/claude-converter.test.ts (50 tests) 103ms ✓ src/qwen/sharedTokenManager.test.ts (32 tests) 287ms ✓ src/telemetry/loggers.test.ts (56 tests) 70ms ✓ src/qwen/qwenContentGenerator.test.ts (44 tests) 239ms ✓ src/tools/write-file.test.ts (50 tests) 220ms ✓ src/extension/github.test.ts (64 tests) 284ms ✓ src/services/fileReadCache.test.ts (53 tests) 76ms ✓ src/tools/monitor.test.ts (73 tests) 98ms ✓ src/utils/paths.test.ts (117 tests | 1 skipped) 26ms ✓ src/tools/mcp-tool.test.ts (54 tests) 342ms ✓ src/extension/extensionManager.test.ts (55 tests) 136ms ✓ src/skills/skill-load.test.ts (68 tests) 37ms ✓ src/hooks/hookRegistry.test.ts (36 tests) 36ms ✓ src/services/commitAttribution.test.ts (58 tests) 22ms ✓ src/permissions/autoMode.test.ts (83 tests) 59ms ✓ src/core/openaiContentGenerator/streamingToolCallParser.test.ts (60 tests) 24ms ✓ src/utils/sessionStorageUtils.test.ts (53 tests) 25ms ✓ src/services/backgroundShellRegistry.test.ts (45 tests) 31ms ✓ src/utils/shell-utils.test.ts (138 tests) 69ms ✓ src/services/chatRecordingService.test.ts (35 tests) 61ms ✓ src/tools/todoWrite.test.ts (28 tests) 92ms ✓ src/models/modelConfigResolver.test.ts (51 tests) 28ms ✓ src/utils/environmentContext.test.ts (44 tests) 93ms ✓ src/core/prompts.test.ts (58 tests) 34ms ✓ src/agents/team/test-utils/coordination-harness.test.ts (28 tests) 549ms ✓ src/telemetry/qwen-logger/qwen-logger.test.ts (36 tests) 47ms ✓ src/extension/extensionSettings.test.ts (23 tests) 90ms ✓ src/agents/backends/InProcessBackend.test.ts (34 tests) 116ms ✓ src/lsp/NativeLspService.integration.test.ts (30 tests) 15ms ✓ src/permissions/shell-semantics.test.ts (103 tests) 66ms ✓ src/core/turn.test.ts (28 tests) 22ms ✓ src/tools/tool-registry.test.ts (34 tests) 176ms ✓ src/config/storage.test.ts (63 tests) 29ms ✓ src/tools/grep.test.ts (51 tests) 609ms ✓ src/tools/workflow/workflow.test.ts (34 tests) 209ms ✓ src/utils/truncation.test.ts (28 tests) 50ms ✓ src/telemetry/detailed-span-attributes.test.ts (46 tests) 22ms ✓ src/utils/openaiLogger.test.ts (38 tests) 184ms ✓ src/hooks/hookRunner.test.ts (36 tests) 126ms ✓ src/core/geminiChat.test.ts (192 tests) 10182ms ✓ GeminiChat > should correctly retry and append to an existing history mid-conversation 2040ms ✓ GeminiChat > should retry if the model returns a completely empty stream (no chunks) 2032ms ✓ GeminiChat > should discard valid partial content from a failed attempt upon retry 2043ms ✓ src/utils/filesearch/fileSearch.test.ts (29 tests) 674ms [ToolSearch] setTools() failed while revealing deferred tools: chat not initialised [ToolSearch] setTools() failed while revealing deferred tools: chat not initialised [ToolSearch] ensureTool failed for "bravo": mid-batch failure ✓ src/tools/notebook-edit.test.ts (31 tests) 194ms ✓ src/tools/tool-search.test.ts (44 tests) 114ms ✓ src/services/gitWorktreeService.test.ts (27 tests) 27ms ✓ src/services/visionBridge/vision-bridge-service.test.ts (34 tests) 33ms ✓ src/services/sessionService.rename.test.ts (18 tests) 42ms ✓ src/utils/runtimeFetchOptions.test.ts (44 tests) 32ms ✓ src/core/client.test.ts (207 tests) 11213ms ✓ src/utils/notebook.test.ts (30 tests) 41ms ✓ src/utils/memoryDiagnostics.test.ts (12 tests) 116ms ✓ src/utils/workspaceContext.test.ts (45 tests) 31ms ✓ src/utils/pdf.test.ts (34 tests) 29ms ✓ src/telemetry/config.test.ts (43 tests) 28ms ✓ src/services/fileSystemService.test.ts (43 tests) 32ms ✓ src/agents/backends/ITermBackend.test.ts (46 tests) 54ms ✓ src/utils/gitDirect.test.ts (68 tests) 110ms ✓ src/services/compactionInputSlimming.test.ts (35 tests) 13ms ✓ src/telemetry/metrics.test.ts (40 tests) 883ms ✓ src/memory/extract.test.ts (14 tests) 102ms ✓ src/hooks/promptHookRunner.test.ts (25 tests) 155ms ✓ src/utils/shellAstParser.test.ts (148 tests) 94ms ✓ src/utils/secure-browser-launcher.test.ts (31 tests) 26ms ✓ src/providers/__tests__/install.test.ts (20 tests) 88ms ✓ src/tools/computer-use/tool.test.ts (40 tests) 74ms ✓ src/utils/sideQuery.test.ts (23 tests) 122ms ✓ src/goals/goalHook.test.ts (22 tests) 33ms ✓ src/core/openaiContentGenerator/provider/default.test.ts (26 tests) 18ms ✓ src/agents/agent-transcript.test.ts (25 tests) 40ms ✓ src/tools/exitPlanMode.test.ts (33 tests) 29ms ✓ src/utils/rulesDiscovery.test.ts (34 tests) 95ms ✓ src/agents/arena/ArenaAgentClient.test.ts (21 tests) 38ms ✓ src/services/tokenUsageService.test.ts (18 tests) 357ms ✓ src/telemetry/tracer.test.ts (31 tests) 33ms ✓ src/tools/glob.test.ts (48 tests) 3012ms ✓ src/hooks/sessionHooksManager.test.ts (32 tests) 15ms ✓ src/mcp/oauth-utils.test.ts (33 tests) 21ms ✓ src/agents/runtime/agent-interactive.test.ts (22 tests) 753ms ✓ src/agents/backends/TmuxBackend.test.ts (27 tests) 38ms ✓ src/utils/systemEncoding.test.ts (41 tests) 23ms ✓ src/agents/workflow-run-registry.test.ts (32 tests) 22ms ✓ src/tools/ls.test.ts (30 tests) 195ms ✓ src/extension/variables.test.ts (20 tests) 41ms ✓ src/core/openaiContentGenerator/provider/deepseek.test.ts (25 tests) 13ms ✓ src/mcp/oauth-token-storage.test.ts (31 tests) 969ms ✓ src/services/usageHistoryService.test.ts (13 tests) 32ms ✓ src/tools/task-stop.test.ts (14 tests) 79ms ✓ src/utils/pathReader.test.ts (17 tests) 68ms ✓ src/goals/goalJudge.test.ts (20 tests) 16ms ✓ src/utils/readManyFiles.test.ts (19 tests) 74ms ✓ src/core/tokenLimits.test.ts (59 tests) 30ms ✓ src/services/sleepInhibitor.test.ts (21 tests) 818ms ✓ src/extension/marketplace.test.ts (32 tests) 44ms ✓ src/hooks/asyncHookRegistry.test.ts (20 tests) 15ms ✓ src/agents/runtime/workflow-saved.test.ts (33 tests) 114ms ✓ src/mcp/token-storage/file-token-storage.test.ts (25 tests) 1036ms ✓ src/memory/writeContextFile.test.ts (16 tests) 73ms ✓ src/tools/team-lifecycle.test.ts (5 tests) 657ms ✓ Team lifecycle E2E > full lifecycle: create → tasks → messages → list → update → delete 636ms ✓ src/tools/askUserQuestion.test.ts (23 tests) 17ms ✓ src/services/toolUseSummary.test.ts (34 tests) 55ms ✓ src/subagents/validation.test.ts (41 tests) 26ms ✓ src/agents/team/mailbox.test.ts (18 tests) 186ms ✓ src/agents/team/teamHelpers.test.ts (45 tests) 83ms ✓ src/utils/rateLimit.test.ts (35 tests) 29ms ✓ src/permissions/classifier-transcript.test.ts (14 tests) 8ms ✓ src/utils/abortController.test.ts (26 tests | 1 skipped) 40ms ✓ src/services/chatRecordingService.autoTitle.test.ts (17 tests) 37ms ✓ src/tools/computer-use/client.test.ts (38 tests) 4045ms ✓ callTool reconnect path > succeeds on a later attempt after backing off past an earlier transport failure 1007ms ✓ callTool reconnect path > exhausts exactly 3 reconnect attempts on persistent transport errors, then re-throws the last 3010ms ✓ src/hooks/functionHookRunner.test.ts (20 tests) 95ms ✓ src/permissions/classifier.test.ts (23 tests) 23ms ✓ src/ide/ideContext.test.ts (23 tests) 17ms ✓ src/core/geminiContentGenerator/geminiContentGenerator.test.ts (12 tests) 15ms ✓ src/utils/sedEditParser.test.ts (34 tests) 17ms ✓ src/utils/forkedAgent.cache.test.ts (12 tests) 20ms ✓ src/services/gitWorktreeService.symlinks.integ.test.ts (15 tests) 3790ms ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > works when the repo path itself contains a symlink boundary (round-7 self-inflicted regression guard) 316ms ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > rejects any entry containing a '..' segment (docs contract) 312ms ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > handles multiple entries — some present, some missing 333ms ✓ GitWorktreeService.createUserWorktree() — symlinkDirectories > is a no-op when symlinkDirectories is omitted or empty 365ms ✓ src/utils/retryErrorClassification.test.ts (27 tests) 15ms ✓ src/utils/forkedAgent.agent.test.ts (7 tests) 27ms ✓ src/services/chatRecordingService.customTitle.test.ts (13 tests) 31ms ✓ src/utils/toolResultDisplayCompaction.test.ts (14 tests) 21ms ✓ src/core/__tests__/openaiTimeoutHandling.test.ts (12 tests) 32ms ✓ src/utils/partUtils.test.ts (43 tests) 11ms ✓ src/agents/arena/ArenaManager.test.ts (25 tests) 3668ms ✓ ArenaManager > backend initialization > should emit SESSION_UPDATE with type warning when backend detection returns warning 518ms ✓ ArenaManager > chat history forwarding > should pass chatHistory to backend spawnAgent calls 512ms ✓ ArenaManager > chat history forwarding > should pass undefined chatHistory when not provided 516ms ✓ ArenaManager > active session lifecycle > collects diff summaries and fallback approach summaries 1012ms ✓ ArenaManager > active session lifecycle > cancel should stop backend and move session to CANCELLED 513ms ✓ ArenaManager > active session lifecycle > cleanup should release backend and worktree resources after start 510ms ✓ src/memory/skillReviewNudge.integration.test.ts (18 tests) 39ms ✓ src/tools/web-fetch.test.ts (25 tests) 142ms ✓ src/followup/followupState.test.ts (18 tests) 23ms ✓ src/telemetry/daemon-metrics.test.ts (18 tests) 406ms ✓ src/services/cronTasksFile.test.ts (22 tests) 201ms ✓ src/tools/send-message.test.ts (16 tests) 116ms ↓ src/agents/runtime/workflow-p4a-meta-live.live.test.ts (6 tests | 6 skipped) ✓ src/tools/session-mcp-view.test.ts (17 tests) 14ms ✓ src/core/openaiContentGenerator/openaiContentGenerator.test.ts (14 tests) 33ms ✓ src/agents/runtime/agent-core.test.ts (10 tests) 14ms ✓ src/utils/jsonl-utils.test.ts (28 tests) 34ms ✓ src/utils/ignorePatterns.test.ts (29 tests) 13ms ✓ src/core/openaiContentGenerator/errorHandler.test.ts (36 tests) 47ms ✓ src/agents/team/test-utils/fake-agent.test.ts (28 tests) 13ms ✓ src/tools/artifact/artifact-tool.test.ts (18 tests) 278ms ✓ src/utils/request-tokenizer/imageTokenizer.test.ts (18 tests) 11ms ✓ src/permissions/dangerousRules.test.ts (110 tests) 15ms ✓ src/tools/agent/agent-override.test.ts (9 tests) 107ms ✓ src/memory/skillReviewAgentPlanner.test.ts (19 tests) 43ms ✓ src/agents/runtime/agent-statistics.test.ts (32 tests) 34ms ✓ src/services/sessionTitle.test.ts (15 tests) 53ms ✓ src/memory/userMemory.test.ts (13 tests) 63ms ✓ src/utils/debugLogger.test.ts (21 tests) 38ms ✓ src/permissions/classifier-prompts/system-prompt.test.ts (21 tests) 11ms ✓ src/mcp/token-storage/keychain-token-storage.test.ts (24 tests) 1698ms ✓ src/tools/enter-worktree.test.ts (26 tests) 93ms ✓ src/permissions/destructive-commands.test.ts (31 tests) 15ms ✓ src/tools/read-mcp-resource.test.ts (15 tests) 88ms ✓ src/mcp/token-storage/hybrid-token-storage.test.ts (13 tests) 24ms ✓ src/utils/getFolderStructure.test.ts (15 tests) 45ms ✓ src/utils/yaml-parser.test.ts (38 tests) 67ms ✓ src/core/openaiContentGenerator/pipeline.concurrent.test.ts (2 tests) 16ms ✓ src/utils/request-tokenizer/textTokenizer.test.ts (31 tests) 84ms ✓ src/services/memoryDiagnosticsDumper.test.ts (11 tests) 39ms ✓ src/agents/backends/iterm-it2.test.ts (19 tests) 13ms ✓ src/tools/modifiable-tool.test.ts (11 tests) 80ms ✓ src/services/worktreeSessionService.test.ts (19 tests) 67ms ✓ src/utils/generateContentResponseUtilities.test.ts (29 tests) 18ms ✓ src/extension/npm.test.ts (26 tests) 23ms ✓ src/agents/runtime/workflow-stall.test.ts (24 tests) 37ms ✓ src/utils/filesearch/ignore.test.ts (20 tests) 35ms ✓ src/core/openaiContentGenerator/taggedThinkingParser.test.ts (27 tests) 7ms ✓ src/permissions/denialTracking.test.ts (25 tests) 9ms ✓ src/utils/filesearch/fzfWorkerHandle.test.ts (13 tests) 397ms ✓ src/services/sessionService.corruption.test.ts (11 tests) 18ms ✓ src/confirmation-bus/message-bus.test.ts (15 tests) 82ms ✓ src/subagents/agent-frontmatter-schema.test.ts (26 tests) 21ms ✓ src/telemetry/resource-attributes.test.ts (35 tests) 19ms ✓ src/tools/loop-wakeup.test.ts (19 tests) 107ms ✓ src/extension/sourceRegistry.test.ts (22 tests) 22ms ✓ src/output/json-formatter.test.ts (15 tests) 8ms ✓ src/memory/team-index.test.ts (10 tests) 43ms ✓ src/telemetry/daemon-tracing.test.ts (10 tests) 21ms ✓ src/tools/computer-use/bootstrap.test.ts (13 tests) 97ms ✓ src/memory/indexer.test.ts (7 tests) 80ms ✓ src/hooks/httpHookRunner.test.ts (10 tests) 46ms ✓ src/utils/terminalSerializer.test.ts (20 tests) 106ms ✓ src/memory/team-memory-sync.test.ts (10 tests) 2019ms ✓ syncTeamMemory > commits local team memory and pushes it to the remote 307ms ✓ syncTeamMemory > reconciles a second writer instead of diverging (commit lands on top) 343ms ✓ src/tools/task-update.test.ts (14 tests) 228ms ✓ src/models/content-generator-config.test.ts (13 tests) 9ms ✓ src/tools/artifact/oss-publisher.test.ts (16 tests) 34ms ✓ src/utils/nextSpeakerChecker.test.ts (13 tests) 81ms ✓ src/utils/gitIgnoreParser.test.ts (21 tests) 70ms ✓ src/utils/runtimeStatus.test.ts (19 tests) 62ms ✓ src/core/modalityDefaults.test.ts (42 tests) 13ms ✓ src/memory/store.test.ts (10 tests) 41ms ✓ src/services/cronTasksLock.test.ts (15 tests) 39ms ✓ src/services/runtimeSampleRing.test.ts (10 tests) 13ms ✓ src/services/fileReadCache.integration.test.ts (3 tests) 93ms ✓ src/services/fileDiscoveryService.test.ts (15 tests) 140ms ✓ src/agents/team/test-utils/fake-backend.test.ts (18 tests) 85ms ✓ src/utils/envVarResolver.test.ts (16 tests) 10ms ✓ src/utils/retryPolicy.test.ts (20 tests) 23ms ✓ src/memory/relevanceSelector.test.ts (9 tests) 32ms ✓ src/tools/exit-worktree.session.integ.test.ts (8 tests) 3046ms ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > preserves the sidecar after keep so --resume can restore the worktree binding 396ms ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > clears the sidecar after remove 418ms ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > does not clear the sidecar when slug does not match 417ms ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > is a no-op when no sidecar exists 302ms ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > removes a re-attached worktree when the old marker owner is inactive 414ms ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > removes a stale-owned worktree when launched from inside it without a sidecar 406ms ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > refuses a re-attached remove when the marker owner runtime is active 319ms ✓ ExitWorktreeTool — WorktreeSession sidecar cleanup > refuses a re-attached remove when the owner is active under a repo-subdir relative runtime dir 372ms ✓ src/utils/request-tokenizer/requestTokenizer.test.ts (11 tests) 7ms ✓ src/tools/exit-worktree.test.ts (16 tests) 1923ms ✓ ExitWorktreeTool > execute() — session ownership & lifecycle > refuses remove when the marker names a different session 398ms ✓ ExitWorktreeTool > execute() — session ownership & lifecycle > keep returns success and leaves the worktree + branch intact 367ms ✓ ExitWorktreeTool > execute() — session ownership & lifecycle > allows removal when the worktree predates the session-marker guard 368ms ✓ ExitWorktreeTool > execute() — session ownership & lifecycle > refuses removal when the worktree branch has unmerged commits 375ms ✓ ExitWorktreeTool > execute() — session ownership & lifecycle > marker also written by writeWorktreeSessionMarker survives round-trip 305ms ✓ src/utils/filesearch/crawlCache.test.ts (13 tests) 51ms ✓ src/subagents/subagent-manager-override.test.ts (6 tests) 25ms ✓ src/utils/subagentGenerator.test.ts (9 tests) 47ms ✓ src/telemetry/trace-context.test.ts (18 tests) 10ms ✓ src/core/contentGenerator.test.ts (9 tests) 51ms ✓ src/skills/skill-activation.test.ts (20 tests) 4016ms ✓ extractToolFilePaths → SkillActivationRegistry integration > activates a skill keyed on src/**/*.ts from glob({ path: "src", pattern: "**/*.ts" }) 4003ms ✓ src/agents/workflow-snapshot.test.ts (9 tests) 108ms ✓ src/plan-gate/planApprovalGate.test.ts (22 tests) 4028ms ✓ runPlanApprovalGate > should return unavailable when agent exhausts retries 2007ms ✓ runPlanApprovalGate decision edge cases > should succeed after partial retries (fail 2, then succeed) 2007ms ✓ src/core/nonInteractiveToolExecutor.test.ts (8 tests) 21ms ✓ src/mcp/token-storage/base-token-storage.test.ts (14 tests) 25ms [warn] Corrupt extension state file /tmp/ext-prefs-uwlZnY/nested/extension-preferences.json moved aside to /tmp/ext-prefs-uwlZnY/nested/extension-preferences.json.corrupted ✓ src/utils/cronParser.test.ts (25 tests) 43ms ✓ src/extension/extensionPreferences.test.ts (11 tests) 19ms ✓ src/utils/runtimeDiagnostics.test.ts (4 tests) 9ms ✓ src/utils/qwenIgnoreParser.test.ts (11 tests) 30ms ✓ src/utils/errorParsing.test.ts (18 tests) 8ms ✓ src/utils/safeJsonStringify.test.ts (17 tests) 7ms ✓ src/tools/mcp-resource-content.test.ts (13 tests) 16ms ✓ src/extension/gemini-converter.test.ts (11 tests) 17ms ✓ src/utils/editHelper.test.ts (17 tests) 8ms ✓ src/tools/computer-use/constants.test.ts (20 tests) 15ms ✓ src/tools/tools.test.ts (11 tests) 9ms ✓ src/agents/runtime/agent-context.test.ts (17 tests) 19ms ✓ src/utils/modelId.test.ts (25 tests) 20ms ✓ src/lsp/LspConfigLoader.test.ts (8 tests) 30ms ✓ src/hooks/promptHookIntegration.test.ts (9 tests) 115ms ✓ src/hooks/envInterpolator.test.ts (30 tests) 16ms ✓ src/hooks/detectTodoChanges.test.ts (12 tests) 6ms ✓ src/followup/overlayFs.test.ts (15 tests) 34ms ✓ src/memory/extractionAgentPlanner.test.ts (10 tests) 29ms ✓ src/utils/shellContextEnv.test.ts (12 tests) 15ms ✓ src/memory/pending-skills.test.ts (11 tests) 41ms ✓ src/memory/team-paths.test.ts (9 tests) 9ms ✓ src/utils/ripgrepUtils.test.ts (8 tests) 10ms ✓ src/hooks/registerSkillHooks.test.ts (7 tests) 11ms ✓ src/hooks/urlValidator.test.ts (20 tests) 14ms ✓ src/agents/runtime/workflow-budget.test.ts (20 tests) 10ms ✓ src/tools/artifact/html.test.ts (38 tests) 11ms ✓ src/tools/cron-list.test.ts (8 tests) 101ms ✓ src/memory/recall.test.ts (6 tests) 7ms ✓ src/memory/prompt.test.ts (9 tests) 8ms ✓ src/hooks/ssrfGuard.test.ts (21 tests) 18ms ✓ src/tools/artifact/host-publisher.test.ts (17 tests) 33ms ✓ src/mcp/sa-impersonation-provider.test.ts (8 tests) 20ms ✓ src/ide/ide-installer.test.ts (10 tests) 42ms ✓ src/tools/mcp-pool-key.test.ts (24 tests) 11ms ✓ src/lsp/LspServerManager.test.ts (7 tests) 15ms ✓ src/tools/toAutoClassifierInput.test.ts (12 tests) 8ms ✓ src/core/permissionFlow.test.ts (20 tests) 11ms ✓ src/tools/mcp-workspace-budget.test.ts (17 tests) 10ms ✓ src/utils/contextLengthError.test.ts (27 tests) 10ms ✓ src/utils/gitUtils.test.ts (6 tests) 12ms ✓ src/goals/goalLoop.integration.test.ts (2 tests) 13ms ✓ src/utils/shellReadOnlyChecker.test.ts (33 tests) 14ms ✓ src/tools/computer-use/downloader.test.ts (7 tests) 31ms ✓ src/tools/diffOptions.test.ts (9 tests) 8ms ✓ src/extension/i18n.test.ts (16 tests) 15ms ✓ src/followup/speculationToolGate.test.ts (29 tests) 130ms ✓ src/services/tokenEstimation.test.ts (15 tests) 7ms ✓ src/memory/memoryLifecycle.integration.test.ts (1 test) 42ms ✓ src/agents/runtime/workflow-journal.test.ts (14 tests) 22ms ✓ src/ide/process-utils.test.ts (6 tests) 9ms ✓ src/utils/textUtils.test.ts (25 tests) 8ms ✓ src/resources/resource-registry.test.ts (11 tests) 20ms ✓ src/tools/cron-create.test.ts (11 tests) 474ms ✓ CronCreateTool > rejects a cron that never matches a real date 345ms ✓ src/utils/safeJsonParse.test.ts (14 tests) 11ms ✓ src/memory/secret-scanner.test.ts (29 tests) 256ms ✓ src/ide/detect-ide.test.ts (14 tests) 7ms ✓ src/core/openaiContentGenerator/provider/mimo.test.ts (9 tests) 18ms ✓ src/followup/suggestionGenerator.test.ts (19 tests) 11ms ✓ src/tools/mcp-discovery-timeout.test.ts (14 tests) 11ms ✓ src/memory/scan.test.ts (4 tests) 52ms ✓ src/extension/override.test.ts (16 tests) 6ms ✓ src/utils/concurrencyLimiter.test.ts (8 tests) 55ms ✓ src/utils/errors.test.ts (17 tests) 11ms ✓ src/prompts/prompt-registry.test.ts (11 tests) 24ms ✓ src/hooks/types.test.ts (12 tests) 6ms ✓ src/agents/team/identity.test.ts (15 tests) 7ms ✓ src/utils/quotaErrorDetection.test.ts (16 tests) 5ms ✓ src/tools/team-create.test.ts (11 tests) 153ms ✓ src/extension/settings.test.ts (10 tests) 14ms ✓ src/config/config.workflow-registration.test.ts (4 tests) 97ms ✓ src/core/loggingContentGenerator/streamContentDetection.test.ts (16 tests) 4ms ✓ src/providers/__tests__/presets/alibaba-standard.test.ts (8 tests) 9ms ✓ src/agents/runtime/workflow-sandbox.test.ts (109 tests) 30637ms ✓ createWorkflowSandbox security > synchronous infinite loop is aborted by vm timeout 30111ms ✓ src/services/generatedFiles.test.ts (11 tests) 6ms ✓ src/tools/task-create.test.ts (8 tests) 70ms ✓ src/services/visionBridge/image-part-utils.test.ts (18 tests) 6ms ✓ src/tools/grepReadTracking.test.ts (7 tests) 19ms ✓ src/utils/errorReporting.test.ts (5 tests) 13ms ✓ src/core/anthropicContentGenerator/usage.test.ts (7 tests) 5ms ✓ src/utils/configResolver.test.ts (12 tests) 5ms ✓ src/followup/smoke.test.ts (21 tests) 17ms ✓ src/mcp/configHash.test.ts (15 tests) 6ms ✓ src/hooks/trustedHooks.test.ts (5 tests) 5ms ✓ src/agents/arena/diff-summary.test.ts (8 tests) 5ms ✓ src/skills/bundled/loop/SKILL.test.ts (5 tests) 18ms ✓ src/core/openaiContentGenerator/provider/minimax.test.ts (9 tests) 5ms ✓ src/telemetry/file-exporters.test.ts (3 tests) 13ms ✓ src/tools/cron-delete.test.ts (7 tests) 103ms ✓ src/utils/schemaConverter.test.ts (12 tests) 6ms ✓ src/followup/speculation.test.ts (8 tests) 64ms ✓ src/services/attributionTrailer.test.ts (4 tests) 8ms ✓ src/utils/proxyUtils.test.ts (18 tests) 8ms ✓ src/skills/skill-paths.test.ts (7 tests) 23ms ✓ src/utils/terminalSafe.test.ts (11 tests) 5ms ✓ src/config/config.workflows.test.ts (4 tests) 12ms ✓ src/core/openaiContentGenerator/provider/modelscope.test.ts (5 tests) 6ms ✓ src/core/inlineMediaLimit.test.ts (13 tests) 7ms ✓ src/utils/runtimeStatus.config.test.ts (4 tests) 250ms ✓ src/utils/filesearch/result-cache.test.ts (6 tests) 15ms ✓ src/utils/toml-to-markdown-converter.test.ts (11 tests) 33ms ✓ src/tools/enterPlanMode.test.ts (13 tests) 51ms ✓ src/mcp/google-auth-provider.test.ts (8 tests) 20ms ✓ src/tools/task-list.test.ts (6 tests) 91ms ✓ src/utils/xml.test.ts (10 tests) 15ms ✓ src/utils/projectRoot.test.ts (5 tests) 19ms ✓ src/subagents/builtin-agents.test.ts (8 tests) 6ms ✓ src/memory/team-memory-git-status.test.ts (5 tests) 136ms ✓ src/tools/computer-use/schemas.test.ts (8 tests) 19ms ✓ src/skills/skill-load.real-parser.test.ts (7 tests) 16ms ✓ src/utils/installationManager.test.ts (4 tests) 7ms ✓ src/core/toolCallIdUtils.test.ts (3 tests) 5ms ✓ src/utils/tool-utils.test.ts (20 tests) 7ms ✓ src/hooks/stopHookCap.test.ts (9 tests) 5ms ✓ src/hooks/combinedAbortSignal.test.ts (8 tests) 311ms ✓ src/extension/storage.test.ts (5 tests) 12ms ✓ src/agents/team/leaderPermissionBridge.test.ts (7 tests) 4ms ✓ src/core/openaiContentGenerator/provider/mistral.test.ts (4 tests) 7ms ✓ src/lsp/NativeLspClient.test.ts (2 tests) 5ms ✓ src/core/permission-helpers.test.ts (6 tests) 5ms ✓ src/extension/redaction.test.ts (11 tests) 4ms ✓ src/providers/__tests__/presets/idealab.test.ts (6 tests) 6ms ✓ src/skills/symlinkScope.test.ts (5 tests) 9ms ✓ src/memory/extractAgent.test.ts (1 test) 75ms ✓ src/utils/bundlePaths.test.ts (4 tests) 4ms ✓ src/core/geminiRequest.test.ts (12 tests) 8ms ✓ src/telemetry/sanitize.test.ts (10 tests) 11ms ✓ src/hooks/instructionsLoadedCallback.test.ts (4 tests) 8ms ✓ src/utils/thoughtUtils.test.ts (11 tests) 4ms ✓ src/telemetry/session-context.test.ts (7 tests) 4ms ✓ src/goals/activeGoalStore.test.ts (7 tests) 5ms ✓ src/tools/syntheticOutput.test.ts (7 tests) 61ms ✓ src/tools/skill-utils.test.ts (5 tests) 9ms ✓ src/memory/const.test.ts (4 tests) 5ms ✓ src/tools/team-delete.test.ts (5 tests) 584ms ✓ TeamDeleteTool > deletes an active team 313ms ✓ src/utils/projectSummary.test.ts (3 tests) 24ms ✓ src/tools/computer-use/install-state.test.ts (6 tests) 17ms ✓ src/memory/team-memory-secret-guard.test.ts (4 tests) 11ms ✓ src/memory/dreamAgentPlanner.test.ts (5 tests) 36ms ✓ src/memory/forget.test.ts (1 test) 15ms ✓ src/extension/corruptFile.test.ts (2 tests) 9ms ✓ src/plan-gate/gateReviewAgents.test.ts (12 tests) 9ms ✓ src/tools/artifact/local-publisher.test.ts (3 tests) 23ms ✓ src/utils/asyncMessageQueue.test.ts (7 tests) 4ms ✓ src/utils/fetch.test.ts (3 tests) 7ms ✓ src/tools/artifact/create-publisher.test.ts (5 tests) 4ms ✓ src/tools/computer-use/permission-detector.test.ts (6 tests) 4ms ✓ src/core/geminiContentGenerator/index.test.ts (3 tests) 8ms ✓ src/memory/dream.test.ts (3 tests) 33ms ✓ src/providers/__tests__/presets/modelscope.test.ts (3 tests) 7ms ✓ src/utils/startupEventSink.test.ts (4 tests) 15ms ✓ src/utils/internalPromptIds.test.ts (9 tests) 4ms ✓ src/telemetry/trace-id-utils.test.ts (8 tests) 13ms ✓ src/lsp/LspConnectionFactory.test.ts (2 tests) 103ms ✓ src/utils/messageInspectors.test.ts (5 tests) 3ms ✓ src/skills/bundled-skills.integration.test.ts (9 tests) 25ms ✓ src/telemetry/telemetry-utils.test.ts (6 tests) 4ms ✓ src/tools/enter-worktree.session.integ.test.ts (2 tests) 750ms ✓ EnterWorktreeTool — WorktreeSession sidecar > writes a WorktreeSession sidecar with all fields after creating worktree 344ms ✓ EnterWorktreeTool — WorktreeSession sidecar > overwrites a previous sidecar when entering a new worktree in the same session 405ms ✓ src/subagents/types.test.ts (3 tests) 3ms ✓ src/tools/artifact/publisher.test.ts (5 tests) 8ms ✓ src/memory/entries.test.ts (1 test) 4ms ✓ src/utils/getPty.test.ts (1 test) 4ms ✓ src/providers/__tests__/presets/openrouter.test.ts (5 tests) 4ms ✓ src/utils/cronDisplay.test.ts (2 tests) 4ms ✓ src/utils/env.test.ts (12 tests) 8ms ✓ src/providers/__tests__/presets/requesty.test.ts (5 tests) 3ms ✓ src/index.test.ts (1 test) 3ms ✓ src/providers/__tests__/presets/deepseek.test.ts (3 tests) 6ms ✓ src/config/config-session-env.test.ts (3 tests) 8597ms ✓ Config sessionEnvClaimed guard > first Config sets process.env QWEN_CODE_SESSION_ID to its sessionId 3991ms ✓ Config sessionEnvClaimed guard > subsequent Config does not overwrite the env var set by the first 2302ms ✓ Config sessionEnvClaimed guard > startNewSession updates env var to the new session ID 2303ms ✓ src/providers/__tests__/provider-config.test.ts (63 tests) 16ms ✓ src/providers/__tests__/presets/custom-provider.test.ts (11 tests) 7ms ✓ src/providers/__tests__/presets/alibaba-token-plan.test.ts (2 tests) 4ms ✓ src/tools/computer-use/registration.test.ts (2 tests) 5ms ✓ src/providers/__tests__/presets/zai.test.ts (3 tests) 4ms ✓ src/services/gitWorktreeService.hooks.integ.test.ts (3 tests) 674ms ✓ src/providers/__tests__/presets/alibaba-coding-plan.test.ts (2 tests) 4ms ✓ src/agents/backends/tmux-commands.test.ts (8 tests) 3ms ✓ src/providers/__tests__/presets/minimax.test.ts (3 tests) 4ms ✓ src/telemetry/telemetry.test.ts (2 tests) 20ms ✓ src/services/worktreeCleanup.test.ts (3 tests) 2ms Test Files 450 passed | 1 skipped (451) Tests 13506 passed | 8 skipped (13514) Start at 12:22:06 Duration 48.03s (transform 61.97s, setup 5.99s, collect 555.29s, tests 153.08s, environment 100ms, prepare 43.91s) JUNIT report written to /startdir/src/qwen-code/packages/core/junit.xml % Coverage report from v8 npm notice run @qwen-code/sdk@0.1.8 test RUN v1.6.1 /startdir/src/qwen-code/packages/sdk-typescript ✓ test/unit/daemonEvents.test.ts (91 tests) 15ms ✓ test/unit/daemonUi.test.ts (248 tests) 64ms 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}) 2026-07-31 12:22:58 [ERROR] [ProcessTransport] Failed to initialize CLI process: Transport start aborted 2026-07-31 12:22:58 [ERROR] [ProcessTransport] Failed to initialize CLI process: Transport start aborted 2026-07-31 12:22:58 [ERROR] [ProcessTransport] CLI process error: Spawn failed 2026-07-31 12:22:58 [ERROR] [ProcessTransport] CLI process exited with code 1 2026-07-31 12:22:58 [ERROR] [ProcessTransport] CLI process terminated by signal SIGTERM 2026-07-31 12:22:58 [ERROR] [ProcessTransport] CLI process error: Process error 2026-07-31 12:22:58 [DEBUG] [ProcessTransport] Spawning CLI (native): qwen --input-format stream-json --output-format stream-json --channel=SDK 2026-07-31 12:22:58 [ERROR] [ProcessTransport] CLI process exited with code 1 2026-07-31 12:22:58 [ERROR] [ProcessTransport] CLI process error: Process error 2026-07-31 12:22:58 [ERROR] [ProcessTransport] CLI process exited with code 1 2026-07-31 12:22:58 [ERROR] [ProcessTransport] CLI process terminated by signal SIGKILL 2026-07-31 12:22:58 [INFO] [ProcessTransport] CLI process started successfully 2026-07-31 12:22:58 [DEBUG] [ProcessTransport] Forking CLI (node): /path/to/cli.js --input-format stream-json --output-format stream-json --channel=SDK 2026-07-31 12:22:58 [INFO] [ProcessTransport] CLI process started successfully ✓ test/unit/ProcessTransport.test.ts (71 tests) 56ms ✓ test/unit/acpRouteTable.test.ts (76 tests) 11ms ✓ test/unit/DaemonSessionClient.test.ts (37 tests) 339ms ✓ test/unit/AcpHttpTransport.test.ts (21 tests) 10ms 2026-07-31 12:22:58 [ERROR] [Query] Control response error for request 2c1e47d0-1275-410e-84f0-27dd823fd77a: Test error 2026-07-31 12:22:58 [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 [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/serve-bridge.test.ts (30 tests) 26ms ✓ test/unit/RestSseTransport.test.ts (28 tests) 63ms ✓ test/unit/cliPath.test.ts (33 tests) 9ms ✓ test/unit/daemon-sse.test.ts (18 tests) 6ms ✓ test/unit/daemon-public-surface.test.ts (13 tests) 3ms ✓ test/unit/AutoReconnectTransport.test.ts (18 tests) 18ms ✓ test/unit/createSdkMcpServer.test.ts (18 tests) 9ms ✓ test/unit/negotiateTransport.test.ts (15 tests) 30ms ✓ test/unit/AcpWsTransport.test.ts (31 tests) 7ms ✓ test/unit/Stream.test.ts (22 tests) 6ms ✓ test/unit/DaemonClient.test.ts (190 tests) 1823ms ✓ test/unit/AcpEventDenormalizer.test.ts (18 tests) 3ms ✓ test/unit/createQuery.test.ts (3 tests) 12ms ✓ test/unit/DaemonClientVoice.test.ts (5 tests) 26ms 2026-07-31 12:23:10 [ERROR] [Query] Initialization error: Query is closed ✓ test/unit/DaemonAuthFlow.test.ts (14 tests) 13067ms ✓ test/unit/approval-mode-drift.test.ts (1 test) 1ms ✓ test/daemon-ui-transcript.test.ts (1 test) 2ms 2026-07-31 12:23:21 [ERROR] [Query] Control response error for request f7977b6d-5e82-4b4a-8dfe-ace34c275f2b: Malformed error ✓ test/unit/Query.test.ts (55 tests) 23712ms Test Files 24 passed (24) Tests 1057 passed (1057) Start at 12:22:57 Duration 24.45s (transform 2.14s, setup 2ms, collect 3.95s, tests 39.32s, environment 2ms, prepare 792ms) npm notice run qwen-code-vscode-ide-companion@0.19.3 test RUN v3.2.4 /startdir/src/qwen-code/packages/vscode-ide-companion stderr | src/services/conversationStore.test.ts > ConversationStore > replaceMessages returns false when the conversation is missing [ConversationStore] replaceMessages: conversation not found: missing stderr | src/services/conversationStore.test.ts > ConversationStore > renameConversationId returns false when the target id already exists [ConversationStore] renameConversationId: target conversation already exists: session-1 stderr | src/services/conversationStore.test.ts > ConversationStore > truncateFromUserTurn returns false when the target turn is missing [ConversationStore] truncateFromUserTurn: target turn not found: 4 ✓ src/services/conversationStore.test.ts (8 tests) 7ms 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 ✓ src/services/qwenSessionUpdateHandler.test.ts (19 tests) 13ms ✓ src/utils/editorGroupUtils.test.ts (12 tests) 3ms 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) 11ms ✓ src/utils/paths.test.ts (18 tests) 10ms ✓ src/commands/index.test.ts (5 tests) 7ms ✓ src/webview/hooks/useWebViewMessages.test.ts (5 tests) 7ms ✓ src/services/acpConnection.test.ts (17 tests) 9ms ✓ src/open-files-manager.test.ts (17 tests) 25ms stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > proceeds with a second connect after the first one fails [DaemonIdeConnection] Previous connect failed: { error: 'first connect failed' } stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > sends prompts through the bound daemon session [DaemonIdeConnection] Sending prompt: { sessionId: 'session-1' } stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > sends prompts through the bound daemon session [DaemonIdeConnection] Prompt completed: { sessionId: 'session-1', stopReason: 'end_turn' } stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > sends prompts through the bound daemon session [DaemonIdeConnection] Sending prompt: { sessionId: 'session-1' } stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > sends prompts through the bound daemon session [DaemonIdeConnection] Prompt completed: { sessionId: 'session-1', stopReason: 'end_turn' } stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > sends prompts through the bound daemon session [DaemonIdeConnection] Sending prompt: { sessionId: 'session-1' } stderr | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > sends prompts through the bound daemon session [DaemonIdeConnection] Prompt failed: { sessionId: 'session-1', error: 'prompt failed' } stderr | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > cancels permission requests by default and for reject options [DaemonIdeConnection] Permission option not advertised; cancelling { requestId: 'request-3', optionId: 'stale-option' } ✓ src/webview/utils/utils.test.ts (15 tests) 6ms ✓ src/services/sessionExportService.test.ts (9 tests) 20ms stderr | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > forwards ask-user-question answers and cancels invalid selections [DaemonIdeConnection] AskUserQuestion option not advertised; cancelling { requestId: 'ask-3', optionId: 'stale-option' } stderr | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > ignores malformed permission events [DaemonIdeConnection] Malformed permission request data stdout | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > surfaces session_died as a disconnect [DaemonIdeConnection] Session died: { sessionId: 'session-1', reason: 'agent exited' } [DaemonIdeConnection] Clearing session: { sessionId: 'session-1', reason: 'agent exited' } stderr | src/services/daemonIdeConnection.test.ts > DaemonIdeConnection > ignores stale session_died events from another session [DaemonIdeConnection] Malformed session_died event ✓ src/webview/providers/WebViewContent.test.ts (5 tests) 5ms 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/utils/slashCommandUtils.test.ts (6 tests) 5ms ✓ src/services/daemonIdeConnection.test.ts (19 tests) 95ms ✓ src/webview/utils/contextUsage.test.ts (4 tests) 7ms ✓ src/webview/providers/ChatWebviewViewProvider.test.ts (2 tests) 5ms ✓ src/webview/utils/completionUtils.test.ts (4 tests) 4ms ✓ src/webview/providers/ChatProviderRegistry.test.ts (2 tests) 4ms ✓ src/package.test.ts (2 tests) 3ms ✓ src/webview/providers/chatViewRegistration.test.ts (1 test) 7ms ✓ src/services/subscriptionPlanDefinitions.test.ts (1 test) 3ms ✓ src/utils/errorMessage.test.ts (2 tests) 2ms ✓ src/utils/imageSupport.bundle.test.ts (2 tests) 94ms ✓ src/utils/file-path.test.ts (4 tests) 6ms ✓ src/webview/hooks/useImage.test.ts (2 tests) 31ms stdout | src/webview/hooks/useWebViewMessages.test.tsx > useWebViewMessages > ignores background streamEnd while a tagged request is active [useWebViewMessages] Ignoring stale/untagged streamEnd: null active: req-1 source: background_notification stderr | src/webview/hooks/useWebViewMessages.test.tsx > useWebViewMessages > ignores conversation rewind events when the target turn is missing [useWebViewMessages] conversationRewound target turn not found: 99 ✓ src/webview/hooks/useWebViewMessages.test.tsx (12 tests) 44ms ✓ src/webview/hooks/message/useMessageHandling.test.tsx (3 tests) 21ms ✓ src/webview/components/layout/ModelSelector.test.tsx (9 tests) 74ms ✓ src/webview/components/layout/Onboarding.test.tsx (1 test) 32ms ✓ src/webview/components/layout/ProviderSetupForm.test.tsx (1 test) 35ms ✓ src/webview/hooks/useToolCalls.test.tsx (2 tests) 25ms ✓ src/webview/hooks/useMessageSubmit.test.ts (19 tests) 19ms ✓ src/webview/App.test.tsx (10 tests) 102ms ✓ src/webview/components/messages/toolcalls/index.test.tsx (3 tests) 25ms ✓ src/webview/components/layout/InputForm.test.tsx (2 tests) 65ms ✓ src/utils/imageSupport.test.ts (1 test) 2ms 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) stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > searches files using fuzzy search when query is provided [FileMessageHandler] handleGetWorkspaceFiles start { query: 'txt', requestId: 7 } [FileMessageHandler] Searching workspace files with fuzzy search for query txt stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > searches files using fuzzy search when query is provided [FileMessageHandler] Sent final workspaceFiles 2 ✓ src/utils/acpModelInfo.test.ts (15 tests) 6ms stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > filters ignored paths in non-query mode [FileMessageHandler] handleGetWorkspaceFiles start { query: undefined, requestId: 7 } [FileMessageHandler] Sent initial workspaceFiles (open tabs/active) 0 stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > filters ignored paths in non-query mode [FileMessageHandler] Sent final workspaceFiles 1 stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > openFile resolves relative paths against the workspace [FileOperations] Opening file: src/app.ts stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > openFile resolves relative paths against the workspace [FileOperations] File opened successfully: /workspace/src/app.ts stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > openFile keeps UNC paths absolute [FileOperations] Opening file: \\server\share\app.ts stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > openFile keeps UNC paths absolute [FileOperations] File opened successfully: \\server\share\app.ts stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > openFile clamps zero line and column values to the file start [FileOperations] Opening file: src/app.ts:0:0 stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > openFile clamps zero line and column values to the file start [FileOperations] File opened successfully: /workspace/src/app.ts ✓ src/webview/handlers/AuthMessageHandler.test.ts (10 tests) 10ms ✓ src/webview/utils/imageHandler.test.ts (12 tests) 10ms 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 ✓ src/webview/handlers/FileMessageHandler.test.ts (8 tests) 10ms ✓ src/webview/utils/discontinuedModel.test.ts (13 tests) 4ms stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > configures sidebar views with workspace/temp roots and resolves image paths through the attached webview [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > configures sidebar views with workspace/temp roots and resolves image paths through the attached webview [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > reports clipboard copy success back to the requesting webview [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > reports clipboard copy success back to the requesting webview [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > reports clipboard copy failures back to the requesting webview [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > reports clipboard copy failures back to the requesting webview [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > streams slash-command notifications into the attached webview [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > streams slash-command notifications into the attached webview [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > re-sends cached available commands when the webview becomes ready [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > re-sends cached available commands when the webview becomes ready [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > does not special-case plain insight slash notifications in the provider [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > does not special-case plain insight slash notifications in the provider [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > routes structured insight progress markers into the attached webview [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > routes structured insight progress markers into the attached webview [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > routes structured insight progress markers even when command text is normalized differently [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > routes structured insight progress markers even when command text is normalized differently [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > clears structured insight progress when the ready marker arrives [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > clears structured insight progress when the ready marker arrives [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > opens the insight report in the browser when requested from the webview [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > opens the insight report in the browser when requested from the webview [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > routes resolved image paths back to the requesting attached webview even when a panel exists [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > routes resolved image paths back to the requesting attached webview even when a panel exists [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > marks rejected switch_mode permission requests as failed without cancelling the session [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > marks rejected switch_mode permission requests as failed without cancelling the session [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > replays available skills to the webview after webviewReady [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > replays available skills to the webview after webviewReady [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > replays available commands to the webview after webviewReady [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.attachToView > replays available commands to the webview after webviewReady [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > does not report success for api-key settings without interactive auth data [WebViewProvider] Skipping VSCode settings sync for api-key provider; interactive auth owns provider details stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > only syncs non-secret VS Code settings from ~/.qwen/settings.json [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > reacts to auth-related qwen-code setting changes [WebViewProvider] Auth-related qwen-code settings changed by user, syncing... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > clears persisted credentials and disconnects when apiKey is emptied [WebViewProvider] Auth-related qwen-code settings changed by user, syncing... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > clears persisted credentials and disconnects when apiKey is emptied [WebViewProvider] apiKey cleared — de-authenticating and clearing persisted credentials stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > does not de-auth when non-apiKey auth settings change on an api-key provider [WebViewProvider] Auth-related qwen-code settings changed by user, syncing... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > applies the requested initial model after creating a new session [WebViewProvider] Initializing with new session (skipping restoration) stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > applies the requested initial model after creating a new session [WebViewProvider] ACP session created successfully stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > applies the requested initial model after creating a new session [WebViewProvider] Initializing empty conversation stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > applies the requested initial model after creating a new session [WebViewProvider] Empty conversation initialized: null stdout | src/webview/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) 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-X60LQP/.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-rMo3aZ/.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 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... ✓ src/webview/handlers/SessionMessageHandler.test.ts (23 tests) 23ms ✓ src/services/settingsWriter.test.ts (17 tests) 18ms 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... 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/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) 11ms ✓ src/ide-server.test.ts (13 tests | 1 skipped) 82ms 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) 27ms stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.handleAuthInteractive credential rollback > disconnects the agent after rolling back rejected credentials [WebViewProvider] authInteractive: provider=deepseek, host=api.deepseek.com stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.handleAuthInteractive credential rollback > does NOT restore when the reconnect authenticates (authState === true) [WebViewProvider] authInteractive: provider=deepseek, host=api.deepseek.com stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.handleAuthInteractive credential rollback > swallows a rollback write failure so the authError message still sends [WebViewProvider] authInteractive: provider=deepseek, host=api.deepseek.com stderr | src/webview/providers/WebViewProvider.test.ts > WebViewProvider.handleAuthInteractive credential rollback > swallows a rollback write failure so the authError message still sends [WebViewProvider] settings rollback failed: Error: EPERM: rename failed at /startdir/src/qwen-code/packages/vscode-ide-companion/src/webview/providers/WebViewProvider.test.ts: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) 1588ms ✓ WebViewProvider.handleAuthInteractive credential rollback > restores the snapshot when the reconnect leaves authState !== true 304ms ✓ WebViewProvider.handleAuthInteractive credential rollback > disconnects the agent after rolling back rejected credentials 303ms ✓ WebViewProvider.handleAuthInteractive credential rollback > does NOT restore when the reconnect authenticates (authState === true) 303ms ✓ WebViewProvider.handleAuthInteractive credential rollback > swallows a rollback write failure so the authError message still sends 309ms ✓ WebViewProvider.handleAuthInteractive credential rollback > rolls back + disconnects + reports authError when doInitializeAgentConnection throws (outer catch) 304ms Test Files 47 passed (47) Tests 432 passed | 1 skipped (433) Start at 12:23:22 Duration 6.94s (transform 7.95s, setup 0ms, collect 66.46s, tests 2.62s, environment 4.02s, prepare 4.96s) npm notice run @qwen-code/web-shell@0.19.3 test RUN v3.2.4 /startdir/src/qwen-code/packages/web-shell/client ✓ adapters/transcriptAdapter.test.ts (6 tests) 4ms ✓ midTurnDedup.test.ts (12 tests) 5ms ✓ utils/copyCommand.test.ts (11 tests) 8ms ✓ components/messages/codeHighlighter.retry.test.ts (4 tests) 5ms ✓ utils/modelSwitchMessages.test.ts (3 tests) 3ms ✓ utils/localCommandQueue.test.ts (5 tests) 5ms ✓ build-artifact.test.ts (5 tests) 25ms ✓ adapters/transcriptToMessages.test.ts (97 tests) 34ms ✓ components/messages/codeHighlighter.test.ts (6 tests) 142ms ✓ components/messages/toolFormatting.test.ts (28 tests) 11ms ✓ components/messages/SettingsMessage.test.ts (10 tests) 4ms ✓ completions/slashCompletion.test.ts (19 tests) 41ms ✓ config/daemon.test.ts (14 tests) 189ms ✓ voice/useVoiceCapture.test.tsx (9 tests) 65ms ✓ components/Editor.keymap.test.ts (5 tests) 46ms ✓ components/ErrorBoundary.test.tsx (6 tests) 39ms ✓ components/MessageItem.dom.test.tsx (4 tests) 55ms ✓ components/RootErrorFallback.test.tsx (5 tests) 89ms ✓ components/StreamingStatus.test.tsx (9 tests) 70ms stderr | components/messages/EnhancedMarkdownTable.test.tsx > EnhancedMarkdownTable > quick copies the visible sorted table An update to InteractiveMarkdownTable inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | components/messages/EnhancedMarkdownTable.test.tsx > EnhancedMarkdownTable > sanitizes spreadsheet formulas when copying TSV An update to InteractiveMarkdownTable inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to InteractiveMarkdownTable inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act ✓ components/MessageTimestamp.test.tsx (5 tests) 52ms stderr | components/messages/EnhancedMarkdownTable.test.tsx > EnhancedMarkdownTable > quick copy skips hidden columns An update to InteractiveMarkdownTable inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act ✓ components/messages/PlanMessage.test.tsx (6 tests) 55ms ✓ components/messages/TodoView.test.tsx (4 tests) 71ms ✓ components/MessageList.dom.test.tsx (8 tests) 104ms ✓ components/messages/Markdown.coldHighlight.test.ts (2 tests) 60ms stderr | components/messages/EnhancedMarkdownTable.test.tsx > EnhancedMarkdownTable > selection copy skips hidden columns between selected cells An update to InteractiveMarkdownTable inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act ✓ components/messages/AssistantMessage.test.tsx (5 tests) 58ms stderr | components/messages/EnhancedMarkdownTable.test.tsx > EnhancedMarkdownTable > stops extending a selection after window blur An update to InteractiveMarkdownTable inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act ✓ index.test.tsx (2 tests) 58ms stderr | components/messages/EnhancedMarkdownTable.test.tsx > EnhancedMarkdownTable > selects cells with touch drag An update to InteractiveMarkdownTable inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act ✓ voice/VoiceButton.test.tsx (3 tests) 44ms ✓ components/messages/EnhancedMarkdownTable.test.tsx (50 tests) 729ms ✓ components/messages/UserMessage.test.tsx (2 tests) 25ms ✓ utils/todos.test.ts (64 tests) 16ms ✓ components/messages/tools/SubAgentPanel.test.tsx (3 tests) 42ms ✓ components/messages/ToolGroup.test.tsx (10 tests) 6ms ✓ hooks/useComposerCore.test.ts (10 tests) 3ms ✓ components/messages/ToolApproval.test.ts (6 tests) 18ms ✓ components/MessageList.test.ts (62 tests) 19ms ✓ components/messages/Markdown.test.ts (38 tests) 1807ms ✓ Markdown code highlighting while streaming > highlights the block as it streams, and the appended chunk too 614ms ✓ Markdown code highlighting while streaming > applies Shiki highlighting once a code block has settled 305ms ✓ Markdown code highlighting while streaming > drops stale highlighted HTML when the code is replaced (regeneration) 611ms Test Files 36 passed (36) Tests 538 passed (538) Start at 12:23:29 Duration 3.78s (transform 11.71s, setup 0ms, collect 26.86s, tests 4.01s, environment 7.04s, prepare 4.01s) npm notice run @qwen-code/webui@0.19.3 test RUN v3.2.4 /startdir/src/qwen-code/packages/webui ✓ src/components/toolcalls/labelUtils.test.ts (8 tests) 7ms ✓ src/daemon/session/promptContent.test.ts (2 tests) 3ms ✓ src/daemon/session/mappers.test.ts (8 tests) 6ms ✓ src/daemon/session/selectors.test.ts (7 tests) 8ms 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 stderr | src/daemon/workspace/hooks/useDaemonResource.test.tsx > useDaemonResource > loads data on autoLoad The current testing environment is not configured to support act(...) ✓ src/daemon/session/clientLifecycle.test.ts (13 tests) 18ms 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) 24ms ✓ src/components/messages/MarkdownRenderer/MarkdownRenderer.test.tsx (2 tests) 49ms ✓ src/components/PermissionDrawer.test.tsx (2 tests) 27ms ✓ src/components/messages/MessageMeta.test.tsx (4 tests) 62ms ✓ src/components/toolcalls/routing.test.ts (11 tests) 2ms ✓ src/components/ChatViewer/ChatViewer.test.tsx (2 tests) 7ms 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) 6ms ✓ src/daemon/transcriptAdapter.test.ts (9 tests) 6ms ✓ src/daemon/workspace/DaemonWorkspaceProvider.test.tsx (11 tests) 39ms 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 stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > prevents double submit while a prompt is running [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > 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 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > sends image prompt content through the daemon action [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > passes retry prompts through the daemon action [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > passes retry prompts through the daemon action [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > submits permission selections with optional answers [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net: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 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > treats prompt abort during cancel as cancellation and keeps busy until cancel completes [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > ends assistant streaming when prompt fails with a non-abort error [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net: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 > clears prompt state and transcript when reconnect attaches a different session [DaemonSessionProvider] SSE stream ended 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 > keeps restored active prompts streaming after replay completes [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps restored active prompts streaming after an SSE stream end [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps restored active prompts streaming after an SSE stream end [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps local prompts active when a restored prompt completes [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps local prompts active when a restored prompt completes [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps restored active prompts busy after shell commands finish [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles restored active prompts when turn_complete arrives [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles restored active prompts when turn_complete arrives [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles restored active prompts when turn_error arrives [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles restored active prompts when turn_error arrives [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles restored active prompts when prompt_cancelled arrives [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > settles restored active prompts when prompt_cancelled arrives [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps local prompts active when a restored prompt is cancelled [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 local prompts active when a restored prompt is cancelled [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not revive settled restored active prompts after SSE reconnect [DaemonSessionProvider] SSE stream ended stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does not revive settled restored active prompts after SSE reconnect [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > reloads restored active prompts after epoch reset [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears restored active prompts when epoch reload is idle [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps restored active prompts streaming after retriable SSE errors [DaemonSessionProvider] retriable SSE error, preserving session for delta resume (sessionId=session-1) stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps restored active prompts streaming after retriable SSE errors [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps locally submitted prompts active after retriable SSE errors [DaemonSessionProvider] retriable SSE error, preserving session for delta resume (sessionId=session-1) stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps locally submitted prompts active after retriable SSE errors [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1864:16) { errno: -111, code: 'ECONNREFUSED', syscall: 'connect', address: '127.0.0.1', port: 4170 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps restored active prompts streaming after resync requests [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net: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 infer active prompts from replayed user turns without terminal events [DaemonSessionProvider] detach failed: [TypeError: fetch failed] { [cause]: Error: connect ECONNREFUSED 127.0.0.1:4170 at TCPConnectWrap.afterConnect [as oncomplete] (node:net: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 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 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 } } stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears transcript immediately for default session switches An update to DaemonSessionProvider inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to DaemonSessionProvider inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to DaemonSessionProvider inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to DaemonSessionProvider inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to DaemonSessionProvider inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > clears transcript immediately for default session switches [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 transcript until replay for deferred session switches [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 transcript until replay for deferred session switches An update to DaemonSessionProvider inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to DaemonSessionProvider inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to DaemonSessionProvider inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to DaemonSessionProvider inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act An update to DaemonSessionProvider inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > keeps transcript until replay for deferred session switches [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 reconnect when event processing options 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 } } 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 > reloads stale transcript 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 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 } } 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:5190:15) at extractServerTimestamp (/startdir/src/qwen-code/packages/sdk-typescript/src/daemon/ui/normalizer.ts:480:22) at createBase (/startdir/src/qwen-code/packages/sdk-typescript/src/daemon/ui/normalizer.ts:446: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:1368:22) at run (/startdir/src/qwen-code/packages/webui/src/daemon/session/DaemonSessionProvider.tsx:649: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-1785500618113-1', createdAt: 1785500618113 } 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 stderr | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "idle_timeout" [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 "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 with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed with reason "last_client_detached" [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended 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 stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > does NOT stop reconnect on session_closed without reason field [DaemonSessionProvider] SSE stream ended stdout | src/daemon/session/DaemonSessionProvider.test.tsx > DaemonSessionProvider > 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-1785500618482-1', createdAt: 1785500618482 } 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-1785500618486-1', createdAt: 1785500618486 } 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 (105 tests) 3093ms ✓ DaemonSessionProvider > keeps restored active prompts streaming after resync requests 1007ms ✓ DaemonSessionProvider > reloads stale transcript after epoch-reset resync 1080ms Test Files 15 passed (15) Tests 200 passed (200) Start at 12:23:34 Duration 4.39s (transform 2.18s, setup 0ms, collect 6.01s, tests 3.36s, environment 2.25s, prepare 861ms) npm notice run @qwen-code/channel-telegram@0.19.3 test RUN v3.2.4 /startdir/src/qwen-code/packages/channels/telegram ✓ src/TelegramAdapter.test.ts (6 tests) 9ms Test Files 1 passed (1) Tests 6 passed (6) Start at 12:23:38 Duration 344ms (transform 74ms, setup 0ms, collect 156ms, tests 9ms, environment 0ms, prepare 56ms) npm notice run @qwen-code/channel-dingtalk@0.19.3 test RUN v3.2.4 /startdir/src/qwen-code/packages/channels/dingtalk ✓ src/markdown.test.ts (26 tests) 6ms ✓ src/DingtalkAdapter.test.ts (3 tests) 3ms Test Files 2 passed (2) Tests 29 passed (29) Start at 12:23:39 Duration 254ms (transform 79ms, setup 0ms, collect 96ms, tests 10ms, environment 0ms, prepare 128ms) npm notice run @qwen-code/channel-qqbot@0.19.3 test RUN v3.2.4 /startdir/src/qwen-code/packages/channels/qqbot ✓ src/accounts.test.ts (8 tests) 3ms ✓ src/api.test.ts (13 tests) 6ms [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) 23ms Test Files 3 passed (3) Tests 66 passed (66) Start at 12:23:39 Duration 306ms (transform 166ms, setup 0ms, collect 201ms, tests 33ms, environment 0ms, prepare 193ms) ==> ERROR: A failure occurred in check(). Aborting... ==> ERROR: Build failed, check /home/alhp/workspace/chroot/build_868e8784-9781-43f2-9305-c1e238cde4c6/build