==> Synchronizing chroot copy [/home/alhp/workspace/chroot/root] -> [build_965cba2d-4bc4-4337-b2a1-6f5b96d13387]...done ==> Making package: qwen-code 0.15.9-1.1 (Mon May 11 13:55:37 2026) ==> Retrieving sources... -> Cloning qwen-code git repo... Cloning into bare repository '/home/alhp/workspace/build/x86-64-v4/qwen-code-0.15.9-1/qwen-code'... ==> Validating source files with sha256sums... qwen-code ... Passed ==> Validating source files with b2sums... qwen-code ... Passed ==> Making package: qwen-code 0.15.9-1.1 (Mon May 11 12:01:12 2026) ==> Checking runtime dependencies... ==> Installing missing dependencies... resolving dependencies... looking for conflicting packages... Package (6) New Version Net Change Download Size extra/ada 3.4.4-1 1.08 MiB extra/c-ares 1.34.6-1 0.51 MiB extra/libuv 1.52.1-1 0.64 MiB extra/simdjson 1:4.6.4-1 7.58 MiB 0.29 MiB extra/nodejs 26.1.0-1 69.36 MiB extra/ripgrep 15.1.0-2 5.01 MiB Total Download Size: 0.29 MiB Total Installed Size: 84.18 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... simdjson-1:4.6.4-1-x86_64 downloading... 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 12.3.0-1 6.08 MiB extra/nodejs-nopt 9.0.0-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.0-1 0.10 MiB extra/zlib-ng 2.3.3-1 0.28 MiB extra/git 2.54.0-1 30.26 MiB extra/jq 1.8.1-3 0.46 MiB extra/npm 11.14.1-1 8.70 MiB Total Installed Size: 47.07 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 inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. npm warn deprecated node-domexception@1.0.0: Use your platform's native DOMException instead npm warn deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead npm warn deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported npm warn deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options. added 1419 packages, and audited 1432 packages in 2m 388 packages are looking for funding run `npm fund` for details 38 vulnerabilities (2 low, 16 moderate, 18 high, 2 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. ==> Starting build()... > @qwen-code/qwen-code@0.15.9 build > node scripts/build.js > @qwen-code/qwen-code@0.15.9 generate > node scripts/generate-git-commit-info.js > @qwen-code/qwen-code-core@0.15.9 build > node ../../scripts/build_package.js Successfully copied files. > @qwen-code/web-templates@0.15.9 build > node build.mjs && tsc --build --clean && tsc Building web-templates... Building insight assets with Vite... vite v5.4.21 building for production... transforming... Browserslist: browsers data (caniuse-lite) is 6 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 31.01 kB │ gzip: 8.25 kB ✓ built in 644ms Reading generated files... Successfully generated /startdir/src/qwen-code/packages/web-templates/src/generated/insightTemplate.ts Successfully built all web-templates. > @qwen-code/channel-base@0.15.9 build > tsc --build > @qwen-code/channel-telegram@0.15.9 build > tsc --build > @qwen-code/channel-weixin@0.15.9 build > tsc --build > @qwen-code/channel-dingtalk@0.15.9 build > tsc --build > @qwen-code/channel-plugin-example@0.15.9 build > tsc --build > @qwen-code/qwen-code@0.15.9 build > node ../../scripts/build_package.js Successfully copied files. Generated settings JSON Schema at: /startdir/src/qwen-code/packages/vscode-ide-companion/schemas/settings.schema.json (node:1451) [DEP0205] DeprecationWarning: `module.register()` is deprecated. Use `module.registerHooks()` instead. (Use `node --trace-deprecation ...` to show where the warning was created) > @qwen-code/webui@0.15.9 build > vite build vite v5.4.21 building for production... transforming... Browserslist: browsers data (caniuse-lite) is 6 months old. Please run: npx update-browserslist-db@latest Why you should do it regularly: https://github.com/browserslist/update-db#readme ✓ 158 modules transformed. rendering chunks... [vite:dts] Start generate declaration files... computing gzip size... dist/styles.css 82.67 kB │ gzip: 15.38 kB dist/index.js 382.94 kB │ gzip: 96.70 kB │ map: 825.03 kB [vite:dts] Start rollup declaration files... Analysis will use the bundled TypeScript version 5.8.2 [vite:dts] Declaration files built in 5004ms. dist/styles.css 82.67 kB │ gzip: 15.38 kB dist/index.cjs 392.14 kB │ gzip: 97.41 kB │ map: 829.91 kB dist/styles.css 82.67 kB │ gzip: 15.38 kB dist/index.umd.js 414.82 kB │ gzip: 98.57 kB │ map: 832.89 kB ✓ built in 7.55s > @qwen-code/sdk@0.1.7 build > node scripts/build.js Compiling input files... Processing src/index.ts Writing src/index.ts -> dist/index.d.ts Checking generated files... Compiler option "skipLibCheck" is disabled to properly check generated output Done in 10.01s > qwen-code-vscode-ide-companion@0.15.9 build > npm run build:dev > qwen-code-vscode-ide-companion@0.15.9 build:dev > npm run check-types && npm run lint && node esbuild.js > qwen-code-vscode-ide-companion@0.15.9 check-types > tsc --noEmit > qwen-code-vscode-ide-companion@0.15.9 lint > eslint src Browserslist: browsers data (caniuse-lite) is 6 months old. Please run: npx update-browserslist-db@latest Why you should do it regularly: https://github.com/browserslist/update-db#readme > @qwen-code/qwen-code@0.15.9 bundle > npm run generate && node esbuild.config.js && node scripts/copy_bundle_assets.js > @qwen-code/qwen-code@0.15.9 generate > node scripts/generate-git-commit-info.js Copied sandbox profiles to dist/ Copying vendor directory... Copied vendor directory to dist/ Copied bundled skills to dist/bundled/ Copied docs/users/ to dist/bundled/qc-helper/docs/ ✅ All bundle assets copied to dist/ > @qwen-code/qwen-code@0.15.9 prepare > husky && npm run build && npm run bundle > @qwen-code/qwen-code@0.15.9 build > node scripts/build.js > @qwen-code/qwen-code@0.15.9 generate > node scripts/generate-git-commit-info.js > @qwen-code/qwen-code-core@0.15.9 build > node ../../scripts/build_package.js Successfully copied files. > @qwen-code/web-templates@0.15.9 build > node build.mjs && tsc --build --clean && tsc Building web-templates... Building insight assets with Vite... vite v5.4.21 building for production... transforming... Browserslist: browsers data (caniuse-lite) is 6 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 31.01 kB │ gzip: 8.25 kB ✓ built in 483ms Reading generated files... Successfully generated /startdir/src/qwen-code/packages/web-templates/src/generated/insightTemplate.ts Successfully built all web-templates. > @qwen-code/channel-base@0.15.9 build > tsc --build > @qwen-code/channel-telegram@0.15.9 build > tsc --build > @qwen-code/channel-weixin@0.15.9 build > tsc --build > @qwen-code/channel-dingtalk@0.15.9 build > tsc --build > @qwen-code/channel-plugin-example@0.15.9 build > tsc --build > @qwen-code/qwen-code@0.15.9 build > node ../../scripts/build_package.js Successfully copied files. Generated settings JSON Schema at: /startdir/src/qwen-code/packages/vscode-ide-companion/schemas/settings.schema.json (node:2046) [DEP0205] DeprecationWarning: `module.register()` is deprecated. Use `module.registerHooks()` instead. (Use `node --trace-deprecation ...` to show where the warning was created) > @qwen-code/webui@0.15.9 build > vite build vite v5.4.21 building for production... transforming... Browserslist: browsers data (caniuse-lite) is 6 months old. Please run: npx update-browserslist-db@latest Why you should do it regularly: https://github.com/browserslist/update-db#readme ✓ 158 modules transformed. rendering chunks... [vite:dts] Start generate declaration files... computing gzip size... dist/styles.css 82.67 kB │ gzip: 15.38 kB dist/index.js 382.94 kB │ gzip: 96.70 kB │ map: 825.03 kB [vite:dts] Start rollup declaration files... Analysis will use the bundled TypeScript version 5.8.2 [vite:dts] Declaration files built in 4979ms. dist/styles.css 82.67 kB │ gzip: 15.38 kB dist/index.cjs 392.14 kB │ gzip: 97.41 kB │ map: 829.91 kB dist/styles.css 82.67 kB │ gzip: 15.38 kB dist/index.umd.js 414.82 kB │ gzip: 98.57 kB │ map: 832.89 kB ✓ built in 7.16s > @qwen-code/sdk@0.1.7 build > node scripts/build.js Compiling input files... Processing src/index.ts Writing src/index.ts -> dist/index.d.ts Checking generated files... Compiler option "skipLibCheck" is disabled to properly check generated output Done in 9.26s > qwen-code-vscode-ide-companion@0.15.9 build > npm run build:dev > qwen-code-vscode-ide-companion@0.15.9 build:dev > npm run check-types && npm run lint && node esbuild.js > qwen-code-vscode-ide-companion@0.15.9 check-types > tsc --noEmit > qwen-code-vscode-ide-companion@0.15.9 lint > eslint src Browserslist: browsers data (caniuse-lite) is 6 months old. Please run: npx update-browserslist-db@latest Why you should do it regularly: https://github.com/browserslist/update-db#readme > @qwen-code/qwen-code@0.15.9 bundle > npm run generate && node esbuild.config.js && node scripts/copy_bundle_assets.js > @qwen-code/qwen-code@0.15.9 generate > node scripts/generate-git-commit-info.js Copied sandbox profiles to dist/ Copying vendor directory... Copied vendor directory to dist/ Copied bundled skills to dist/bundled/ Copied docs/users/ to dist/bundled/qc-helper/docs/ ✅ All bundle assets copied to dist/ npm notice npm notice 📦 @qwen-code/qwen-code@0.15.9 npm notice Tarball Contents npm notice 11.4kB LICENSE npm notice 20.3kB README.md npm notice 8.8kB dist/bundled/batch/SKILL.md npm notice 3.6kB dist/bundled/loop/SKILL.md npm notice 816B 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 16.6kB dist/bundled/qc-helper/docs/configuration/auth.md npm notice 32.6kB dist/bundled/qc-helper/docs/configuration/model-providers.md npm notice 2.2kB dist/bundled/qc-helper/docs/configuration/qwen-ignore.md npm notice 151.2kB dist/bundled/qc-helper/docs/configuration/settings.md npm notice 7.9kB 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.2kB 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 15.9kB dist/bundled/qc-helper/docs/extension/introduction.md npm notice 732B dist/bundled/qc-helper/docs/features/_meta.ts npm notice 9.9kB dist/bundled/qc-helper/docs/features/approval-mode.md npm notice 12.4kB dist/bundled/qc-helper/docs/features/arena.md npm notice 134B dist/bundled/qc-helper/docs/features/channels/_meta.ts npm notice 5.8kB dist/bundled/qc-helper/docs/features/channels/dingtalk.md npm notice 15.6kB dist/bundled/qc-helper/docs/features/channels/overview.md npm notice 3.5kB dist/bundled/qc-helper/docs/features/channels/plugins.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 3.2kB dist/bundled/qc-helper/docs/features/checkpointing.md npm notice 16.5kB dist/bundled/qc-helper/docs/features/code-review.md npm notice 26.2kB dist/bundled/qc-helper/docs/features/commands.md npm notice 21.3kB dist/bundled/qc-helper/docs/features/dual-output.md npm notice 4.6kB dist/bundled/qc-helper/docs/features/followup-suggestions.md npm notice 14.3kB dist/bundled/qc-helper/docs/features/headless.md npm notice 30.9kB dist/bundled/qc-helper/docs/features/hooks.md npm notice 4.3kB dist/bundled/qc-helper/docs/features/language.md npm notice 13.5kB dist/bundled/qc-helper/docs/features/lsp.md npm notice 7.4kB dist/bundled/qc-helper/docs/features/markdown-rendering.md npm notice 18.7kB dist/bundled/qc-helper/docs/features/mcp.md npm notice 6.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 9.1kB dist/bundled/qc-helper/docs/features/skills.md npm notice 14.5kB dist/bundled/qc-helper/docs/features/status-line.md npm notice 21.5kB 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 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.4kB dist/bundled/qc-helper/docs/overview.md npm notice 8.9kB dist/bundled/qc-helper/docs/quickstart.md npm notice 66B dist/bundled/qc-helper/docs/reference/_meta.ts npm notice 8.8kB dist/bundled/qc-helper/docs/reference/keyboard-shortcuts.md npm notice 122B dist/bundled/qc-helper/docs/support/_meta.ts npm notice 6.9kB dist/bundled/qc-helper/docs/support/tos-privacy.md npm notice 10.2kB dist/bundled/qc-helper/docs/support/troubleshooting.md npm notice 1.2kB dist/bundled/qc-helper/docs/support/Uninstall.md npm notice 9.3kB dist/bundled/qc-helper/SKILL.md npm notice 24.1kB dist/bundled/review/DESIGN.md npm notice 49.9kB dist/bundled/review/SKILL.md npm notice 26.0MB dist/cli.js npm notice 1.0kB dist/sandbox-macos-permissive-closed.sb npm notice 888B 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 7.4kB package.json npm notice Bundled Dependencies npm notice dom-accessibility-api 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-regex npm notice aria-query npm notice debug npm notice dequal npm notice lz-string npm notice picocolors npm notice ms npm notice simple-git npm notice Tarball Details npm notice name: @qwen-code/qwen-code npm notice version: 0.15.9 npm notice filename: qwen-code-qwen-code-0.15.9.tgz npm notice package size: 16.5 MB npm notice unpacked size: 58.3 MB npm notice shasum: 76d048064c287503a91aedd9345ccc9992e3fe9f npm notice integrity: sha512-IIqiN/j2yfRAO[...]eGr1Quom/jjUg== npm notice bundled deps: 18 npm notice bundled files: 0 npm notice own files: 858 npm notice total files: 858 npm notice qwen-code-qwen-code-0.15.9.tgz ==> Starting check()... > @qwen-code/qwen-code@0.15.9 test > npm run test --workspaces --if-present --parallel npm warn Unknown cli config "--parallel". This will stop working in the next major version of npm. > @qwen-code/qwen-code@0.15.9 test > vitest run RUN v3.2.4 /startdir/src/qwen-code/packages/cli Coverage enabled with v8 ✓ src/services/insight/generators/DataProcessor.test.ts (38 tests) 77ms ✓ src/ui/hooks/atCommandProcessor.test.ts (43 tests) 188ms ✓ src/utils/nonInteractiveHelpers.test.ts (60 tests) 29ms ✓ src/utils/modelConfigUtils.test.ts (46 tests) 111ms ✓ src/utils/settingsUtils.test.ts (73 tests) 44ms ✓ src/ui/components/shared/vim-buffer-actions.test.ts (74 tests) 60ms ✓ src/ui/components/shared/text-buffer.test.ts (132 tests) 352ms ✓ src/ui/hooks/vim.test.ts (89 tests) 638ms ✓ src/config/settings.test.ts (95 tests) 195ms ✓ src/services/FileCommandLoader.test.ts (40 tests) 248ms ✓ src/ui/hooks/useGeminiStream.test.tsx (85 tests) 1502ms ✓ src/ui/contexts/KeypressContext.test.tsx (93 tests) 1782ms ✓ KeypressContext - Kitty Protocol > Enter key handling > auto-recovers from a stuck paste mode via idle timeout 1265ms ✓ src/ui/hooks/slashCommandProcessor.test.ts (45 tests) 2858ms ✓ src/acp-integration/session/Session.test.ts (54 tests) 892ms (node:3102) 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:3102) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 end listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:3102) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 finish listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:3102) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 error listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:3102) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 close listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:3102) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 drain listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:3102) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 finish listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:3102) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 error listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:3102) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 close listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:3102) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 data listeners added to [Socket]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit ✓ src/acp-integration/acpAgent.test.ts (23 tests) 1094ms ✓ src/ui/hooks/useStatusLine.test.ts (52 tests) 6000ms ✓ useStatusLine > config validation > returns null when no statusLine config is set 5789ms ✓ src/utils/errors.test.ts (40 tests) 180ms ✓ src/ui/hooks/useSelectionList.test.ts (45 tests) 329ms ✓ src/nonInteractive/session.test.ts (27 tests) 608ms ✓ src/ui/components/messages/ToolGroupMessage.test.tsx (32 tests) 340ms ✓ src/ui/commands/languageCommand.test.ts (47 tests) 127ms ✓ src/ui/components/messages/ToolMessage.test.tsx (35 tests) 602ms (node:2445) 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/nonInteractive/io/BaseJsonOutputAdapter.test.ts (93 tests) 67ms ✓ src/nonInteractive/io/StreamJsonOutputAdapter.test.ts (48 tests) 66ms ✓ src/nonInteractiveCli.test.ts (34 tests | 1 skipped) 754ms ✓ src/config/config.test.ts (195 tests | 2 skipped) 3214ms ✓ src/ui/hooks/useSlashCompletion.test.ts (24 tests) 790ms ✓ src/ui/utils/MarkdownDisplay.test.tsx (101 tests) 1871ms ✓ src/services/prompt-processors/shellProcessor.test.ts (34 tests) 93ms ✓ src/ui/components/SettingsDialog.test.tsx (54 tests) 8833ms ✓ SettingsDialog > Settings Toggling > should toggle setting with Enter key 401ms ✓ SettingsDialog > Settings Toggling > should sync compact mode with CompactModeContext when toggled 1877ms ✓ SettingsDialog > Specific Settings Behavior > should keep restart prompt when switching scopes 464ms ✓ SettingsDialog > Output Language > treats empty output language as auto 526ms ✓ SettingsDialog > Complex User Interactions > should allow changing multiple settings without losing pending changes 304ms ✓ SettingsDialog > Complex User Interactions > should maintain state consistency during complex interactions 307ms ✓ SettingsDialog > String Settings Editing > should allow editing and committing a string setting 806ms ✓ src/nonInteractive/control/ControlDispatcher.test.ts (35 tests) 28ms ✓ src/ui/utils/mermaidImageRenderer.test.ts (25 tests) 2092ms ✓ mermaid image renderer > evicts Mermaid image caches by retained byte size 628ms ✓ src/ui/utils/mergeCompactToolGroups.test.ts (27 tests) 33ms ✓ src/nonInteractive/io/JsonOutputAdapter.test.ts (35 tests) 59ms ✓ src/ui/components/background-view/LiveAgentPanel.test.tsx (25 tests) 313ms ❯ src/ui/components/StandaloneSessionPicker.test.tsx (37 tests | 5 failed) 8504ms ✓ SessionPicker > Empty Sessions > should show sessions with 0 messages 253ms ✓ SessionPicker > Empty Sessions > should show sessions even when all sessions are empty 120ms ✓ SessionPicker > Empty Sessions > should show sessions with 1 or more messages 131ms ✓ SessionPicker > Branch Filtering > should filter by branch when Ctrl+B is pressed 288ms ✓ SessionPicker > Branch Filtering > should combine empty session filter with branch filter 229ms ✓ SessionPicker > Keyboard Navigation > should navigate with arrow keys 179ms ✓ SessionPicker > Keyboard Navigation > should select session on Enter 172ms ✓ SessionPicker > Keyboard Navigation > should cancel on Escape 168ms ✓ SessionPicker > Search > substring filters across customTitle, prompt, and gitBranch 212ms ✓ SessionPicker > Search > typing a non-shortcut char enters search mode implicitly 178ms ✓ SessionPicker > Search > list-mode j/k navigate the list 319ms ✓ SessionPicker > Search > 'b' seeds search; once searching, 'j' appends to the query 207ms ✓ SessionPicker > Search > list-mode Space without preview enabled is a no-op 199ms × SessionPicker > Search > Backspace edits the query; emptying it returns to list mode 373ms → expected '╭────────────────────────────────────…' to contain 'Press / to search' ✓ SessionPicker > Search > Backspace in list mode does not spawn a search 183ms ✓ SessionPicker > Search > search mode suppresses the row highlight 225ms × SessionPicker > Search > Enter in search commits the filter; second Enter selects 316ms → expected "spy" to be called with arguments: [ 'matching' ] Number of calls: 0 × SessionPicker > Search > Enter in search with no matches stays in search 260ms → expected "spy" to not be called at all, but actually been called 1 times Received: 1st spy call: Array [ "s1", ] Number of calls: 1 × SessionPicker > Search > ↑/↓ from search drops to list mode while keeping the filter 286ms → expected '╭────────────────────────────────────…' to contain 'Filter:' ✓ SessionPicker > Search > Space → preview works on the highlighted row in filtered-list 342ms ✓ SessionPicker > Search > Ctrl+B toggles branch in filtered-list 247ms × SessionPicker > Search > Esc in filtered-list clears the query first, then cancels 291ms → expected '╭────────────────────────────────────…' to contain 'Press / to search' ✓ SessionPicker > Search > '/' from filtered-list preserves the existing query 266ms ✓ SessionPicker > Search > ↑ at top of unfiltered list also wraps into search 182ms ✓ SessionPicker > Search > ↑ at top of filtered-list wraps focus back to search 207ms ✓ SessionPicker > Search > ↓ from search lands on the first match, not the second 275ms ✓ SessionPicker > Search > ↑/↓ are a no-op in search when the query matches nothing 243ms ✓ SessionPicker > Search > typing in filtered-list re-enters search and appends 247ms ✓ SessionPicker > Display > should show session metadata 143ms ✓ SessionPicker > Display > should show header and footer 120ms ✓ SessionPicker > Display > should show branch toggle hint when currentBranch is provided 135ms ✓ SessionPicker > Display > should truncate long prompts 115ms ✓ SessionPicker > Display > should show "(empty prompt)" for sessions without prompt text 129ms ✓ SessionPicker > Pagination > should load more sessions when scrolling to bottom 280ms ✓ SessionPicker > Preview Mode > renders tool_group items without crashing (stub Providers mounted) 303ms ✓ SessionPicker > Preview Mode > Enter inside preview fires onSelect with previewed sessionId 340ms ✓ SessionPicker > Preview Mode > without enablePreview, Space is a no-op and footer omits the hint 338ms ✓ src/acp-integration/session/SubAgentTracker.test.ts (24 tests) 277ms ✓ src/ui/hooks/useToolScheduler.test.ts (17 tests) 157ms ✓ src/ui/commands/copyCommand.test.ts (25 tests) 69ms ✓ src/ui/utils/customBanner.test.ts (40 tests) 126ms ✓ src/ui/AppContainer.test.tsx (56 tests) 3862ms ✓ src/ui/components/background-view/BackgroundTasksDialog.test.tsx (29 tests) 1229ms ✓ src/acp-integration/session/emitters/ToolCallEmitter.test.ts (34 tests) 35ms ✓ src/ui/hooks/shellCommandProcessor.test.ts (20 tests) 574ms ✓ src/auth/providers/oauth/openrouterOAuth.test.ts (25 tests) 307ms ✓ src/ui/auth/useAuth.test.ts (24 tests) 124ms ✓ src/ui/components/agent-view/agentHistoryAdapter.test.ts (35 tests) 32ms ✓ src/ui/commands/clearCommand.test.ts (13 tests) 60ms ✓ src/utils/languageUtils.test.ts (45 tests) 42ms ✓ src/commands/auth/status.test.ts (20 tests) 106ms ✓ src/ui/hooks/useAutoAcceptIndicator.test.ts (15 tests) 193ms ✓ src/config/migration/versions/v2-to-v3.test.ts (31 tests) 57ms ✓ src/ui/hooks/useBranchCommand.test.ts (15 tests) 62ms ✓ src/validateNonInterActiveAuth.test.ts (13 tests) 30ms ✓ src/ui/hooks/useCommandCompletion.test.ts (19 tests) 335ms ✓ src/ui/hooks/useExtensionUpdates.test.ts (15 tests) 409ms ✓ src/ui/commands/btwCommand.test.ts (17 tests) 97ms ✓ src/ui/components/StatsDisplay.test.tsx (17 tests) 433ms ✓ src/ui/utils/commandUtils.test.ts (34 tests) 52ms ✓ src/services/McpPromptLoader.test.ts (25 tests) 46ms ✓ src/ui/commands/renameCommand.test.ts (17 tests) 26ms ✓ src/commands/mcp/add.test.ts (25 tests) 402ms ✓ src/ui/hooks/useBackgroundTaskView.test.ts (12 tests) 205ms ✓ src/auth/providerConfig.test.ts (36 tests) 15ms ✓ src/ui/components/shared/BaseSelectionList.test.tsx (25 tests | 1 skipped) 584ms ✓ src/ui/utils/TableRenderer.test.tsx (43 tests) 288ms ✓ src/ui/commands/statsCommand.test.ts (13 tests) 71ms ✓ src/ui/keyMatchers.test.ts (36 tests) 33ms ]2;Qwen - cli]2;Qwen - cli]2;Qwen - root]2;Qwen - root]2;Qwen - root ✓ src/gemini.test.tsx (13 tests) 1199ms ✓ gemini.tsx main function > verifies that we dont load the config before relaunchAppInChildProcess 578ms ✓ gemini.tsx main function > should skip full settings discovery in bare mode 537ms ✓ src/ui/hooks/useAtCompletion.test.ts (13 tests) 1442ms Select an option: > Option 1 - First option Option 2 - Second option Option 3 - Third option (Use ↑ ↓ arrows to navigate, Enter to select, Ctrl+C to exit) Select an option: > Option 1 - First option Option 2 - Second option Option 3 - Third option (Use ↑ ↓ arrows to navigate, Enter to select, Ctrl+C to exit) ✓ src/commands/auth/interactiveSelector.test.ts (15 tests) 81ms ✓ src/ui/components/InputPrompt.test.tsx (131 tests | 1 skipped) 22579ms ✓ InputPrompt > prompt suggestions > does not accept the prompt suggestion on shift+tab 493ms ✓ InputPrompt > prompt suggestions > does not accept a prompt suggestion while command completion is active 439ms ✓ InputPrompt > should not clobber manually edited buffer when arrow is pressed after export fill 315ms ✓ InputPrompt > should submit directly on Enter after arrow-navigate + backspace + retype to perfect match 321ms ✓ InputPrompt > paste auto-submission protection > should allow submission after paste protection timeout 788ms ✓ InputPrompt > large paste placeholder > should expand placeholder to full content on submit 804ms ✓ InputPrompt > large paste placeholder > should expand same-size placeholders correctly when #2 appears first 866ms ✓ InputPrompt > large paste placeholder > should write expanded placeholder content to shell history 812ms ✓ InputPrompt > large paste placeholder > should reuse placeholder ID after deletion 329ms ✓ src/ui/commands/tasksCommand.test.ts (10 tests) 28ms ✓ src/ui/hooks/useResumeCommand.test.ts (9 tests) 66ms ✓ src/ui/hooks/useProviderUpdates.test.ts (13 tests) 419ms ✓ src/ui/components/ModelDialog.test.tsx (11 tests) 413ms ✓ src/ui/commands/exportCommand.test.ts (14 tests) 43ms ✓ src/utils/handleAutoUpdate.test.ts (18 tests) 57ms ✓ src/services/CommandService.test.ts (15 tests) 128ms ✓ src/commands/extensions/settings.test.ts (20 tests) 120ms ✓ src/ui/components/ModelStatsDisplay.test.tsx (14 tests) 712ms ✓ src/acp-integration/session/HistoryReplayer.test.ts (16 tests) 21ms ✓ src/ui/utils/textUtils.test.ts (24 tests) 32ms ✓ src/config/trustedFolders.test.ts (21 tests) 43ms ✓ src/ui/components/QwenOAuthProgress.test.tsx (18 tests) 282ms ✓ src/config/migration/index.test.ts (26 tests) 16ms ✓ src/ui/hooks/useQwenAuth.test.ts (17 tests) 152ms ✓ src/ui/commands/directoryCommand.test.tsx (13 tests) 78ms ✓ src/ui/components/messages/DiffRenderer.test.tsx (16 tests) 903ms ✓ > should call colorizeCode with null language for new file with unknown extension 311ms ✓ src/config/settingsSchema.test.ts (17 tests) 59ms ✓ src/ui/components/LoadingIndicator.test.tsx (24 tests) 186ms ✓ src/ui/commands/arenaCommand.test.ts (14 tests) 20ms ✓ src/acp-integration/session/rewrite/MessageRewriteMiddleware.test.ts (11 tests) 88ms ✓ src/config/auth.test.ts (17 tests) 119ms ✓ src/utils/installationInfo.test.ts (16 tests) 42ms Invalid values: Argument: approval-mode, Given: "invalid_mode", Choices: "plan", "default", "auto-edit", "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 (19 tests) 2470ms ✓ Configuration Integration Tests > Approval Mode Integration Tests > should parse --approval-mode=auto-edit correctly through the full argument parsing flow 2187ms ✓ src/ui/hooks/useSessionSearchInput.test.ts (21 tests) 110ms ✓ src/ui/utils/todoSnapshot.test.ts (14 tests) 58ms ✓ src/ui/components/shared/MaxSizedBox.test.tsx (21 tests) 111ms ✓ src/utils/systemInfo.test.ts (15 tests) 32ms ✓ src/commands/extensions/consent.test.ts (17 tests) 42ms ✓ src/ui/components/messages/ToolConfirmationMessage.test.tsx (16 tests) 350ms ✓ src/services/SkillCommandLoader.test.ts (17 tests) 26ms ✓ src/utils/earlyInputCapture.test.ts (28 tests) 45ms ✓ src/nonInteractiveCliCommands.test.ts (14 tests) 35ms ✓ src/ui/components/Composer.test.tsx (14 tests) 183ms ✓ src/auth/install/applyProviderInstallPlan.test.ts (8 tests) 39ms ✓ src/ui/components/messages/AskUserQuestionDialog.test.tsx (15 tests) 1887ms ✓ src/ui/commands/aboutCommand.test.ts (9 tests) 37ms ✓ src/utils/osc.test.ts (30 tests) 9ms ✓ src/commands/extensions/update.test.ts (14 tests) 117ms 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 node:internal/modules/cjs/loader:1505 throw err; ^ Error: Cannot find module '/app/cli.js' at Module._resolveFilename (node:internal/modules/cjs/loader:1502:15) at wrapResolveFilename (node:internal/modules/cjs/loader:1073:27) at defaultResolveImplForCJSLoading (node:internal/modules/cjs/loader:1097:10) at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1118:12) at Module._load (node:internal/modules/cjs/loader:1287:25) at wrapModuleLoad (node:internal/modules/cjs/loader:255:19) at Module.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:154:5) at node:internal/main/run_main_module:33:47 { code: 'MODULE_NOT_FOUND', requireStack: [] } Node.js v26.1.0 Fatal error: Failed to relaunch the CLI process. PROCESS_EXIT_CALLED ✓ src/utils/relaunch.test.ts (8 tests) 73ms ✓ src/utils/apiPreconnect.test.ts (23 tests) 14ms ✓ src/utils/doctorChecks.test.ts (12 tests) 24ms ✓ src/utils/envVarResolver.test.ts (16 tests) 68ms ✓ src/services/BundledSkillLoader.test.ts (15 tests) 27ms ✓ src/commands/auth/openrouter.test.ts (4 tests) 33ms ✓ src/services/prompt-processors/injectionParser.test.ts (21 tests) 22ms ✓ src/services/FileCommandLoader-extension.test.ts (6 tests) 158ms ✓ src/utils/writeWithBackup.test.ts (12 tests) 30ms ✓ src/ui/commands/restoreCommand.test.ts (13 tests) 149ms ✓ src/ui/themes/theme-manager.test.ts (18 tests) 142ms ✓ src/config/migration/versions/v3-to-v4.test.ts (32 tests) 37ms ✓ src/ui/utils/historyMapping.test.ts (16 tests) 11ms ✓ src/ui/hooks/useKeypress.test.ts (15 tests) 164ms ✓ src/ui/components/MainContent.test.tsx (2 tests) 67ms ✓ src/ui/hooks/useShellHistory.test.ts (7 tests) 589ms ❯ src/ui/auth/AuthDialog.test.tsx (25 tests | 8 failed) 42101ms ✓ 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 87ms ✓ AuthDialog > GEMINI_API_KEY environment variable > should not show the GEMINI_API_KEY message if QWEN_DEFAULT_AUTH_TYPE is set to something else 20ms ✓ AuthDialog > GEMINI_API_KEY environment variable > should show the GEMINI_API_KEY message if QWEN_DEFAULT_AUTH_TYPE is set to use api key 17ms ✓ AuthDialog > QWEN_DEFAULT_AUTH_TYPE environment variable > should select the auth type specified by QWEN_DEFAULT_AUTH_TYPE 31ms ✓ AuthDialog > QWEN_DEFAULT_AUTH_TYPE environment variable > should fall back to default if QWEN_DEFAULT_AUTH_TYPE is not set 28ms ✓ AuthDialog > QWEN_DEFAULT_AUTH_TYPE environment variable > should show an error and fall back to default if QWEN_DEFAULT_AUTH_TYPE is invalid 43ms ✓ AuthDialog > should prevent exiting when no auth method is selected and show error message 130ms ✓ AuthDialog > should not exit if there is already an error message 120ms ✓ AuthDialog > should allow exiting when auth method is already selected 87ms ✓ AuthDialog > should preserve the selected main entry when returning from each top-level flow 1134ms ✓ AuthDialog > should go back from Coding Plan region selection to Alibaba ModelStudio 189ms ✓ AuthDialog > should go back from third-party provider API key input to provider list 320ms × AuthDialog > should show preset providers in third-party provider options 5179ms → expected '┌────────────────────────────────────…' to contain 'Third-party Providers · Provider' × AuthDialog > drives API key provider steps from endpoint options metadata 5246ms → expected '┌────────────────────────────────────…' to contain 'DeepSeek API Key · Step 1/2 · API Key' ✓ AuthDialog > should show Alibaba ModelStudio access methods after selecting Alibaba ModelStudio 155ms ✓ AuthDialog > should submit Token Plan through the shared subscription handler 530ms ✓ AuthDialog > should return from Token Plan API key input to Token Plan selection 246ms ✓ AuthDialog > should trigger OpenRouter OAuth from OAuth provider options 290ms × AuthDialog Custom API Key Wizard > navigates to protocol selection when Custom API Key is selected 5114ms → expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?OAuth/ × 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 5196ms → expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?OAuth/ × AuthDialog Custom API Key Wizard > calls handleProviderSubmit on Enter in review view 5100ms → expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?OAuth/ × AuthDialog Custom API Key Wizard > shows advanced config screen after entering model IDs 5339ms → expected '┌────────────────────────────────────…' to contain 'Custom Provider · Step 3/6 · API Key' × AuthDialog Custom API Key Wizard > passes generationConfig when advanced options are toggled 2065ms → expected '┌────────────────────────────────────…' to contain '"enable_thinking"' ✓ src/ui/hooks/useLoadingIndicator.test.ts (8 tests) 55ms ✓ src/services/BuiltinCommandLoader.test.ts (9 tests) 13ms ✓ src/ui/commands/ideCommand.test.ts (8 tests) 20ms ✓ src/ui/themes/color-utils.test.ts (16 tests) 9ms ✓ src/ui/hooks/useMessageQueue.test.ts (16 tests) 54ms ✓ src/ui/hooks/useEditorSettings.test.ts (10 tests) 33ms ✓ src/ui/hooks/useInputHistoryStore.test.ts (14 tests) 36ms ✓ src/config/migration/versions/v1-to-v2.test.ts (20 tests) 7ms ✓ src/utils/gitUtils.test.ts (24 tests) 16ms ✓ src/ui/hooks/useReverseSearchCompletion.test.tsx (10 tests) 40ms ✓ src/ui/components/hooks/constants.test.ts (25 tests) 10ms ✓ src/ui/components/hooks/HookConfigDetailStep.test.tsx (14 tests) 144ms ✓ src/ui/utils/computeStats.test.ts (12 tests) 6ms ✓ src/ui/utils/resumeHistoryUtils.test.ts (4 tests) 65ms ✓ src/acp-integration/session/rewrite/LlmRewriter.test.ts (9 tests) 6ms ✓ src/ui/hooks/useInputHistory.test.ts (11 tests) 61ms ✓ src/utils/startupProfiler.test.ts (11 tests) 137ms ✓ src/ui/hooks/useExportCompletion.test.ts (20 tests) 75ms ✓ src/services/command-migration-tool.test.ts (13 tests) 45ms ✓ src/commands/mcp/reconnect.test.ts (6 tests) 49ms ✓ src/services/prompt-processors/atFileProcessor.test.ts (11 tests) 59ms ✓ src/ui/hooks/useTrustModify.test.ts (8 tests) 102ms ✓ src/ui/components/HistoryItemDisplay.test.tsx (14 tests) 653ms ✓ src/ui/utils/formatters.test.ts (32 tests) 20ms ✓ src/acp-integration/session/emitters/PlanEmitter.test.ts (17 tests) 35ms ✓ src/acp-integration/session/emitters/MessageEmitter.test.ts (13 tests) 98ms ✓ src/ui/hooks/useHistoryManager.test.ts (8 tests) 99ms ✓ src/commands/extensions/install.test.ts (8 tests) 70ms ✓ src/ui/hooks/usePhraseCycler.test.ts (9 tests) 207ms ✓ src/ui/components/hooks/HooksManagementDialog.test.tsx (8 tests) 842ms ✓ src/nonInteractive/io/StreamJsonInputReader.test.ts (11 tests) 36ms (node:4152) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 exit listeners added to [process]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (Use `node --trace-warnings ...` to show where the warning was created) ✓ src/ui/hooks/useIdeTrustListener.test.ts (5 tests) 52ms ✓ src/ui/hooks/useAttentionNotifications.test.ts (9 tests) 156ms ✓ src/ui/commands/setupGithubCommand.test.ts (8 tests) 114ms ✓ src/commands/channel/start.test.ts (4 tests) 31ms ✓ src/ui/commands/insightCommand.test.ts (4 tests) 31ms ✓ src/ui/components/Footer.test.tsx (11 tests) 160ms ✓ src/ui/components/PluginChoicePrompt.test.tsx (12 tests) 219ms ✓ src/ui/utils/synchronizedOutput.test.ts (17 tests) 10ms ✓ src/services/commandUtils.test.ts (14 tests) 32ms ✓ src/ui/components/messages/CompressionMessage.test.tsx (8 tests) 239ms ✓ src/ui/hooks/useFolderTrust.test.ts (9 tests) 91ms ✓ src/ui/commands/extensionsCommand.test.ts (7 tests) 25ms ✓ src/ui/components/Header.test.tsx (17 tests) 463ms ✓ src/ui/commands/bugCommand.test.ts (3 tests) 38ms ✓ src/ui/components/hooks/HookDetailStep.test.tsx (12 tests) 473ms ✓ src/ui/components/arena/ArenaSelectDialog.test.tsx (5 tests) 527ms Error parsing settings file. Unexpected end of JSON input Settings file may be corrupted. Please check the JSON syntax. ✓ src/utils/commentJson.test.ts (8 tests) 73ms ✓ src/ui/components/background-view/BackgroundTasksPill.test.tsx (16 tests) 6ms ✓ src/ui/components/TrustDialog.test.tsx (6 tests) 381ms ✓ src/commands/mcp/list.test.ts (4 tests) 8ms ✓ src/dualOutput/DualOutputBridge.test.ts (12 tests) 83ms ✓ src/ui/commands/approvalModeCommand.test.ts (13 tests) 65ms ✓ src/core/initializer.test.ts (11 tests) 24ms ✓ src/commands/channel/pidfile.test.ts (12 tests) 410ms ✓ src/ui/contexts/SessionContext.test.tsx (4 tests) 113ms ✓ src/ui/hooks/useGitBranchName.test.ts (7 tests | 2 skipped) 86ms ✓ src/utils/costCalculator.test.ts (14 tests) 30ms ✓ src/ui/commands/modelCommand.test.ts (10 tests) 91ms ✓ src/ui/models/availableModels.test.ts (14 tests) 29ms ✓ src/utils/deepMerge.test.ts (13 tests) 16ms ✓ src/ui/components/AnsiOutput.test.tsx (8 tests) 143ms ✓ src/ui/components/shared/RadioButtonSelect.test.tsx (5 tests) 51ms ✓ src/ui/utils/highlight.test.ts (16 tests) 6ms ✓ src/ui/commands/initCommand.test.ts (5 tests) 56ms ✓ src/config/migration/scheduler.test.ts (7 tests) 18ms ✓ src/ui/components/messages/CompactToolGroupDisplay.test.tsx (8 tests) 101ms ✓ src/ui/components/Tips.test.ts (9 tests) 11ms ✓ src/ui/commands/planCommand.test.ts (7 tests) 53ms ✓ src/ui/components/mcp/utils.test.ts (16 tests) 15ms ✓ src/commands/channel/config-utils.test.ts (11 tests) 36ms ✓ src/ui/components/AppHeader.test.tsx (6 tests) 218ms ✓ src/ui/components/hooks/HooksListStep.test.tsx (9 tests) 172ms ✓ src/utils/commands.test.ts (12 tests) 7ms ✓ src/ui/layouts/DefaultAppLayout.test.tsx (5 tests) 109ms ✓ src/ui/commands/resumeCommand.test.ts (9 tests) 34ms ✓ src/ui/utils/updateCheck.test.ts (9 tests) 42ms ✓ src/ui/utils/terminalRedrawOptimizer.test.ts (9 tests) 42ms ✓ src/services/FileCommandLoader-markdown.test.ts (4 tests) 56ms ✓ src/ui/components/arena/ArenaCards.test.tsx (2 tests) 300ms ✓ src/ui/components/ToolStatsDisplay.test.tsx (5 tests) 220ms ✓ src/ui/utils/MermaidDiagram.test.tsx (5 tests) 288ms ✓ src/ui/components/extensions/ExtensionsManagerDialog.test.tsx (4 tests) 192ms ✓ src/ui/components/SessionPreview.test.tsx (5 tests) 679ms ✓ src/services/markdown-command-parser.test.ts (13 tests) 23ms ✓ src/nonInteractive/io/StreamJsonOutputAdapter.dualOutput.test.ts (5 tests) 14ms ✓ src/ui/manageModels/manageModels.test.ts (3 tests) 20ms ✓ src/utils/cleanup.test.ts (8 tests) 178ms ✓ src/ui/components/views/McpStatus.test.tsx (12 tests) 397ms ✓ src/services/tips/tipScheduler.test.ts (7 tests) 10ms ✓ src/ui/components/StickyTodoList.test.tsx (5 tests) 447ms ✓ src/services/notificationService.test.ts (9 tests) 27ms ✓ src/ui/commands/mcpCommand.test.ts (6 tests) 39ms ✓ src/services/tips/tipHistory.test.ts (11 tests) 16ms ✓ src/ui/utils/modelsBySource.test.ts (7 tests) 34ms ✓ src/acp-integration/service/filesystem.test.ts (4 tests) 9ms ✓ src/ui/components/SessionSummaryDisplay.test.tsx (3 tests) 274ms ✓ src/ui/App.test.tsx (7 tests) 139ms ✓ src/ui/hooks/useTimer.test.ts (8 tests) 111ms ✓ src/ui/hooks/useFocus.test.ts (6 tests) 248ms ✓ src/ui/components/shared/EnumSelector.test.tsx (9 tests) 276ms ✓ src/ui/hooks/useAwaySummary.test.ts (2 tests) 144ms ✓ src/ui/utils/clipboardUtils.test.ts (11 tests) 32ms ✓ src/ui/commands/compressCommand.test.ts (5 tests) 90ms ✓ src/commands/extensions/utils.test.ts (6 tests) 18ms ✓ src/ui/commands/doctorCommand.test.ts (5 tests) 20ms ✓ src/commands/extensions/disable.test.ts (7 tests) 152ms ✓ src/ui/components/FolderTrustDialog.test.tsx (9 tests) 312ms ✓ src/ui/utils/sessionPickerUtils.test.ts (12 tests) 40ms ✓ src/auth/providers/custom/customProvider.test.ts (10 tests) 17ms ✓ src/ui/utils/backgroundWorkUtils.test.ts (7 tests) 40ms ✓ src/ui/components/QueuedMessageDisplay.test.tsx (7 tests) 51ms ✓ src/ui/components/shared/TextInput.test.tsx (6 tests) 111ms ✓ src/remoteInput/RemoteInputWatcher.test.ts (5 tests) 483ms ✓ src/ui/components/hooks/HooksDisabledStep.test.tsx (8 tests) 162ms ✓ src/acp-integration/session/rewrite/TurnBuffer.test.ts (12 tests) 10ms ✓ src/ui/hooks/useWelcomeBack.test.ts (4 tests) 217ms ✓ src/commands/extensions/enable.test.ts (7 tests) 81ms ✓ src/ui/components/extensions/steps/ExtensionListStep.test.tsx (5 tests) 131ms ✓ src/auth/providers/alibaba/alibabaStandard.test.ts (6 tests) 22ms ✓ src/ui/components/shared/ToolElapsedTime.test.tsx (8 tests) 192ms ✓ src/ui/commands/docsCommand.test.ts (4 tests) 21ms ✓ src/ui/hooks/useConfigInitMessage.test.ts (7 tests) 104ms ✓ src/ui/components/PrepareLabel.test.tsx (6 tests) 55ms ✓ src/commands/extensions/list.test.ts (4 tests) 87ms ✓ src/utils/userStartupWarnings.test.ts (5 tests) 41ms ✓ src/utils/readStdin.test.ts (4 tests) 73ms ✓ src/ui/commands/toolsCommand.test.ts (4 tests) 69ms ✓ src/ui/components/ManageModelsDialog.test.tsx (9 tests) 5ms ✓ src/ui/components/SettingInputPrompt.test.tsx (6 tests) 89ms ✓ src/ui/hooks/useSlashCompletion.integration.test.ts (2 tests) 137ms ✓ src/ui/utils/mermaidVisualRenderer.test.ts (4 tests) 83ms ✓ src/ui/themes/theme.test.ts (5 tests) 8ms ✓ src/acp-integration/session/rewrite/config.test.ts (5 tests) 30ms ✓ src/commands/mcp/remove.test.ts (4 tests) 59ms ✓ src/ui/layouts/ScreenReaderAppLayout.test.tsx (4 tests) 53ms ✓ src/ui/commands/branchCommand.test.ts (6 tests) 41ms ✓ src/acp-integration/session/permissionUtils.test.ts (4 tests) 9ms No extensions installed. ✓ src/commands/extensions.test.tsx (11 tests) 83ms Successfully created new extension at /some/path. You can install this using "qwen extensions link /some/path" to test it out. Successfully created new extension from template "context" at /some/path. You can install this using "qwen extensions link /some/path" to test it out. Path already exists: /some/path ✓ src/commands/extensions/new.test.ts (4 tests) 41ms ✓ src/ui/components/extensions/steps/ActionSelectionStep.test.tsx (5 tests) 152ms ✓ src/ui/hooks/useTerminalNotification.test.ts (4 tests) 8ms ✓ src/ui/components/views/ExtensionsList.test.tsx (9 tests) 157ms ✓ src/ui/components/ConsentPrompt.test.tsx (5 tests) 124ms ✓ src/services/insight/generators/StaticInsightGenerator.test.ts (1 test) 40ms ✓ src/ui/utils/displayUtils.test.ts (8 tests) 37ms ✓ src/commands/extensions/link.test.ts (4 tests) 58ms ✓ src/ui/components/ContextSummaryDisplay.test.tsx (4 tests) 139ms ✓ src/ui/components/ThemeDialog.test.tsx (2 tests) 866ms ✓ ThemeDialog Snapshots > should render correctly in theme selection mode 543ms ✓ ThemeDialog Snapshots > should render correctly in scope selector mode 322ms ✓ src/config/modelProvidersScope.test.ts (4 tests) 9ms ✓ src/ui/hooks/useMemoryMonitor.test.ts (3 tests) 84ms ✓ src/config/keyBindings.test.ts (3 tests) 21ms ✓ src/ui/utils/markdownUtilities.test.ts (7 tests) 3ms ✓ src/ui/components/TodoDisplay.test.tsx (6 tests) 78ms ✓ src/ui/commands/terminalSetupCommand.test.ts (5 tests) 6ms ✓ src/utils/startupWarnings.test.ts (4 tests) 16ms ✓ src/auth/providers/thirdParty/idealab.test.ts (4 tests) 18ms ✓ src/core/auth.test.ts (3 tests) 14ms ✓ src/utils/windowTitle.test.ts (7 tests) 4ms ✓ src/ui/components/BaseTextInput.test.tsx (3 tests) 123ms ✓ src/ui/utils/export/collect.test.ts (1 test) 6ms ✓ src/ui/components/IdeTrustChangeDialog.test.tsx (6 tests) 266ms ✓ src/utils/systemInfoFields.test.ts (2 tests) 25ms ✓ src/ui/components/shared/DescriptiveRadioButtonSelect.test.tsx (2 tests) 75ms ✓ src/auth/providers/oauth/openrouter.test.ts (2 tests) 5ms ✓ src/auth/providers/alibaba/tokenPlan.test.ts (2 tests) 19ms ✓ src/ui/components/Help.test.tsx (4 tests) 786ms ✓ Help Component > should render platform-specific keyboard shortcuts 385ms ✓ src/ui/components/messages/BtwMessage.test.tsx (5 tests) 159ms ✓ src/ui/commands/statuslineCommand.test.ts (4 tests) 43ms ✓ src/auth/providers/alibaba/codingPlan.test.ts (2 tests) 6ms ✓ src/ui/utils/latexRenderer.test.ts (4 tests) 65ms ✓ src/core/theme.test.ts (5 tests) 17ms ✓ src/ui/hooks/useManageModelsCommand.test.ts (3 tests) 88ms ✓ src/ui/commands/hooksCommand.test.ts (3 tests) 82ms ✓ src/ui/utils/export/normalize.test.ts (1 test) 33ms ✓ src/auth/providers/thirdParty/zai.test.ts (3 tests) 7ms ✓ src/ui/components/MemoryDialog.test.tsx (1 test) 56ms ✓ src/test-utils/mockCommandContext.test.ts (3 tests) 14ms ✓ src/ui/hooks/useModelCommand.test.ts (3 tests) 58ms ✓ src/commands/mcp.test.ts (3 tests) 23ms ✓ src/ui/hooks/useThemeCommand.test.ts (1 test) 94ms ✓ src/auth/providers/thirdParty/deepseek.test.ts (3 tests) 16ms ✓ src/ui/components/ShellConfirmationDialog.test.tsx (4 tests) 171ms ✓ src/ui/components/mcp/MCPHealthPill.test.tsx (6 tests) 8ms ✓ src/ui/commands/helpCommand.test.ts (2 tests) 22ms ✓ src/ui/components/views/ToolsList.test.tsx (3 tests) 216ms ✓ src/ui/commands/quitCommand.test.ts (1 test) 33ms ✓ src/auth/providers/thirdParty/minimax.test.ts (2 tests) 11ms ✓ src/ui/commands/dreamCommand.test.ts (1 test) 31ms ✓ src/services/prompt-processors/argumentProcessor.test.ts (2 tests) 10ms ✓ src/utils/acpModelUtils.test.ts (5 tests) 23ms ✓ src/ui/components/LoopDetectionConfirmation.test.tsx (2 tests) 82ms ✓ src/ui/components/GeminiRespondingSpinner.test.tsx (2 tests) 69ms ✓ src/ui/components/messages/StatusMessages.test.tsx (1 test) 59ms ✓ src/ui/commands/manageModelsCommand.test.ts (2 tests) 36ms ✓ src/ui/commands/editorCommand.test.ts (2 tests) 9ms ✓ src/ui/commands/themeCommand.test.ts (2 tests) 11ms ✓ src/acp-integration/runtimeOutputDirContext.test.ts (1 test) 4ms ✓ src/ui/commands/settingsCommand.test.ts (2 tests) 19ms ✓ src/ui/commands/permissionsCommand.test.ts (3 tests) 6ms ✓ src/ui/commands/authCommand.test.ts (2 tests) 6ms ✓ src/ui/commands/deleteCommand.test.ts (2 tests) 7ms ✓ src/ui/commands/trustCommand.test.ts (3 tests) 19ms ✓ src/ui/utils/InlineMarkdownRenderer.test.tsx (3 tests) 54ms ✓ src/utils/processUtils.test.ts (1 test) 4ms ✓ src/ui/commands/memoryCommand.test.ts (1 test) 11ms ✓ src/commands/extensions/uninstall.test.ts (1 test) 15ms ✓ src/ui/components/ExternalAuthProgress.test.tsx (1 test) 54ms ✓ src/ui/themes/detect-terminal-theme.test.ts (29 tests) 93704ms ✓ detectTerminalTheme > parseOscRgb > should parse rgb:RRRR/GGGG/BBBB format 4556ms ✓ detectTerminalTheme > parseOscRgb > should parse short hex components (rgb:RR/GG/BB) 3473ms ✓ detectTerminalTheme > parseOscRgb > should parse #RRGGBB format 3232ms ✓ detectTerminalTheme > parseOscRgb > should parse #RRRRGGGGBBBB format 4080ms ✓ detectTerminalTheme > parseOscRgb > should return undefined for invalid data 3353ms ✓ detectTerminalTheme > themeFromOscColor > should return "dark" for a dark background 3233ms ✓ detectTerminalTheme > themeFromOscColor > should return "light" for a light background 1755ms ✓ detectTerminalTheme > themeFromOscColor > should return undefined for unparseable data 394ms ✓ detectTerminalTheme > detectOsc11Theme > should return undefined when stdin is not a TTY 772ms ✓ detectTerminalTheme > detectOsc11Theme > should resolve "dark" when terminal reports a dark background 4237ms ✓ detectTerminalTheme > detectOsc11Theme > should resolve undefined on timeout and remove its data listener 3487ms ✓ detectTerminalTheme > detectOsc11Theme > should reassemble OSC 11 responses split across multiple data events 4038ms ✓ detectTerminalTheme > detectMacOSTheme > should return "dark" when macOS dark mode is active 4329ms ✓ detectTerminalTheme > detectMacOSTheme > should return "light" when macOS light mode is active 3612ms ✓ detectTerminalTheme > detectMacOSTheme > should return "light" when the "does not exist" message is on stderr only 3938ms ✓ detectTerminalTheme > detectMacOSTheme > should return undefined on timeout (do not assume Light Mode) 3330ms ✓ detectTerminalTheme > detectMacOSTheme > should return undefined when `defaults` is not on PATH 2410ms ✓ detectTerminalTheme > detectMacOSTheme > should return undefined on non-macOS platforms 3597ms ✓ detectTerminalTheme > detectFromColorFgBg > should return "dark" when background is dark (COLORFGBG=15;0) 3777ms ✓ detectTerminalTheme > detectFromColorFgBg > should return "light" when background is light (COLORFGBG=0;15) 3783ms ✓ detectTerminalTheme > detectFromColorFgBg > should return "light" when background is 7 (light gray) 3590ms ✓ detectTerminalTheme > detectFromColorFgBg > should return "dark" when background is 8 (dark gray) 3463ms ✓ detectTerminalTheme > detectFromColorFgBg > should handle three-part format (fg;extra;bg) 3397ms ✓ detectTerminalTheme > detectFromColorFgBg > should return undefined when COLORFGBG is not set 4166ms ✓ detectTerminalTheme > detectFromColorFgBg > should return undefined when COLORFGBG has invalid value 3456ms ✓ detectTerminalTheme > detectTerminalTheme (sync) > should prefer COLORFGBG over macOS detection 2971ms ✓ detectTerminalTheme > detectTerminalTheme (sync) > should fall back to macOS when COLORFGBG is not set 3254ms ✓ detectTerminalTheme > detectTerminalTheme (sync) > should fall back to COLORFGBG on non-macOS 1852ms ✓ detectTerminalTheme > detectTerminalTheme (sync) > should default to dark when no detection method works 2165ms ⎯⎯⎯⎯⎯⎯ Failed Tests 13 ⎯⎯⎯⎯⎯⎯⎯ FAIL src/ui/auth/AuthDialog.test.tsx > AuthDialog > should show preset providers in third-party provider options AssertionError: expected '┌────────────────────────────────────…' to contain 'Third-party Providers · Provider' - Expected + Received - Third-party Providers · Provider + ┌──────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ │ + │ Select Authentication Method │ + │ │ + │ 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 │ + │ │ + │ OAuth │ + │ Open a browser, sign in, and let the CLI finish provider setup │ + │ │ + │ Custom Provider │ + │ Manually connect a local server, proxy, or unsupported provider │ + │ │ + │ ──────────────────────────────────────────────────────────────────────────────── │ + │ │ + │ Terms of Services and Privacy Notice: │ + │ https://qwenlm.github.io/qwen-code-docs/en/users/support/tos-privacy/ │ + │ │ + └──────────────────────────────────────────────────────────────────────────────────────────────────┘ ❯ vi.waitFor.timeout src/ui/auth/AuthDialog.test.tsx:155:27 153| await vi.waitFor( 154| () => { 155| expect(lastFrame()).toContain(expectedText); | ^ 156| }, 157| { timeout: WAIT_FOR_TIMEOUT }, ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/13]⎯ 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) │ + │ │ + │ 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 }, ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/13]⎯ 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 AssertionError: expected '┌────────────────────────────────────…' to match /›\s*(?:\d+\.\s*)?OAuth/ - Expected: /›\s*(?:\d+\.\s*)?OAuth/ + Received: "┌──────────────────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ Select Authentication Method │ │ │ │ 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 │ │ │ │ OAuth │ │ Open a browser, sign in, and let the CLI finish provider setup │ │ │ │ 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 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/13]⎯ 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 }, ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/13]⎯ FAIL src/ui/auth/AuthDialog.test.tsx > AuthDialog Custom API Key Wizard > shows advanced config screen after entering model IDs 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 }, ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/13]⎯ FAIL src/ui/auth/AuthDialog.test.tsx > AuthDialog Custom API Key Wizard > passes generationConfig when advanced options are toggled AssertionError: expected '┌────────────────────────────────────…' to contain '"enable_thinking"' - Expected + Received - "enable_thinking" + ┌──────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ │ + │ Custom Provider · Step 6/6 · Review │ + │ │ + │ │ + │ The following JSON will be saved to settings.json: │ + │ │ + │ { │ + │ "env": { │ + │ "QWEN_CUSTOM_API_KEY_OPENAI_HTTPS_API_OPENAI_COM_V1": "sk-...test" │ + │ }, │ + │ "modelProviders": { │ + │ "openai": [ │ + │ { │ + │ "id": "model-1", │ + │ "name": "model-1", │ + │ "baseUrl": "https://api.openai.com/v1", │ + │ "envKey": "QWEN_CUSTOM_API_KEY_OPENAI_HTTPS_API_OPENAI_COM_V1", │ + │ "generationConfig": { │ + │ "modalities": { │ + │ "image": true, │ + │ "video": true, │ + │ "audio": true │ + │ } │ + │ } │ + │ } │ + │ ] │ + │ }, │ + │ "security": { │ + │ "auth": { │ + │ "selectedType": "openai" │ + │ } │ + │ }, │ + │ "model": { │ + │ "name": "model-1" │ + │ } │ + │ } │ + │ │ + │ Enter to save, Esc to go back │ + │ │ + └──────────────────────────────────────────────────────────────────────────────────────────────────┘ ❯ src/ui/auth/AuthDialog.test.tsx:1721:23 1719| const frame = lastFrame(); 1720| expect(frame).toContain('"generationConfig"'); 1721| expect(frame).toContain('"enable_thinking"'); | ^ 1722| expect(frame).toContain('"image": true'); 1723| expect(frame).toContain('"video": true'); ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[6/13]⎯ FAIL src/ui/components/StandaloneSessionPicker.test.tsx > SessionPicker > Search > Backspace edits the query; emptying it returns to list mode AssertionError: expected '╭────────────────────────────────────…' to contain 'Press / to search' - Expected + Received - Press / to search + ╭──────────────────────────────────────────────────────────────────────────╮ + │ Resume Session │ + │ Search: ▌ │ + │──────────────────────────────────────────────────────────────────────────│ + │ login bug │ + │ just now · 1 message · main │ + │ │ + │ unrelated │ + │ just now · 1 message · main │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │──────────────────────────────────────────────────────────────────────────│ + │ Type to search · Enter to commit · Esc to clear │ + ╰──────────────────────────────────────────────────────────────────────────╯ ❯ src/ui/components/StandaloneSessionPicker.test.tsx:684:22 682| expect(output).toContain('login bug'); 683| expect(output).toContain('unrelated'); 684| expect(output).toContain('Press / to search'); | ^ 685| expect(onCancel).not.toHaveBeenCalled(); 686| ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[7/13]⎯ FAIL src/ui/components/StandaloneSessionPicker.test.tsx > SessionPicker > Search > Enter in search commits the filter; second Enter selects AssertionError: expected "spy" to be called with arguments: [ 'matching' ] Number of calls: 0 ❯ src/ui/components/StandaloneSessionPicker.test.tsx:825:24 823| stdin.write('\r'); 824| await wait(30); 825| expect(onSelect).toHaveBeenCalledWith('matching'); | ^ 826| }); 827| ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[8/13]⎯ FAIL src/ui/components/StandaloneSessionPicker.test.tsx > SessionPicker > Search > Enter in search with no matches stays in search AssertionError: expected "spy" to not be called at all, but actually been called 1 times Received: 1st spy call: Array [ "s1", ] Number of calls: 1 ❯ src/ui/components/StandaloneSessionPicker.test.tsx:861:28 859| expect(output).toContain('Search:'); 860| expect(output).toContain('No sessions match'); 861| expect(onSelect).not.toHaveBeenCalled(); | ^ 862| }); 863| ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[9/13]⎯ FAIL src/ui/components/StandaloneSessionPicker.test.tsx > SessionPicker > Search > ↑/↓ from search drops to list mode while keeping the filter AssertionError: expected '╭────────────────────────────────────…' to contain 'Filter:' - Expected + Received - Filter: + ╭──────────────────────────────────────────────────────────────────────────╮ + │ Resume Session (2 matches) │ + │ Search: login▌ │ + │──────────────────────────────────────────────────────────────────────────│ + │ login flow review │ + │ just now · 1 message · main │ + │ │ + │ login bug fix │ + │ just now · 1 message · main │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │──────────────────────────────────────────────────────────────────────────│ + │ Type to search · Enter to commit · Esc to clear │ + ╰──────────────────────────────────────────────────────────────────────────╯ ❯ src/ui/components/StandaloneSessionPicker.test.tsx:914:22 912| // "Filter:" indicator replaces "Search:", but the list is 913| // still narrowed to the two login matches. 914| expect(output).toContain('Filter:'); | ^ 915| expect(output).not.toContain('Search:'); 916| expect(output).toContain('login flow review'); ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[10/13]⎯ FAIL src/ui/components/StandaloneSessionPicker.test.tsx > SessionPicker > Search > Esc in filtered-list clears the query first, then cancels AssertionError: expected '╭────────────────────────────────────…' to contain 'Press / to search' - Expected + Received - Press / to search + ╭──────────────────────────────────────────────────────────────────────────╮ + │ Resume Session (1 matches) │ + │ Filter: login │ + │──────────────────────────────────────────────────────────────────────────│ + │ › login flow │ + │ just now · 1 message · main │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │ │ + │──────────────────────────────────────────────────────────────────────────│ + │ ↑↓ to navigate · Type to search · Esc to cancel │ + ╰──────────────────────────────────────────────────────────────────────────╯ ❯ src/ui/components/StandaloneSessionPicker.test.tsx:1083:22 1081| await wait(30); 1082| output = lastFrame() ?? ''; 1083| expect(output).toContain('Press / to search'); | ^ 1084| expect(output).toContain('login flow'); 1085| expect(output).toContain('unrelated'); ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[11/13]⎯ Test Files 2 failed | 335 passed (337) Tests 13 failed | 5360 passed | 7 skipped (5380) Start at 12:05:54 Duration 147.98s (transform 83.49s, setup 15.93s, collect 2111.62s, tests 248.20s, environment 272.74s, prepare 80.20s) 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.15.9 npm error location /startdir/src/qwen-code/packages/cli npm error command failed npm error command sh -c vitest run > @qwen-code/qwen-code-core@0.15.9 test > vitest run RUN v3.2.4 /startdir/src/qwen-code/packages/core Coverage enabled with v8 ✓ src/core/openaiContentGenerator/pipeline.test.ts (33 tests) 46ms ✓ src/services/shellExecutionService.test.ts (70 tests) 565ms ✓ src/utils/fileUtils.test.ts (83 tests) 441ms ✓ src/hooks/hookEventHandler.test.ts (107 tests) 142ms +----------------- Qwen OAuth Device Authorization ------------------+ | | | Please visit the following URL in your browser to authorize: | | | | https://chat.qwen.ai/device?code=TEST123 | | | | Waiting for authorization to complete... | | | +--------------------------------------------------------------------+ +----------------- Qwen OAuth Device Authorization ------------------+ | | | Please visit the following URL in your browser to authorize: | | | | https://chat.qwen.ai/device?code=TEST123 | | | | Waiting for authorization to complete... | | | +--------------------------------------------------------------------+ +----------------- Qwen OAuth Device Authorization ------------------+ | | | Please visit the following URL in your browser to authorize: | | | | https://chat.qwen.ai/device?code=TEST123 | | | | Waiting for authorization to complete... | | | +--------------------------------------------------------------------+ +----------------- Qwen OAuth Device Authorization ------------------+ | | | Please visit the following URL in your browser to authorize: | | | | https://chat.qwen.ai/device?code=TEST123 | | | | Waiting for authorization to complete... | | | +--------------------------------------------------------------------+ +----------------- Qwen OAuth Device Authorization ------------------+ | | | Please visit the following URL in your browser to authorize: | | | | https://chat.qwen.ai/device?code=TEST123 | | | | Waiting for authorization to complete... | | | +--------------------------------------------------------------------+ ✓ src/qwen/qwenOAuth2.test.ts (83 tests) 2148ms ✓ getQwenOAuthClient - Enhanced Error Scenarios > should handle different authentication failure reasons - timeout 2053ms ✓ src/core/anthropicContentGenerator/converter.test.ts (43 tests) 25ms ✓ src/services/chatCompressionService.test.ts (48 tests) 163ms ✓ src/models/modelsConfig.test.ts (57 tests) 76ms ✓ src/mcp/oauth-provider.test.ts (22 tests) 289ms ✓ src/services/sessionService.test.ts (39 tests) 337ms ✓ src/tools/ripGrep.test.ts (58 tests) 658ms ✓ src/tools/lsp.test.ts (70 tests) 1311ms ✓ src/tools/read-file.test.ts (52 tests) 515ms ✓ src/core/anthropicContentGenerator/anthropicContentGenerator.test.ts (36 tests) 7634ms ✓ AnthropicContentGenerator > passes a QwenCode User-Agent header to the Anthropic SDK 862ms ✓ AnthropicContentGenerator > per-request anthropic-beta header > merges user-supplied customHeaders[anthropic-beta] with computed flags (no overwrite) 346ms ✓ AnthropicContentGenerator > generateContent > builds request with config sampling params (config overrides request) and thinking budget 306ms ✓ AnthropicContentGenerator > generateContent > still clamps effort: 'max' when model name says 'deepseek' but hostname is api.anthropic.com 316ms ✓ src/services/loopDetectionService.test.ts (43 tests) 700ms ✓ LoopDetectionService > Content Loop Detection > should not detect a loop for random content 385ms ✓ src/agents/background-tasks.test.ts (52 tests) 107ms ✓ src/utils/memoryImportProcessor.test.ts (28 tests) 83ms ✓ src/hooks/hookSystem.test.ts (66 tests) 182ms ✓ src/tools/monitor.test.ts (71 tests) 303ms ✓ src/core/openaiContentGenerator/converter.test.ts (80 tests) 126ms ✓ src/telemetry/loggers.test.ts (45 tests) 119ms ✓ src/tools/edit.test.ts (75 tests) 712ms ✓ src/permissions/permission-manager.test.ts (216 tests) 495ms ✓ src/tools/agent/agent.test.ts (60 tests) 584ms ✓ src/qwen/qwenContentGenerator.test.ts (44 tests) 525ms ✓ src/config/config.test.ts (132 tests) 1107ms ✓ src/skills/skill-manager.test.ts (67 tests) 439ms ✓ src/tools/write-file.test.ts (44 tests) 801ms ✓ src/subagents/subagent-manager.test.ts (71 tests) 787ms ✓ src/core/coreToolScheduler.test.ts (99 tests) 1231ms ✓ src/tools/mcp-tool.test.ts (53 tests) 724ms (node:10836) [UNDICI-EHPA] Warning: EnvHttpProxyAgent is experimental, expect them to change at any time. (Use `node --trace-warnings ...` to show where the warning was created) ✓ src/ide/ide-client.test.ts (32 tests) 119ms ✓ src/utils/shell-utils.test.ts (124 tests) 118ms ✓ src/qwen/sharedTokenManager.test.ts (31 tests) 360ms ✓ src/core/client.test.ts (83 tests) 2738ms ✓ src/utils/paths.test.ts (116 tests | 1 skipped) 80ms ✓ src/lsp/NativeLspService.test.ts (14 tests) 146ms ✓ src/services/commitAttribution.test.ts (58 tests) 31ms ✓ src/hooks/hookAggregator.test.ts (39 tests) 15ms ✓ src/agents/background-agent-resume.test.ts (16 tests) 386ms ✓ src/hooks/hookPlanner.test.ts (50 tests) 41ms ✓ src/tools/shell.test.ts (171 tests) 3411ms ✓ src/core/openaiContentGenerator/streamingToolCallParser.test.ts (59 tests) 53ms ✓ src/agents/runtime/agent-headless.test.ts (26 tests | 2 skipped) 3427ms ✓ subagent.ts > AgentHeadless > create (Tool Validation) > should create a AgentHeadless successfully with minimal config 734ms ✓ subagent.ts > AgentHeadless > execute - Tool Restriction Enforcement (Issue #1121) > should mark truncated subagent write_file calls as output-truncated errors 393ms ✓ src/utils/editor.test.ts (134 tests) 74ms ✓ src/tools/skill.test.ts (42 tests) 126ms ✓ src/core/toolHookTriggers.test.ts (47 tests) 48ms ✓ src/services/monitorRegistry.test.ts (42 tests) 239ms ✓ src/hooks/hookRegistry.test.ts (30 tests) 112ms ✓ src/utils/retry.test.ts (56 tests) 155ms ✓ src/skills/skill-load.test.ts (49 tests) 111ms ✓ src/core/openaiContentGenerator/provider/dashscope.test.ts (40 tests) 67ms ✓ src/core/logger.test.ts (38 tests) 335ms ✓ src/telemetry/uiTelemetry.test.ts (26 tests) 78ms ✓ src/extension/extensionSettings.test.ts (23 tests) 322ms ✓ src/core/prompts.test.ts (53 tests) 239ms ✓ src/lsp/NativeLspService.integration.test.ts (30 tests) 55ms ✓ src/models/modelRegistry.test.ts (50 tests) 33ms ✓ src/utils/filesearch/fileSearch.test.ts (27 tests) 349ms ✓ src/core/geminiChat.test.ts (59 tests) 7073ms ✓ GeminiChat > should correctly retry and append to an existing history mid-conversation 2038ms ✓ GeminiChat > should retry if the model returns a completely empty stream (no chunks) 2016ms ✓ GeminiChat > should discard valid partial content from a failed attempt upon retry 2051ms ✓ src/services/fileReadCache.test.ts (32 tests) 74ms ✓ src/telemetry/qwen-logger/qwen-logger.test.ts (33 tests) 83ms ✓ src/agents/backends/ITermBackend.test.ts (46 tests) 135ms ✓ src/utils/pdf.test.ts (34 tests) 64ms ✓ src/models/modelConfigResolver.test.ts (45 tests) 42ms ✓ src/utils/workspaceContext.test.ts (44 tests) 127ms ✓ src/services/gitWorktreeService.test.ts (20 tests) 99ms ✓ src/utils/sessionStorageUtils.test.ts (42 tests) 47ms ✓ src/agents/backends/InProcessBackend.test.ts (33 tests) 219ms ✓ src/agents/arena/ArenaAgentClient.test.ts (21 tests) 82ms ✓ src/services/sessionService.rename.test.ts (16 tests) 122ms ✓ src/hooks/sessionHooksManager.test.ts (32 tests) 62ms ✓ src/services/fileSystemService.test.ts (41 tests) 135ms ✓ src/extension/extensionManager.test.ts (42 tests) 400ms ✓ src/utils/rulesDiscovery.test.ts (33 tests) 111ms ✓ src/utils/memoryDiscovery.test.ts (16 tests) 222ms ✓ src/core/loggingContentGenerator/loggingContentGenerator.test.ts (14 tests) 192ms ✓ src/utils/filesearch/crawler.test.ts (21 tests) 84ms ✓ src/agents/backends/TmuxBackend.test.ts (27 tests) 151ms ✓ src/utils/systemEncoding.test.ts (41 tests) 28ms ✓ src/permissions/shell-semantics.test.ts (52 tests) 83ms ✓ src/core/openaiContentGenerator/provider/deepseek.test.ts (25 tests) 16ms ✓ src/agents/agent-transcript.test.ts (23 tests) 104ms ✓ src/extension/variables.test.ts (20 tests) 58ms ✓ src/utils/openaiLogger.test.ts (30 tests) 314ms ✓ src/utils/pathReader.test.ts (17 tests) 87ms ✓ src/hooks/asyncHookRegistry.test.ts (20 tests) 26ms ✓ src/tools/task-stop.test.ts (14 tests) 164ms ✓ src/core/turn.test.ts (24 tests) 31ms ✓ src/tools/ls.test.ts (28 tests) 540ms ✓ src/mcp/oauth-token-storage.test.ts (28 tests) 19ms ✓ src/services/toolUseSummary.test.ts (35 tests) 83ms ✓ src/mcp/oauth-utils.test.ts (27 tests) 32ms ✓ src/core/openaiContentGenerator/provider/default.test.ts (21 tests) 37ms ✓ src/memory/manager.test.ts (22 tests) 134ms ✓ src/hooks/hookRunner.test.ts (31 tests) 95ms ✓ src/core/tokenLimits.test.ts (55 tests) 15ms ✓ src/services/chatRecordingService.test.ts (24 tests) 46ms ✓ src/telemetry/sdk.test.ts (23 tests) 104ms ✓ src/tools/todoWrite.test.ts (22 tests) 61ms ✓ src/subagents/validation.test.ts (41 tests) 58ms ✓ src/utils/shellAstParser.test.ts (144 tests) 299ms ✓ src/utils/rateLimit.test.ts (35 tests) 100ms ✓ src/telemetry/log-to-span-processor.test.ts (20 tests) 86ms ✓ src/utils/schemaValidator.test.ts (30 tests) 218ms ✓ src/ide/ideContext.test.ts (23 tests) 61ms ✓ src/telemetry/metrics.test.ts (38 tests) 2214ms ✓ src/hooks/functionHookRunner.test.ts (20 tests) 153ms ✓ src/config/storage.test.ts (40 tests) 28ms ✓ src/agents/runtime/agent-interactive.test.ts (19 tests) 676ms ✓ src/core/geminiContentGenerator/geminiContentGenerator.test.ts (11 tests) 53ms ✓ src/services/microcompaction/microcompact.test.ts (18 tests) 21ms ✓ src/core/baseLlmClient.test.ts (18 tests) 47ms ✓ src/utils/readManyFiles.test.ts (16 tests) 96ms ✓ src/extension/claude-converter.test.ts (16 tests) 101ms ✓ src/utils/ignorePatterns.test.ts (28 tests) 20ms ✓ src/tools/tool-registry.test.ts (17 tests) 132ms ✓ src/core/openaiContentGenerator/pipeline.concurrent.test.ts (2 tests) 18ms ✓ src/services/chatRecordingService.autoTitle.test.ts (15 tests) 147ms ✓ src/utils/notebook.test.ts (15 tests) 62ms ✓ src/tools/grep.test.ts (35 tests) 3109ms ✓ GrepTool > Result limiting > should show all results when no limit is specified 919ms ✓ src/utils/partUtils.test.ts (37 tests) 37ms ✓ src/agents/runtime/agent-statistics.test.ts (32 tests) 32ms ✓ src/tools/glob.test.ts (44 tests) 4490ms ✓ GlobTool > workspace boundary validation > should validate search paths are within workspace boundaries 367ms ✓ GlobTool > multi-directory workspace > should use single directory description when only one workspace dir 360ms ✓ src/core/openaiContentGenerator/errorHandler.test.ts (34 tests) 54ms ✓ src/tools/mcp-client.test.ts (30 tests) 45ms ✓ src/core/__tests__/openaiTimeoutHandling.test.ts (12 tests) 175ms ✓ src/services/sessionTitle.test.ts (15 tests) 26ms ✓ src/extension/github.test.ts (30 tests) 260ms ✓ src/utils/request-tokenizer/textTokenizer.test.ts (31 tests) 88ms ✓ src/utils/getFolderStructure.test.ts (15 tests) 153ms ✓ src/agents/backends/iterm-it2.test.ts (19 tests) 28ms ✓ src/tools/modifiable-tool.test.ts (11 tests) 63ms ✓ src/utils/generateContentResponseUtilities.test.ts (29 tests) 8ms ✓ src/services/backgroundShellRegistry.test.ts (24 tests) 71ms ✓ src/agents/arena/ArenaManager.test.ts (25 tests) 3671ms ✓ ArenaManager > backend initialization > should emit SESSION_UPDATE with type warning when backend detection returns warning 534ms ✓ ArenaManager > chat history forwarding > should pass chatHistory to backend spawnAgent calls 521ms ✓ ArenaManager > chat history forwarding > should pass undefined chatHistory when not provided 529ms ✓ ArenaManager > active session lifecycle > collects diff summaries and fallback approach summaries 1017ms ✓ ArenaManager > active session lifecycle > cancel should stop backend and move session to CANCELLED 519ms ✓ ArenaManager > active session lifecycle > cleanup should release backend and worktree resources after start 503ms ✓ src/core/openaiContentGenerator/taggedThinkingParser.test.ts (27 tests) 23ms ✓ src/confirmation-bus/message-bus.test.ts (15 tests) 180ms ✓ src/core/openaiContentGenerator/openaiContentGenerator.test.ts (13 tests) 206ms ✓ src/services/cronScheduler.test.ts (27 tests) 110ms ✓ src/utils/environmentContext.test.ts (12 tests) 225ms ✓ src/services/sessionService.corruption.test.ts (11 tests) 49ms ✓ src/mcp/token-storage/file-token-storage.test.ts (16 tests) 1188ms ✓ src/services/gitService.test.ts (14 tests) 63ms ✓ src/mcp/token-storage/keychain-token-storage.test.ts (24 tests) 4538ms ✓ KeychainTokenStorage > with keychain available > setCredentials > should save credentials to keychain 420ms ✓ KeychainTokenStorage > with keychain available > getAllCredentials > should return a map of all valid credentials 379ms ✓ src/followup/followupState.test.ts (15 tests) 57ms ✓ src/output/json-formatter.test.ts (15 tests) 38ms ✓ src/tools/mcp-client-manager.test.ts (10 tests) 68ms ✓ src/utils/terminalSerializer.test.ts (20 tests) 194ms ✓ src/mcp/token-storage/hybrid-token-storage.test.ts (11 tests) 74ms ✓ src/utils/debugLogger.test.ts (17 tests) 53ms ✓ src/hooks/httpHookRunner.test.ts (10 tests) 108ms ✓ src/utils/gitIgnoreParser.test.ts (20 tests) 166ms ✓ src/utils/truncation.test.ts (10 tests) 39ms ✓ src/utils/envVarResolver.test.ts (16 tests) 48ms ✓ src/utils/request-tokenizer/requestTokenizer.test.ts (11 tests) 20ms ✓ src/models/content-generator-config.test.ts (13 tests) 37ms ✓ src/services/fileReadCache.integration.test.ts (3 tests) 165ms ✓ src/utils/secure-browser-launcher.test.ts (14 tests) 19ms ✓ src/utils/subagentGenerator.test.ts (9 tests) 135ms ✓ src/core/openaiContentGenerator/provider/openrouter.test.ts (12 tests) 17ms ✓ src/telemetry/config.test.ts (16 tests) 14ms ✓ src/utils/editHelper.test.ts (17 tests) 9ms ✓ src/services/fileDiscoveryService.test.ts (13 tests) 60ms ✓ src/hooks/envInterpolator.test.ts (30 tests) 19ms ✓ src/tools/web-fetch.test.ts (13 tests) 140ms ✓ src/utils/errorParsing.test.ts (18 tests) 6ms ✓ src/utils/cronParser.test.ts (24 tests) 50ms ✓ src/tools/tools.test.ts (11 tests) 14ms ✓ src/tools/exitPlanMode.test.ts (22 tests) 17ms ✓ src/utils/forkedAgent.agent.test.ts (6 tests) 51ms ✓ src/tools/agent/agent-override.test.ts (8 tests) 67ms ✓ src/utils/jsonl-utils.test.ts (19 tests) 74ms ✓ src/utils/yaml-parser.test.ts (18 tests) 10ms ✓ src/followup/overlayFs.test.ts (15 tests) 90ms ✓ src/core/modalityDefaults.test.ts (30 tests) 12ms ✓ src/memory/memoryLifecycle.integration.test.ts (1 test) 103ms ✓ src/hooks/registerSkillHooks.test.ts (7 tests) 6ms ✓ src/hooks/urlValidator.test.ts (20 tests) 26ms ✓ src/hooks/ssrfGuard.test.ts (21 tests) 50ms ✓ src/mcp/token-storage/base-token-storage.test.ts (12 tests) 14ms ✓ src/mcp/sa-impersonation-provider.test.ts (8 tests) 82ms ✓ src/ide/ide-installer.test.ts (10 tests) 24ms ❯ src/skills/skill-activation.test.ts (20 tests | 1 failed) 9070ms ✓ splitConditionalSkills > treats skills without paths as unconditional 6ms ✓ splitConditionalSkills > treats empty paths array as unconditional 0ms ✓ splitConditionalSkills > classifies skills with non-empty paths as conditional 1ms ✓ SkillActivationRegistry > returns empty when no conditional skills are registered 0ms ✓ SkillActivationRegistry > activates a conditional skill when a matching path is touched 3ms ✓ SkillActivationRegistry > does not re-activate an already-active skill on subsequent matches 0ms ✓ SkillActivationRegistry > returns empty for paths that do not match any skill 0ms ✓ SkillActivationRegistry > activates multiple skills whose globs overlap on a single file 14ms ✓ SkillActivationRegistry > accepts relative file paths by resolving against the project root 0ms ✓ SkillActivationRegistry > ignores paths outside the project root 0ms ✓ SkillActivationRegistry > supports multiple glob patterns per skill (OR semantics) 0ms ✓ SkillActivationRegistry > activates broad globs on dotfiles too (dot: true semantics) 0ms ✓ SkillActivationRegistry > survives an invalid picomatch pattern (drops it, keeps the rest) 0ms ✓ SkillActivationRegistry > rejects an absolute relative path (Windows cross-drive case) 0ms ✓ resolveProjectRelativePath > returns the forward-slash-normalized relative path for in-project files (POSIX) 0ms ✓ resolveProjectRelativePath > returns null for paths outside the project root (POSIX, `..` prefix) 0ms ✓ resolveProjectRelativePath > returns null for Windows cross-drive paths (different drive letter) 0ms ✓ resolveProjectRelativePath > normalizes backslashes for in-project Windows paths 0ms × extractToolFilePaths → SkillActivationRegistry integration > activates a skill keyed on src/**/*.ts from glob({ path: "src", pattern: "**/*.ts" }) 5031ms → Test timed out in 5000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ✓ extractToolFilePaths → SkillActivationRegistry integration > does NOT activate from external glob.path (project-root guard wins) 4008ms ✓ src/extension/marketplace.test.ts (22 tests) 77ms ✓ src/memory/relevanceSelector.test.ts (7 tests) 80ms ✓ src/core/nonInteractiveToolExecutor.test.ts (8 tests) 106ms ✓ src/utils/forkedAgent.cache.test.ts (9 tests) 20ms ✓ src/tools/diffOptions.test.ts (9 tests) 20ms ✓ src/lsp/LspConfigLoader.test.ts (6 tests) 25ms ✓ src/ide/process-utils.test.ts (6 tests) 7ms ✓ src/extension/gemini-converter.test.ts (9 tests) 17ms ✓ src/utils/request-tokenizer/imageTokenizer.test.ts (9 tests) 32ms ✓ src/utils/filesearch/ignore.test.ts (12 tests) 91ms ✓ src/ide/detect-ide.test.ts (14 tests) 8ms ✓ src/tools/send-message.test.ts (7 tests) 163ms ✓ src/utils/safeJsonParse.test.ts (14 tests) 8ms ✓ src/extension/override.test.ts (16 tests) 31ms ✓ src/prompts/prompt-registry.test.ts (11 tests) 92ms ✓ src/utils/quotaErrorDetection.test.ts (16 tests) 35ms ✓ src/extension/settings.test.ts (10 tests) 60ms ✓ src/services/generatedFiles.test.ts (11 tests) 24ms ✓ src/utils/textUtils.test.ts (20 tests) 17ms ✓ src/utils/runtimeFetchOptions.test.ts (8 tests) 12ms ✓ src/tools/askUserQuestion.test.ts (11 tests) 27ms ✓ src/agents/runtime/agent-context.test.ts (12 tests) 21ms ✓ src/utils/errorReporting.test.ts (5 tests) 80ms ✓ src/utils/sideQuery.test.ts (4 tests) 135ms ✓ src/utils/nextSpeakerChecker.test.ts (10 tests) 67ms ✓ src/utils/configResolver.test.ts (12 tests) 9ms ✓ src/utils/filesearch/crawlCache.test.ts (9 tests) 22ms ✓ src/subagents/subagent-manager-override.test.ts (4 tests) 16ms ✓ src/extension/npm.test.ts (22 tests) 15ms ✓ src/memory/store.test.ts (5 tests) 97ms ✓ src/services/attributionTrailer.test.ts (4 tests) 31ms ✓ src/utils/schemaConverter.test.ts (12 tests) 12ms ✓ src/agents/runtime/agent-core.test.ts (5 tests) 45ms ✓ src/agents/arena/diff-summary.test.ts (8 tests) 26ms ✓ src/utils/proxyUtils.test.ts (18 tests) 10ms ✓ src/memory/extract.test.ts (3 tests) 80ms ✓ src/subagents/builtin-agents.test.ts (8 tests) 19ms ✓ src/utils/installationManager.test.ts (4 tests) 15ms ✓ src/mcp/google-auth-provider.test.ts (8 tests) 24ms ✓ src/core/openaiContentGenerator/provider/minimax.test.ts (9 tests) 6ms ✓ src/utils/shellReadOnlyChecker.test.ts (33 tests) 13ms ✓ src/memory/recall.test.ts (5 tests) 42ms ✓ src/hooks/combinedAbortSignal.test.ts (8 tests) 332ms ✓ src/core/openaiContentGenerator/provider/modelscope.test.ts (5 tests) 6ms ✓ src/lsp/LspServerManager.test.ts (6 tests) 3ms ✓ src/extension/storage.test.ts (5 tests) 12ms ✓ src/utils/errors.test.ts (12 tests) 13ms ✓ src/memory/extractAgent.test.ts (1 test) 69ms ✓ src/core/geminiRequest.test.ts (12 tests) 4ms ✓ src/skills/symlinkScope.test.ts (5 tests) 33ms ✓ src/utils/toml-to-markdown-converter.test.ts (10 tests) 8ms ✓ src/followup/speculationToolGate.test.ts (26 tests) 172ms ✓ src/memory/prompt.test.ts (5 tests) 5ms ✓ src/memory/scan.test.ts (2 tests) 37ms ✓ src/utils/thoughtUtils.test.ts (11 tests) 35ms ✓ src/telemetry/sanitize.test.ts (10 tests) 23ms ✓ src/core/permissionFlow.test.ts (17 tests) 26ms ✓ src/utils/safeJsonStringify.test.ts (8 tests) 4ms ✓ src/utils/projectSummary.test.ts (3 tests) 33ms ✓ src/utils/qwenIgnoreParser.test.ts (2 tests) 13ms ✓ src/core/contentGenerator.test.ts (4 tests) 84ms ✓ src/memory/indexer.test.ts (2 tests) 136ms ✓ src/utils/asyncMessageQueue.test.ts (7 tests) 4ms ✓ src/utils/atomicFileWrite.test.ts (5 tests) 66ms ✓ src/utils/fetch.test.ts (3 tests) 5ms ✓ src/telemetry/file-exporters.test.ts (1 test) 10ms ✓ src/tools/cron-create.test.ts (5 tests) 108ms ✓ src/utils/filesearch/result-cache.test.ts (3 tests) 4ms ✓ src/core/permission-helpers.test.ts (4 tests) 20ms ✓ src/memory/const.test.ts (3 tests) 4ms ✓ src/telemetry/telemetry-utils.test.ts (6 tests) 13ms ✓ src/subagents/types.test.ts (3 tests) 16ms ✓ src/memory/entries.test.ts (1 test) 4ms ✓ src/tools/cron-list.test.ts (3 tests) 77ms ✓ src/tools/cron-delete.test.ts (4 tests) 90ms ✓ src/utils/internalPromptIds.test.ts (6 tests) 41ms ✓ src/index.test.ts (1 test) 27ms ✓ src/memory/dream.test.ts (3 tests) 49ms ✓ src/services/chatRecordingService.customTitle.test.ts (6 tests) 118ms ✓ src/core/geminiContentGenerator/index.test.ts (3 tests) 22ms ✓ src/followup/smoke.test.ts (21 tests) 40ms ✓ src/memory/dreamAgentPlanner.test.ts (5 tests) 53ms ✓ src/subagents/model-selection.test.ts (6 tests) 18ms ✓ src/utils/ripgrepUtils.test.ts (6 tests) 4ms ✓ src/utils/tool-utils.test.ts (19 tests) 7ms ✓ src/memory/extractionAgentPlanner.test.ts (5 tests) 10ms ✓ src/followup/suggestionGenerator.test.ts (16 tests) 11ms ✓ src/followup/speculation.test.ts (7 tests) 5ms ✓ src/agents/backends/tmux-commands.test.ts (8 tests) 5ms ✓ src/telemetry/telemetry.test.ts (2 tests) 23ms ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ FAIL src/skills/skill-activation.test.ts > extractToolFilePaths → SkillActivationRegistry integration > activates a skill keyed on src/**/*.ts from glob({ path: "src", pattern: "**/*.ts" }) Error: Test timed out in 5000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ src/skills/skill-activation.test.ts:250:3 248| // to activate skills keyed on the joined effective selector — there 249| // was no test exercising the path that mattered. 250| it('activates a skill keyed on src/**/*.ts from glob({ path: "src", … | ^ 251| const { extractToolFilePaths } = await import( 252| '../core/coreToolScheduler.js' ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed | 273 passed (274) Tests 1 failed | 7246 passed | 3 skipped (7250) Start at 12:08:24 Duration 59.05s (transform 66.33s, setup 13.31s, collect 790.33s, tests 86.62s, environment 153ms, prepare 70.28s) JUNIT report written to /startdir/src/qwen-code/packages/core/junit.xml npm error Lifecycle script `test` failed with error: npm error code 1 npm error path /startdir/src/qwen-code/packages/core npm error workspace @qwen-code/qwen-code-core@0.15.9 npm error location /startdir/src/qwen-code/packages/core npm error command failed npm error command sh -c vitest run > @qwen-code/sdk@0.1.7 test > vitest run RUN v1.6.1 /startdir/src/qwen-code/packages/sdk-typescript ✓ test/unit/cliPath.test.ts (33 tests) 33ms 2026-05-11 12:09:26 [ERROR] [ProcessTransport] Failed to initialize CLI process: Transport start aborted 2026-05-11 12:09:26 [ERROR] [ProcessTransport] Failed to initialize CLI process: Transport start aborted 2026-05-11 12:09:26 [ERROR] [ProcessTransport] CLI process error: Spawn failed 2026-05-11 12:09:26 [ERROR] [ProcessTransport] CLI process exited with code 1 2026-05-11 12:09:26 [ERROR] [ProcessTransport] CLI process terminated by signal SIGTERM 2026-05-11 12:09:26 [ERROR] [ProcessTransport] CLI process error: Process error 2026-05-11 12:09:26 [DEBUG] [ProcessTransport] Spawning CLI (native): qwen --input-format stream-json --output-format stream-json --channel=SDK 2026-05-11 12:09:26 [ERROR] [ProcessTransport] CLI process exited with code 1 2026-05-11 12:09:26 [ERROR] [ProcessTransport] CLI process error: Process error 2026-05-11 12:09:26 [ERROR] [ProcessTransport] CLI process exited with code 1 2026-05-11 12:09:26 [ERROR] [ProcessTransport] CLI process terminated by signal SIGKILL 2026-05-11 12:09:26 [INFO] [ProcessTransport] CLI process started successfully 2026-05-11 12:09:26 [DEBUG] [ProcessTransport] Forking CLI (node): /path/to/cli.js --input-format stream-json --output-format stream-json --channel=SDK 2026-05-11 12:09:26 [INFO] [ProcessTransport] CLI process started successfully ✓ test/unit/ProcessTransport.test.ts (71 tests) 135ms ✓ test/unit/createSdkMcpServer.test.ts (18 tests) 40ms 2026-05-11 12:09:26 [ERROR] [Query] Control response error for request 48d9c9cb-422b-48dc-9849-e402ab011885: Test error 2026-05-11 12:09:26 [ERROR] [Query] Initialization error: Test error ✓ test/unit/Stream.test.ts (22 tests) 16ms ✓ test/unit/createQuery.test.ts (3 tests) 56ms 2026-05-11 12:09:38 [ERROR] [Query] Initialization error: Query is closed 2026-05-11 12:09:49 [ERROR] [Query] Control response error for request 76c3dc55-6121-4f96-8ae6-4404d4fa36cc: Malformed error ✓ test/unit/Query.test.ts (54 tests) 23883ms Test Files 6 passed (6) Tests 201 passed (201) Start at 12:09:25 Duration 24.75s (transform 996ms, setup 2ms, collect 1.60s, tests 24.16s, environment 1ms, prepare 538ms) > qwen-code-vscode-ide-companion@0.15.9 test > vitest run RUN v3.2.4 /startdir/src/qwen-code/packages/vscode-ide-companion stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > current_mode_update handling > calls onModeChanged callback with mode id [SessionUpdateHandler] Processing update type: current_mode_update stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > agent_message_chunk handling > calls onStreamChunk callback with text content [SessionUpdateHandler] Processing update type: agent_message_chunk stdout | src/services/qwenSessionUpdateHandler.test.ts > QwenSessionUpdateHandler > agent_message_chunk handling > 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 (16 tests) 42ms ✓ src/webview/utils/discontinuedModel.test.ts (12 tests) 12ms ✓ src/webview/utils/slashCommandUtils.test.ts (6 tests) 4ms 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' } ✓ src/webview/providers/WebViewContent.test.ts (5 tests) 8ms 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) 42ms ✓ src/commands/index.test.ts (4 tests) 34ms ✓ src/webview/utils/utils.test.ts (15 tests) 5ms ✓ src/utils/acpModelInfo.test.ts (15 tests) 20ms ✓ src/services/sessionExportService.test.ts (9 tests) 48ms ✓ src/webview/providers/chatViewRegistration.test.ts (6 tests) 27ms ✓ src/services/acpConnection.test.ts (16 tests) 41ms ✓ src/webview/hooks/useWebViewMessages.test.ts (1 test) 23ms ✓ src/webview/hooks/useMessageSubmit.test.ts (17 tests) 6ms stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > searches files using fuzzy search when query is provided [FileMessageHandler] handleGetWorkspaceFiles start { query: 'txt', requestId: 7 } [FileMessageHandler] Searching workspace files with fuzzy search for query txt stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > searches files using fuzzy search when query is provided [FileMessageHandler] Sent final workspaceFiles 2 stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > filters ignored paths in non-query mode [FileMessageHandler] handleGetWorkspaceFiles start { query: undefined, requestId: 7 } [FileMessageHandler] Sent initial workspaceFiles (open tabs/active) 0 stdout | src/webview/handlers/FileMessageHandler.test.ts > FileMessageHandler > filters ignored paths in non-query mode [FileMessageHandler] Sent final workspaceFiles 1 ✓ src/open-files-manager.test.ts (17 tests) 88ms ✓ src/webview/handlers/FileMessageHandler.test.ts (2 tests) 32ms ✓ src/webview/utils/contextUsage.test.ts (4 tests) 17ms ✓ src/webview/providers/ChatWebviewViewProvider.test.ts (2 tests) 5ms ✓ src/webview/utils/completionUtils.test.ts (4 tests) 3ms stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > proxy configuration > passes --proxy argument when http.proxy is set [QwenAgentManager] 🚀 CONNECT() CALLED - ID: 1778501394396 [QwenAgentManager] Using proxy from VSCode settings: http://proxy.example.com:8080 [QwenAgentManager] Connecting to ACP process (attempt 1/3)... stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > proxy configuration > passes --proxy argument when http.proxy is set [QwenAgentManager] ACP process connected successfully [QwenAgentManager] no sessionRestored, Creating new session... [QwenAgentManager] Creating new session (letting CLI handle authentication)... [QwenAgentManager] Creating session (attempt 1/3)... stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > proxy configuration > passes --proxy argument when http.proxy is set [QwenAgentManager] Session created successfully stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > proxy configuration > passes --proxy argument when http.proxy is set [QwenAgentManager] New session created successfully ======================================== [QwenAgentManager] ✅ CONNECT() COMPLETED SUCCESSFULLY ======================================== stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > proxy configuration > passes --proxy argument when https.proxy is set (fallback) [QwenAgentManager] 🚀 CONNECT() CALLED - ID: 1778501394458 [QwenAgentManager] Using proxy from VSCode settings: http://https-proxy.example.com:8080 [QwenAgentManager] Connecting to ACP process (attempt 1/3)... stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > proxy configuration > passes --proxy argument when https.proxy is set (fallback) [QwenAgentManager] ACP process connected successfully [QwenAgentManager] no sessionRestored, Creating new session... [QwenAgentManager] Creating new session (letting CLI handle authentication)... [QwenAgentManager] Creating session (attempt 1/3)... stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > proxy configuration > passes --proxy argument when https.proxy is set (fallback) [QwenAgentManager] Session created successfully stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > proxy configuration > passes --proxy argument when https.proxy is set (fallback) [QwenAgentManager] New session created successfully ======================================== [QwenAgentManager] ✅ CONNECT() COMPLETED SUCCESSFULLY ======================================== stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > proxy configuration > prefers http.proxy over https.proxy [QwenAgentManager] 🚀 CONNECT() CALLED - ID: 1778501394479 [QwenAgentManager] Using proxy from VSCode settings: http://http-proxy.example.com:8080 [QwenAgentManager] Connecting to ACP process (attempt 1/3)... stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > proxy configuration > prefers http.proxy over https.proxy [QwenAgentManager] ACP process connected successfully [QwenAgentManager] no sessionRestored, Creating new session... [QwenAgentManager] Creating new session (letting CLI handle authentication)... [QwenAgentManager] Creating session (attempt 1/3)... stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > proxy configuration > prefers http.proxy over https.proxy [QwenAgentManager] Session created successfully stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > proxy configuration > prefers http.proxy over https.proxy [QwenAgentManager] New session created successfully ======================================== [QwenAgentManager] ✅ CONNECT() COMPLETED SUCCESSFULLY ======================================== stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > proxy configuration > does not pass --proxy argument when no proxy is configured [QwenAgentManager] 🚀 CONNECT() CALLED - ID: 1778501394489 [QwenAgentManager] Connecting to ACP process (attempt 1/3)... stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > proxy configuration > does not pass --proxy argument when no proxy is configured [QwenAgentManager] ACP process connected successfully [QwenAgentManager] no sessionRestored, Creating new session... [QwenAgentManager] Creating new session (letting CLI handle authentication)... [QwenAgentManager] Creating session (attempt 1/3)... stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > proxy configuration > does not pass --proxy argument when no proxy is configured [QwenAgentManager] Session created successfully stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > proxy configuration > does not pass --proxy argument when no proxy is configured [QwenAgentManager] New session created successfully ======================================== [QwenAgentManager] ✅ CONNECT() COMPLETED SUCCESSFULLY ======================================== stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > proxy configuration > does not pass --proxy argument when proxy is empty string [QwenAgentManager] 🚀 CONNECT() CALLED - ID: 1778501394519 [QwenAgentManager] Connecting to ACP process (attempt 1/3)... stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > proxy configuration > does not pass --proxy argument when proxy is empty string [QwenAgentManager] ACP process connected successfully [QwenAgentManager] no sessionRestored, Creating new session... [QwenAgentManager] Creating new session (letting CLI handle authentication)... [QwenAgentManager] Creating session (attempt 1/3)... stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > proxy configuration > does not pass --proxy argument when proxy is empty string [QwenAgentManager] Session created successfully stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > proxy configuration > does not pass --proxy argument when proxy is empty string [QwenAgentManager] New session created successfully ======================================== [QwenAgentManager] ✅ CONNECT() COMPLETED SUCCESSFULLY ======================================== ✓ src/package.test.ts (1 test) 2ms stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > connect retry logic > succeeds on first attempt without retry [QwenAgentManager] 🚀 CONNECT() CALLED - ID: 1778501394523 [QwenAgentManager] Connecting to ACP process (attempt 1/3)... stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > connect retry logic > succeeds on first attempt without retry [QwenAgentManager] ACP process connected successfully [QwenAgentManager] no sessionRestored, Creating new session... [QwenAgentManager] Creating new session (letting CLI handle authentication)... [QwenAgentManager] Creating session (attempt 1/3)... stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > connect retry logic > succeeds on first attempt without retry [QwenAgentManager] Session created successfully stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > connect retry logic > succeeds on first attempt without retry [QwenAgentManager] New session created successfully ======================================== [QwenAgentManager] ✅ CONNECT() COMPLETED SUCCESSFULLY ======================================== ✓ src/webview/providers/ChatProviderRegistry.test.ts (2 tests) 23ms stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > connect retry logic > retries connect on spawn failure and succeeds on second attempt [QwenAgentManager] 🚀 CONNECT() CALLED - ID: 1778501394594 [QwenAgentManager] Connecting to ACP process (attempt 1/3)... stderr | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > connect retry logic > retries connect on spawn failure and succeeds on second attempt [QwenAgentManager] Connect attempt 1 failed: Qwen ACP process failed to start (exit code: null, signal: SIGTERM) stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > connect retry logic > retries connect on spawn failure and succeeds on second attempt [QwenAgentManager] Retrying connect in 1000ms... ✓ src/webview/handlers/AuthMessageHandler.test.ts (2 tests) 8ms ✓ src/utils/errorMessage.test.ts (2 tests) 19ms ✓ src/webview/hooks/useImage.test.ts (2 tests) 181ms ✓ src/utils/imageSupport.bundle.test.ts (2 tests) 355ms ✓ src/utils/imageSupport.test.ts (1 test) 2ms 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) 69ms ✓ src/ide-server.test.ts (13 tests | 1 skipped) 699ms ✓ IDEServer > auth token > should reject request without auth token 342ms ✓ src/webview/hooks/message/useMessageHandling.test.tsx (2 tests) 131ms stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > connect retry logic > retries connect on spawn failure and succeeds on second attempt [QwenAgentManager] Connecting to ACP process (attempt 2/3)... stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > connect retry logic > retries connect on spawn failure and succeeds on second attempt [QwenAgentManager] ACP process connected successfully [QwenAgentManager] no sessionRestored, Creating new session... [QwenAgentManager] Creating new session (letting CLI handle authentication)... [QwenAgentManager] Creating session (attempt 1/3)... stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > connect retry logic > retries connect on spawn failure and succeeds on second attempt [QwenAgentManager] Session created successfully stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > connect retry logic > retries connect on spawn failure and succeeds on second attempt [QwenAgentManager] New session created successfully ======================================== [QwenAgentManager] ✅ CONNECT() COMPLETED SUCCESSFULLY ======================================== stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > connect retry logic > throws after exhausting all connect retry attempts (3 attempts) [QwenAgentManager] 🚀 CONNECT() CALLED - ID: 1778501395982 [QwenAgentManager] Connecting to ACP process (attempt 1/3)... stderr | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > connect retry logic > throws after exhausting all connect retry attempts (3 attempts) [QwenAgentManager] Connect attempt 1 failed: Qwen ACP process failed to start (exit code: null, signal: SIGTERM) stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > connect retry logic > throws after exhausting all connect retry attempts (3 attempts) [QwenAgentManager] Retrying connect in 1000ms... ✓ src/webview/components/layout/ModelSelector.test.tsx (9 tests) 225ms ✓ src/webview/hooks/useWebViewMessages.test.tsx (5 tests) 93ms ✓ src/webview/App.test.tsx (6 tests) 278ms ✓ src/webview/hooks/useToolCalls.test.tsx (1 test) 21ms stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > connect retry logic > throws after exhausting all connect retry attempts (3 attempts) [QwenAgentManager] Connecting to ACP process (attempt 2/3)... stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > connect retry logic > throws after exhausting all connect retry attempts (3 attempts) [QwenAgentManager] Retrying connect in 2000ms... stderr | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > connect retry logic > throws after exhausting all connect retry attempts (3 attempts) [QwenAgentManager] Connect attempt 2 failed: Qwen ACP process failed to start (exit code: null, signal: SIGTERM) ✓ src/webview/components/layout/Onboarding.test.tsx (1 test) 53ms ✓ src/webview/components/messages/toolcalls/index.test.tsx (3 tests) 92ms ✓ src/webview/components/layout/ProviderSetupForm.test.tsx (1 test) 91ms ✓ src/webview/components/layout/InputForm.test.tsx (2 tests) 158ms stdout | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > connect retry logic > throws after exhausting all connect retry attempts (3 attempts) [QwenAgentManager] Connecting to ACP process (attempt 3/3)... stderr | src/services/qwenConnectionHandler.test.ts > QwenConnectionHandler > connect retry logic > throws after exhausting all connect retry attempts (3 attempts) [QwenAgentManager] Connect attempt 3 failed: Qwen ACP process failed to start (exit code: null, signal: SIGTERM) ✓ src/services/qwenConnectionHandler.test.ts (8 tests) 5098ms ✓ QwenConnectionHandler > connect retry logic > retries connect on spawn failure and succeeds on second attempt 1456ms ✓ QwenConnectionHandler > connect retry logic > throws after exhausting all connect retry attempts (3 attempts) 3476ms 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 > 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... 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/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... ✓ src/webview/utils/imageHandler.test.ts (11 tests) 21ms 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 ✓ src/services/settingsWriter.test.ts (2 tests) 11ms stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > reacts to auth-related qwen-code setting changes [WebViewProvider] Auth-related qwen-code settings changed by user, syncing... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > clears persisted credentials and disconnects when apiKey is emptied [WebViewProvider] Auth-related qwen-code settings changed by user, syncing... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > clears persisted credentials and disconnects when apiKey is emptied [WebViewProvider] apiKey cleared — de-authenticating and clearing persisted credentials stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider settings sync > does not de-auth when non-apiKey auth settings change on an api-key provider [WebViewProvider] Auth-related qwen-code settings changed by user, syncing... stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > applies the requested initial model after creating a new session [WebViewProvider] Initializing with new session (skipping restoration) stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > applies the requested initial model after creating a new session [WebViewProvider] ACP session created successfully stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > applies the requested initial model after creating a new session [WebViewProvider] Initializing empty conversation stdout | src/webview/providers/WebViewProvider.test.ts > WebViewProvider initial model inheritance > applies the requested initial model after creating a new session [WebViewProvider] Empty conversation initialized: null stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > shows orange dot and notification when a long task completes while panel is not active [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > shows orange dot and notification when a long task completes while panel is not active [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show notification for short tasks (< 20s) [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show notification for short tasks (< 20s) [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show notification when user is watching the panel [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not show notification when user is watching the panel [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > shows blue dot and notification for permission requests when panel is not active [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > shows blue dot and notification for permission requests when panel is not active [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > blue dot takes priority over orange dot [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > blue dot takes priority over orange dot [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not send duplicate idle notifications for multi-turn tasks [WebViewProvider] Attaching to WebviewView (viewType=qwen-code.chatView.sidebar) [WebViewProvider] Attempting to restore auth state and connection for view... [WebViewProvider] Syncing ~/.qwen/settings.json → VSCode settings stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not send duplicate idle notifications for multi-turn tasks [WebViewProvider] Attempting connection... stdout | src/webview/providers/WebViewProvider.test.ts > Notification & dot indicator > does not 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... ✓ src/webview/providers/WebViewProvider.test.ts (38 tests) 97ms 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 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:231: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:423:47 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26 at file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20 at new Promise () at runWithTimeout (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10) at runTest (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1574:12) at processTicksAndRejections (node:internal/process/task_queues:104:5) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) at runSuite (file:///startdir/src/qwen-code/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) stdout | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > encodes exported file links before rendering markdown [SessionMessageHandler] handleSendMessage called with: /export html stderr | src/webview/handlers/SessionMessageHandler.test.ts > SessionMessageHandler > handleSetModel — discontinued model defensive validation (Issue #3745) > rejects a non-runtime Qwen OAuth model and surfaces an error [SessionMessageHandler] Rejected discontinued model qwen3-coder-plus(qwen-oauth) ✓ src/webview/handlers/SessionMessageHandler.test.ts (13 tests) 61ms 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 webview view providers for sidebar and secondary positions [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) 113ms Test Files 42 passed (42) Tests 307 passed | 1 skipped (308) Start at 12:09:50 Duration 13.61s (transform 26.23s, setup 0ms, collect 96.88s, tests 8.36s, environment 10.72s, prepare 15.53s) ==> ERROR: A failure occurred in check(). Aborting... ==> ERROR: Build failed, check /home/alhp/workspace/chroot/build_965cba2d-4bc4-4337-b2a1-6f5b96d13387/build