==> Building on infernape ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list ./ .SRCINFO 700 73% 0.00kB/s 0:00:00 952 100% 246.09kB/s 0:00:00 (xfr#1, to-chk=7/9) .nvchecker.toml 55 100% 53.71kB/s 0:00:00 55 100% 53.71kB/s 0:00:00 (xfr#2, to-chk=6/9) LICENSE 646 100% 630.86kB/s 0:00:00 646 100% 630.86kB/s 0:00:00 (xfr#3, to-chk=5/9) PKGBUILD 700 33% 683.59kB/s 0:00:00 2,083 100% 1.99MB/s 0:00:00 (xfr#4, to-chk=4/9) REUSE.toml 375 100% 366.21kB/s 0:00:00 375 100% 366.21kB/s 0:00:00 (xfr#5, to-chk=3/9) gemini-cli-1:0.42.0-1.log 742 100% 724.61kB/s 0:00:00 742 100% 724.61kB/s 0:00:00 (xfr#6, to-chk=2/9) LICENSES/ sent 1,190 bytes received 204 bytes 929.33 bytes/sec total size is 4,317 speedup is 3.10 ==> Patching arch to riscv64... ==> Running pkgctl build --arch riscv64 on remote host... ==> WARNING: invalid architecture: riscv64 ==> Updating pacman database cache [?25l:: Synchronizing package databases... core downloading... extra downloading... multilib downloading... [?25h==> Building gemini-cli  -> repo: extra  -> arch: riscv64  -> worker: felix-2 ==> Building gemini-cli for [extra] (riscv64) ]3008;start=ddc45b13152b42b7bd69bbbd2b88c9ae;user=root;hostname=infernape.felixc.at;machineid=2e397cddc373469b84ba49094179ed95;bootid=c7b18150321b48f78049ddd8ba2aeb26;pid=2925227;pidfdid=33121326;comm=systemd-nspawn;container=arch-nspawn-2925227;type=container\]11;?\]2;🔵 Container arch-nspawn-2925227 on infernape.felixc.at\[?25l:: Synchronizing package databases... core downloading... extra downloading... :: Starting full system upgrade... there is nothing to do [?25h[!p]104\[?7h]3008;end=ddc45b13152b42b7bd69bbbd2b88c9ae\==> Building in chroot for [extra] (riscv64)... ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [felix-2]...done ==> Making package: gemini-cli 1:0.42.0-1 (Sun May 17 17:52:48 2026) ==> Retrieving sources...  -> Updating gemini-cli git repo... ==> Validating source files with b2sums... gemini-cli ... Passed ]3008;start=d69e6346f01e464084cbc042a992cacb;user=root;hostname=infernape.felixc.at;machineid=2e397cddc373469b84ba49094179ed95;bootid=c7b18150321b48f78049ddd8ba2aeb26;pid=2927337;pidfdid=29244882;comm=systemd-nspawn;container=arch-nspawn-2927337;type=container\]11;?\]2;🔵 Container arch-nspawn-2927337 on infernape.felixc.at\==> Making package: gemini-cli 1:0.42.0-1 (Sun May 17 09:53:16 2026) ==> Checking runtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (5) New Version Net Change extra/ada 3.4.4-1 0.99 MiB extra/c-ares 1.34.6-1 0.51 MiB extra/libuv 1.52.1-1 0.62 MiB extra/simdjson 1:4.6.4-1 7.46 MiB extra/nodejs 25.9.0-1 55.46 MiB Total Installed Size: 65.03 MiB :: Proceed with installation? [Y/n] checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing ada... installing c-ares... installing libuv... installing simdjson... installing nodejs... Optional dependencies for nodejs npm: nodejs package manager :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... [?25h==> Checking buildtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (16) New Version Net Change Download Size core/gpm 1.20.7.r38.ge82d1a6-6 0.35 MiB extra/nodejs-nopt 10.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 core/procps-ng 4.0.6-1 2.56 MiB extra/semver 7.8.0-1 0.10 MiB 0.03 MiB extra/vim-runtime 9.2.0450-1 38.39 MiB extra/zlib-ng 2.3.3-1 0.23 MiB extra/bubblewrap 0.11.2-1 0.09 MiB extra/git 2.54.0-1 29.36 MiB extra/jq 1.8.1-3 0.47 MiB extra/node-gyp 12.3.0-1 6.08 MiB 0.89 MiB extra/npm 11.14.1-1 8.70 MiB 1.64 MiB extra/vim 9.2.0450-1 5.00 MiB Total Download Size: 2.56 MiB Total Installed Size: 92.53 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... npm-11.14.1-1-any downloading... node-gyp-12.3.0-1-any downloading... semver-7.8.0-1-any downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing perl-error... installing perl-timedate... installing perl-mailtools... installing zlib-ng... installing git... Optional dependencies for git git-zsh-completion: upstream zsh completion tk: gitk and git gui openssh: ssh transport and crypto man: show help with `git command --help` perl-libwww: git svn perl-term-readkey: git svn and interactive.singlekey setting perl-io-socket-ssl: git send-email TLS support perl-authen-sasl: git send-email TLS support perl-cgi: gitweb (web interface) support python: git svn & git p4 [installed] subversion: git svn org.freedesktop.secrets: keyring credential helper libsecret: libsecret credential helper [installed] less: the default pager for git installing oniguruma... installing jq... installing nodejs-nopt... installing semver... installing node-gyp... Optional dependencies for node-gyp gcc: to build C++ modules [installed] make: to build C++ modules [installed] python: to build C++ modules [installed] installing npm... Optional dependencies for npm git: for dependencies using Git URL's [installed] installing bubblewrap... installing vim-runtime... Optional dependencies for vim-runtime sh: support for some tools and macros [installed] python: demoserver example tool [installed] gawk: mve tools support [installed] installing procps-ng... installing gpm... installing vim... Optional dependencies for vim python: Python language support [installed] ruby: Ruby language support lua: Lua language support perl: Perl language support [installed] tcl: Tcl language support :: Running post-transaction hooks... (1/5) Creating system user accounts... Creating group 'git' with GID 969. Creating user 'git' (git daemon user) with UID 969 and GID 969. (2/5) Reloading system manager configuration... Skipped: Current root is not booted. (3/5) Arming ConditionNeedsUpdate... (4/5) Checking for old perl modules... (5/5) Updating the info directory file... [?25h==> Retrieving sources... ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources...  -> Creating working copy of gemini-cli git repo... Cloning into 'gemini-cli'... done. Updating files: 15% (436/2837) Updating files: 16% (454/2837) Updating files: 17% (483/2837) Updating files: 18% (511/2837) Updating files: 19% (540/2837) Updating files: 20% (568/2837) Updating files: 21% (596/2837) Updating files: 22% (625/2837) Updating files: 23% (653/2837) Updating files: 24% (681/2837) Updating files: 25% (710/2837) Updating files: 26% (738/2837) Updating files: 27% (766/2837) Updating files: 28% (795/2837) Updating files: 29% (823/2837) Updating files: 30% (852/2837) Updating files: 31% (880/2837) Updating files: 32% (908/2837) Updating files: 33% (937/2837) Updating files: 34% (965/2837) Updating files: 35% (993/2837) Updating files: 36% (1022/2837) Updating files: 37% (1050/2837) Updating files: 38% (1079/2837) Updating files: 39% (1107/2837) Updating files: 40% (1135/2837) Updating files: 41% (1164/2837) Updating files: 42% (1192/2837) Updating files: 43% (1220/2837) Updating files: 44% (1249/2837) Updating files: 45% (1277/2837) Updating files: 46% (1306/2837) Updating files: 47% (1334/2837) Updating files: 48% (1362/2837) Updating files: 49% (1391/2837) Updating files: 50% (1419/2837) Updating files: 51% (1447/2837) Updating files: 52% (1476/2837) Updating files: 53% (1504/2837) Updating files: 54% (1532/2837) Updating files: 55% (1561/2837) Updating files: 56% (1589/2837) Updating files: 57% (1618/2837) Updating files: 58% (1646/2837) Updating files: 59% (1674/2837) Updating files: 60% (1703/2837) Updating files: 61% (1731/2837) Updating files: 62% (1759/2837) Updating files: 63% (1788/2837) Updating files: 64% (1816/2837) Updating files: 65% (1845/2837) Updating files: 66% (1873/2837) Updating files: 67% (1901/2837) Updating files: 68% (1930/2837) Updating files: 69% (1958/2837) Updating files: 70% (1986/2837) Updating files: 71% (2015/2837) Updating files: 72% (2043/2837) Updating files: 73% (2072/2837) Updating files: 74% (2100/2837) Updating files: 75% (2128/2837) Updating files: 76% (2157/2837) Updating files: 77% (2185/2837) Updating files: 78% (2213/2837) Updating files: 79% (2242/2837) Updating files: 80% (2270/2837) Updating files: 81% (2298/2837) Updating files: 82% (2327/2837) Updating files: 83% (2355/2837) Updating files: 84% (2384/2837) Updating files: 85% (2412/2837) Updating files: 86% (2440/2837) Updating files: 87% (2469/2837) Updating files: 88% (2497/2837) Updating files: 89% (2525/2837) Updating files: 90% (2554/2837) Updating files: 91% (2582/2837) Updating files: 92% (2611/2837) Updating files: 93% (2639/2837) Updating files: 94% (2667/2837) Updating files: 95% (2696/2837) Updating files: 96% (2724/2837) Updating files: 97% (2752/2837) Updating files: 98% (2781/2837) Updating files: 99% (2809/2837) Updating files: 100% (2837/2837) Updating files: 100% (2837/2837), done. Switched to a new branch 'makepkg' ==> Starting prepare()... npm warn deprecated domexception@4.0.0: Use your platform's native DOMException instead npm warn deprecated node-domexception@1.0.0: Use your platform's native DOMException instead added 1321 packages, and audited 1329 packages in 2m 362 packages are looking for funding run `npm fund` for details 35 vulnerabilities (8 low, 7 moderate, 19 high, 1 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()... > @google/gemini-cli@0.42.0 bundle > npm run generate && npm run build --workspace=@google/gemini-cli-devtools && npm run bundle:browser-mcp -w @google/gemini-cli-core && node esbuild.config.js && node scripts/copy_bundle_assets.js > @google/gemini-cli@0.42.0 generate > node scripts/generate-git-commit-info.js > @google/gemini-cli-devtools@0.42.0 build > npm run build:client && tsc -p tsconfig.build.json > @google/gemini-cli-devtools@0.42.0 build:client > node esbuild.client.js > @google/gemini-cli-core@0.42.0 bundle:browser-mcp > node scripts/bundle-browser-mcp.mjs Copied 10 policy files to bundle/policies/ Copied docs to bundle/docs/ Copied built-in skills to bundle/builtin/ Copied devtools package to bundle/node_modules/ Copied bundled chrome-devtools-mcp to bundle/bundled/ Copied extension examples to bundle/examples/ Assets copied to bundle/ gyp info it worked if it ends with ok gyp info using node-gyp@12.3.0 gyp info using node@25.9.0 | linux | riscv64 gyp info find Python using Python version 3.14.4 found at "/usr/bin/python3" gyp http GET https://nodejs.org/download/release/v25.9.0/node-v25.9.0-headers.tar.gz gyp http 200 https://nodejs.org/download/release/v25.9.0/node-v25.9.0-headers.tar.gz gyp http GET https://nodejs.org/download/release/v25.9.0/SHASUMS256.txt gyp http 200 https://nodejs.org/download/release/v25.9.0/SHASUMS256.txt gyp info spawn /usr/bin/python3 gyp info spawn args [ gyp info spawn args '/usr/lib/node_modules/node-gyp/gyp/gyp_main.py', gyp info spawn args 'binding.gyp', gyp info spawn args '-f', gyp info spawn args 'make', gyp info spawn args '-I', gyp info spawn args '/build/gemini-cli/src/gemini-cli/node_modules/@github/keytar/build/config.gypi', gyp info spawn args '-I', gyp info spawn args '/usr/lib/node_modules/node-gyp/addon.gypi', gyp info spawn args '-I', gyp info spawn args '/build/.cache/node-gyp/25.9.0/include/node/common.gypi', gyp info spawn args '-Dlibrary=shared_library', gyp info spawn args '-Dvisibility=default', gyp info spawn args '-Dnode_root_dir=/build/.cache/node-gyp/25.9.0', gyp info spawn args '-Dnode_gyp_dir=/usr/lib/node_modules/node-gyp', gyp info spawn args '-Dnode_lib_file=/build/.cache/node-gyp/25.9.0/<(target_arch)/node.lib', gyp info spawn args '-Dmodule_root_dir=/build/gemini-cli/src/gemini-cli/node_modules/@github/keytar', gyp info spawn args '-Dnode_engine=v8', gyp info spawn args '--depth=.', gyp info spawn args '--no-parallel', gyp info spawn args '--generator-output', gyp info spawn args 'build', gyp info spawn args '-Goutput_dir=.' gyp info spawn args ] gyp info spawn make gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ] make: Entering directory '/build/gemini-cli/src/gemini-cli/node_modules/@github/keytar/build' CXX(target) Release/obj.target/keytar/src/async.o CXX(target) Release/obj.target/keytar/src/main.o CXX(target) Release/obj.target/keytar/src/keytar_posix.o SOLINK_MODULE(target) Release/obj.target/keytar.node COPY Release/keytar.node make: Leaving directory '/build/gemini-cli/src/gemini-cli/node_modules/@github/keytar/build' gyp info ok > @google/gemini-cli@0.42.0 prepare > husky && npm run bundle > @google/gemini-cli@0.42.0 bundle > npm run generate && npm run build --workspace=@google/gemini-cli-devtools && npm run bundle:browser-mcp -w @google/gemini-cli-core && node esbuild.config.js && node scripts/copy_bundle_assets.js > @google/gemini-cli@0.42.0 generate > node scripts/generate-git-commit-info.js > @google/gemini-cli-devtools@0.42.0 build > npm run build:client && tsc -p tsconfig.build.json > @google/gemini-cli-devtools@0.42.0 build:client > node esbuild.client.js > @google/gemini-cli-core@0.42.0 bundle:browser-mcp > node scripts/bundle-browser-mcp.mjs Copied 10 policy files to bundle/policies/ Copied docs to bundle/docs/ Copied built-in skills to bundle/builtin/ Copied devtools package to bundle/node_modules/ Copied bundled chrome-devtools-mcp to bundle/bundled/ Copied extension examples to bundle/examples/ Assets copied to bundle/ npm notice npm notice 📦 @google/gemini-cli@0.42.0 npm notice Tarball Contents npm notice 11.4kB LICENSE npm notice 13.5kB README.md npm notice 8.0kB bundle/builtin/skill-creator/scripts/init_skill.cjs npm notice 3.9kB bundle/builtin/skill-creator/scripts/package_skill.cjs npm notice 3.5kB bundle/builtin/skill-creator/scripts/validate_skill.cjs npm notice 20.1kB bundle/builtin/skill-creator/SKILL.md npm notice 11.6MB bundle/bundled/chrome-devtools-mcp.mjs npm notice 209B bundle/bundled/third_party/bundled-packages.json npm notice 8.0MB bundle/bundled/third_party/index.js npm notice 304B bundle/bundled/third_party/issue-descriptions/arInsecureContext.md npm notice 228B bundle/bundled/third_party/issue-descriptions/arInvalidInfoHeader.md npm notice 249B bundle/bundled/third_party/issue-descriptions/arInvalidRegisterOsSourceHeader.md npm notice 252B bundle/bundled/third_party/issue-descriptions/arInvalidRegisterOsTriggerHeader.md npm notice 239B bundle/bundled/third_party/issue-descriptions/arInvalidRegisterSourceHeader.md npm notice 242B bundle/bundled/third_party/issue-descriptions/arInvalidRegisterTriggerHeader.md npm notice 325B bundle/bundled/third_party/issue-descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md npm notice 383B bundle/bundled/third_party/issue-descriptions/arNavigationRegistrationWithoutTransientUserActivation.md npm notice 298B bundle/bundled/third_party/issue-descriptions/arNoRegisterOsSourceHeader.md npm notice 301B bundle/bundled/third_party/issue-descriptions/arNoRegisterOsTriggerHeader.md npm notice 296B bundle/bundled/third_party/issue-descriptions/arNoRegisterSourceHeader.md npm notice 299B bundle/bundled/third_party/issue-descriptions/arNoRegisterTriggerHeader.md npm notice 204B bundle/bundled/third_party/issue-descriptions/arNoWebOrOsSupport.md npm notice 801B bundle/bundled/third_party/issue-descriptions/arOsSourceIgnored.md npm notice 826B bundle/bundled/third_party/issue-descriptions/arOsTriggerIgnored.md npm notice 472B bundle/bundled/third_party/issue-descriptions/arPermissionPolicyDisabled.md npm notice 451B bundle/bundled/third_party/issue-descriptions/arSourceAndTriggerHeaders.md npm notice 698B bundle/bundled/third_party/issue-descriptions/arSourceIgnored.md npm notice 651B bundle/bundled/third_party/issue-descriptions/arTriggerIgnored.md npm notice 448B bundle/bundled/third_party/issue-descriptions/arUntrustworthyReportingOrigin.md npm notice 429B bundle/bundled/third_party/issue-descriptions/arWebAndOsHeaders.md npm notice 269B bundle/bundled/third_party/issue-descriptions/bounceTrackingMitigations.md npm notice 175B bundle/bundled/third_party/issue-descriptions/clientHintMetaTagAllowListInvalidOrigin.md npm notice 189B bundle/bundled/third_party/issue-descriptions/clientHintMetaTagModifiedHTML.md npm notice 306B bundle/bundled/third_party/issue-descriptions/CoepCoopSandboxedIframeCannotNavigateToCoopPage.md npm notice 677B bundle/bundled/third_party/issue-descriptions/CoepCorpNotSameOrigin.md npm notice 969B bundle/bundled/third_party/issue-descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md npm notice 499B bundle/bundled/third_party/issue-descriptions/CoepCorpNotSameSite.md npm notice 488B bundle/bundled/third_party/issue-descriptions/CoepFrameResourceNeedsCoepHeader.md npm notice 424B bundle/bundled/third_party/issue-descriptions/CompatibilityModeQuirks.md npm notice 467B bundle/bundled/third_party/issue-descriptions/connectionAllowlistInvalidAllowlistItemType.md npm notice 437B bundle/bundled/third_party/issue-descriptions/connectionAllowlistInvalidHeader.md npm notice 333B bundle/bundled/third_party/issue-descriptions/connectionAllowlistInvalidUrlPattern.md npm notice 425B bundle/bundled/third_party/issue-descriptions/connectionAllowlistItemNotInnerList.md npm notice 361B bundle/bundled/third_party/issue-descriptions/connectionAllowlistMoreThanOneList.md npm notice 265B bundle/bundled/third_party/issue-descriptions/connectionAllowlistReportingEndpointNotToken.md npm notice 404B bundle/bundled/third_party/issue-descriptions/CookieAttributeValueExceedsMaxSize.md npm notice 515B bundle/bundled/third_party/issue-descriptions/cookieCrossSiteRedirectDowngrade.md npm notice 182B bundle/bundled/third_party/issue-descriptions/cookieExcludeBlockedWithinRelatedWebsiteSet.md npm notice 530B bundle/bundled/third_party/issue-descriptions/cookieExcludeDomainNonAscii.md npm notice 387B bundle/bundled/third_party/issue-descriptions/cookieExcludePortMismatch.md npm notice 279B bundle/bundled/third_party/issue-descriptions/cookieExcludeSchemeMismatch.md npm notice 388B bundle/bundled/third_party/issue-descriptions/cookieExcludeThirdPartyPhaseoutRead.md npm notice 387B bundle/bundled/third_party/issue-descriptions/cookieExcludeThirdPartyPhaseoutSet.md npm notice 544B bundle/bundled/third_party/issue-descriptions/cookieWarnDomainNonAscii.md npm notice 378B bundle/bundled/third_party/issue-descriptions/cookieWarnMetadataGrantRead.md npm notice 375B bundle/bundled/third_party/issue-descriptions/cookieWarnMetadataGrantSet.md npm notice 400B bundle/bundled/third_party/issue-descriptions/cookieWarnThirdPartyPhaseoutRead.md npm notice 400B bundle/bundled/third_party/issue-descriptions/cookieWarnThirdPartyPhaseoutSet.md npm notice 536B bundle/bundled/third_party/issue-descriptions/corsAllowCredentialsRequired.md npm notice 537B bundle/bundled/third_party/issue-descriptions/corsDisabledScheme.md npm notice 628B bundle/bundled/third_party/issue-descriptions/corsDisallowedByMode.md npm notice 518B bundle/bundled/third_party/issue-descriptions/corsHeaderDisallowedByPreflightResponse.md npm notice 640B bundle/bundled/third_party/issue-descriptions/corsInvalidHeaderValues.md npm notice 1.1kB bundle/bundled/third_party/issue-descriptions/corsLocalNetworkAccessPermissionDenied.md npm notice 480B bundle/bundled/third_party/issue-descriptions/corsMethodDisallowedByPreflightResponse.md npm notice 335B bundle/bundled/third_party/issue-descriptions/corsNoCorsRedirectModeNotFollow.md npm notice 645B bundle/bundled/third_party/issue-descriptions/corsOriginMismatch.md npm notice 394B bundle/bundled/third_party/issue-descriptions/corsPreflightResponseInvalid.md npm notice 377B bundle/bundled/third_party/issue-descriptions/corsRedirectContainsCredentials.md npm notice 914B bundle/bundled/third_party/issue-descriptions/corsWildcardOriginNotAllowed.md npm notice 615B bundle/bundled/third_party/issue-descriptions/cspEvalViolation.md npm notice 608B bundle/bundled/third_party/issue-descriptions/cspInlineViolation.md npm notice 616B bundle/bundled/third_party/issue-descriptions/cspTrustedTypesPolicyViolation.md npm notice 544B bundle/bundled/third_party/issue-descriptions/cspTrustedTypesSinkViolation.md npm notice 961B bundle/bundled/third_party/issue-descriptions/cspURLViolation.md npm notice 45B bundle/bundled/third_party/issue-descriptions/deprecation.md npm notice 57B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestAccountsHttpNotFound.md npm notice 39B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestAccountsInvalidResponse.md npm notice 73B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestAccountsNoResponse.md npm notice 37B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestApprovalDeclined.md npm notice 32B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestCanceled.md npm notice 61B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestErrorFetchingSignin.md npm notice 28B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestErrorIdToken.md npm notice 52B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestIdTokenHttpNotFound.md npm notice 41B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestIdTokenInvalidRequest.md npm notice 31B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestIdTokenInvalidResponse.md npm notice 65B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestIdTokenNoResponse.md npm notice 42B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestInvalidSigninResponse.md npm notice 63B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestManifestHttpNotFound.md npm notice 54B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestManifestInvalidResponse.md npm notice 88B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestManifestNoResponse.md npm notice 77B bundle/bundled/third_party/issue-descriptions/federatedAuthRequestTooManyRequests.md npm notice 64B bundle/bundled/third_party/issue-descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md npm notice 77B bundle/bundled/third_party/issue-descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md npm notice 99B bundle/bundled/third_party/issue-descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md npm notice 55B bundle/bundled/third_party/issue-descriptions/federatedAuthUserInfoRequestNoApiPermission.md npm notice 76B bundle/bundled/third_party/issue-descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md npm notice 41B bundle/bundled/third_party/issue-descriptions/federatedAuthUserInfoRequestNotIframe.md npm notice 78B bundle/bundled/third_party/issue-descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md npm notice 61B bundle/bundled/third_party/issue-descriptions/federatedAuthUserInfoRequestNotSameOrigin.md npm notice 74B bundle/bundled/third_party/issue-descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md npm notice 409B bundle/bundled/third_party/issue-descriptions/fetchingPartitionedBlobURL.md npm notice 336B bundle/bundled/third_party/issue-descriptions/genericFormAriaLabelledByToNonExistingIdError.md npm notice 219B bundle/bundled/third_party/issue-descriptions/genericFormAutocompleteAttributeEmptyError.md npm notice 268B bundle/bundled/third_party/issue-descriptions/genericFormDuplicateIdForInputError.md npm notice 383B bundle/bundled/third_party/issue-descriptions/genericFormEmptyIdAndNameAttributesForInputError.md npm notice 326B bundle/bundled/third_party/issue-descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md npm notice 245B bundle/bundled/third_party/issue-descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md npm notice 361B bundle/bundled/third_party/issue-descriptions/genericFormInputWithNoLabelError.md npm notice 323B bundle/bundled/third_party/issue-descriptions/genericFormLabelForMatchesNonExistingIdError.md npm notice 306B bundle/bundled/third_party/issue-descriptions/genericFormLabelForNameError.md npm notice 223B bundle/bundled/third_party/issue-descriptions/genericFormLabelHasNeitherForNorNestedInputError.md npm notice 403B bundle/bundled/third_party/issue-descriptions/genericNavigationEntryMarkedSkippable.md npm notice 129B bundle/bundled/third_party/issue-descriptions/genericResponseWasBlockedByORB.md npm notice 839B bundle/bundled/third_party/issue-descriptions/heavyAd.md npm notice 775B bundle/bundled/third_party/issue-descriptions/LowTextContrast.md npm notice 429B bundle/bundled/third_party/issue-descriptions/mixedContent.md npm notice 493B bundle/bundled/third_party/issue-descriptions/navigatingPartitionedBlobURL.md npm notice 388B bundle/bundled/third_party/issue-descriptions/permissionElementActivationDisabled.md npm notice 446B bundle/bundled/third_party/issue-descriptions/permissionElementActivationDisabledWithOccluder.md npm notice 499B bundle/bundled/third_party/issue-descriptions/permissionElementActivationDisabledWithOccluderParent.md npm notice 278B bundle/bundled/third_party/issue-descriptions/permissionElementCspFrameAncestorsMissing.md npm notice 168B bundle/bundled/third_party/issue-descriptions/permissionElementFencedFrameDisallowed.md npm notice 160B bundle/bundled/third_party/issue-descriptions/permissionElementFontSizeTooLarge.md npm notice 158B bundle/bundled/third_party/issue-descriptions/permissionElementFontSizeTooSmall.md npm notice 146B bundle/bundled/third_party/issue-descriptions/permissionElementGeolocationDeprecated.md npm notice 184B bundle/bundled/third_party/issue-descriptions/permissionElementInsetBoxShadowUnsupported.md npm notice 232B bundle/bundled/third_party/issue-descriptions/permissionElementInvalidDisplayStyle.md npm notice 250B bundle/bundled/third_party/issue-descriptions/permissionElementInvalidSizeValue.md npm notice 216B bundle/bundled/third_party/issue-descriptions/permissionElementInvalidType.md npm notice 282B bundle/bundled/third_party/issue-descriptions/permissionElementInvalidTypeActivation.md npm notice 218B bundle/bundled/third_party/issue-descriptions/permissionElementLowContrast.md npm notice 218B bundle/bundled/third_party/issue-descriptions/permissionElementNonOpaqueColor.md npm notice 265B bundle/bundled/third_party/issue-descriptions/permissionElementPaddingBottomUnsupported.md npm notice 263B bundle/bundled/third_party/issue-descriptions/permissionElementPaddingRightUnsupported.md npm notice 265B bundle/bundled/third_party/issue-descriptions/permissionElementPermissionsPolicyBlocked.md npm notice 199B bundle/bundled/third_party/issue-descriptions/permissionElementRegistrationFailed.md npm notice 373B bundle/bundled/third_party/issue-descriptions/permissionElementRequestInProgress.md npm notice 227B bundle/bundled/third_party/issue-descriptions/permissionElementSecurityChecksFailed.md npm notice 294B bundle/bundled/third_party/issue-descriptions/permissionElementTypeNotSupported.md npm notice 396B bundle/bundled/third_party/issue-descriptions/permissionElementUntrustedEvent.md npm notice 179B bundle/bundled/third_party/issue-descriptions/placeholderDescriptionForInvisibleIssues.md npm notice 100B bundle/bundled/third_party/issue-descriptions/propertyRuleInvalidNameIssue.md npm notice 157B bundle/bundled/third_party/issue-descriptions/propertyRuleIssue.md npm notice 571B bundle/bundled/third_party/issue-descriptions/SameSiteExcludeContextDowngradeRead.md npm notice 572B bundle/bundled/third_party/issue-descriptions/SameSiteExcludeContextDowngradeSet.md npm notice 583B bundle/bundled/third_party/issue-descriptions/SameSiteExcludeNavigationContextDowngrade.md npm notice 556B bundle/bundled/third_party/issue-descriptions/SameSiteNoneInsecureErrorRead.md npm notice 611B bundle/bundled/third_party/issue-descriptions/SameSiteNoneInsecureErrorSet.md npm notice 592B bundle/bundled/third_party/issue-descriptions/SameSiteNoneInsecureWarnRead.md npm notice 647B bundle/bundled/third_party/issue-descriptions/SameSiteNoneInsecureWarnSet.md npm notice 699B bundle/bundled/third_party/issue-descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md npm notice 758B bundle/bundled/third_party/issue-descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md npm notice 610B bundle/bundled/third_party/issue-descriptions/SameSiteWarnCrossDowngradeRead.md npm notice 612B bundle/bundled/third_party/issue-descriptions/SameSiteWarnCrossDowngradeSet.md npm notice 622B bundle/bundled/third_party/issue-descriptions/SameSiteWarnStrictLaxDowngradeStrict.md npm notice 587B bundle/bundled/third_party/issue-descriptions/selectElementAccessibilityDisallowedOptGroupChild.md npm notice 605B bundle/bundled/third_party/issue-descriptions/selectElementAccessibilityDisallowedSelectChild.md npm notice 272B bundle/bundled/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md npm notice 409B bundle/bundled/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentLegendChild.md npm notice 299B bundle/bundled/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentOptionChild.md npm notice 470B bundle/bundled/third_party/issue-descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md npm notice 643B bundle/bundled/third_party/issue-descriptions/sharedArrayBuffer.md npm notice 101B bundle/bundled/third_party/issue-descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md npm notice 97B bundle/bundled/third_party/issue-descriptions/sharedDictionaryUseErrorDictionaryLoadFailure.md npm notice 155B bundle/bundled/third_party/issue-descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md npm notice 101B bundle/bundled/third_party/issue-descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md npm notice 91B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md npm notice 49B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md npm notice 124B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorExpiredResponse.md npm notice 126B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorFeatureDisabled.md npm notice 63B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorInsufficientResources.md npm notice 84B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorInvalidMatchField.md npm notice 81B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md npm notice 93B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorInvalidTTLField.md npm notice 138B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorNavigationRequest.md npm notice 76B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorNoMatchField.md npm notice 85B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorNonIntegerTTLField.md npm notice 88B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorNonListMatchDestField.md npm notice 115B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorNonSecureContext.md npm notice 82B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorNonStringIdField.md npm notice 98B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorNonStringInMatchDestList.md npm notice 85B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorNonStringMatchField.md npm notice 83B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorNonTokenTypeField.md npm notice 49B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorRequestAborted.md npm notice 49B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorShuttingDown.md npm notice 134B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorTooLongIdField.md npm notice 131B bundle/bundled/third_party/issue-descriptions/sharedDictionaryWriteErrorUnsupportedType.md npm notice 655B bundle/bundled/third_party/issue-descriptions/sriInvalidSignatureHeader.md npm notice 756B bundle/bundled/third_party/issue-descriptions/sriInvalidSignatureInputHeader.md npm notice 465B bundle/bundled/third_party/issue-descriptions/sriMissingSignatureHeader.md npm notice 477B bundle/bundled/third_party/issue-descriptions/sriMissingSignatureInputHeader.md npm notice 420B bundle/bundled/third_party/issue-descriptions/sriSignatureHeaderValueIsIncorrectLength.md npm notice 643B bundle/bundled/third_party/issue-descriptions/sriSignatureHeaderValueIsNotByteSequence.md npm notice 678B bundle/bundled/third_party/issue-descriptions/sriSignatureHeaderValueIsParameterized.md npm notice 278B bundle/bundled/third_party/issue-descriptions/sriSignatureInputHeaderInvalidComponentName.md npm notice 516B bundle/bundled/third_party/issue-descriptions/sriSignatureInputHeaderInvalidComponentType.md npm notice 231B bundle/bundled/third_party/issue-descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md npm notice 286B bundle/bundled/third_party/issue-descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md npm notice 338B bundle/bundled/third_party/issue-descriptions/sriSignatureInputHeaderInvalidParameter.md npm notice 500B bundle/bundled/third_party/issue-descriptions/sriSignatureInputHeaderKeyIdLength.md npm notice 339B bundle/bundled/third_party/issue-descriptions/sriSignatureInputHeaderMissingLabel.md npm notice 380B bundle/bundled/third_party/issue-descriptions/sriSignatureInputHeaderMissingRequiredParameters.md npm notice 351B bundle/bundled/third_party/issue-descriptions/sriSignatureInputHeaderValueMissingComponents.md npm notice 429B bundle/bundled/third_party/issue-descriptions/sriSignatureInputHeaderValueNotInnerList.md npm notice 429B bundle/bundled/third_party/issue-descriptions/sriValidationFailedIntegrityMismatch.md npm notice 259B bundle/bundled/third_party/issue-descriptions/sriValidationFailedInvalidLength.md npm notice 295B bundle/bundled/third_party/issue-descriptions/sriValidationFailedSignatureExpired.md npm notice 384B bundle/bundled/third_party/issue-descriptions/sriValidationFailedSignatureMismatch.md npm notice 266B bundle/bundled/third_party/issue-descriptions/stylesheetLateImport.md npm notice 76B bundle/bundled/third_party/issue-descriptions/stylesheetRequestFailed.md npm notice 231B bundle/bundled/third_party/issue-descriptions/summaryElementAccessibilityInteractiveContentSummaryDescendant.md npm notice 606B bundle/bundled/third_party/issue-descriptions/unencodedDigestIncorrectDigestLength.md npm notice 692B bundle/bundled/third_party/issue-descriptions/unencodedDigestIncorrectDigestType.md npm notice 549B bundle/bundled/third_party/issue-descriptions/unencodedDigestMalformedDictionary.md npm notice 581B bundle/bundled/third_party/issue-descriptions/unencodedDigestUnknownAlgorithm.md npm notice 166.1kB bundle/bundled/third_party/THIRD_PARTY_NOTICES npm notice 858B bundle/chunk-5AUYMPVF.js npm notice 1.2kB bundle/chunk-5PS3AYFU.js npm notice 658.0kB bundle/chunk-6OHHWCAC.js npm notice 2.5kB bundle/chunk-34MYV7JD.js npm notice 123.5kB bundle/chunk-664ZODQF.js npm notice 3.8kB bundle/chunk-AET3LJOU.js npm notice 205.7kB bundle/chunk-DAHVX5MI.js npm notice 3.4kB bundle/chunk-E4ELQJXZ.js npm notice 2.0MB bundle/chunk-ECNYAST2.js npm notice 56.5kB bundle/chunk-IUUIT4SU.js npm notice 2.8MB bundle/chunk-O2PZ6OTW.js npm notice 39.8kB bundle/chunk-RJTRUG2J.js npm notice 19.5kB bundle/chunk-STS4J46S.js npm notice 49.2kB bundle/chunk-T2CXGCEE.js npm notice 14.7MB bundle/chunk-V4UGU7M4.js npm notice 12.5kB bundle/chunk-XPFGF4YQ.js npm notice 932B bundle/cleanup-XBZZATIN.js npm notice 48.7kB bundle/core-Q77PEM4R.js npm notice 696.0kB bundle/devtools-36NN55EP.js npm notice 28.0kB bundle/devtoolsService-LHRMOQWG.js npm notice 356B bundle/dist-T73EYRDX.js npm notice 6.5kB bundle/docs/admin/enterprise-controls.md npm notice 121.7kB bundle/docs/assets/connected_devtools.png npm notice 61.2kB bundle/docs/assets/gemini-screenshot.png npm notice 112.5kB bundle/docs/assets/monitoring-dashboard-logs.png npm notice 58.9kB bundle/docs/assets/monitoring-dashboard-metrics.png npm notice 55.8kB bundle/docs/assets/monitoring-dashboard-overview.png npm notice 389.7kB bundle/docs/assets/release_patch.png npm notice 157.3kB bundle/docs/assets/theme-ansi-dark.png npm notice 144.8kB bundle/docs/assets/theme-ansi-light.png npm notice 154.4kB bundle/docs/assets/theme-atom-one-dark.png npm notice 150.0kB bundle/docs/assets/theme-ayu-dark.png npm notice 140.5kB bundle/docs/assets/theme-ayu-light.png npm notice 265.5kB bundle/docs/assets/theme-custom.png npm notice 158.7kB bundle/docs/assets/theme-default-dark.png npm notice 147.3kB bundle/docs/assets/theme-default-light.png npm notice 160.3kB bundle/docs/assets/theme-dracula-dark.png npm notice 157.4kB bundle/docs/assets/theme-github-dark.png npm notice 138.4kB bundle/docs/assets/theme-github-light.png npm notice 137.2kB bundle/docs/assets/theme-google-light.png npm notice 167.3kB bundle/docs/assets/theme-holiday-dark.png npm notice 161.2kB bundle/docs/assets/theme-shades-of-purple-dark.png npm notice 149.3kB bundle/docs/assets/theme-solarized-dark.png npm notice 141.4kB bundle/docs/assets/theme-solarized-light.png npm notice 55.6kB bundle/docs/assets/theme-tokyonight-dark.png npm notice 123.1kB bundle/docs/assets/theme-xcode-light.png npm notice 57.6kB bundle/docs/changelogs/index.md npm notice 10.9kB bundle/docs/changelogs/latest.md npm notice 7.0kB bundle/docs/changelogs/preview.md npm notice 4.7kB bundle/docs/cli/acp-mode.md npm notice 5.7kB bundle/docs/cli/auto-memory.md npm notice 3.1kB bundle/docs/cli/checkpointing.md npm notice 16.6kB bundle/docs/cli/cli-reference.md npm notice 6.7kB bundle/docs/cli/creating-skills.md npm notice 12.1kB bundle/docs/cli/custom-commands.md npm notice 19.2kB bundle/docs/cli/enterprise.md npm notice 2.1kB bundle/docs/cli/gemini-ignore.md npm notice 3.9kB bundle/docs/cli/gemini-md.md npm notice 6.5kB bundle/docs/cli/generation-settings.md npm notice 3.6kB bundle/docs/cli/git-worktrees.md npm notice 1.6kB bundle/docs/cli/headless.md npm notice 2.7kB bundle/docs/cli/model-routing.md npm notice 2.9kB bundle/docs/cli/model-steering.md npm notice 2.7kB bundle/docs/cli/model.md npm notice 2.0kB bundle/docs/cli/notifications.md npm notice 19.6kB bundle/docs/cli/plan-mode.md npm notice 2.3kB bundle/docs/cli/rewind.md npm notice 14.1kB bundle/docs/cli/sandbox.md npm notice 6.4kB bundle/docs/cli/session-management.md npm notice 43.7kB bundle/docs/cli/settings.md npm notice 3.3kB bundle/docs/cli/skills-best-practices.md npm notice 5.7kB bundle/docs/cli/skills.md npm notice 4.6kB bundle/docs/cli/system-prompt.md npm notice 29.5kB bundle/docs/cli/telemetry.md npm notice 8.1kB bundle/docs/cli/themes.md npm notice 754B bundle/docs/cli/token-caching.md npm notice 6.2kB bundle/docs/cli/trusted-folders.md npm notice 7.1kB bundle/docs/cli/tutorials/automation.md npm notice 4.5kB bundle/docs/cli/tutorials/file-management.md npm notice 3.3kB bundle/docs/cli/tutorials/mcp-setup.md npm notice 4.5kB bundle/docs/cli/tutorials/memory-management.md npm notice 3.5kB bundle/docs/cli/tutorials/plan-mode-steering.md npm notice 3.7kB bundle/docs/cli/tutorials/session-management.md npm notice 3.6kB bundle/docs/cli/tutorials/shell-commands.md npm notice 5.9kB bundle/docs/cli/tutorials/skills-getting-started.md npm notice 3.0kB bundle/docs/cli/tutorials/task-planning.md npm notice 2.5kB bundle/docs/cli/tutorials/web-tools.md npm notice 3.0kB bundle/docs/cli/using-agent-skills.md npm notice 3.1kB bundle/docs/core/gemma-setup.md npm notice 5.0kB bundle/docs/core/index.md npm notice 7.1kB bundle/docs/core/local-model-routing.md npm notice 17.0kB bundle/docs/core/remote-agents.md npm notice 23.7kB bundle/docs/core/subagents.md npm notice 2.8kB bundle/docs/examples/proxy-script.md npm notice 5.8kB bundle/docs/extensions/best-practices.md npm notice 1.8kB bundle/docs/extensions/index.md npm notice 11.3kB bundle/docs/extensions/reference.md npm notice 6.5kB bundle/docs/extensions/releasing.md npm notice 11.9kB bundle/docs/extensions/writing-extensions.md npm notice 14.9kB bundle/docs/get-started/authentication.mdx npm notice 4.6kB bundle/docs/get-started/gemini-3.md npm notice 6.3kB bundle/docs/get-started/index.md npm notice 5.6kB bundle/docs/get-started/installation.mdx npm notice 17.7kB bundle/docs/hooks/best-practices.md npm notice 8.3kB bundle/docs/hooks/index.md npm notice 13.3kB bundle/docs/hooks/reference.md npm notice 11.5kB bundle/docs/hooks/writing-hooks.md npm notice 10.8kB bundle/docs/ide-integration/ide-companion-spec.md npm notice 11.7kB bundle/docs/ide-integration/index.md npm notice 5.9kB bundle/docs/index.md npm notice 8.5kB bundle/docs/integration-tests.md npm notice 8.6kB bundle/docs/issue-and-pr-automation.md npm notice 4.9kB bundle/docs/local-development.md npm notice 3.1kB bundle/docs/mermaid/context.mmd npm notice 1.6kB bundle/docs/mermaid/render-path.mmd npm notice 2.5kB bundle/docs/npm.md npm notice 981B bundle/docs/redirects.json npm notice 24.2kB bundle/docs/reference/commands.md npm notice 98.1kB bundle/docs/reference/configuration.md npm notice 22.2kB bundle/docs/reference/keyboard-shortcuts.md npm notice 6.4kB bundle/docs/reference/memport.md npm notice 19.4kB bundle/docs/reference/policy-engine.md npm notice 18.8kB bundle/docs/reference/tools.md npm notice 5.4kB bundle/docs/release-confidence.md npm notice 23.2kB bundle/docs/releases.md npm notice 8.1kB bundle/docs/resources/faq.md npm notice 9.1kB bundle/docs/resources/quota-and-pricing.md npm notice 6.7kB bundle/docs/resources/tos-privacy.md npm notice 10.4kB bundle/docs/resources/troubleshooting.md npm notice 1.5kB bundle/docs/resources/uninstall.md npm notice 9.3kB bundle/docs/sidebar.json npm notice 1.5kB bundle/docs/tools/activate-skill.md npm notice 2.8kB bundle/docs/tools/ask-user.md npm notice 5.2kB bundle/docs/tools/file-system.md npm notice 1.7kB bundle/docs/tools/internal-docs.md npm notice 1.8kB bundle/docs/tools/mcp-resources.md npm notice 39.4kB bundle/docs/tools/mcp-server.md npm notice 1.2kB bundle/docs/tools/memory.md npm notice 2.6kB bundle/docs/tools/planning.md npm notice 7.9kB bundle/docs/tools/shell.md npm notice 1.2kB bundle/docs/tools/todos.md npm notice 2.6kB bundle/docs/tools/tracker.md npm notice 1.4kB bundle/docs/tools/web-fetch.md npm notice 1.1kB bundle/docs/tools/web-search.md npm notice 418B bundle/events-XB7DADIJ.js npm notice 114B bundle/examples/custom-commands/commands/fs/grep-code.toml npm notice 54B bundle/examples/custom-commands/gemini-extension.json npm notice 100B bundle/examples/exclude-tools/gemini-extension.json npm notice 52B bundle/examples/hooks/gemini-extension.json npm notice 216B bundle/examples/hooks/hooks/hooks.json npm notice 188B bundle/examples/hooks/scripts/on-start.js npm notice 1.4kB bundle/examples/mcp-server/example.js npm notice 213B bundle/examples/mcp-server/gemini-extension.json npm notice 255B bundle/examples/mcp-server/package.json npm notice 859B bundle/examples/mcp-server/README.md npm notice 131B bundle/examples/policies/gemini-extension.json npm notice 872B bundle/examples/policies/policies/policies.toml npm notice 1.4kB bundle/examples/policies/README.md npm notice 53B bundle/examples/skills/gemini-extension.json npm notice 215B bundle/examples/skills/skills/greeter/SKILL.md npm notice 535B bundle/examples/themes-example/gemini-extension.json npm notice 870B bundle/examples/themes-example/README.md npm notice 583.1kB bundle/gemini-X3N2227D.js npm notice 5.1kB bundle/gemini.js npm notice 1.5kB bundle/getMachineId-bsd-TXG52NKR.js npm notice 1.6kB bundle/getMachineId-darwin-7OE4DDZ6.js npm notice 1.3kB bundle/getMachineId-linux-SHIFKOOX.js npm notice 1.1kB bundle/getMachineId-unsupported-5U5DOEYY.js npm notice 1.7kB bundle/getMachineId-win-6KLLGOI4.js npm notice 1.3MB bundle/interactiveCli-5RMPRAJI.js npm notice 2.1kB bundle/liteRtServerManager-V3JSEILW.js npm notice 980B bundle/memoryDiscovery-FB7MMKTA.js npm notice 11.7kB bundle/multipart-parser-KPBZEGQU.js npm notice 222.2kB bundle/node_modules/@google/gemini-cli-devtools/dist/client/main.js npm notice 228.5kB bundle/node_modules/@google/gemini-cli-devtools/dist/src/_client-assets.d.ts npm notice 228.6kB bundle/node_modules/@google/gemini-cli-devtools/dist/src/_client-assets.js npm notice 240B bundle/node_modules/@google/gemini-cli-devtools/dist/src/_client-assets.js.map npm notice 1.4kB bundle/node_modules/@google/gemini-cli-devtools/dist/src/index.d.ts npm notice 13.4kB bundle/node_modules/@google/gemini-cli-devtools/dist/src/index.js npm notice 10.8kB bundle/node_modules/@google/gemini-cli-devtools/dist/src/index.js.map npm notice 851B bundle/node_modules/@google/gemini-cli-devtools/dist/src/types.d.ts npm notice 132B bundle/node_modules/@google/gemini-cli-devtools/dist/src/types.js npm notice 117B bundle/node_modules/@google/gemini-cli-devtools/dist/src/types.js.map npm notice 644B bundle/node_modules/@google/gemini-cli-devtools/package.json npm notice 9.2kB bundle/oauth2-provider-NS6XGACO.js npm notice 312B bundle/policies/agents.toml npm notice 111B bundle/policies/conseca.toml npm notice 366B bundle/policies/discovered.toml npm notice 706B bundle/policies/memory-manager.toml npm notice 158B bundle/policies/non-interactive.toml npm notice 4.7kB bundle/policies/plan.toml npm notice 2.2kB bundle/policies/read-only.toml npm notice 470B bundle/policies/sandbox-default.toml npm notice 2.9kB bundle/policies/write.toml npm notice 2.4kB bundle/policies/yolo.toml npm notice 890B bundle/sandbox-macos-permissive-open.sb npm notice 1.3kB bundle/sandbox-macos-permissive-proxied.sb npm notice 3.4kB bundle/sandbox-macos-restrictive-open.sb npm notice 3.6kB bundle/sandbox-macos-restrictive-proxied.sb npm notice 4.8kB bundle/sandbox-macos-strict-open.sb npm notice 5.0kB bundle/sandbox-macos-strict-proxied.sb npm notice 47.0kB bundle/src-QVCVGIUX.js npm notice 652B bundle/start-3D74JCFM.js npm notice 1.8MB bundle/tree-sitter-bash-K67FJMO7.js npm notice 274.5kB bundle/tree-sitter-HH7MDLFZ.js npm notice 7.9kB package.json npm notice Bundled Dependencies npm notice node-pty npm notice minimist npm notice require-directory npm notice proper-lockfile npm notice @github/keytar npm notice config-chain npm notice @kwsites/file-exists npm notice @kwsites/promise-deferred npm notice @lydell/node-pty npm notice @pnpm/network.ca-file npm notice @pnpm/npm-conf npm notice ansi-escapes npm notice ansi-regex npm notice ansi-styles npm notice auto-bind npm notice cli-boxes npm notice cli-cursor npm notice cli-truncate npm notice cliui npm notice code-excerpt npm notice color-convert npm notice color-name npm notice convert-to-spaces npm notice debug npm notice deep-extend npm notice environment npm notice es-toolkit npm notice escalade npm notice get-east-asian-width npm notice graceful-fs npm notice indent-string npm notice ini npm notice ink npm notice is-fullwidth-code-point npm notice ky npm notice latest-version npm notice mimic-fn npm notice node-fetch-native npm notice onetime npm notice package-json npm notice patch-console npm notice proto-list npm notice rc npm notice react-reconciler npm notice registry-auth-token npm notice registry-url npm notice restore-cursor npm notice scheduler npm notice semver npm notice slice-ansi npm notice stack-utils npm notice strip-ansi npm notice wrap-ansi npm notice ws npm notice y18n npm notice yargs npm notice yargs-parser npm notice yoga-layout npm notice nan npm notice mnemonist npm notice obliterator npm notice @pnpm/config.env-replace npm notice get-caller-file npm notice ms npm notice simple-git npm notice punycode npm notice Tarball Details npm notice name: @google/gemini-cli npm notice version: 0.42.0 npm notice filename: google-gemini-cli-0.42.0.tgz npm notice package size: 15.3 MB npm notice unpacked size: 64.0 MB npm notice shasum: d68710a0ed167b2ae287007741031b0c1c2e6cb7 npm notice integrity: sha512-suKU3Ij5Wz2uq[...]P2FnHCYczvyAQ== npm notice bundled deps: 66 npm notice bundled files: 0 npm notice own files: 4907 npm notice total files: 4907 npm notice google-gemini-cli-0.42.0.tgz ==> Starting check()... > @google/gemini-cli@0.42.0 build > node scripts/build.js > @google/gemini-cli@0.42.0 generate > node scripts/generate-git-commit-info.js Building @google/gemini-cli-core... > @google/gemini-cli-core@0.42.0 build > node ../../scripts/build_package.js Running chrome devtools MCP bundling... > @google/gemini-cli-core@0.42.0 bundle:browser-mcp > node scripts/bundle-browser-mcp.mjs Successfully copied files. Copied documentation to dist/docs Building other workspaces in parallel... npm warn Unknown cli config "sandboxImageUri" (@google/gemini-cli:sandboxImageUri). This will stop working in the next major version of npm. npm warn Unknown cli config "sandboxImageUri" (@google/gemini-cli:sandboxImageUri). This will stop working in the next major version of npm. npm warn Unknown cli config "sandboxImageUri" (@google/gemini-cli:sandboxImageUri). This will stop working in the next major version of npm. npm warn Unknown cli config "sandboxImageUri" (@google/gemini-cli:sandboxImageUri). This will stop working in the next major version of npm. npm warn Unknown cli config "sandboxImageUri" (@google/gemini-cli:sandboxImageUri). This will stop working in the next major version of npm. npm warn Unknown cli config "sandboxImageUri" (@google/gemini-cli:sandboxImageUri). This will stop working in the next major version of npm. > @google/gemini-cli@0.42.0 build > node ../../scripts/build_package.js > @google/gemini-cli-a2a-server@0.42.0 build > node ../../scripts/build_package.js > @google/gemini-cli-devtools@0.42.0 build > npm run build:client && tsc -p tsconfig.build.json > @google/gemini-cli-sdk@0.42.0 build > node ../../scripts/build_package.js > @google/gemini-cli-test-utils@0.42.0 build > node ../../scripts/build_package.js > gemini-cli-vscode-ide-companion@0.42.0 build > npm run build:dev > @google/gemini-cli-devtools@0.42.0 build:client > node esbuild.client.js > gemini-cli-vscode-ide-companion@0.42.0 build:dev > node esbuild.js [watch] build started [watch] build finished Successfully copied files. Successfully copied files. Successfully copied files. Successfully copied files. > @google/gemini-cli-a2a-server@0.42.0 test > vitest run --exclude=**/BuiltinCommandLoader.test.ts --exclude=**/config.integration.test.ts --exclude=**/gemini.test.tsx --exclude=**/mcp-client.test.ts --exclude=**/sandboxManager.integration.test.ts RUN v3.2.4 /build/gemini-cli/src/gemini-cli/packages/a2a-server Coverage enabled with v8 ✓ src/commands/extensions.test.ts (8 tests) 101ms ✓ src/config/settings.test.ts (3 tests) 86ms ✓ src/commands/init.test.ts (5 tests) 337ms ✓ src/persistence/gcs.test.ts (12 tests) 1098ms ✓ src/commands/command-registry.test.ts (6 tests) 133ms ✓ src/agent/task.test.ts (15 tests) 1221ms ✓ src/http/endpoints.test.ts (5 tests) 1467ms ✓ Agent Server Endpoints > should create a new task via POST /tasks 1025ms (node:6360) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 model-changed listeners added to [CoreEventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (Use `node --trace-warnings ...` to show where the warning was created) (node:6360) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 memory-changed listeners added to [CoreEventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:6360) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 approval-mode-changed listeners added to [CoreEventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:6360) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 mcp-progress listeners added to [CoreEventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:6357) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 model-changed listeners added to [CoreEventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (Use `node --trace-warnings ...` to show where the warning was created) (node:6357) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 memory-changed listeners added to [CoreEventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:6357) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 approval-mode-changed listeners added to [CoreEventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (node:6357) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 mcp-progress listeners added to [CoreEventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit ✓ src/agent/task-event-driven.test.ts (17 tests) 1431ms ✓ Task Event-Driven Scheduler > should handle output updates via the message bus 567ms ✓ src/commands/memory.test.ts (7 tests) 138ms ✓ src/config/config.test.ts (25 tests) 390ms ✓ src/commands/restore.test.ts (6 tests) 108ms ✓ src/agent/executor.test.ts (2 tests) 317ms ✓ src/agent/race-condition.test.ts (3 tests) 385ms ✓ src/http/app.test.ts (20 tests) 3472ms ✓ E2E Tests > should create a new task and stream status updates (text-content) via POST / 1761ms ✓ E2E Tests > should create a new task, schedule a tool call, and wait for approval 390ms Test Files 14 passed (14) Tests 134 passed (134) Start at 10:09:34 Duration 77.44s (transform 47.00s, setup 0ms, collect 625.69s, tests 10.68s, environment 70ms, prepare 18.97s) JUNIT report written to /build/gemini-cli/src/gemini-cli/packages/a2a-server/junit.xml % Coverage report from v8 > @google/gemini-cli@0.42.0 test > vitest run --exclude=**/BuiltinCommandLoader.test.ts --exclude=**/config.integration.test.ts --exclude=**/gemini.test.tsx --exclude=**/mcp-client.test.ts --exclude=**/sandboxManager.integration.test.ts RUN v3.2.4 /build/gemini-cli/src/gemini-cli/packages/cli Coverage enabled with v8 ✓ src/ui/themes/theme.test.ts (14 tests) 481ms stderr | src/ui/themes/theme-manager.test.ts > ThemeManager > when loading a theme from a file > should not load a theme if the file does not exist Theme file at "./my-theme.json" is outside your home directory. Only load themes from trusted sources. stderr | src/ui/themes/theme-manager.test.ts > ThemeManager > when loading a theme from a file > should not load a theme from a file with invalid JSON Theme file at "./my-theme.json" is outside your home directory. Only load themes from trusted sources. ✓ src/ui/themes/theme-manager.test.ts (24 tests) 1077ms ✓ src/ui/themes/color-utils.test.ts (40 tests) 422ms ✓ src/config/settingPaths.test.ts (2 tests) 352ms ✓ src/config/auth.test.ts (8 tests) 83ms ✓ src/utils/updateEventEmitter.test.ts (1 test) 157ms ✓ src/config/extensionRegistryClient.test.ts (13 tests) 1501ms ✓ ExtensionRegistryClient > should return the second page of extensions 369ms ✓ src/utils/tierUtils.test.ts (3 tests) 406ms ✓ src/utils/persistentState.test.ts (5 tests) 182ms ✓ src/utils/events.test.ts (2 tests) 828ms ✓ events > should work with events without data 416ms ✓ src/utils/envVarResolver.test.ts (21 tests) 680ms ✓ src/utils/agentUtils.test.ts (8 tests) 489ms ✓ src/utils/readStdin_safety.test.ts (2 tests) 573ms ✓ readStdin EIO Reproduction > crashes (throws unhandled error) if EIO happens after readStdin completes 321ms ✓ src/utils/math.test.ts (7 tests) 550ms ✓ math > lerp > lerp(0, 10, 0) should return 0 305ms ✓ src/config/sandboxConfig.test.ts (43 tests) 1601ms ✓ loadSandboxConfig > should return undefined if sandbox is explicitly disabled via argv 324ms ✓ src/utils/readStdin.test.ts (8 tests) 2030ms ✓ readStdin > should truncate multi-byte characters at byte boundary 344ms ✓ readStdin > should use byte length instead of string length for limit 758ms ✓ src/utils/jsonoutput.test.ts (15 tests) 694ms ✓ src/utils/dialogScopeUtils.test.ts (4 tests) 278ms ✓ src/utils/cleanup.test.ts (17 tests) 1069ms ✓ cleanup > should run a registered synchronous function 416ms ✓ src/utils/sessions.test.ts (17 tests) 1148ms ✓ listSessions > should list sessions when sessions are found 663ms ✓ src/utils/logCleanup.test.ts (4 tests) 764ms ✓ logCleanup > should delete log files older than 7 days 353ms ✓ src/utils/resolvePath.test.ts (7 tests) 629ms ✓ src/utils/processUtils.test.ts (14 tests) 376ms ✓ src/utils/errors.test.ts (26 tests) 1292ms stdout | src/utils/gitUtils.test.ts > isGitHubRepository > returns false if the git command fails Failed to get git remote: Error: oops at /build/gemini-cli/src/gemini-cli/packages/cli/src/utils/gitUtils.test.ts:29:13 at mockCall (file:///build/gemini-cli/src/gemini-cli/node_modules/@vitest/spy/dist/index.js:96:15) at execSync (file:///build/gemini-cli/src/gemini-cli/node_modules/tinyspy/dist/index.js:47:80) at Module.isGitHubRepository (/build/gemini-cli/src/gemini-cli/packages/cli/src/utils/gitUtils.ts:18:7) at /build/gemini-cli/src/gemini-cli/packages/cli/src/utils/gitUtils.test.ts:31:12 at file:///build/gemini-cli/src/gemini-cli/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11 at file:///build/gemini-cli/src/gemini-cli/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26 at file:///build/gemini-cli/src/gemini-cli/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20 at new Promise () at runWithTimeout (file:///build/gemini-cli/src/gemini-cli/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10) ✓ src/utils/worktreeSetup.test.ts (4 tests) 716ms ✓ setupWorktree > should create and switch to a new worktree 502ms ✓ src/utils/startupWarnings.test.ts (4 tests) 619ms ✓ startupWarnings > should return warnings from the file and delete it 488ms ✓ src/utils/activityLogger.test.ts (8 tests) 587ms ✓ src/utils/devtoolsService.test.ts (17 tests) 848ms stdout | src/utils/gitUtils.test.ts > getLatestRelease > throws an error if the fetch fails Failed to determine latest run-gemini-cli release: nope stdout | src/utils/gitUtils.test.ts > getLatestRelease > throws an error if the fetch does not return a json body Failed to determine latest run-gemini-cli release: Error: Response did not include tag_name field at Module.getLatestGitHubRelease (/build/gemini-cli/src/gemini-cli/packages/cli/src/utils/gitUtils.ts:84:13)  at processTicksAndRejections (node:internal/process/task_queues:104:5) at /build/gemini-cli/src/gemini-cli/packages/cli/src/utils/gitUtils.test.ts:234:5 at file:///build/gemini-cli/src/gemini-cli/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20 ✓ src/ui/utils/markdownUtilities.test.ts (7 tests) 162ms ✓ src/ui/utils/urlSecurityUtils.test.ts (9 tests) 224ms ✓ src/ui/utils/toolLayoutUtils.test.ts (15 tests) 331ms ✓ src/utils/gitUtils.test.ts (24 tests) 1065ms ✓ isGitHubRepository > returns false if the git command fails 335ms ✓ src/utils/installationInfo.test.ts (18 tests) 607ms ✓ src/ui/utils/input.test.ts (6 tests) 584ms ✓ src/ui/utils/ConsolePatcher.test.ts (12 tests) 813ms ✓ ConsolePatcher > when stderr is false > should call onNewMessage for debug when debugMode is true 331ms ✓ src/utils/sandboxUtils.test.ts (17 tests) 432ms ✓ src/ui/utils/formatters.test.ts (32 tests) 917ms ✓ formatters > formatResetTime > should format full time correctly 551ms ✓ src/ui/utils/computeStats.test.ts (12 tests) 338ms ✓ src/ui/utils/textOutput.test.ts (10 tests) 637ms ✓ src/ui/hooks/shellReducer.test.ts (17 tests) 602ms ✓ src/ui/utils/latexToUnicode.test.ts (53 tests) 555ms ✓ src/ui/utils/terminalCapabilityManager.test.ts (38 tests) 784ms ✓ src/ui/utils/memorySnapshot.test.ts (3 tests) 236ms ✓ src/ui/utils/mouse.test.ts (17 tests) 432ms ✓ src/core/auth.test.ts (6 tests) 471ms ✓ auth > should return error message on failed auth 316ms ✓ src/ui/utils/clipboardUtils.windows.test.ts (1 test) 181ms ✓ src/config/mcp/mcpServerEnablement.test.ts (14 tests) 449ms ✓ src/ui/utils/rewindFileOps.test.ts (9 tests) 417ms stdout | src/ui/hooks/atCommandProcessor_agents.test.ts > handleAtCommand with Agents > should detect agent reference and add nudge message Ignore file not found: /tmp/agent-test-ZSAce8/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor_agents.test.ts > handleAtCommand with Agents > should handle multiple agents Ignore file not found: /tmp/agent-test-1Ql2Ct/.geminiignore, continue without it. ✓ src/acp/acpErrors.test.ts (7 tests) 132ms ✓ src/commands/utils.test.ts (2 tests) 69ms stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should pass through query if no @ command is present Ignore file not found: /tmp/folder-structure-test-V4Rw7x/.geminiignore, continue without it. ✓ src/ui/utils/markdownParsingUtils.test.ts (23 tests) 795ms stdout | src/ui/hooks/atCommandProcessor_agents.test.ts > handleAtCommand with Agents > should not treat non-agents as agents Ignore file not found: /tmp/agent-test-v08Zxz/.geminiignore, continue without it. ✓ src/services/liteRtServerManager.test.ts (2 tests) 409ms ✓ LiteRtServerManager > falls back to the default binary path when no custom path is configured 315ms stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should pass through original query if only a lone @ symbol is present Ignore file not found: /tmp/folder-structure-test-JxxnWG/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should process a valid text file path Ignore file not found: /tmp/folder-structure-test-D8l4w3/.geminiignore, continue without it. ✓ src/ui/commands/tasksCommand.test.ts (3 tests) 111ms ✓ src/ui/state/extensions.test.ts (15 tests) 416ms ✓ src/services/SlashCommandResolver.test.ts (14 tests) 406ms ✓ src/services/prompt-processors/injectionParser.test.ts (21 tests) 372ms ✓ src/utils/commands.test.ts (18 tests) 294ms stderr | src/ui/utils/commandUtils.test.ts > commandUtils > getUrlOpenCommand > on unmatched OS > should return xdg-open Unknown platform: unmatched. Attempting to open URLs with: xdg-open. ✓ src/ui/utils/commandUtils.test.ts (33 tests) 1535ms ✓ commandUtils > isAtCommand > should return true when query starts with @ 640ms stdout | src/ui/hooks/atCommandProcessor_agents.test.ts > handleAtCommand with Agents > should not treat non-agents as agents Ignore file not found: /tmp/agent-test-v08Zxz/.geminiignore, continue without it. ✓ src/utils/commentJson.test.ts (12 tests) 692ms ✓ commentJson > updateSettingsFilePreservingFormat > should preserve comments when updating settings 396ms ✓ src/ui/hooks/atCommandProcessor_agents.test.ts (3 tests) 1583ms ✓ handleAtCommand with Agents > should not treat non-agents as agents 1258ms stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should process a valid text file path Ignore file not found: /tmp/folder-structure-test-D8l4w3/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should process a valid directory path and convert to glob Ignore file not found: /tmp/folder-structure-test-rLUARe/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should process a valid directory path and convert to glob Ignore file not found: /tmp/folder-structure-test-rLUARe/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle query with text before and after @command Ignore file not found: /tmp/folder-structure-test-YiCNLk/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle query with text before and after @command Ignore file not found: /tmp/folder-structure-test-YiCNLk/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should correctly unescape paths with escaped spaces Ignore file not found: /tmp/folder-structure-test-LQAzPf/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should correctly unescape paths with escaped spaces Ignore file not found: /tmp/folder-structure-test-LQAzPf/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should correctly handle double-quoted paths with spaces Ignore file not found: /tmp/folder-structure-test-IYChVe/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should correctly handle double-quoted paths with spaces Ignore file not found: /tmp/folder-structure-test-IYChVe/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should correctly handle file paths with narrow non-breaking space (NNBSP) Ignore file not found: /tmp/folder-structure-test-QVPeu3/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should correctly handle file paths with narrow non-breaking space (NNBSP) Ignore file not found: /tmp/folder-structure-test-QVPeu3/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle multiple @file references Ignore file not found: /tmp/folder-structure-test-GQ0EYN/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle multiple @file references Ignore file not found: /tmp/folder-structure-test-GQ0EYN/.geminiignore, continue without it. stdout | src/ui/commands/setupGithubCommand.test.ts > setupGithubCommand > throws an error when download fails Failed to download required setup files: Error: Invalid response code downloading https://raw.githubusercontent.com/google-github-actions/run-gemini-cli/refs/tags/v1.2.3/examples/workflows/gemini-dispatch/gemini-dispatch.yml: 404 - Not Found at /build/gemini-cli/src/gemini-cli/packages/cli/src/ui/commands/setupGithubCommand.ts:136:17 at async Promise.all (index 0) at downloadFiles (/build/gemini-cli/src/gemini-cli/packages/cli/src/ui/commands/setupGithubCommand.ts:163:3) at async Promise.all (index 0) at downloadSetupFiles (/build/gemini-cli/src/gemini-cli/packages/cli/src/ui/commands/setupGithubCommand.ts:189:5) at Object.action (/build/gemini-cli/src/gemini-cli/packages/cli/src/ui/commands/setupGithubCommand.ts:245:5) at /build/gemini-cli/src/gemini-cli/packages/cli/src/ui/commands/setupGithubCommand.test.ts:215:5 at file:///build/gemini-cli/src/gemini-cli/node_modules/@vitest/runner/dist/chunk-hooks.js:752:20 ✓ src/ui/commands/setupGithubCommand.test.ts (10 tests) 1450ms ✓ setupGithubCommand > downloads workflows, updates gitignore, and includes pipefail on non-windows 863ms ✓ src/config/extensions/update.test.ts (14 tests) 664ms ✓ src/services/SlashCommandConflictHandler.test.ts (7 tests) 610ms ✓ src/ui/key/keybindingUtils.test.ts (38 tests) 472ms stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle multiple @file references with interleaved text Ignore file not found: /tmp/folder-structure-test-WfW2Ou/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle multiple @file references with interleaved text Ignore file not found: /tmp/folder-structure-test-WfW2Ou/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle a mix of valid, invalid, and lone @ references Ignore file not found: /tmp/folder-structure-test-FD7qcD/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle a mix of valid, invalid, and lone @ references Ignore file not found: /tmp/folder-structure-test-FD7qcD/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle a mix of valid, invalid, and lone @ references Ignore file not found: /tmp/folder-structure-test-FD7qcD/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should return original query if all @paths are invalid or lone @ Ignore file not found: /tmp/folder-structure-test-CuRpHE/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should return original query if all @paths are invalid or lone @ Ignore file not found: /tmp/folder-structure-test-CuRpHE/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > git-aware filtering > should skip git-ignored files in @ commands Ignore file not found: /tmp/folder-structure-test-0leLGE/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > git-aware filtering > should skip git-ignored files in @ commands Ignored 1 files: Git-ignored: /tmp/folder-structure-test-0leLGE/node_modules/package.json stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > git-aware filtering > should process non-git-ignored files normally Ignore file not found: /tmp/folder-structure-test-Ey8Dzu/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > git-aware filtering > should process non-git-ignored files normally Ignore file not found: /tmp/folder-structure-test-Ey8Dzu/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > git-aware filtering > should handle mixed git-ignored and valid files Ignore file not found: /tmp/folder-structure-test-TFgWxe/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > git-aware filtering > should handle mixed git-ignored and valid files Ignored 1 files: Git-ignored: /tmp/folder-structure-test-TFgWxe/.env ✓ src/services/McpPromptLoader.test.ts (31 tests) 471ms ✓ src/acp/acpFileSystemService.test.ts (10 tests) 537ms ✓ src/ui/hooks/toolMapping.test.ts (22 tests) 243ms ✓ src/config/extensions/github_fetch.test.ts (8 tests) 195ms ✓ src/commands/gemma/logs.test.ts (5 tests) 671ms ✓ readLastLines > returns only the requested tail lines without reading the whole file eagerly 424ms stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > git-aware filtering > should handle mixed git-ignored and valid files Ignore file not found: /tmp/folder-structure-test-TFgWxe/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > git-aware filtering > should always ignore .git directory files Ignore file not found: /tmp/folder-structure-test-XLzpC9/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > git-aware filtering > should always ignore .git directory files Ignored 1 files: Git-ignored: /tmp/folder-structure-test-XLzpC9/.git/config stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > when recursive file search is disabled > should not use glob search for a nonexistent file Ignore file not found: /tmp/folder-structure-test-YYfRCe/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > gemini-ignore filtering > should skip gemini-ignored files in @ commands Loading ignore patterns from: /tmp/folder-structure-test-vElh8p/.geminiignore stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > gemini-ignore filtering > should skip gemini-ignored files in @ commands Ignored 1 files: Gemini-ignored: /tmp/folder-structure-test-vElh8p/build/output.js stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should process non-ignored files when .geminiignore is present Loading ignore patterns from: /tmp/folder-structure-test-LbrFt5/.geminiignore stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should process non-ignored files when .geminiignore is present Loading ignore patterns from: /tmp/folder-structure-test-LbrFt5/.geminiignore stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle mixed gemini-ignored and valid files Loading ignore patterns from: /tmp/folder-structure-test-3bit95/.geminiignore stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle mixed gemini-ignored and valid files Ignored 1 files: Gemini-ignored: /tmp/folder-structure-test-3bit95/dist/bundle.js stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should handle mixed gemini-ignored and valid files Loading ignore patterns from: /tmp/folder-structure-test-3bit95/.geminiignore stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'comma' Ignore file not found: /tmp/folder-structure-test-mry7YN/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'comma' Ignore file not found: /tmp/folder-structure-test-mry7YN/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'period' Ignore file not found: /tmp/folder-structure-test-HPgKan/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'period' Ignore file not found: /tmp/folder-structure-test-HPgKan/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'semicolon' Ignore file not found: /tmp/folder-structure-test-O34EzI/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'semicolon' Ignore file not found: /tmp/folder-structure-test-O34EzI/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'exclamation mark' Ignore file not found: /tmp/folder-structure-test-DUQ3jg/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'exclamation mark' Ignore file not found: /tmp/folder-structure-test-DUQ3jg/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'question mark' Ignore file not found: /tmp/folder-structure-test-iB3tj0/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'question mark' Ignore file not found: /tmp/folder-structure-test-iB3tj0/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'opening parenthesis' Ignore file not found: /tmp/folder-structure-test-3Uhxfp/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'opening parenthesis' Ignore file not found: /tmp/folder-structure-test-3Uhxfp/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'closing parenthesis' Ignore file not found: /tmp/folder-structure-test-atBDef/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'closing parenthesis' Ignore file not found: /tmp/folder-structure-test-atBDef/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'opening square bracket' Ignore file not found: /tmp/folder-structure-test-byoIQO/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'opening square bracket' Ignore file not found: /tmp/folder-structure-test-byoIQO/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'closing square bracket' Ignore file not found: /tmp/folder-structure-test-Bk0j01/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'closing square bracket' Ignore file not found: /tmp/folder-structure-test-Bk0j01/.geminiignore, continue without it. ✓ src/utils/windowTitle.test.ts (14 tests) 483ms ✓ src/ui/utils/directoryUtils.test.ts (17 tests | 1 skipped) 235ms ✓ src/ui/key/keyBindings.test.ts (22 tests) 773ms ✓ src/ui/key/keyMatchers.test.ts (62 tests) 1091ms stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'opening curly brace' Ignore file not found: /tmp/folder-structure-test-y0ZmFt/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'opening curly brace' Ignore file not found: /tmp/folder-structure-test-y0ZmFt/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'closing curly brace' Ignore file not found: /tmp/folder-structure-test-xprVYX/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should terminate @path at 'closing curly brace' Ignore file not found: /tmp/folder-structure-test-xprVYX/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should handle multiple @paths terminated by different punctuation Ignore file not found: /tmp/folder-structure-test-8nhLmT/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should handle multiple @paths terminated by different punctuation Ignore file not found: /tmp/folder-structure-test-8nhLmT/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should still handle escaped spaces in paths before punctuation Ignore file not found: /tmp/folder-structure-test-u0prG6/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should still handle escaped spaces in paths before punctuation Ignore file not found: /tmp/folder-structure-test-u0prG6/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should not break file paths with periods in extensions Ignore file not found: /tmp/folder-structure-test-mtsHr0/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should not break file paths with periods in extensions Ignore file not found: /tmp/folder-structure-test-mtsHr0/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should handle file paths ending with period followed by space Ignore file not found: /tmp/folder-structure-test-yhu74g/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should handle file paths ending with period followed by space Ignore file not found: /tmp/folder-structure-test-yhu74g/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should handle comma termination with complex file paths Ignore file not found: /tmp/folder-structure-test-NmTmnc/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should handle comma termination with complex file paths Ignore file not found: /tmp/folder-structure-test-NmTmnc/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should correctly handle file paths with multiple periods Ignore file not found: /tmp/folder-structure-test-wiSKAP/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should correctly handle file paths with multiple periods Ignore file not found: /tmp/folder-structure-test-wiSKAP/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should handle end of string termination for period and comma Ignore file not found: /tmp/folder-structure-test-c5lSRV/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should handle end of string termination for period and comma Ignore file not found: /tmp/folder-structure-test-c5lSRV/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should handle files with special characters in names Ignore file not found: /tmp/folder-structure-test-Ejo6xy/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should handle files with special characters in names Ignore file not found: /tmp/folder-structure-test-Ejo6xy/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should handle basic file names without special characters Ignore file not found: /tmp/folder-structure-test-tPGdBd/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > punctuation termination in @ commands > should handle basic file names without special characters Ignore file not found: /tmp/folder-structure-test-tPGdBd/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > absolute path handling > should handle absolute file paths correctly Ignore file not found: /tmp/folder-structure-test-FJThAU/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > absolute path handling > should handle absolute file paths correctly Ignore file not found: /tmp/folder-structure-test-FJThAU/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > absolute path handling > should handle absolute directory paths correctly Ignore file not found: /tmp/folder-structure-test-IJAslS/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > absolute path handling > should handle absolute directory paths correctly Ignore file not found: /tmp/folder-structure-test-IJAslS/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should not add the user's turn to history, as that is the caller's responsibility Ignore file not found: /tmp/folder-structure-test-HWbZGx/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should not add the user's turn to history, as that is the caller's responsibility Ignore file not found: /tmp/folder-structure-test-HWbZGx/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > MCP resource attachments > attaches MCP resource content when @serverName:uri matches registry Ignore file not found: /tmp/folder-structure-test-rHRbyv/.geminiignore, continue without it. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > MCP resource attachments > returns an error if MCP client is unavailable Ignore file not found: /tmp/folder-structure-test-ELy2VA/.geminiignore, continue without it. stderr | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > MCP resource attachments > returns an error if MCP client is unavailable Exiting due to an error processing the @ command: Error reading resource resource://server-1/logs: MCP client for server 'server-1' is not available or not connected. stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should return error if the read_many_files tool is cancelled by user Ignore file not found: /tmp/folder-structure-test-tBiJzb/.geminiignore, continue without it. stderr | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should return error if the read_many_files tool is cancelled by user Exiting due to an error processing the @ command: Error reading files (file.txt): User cancelled operation stdout | src/ui/hooks/atCommandProcessor.test.ts > handleAtCommand > should include agent nudge when agents are found Ignore file not found: /tmp/folder-structure-test-ZAsEdD/.geminiignore, continue without it. ✓ src/ui/hooks/atCommandProcessor.test.ts (59 tests) 3673ms ✓ handleAtCommand > should pass through query if no @ command is present 463ms ✓ handleAtCommand > should process a valid text file path 1212ms ✓ src/acp/commands/restore.test.ts (13 tests) 534ms ✓ src/ui/hooks/creditsFlowHandler.test.ts (14 tests) 1132ms ✓ handleCreditsFlow > should show overage menu and return retry_with_credits when use_credits selected 434ms ✓ src/utils/userStartupWarnings.test.ts (17 tests) 880ms ✓ getUserStartupWarnings > home directory check > should not return a warning when GEMINI_CLI_HOME differs from os.homedir 360ms stdout | src/commands/extensions/new.test.ts > extensions new command > should create directory when no template is provided Successfully created new extension at /some/path. You can install this using "gemini extensions link /some/path" to test it out. stdout | src/commands/extensions/new.test.ts > extensions new command > should create directory and copy files when path does not exist Successfully created new extension from template "context" at /some/path. You can install this using "gemini extensions link /some/path" to test it out. ✓ src/commands/extensions/new.test.ts (4 tests) 1153ms ✓ extensions new command > should fail if no path is provided 574ms ✓ extensions new command > should create directory when no template is provided 393ms ✓ src/commands/gemma/stop.test.ts (3 tests) 262ms ✓ src/ui/utils/updateCheck.test.ts (15 tests) 632ms ✓ src/acp/commands/help.test.ts (1 test) 94ms ✓ src/commands/gemma/platform.test.ts (8 tests) 454ms ✓ src/config/extensions/variables.test.ts (13 tests) 262ms ✓ src/config/settingsSchema.test.ts (28 tests) 974ms ✓ SettingsSchema > getSettingsSchema > should have correct structure for each setting 429ms ✓ src/utils/deepMerge.test.ts (17 tests) 376ms ✓ src/config/extensions/extensionEnablement.test.ts (48 tests) 1038ms ✓ src/ui/hooks/shell-completions/npmProvider.test.ts (5 tests) 224ms ✓ src/ui/hooks/shell-completions/gitProvider.test.ts (5 tests) 131ms ✓ src/services/CommandService.test.ts (5 tests) 171ms ✓ src/services/SkillCommandLoader.test.ts (8 tests) 324ms ✓ src/utils/settingsUtils.test.ts (49 tests) 902ms ✓ src/utils/terminalNotifications.test.ts (16 tests) 298ms ✓ src/utils/sessionUtils.test.ts (30 tests) 1040ms ✓ src/ui/utils/textUtils.test.ts (76 tests) 973ms ✓ src/commands/skills/install.test.ts (6 tests) 511ms ✓ src/utils/sessionCleanup.integration.test.ts (6 tests) 492ms ✓ src/utils/toolOutputCleanup.test.ts (10 tests) 490ms ✓ src/ui/components/SessionBrowser/utils.test.ts (9 tests) 260ms ✓ src/config/extensions/storage.test.ts (5 tests) 270ms ✓ src/config/settings-validation.test.ts (31 tests) 385ms ✓ src/utils/sessionCleanup.test.ts (66 tests) 1547ms ✓ src/ui/utils/displayUtils.test.ts (8 tests) 419ms ✓ src/config/extensions/extensionSettings.test.ts (33 tests) 1089ms ✓ src/core/theme.test.ts (3 tests) 212ms ✓ src/config/policy-engine.integration.test.ts (19 tests) 2643ms ✓ Policy Engine Integration Tests > Policy configuration produces valid PolicyEngine config > should create a working PolicyEngine from basic settings 621ms ✓ src/utils/featureToggleUtils.test.ts (7 tests) 288ms ✓ src/utils/hookUtils.test.ts (8 tests) 168ms ✓ src/config/policy.test.ts (10 tests) 733ms ✓ resolveWorkspacePolicyState > should return policy directory if integrity matches 431ms ✓ src/utils/hookSettings.test.ts (8 tests) 258ms ✓ src/ui/utils/ui-sizing.test.ts (4 tests) 224ms ✓ src/commands/skills/link.test.ts (3 tests) 182ms ✓ src/commands/skills/uninstall.test.ts (5 tests) 377ms ✓ src/config/settings_validation_warning.test.ts (3 tests) 518ms ✓ Settings Validation Warning > should emit a warning and NOT throw when settings are invalid 339ms ✓ src/utils/handleAutoUpdate.test.ts (28 tests) 511ms ✓ src/utils/skillSettings.test.ts (10 tests) 212ms ✓ src/config/settings_repro.test.ts (1 test) 277ms ✓ src/config/trustedFolders.test.ts (32 tests) 855ms ✓ Trusted Folders > Locking & Concurrency > setValue should handle concurrent calls correctly using real lockfile 362ms stdout | src/ui/utils/terminalSetup.test.ts > terminalSetup > shouldPromptForTerminalSetup > should return true when keybindings file does not exist Failed to read or parse keybindings, assuming prompt is needed: Error: ENOENT ✓ src/ui/utils/terminalSetup.test.ts (12 tests) 495ms ✓ src/test-utils/mockCommandContext.test.ts (3 tests) 290ms ✓ src/ui/commands/terminalSetupCommand.test.ts (5 tests) 144ms ✓ src/validateNonInterActiveAuth.test.ts (17 tests) 516ms ✓ src/config/settings-env-isolation.test.ts (9 tests) 228ms ✓ src/ui/commands/ideCommand.test.ts (8 tests) 509ms ✓ src/core/initializer.test.ts (5 tests) 360ms ✓ src/config/settings.test.ts (110 tests) 8710ms ✓ Settings Loading and Merging > loadSettings > should load 'system' settings if only 'system' file exists 374ms ✓ LoadedSettings Isolation and Serializability > setValue Serializability > should handle circular references (structuredClone supports them, but deepMerge may not) 2071ms ✓ src/deferred.test.ts (9 tests) 599ms ✓ src/ui/commands/bugMemoryCommand.test.ts (4 tests) 361ms ✓ src/ui/commands/aboutCommand.test.ts (6 tests) 387ms ✓ src/ui/commands/compressCommand.test.ts (6 tests) 1081ms ✓ compressCommand > should do nothing if a compression is already pending 402ms ✓ src/services/prompt-processors/argumentProcessor.test.ts (2 tests) 443ms ✓ src/ui/commands/quitCommand.test.ts (3 tests) 670ms stdout | src/commands/mcp/add.test.ts > mcp add command > should add a stdio server to project settings MCP server "my-server" added to project settings. (stdio) stdout | src/commands/mcp/add.test.ts > mcp add command > should handle multiple env vars before positional args MCP server "my-server" added to project settings. (stdio) stdout | src/commands/mcp/add.test.ts > mcp add command > should add an sse server to user settings MCP server "sse-server" added to user settings. (sse) stdout | src/commands/mcp/add.test.ts > mcp add command > should add an http server to project settings MCP server "http-server" added to project settings. (http) stdout | src/commands/mcp/add.test.ts > mcp add command > should add an sse server using --type alias MCP server "sse-server" added to user settings. (sse) stdout | src/commands/mcp/add.test.ts > mcp add command > should add an http server using --type alias MCP server "http-server" added to project settings. (http) stdout | src/commands/mcp/add.test.ts > mcp add command > should handle MCP server args with -- separator MCP server "my-server" added to project settings. (stdio) stdout | src/commands/mcp/add.test.ts > mcp add command > should handle unknown options as MCP server args MCP server "test-server" added to project settings. (stdio) stdout | src/commands/mcp/add.test.ts > mcp add command > when handling scope and directory > when in a project directory > should use project scope by default MCP server "test-server" added to project settings. (stdio) stdout | src/commands/mcp/add.test.ts > mcp add command > when handling scope and directory > when in a project directory > should use project scope when --scope=project is used MCP server "test-server" added to project settings. (stdio) stdout | src/commands/mcp/add.test.ts > mcp add command > when handling scope and directory > when in a project directory > should use user scope when --scope=user is used MCP server "test-server" added to user settings. (stdio) stdout | src/commands/mcp/add.test.ts > mcp add command > when handling scope and directory > when in a subdirectory of a project > should use project scope by default MCP server "test-server" added to project settings. (stdio) stdout | src/commands/mcp/add.test.ts > mcp add command > when handling scope and directory > when in the home directory > should use user scope when --scope=user is used MCP server "test-server" added to user settings. (stdio) stdout | src/commands/mcp/add.test.ts > mcp add command > when handling scope and directory > when in a subdirectory of home (not a project) > should use project scope by default MCP server "test-server" added to project settings. (stdio) stdout | src/commands/mcp/add.test.ts > mcp add command > when handling scope and directory > when in a subdirectory of home (not a project) > should write to the WORKSPACE scope, not the USER scope MCP server "my-new-server" added to project settings. (stdio) stdout | src/commands/mcp/add.test.ts > mcp add command > when handling scope and directory > when outside of home (not a project) > should use project scope by default MCP server "test-server" added to project settings. (stdio) stdout | src/commands/mcp/add.test.ts > mcp add command > when updating an existing server > should update the existing server in the project scope MCP server "existing-server" is already configured within project settings. MCP server "existing-server" updated in project settings. stdout | src/commands/mcp/add.test.ts > mcp add command > when updating an existing server > should update the existing server in the user scope MCP server "existing-server" is already configured within user settings. MCP server "existing-server" updated in user settings. ✓ src/commands/mcp/add.test.ts (20 tests) 1587ms ✓ mcp add command > should add a stdio server to project settings 517ms ✓ src/ui/commands/corgiCommand.test.ts (2 tests) 501ms ✓ corgiCommand > should call the toggleCorgiMode function on the UI context 420ms ✓ src/ui/commands/restoreCommand.test.ts (13 tests) 1007ms ✓ restoreCommand > should return null if checkpointing is not enabled 303ms ✓ src/ui/commands/agentsCommand.test.ts (21 tests) 1586ms ✓ agentsCommand > should show an error if config is not available 397ms ✓ src/ui/commands/helpCommand.test.ts (2 tests) 467ms ✓ src/ui/commands/privacyCommand.test.ts (2 tests) 465ms ✓ privacyCommand > should return a dialog action to open the privacy dialog 364ms ✓ src/ui/commands/copyCommand.test.ts (11 tests) 587ms ✓ src/ui/commands/settingsCommand.test.ts (2 tests) 289ms ✓ src/config/footerItems.test.ts (13 tests) 556ms ✓ src/ui/commands/toolsCommand.test.ts (9 tests) 435ms ✓ src/ui/commands/planCommand.test.ts (7 tests) 518ms ✓ src/ui/commands/policiesCommand.test.ts (5 tests) 519ms ✓ src/ui/commands/docsCommand.test.ts (3 tests) 397ms ✓ src/ui/commands/statsCommand.test.ts (4 tests) 373ms ✓ src/ui/commands/authCommand.test.ts (9 tests) 517ms ✓ src/ui/commands/initCommand.test.ts (3 tests) 325ms ✓ src/ui/commands/upgradeCommand.test.ts (6 tests) 427ms ✓ src/ui/commands/editorCommand.test.ts (2 tests) 215ms ✓ src/ui/commands/themeCommand.test.ts (2 tests) 232ms ✓ src/ui/commands/permissionsCommand.test.ts (7 tests) 424ms ✓ src/ui/commands/modelCommand.test.ts (8 tests) 562ms ✓ src/acp/commands/extensions.test.ts (2 tests) 139ms ✓ src/utils/relaunch.test.ts (9 tests) 822ms ✓ relaunchOnExitCode > should handle runner errors 347ms ✓ src/ui/commands/clearCommand.test.ts (2 tests) 301ms ✓ src/services/prompt-processors/atFileProcessor.test.ts (11 tests) 630ms ✓ src/ui/commands/chatCommand.test.ts (33 tests) 1240ms ✓ src/ui/commands/mcpCommand.test.ts (7 tests) 763ms ✓ src/utils/skillUtils.test.ts (11 tests) 839ms ✓ skillUtils > linkSkill > should successfully link from a local directory 420ms ✓ src/ui/commands/resumeCommand.test.ts (3 tests) 110ms ✓ src/ui/utils/pendingAttentionNotification.test.ts (3 tests) 363ms stdout | src/commands/mcp/remove.test.ts > mcp remove command > unit tests with mocks > should remove a server from project settings Server "test-server" removed from project settings. ✓ src/commands/mcp/remove.test.ts (6 tests) 988ms ✓ mcp remove command > unit tests with mocks > should remove a server from project settings 360ms ✓ src/config/extensions/github.test.ts (34 tests) 761ms (node:30937) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 error listeners added to [EventEmitter]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (Use `node --trace-warnings ...` to show where the warning was created) ✓ src/utils/agentSettings.test.ts (6 tests) 237ms ✓ src/commands/hooks/migrate.test.ts (17 tests) 491ms ✓ src/services/prompt-processors/shellProcessor.test.ts (34 tests) 1606ms ✓ src/commands/extensions/disable.test.ts (12 tests) 438ms stderr | src/gemini_cleanup.test.tsx > gemini.tsx main function cleanup > should not register ConsolePatcher cleanup in ACP mode Warning: Theme "default" not found. stderr | src/gemini_cleanup.test.tsx > gemini.tsx main function cleanup > should register ConsolePatcher cleanup in non-ACP mode [STARTUP] Cannot start phase 'cli_startup': phase is already active. Call end() before starting again. [STARTUP] Cannot start phase 'cleanup_ops': phase is already active. Call end() before starting again. stderr | src/gemini_cleanup.test.tsx > gemini.tsx main function cleanup > should register ConsolePatcher cleanup in non-ACP mode Warning: Theme "default" not found. stderr | src/gemini_cleanup.test.tsx > gemini.tsx main function cleanup > should register ConsolePatcher cleanup in non-ACP mode [STARTUP] Phase 'cli_startup' was started but never ended. Skipping metrics. ✓ src/gemini_cleanup.test.tsx (4 tests | 1 skipped) 501ms ✓ gemini.tsx main function cleanup > should register SessionEnd hook exactly once in non-interactive mode 360ms ✓ src/commands/extensions/uninstall.test.ts (12 tests) 311ms stderr | src/config/extension.test.ts > extension tests > installExtension > should prompt for settings if promptForSettings Extension "my-local-extension" has missing settings: API Key. Please run "gemini extensions config my-local-extension [setting-name]" to configure them. stderr | src/config/extension.test.ts > extension tests > installExtension > should not prompt for settings if promptForSettings is false Extension "my-local-extension" has missing settings: API Key. Please run "gemini extensions config my-local-extension [setting-name]" to configure them. stderr | src/config/extension.test.ts > extension tests > installExtension > should auto-update if settings have changed Extension "my-auto-update-ext" has missing settings: OLD_SETTING. Please run "gemini extensions config my-auto-update-ext [setting-name]" to configure them. stderr | src/config/extension.test.ts > extension tests > installExtension > should auto-update if settings have changed Extension "my-auto-update-ext" has missing settings: NEW_SETTING. Please run "gemini extensions config my-auto-update-ext [setting-name]" to configure them. ✓ src/config/extension.test.ts (82 tests) 7058ms ✓ extension tests > loadExtensions > should include extension path in loaded extension 455ms ✓ src/config/extension-manager-skills.test.ts (3 tests) 2822ms ✓ ExtensionManager skills validation > should emit a warning during install if skills directory is not empty but no skills are loaded 2042ms ✓ ExtensionManager skills validation > should emit a warning during load if skills directory is not empty but no skills are loaded 389ms ✓ ExtensionManager skills validation > should succeed if skills are correctly loaded 361ms ✓ src/ui/components/shared/vim-buffer-actions.test.ts (196 tests) 1408ms ✓ src/ui/utils/highlight.test.ts (22 tests) 269ms ✓ src/commands/gemma/setup.test.ts (3 tests) 289ms ✓ src/config/extension-manager.test.ts (15 tests) 5098ms ✓ ExtensionManager > loadExtensions parallel loading > should prevent concurrent loading and return the same promise 411ms ✓ ExtensionManager > symlink handling > preserves symlinks in installMetadata.source when linking 1450ms ✓ ExtensionManager > symlink handling > works with the new install command logic (preserves symlink but trusts real path) 394ms ✓ ExtensionManager > Extension Renaming > should support renaming an extension during update 404ms ✓ ExtensionManager > Extension Renaming > should carry over enablement status when renaming 779ms ✓ ExtensionManager > Extension Renaming > should prevent renaming if the new name conflicts with an existing extension 311ms ✓ ExtensionManager > extension integrity > should store integrity data during installation 372ms ✓ src/config/extension-manager-permissions.test.ts (3 tests) 461ms ✓ copyExtension permissions > should make destination writable even if source is read-only 314ms ✓ src/commands/extensions/install.test.ts (14 tests) 565ms ✓ src/config/extension-manager-themes.spec.ts (2 tests) 2038ms ✓ ExtensionManager theme loading > should register themes from an extension when started 527ms ✓ ExtensionManager theme loading > should revert to default theme when extension is stopped 1449ms ✓ src/commands/skills/enable.test.ts (4 tests) 219ms ✓ src/commands/skills/disable.test.ts (4 tests) 450ms ✓ src/commands/extensions/enable.test.ts (9 tests) 460ms ✓ src/commands/extensions/list.test.ts (8 tests) 331ms ✓ src/ui/commands/skillsCommand.test.ts (24 tests) 1689ms ✓ skillsCommand > should add a SKILLS_LIST item to UI with descriptions by default 321ms ✓ src/commands/skills.test.tsx (3 tests) 290ms stdout | src/commands/mcp/list.test.ts > mcp list command > should display connected status even if ping fails MCP ping failed for test-server, but connect succeeded: Error: Ping failed at /build/gemini-cli/src/gemini-cli/packages/cli/src/commands/mcp/list.test.ts:233:39 at file:///build/gemini-cli/src/gemini-cli/node_modules/@vitest/runner/dist/chunk-hooks.js:155:11 at file:///build/gemini-cli/src/gemini-cli/node_modules/@vitest/runner/dist/chunk-hooks.js:752:26 at file:///build/gemini-cli/src/gemini-cli/node_modules/@vitest/runner/dist/chunk-hooks.js:1897:20 at new Promise () at runWithTimeout (file:///build/gemini-cli/src/gemini-cli/node_modules/@vitest/runner/dist/chunk-hooks.js:1863:10) at runTest (file:///build/gemini-cli/src/gemini-cli/node_modules/@vitest/runner/dist/chunk-hooks.js:1574:12)  at processTicksAndRejections (node:internal/process/task_queues:104:5) at runSuite (file:///build/gemini-cli/src/gemini-cli/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) at runSuite (file:///build/gemini-cli/src/gemini-cli/node_modules/@vitest/runner/dist/chunk-hooks.js:1729:8) ✓ src/commands/mcp/list.test.ts (11 tests) 732ms ✓ src/ui/commands/hooksCommand.test.ts (33 tests) 1455ms ✓ src/config/extensions/extensionUpdates.test.ts (2 tests) 379ms ✓ extensionUpdates > ExtensionManager integration > should warn about missing settings after update 304ms ✓ src/ui/commands/bugCommand.test.ts (6 tests) 530ms stderr | src/commands/extensions/validate.test.ts > handleValidate > should warn if version is not formatted with semver Validation warnings: - Warning: Version '1' does not appear to be standard semver (e.g., 1.0.0). ✓ src/commands/extensions/validate.test.ts (5 tests) 763ms ✓ handleValidate > should validate an extension from a local dir 305ms ✓ src/commands/extensions/link.test.ts (5 tests) 233ms ✓ src/commands/extensions/update.test.ts (10 tests) 340ms ✓ src/commands/extensions.test.tsx (3 tests) 183ms ✓ src/ui/commands/commandsCommand.test.ts (4 tests) 590ms ✓ src/config/extension-manager-agents.test.ts (2 tests) 22399ms ✓ ExtensionManager agents loading > should load agents from an extension 21549ms ✓ ExtensionManager agents loading > should log errors but continue if an agent fails to load 824ms ✓ src/config/extension-manager-hydration.test.ts (4 tests) 27257ms ✓ ExtensionManager hydration > should hydrate skill body with extension settings 21487ms ✓ ExtensionManager hydration > should hydrate agent system prompt with extension settings 1516ms ✓ ExtensionManager hydration > should hydrate hooks with extension settings 2401ms ✓ ExtensionManager hydration > should pick up new settings after restartExtension 1826ms ✓ src/ui/utils/clipboardUtils.test.ts (44 tests) 103703ms ✓ clipboardUtils > clipboardHasImage (Linux) > should return true when wl-paste shows image type (Wayland) 1093ms ✓ clipboardUtils > clipboardHasImage (Linux) > should return true when xclip shows image type (X11) 922ms ✓ clipboardUtils > clipboardHasImage (Linux) > should return false if tool fails 1289ms ✓ clipboardUtils > clipboardHasImage (Linux) > should return false if no image type is found 933ms ✓ clipboardUtils > clipboardHasImage (Linux) > should return false if tool not found 1307ms ✓ clipboardUtils > saveClipboardImage (Linux) > should save image using wl-paste if detected 1983ms ✓ clipboardUtils > saveClipboardImage (Linux) > should return null if wl-paste fails 1268ms ✓ clipboardUtils > saveClipboardImage (Linux) > should save image using xclip if detected 1027ms ✓ clipboardUtils > saveClipboardImage (Linux) > should return null if tool is not yet detected 2807ms ✓ clipboardUtils > cleanupOldClipboardImages > should not throw errors 1523ms ✓ clipboardUtils > cleanupOldClipboardImages > should complete without errors on valid directory 3702ms ✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape empty string 3892ms ✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape single path no spaces 3886ms ✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape simple space-separated paths 4269ms ✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape three paths 5812ms ✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape escaped spaces 4114ms ✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape multiple paths with escaped spaces 3010ms ✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape multiple escaped spaces 2407ms ✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape consecutive spaces 2760ms ✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape trailing/leading whitespace 1394ms ✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape whitespace only 3889ms ✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape quoted path with spaces 4149ms ✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape mixed quoted and unquoted 2525ms ✓ clipboardUtils > splitDragAndDropPaths > in posix > should escape quoted with escaped quotes 4525ms ✓ clipboardUtils > splitDragAndDropPaths > in windows > should split double quoted path 3222ms ✓ clipboardUtils > splitDragAndDropPaths > in windows > should split multiple double quoted paths 2137ms ✓ clipboardUtils > splitDragAndDropPaths > in windows > should split unquoted path 1602ms ✓ clipboardUtils > splitDragAndDropPaths > in windows > should split mixed quoted and unquoted 2024ms ✓ clipboardUtils > splitDragAndDropPaths > in windows > should split single quoted path 6094ms ✓ clipboardUtils > splitDragAndDropPaths > in windows > should split mixed single and double quoted 3026ms ✓ clipboardUtils > parsePastedPaths > should return null for empty string 6066ms ✓ clipboardUtils > parsePastedPaths > should add @ prefix to single valid path 3173ms ✓ clipboardUtils > parsePastedPaths > should return null for single invalid path 1410ms ✓ clipboardUtils > parsePastedPaths > should add @ prefix to all valid paths 1426ms ✓ clipboardUtils > parsePastedPaths > should return null if any path is invalid 533ms ✓ clipboardUtils > parsePastedPaths > should return null if no paths are valid 662ms ✓ clipboardUtils > parsePastedPaths > in posix > should handle paths with escaped spaces 589ms ✓ clipboardUtils > parsePastedPaths > in posix > should unescape paths before validation 571ms ✓ clipboardUtils > parsePastedPaths > in posix > should handle single path with unescaped spaces from copy-paste 448ms ✓ clipboardUtils > parsePastedPaths > in posix > should handle single-quoted with escaped quote 1242ms ✓ clipboardUtils > parsePastedPaths > in windows > should handle Windows path 763ms ✓ clipboardUtils > parsePastedPaths > in windows > should handle Windows path with unescaped spaces 1695ms ✓ clipboardUtils > parsePastedPaths > in windows > should handle multiple Windows paths 1249ms ✓ clipboardUtils > parsePastedPaths > in windows > should handle Windows UNC path 1177ms ✓ src/services/FileCommandLoader.test.ts (44 tests) 38608ms ✓ FileCommandLoader > loads a single command from a file 701ms ✓ FileCommandLoader > loads commands from a symlinked directory 754ms ✓ FileCommandLoader > loads commands from a symlinked subdirectory 689ms ✓ FileCommandLoader > loads multiple commands 573ms ✓ FileCommandLoader > creates deeply nested namespaces correctly 1158ms ✓ FileCommandLoader > creates namespaces from nested directories 851ms ✓ FileCommandLoader > returns both user and project commands in order 1853ms ✓ FileCommandLoader > ignores files with TOML syntax errors 4286ms ✓ FileCommandLoader > ignores files that are semantically invalid (missing prompt) 1474ms ✓ FileCommandLoader > handles filename edge cases correctly 1481ms ✓ FileCommandLoader > handles file system errors gracefully 2843ms ✓ FileCommandLoader > uses a default description if not provided 3255ms ✓ FileCommandLoader > uses the provided description 765ms ✓ FileCommandLoader > should sanitize colons in filenames to prevent namespace conflicts 2379ms ✓ FileCommandLoader > Processor Instantiation Logic > instantiates only DefaultArgumentProcessor if no {{args}} or !{} are present 749ms ✓ FileCommandLoader > Processor Instantiation Logic > instantiates only ShellProcessor if {{args}} is present (but not !{}) 664ms ✓ FileCommandLoader > Processor Instantiation Logic > instantiates ShellProcessor and DefaultArgumentProcessor if !{} is present (but not {{args}}) 815ms ✓ FileCommandLoader > Processor Instantiation Logic > instantiates only ShellProcessor if both {{args}} and !{} are present 604ms ✓ FileCommandLoader > Processor Instantiation Logic > instantiates only ShellProcessor and AtFileProcessor if {{args}} and @{} are present 433ms ✓ FileCommandLoader > Extension Command Loading > handles missing extension commands directory gracefully 325ms ✓ FileCommandLoader > Extension Command Loading > correctly loads extensionId for extension commands 425ms ✓ FileCommandLoader > Argument Handling Integration (via ShellProcessor) > correctly processes a command with {{args}} 801ms ✓ FileCommandLoader > Default Argument Processor Integration > correctly processes a command without {{args}} 455ms ✓ FileCommandLoader > Shell Processor Integration > instantiates ShellProcessor if the trigger is present 629ms ✓ FileCommandLoader > Shell Processor Integration > does not instantiate ShellProcessor if no triggers ({{args}} or !{}) are present 949ms ✓ FileCommandLoader > Shell Processor Integration > returns a "submit_prompt" action if shell processing succeeds 1111ms ✓ FileCommandLoader > Shell Processor Integration > returns a "confirm_shell_commands" action if shell processing requires it 418ms ✓ FileCommandLoader > Shell Processor Integration > re-throws other errors from the processor 484ms ✓ FileCommandLoader > Shell Processor Integration > assembles the processor pipeline in the correct order (AtFile -> Shell -> Default) 775ms ✓ FileCommandLoader > @-file Processor Integration > correctly processes a command with @{file} 394ms ✓ FileCommandLoader > with folder trust enabled > loads multiple commands 1322ms ✓ FileCommandLoader > with folder trust enabled > does not load when folder is not trusted 366ms ✓ FileCommandLoader > Aborted signal > does not log errors if the signal is aborted 691ms ✓ FileCommandLoader > Sanitization > sanitizes command names from filenames containing control characters 389ms ✓ FileCommandLoader > Sanitization > truncates excessively long filenames 437ms ✓ src/acp/acpCommandHandler.test.ts (1 test) 165ms ✓ src/ui/commands/rewindCommand.test.tsx (13 tests) 597ms ✓ src/ui/commands/directoryCommand.test.tsx (21 tests) 461ms ✓ src/acp/acpSessionManager.test.ts (10 tests) 614ms ✓ src/acp/acpSession.test.ts (16 tests) 692ms ✓ src/acp/acpRpcDispatcher.test.ts (12 tests) 525ms ✓ src/acp/acpResume.test.ts (2 tests) 361ms ✓ src/ui/commands/memoryCommand.test.ts (14 tests) 574ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useAnimatedScrollbar.test.tsx (7 tests) 2471ms ✓ useAnimatedScrollbar > should not increment debugNumAnimatedComponents when not focused 643ms ✓ useAnimatedScrollbar > should increment debugNumAnimatedComponents when becoming focused 302ms ✓ useAnimatedScrollbar > should decrement debugNumAnimatedComponents when becoming unfocused 364ms ✓ useAnimatedScrollbar > should decrement debugNumAnimatedComponents on unmount 304ms ✓ useAnimatedScrollbar > should decrement debugNumAnimatedComponents after animation finishes 331ms [?2004h[?2004h[?2004h ✓ src/ui/contexts/ScrollProvider.drag.test.tsx (6 tests) 2039ms ✓ ScrollProvider Drag > drags the scrollbar thumb 865ms [?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useSnowfall.test.tsx (5 tests) 2028ms ✓ useSnowfall > initially enables animation during holiday season with Holiday theme 960ms ✓ useSnowfall > stops animation after 15 seconds 317ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/DebugProfiler.test.tsx (15 tests) 2347ms ✓ DebugProfiler Component > should return null when showDebugProfiler is false 678ms ✓ DebugProfiler Component > should render stats when showDebugProfiler is true 669ms ✓ DebugProfiler Component > should report an action when a CoreEvent is emitted 325ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/StickyHeader.test.tsx (2 tests) 4009ms ✓ StickyHeader > renders children with isFirst=true 2588ms ✓ StickyHeader > renders children with isFirst=false 1401ms [?2004h[?2004h[?2004h ✓ src/ui/hooks/useAlternateBuffer.test.ts (5 tests) 4173ms ✓ useAlternateBuffer > should return false when config.getUseAlternateBuffer returns false 1607ms ✓ useAlternateBuffer > should return true when config.getUseAlternateBuffer returns true 1231ms ✓ useAlternateBuffer > should return the immutable config value, not react to settings changes 1304ms [?2004h[?2004h ✓ src/ui/components/CopyModeWarning.test.tsx (2 tests) 3990ms ✓ CopyModeWarning > renders nothing when copy mode is disabled 2142ms ✓ CopyModeWarning > renders warning when copy mode is enabled 1822ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h(node:35836) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 update listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (Use `node --trace-warnings ...` to show where the warning was created) (node:35836) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clear listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/messages/ErrorMessage.test.tsx (2 tests) 3681ms ✓ ErrorMessage > renders with the correct prefix and text 2295ms ✓ ErrorMessage > renders multiline error messages 1360ms [?2004h ✓ src/ui/utils/CodeColorizer.test.tsx (3 tests) 5245ms ✓ colorizeCode > renders empty lines correctly when useAlternateBuffer is true 2619ms ✓ colorizeCode > does not let colors from ansi escape codes leak into colorized code 2558ms [?2004h(node:30676) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 update listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (Use `node --trace-warnings ...` to show where the warning was created) (node:30676) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clear listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit ✓ src/ui/components/ShowMoreLinesLayout.test.tsx (2 tests) 3737ms ✓ ShowMoreLines layout and padding > renders with single padding (paddingX=1, marginBottom=1) 2303ms ✓ ShowMoreLines layout and padding > renders in Standard mode as well 1405ms ✓ src/ui/hooks/useMouseClick.test.ts (2 tests) 5022ms ✓ useMouseClick > should call handler with relative coordinates when click is inside bounds 2735ms ✓ useMouseClick > should not call handler when click is outside bounds 2270ms [?2004h[?2004h ✓ src/ui/components/views/ToolsList.test.tsx (3 tests) 5603ms ✓ > renders correctly with descriptions 2891ms ✓ > renders correctly without descriptions 1391ms ✓ > renders correctly with no tools 1303ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/CliSpinner.test.tsx (2 tests) 3593ms ✓ > should increment debugNumAnimatedComponents on mount and decrement on unmount 2250ms ✓ > should not render when showSpinner is false 1324ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/contexts/ScrollProvider.test.tsx (12 tests) 3378ms ✓ ScrollProvider > Event Handling Status > returns true when scroll event is handled 841ms ✓ ScrollProvider > Scroll Acceleration > accelerates scroll for non-Ghostty terminals during rapid scrolling 309ms [?2004h[?2004h[?2004h ✓ src/ui/hooks/useKeypress.test.tsx (22 tests) 5778ms ✓ useKeypress > should not listen if isActive is false 1033ms ✓ useKeypress > should listen for keypress when active for key 'a' 313ms ✓ src/ui/components/messages/UserShellMessage.test.tsx (2 tests) 4165ms ✓ UserShellMessage > renders normal shell message with correct prefix 2756ms ✓ UserShellMessage > with NO_COLOR set > uses margins instead of background blocks when NO_COLOR is set 1391ms [?2004h[?2004h[?2004h ✓ src/ui/contexts/TerminalContext.test.tsx (2 tests) 6078ms ✓ TerminalContext > should parse OSC 11 response 2709ms ✓ TerminalContext > should handle partial chunks 3347ms [?2004h[?2004h ✓ src/ui/contexts/SessionContext.test.tsx (5 tests) 6740ms ✓ SessionStatsContext > should provide the correct initial state 1710ms ✓ SessionStatsContext > should update metrics when the uiTelemetryService emits an update 1259ms ✓ SessionStatsContext > should not update metrics if the data is the same 1228ms ✓ SessionStatsContext > should update session ID and reset stats when the uiTelemetryService emits a clear event 1217ms ✓ SessionStatsContext > should throw an error when useSessionStats is used outside of a provider 1308ms ✓ src/ui/components/shared/DescriptiveRadioButtonSelect.test.tsx (2 tests) 6159ms ✓ DescriptiveRadioButtonSelect > should render correctly with default props 3615ms ✓ DescriptiveRadioButtonSelect > should render correctly with custom props 2525ms [?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useIdeTrustListener.test.tsx (5 tests) 6740ms ✓ useIdeTrustListener > should initialize correctly with no trust information 1673ms ✓ useIdeTrustListener > should NOT set needsRestart when connecting for the first time 1271ms ✓ useIdeTrustListener > should set needsRestart when IDE trust changes 1250ms ✓ useIdeTrustListener > should set needsRestart when IDE disconnects 1239ms ✓ useIdeTrustListener > should NOT set needsRestart if trust value does not change 1287ms [?2004h[?2004h ✓ src/ui/auth/AuthInProgress.test.tsx (5 tests) 3369ms ✓ AuthInProgress > renders initial state with spinner 1712ms ✓ AuthInProgress > calls onTimeout when ESC is pressed 445ms ✓ AuthInProgress > calls onTimeout when Ctrl+C is pressed 361ms ✓ AuthInProgress > calls onTimeout and shows timeout message after 3 minutes 504ms ✓ AuthInProgress > clears timer on unmount 322ms ✓ src/ui/components/shared/HalfLinePaddedBox.test.tsx (4 tests) 5899ms ✓ > renders standard background and blocks when true color is supported 2435ms ✓ > renders alternative blocks when true color is not supported 1196ms ✓ > renders nothing when useBackgroundColor is false 1123ms ✓ > renders nothing when screen reader is enabled 1124ms ✓ src/ui/components/shared/RadioButtonSelect.test.tsx (5 tests) 6920ms ✓ RadioButtonSelect > Prop forwarding to BaseSelectionList > should forward all props correctly when provided 2002ms ✓ RadioButtonSelect > Prop forwarding to BaseSelectionList > should use default props if not provided 1246ms ✓ RadioButtonSelect > renderItem implementation > should render the standard label display with correct color and truncation 1226ms ✓ RadioButtonSelect > renderItem implementation > should render the special theme display when theme props are present 1219ms ✓ RadioButtonSelect > renderItem implementation > should fall back to standard display if only one theme prop is present 1209ms ✓ src/ui/components/ProgressBar.test.tsx (4 tests) 6250ms ✓ > renders 0% correctly 2299ms ✓ > renders 50% correctly 1343ms ✓ > renders warning threshold correctly 1298ms ✓ > renders error threshold correctly at 100% 1291ms [?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/shared/SlicingMaxSizedBox.test.tsx (5 tests) 6041ms ✓ > renders string data without slicing when it fits 2057ms ✓ > slices string data by characters when very long 1365ms ✓ > slices string data by lines when maxLines is provided 735ms ✓ > slices array data when maxLines is provided 492ms ✓ > does not slice when isAlternateBuffer is true 1365ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useBatchedScroll.test.ts (7 tests) 9291ms ✓ useBatchedScroll > returns initial scrollTop 1624ms ✓ useBatchedScroll > returns updated scrollTop from props 1340ms ✓ useBatchedScroll > returns pending scrollTop when set 1225ms ✓ useBatchedScroll > overwrites pending scrollTop with subsequent sets before render 1207ms ✓ useBatchedScroll > resets pending scrollTop after rerender 1300ms ✓ useBatchedScroll > resets pending scrollTop after rerender even if prop is same 1293ms ✓ useBatchedScroll > maintains stable function references 1284ms [?2004h[?2004h[?2004h ✓ src/ui/components/ModelQuotaDisplay.test.tsx (3 tests) 5129ms ✓ > renders quota information when buckets are provided 2149ms ✓ > renders nothing when no buckets are provided 1388ms ✓ > filters models based on modelsToShow prop 1566ms ✓ src/ui/components/messages/TopicMessage.test.tsx (6 tests) 9219ms ✓ > renders title and intent by default (collapsed) 2448ms ✓ > renders summary when globally expanded (Ctrl+O) 1403ms ✓ > renders summary when selectively expanded via context 1358ms ✓ > calls toggleExpansion when clicked 1391ms ✓ > falls back to summary if strategic_intent is missing 1312ms ✓ > renders only strategic_intent if summary is missing 1288ms ✓ src/ui/components/messages/InfoMessage.test.tsx (3 tests) 5164ms ✓ InfoMessage > renders with the correct default prefix and text 2368ms ✓ InfoMessage > renders with a custom icon 1393ms ✓ InfoMessage > renders multiline info messages 1377ms [?2004h ✓ src/ui/components/messages/WarningMessage.test.tsx (2 tests) 3979ms ✓ WarningMessage > renders with the correct prefix and text 2536ms ✓ WarningMessage > renders multiline warning messages 1424ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/NewAgentsNotification.test.tsx (3 tests | 1 failed) 7716ms ✓ NewAgentsNotification > renders agent list 3613ms × NewAgentsNotification > truncates list if more than 5 agents 1825ms → Snapshot `NewAgentsNotification > truncates list if more than 5 agents 1` mismatched ✓ NewAgentsNotification > shows processing state when an option is selected 2256ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useConsoleMessages.test.tsx (8 tests) 2321ms ✓ useConsoleMessages > should initialize with an empty array of console messages 724ms ✓ src/ui/hooks/useSuspend.test.ts (3 tests) 1401ms ✓ useSuspend > cleans terminal state on suspend and restores/repaints on resume in alternate screen mode 883ms ✓ src/ui/components/messages/GeminiMessage.test.tsx (5 tests) 8923ms ✓ - Raw Markdown Display Snapshots > renders with renderMarkdown=true '(default)' 3054ms ✓ - Raw Markdown Display Snapshots > renders with renderMarkdown=false '(raw markdown with syntax highlightin…' 1521ms ✓ - Raw Markdown Display Snapshots > renders pending state with renderMarkdown=true 1427ms ✓ - Raw Markdown Display Snapshots > renders pending state with renderMarkdown=false 1473ms ✓ - Raw Markdown Display Snapshots > wraps long lines correctly in raw markdown mode 1426ms ✓ src/ui/components/ShellModeIndicator.test.tsx (1 test) 2325ms ✓ ShellModeIndicator > renders correctly 2304ms [?2004h[?2004h ❯ src/ui/components/RewindConfirmation.test.tsx (4 tests | 2 failed) 8054ms ✓ RewindConfirmation > renders correctly with stats 3342ms × RewindConfirmation > renders correctly without stats 1740ms → Snapshot `RewindConfirmation > renders correctly without stats 1` mismatched ✓ RewindConfirmation > calls onConfirm with Cancel on Escape 1556ms × RewindConfirmation > renders timestamp when provided 1394ms → Snapshot `RewindConfirmation > renders timestamp when provided 1` mismatched [?2004h[?2004h ❯ src/ui/components/messages/ToolMessageFocusHint.test.tsx (5 tests | 3 failed) 4713ms ✓ Focus Hint > 'ToolMessage' > shows focus hint after delay even with NO output 2263ms × Focus Hint > 'ToolMessage' > shows focus hint after delay with output 736ms → Snapshot `Focus Hint > 'ToolMessage' > shows focus hint after delay with output > after-delay-with-output 1` mismatched × Focus Hint > 'ShellToolMessage' > shows focus hint after delay even with NO output 531ms → Snapshot `Focus Hint > 'ShellToolMessage' > shows focus hint after delay even with NO output > after-delay-no-output 1` mismatched × Focus Hint > 'ShellToolMessage' > shows focus hint after delay with output 476ms → Snapshot `Focus Hint > 'ShellToolMessage' > shows focus hint after delay with output > after-delay-with-output 1` mismatched ✓ Focus Hint > handles long descriptions by shrinking them to show the focus hint 686ms [?2004h[?2004hstdout | src/ui/auth/useAuth.test.tsx > useAuth > useAuthCommand > should initialize with Unauthenticated state Authenticated via "oauth-personal". [?2004h[?2004h[?2004h ✓ src/ui/hooks/useFocus.test.tsx (7 tests) 9650ms ✓ useFocus > should initialize with focus and enable focus reporting 2012ms ✓ useFocus > should set isFocused to false when a focus-out event is received 1333ms ✓ useFocus > should set isFocused to true when a focus-in event is received 1242ms ✓ useFocus > should clean up and disable focus reporting on unmount 1254ms ✓ useFocus > should handle multiple focus events correctly 1262ms ✓ useFocus > restores focus on keypress after focus is lost 1259ms ✓ useFocus > tracks whether any focus event has been received 1267ms [?2004h[?2004hstdout | src/ui/commands/extensionsCommand.test.ts > extensionsCommand > explore > should handle onSelect and onClose in ExtensionRegistryView Selected extension: test-ext stderr | src/ui/commands/extensionsCommand.test.ts > extensionsCommand > link > should show error message for invalid source Failed to stat path "test-extension-package": invalid path [?2004h[?2004h[?2004h ✓ src/ui/hooks/useShellInactivityStatus.test.ts (4 tests) 1711ms ✓ useShellInactivityStatus > should show action_required status after 30s when output has been produced 872ms (node:30676) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 101 settings-changed listeners added to [CoreEventEmitter]. MaxListeners is 100. Use emitter.setMaxListeners() to increase limit [?2004h[?2004h[?2004h ✓ src/ui/components/RawMarkdownIndicator.test.tsx (2 tests) 3568ms ✓ RawMarkdownIndicator > renders correct key binding for darwin 2170ms ✓ RawMarkdownIndicator > renders correct key binding for other platforms 1367ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useMouse.test.ts (4 tests) 5474ms ✓ useMouse > should not subscribe when isActive is false 1649ms ✓ useMouse > should subscribe when isActive is true 1251ms ✓ useMouse > should unsubscribe on unmount 1231ms ✓ useMouse > should unsubscribe when isActive becomes false 1316ms ❯ src/ui/components/messages/UserMessage.test.tsx (5 tests | 1 failed) 8470ms ✓ UserMessage > renders normal user message with correct prefix 2795ms ✓ UserMessage > renders slash command message 1425ms ✓ UserMessage > renders multiline user message 1379ms ✓ UserMessage > transforms image paths in user message 1383ms × UserMessage > with NO_COLOR set > uses margins instead of background blocks when NO_COLOR is set 1466ms → expected [ '> H', ' e', ' l', ' l', …(7) ] to have a length of 1 but got 11 [?2004h[?2004h[?2004h[?2004h ✓ src/ui/contexts/ToolActionsContext.test.tsx (8 tests) 10427ms ✓ ToolActionsContext > publishes to MessageBus for tools with correlationId 1703ms ✓ ToolActionsContext > handles cancel by calling confirm with Cancel outcome 1297ms ✓ ToolActionsContext > resolves IDE diffs for edit tools when in IDE mode 1281ms ✓ ToolActionsContext > updates isDiffingEnabled when IdeClient status changes 1237ms ✓ ToolActionsContext > calls local onConfirm for tools without correlationId 1218ms ✓ ToolActionsContext > toggleAllExpansion > expands all when none are expanded 1235ms ✓ ToolActionsContext > toggleAllExpansion > expands all when some are expanded 1214ms ✓ ToolActionsContext > toggleAllExpansion > collapses all when all are expanded 1220ms ✓ src/ui/hooks/useModelCommand.test.tsx (3 tests) 4219ms ✓ useModelCommand > should initialize with the model dialog closed 1697ms ✓ useModelCommand > should open the model dialog when openModelDialog is called 1261ms ✓ useModelCommand > should close the model dialog when closeModelDialog is called 1240ms [?2004h[?2004h[?2004h ✓ src/ui/hooks/useMemoryMonitor.test.tsx (3 tests) 1326ms ✓ useMemoryMonitor > should not warn when memory usage is below threshold 742ms [?2004h[?2004h ✓ src/ui/hooks/useSessionBrowser.test.ts (9 tests) 4483ms ✓ useSessionBrowser > should successfully resume a session 1822ms ✓ useSessionBrowser > should handle file read error 1272ms ✓ useSessionBrowser > should handle JSON parse error 1204ms [?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useHookDisplayState.test.ts (6 tests) 1937ms ✓ useHookDisplayState > should initialize with empty hooks 693ms [?2004h[?2004h ✓ src/ui/components/ConsoleSummaryDisplay.test.tsx (3 tests) 4994ms ✓ ConsoleSummaryDisplay > renders nothing when errorCount is 0 1705ms ✓ ConsoleSummaryDisplay > renders correct message for 1 errors 1909ms ✓ ConsoleSummaryDisplay > renders correct message for 5 errors 1359ms [?2004h[?2004h ✓ src/ui/components/ShowMoreLines.test.tsx (8 tests) 11261ms ✓ ShowMoreLines > renders nothing when: overflow=Set{}, streaming=idle, constrain=true 1807ms ✓ ShowMoreLines > renders nothing when: overflow=Set{ '1' }, streaming=idle, constrain=false 1304ms ✓ ShowMoreLines > renders message in STANDARD mode when overflowing 1684ms ✓ ShowMoreLines > renders message in ASB mode when overflowing and state is idle 1357ms ✓ ShowMoreLines > renders message in ASB mode when overflowing and state is waiting_for_confirmation 1309ms ✓ ShowMoreLines > renders message in ASB mode when overflowing and state is responding 1267ms ✓ ShowMoreLines > renders message in ASB mode when isOverflowing prop is true even if internal overflow state is empty 1284ms ✓ ShowMoreLines > renders nothing when isOverflowing prop is false even if internal overflow state has IDs 1225ms [?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/vim-passthrough.test.tsx (4 tests) 5591ms ✓ useVim passthrough > should pass through 'F12' in 'INSERT' mode 1850ms ✓ useVim passthrough > should pass through 'Ctrl-X' in 'INSERT' mode 1269ms ✓ useVim passthrough > should pass through 'F12' in 'NORMAL' mode 1217ms ✓ useVim passthrough > should pass through 'Ctrl-X' in 'NORMAL' mode 1225ms [?2004h[?2004h[?2004h ✓ src/ui/components/messages/ToolShared.test.tsx (7 tests) 10232ms ✓ McpProgressIndicator > renders determinate progress at 50% 2304ms ✓ McpProgressIndicator > renders complete progress at 100% 1316ms ✓ McpProgressIndicator > renders indeterminate progress with raw count 1268ms ✓ McpProgressIndicator > renders progress with a message 1307ms ✓ McpProgressIndicator > clamps progress exceeding total to 100% 1278ms ✓ ToolInfo > truncates description by default 1354ms ✓ ToolInfo > wraps description when isExpanded is true 1383ms [?2004h[?2004h ✓ src/ui/privacy/GeminiPrivacyNotice.test.tsx (2 tests) 5374ms ✓ GeminiPrivacyNotice > renders correctly 2755ms ✓ GeminiPrivacyNotice > exits on Escape 2598ms [?2004h[?2004h[?2004h ✓ src/ui/hooks/useMcpStatus.test.tsx (4 tests) 5353ms ✓ useMcpStatus > should initialize with correct values (no servers) 1635ms ✓ useMcpStatus > should initialize with correct values (with servers, not started) 1235ms ✓ useMcpStatus > should not be ready while in progress 1214ms ✓ useMcpStatus > should update state when McpClientUpdate is emitted 1250ms [?2004h ✓ src/ui/components/UpdateNotification.test.tsx (1 test) 2515ms ✓ UpdateNotification > renders message 2493ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004hstderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should initialize and read the history file from the correct path An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should initialize and read the history file from the correct path An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/commands/extensionsCommand.test.ts (59 tests) 3403ms ✓ extensionsCommand > config > should return dialog to configure all extensions if no args provided 311ms ✓ extensionsCommand > config > should return dialog to configure specific setting for an extension 376ms [?2004h ✓ src/ui/hooks/useInlineEditBuffer.test.ts (9 tests) 2529ms ✓ useEditBuffer > should initialize with empty state 657ms [?2004h[?2004h[?2004h ✓ src/ui/hooks/useTurnActivityMonitor.test.ts (4 tests) 1934ms ✓ useTurnActivityMonitor > should set operationStartTime when entering Responding state 884ms ✓ useTurnActivityMonitor > should reset operationStartTime when PTY ID changes while responding 336ms ✓ useTurnActivityMonitor > should detect redirection from tool calls 381ms ✓ useTurnActivityMonitor > should reset everything when idle 309ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useTimer.test.tsx (8 tests) 3008ms ✓ useTimer > should initialize with 0 855ms ✓ useTimer > should not increment time if isActive is false 305ms ✓ useTimer > should reset to 0 and start incrementing when isActive becomes true from false 321ms ✓ useTimer > should reset to 0 when resetKey changes while active 311ms ✓ useTimer > should be 0 if isActive is false, regardless of resetKey changes 337ms ✓ useTimer > should preserve elapsedTime when isActive becomes false, and reset to 0 when it becomes active again 353ms [?2004h[?2004h[?2004h ✓ src/ui/hooks/useTerminalTheme.test.tsx (9 tests) 3015ms ✓ useTerminalTheme > should subscribe to terminal background events on mount 843ms ✓ useTerminalTheme > should switch to light theme when background is light and not call refreshStatic directly 349ms [?2004h ✓ src/ui/components/shared/Scrollable.test.tsx (9 tests) 11988ms ✓ > renders children 1676ms ✓ > renders multiple children 618ms ✓ > matches snapshot 443ms ✓ > updates scroll position correctly when scrollBy is called multiple times in the same tick 1102ms ✓ > keypress handling > 'scrolls down when overflow exists and…' 1561ms ✓ > keypress handling > 'scrolls up when overflow exists and n…' 1613ms ✓ > keypress handling > 'does not scroll up when at top (allow…' 1425ms ✓ > keypress handling > 'does not scroll down when at bottom (…' 1489ms ✓ > keypress handling > 'does not scroll when content fits (al…' 1943ms ✓ src/ui/hooks/useBanner.test.ts (5 tests) 6796ms ✓ useBanner > should return warning text and warning color if warningText is present 1727ms ✓ useBanner > should hide banner if show count exceeds max limit (Legacy format) 1305ms ✓ useBanner > should increment the persistent count when banner is shown 1279ms ✓ useBanner > should increment count if warning text is shown instead 1250ms ✓ useBanner > should handle newline replacements 1214ms [?2004h[?2004h[?2004h[?2004h(node:35136) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 update listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (Use `node --trace-warnings ...` to show where the warning was created) (node:35136) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clear listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit [?2004h ✓ src/config/extensions/consent.test.ts (22 tests) 11550ms ✓ consent > maybeRequestConsentOrFail > consent string generation > should generate a consent string with all fields 2549ms ✓ consent > maybeRequestConsentOrFail > consent string generation > should include warning when hooks are present 1748ms ✓ consent > maybeRequestConsentOrFail > consent string generation > should request consent if extension is migrated 1480ms ✓ consent > maybeRequestConsentOrFail > consent string generation > should request consent if skills change 2024ms ✓ consent > maybeRequestConsentOrFail > consent string generation > should show a warning if the skill directory cannot be read 1765ms ✓ consent > skillsConsentString > should generate a consent string for skills 1575ms [?2004h[?2004hstderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should handle a nonexistent history file gracefully An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should handle a nonexistent history file gracefully An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act [?2004h ✓ src/ui/components/MemoryUsageDisplay.test.tsx (2 tests) 1801ms ✓ MemoryUsageDisplay > renders memory usage 1317ms ✓ MemoryUsageDisplay > updates memory usage over time 459ms [?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useGitBranchName.test.tsx (7 tests) 2452ms ✓ useGitBranchName > should return branch name 880ms ✓ useGitBranchName > should return undefined if git command fails 300ms [?2004h[?2004h[?2004h[?2004h[?2004hstderr | src/ui/components/IdeTrustChangeDialog.test.tsx > IdeTrustChangeDialog > calls relaunchApp when "r" is pressed IdeTrustChangeDialog rendered with unexpected reason "NONE" stdout | src/ui/auth/useAuth.test.tsx > useAuth > useAuthCommand > should authenticate if USE_GEMINI and key is found Authenticated via "gemini-api-key". stdout | src/ui/auth/useAuth.test.tsx > useAuth > useAuthCommand > should authenticate if USE_GEMINI and env key is found Authenticated via "gemini-api-key". ✓ src/ui/IdeIntegrationNudge.test.tsx (6 tests) 14554ms ✓ IdeIntegrationNudge > renders correctly with default options 3226ms ✓ IdeIntegrationNudge > handles "Yes" selection 2016ms ✓ IdeIntegrationNudge > handles "No" selection 2333ms ✓ IdeIntegrationNudge > handles "Dismiss" selection 2518ms ✓ IdeIntegrationNudge > handles Escape key press 2563ms ✓ IdeIntegrationNudge > displays correct text and handles selection when extension is pre-installed 1879ms ✓ src/ui/privacy/CloudPaidPrivacyNotice.test.tsx (2 tests) 5839ms ✓ CloudPaidPrivacyNotice > renders correctly 3151ms ✓ CloudPaidPrivacyNotice > exits on Escape 2660ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useLogger.test.tsx (1 test) 1675ms ✓ useLogger > should initialize with the sessionId from config 1657ms [?2004h[?2004h ✓ src/ui/components/ThemedGradient.test.tsx (1 test) 2284ms ✓ ThemedGradient > renders children 2264ms [?2004h ✓ src/ui/hooks/useRewind.test.ts (5 tests) 6915ms ✓ useRewindLogic > should initialize with no selection 1825ms ✓ useRewindLogic > should update state when a message is selected 1325ms ✓ useRewindLogic > should not update state if selected message is not found 1244ms ✓ useRewindLogic > should clear selection correctly 1256ms ✓ useRewindLogic > should proxy getStats call to utility function 1228ms ✓ src/test-utils/render.test.tsx (6 tests) 14045ms ✓ render > should render a component 1969ms ✓ render > should support rerender 2533ms ✓ render > should support unmount 1303ms ✓ renderHook > should rerender with previous props when called without arguments 3464ms ✓ renderHook > should handle initial render without props 2401ms ✓ renderHook > should update props if undefined is passed explicitly 2352ms ✓ src/ui/components/QueuedMessageDisplay.test.tsx (5 tests) 7992ms ✓ QueuedMessageDisplay > renders nothing when message queue is empty 1786ms ✓ QueuedMessageDisplay > displays single queued message 2005ms ✓ QueuedMessageDisplay > displays multiple queued messages 1428ms ✓ QueuedMessageDisplay > shows overflow indicator when more than 3 messages are queued 1403ms ✓ QueuedMessageDisplay > normalizes whitespace in messages 1341ms [?2004h ✓ src/ui/components/ExitWarning.test.tsx (4 tests) 6203ms ✓ ExitWarning > renders nothing by default 1729ms ✓ ExitWarning > renders Ctrl+C warning when pressed once and dialogs visible 1762ms ✓ ExitWarning > renders Ctrl+D warning when pressed once and dialogs visible 1404ms ✓ ExitWarning > renders nothing if dialogs are not visible 1282ms [?2004h ✓ src/ui/components/QuotaDisplay.test.tsx (9 tests) 4303ms ✓ QuotaDisplay > should not render when remaining is undefined 1072ms ✓ QuotaDisplay > should not render when limit is undefined 362ms ✓ QuotaDisplay > should not render when limit is 0 321ms ✓ QuotaDisplay > should not render when usage < 80% 326ms ✓ QuotaDisplay > should render warning when used >= 80% 743ms ✓ QuotaDisplay > should render critical when used >= 95% 417ms ✓ QuotaDisplay > should render with reset time when provided 362ms ✓ QuotaDisplay > should NOT render reset time when terse is true 339ms ✓ QuotaDisplay > should render terse limit reached message 335ms ✓ src/ui/hooks/useFolderTrust.test.ts (13 tests) 3616ms ✓ useFolderTrust > should not open dialog when folder is already trusted 905ms [?2004h ✓ src/ui/auth/LoginRestartDialog.test.tsx (5 tests) 6207ms ✓ LoginRestartDialog > renders correctly with default message 2624ms ✓ LoginRestartDialog > renders correctly with custom message 1462ms ✓ LoginRestartDialog > calls onDismiss when escape is pressed 1352ms ✓ LoginRestartDialog > calls runExitCleanup and process.exit when r is pressed 397ms ✓ LoginRestartDialog > calls runExitCleanup and process.exit when R is pressed 341ms [?2004h ✓ src/ui/components/shared/SectionHeader.test.tsx (4 tests) 6279ms ✓ > 'renders correctly with a standard tit…' 2570ms ✓ > 'renders correctly when title is trunc…' 1243ms ✓ > 'renders correctly in a narrow contain…' 1213ms ✓ > 'renders correctly with a subtitle' 1228ms ✓ src/ui/components/Table.test.tsx (4 tests) 6551ms ✓ Table > should render headers and data correctly 2452ms ✓ Table > should support custom cell rendering 1402ms ✓ Table > should handle undefined values gracefully 1297ms ✓ Table > should support inverse text rendering 1381ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/Tips.test.tsx (2 tests) 3791ms ✓ Tips > 'renders all tips including GEMINI.md …' 2330ms ✓ Tips > 'renders fewer tips when GEMINI.md exi…' 1442ms [?2004hstderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should add a command and write to the history file An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should add a command and write to the history file An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/layouts/DefaultAppLayout.test.tsx (3 tests) 5052ms ✓ > renders BackgroundTaskDisplay when shells exist and active 2285ms ✓ > hides BackgroundTaskDisplay when StreamingState is WaitingForConfirmation 1381ms ✓ > shows BackgroundTaskDisplay when StreamingState is NOT WaitingForConfirmation 1365ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004hstdout | src/ui/auth/useAuth.test.tsx > useAuth > useAuthCommand > should prioritize env key over stored key when both are present Authenticated via "gemini-api-key". ✓ src/ui/hooks/usePermissionsModifyTrust.test.ts (13 tests) 16294ms ✓ usePermissionsModifyTrust > when targetDirectory is the current workspace > should initialize with the correct trust level 1614ms ✓ usePermissionsModifyTrust > when targetDirectory is the current workspace > should detect inherited trust from parent 1233ms ✓ usePermissionsModifyTrust > when targetDirectory is the current workspace > should detect inherited trust from IDE 1215ms ✓ usePermissionsModifyTrust > when targetDirectory is the current workspace > should set needsRestart but not save when trust changes 1232ms ✓ usePermissionsModifyTrust > when targetDirectory is the current workspace > should save immediately if trust does not change 1225ms ✓ usePermissionsModifyTrust > when targetDirectory is the current workspace > should commit the pending trust level change 1198ms ✓ usePermissionsModifyTrust > when targetDirectory is the current workspace > should add warning when setting DO_NOT_TRUST but still trusted by parent 1227ms ✓ usePermissionsModifyTrust > when targetDirectory is the current workspace > should add warning when setting DO_NOT_TRUST but still trusted by IDE 1211ms ✓ usePermissionsModifyTrust > when targetDirectory is not the current workspace > should not detect inherited trust 1218ms ✓ usePermissionsModifyTrust > when targetDirectory is not the current workspace > should save immediately without needing a restart 1264ms ✓ usePermissionsModifyTrust > when targetDirectory is not the current workspace > should not add a warning when setting DO_NOT_TRUST 1201ms ✓ usePermissionsModifyTrust > should emit feedback when setValue throws in updateTrustLevel 1236ms ✓ usePermissionsModifyTrust > should emit feedback when setValue throws in commitTrustLevelChange 1196ms [?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/usePrivacySettings.test.tsx (4 tests) 5467ms ✓ usePrivacySettings > should throw error when content generator is not a CodeAssistServer 1656ms ✓ usePrivacySettings > should handle paid tier users correctly 1265ms ✓ usePrivacySettings > should throw error when CodeAssistServer has no projectId 1240ms ✓ usePrivacySettings > should update data collection opt-in setting 1288ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useReverseSearchCompletion.test.tsx (10 tests) 3976ms ✓ useReverseSearchCompletion > Core Hook Behavior > State Management > should initialize with default state 1362ms ✓ useReverseSearchCompletion > Core Hook Behavior > State Management > should reset state when reverseSearchActive becomes false 354ms ✓ useReverseSearchCompletion > Core Hook Behavior > State Management > Navigation > should handle navigation with multiple suggestions 306ms ✓ useReverseSearchCompletion > Filtering > hides suggestions when there are no matches 454ms ✓ src/ui/hooks/useExtensionUpdates.test.tsx (4 tests) 6067ms ✓ useExtensionUpdates > should check for updates and log a message if an update is available 2060ms ✓ useExtensionUpdates > should check for updates and automatically update if autoUpdate is true 1388ms ✓ useExtensionUpdates > should batch update notifications for multiple extensions 1333ms ✓ useExtensionUpdates > should batch update notifications for multiple extensions with autoUpdate: false 1267ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/UserIdentity.test.tsx (8 tests) 6241ms ✓ > should render login message and auth indicator 1488ms ✓ > should render the user email on the very first frame (regression test) 396ms ✓ > should render login message if email is missing 1343ms ✓ > should render plan name and upgrade indicator 502ms ✓ > should not render if authType is missing 1320ms ✓ > should render non-Google auth message 393ms ✓ > should render specific tier name when provided 399ms ✓ > should not render /upgrade indicator for ultra tiers 378ms [?2004h[?2004h[?2004h ✓ src/ui/hooks/useMessageQueue.test.tsx (17 tests) 5138ms ✓ useMessageQueue > should initialize with empty queue 872ms ✓ useMessageQueue > should auto-submit queued messages when transitioning to Idle and MCP is ready 314ms ✓ useMessageQueue > should handle multiple state transitions correctly 533ms [?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/Checklist.test.tsx (5 tests) 7665ms ✓ > renders nothing when list is empty 1686ms ✓ > renders nothing when collapsed and no active items 1288ms ✓ > renders summary view correctly (collapsed) 1904ms ✓ > renders expanded view correctly 1484ms ✓ > renders summary view without in-progress item if none exists 1284ms [?2004h[?2004h[?2004h ✓ src/ui/components/shared/VirtualizedList.test.tsx (10 tests) 13976ms ✓ > with 10px height and 100 items > renders only visible items ('top') 2125ms ✓ > with 10px height and 100 items > renders only visible items ('scrolled to bottom') 989ms ✓ > with 10px height and 100 items > sticks to bottom when new items added 1364ms ✓ > with 10px height and 100 items > scrolls down to show new items when requested via ref 1111ms ✓ > with 10px height and 100 items > mounts only visible items with 1000 items and 10px height (scroll: +0) 1095ms ✓ > with 10px height and 100 items > mounts only visible items with 1000 items and 10px height (scroll: 500) 1542ms ✓ > with 10px height and 100 items > mounts only visible items with 1000 items and 10px height (scroll: 999) 2865ms ✓ > renders more items when a visible item shrinks via context update 1066ms ✓ > updates scroll position correctly when scrollBy is called multiple times in the same tick 1215ms ✓ > renders correctly in copyModeEnabled when scrolled 582ms ✓ src/ui/hooks/useTips.test.ts (3 tests) 4775ms ✓ useTips() > should return false and call set(1) if state is undefined 2240ms ✓ useTips() > should return false and call set(6) if state is 5 1269ms ✓ useTips() > should return true if state is 10 1238ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/AboutBox.test.tsx (6 tests) 11083ms ✓ AboutBox > renders with required props 3227ms ✓ AboutBox > renders optional prop gcpProject 1624ms ✓ AboutBox > renders optional prop ideClient 1555ms ✓ AboutBox > renders optional prop tier 1613ms ✓ AboutBox > renders Auth Method with email when userEmail is provided 1533ms ✓ AboutBox > renders Auth Method correctly when not oauth 1512ms [?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/QuittingDisplay.test.tsx (2 tests) 3477ms ✓ QuittingDisplay > renders nothing when no quitting messages 1752ms ✓ QuittingDisplay > renders quitting messages 1703ms [?2004h[?2004h[?2004h ✓ src/ui/components/messages/SubagentGroupDisplay.test.tsx (3 tests) 6859ms ✓ > renders nothing if there are no agent tool calls 2246ms ✓ > renders collapsed view by default with correct agent counts and states 2267ms ✓ > expands when availableTerminalHeight is undefined 2321ms ✓ src/ui/hooks/useFlickerDetector.test.ts (6 tests) 8039ms ✓ useFlickerDetector > should not record a flicker when height is less than terminal height 1802ms ✓ useFlickerDetector > should not record a flicker when height is equal to terminal height 1247ms ✓ useFlickerDetector > should record a flicker when height is greater than terminal height and height is constrained 1273ms ✓ useFlickerDetector > should NOT record a flicker when height is greater than terminal height but height is NOT constrained 1215ms ✓ useFlickerDetector > should not check for flicker if the ref is not set 1205ms ✓ useFlickerDetector > should re-evaluate on re-render 1274ms ✓ src/ui/components/ConsentPrompt.test.tsx (5 tests) 10258ms ✓ ConsentPrompt > renders a string prompt with MarkdownDisplay 2636ms ✓ ConsentPrompt > renders a ReactNode prompt directly 1481ms ✓ ConsentPrompt > calls onConfirm with true when "Yes" is selected 2398ms ✓ ConsentPrompt > calls onConfirm with false when "No" is selected 2371ms ✓ ConsentPrompt > passes correct items to RadioButtonSelect 1345ms stderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should navigate history correctly with previous/next commands An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should navigate history correctly with previous/next commands An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should not add empty or whitespace-only commands to history An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should not add empty or whitespace-only commands to history An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should truncate history to MAX_HISTORY_LENGTH (100) An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should truncate history to MAX_HISTORY_LENGTH (100) An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act ✓ src/ui/components/views/ChatList.test.tsx (3 tests) 5103ms ✓ > renders correctly with a list of chats 2319ms ✓ > renders correctly with no chats 1382ms ✓ > handles invalid date formats gracefully 1379ms [?2004h ✓ src/ui/components/AdminSettingsChangedDialog.test.tsx (4 tests) 6953ms ✓ AdminSettingsChangedDialog > renders correctly 2804ms ✓ AdminSettingsChangedDialog > restarts on "r" key press 1478ms ✓ AdminSettingsChangedDialog > restarts on "r" key press 1354ms ✓ AdminSettingsChangedDialog > restarts on "R" key press 1289ms ✓ src/ui/hooks/useHistoryManager.test.ts (14 tests) 17557ms ✓ useHistoryManager > should initialize with an empty history 1620ms ✓ useHistoryManager > should add an item to history with a unique ID 1263ms ✓ useHistoryManager > should generate strictly increasing IDs even if baseTimestamp goes backwards 1212ms ✓ useHistoryManager > should ensure new IDs start after existing IDs when resuming a session 1227ms ✓ useHistoryManager > should update lastIdRef when loading new history 1229ms ✓ useHistoryManager > should generate unique IDs for items added with the same base timestamp 1206ms ✓ useHistoryManager > should update an existing history item 1195ms ✓ useHistoryManager > should not change history if updateHistoryItem is called with a nonexistent ID 1218ms ✓ useHistoryManager > should clear the history 1202ms ✓ useHistoryManager > should not add consecutive duplicate user messages 1262ms ✓ useHistoryManager > should add duplicate user messages if they are not consecutive 1262ms ✓ useHistoryManager > should use Date.now() as default baseTimestamp if not provided 1228ms ✓ useHistoryManager > initialItems with auth information > should initialize with auth information 1210ms ✓ useHistoryManager > initialItems with auth information > should add items with auth information via addItem 1201ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/ColorsDisplay.test.tsx (1 test) 4518ms ✓ ColorsDisplay > renders correctly 4500ms ✓ src/ui/components/Help.test.tsx (3 tests) 7454ms ✓ Help Component > should not render hidden commands 3523ms ✓ Help Component > should not render hidden subcommands 1996ms ✓ Help Component > should render keyboard shortcuts 1919ms ❯ src/ui/components/LoopDetectionConfirmation.test.tsx (2 tests | 1 failed) 5817ms ✓ LoopDetectionConfirmation > renders correctly 3279ms × LoopDetectionConfirmation > contains the expected options 2520ms → expected ' ╭╮\n ││?\n ││\n ││T\n ││h\n ││i\n ││…' to contain 'A potential loop was detected' ✓ src/ui/components/messages/HintMessage.test.tsx (2 tests) 4622ms ✓ HintMessage > renders normal hint message with correct prefix 3100ms ✓ HintMessage > with NO_COLOR set > uses margins instead of background blocks when NO_COLOR is set 1501ms [?2004h[?2004h ✓ src/ui/components/ContextSummaryDisplay.test.tsx (3 tests) 4930ms ✓ > should render on a single line on a wide screen 2234ms ✓ > should render on multiple lines on a narrow screen 1374ms ✓ > should not render empty parts 1304ms ✓ src/ui/privacy/PrivacyNotice.test.tsx (4 tests) 6610ms ✓ PrivacyNotice > renders 'GeminiPrivacyNotice' when authType is 'gemini-api-key' 2470ms ✓ PrivacyNotice > renders 'CloudPaidPrivacyNotice' when authType is 'vertex-ai' 1405ms ✓ PrivacyNotice > renders 'CloudFreePrivacyNotice' when authType is 'oauth-personal' 1358ms ✓ PrivacyNotice > renders 'CloudFreePrivacyNotice' when authType is 'UNKNOWN' 1352ms [?2004h[?2004h ✓ src/ui/components/DetailedMessagesDisplay.test.tsx (5 tests) 9350ms ✓ DetailedMessagesDisplay > renders nothing when messages are empty 2105ms ✓ DetailedMessagesDisplay > renders messages correctly 2442ms ✓ DetailedMessagesDisplay > shows the F12 hint even in low error verbosity mode 1648ms ✓ DetailedMessagesDisplay > shows the F12 hint in full error verbosity mode 1598ms ✓ DetailedMessagesDisplay > renders message counts 1535ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/ConfigInitDisplay.test.tsx (4 tests) 6746ms ✓ ConfigInitDisplay > renders initial state 2620ms ✓ ConfigInitDisplay > updates message on McpClientUpdate event 1442ms ✓ ConfigInitDisplay > truncates list of waiting servers if too many 1370ms ✓ ConfigInitDisplay > handles empty clients map 1284ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/shared/performance.test.ts (3 tests | 1 failed) 17513ms ✓ text-buffer performance > should handle pasting large amounts of text efficiently 3932ms × text-buffer performance > should handle character-by-character insertion in a large buffer efficiently 13494ms → expected 8497 to be less than 5000 ✓ text-buffer performance > should highlight many lines efficiently 66ms [?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?25h[?2004h[?2004h ✓ src/ui/components/ContextUsageDisplay.test.tsx (5 tests) 7534ms ✓ ContextUsageDisplay > renders correct percentage used 2323ms ✓ ContextUsageDisplay > renders correctly when usage is 0% 1349ms ✓ ContextUsageDisplay > renders abbreviated label when terminal width is small 1249ms ✓ ContextUsageDisplay > renders 80% correctly 1295ms ✓ ContextUsageDisplay > renders 100% when full 1300ms ✓ src/ui/components/ToastDisplay.test.tsx (19 tests) 14221ms ✓ ToastDisplay > renders nothing by default 2034ms ✓ ToastDisplay > renders Ctrl+C prompt 1662ms ✓ ToastDisplay > renders warning message 1307ms ✓ ToastDisplay > renders hint message 1310ms ✓ ToastDisplay > renders Ctrl+D prompt 1289ms ✓ ToastDisplay > renders Escape prompt when buffer is empty 1294ms ✓ ToastDisplay > renders Escape prompt when buffer is NOT empty 1314ms ✓ ToastDisplay > renders Queue Error Message 1280ms ✓ ToastDisplay > renders expansion hint when showIsExpandableHint is true 1270ms ✓ ToastDisplay > renders collapse hint when showIsExpandableHint is true and constrainHeight is false 1335ms ✓ src/ui/hooks/useBackgroundTaskManager.test.tsx (6 tests) 8276ms ✓ useBackgroundTaskManager > should initialize with correct default values 1901ms ✓ useBackgroundTaskManager > should auto-select the first background shell when added 1329ms ✓ useBackgroundTaskManager > should reset state when all shells are removed 1295ms ✓ useBackgroundTaskManager > should unfocus embedded shell when no shells are active 1252ms ✓ useBackgroundTaskManager > should calculate backgroundTaskHeight correctly when visible 1196ms ✓ useBackgroundTaskManager > should maintain current active shell if it still exists 1274ms ✓ src/ui/components/views/SkillsList.test.tsx (6 tests) 9788ms ✓ SkillsList Component > should render enabled and disabled skills separately 2835ms ✓ SkillsList Component > should not render descriptions when showDescriptions is false 1588ms ✓ SkillsList Component > should render "No skills available" when skills list is empty 1327ms ✓ SkillsList Component > should only render Available Agent Skills section when all skills are enabled 1365ms ✓ SkillsList Component > should only render Disabled Skills section when all skills are disabled 1334ms ✓ SkillsList Component > should render [Built-in] tag for built-in skills 1317ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useIncludeDirsTrust.test.tsx (6 tests) 7895ms ✓ useIncludeDirsTrust > should do nothing if isTrustedFolder is undefined 1624ms ✓ useIncludeDirsTrust > should do nothing if there are no pending directories 1254ms ✓ useIncludeDirsTrust > when folder trust is disabled or workspace is untrusted > should add directories directly when 'trust is disabled' 1285ms ✓ useIncludeDirsTrust > when folder trust is disabled or workspace is untrusted > should add directories directly when 'workspace is untrusted' 1258ms ✓ useIncludeDirsTrust > when folder trust is enabled and workspace is trusted > should add trusted dirs, collect untrusted errors, and open dialog for undefined 1227ms ✓ useIncludeDirsTrust > when folder trust is enabled and workspace is trusted > should only add directories and clear pending if no dialog is needed 1227ms [?2004h ✓ src/ui/components/shared/ExpandableText.test.tsx (7 tests) 10647ms ✓ ExpandableText > renders plain label when no match (short label) 2257ms ✓ ExpandableText > truncates long label when collapsed and no match 1504ms ✓ ExpandableText > shows full long label when expanded and no match 1460ms ✓ ExpandableText > highlights matched substring when expanded (text only visible) 1306ms ✓ ExpandableText > creates centered window around match when collapsed 1420ms ✓ ExpandableText > truncates match itself when match is very long 1385ms ✓ ExpandableText > respects custom maxWidth 1293ms [?2004h ✓ src/ui/components/ChecklistItem.test.tsx (7 tests) 10235ms ✓ > renders { status: 'pending', label: 'Do this' } item correctly 2237ms ✓ > renders { status: 'in_progress', label: 'Doing this' } item correctly 1335ms ✓ > renders { status: 'completed', label: 'Done this' } item correctly 1488ms ✓ > renders { status: 'cancelled', label: 'Skipped this' } item correctly 1319ms ✓ > renders { status: 'blocked', label: 'Blocked this' } item correctly 1264ms ✓ > truncates long text when wrap="truncate" 1285ms ✓ > wraps long text by default 1285ms [?2004h[?2004h ✓ src/ui/components/shared/TabHeader.test.tsx (13 tests) 19351ms ✓ TabHeader > rendering > renders null for single tab 2007ms ✓ TabHeader > rendering > renders all tab headers 2001ms ✓ TabHeader > rendering > renders separators between tabs 1367ms ✓ TabHeader > arrows > shows arrows by default 1349ms ✓ TabHeader > arrows > hides arrows when showArrows is false 1330ms ✓ TabHeader > status icons > shows status icons by default 1332ms ✓ TabHeader > status icons > hides status icons when showStatusIcons is false 1293ms ✓ TabHeader > status icons > shows checkmark for completed tabs 1324ms ✓ TabHeader > status icons > shows special icon for special tabs 1350ms ✓ TabHeader > status icons > uses tab statusIcon when provided 1687ms ✓ TabHeader > status icons > uses custom renderStatusIcon when provided 1585ms ✓ TabHeader > status icons > truncates long headers when not selected 1409ms ✓ TabHeader > status icons > falls back to default when renderStatusIcon returns undefined 1288ms stderr | src/ui/auth/BannedAccountDialog.test.tsx > BannedAccountDialog > shows URL when browser cannot be launched An update to BannedAccountDialog inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act ✓ src/ui/components/StatusDisplay.test.tsx (7 tests) 10206ms ✓ StatusDisplay > renders nothing by default if context summary is hidden via props 1760ms ✓ StatusDisplay > renders ContextSummaryDisplay by default 1722ms ✓ StatusDisplay > renders system md indicator if env var is set 1560ms ✓ StatusDisplay > renders HookStatusDisplay when hooks are active 1298ms ✓ StatusDisplay > does NOT render HookStatusDisplay if notifications are disabled in settings 1308ms ✓ StatusDisplay > hides ContextSummaryDisplay if configured in settings 1245ms ✓ StatusDisplay > passes backgroundTaskCount to ContextSummaryDisplay 1288ms [?2004h[?2004h ❯ src/ui/components/shared/MaxSizedBox.test.tsx (13 tests | 1 failed) 8918ms ✓ > renders children without truncation when they fit 1463ms ✓ > hides lines when content exceeds maxHeight 670ms ✓ > hides lines at the end when content exceeds maxHeight and overflowDirection is bottom 462ms ✓ > shows plural "lines" when more than one line is hidden 465ms ✓ > shows singular "line" when exactly one line is hidden 494ms ✓ > accounts for additionalHiddenLinesCount 429ms ✓ > wraps text that exceeds maxWidth 380ms ✓ > does not truncate when maxHeight is undefined 333ms ✓ > renders an empty box for empty children 279ms ✓ > handles React.Fragment as a child 436ms ✓ > clips a long single text child from the top 554ms ✓ > clips a long single text child from the bottom 495ms × > does not leak content after hidden indicator with bottom overflow 2423ms → Snapshot ` > does not leak content after hidden indicator with bottom overflow 1` mismatched [?2004h[?2004h[?2004h ✓ src/ui/components/messages/SubagentHistoryMessage.test.tsx (4 tests) 11730ms ✓ SubagentHistoryMessage > renders header with agent name and item count 4266ms ✓ SubagentHistoryMessage > renders thought activities with brain icon 2591ms ✓ SubagentHistoryMessage > renders tool call activities with tool icon 2428ms ✓ SubagentHistoryMessage > renders status indicators correctly 2423ms ✓ src/ui/components/PolicyUpdateDialog.test.tsx (4 tests) 8522ms ✓ PolicyUpdateDialog > renders correctly and matches snapshot 3213ms ✓ PolicyUpdateDialog > handles ACCEPT correctly 1851ms ✓ PolicyUpdateDialog > handles IGNORE correctly 2005ms ✓ PolicyUpdateDialog > calls onClose when Escape key is pressed 1433ms stderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should move an existing command to the top when re-added An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act stderr | src/ui/hooks/useShellHistory.test.ts > useShellHistory > should move an existing command to the top when re-added An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act ✓ src/ui/hooks/useShellHistory.test.ts (7 tests) 9490ms ✓ useShellHistory > should initialize and read the history file from the correct path 1836ms ✓ useShellHistory > should handle a nonexistent history file gracefully 1262ms ✓ useShellHistory > should add a command and write to the history file 1340ms ✓ useShellHistory > should navigate history correctly with previous/next commands 1253ms ✓ useShellHistory > should not add empty or whitespace-only commands to history 1219ms ✓ useShellHistory > should truncate history to MAX_HISTORY_LENGTH (100) 1295ms ✓ useShellHistory > should move an existing command to the top when re-added 1263ms ✓ src/ui/components/GeminiRespondingSpinner.test.tsx (5 tests) 7201ms ✓ GeminiRespondingSpinner > renders spinner when responding 1993ms ✓ GeminiRespondingSpinner > renders screen reader text when responding and screen reader enabled 1346ms ✓ GeminiRespondingSpinner > renders nothing when not responding and no non-responding display 1247ms ✓ GeminiRespondingSpinner > renders non-responding display when provided 1299ms ✓ GeminiRespondingSpinner > renders screen reader loading text when non-responding display provided and screen reader enabled 1296ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004hstdout | src/ui/auth/useAuth.test.tsx > useAuth > useAuthCommand > should authenticate successfully for valid auth type Authenticated via "oauth-personal". [?2004h[?2004h[?2004h ✓ src/ui/hooks/useSettingsNavigation.test.ts (8 tests) 10457ms ✓ useSettingsNavigation > should initialize with the first item active 1672ms ✓ useSettingsNavigation > should move down correctly 1303ms ✓ useSettingsNavigation > should move up correctly 1209ms ✓ useSettingsNavigation > should wrap around from top to bottom 1228ms ✓ useSettingsNavigation > should wrap around from bottom to top 1254ms ✓ useSettingsNavigation > should adjust scrollOffset when moving down past visible area 1237ms ✓ useSettingsNavigation > should adjust scrollOffset when moving up past visible area 1222ms ✓ useSettingsNavigation > should handle item preservation when list filters (Part 1 logic) 1309ms ✓ src/ui/components/LogoutConfirmationDialog.test.tsx (5 tests) 12099ms ✓ LogoutConfirmationDialog > should render the dialog with title, description, and hint 3114ms ✓ LogoutConfirmationDialog > should render RadioButtonSelect with Login and Exit options 1546ms ✓ LogoutConfirmationDialog > should call onSelect with LOGIN when Login is selected 2490ms ✓ LogoutConfirmationDialog > should call onSelect with EXIT when Exit is selected 2463ms ✓ LogoutConfirmationDialog > should call onSelect with EXIT when escape key is pressed 2465ms [?2004h ❯ src/ui/components/ShortcutsHelp.test.tsx (5 tests | 4 failed) 11092ms ✓ ShortcutsHelp > renders correctly in 'wide' mode on 'mac' 3289ms × ShortcutsHelp > renders correctly in 'narrow' mode on 'mac' 2109ms → expected '─────────────────────────────────────…' to contain 'shell mode' × ShortcutsHelp > renders correctly in 'wide' mode on 'linux' 2082ms → expected '─────────────────────────────────────…' to contain 'shell mode' × ShortcutsHelp > renders correctly in 'narrow' mode on 'linux' 1648ms → expected '─────────────────────────────────────…' to contain 'shell mode' × ShortcutsHelp > always shows Tab focus UI shortcut 1939ms → expected '─────────────────────────────────────…' to contain 'Tab focus UI' [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/AppHeaderIcon.test.tsx (2 tests) 7145ms ✓ AppHeader Icon Rendering > renders the default icon in standard terminals 4432ms ✓ AppHeader Icon Rendering > renders the symmetric icon in Apple Terminal 2688ms [?2004h[?2004h ❯ src/ui/components/BubblingRegression.test.tsx (1 test | 1 failed) 7276ms × Key Bubbling Regression > does not navigate when pressing "j" or "k" in a focused text input 7249ms → expected 'Choice Q?\n\n 1.\n O\n p\n …' to contain 'jk' [?2004h[?2004h ✓ src/ui/components/IdeTrustChangeDialog.test.tsx (6 tests) 12870ms ✓ IdeTrustChangeDialog > renders the correct message for CONNECTION_CHANGE 2794ms ✓ IdeTrustChangeDialog > renders the correct message for TRUST_CHANGE 1503ms ✓ IdeTrustChangeDialog > renders a generic message and logs an error for NONE reason 1404ms ✓ IdeTrustChangeDialog > calls relaunchApp when "r" is pressed 2379ms ✓ IdeTrustChangeDialog > calls relaunchApp when "R" is pressed 2389ms ✓ IdeTrustChangeDialog > does not call relaunchApp when another key is pressed 2380ms [?2004h[?2004h[?2004h ✓ src/ui/components/SessionBrowser/SessionBrowserSearchNav.test.tsx (5 tests) 7759ms ✓ SessionBrowser Search and Navigation Components > SearchModeDisplay renders correctly with query 2141ms ✓ SessionBrowser Search and Navigation Components > NavigationHelp renders correctly 1693ms ✓ SessionBrowser Search and Navigation Components > SessionListHeader renders correctly 1314ms ✓ SessionBrowser Search and Navigation Components > SessionListHeader renders correctly with filter 1301ms ✓ SessionBrowser Search and Navigation Components > NoResultsDisplay renders correctly 1286ms [?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/PermissionsModifyTrustDialog.test.tsx (7 tests | 1 failed) 18840ms ✓ PermissionsModifyTrustDialog > should render the main dialog with current trust level 3542ms ✓ PermissionsModifyTrustDialog > should display the inherited trust note from parent 1797ms ✓ PermissionsModifyTrustDialog > should display the inherited trust note from IDE 1654ms × PermissionsModifyTrustDialog > should render the labels with folder names 3832ms → expected '╭────────────────────────────────────…' to contain 'Trust this folder (dir)' ✓ PermissionsModifyTrustDialog > should call onExit when escape is pressed 2724ms ✓ PermissionsModifyTrustDialog > should commit and restart `r` keypress 2656ms ✓ PermissionsModifyTrustDialog > should not commit when escape is pressed during restart prompt 2612ms [?25h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/contexts/MouseContext.test.tsx (18 tests) 22325ms ✓ MouseContext > should subscribe and unsubscribe a handler 1962ms ✓ MouseContext > should not call handler if not active 1270ms ✓ MouseContext > should emit SelectionWarning when move event is unhandled and has coordinates 1236ms ✓ MouseContext > should not emit SelectionWarning when move event is handled 1222ms ✓ MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<0;10;20M'" as 'left-press' 1253ms ✓ MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<0;10;20m'" as 'left-release' 1231ms ✓ MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<2;10;20M'" as 'right-press' 1275ms ✓ MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<1;10;20M'" as 'middle-press' 1272ms ✓ MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<64;10;20M'" as 'scroll-up' 1266ms ✓ MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<65;10;20M'" as 'scroll-down' 1329ms ✓ MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<32;10;20M'" as 'move' 1287ms ✓ MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<4;10;20M'" as 'left-press' 1236ms ✓ MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<8;10;20M'" as 'left-press' 1207ms ✓ MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<20;10;20M'" as 'left-press' 1245ms ✓ MouseContext > SGR Mouse Events > should recognize sequence "'\u001b[<68;10;20M'" as 'scroll-up' 1225ms ✓ MouseContext > should emit a double-click event when two left-presses occur quickly at the same position 1270ms ✓ MouseContext > should NOT emit a double-click event if clicks are too far apart 1255ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/AnsiOutput.test.tsx (16 tests) 21804ms ✓ > renders a simple AnsiOutput object correctly 2071ms ✓ > correctly applies style 'Bold' 1325ms ✓ > correctly applies style 'Italic' 1282ms ✓ > correctly applies style 'Underline' 1283ms ✓ > correctly applies style 'Dim' 1308ms ✓ > correctly applies style 'Inverse' 1250ms ✓ > correctly applies color 'Red FG' 1288ms ✓ > correctly applies color 'Blue BG' 1253ms ✓ > correctly applies color 'Green FG Magenta BG' 1274ms ✓ > handles empty lines and empty tokens 1431ms ✓ > respects the availableTerminalHeight prop and slices the lines correctly 1347ms ✓ > respects the maxLines prop and slices the lines correctly 1251ms ✓ > prioritizes maxLines over availableTerminalHeight if maxLines is smaller 1263ms ✓ > renders a large AnsiOutput object without crashing 1703ms ✓ > robustness > does NOT crash when data is undefined 1226ms ✓ > robustness > does NOT crash when data is an object but not an array 1224ms ✓ src/ui/hooks/useInputHistory.test.ts (14 tests) 18186ms ✓ useInputHistory > should initialize with historyIndex -1 and empty originalQueryBeforeNav 1767ms ✓ useInputHistory > handleSubmit > should call onSubmit with trimmed value and reset history 1281ms ✓ useInputHistory > handleSubmit > should not call onSubmit if value is empty after trimming 1208ms ✓ useInputHistory > navigateUp > should not navigate if isActive is false 1214ms ✓ useInputHistory > navigateUp > should not navigate if userMessages is empty 1199ms ✓ useInputHistory > navigateUp > should call onChange with the last message when navigating up from initial state 1229ms ✓ useInputHistory > navigateUp > should store currentQuery and currentCursorOffset as original state on first navigateUp 1206ms ✓ useInputHistory > navigateUp > should navigate through history messages on subsequent navigateUp calls 1211ms ✓ useInputHistory > navigateDown > should not navigate if isActive is false 1292ms ✓ useInputHistory > navigateDown > should not navigate if historyIndex is -1 (not in history navigation) 1215ms ✓ useInputHistory > navigateDown > should restore cursor offset only when in middle of compose prompt 1193ms ✓ useInputHistory > navigateDown > should NOT restore cursor offset if it was at start or end of compose prompt 1270ms ✓ useInputHistory > navigateDown > should remember text edits but use default cursor when navigating between history items 1383ms ✓ useInputHistory > navigateDown > should restore offset for history items ONLY if returning from them immediately 1492ms [?25h[?2004h[?2004h ✓ src/ui/components/ToolStatsDisplay.test.tsx (5 tests) 9329ms ✓ > should render "no tool calls" message when there are no active tools 2491ms ✓ > should display stats for a single tool correctly 1846ms ✓ > should display stats for multiple tools correctly 1671ms ✓ > should handle large values without wrapping or overlapping 1658ms ✓ > should handle zero decisions gracefully 1643ms [?2004h ✓ src/ui/components/SuggestionsDisplay.test.tsx (7 tests) 10845ms ✓ SuggestionsDisplay > renders loading state 2232ms ✓ SuggestionsDisplay > renders nothing when empty and not loading 1297ms ✓ SuggestionsDisplay > renders suggestions list 1484ms ✓ SuggestionsDisplay > highlights active item 1355ms ✓ SuggestionsDisplay > handles scrolling 1735ms ✓ SuggestionsDisplay > renders MCP tag for MCP prompts 1335ms ✓ SuggestionsDisplay > renders command section separators for slash mode 1382ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/auth/useAuth.test.tsx (16 tests) 15148ms ✓ useAuth > useAuthCommand > should initialize with Unauthenticated state 1642ms ✓ useAuth > useAuthCommand > should set error if no auth type is selected and no env key 1217ms ✓ useAuth > useAuthCommand > should set error if no auth type is selected but env key exists 1214ms ✓ useAuth > useAuthCommand > should transition to AwaitingApiKeyInput if USE_GEMINI and no key found 1253ms ✓ useAuth > useAuthCommand > should authenticate if USE_GEMINI and key is found 1224ms ✓ useAuth > useAuthCommand > should authenticate if USE_GEMINI and env key is found 1255ms ✓ useAuth > useAuthCommand > should prioritize env key over stored key when both are present 1204ms ✓ useAuth > useAuthCommand > should set error if validation fails 1187ms ✓ useAuth > useAuthCommand > should set error if GEMINI_DEFAULT_AUTH_TYPE is invalid 1209ms ✓ useAuth > useAuthCommand > should authenticate successfully for valid auth type 1227ms ✓ useAuth > useAuthCommand > should handle refreshAuth failure 1197ms ✓ useAuth > useAuthCommand > should handle ProjectIdRequiredError without "Failed to login" prefix 1199ms [?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/MultiFolderTrustDialog.test.tsx (8 tests) 21293ms ✓ MultiFolderTrustDialog > renders the dialog with the list of folders 2743ms ✓ MultiFolderTrustDialog > calls onComplete and finishAddingDirectories with an error on escape 2756ms ✓ MultiFolderTrustDialog > calls finishAddingDirectories with an error and does not add directories when "No" is chosen 2613ms ✓ MultiFolderTrustDialog > adds directories to workspace context when "Yes" is chosen 2676ms ✓ MultiFolderTrustDialog > adds directories to workspace context and remembers them as trusted when "Yes, and remember" is chosen 2597ms ✓ MultiFolderTrustDialog > shows submitting message after a choice is made 2651ms ✓ MultiFolderTrustDialog > shows an error message and completes when config is missing 2638ms ✓ MultiFolderTrustDialog > collects and reports errors when some directories fail to be added 2600ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useLoadingIndicator.test.tsx (11 tests) 3732ms ✓ useLoadingIndicator > should initialize with default values when Idle 689ms ✓ useLoadingIndicator > should show interactive shell waiting phrase when shouldShowFocusHint is true 383ms ✓ useLoadingIndicator > should show waiting phrase and retain elapsedTime when WaitingForConfirmation 473ms ✓ useLoadingIndicator > should reset elapsedTime and cycle phrases when transitioning from WaitingForConfirmation to Responding 500ms ✓ useLoadingIndicator > should reset timer and phrase when streamingState changes from Responding to Idle 362ms ✓ src/ui/components/ProQuotaDialog.test.tsx (10 tests) 14696ms ✓ ProQuotaDialog > for flash model failures > should render "Keep trying" and "Stop" options 2551ms ✓ ProQuotaDialog > for non-flash model failures > when it is a terminal quota error > should render switch, upgrade, and stop options for LOGIN_WITH_GOOGLE 1453ms ✓ ProQuotaDialog > for non-flash model failures > when it is a terminal quota error > should NOT render upgrade option for USE_GEMINI 1367ms ✓ ProQuotaDialog > for non-flash model failures > when it is a terminal quota error > should render "Keep trying" and "Stop" options when failed model and fallback model are the same 1333ms ✓ ProQuotaDialog > for non-flash model failures > when it is a terminal quota error > should render switch, upgrade, and stop options for LOGIN_WITH_GOOGLE (free tier) 1398ms ✓ ProQuotaDialog > for non-flash model failures > when it is a terminal quota error > should NOT render upgrade option for LOGIN_WITH_GOOGLE if tier is Ultra 1309ms ✓ ProQuotaDialog > for non-flash model failures > when it is a capacity error > should render keep trying, switch, and stop options 1299ms ✓ ProQuotaDialog > for non-flash model failures > when it is a model not found error > should render switch, upgrade, and stop options for LOGIN_WITH_GOOGLE 1316ms ✓ ProQuotaDialog > for non-flash model failures > when it is a model not found error > should NOT render upgrade option for USE_GEMINI 1315ms ✓ ProQuotaDialog > onChoice handling > should call onChoice with the selected value 1326ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/messages/ToolResultDisplayOverflow.test.tsx (3 tests) 5951ms ✓ ToolResultDisplay Overflow > shows the head of the content when overflowDirection is bottom (string) 2812ms ✓ ToolResultDisplay Overflow > shows the tail of the content when overflowDirection is top (string default) 1652ms ✓ ToolResultDisplay Overflow > shows the head of the content when overflowDirection is bottom (ANSI) 1466ms [?2004h ✓ src/ui/components/ShellInputPrompt.test.tsx (12 tests) 27633ms ✓ ShellInputPrompt > renders nothing 1680ms ✓ ShellInputPrompt > sends tab to pty 2312ms ✓ ShellInputPrompt > handles keypress input: a 2239ms ✓ ShellInputPrompt > handles keypress input: b 2255ms ✓ ShellInputPrompt > handles scroll up (Command.SCROLL_-1) 2270ms ✓ ShellInputPrompt > handles scroll down (Command.SCROLL_1) 2242ms ✓ ShellInputPrompt > handles page scroll pageup (Command.PAGE_-15) with default size 2244ms ✓ ShellInputPrompt > handles page scroll pagedown (Command.PAGE_15) with default size 2242ms ✓ ShellInputPrompt > respects scrollPageSize prop 3335ms ✓ ShellInputPrompt > does not handle input when not focused 2293ms ✓ ShellInputPrompt > does not handle input when no active shell 2245ms ✓ ShellInputPrompt > ignores Command.UNFOCUS_SHELL (Shift+Tab) to allow focus navigation 2252ms [?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/Banner.test.tsx (4 tests) 11551ms ✓ Banner > renders in warning mode 4031ms ✓ Banner > renders in info mode 2580ms ✓ Banner > renders in multi-line warning 2454ms ✓ Banner > handles newlines in text 2462ms ✓ src/ui/contexts/SettingsContext.test.tsx (5 tests) 6603ms ✓ SettingsContext > should provide the correct initial state 1630ms ✓ SettingsContext > should allow accessing settings for a specific scope 1235ms ✓ SettingsContext > should trigger re-renders when settings change (external event) 1222ms ✓ SettingsContext > should call store.setValue when setSetting is called 1230ms ✓ SettingsContext > should throw error if used outside provider 1269ms [?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useEditorSettings.test.tsx (10 tests) 12904ms ✓ useEditorSettings > should initialize with dialog closed 1794ms ✓ useEditorSettings > should open editor dialog when openEditorDialog is called 1261ms ✓ useEditorSettings > should close editor dialog when exitEditorDialog is called 1218ms ✓ useEditorSettings > should handle editor selection successfully 1272ms ✓ useEditorSettings > should handle clearing editor preference (undefined editor) 1234ms ✓ useEditorSettings > should handle different editor types 1213ms ✓ useEditorSettings > should handle different setting scopes 1231ms ✓ useEditorSettings > should not set preference for unavailable editors 1218ms ✓ useEditorSettings > should not set preference for editors not allowed in sandbox 1197ms ✓ useEditorSettings > should handle errors during editor selection 1229ms [?2004h[?2004h ✓ src/ui/components/messages/CompressionMessage.test.tsx (17 tests) 24098ms ✓ > pending state > renders pending message when compression is in progress 2380ms ✓ > normal compression (successful token reduction) > renders success message when tokens are reduced 1593ms ✓ > normal compression (successful token reduction) > renders success message for large successful compression (from 50000 to 25000) 1325ms ✓ > normal compression (successful token reduction) > renders success message for large successful compression (from 700000 to 350000) 1310ms ✓ > skipped compression (tokens increased or same) > renders skip message when compression would increase token count 1338ms ✓ > skipped compression (tokens increased or same) > renders skip message when token counts are equal 1314ms ✓ > message content validation > displays correct compression statistics (from 200 to 80) 1344ms ✓ > message content validation > displays correct compression statistics (from 500 to 150) 1371ms ✓ > message content validation > displays correct compression statistics (from 1500 to 400) 1361ms ✓ > message content validation > shows skip message for small histories when new tokens >= original tokens (50 -> 60) 1389ms ✓ > message content validation > shows skip message for small histories when new tokens >= original tokens (100 -> 100) 1331ms ✓ > message content validation > shows skip message for small histories when new tokens >= original tokens (49999 -> 50000) 1322ms ✓ > message content validation > shows compression failure message for large histories when new tokens >= original tokens (50000 -> 50100) 1376ms ✓ > message content validation > shows compression failure message for large histories when new tokens >= original tokens (700000 -> 710000) 1389ms ✓ > message content validation > shows compression failure message for large histories when new tokens >= original tokens (100000 -> 100000) 1306ms ✓ > failure states > renders failure message when model returns an empty summary 1324ms ✓ > failure states > renders failure message for token count errors 1300ms [?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/shared/SearchableList.test.tsx (8 tests | 3 failed) 21693ms ✓ SearchableList > should render all items initially 3027ms × SearchableList > should reset selection to top when items change if resetSelectionOnItemsChange is true 4220ms → expected ' Test List\n\n ╭─────────────────────…' to contain '● Item Two' × SearchableList > should filter items based on search query 4068ms → expected ' Test List\n\n ╭─────────────────────…' to contain 'Item Two' ✓ SearchableList > should show "No items found." when no items match 1961ms ✓ SearchableList > should handle selection with Enter 2619ms ✓ SearchableList > should handle navigation and selection 2588ms ✓ SearchableList > should handle close with Esc 1527ms × SearchableList > should match snapshot 1660ms → Snapshot `SearchableList > should match snapshot 1` mismatched [?2004h[?2004h[?2004h(node:30676) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 101 model-changed listeners added to [CoreEventEmitter]. MaxListeners is 100. Use emitter.setMaxListeners() to increase limit (node:30676) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 101 memory-changed listeners added to [CoreEventEmitter]. MaxListeners is 100. Use emitter.setMaxListeners() to increase limit (node:30676) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 101 approval-mode-changed listeners added to [CoreEventEmitter]. MaxListeners is 100. Use emitter.setMaxListeners() to increase limit [?2004h ✓ src/ui/components/ValidationDialog.test.tsx (8 tests) 18720ms ✓ ValidationDialog > initial render (choosing state) > should render the main message and two options 2465ms ✓ ValidationDialog > initial render (choosing state) > should render learn more URL when provided 1538ms ✓ ValidationDialog > initial render (choosing state) > should call onChoice with cancel when ESCAPE is pressed 2418ms ✓ ValidationDialog > onChoice handling > should call onChoice with change_auth when that option is selected 2412ms ✓ ValidationDialog > onChoice handling > should call onChoice with verify when no validation link is provided 2371ms ✓ ValidationDialog > onChoice handling > should open browser and transition to waiting state when verify is selected with a link 2510ms ✓ ValidationDialog > headless mode > should show URL in message when browser cannot be launched 2529ms ✓ ValidationDialog > error state > should show error and options when browser fails to open 2454ms [?2004h[?2004h[?2004h[?2004h(node:37394) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 update listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (Use `node --trace-warnings ...` to show where the warning was created) (node:37394) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clear listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/HookStatusDisplay.test.tsx (6 tests) 14871ms ✓ > should render a single executing hook 3121ms ✓ > should render multiple executing hooks 2414ms ✓ > should render sequential hook progress 2336ms ✓ > should return empty string if no active hooks 2288ms ✓ > should show generic message when only system hooks are active 2347ms ✓ > matches SVG snapshot for single hook 2346ms [?2004h[?2004h[?2004h[?2004h[?2004h(node:32228) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 update listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (Use `node --trace-warnings ...` to show where the warning was created) (node:32228) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clear listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/EditorSettingsDialog.test.tsx (5 tests) 13499ms ✓ EditorSettingsDialog > renders correctly 3415ms ✓ EditorSettingsDialog > calls onSelect when an editor is selected 1614ms ✓ EditorSettingsDialog > switches focus between editor and scope sections on Tab 4498ms ✓ EditorSettingsDialog > calls onExit when Escape is pressed 2461ms ✓ EditorSettingsDialog > shows modified message when setting exists in other scope 1486ms ✓ src/ui/auth/ApiAuthDialog.test.tsx (6 tests) 11696ms ✓ ApiAuthDialog > renders correctly 3155ms ✓ ApiAuthDialog > renders with a defaultValue 1577ms ✓ ApiAuthDialog > calls 'spy' when 'enter' is pressed 1543ms ✓ ApiAuthDialog > calls 'spy' when 'escape' is pressed 1637ms ✓ ApiAuthDialog > displays an error message 1890ms ✓ ApiAuthDialog > calls clearApiKey and clears buffer when Ctrl+C is pressed 1875ms [?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/usePhraseCycler.test.tsx (11 tests) 5597ms ✓ usePhraseCycler > should initialize with an empty string when not active and not waiting 873ms ✓ usePhraseCycler > should show "Waiting for user confirmation..." when isWaiting is true 808ms ✓ usePhraseCycler > should show interactive shell waiting message immediately when shouldShowFocusHint is true 787ms ✓ usePhraseCycler > should prioritize interactive shell waiting over normal waiting immediately 469ms ✓ usePhraseCycler > should not cycle phrases if isActive is false and not waiting 348ms ✓ usePhraseCycler > should show both a tip and a witty phrase when both are enabled 340ms ✓ usePhraseCycler > should cycle through phrases when isActive is true and not waiting 344ms ✓ usePhraseCycler > should reset to phrases when isActive becomes true after being false 553ms ✓ usePhraseCycler > should use custom phrases when provided 443ms ✓ usePhraseCycler > should fall back to witty phrases if custom phrases are an empty array 320ms [?2004h[?2004h ✓ src/ui/hooks/useInputHistoryStore.test.ts (14 tests) 17565ms ✓ useInputHistoryStore > should initialize with empty input history 1633ms ✓ useInputHistoryStore > should add input to history 1274ms ✓ useInputHistoryStore > should not add empty or whitespace-only inputs 1229ms ✓ useInputHistoryStore > should deduplicate consecutive identical messages 1255ms ✓ useInputHistoryStore > should initialize from logger successfully 1218ms ✓ useInputHistoryStore > should handle logger initialization failure gracefully 1237ms ✓ useInputHistoryStore > should initialize only once 1195ms ✓ useInputHistoryStore > should handle null logger gracefully 1184ms ✓ useInputHistoryStore > should trim input before adding to history 1208ms ✓ useInputHistoryStore > deduplication logic from previous implementation > should deduplicate consecutive messages from past sessions during initialization 1247ms ✓ useInputHistoryStore > deduplication logic from previous implementation > should deduplicate across session boundaries 1245ms ✓ useInputHistoryStore > deduplication logic from previous implementation > should preserve non-consecutive duplicates 1218ms ✓ useInputHistoryStore > deduplication logic from previous implementation > should handle complex deduplication with current session 1211ms ✓ useInputHistoryStore > deduplication logic from previous implementation > should maintain oldest-first order in final output 1189ms ✓ src/ui/components/messages/SubagentProgressDisplay.test.tsx (9 tests) 13578ms ✓ > renders correctly with description in args 2639ms ✓ > renders correctly with displayName and description from item 1468ms ✓ > renders correctly with command fallback 1379ms ✓ > renders correctly with file_path 1351ms ✓ > truncates long args 1464ms ✓ > renders thought bubbles correctly 1356ms ✓ > renders cancelled state correctly 1297ms ✓ > renders "Request cancelled." with the info icon 1304ms ✓ > renders error tool status correctly 1294ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/shared/EnumSelector.test.tsx (9 tests) 13597ms ✓ > renders with string options and matches snapshot 2682ms ✓ > renders with numeric options and matches snapshot 1400ms ✓ > renders inactive state and matches snapshot 1344ms ✓ > renders with single option and matches snapshot 1302ms ✓ > renders nothing when no options are provided 1293ms ✓ > handles currentValue not found in options 1278ms ✓ > updates when currentValue changes externally 1601ms ✓ > shows navigation arrows when multiple options available 1317ms ✓ > hides navigation arrows when single option available 1358ms [?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/views/ExtensionDetails.test.tsx (12 tests) 20061ms ✓ ExtensionDetails > should render extension details correctly 3781ms ✓ ExtensionDetails > should show install prompt when not installed 1752ms ✓ ExtensionDetails > should show already installed message when installed 1577ms ✓ ExtensionDetails > should call onBack when Escape is pressed 1639ms ✓ ExtensionDetails > should call onInstall when Enter is pressed and not installed 1646ms ✓ ExtensionDetails > should NOT call onInstall when Enter is pressed and already installed 469ms ✓ ExtensionDetails > should call onLink when "l" is pressed and is linkable 1615ms ✓ ExtensionDetails > should NOT show "Link" button for GitHub extensions 1575ms ✓ ExtensionDetails > should show "Link" button for local extensions 1615ms ✓ ExtensionDetails > should show update button when update is available 1505ms ✓ ExtensionDetails > should call onUpdate when "i" is pressed 1403ms ✓ ExtensionDetails > should show [Updating...] and hide "Already Installed" when update is in progress 1461ms [?2004h[?2004h ✓ src/ui/auth/BannedAccountDialog.test.tsx (10 tests) 16283ms ✓ BannedAccountDialog > renders the suspension message from accountSuspensionInfo 2800ms ✓ BannedAccountDialog > renders menu options with appeal link text from response 1491ms ✓ BannedAccountDialog > hides form option when no appealUrl is provided 1402ms ✓ BannedAccountDialog > uses default label when appealLinkText is not provided 1451ms ✓ BannedAccountDialog > opens browser when appeal option is selected 1503ms ✓ BannedAccountDialog > shows URL when browser cannot be launched 1979ms ✓ BannedAccountDialog > calls onExit when "Exit" is selected 1369ms ✓ BannedAccountDialog > calls onChangeAuth when "Change authentication" is selected 1387ms ✓ BannedAccountDialog > exits on escape key 1383ms ✓ BannedAccountDialog > renders snapshot correctly 1498ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/messages/ThinkingMessage.test.tsx (8 tests) 21456ms ✓ ThinkingMessage > renders subject line with vertical rule and "Thinking..." header 4002ms ✓ ThinkingMessage > uses description when subject is empty 2490ms ✓ ThinkingMessage > renders full mode with left border and full text 2452ms ✓ ThinkingMessage > renders "Thinking..." header when isFirstThinking is true 2483ms ✓ ThinkingMessage > normalizes escaped newline tokens 2483ms ✓ ThinkingMessage > renders empty state gracefully 2288ms ✓ ThinkingMessage > renders multiple thinking messages sequentially correctly 2766ms ✓ ThinkingMessage > filters out progress dots and empty lines 2469ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useSessionResume.test.ts (14 tests) 17880ms ✓ useSessionResume > loadHistoryForResume > should return a loadHistoryForResume callback 1712ms ✓ useSessionResume > loadHistoryForResume > should clear history and add items when loading history 1286ms ✓ useSessionResume > loadHistoryForResume > should not load history if Gemini client is not initialized 1221ms ✓ useSessionResume > loadHistoryForResume > should handle empty history arrays 1225ms ✓ useSessionResume > loadHistoryForResume > should restore directories from resumed session data 1217ms ✓ useSessionResume > loadHistoryForResume > should not call addDirectories when no directories in resumed session 1234ms ✓ useSessionResume > callback stability > should maintain stable loadHistoryForResume reference across renders 1309ms ✓ useSessionResume > callback stability > should update callback when config changes 1332ms ✓ useSessionResume > automatic resume on mount > should not resume when resumedSessionData is not provided 1207ms ✓ useSessionResume > automatic resume on mount > should not resume when user is authenticating 1224ms ✓ useSessionResume > automatic resume on mount > should not resume when Gemini client is not initialized 1200ms ✓ useSessionResume > automatic resume on mount > should automatically resume session when resumedSessionData is provided 1202ms ✓ useSessionResume > automatic resume on mount > should only resume once even if props change 1271ms ✓ useSessionResume > automatic resume on mount > should convert session messages correctly during auto-resume 1213ms [?2004h[?2004h[?2004h ✓ src/ui/components/Header.test.tsx (7 tests) 14697ms ✓
> renders the long logo on a wide terminal 2668ms ✓
> renders custom ASCII art when provided 1342ms ✓
> displays the version number when nightly is true 1358ms ✓
> does not display the version number when nightly is false 1315ms ✓
> renders with no gradient when theme.ui.gradient is undefined 2301ms ✓
> renders with a single color when theme.ui.gradient has one color 2632ms ✓
> renders with a gradient when theme.ui.gradient has two or more colors 3055ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/SessionBrowser.test.tsx (6 tests) 5090ms ✓ SessionBrowser component > shows empty state when no sessions exist 1180ms ✓ SessionBrowser component > renders a list of sessions and marks current session as disabled 940ms ✓ SessionBrowser component > enters search mode, filters sessions, and renders match snippets 1440ms ✓ SessionBrowser component > handles keyboard navigation and resumes the selected session 750ms ✓ SessionBrowser component > does not allow resuming or deleting the current session 482ms ✓ src/ui/components/SessionBrowser/SessionBrowserStates.test.tsx (3 tests) 4851ms ✓ SessionBrowser UI States > SessionBrowserLoading renders correctly 2214ms ✓ SessionBrowser UI States > SessionBrowserError renders correctly 1333ms ✓ SessionBrowser UI States > SessionBrowserEmpty renders correctly 1285ms ✓ src/ui/components/shared/TextInput.test.tsx (15 tests) 26342ms ✓ TextInput > renders with an initial value 2094ms ✓ TextInput > renders a placeholder 1368ms ✓ TextInput > handles character input 2354ms ✓ TextInput > handles backspace 2312ms ✓ TextInput > handles left arrow 2327ms ✓ TextInput > handles right arrow 2272ms ✓ TextInput > calls onSubmit on return 2300ms ✓ TextInput > expands paste placeholder to real content on submit 2350ms ✓ TextInput > submits text unchanged when pastedContent is empty 2303ms ✓ TextInput > calls onCancel on escape 330ms ✓ TextInput > renders the input value 1266ms ✓ TextInput > does not show cursor when not focused 1258ms ✓ TextInput > renders multiple lines when text wraps 1295ms ✓ TextInput > registers mouse click handler for free-form text input 1260ms ✓ TextInput > registers mouse click handler for placeholder view 1222ms ✓ src/ui/hooks/useApprovalModeIndicator.test.ts (21 tests) 26249ms ✓ useApprovalModeIndicator > should initialize with ApprovalMode.AUTO_EDIT if config.getApprovalMode returns ApprovalMode.AUTO_EDIT 1644ms ✓ useApprovalModeIndicator > should initialize with ApprovalMode.DEFAULT if config.getApprovalMode returns ApprovalMode.DEFAULT 1251ms ✓ useApprovalModeIndicator > should initialize with ApprovalMode.YOLO if config.getApprovalMode returns ApprovalMode.YOLO 1228ms ✓ useApprovalModeIndicator > should cycle the indicator and update config when Shift+Tab or Ctrl+Y is pressed 1323ms ✓ useApprovalModeIndicator > should not toggle if only one key or other keys combinations are pressed 1232ms ✓ useApprovalModeIndicator > should update indicator when config value changes externally (useEffect dependency) 1295ms ✓ useApprovalModeIndicator > in untrusted folders > should not enable YOLO mode when Ctrl+Y is pressed 1250ms ✓ useApprovalModeIndicator > in untrusted folders > should not enable AUTO_EDIT mode when Shift+Tab is pressed 1213ms ✓ useApprovalModeIndicator > in untrusted folders > should disable YOLO mode when Ctrl+Y is pressed 1207ms ✓ useApprovalModeIndicator > in untrusted folders > should disable AUTO_EDIT mode when Shift+Tab is pressed 1245ms ✓ useApprovalModeIndicator > in untrusted folders > should show a warning when trying to enable privileged modes 1246ms ✓ useApprovalModeIndicator > when YOLO mode is disabled by settings > should not enable YOLO mode when Ctrl+Y is pressed and add an info message 1198ms ✓ useApprovalModeIndicator > when YOLO mode is disabled by settings > should show admin error message when YOLO mode is disabled by admin 1214ms ✓ useApprovalModeIndicator > when YOLO mode is disabled by settings > should show default error message when admin settings are empty 1241ms ✓ useApprovalModeIndicator > should call onApprovalModeChange when switching to YOLO mode 1209ms ✓ useApprovalModeIndicator > should call onApprovalModeChange when switching to AUTO_EDIT mode 1189ms ✓ useApprovalModeIndicator > should call onApprovalModeChange when switching to DEFAULT mode 1201ms ✓ useApprovalModeIndicator > should not call onApprovalModeChange when callback is not provided 1190ms ✓ useApprovalModeIndicator > should handle multiple mode changes correctly 1226ms ✓ useApprovalModeIndicator > should cycle to PLAN when allowPlanMode is true 1203ms ✓ useApprovalModeIndicator > should cycle to DEFAULT when allowPlanMode is false 1217ms [?25h[?25h[?2004h ✓ src/ui/hooks/useTabbedNavigation.test.ts (23 tests) 31886ms ✓ useTabbedNavigation > keyboard navigation > moves to next tab on Right arrow 1688ms ✓ useTabbedNavigation > keyboard navigation > moves to previous tab on Left arrow 1241ms ✓ useTabbedNavigation > keyboard navigation > moves to next tab on Tab key 1214ms ✓ useTabbedNavigation > keyboard navigation > moves to previous tab on Shift+Tab key 1224ms ✓ useTabbedNavigation > keyboard navigation > does not navigate when isNavigationBlocked returns true 1198ms ✓ useTabbedNavigation > initialization > returns initial index of 0 by default 1203ms ✓ useTabbedNavigation > initialization > returns specified initial index 1242ms ✓ useTabbedNavigation > initialization > clamps initial index to valid range 2375ms ✓ useTabbedNavigation > goToNextTab > advances to next tab 1232ms ✓ useTabbedNavigation > goToNextTab > stops at last tab when wrapAround is false 1201ms ✓ useTabbedNavigation > goToNextTab > wraps to first tab when wrapAround is true 1206ms ✓ useTabbedNavigation > goToPrevTab > moves to previous tab 1200ms ✓ useTabbedNavigation > goToPrevTab > stops at first tab when wrapAround is false 1192ms ✓ useTabbedNavigation > goToPrevTab > wraps to last tab when wrapAround is true 1196ms ✓ useTabbedNavigation > setCurrentIndex > sets index directly 1205ms ✓ useTabbedNavigation > setCurrentIndex > ignores out-of-bounds index 1192ms ✓ useTabbedNavigation > isNavigationBlocked > blocks navigation when callback returns true 1193ms ✓ useTabbedNavigation > isNavigationBlocked > allows navigation when callback returns false 1225ms ✓ useTabbedNavigation > onTabChange callback > calls onTabChange when tab changes via goToNextTab 1228ms ✓ useTabbedNavigation > onTabChange callback > calls onTabChange when tab changes via setCurrentIndex 1189ms ✓ useTabbedNavigation > onTabChange callback > does not call onTabChange when tab does not change 1192ms ✓ useTabbedNavigation > isFirstTab and isLastTab > returns correct boundary flags based on position 3547ms ✓ useTabbedNavigation > tabCount changes > reinitializes when tabCount changes 1267ms [?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/contexts/KeypressContext.test.tsx (142 tests) 32399ms ✓ KeypressContext > Enter key handling > should recognize 'regular enter key (keycode 13)' in kitty protocol 1033ms ✓ KeypressContext > Parameterized functional keys > should recognize sequence "'\u001b[302u'" as 'f13' 437ms ✓ KeypressContext > Numpad support > should recognize numpad sequence "'\u001bOn'" as '.' 504ms ✓ KeypressContext > Cross-terminal Alt key handling (simulating macOS) > should handle Alt+'m' in 'Ghostty' 577ms ✓ KeypressContext > SGR Mouse Handling > should ignore specific SGR mouse sequence sandwiched between keystrokes 626ms [?2004h ✓ src/ui/components/SessionSummaryDisplay.test.tsx (6 tests) 19313ms ✓ > renders the summary display with a title 5007ms ✓ > Session ID escaping > renders a standard UUID-formatted session ID in the footer (bash) 2940ms ✓ > Session ID escaping > sanitizes a malicious session ID in the footer (bash) 2836ms ✓ > Session ID escaping > renders a standard UUID-formatted session ID in the footer (powershell) 2785ms ✓ > Session ID escaping > sanitizes a malicious session ID in the footer (powershell) 2783ms ✓ > Worktree status > renders worktree instructions when worktreeSettings are present 2938ms ❯ src/ui/components/messages/Todo.test.tsx (14 tests | 3 failed) 20328ms ✓ (showFullTodos: true) > renders null when no todos are in the history 1894ms ✓ (showFullTodos: true) > renders null when todo list is empty 1308ms ✓ (showFullTodos: true) > renders when todos exist but none are in progress 2303ms ✓ (showFullTodos: true) > renders when todos exist and one is in progress 1498ms ✓ (showFullTodos: true) > renders a todo list with long descriptions that wrap when full view is on 1541ms ✓ (showFullTodos: true) > renders the most recent todo list when multiple write_todos calls are in history 1420ms ✓ (showFullTodos: true) > renders full list when all todos are inactive 1435ms ✓ (showFullTodos: false) > renders null when no todos are in the history 1237ms ✓ (showFullTodos: false) > renders null when todo list is empty 1214ms ✓ (showFullTodos: false) > renders when todos exist but none are in progress 1304ms × (showFullTodos: false) > renders when todos exist and one is in progress 1373ms → Snapshot ` (showFullTodos: false) > renders when todos exist and one is in progress 1` mismatched × (showFullTodos: false) > renders a todo list with long descriptions that wrap when full view is on 1277ms → Snapshot ` (showFullTodos: false) > renders a todo list with long descriptions that wrap when full view is on 1` mismatched × (showFullTodos: false) > renders the most recent todo list when multiple write_todos calls are in history 1256ms → Snapshot ` (showFullTodos: false) > renders the most recent todo list when multiple write_todos calls are in history 1` mismatched ✓ (showFullTodos: false) > renders full list when all todos are inactive 1236ms [?2004h[?2004h ✓ src/ui/components/Notifications.test.tsx (12 tests) 19139ms ✓ Notifications > renders nothing when no notifications 2390ms ✓ Notifications > renders startup warnings: [object Object] 1959ms ✓ Notifications > renders startup warnings: [object Object],[object Object] 1474ms ✓ Notifications > increments show count for low priority warnings 1385ms ✓ Notifications > filters out low priority warnings that exceeded max show count 1417ms ✓ Notifications > dismisses warnings on keypress 2499ms ✓ Notifications > renders init error 1415ms ✓ Notifications > does not render init error when streaming 1257ms ✓ Notifications > renders update notification 1368ms ✓ Notifications > renders screen reader nudge when enabled and not seen (no legacy file) 1453ms ✓ Notifications > migrates legacy screen reader nudge file 1220ms ✓ Notifications > does not render screen reader nudge when already seen in persistent state 1275ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/HooksDialog.test.tsx (12 tests) 31041ms ✓ HooksDialog > snapshots > renders empty hooks dialog 2853ms ✓ HooksDialog > snapshots > renders single hook with security warning, source, and tips 2012ms ✓ HooksDialog > snapshots > renders hooks grouped by event name with enabled and disabled status 1920ms ✓ HooksDialog > snapshots > renders hook with all metadata (matcher, sequential, timeout) 1725ms ✓ HooksDialog > snapshots > renders hook using command as name when name is not provided 1725ms ✓ HooksDialog > keyboard interaction > should call onClose when escape key is pressed 1368ms ✓ HooksDialog > scrolling behavior > should not show scroll indicators when hooks fit within maxVisibleHooks 1846ms ✓ HooksDialog > scrolling behavior > should show scroll down indicator when there are more hooks than maxVisibleHooks 1985ms ✓ HooksDialog > scrolling behavior > should scroll down when down arrow is pressed 3467ms ✓ HooksDialog > scrolling behavior > should scroll up when up arrow is pressed after scrolling down 5622ms ✓ HooksDialog > scrolling behavior > should not scroll beyond the end 3465ms ✓ HooksDialog > scrolling behavior > should not scroll above the beginning 3020ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/privacy/CloudFreePrivacyNotice.test.tsx (9 tests) 19675ms ✓ CloudFreePrivacyNotice > renders correctly in 'loading state' 2066ms ✓ CloudFreePrivacyNotice > renders correctly in 'error state' 1426ms ✓ CloudFreePrivacyNotice > renders correctly in 'non-free tier state' 1406ms ✓ CloudFreePrivacyNotice > renders correctly in 'free tier state' 1981ms ✓ CloudFreePrivacyNotice > exits on Escape in 'error state': true 2323ms ✓ CloudFreePrivacyNotice > exits on Escape in 'non-free tier state': true 2345ms ✓ CloudFreePrivacyNotice > exits on Escape in 'free tier state (no selection)': false 2759ms ✓ CloudFreePrivacyNotice > RadioButtonSelect interaction > calls correct functions on selecting "'Yes'" 2695ms ✓ CloudFreePrivacyNotice > RadioButtonSelect interaction > calls correct functions on selecting "'No'" 2643ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/views/McpStatus.test.tsx (16 tests) 23811ms ✓ McpStatus > renders correctly with a connected server 2534ms ✓ McpStatus > renders correctly with authenticated OAuth status 1481ms ✓ McpStatus > renders correctly with expired OAuth status 1399ms ✓ McpStatus > renders correctly with unauthenticated OAuth status 1390ms ✓ McpStatus > renders correctly with a disconnected server 1380ms ✓ McpStatus > renders correctly when discovery is in progress 1448ms ✓ McpStatus > renders correctly with schema enabled 1491ms ✓ McpStatus > renders correctly with parametersJsonSchema 1467ms ✓ McpStatus > renders correctly with prompts 1404ms ✓ McpStatus > renders correctly with resources 1450ms ✓ McpStatus > renders correctly with a blocked server 1294ms ✓ McpStatus > renders correctly with both blocked and unblocked servers 1380ms ✓ McpStatus > renders only blocked servers when no configured servers exist 1294ms ✓ McpStatus > renders correctly with a connecting server 1339ms ✓ McpStatus > renders correctly with a server error 1388ms ✓ McpStatus > truncates resources when exceeding limit 1651ms [?2004h[?2004h[?2004h ✓ src/ui/hooks/useAgentStream.test.tsx (6 tests) 8499ms ✓ useAgentStream > should initialize on mount 2139ms ✓ useAgentStream > should call agent.send when submitQuery is called 1319ms ✓ useAgentStream > should update streamingState based on agent_start and agent_end events 1259ms ✓ useAgentStream > should accumulate text content and update pendingHistoryItems 1267ms ✓ useAgentStream > should process thought events and update thought state 1246ms ✓ useAgentStream > should call agent.abort when cancelOngoingRequest is called 1250ms [?2004h[?2004h[?25h ❯ src/ui/components/FolderTrustDialog.test.tsx (18 tests | 3 failed) 33452ms ✓ FolderTrustDialog > should render the dialog with title and description 3435ms ✓ FolderTrustDialog > should truncate discovery results when they exceed maxDiscoveryHeight 1588ms ✓ FolderTrustDialog > should adjust maxHeight based on terminal rows 998ms ✓ FolderTrustDialog > should use minimum maxHeight of 4 940ms ✓ FolderTrustDialog > should toggle expansion when global Ctrl+O is handled 3003ms ✓ FolderTrustDialog > should display exit message and call process.exit and not call onSelect when escape is pressed 3067ms ✓ FolderTrustDialog > should display restart message when isRestarting is true 1670ms ✓ FolderTrustDialog > should call relaunchApp when isRestarting is true 1132ms ✓ FolderTrustDialog > should not call relaunchApp if unmounted before timeout 986ms ✓ FolderTrustDialog > should not call process.exit when "r" is pressed and isRestarting is false 2634ms × FolderTrustDialog > directory display > should correctly display the folder name for a nested directory 1832ms → expected ' ╭───────────────────────────────────…' to contain 'Trust folder (project)' × FolderTrustDialog > directory display > should correctly display the parent folder name for a nested directory 1601ms → expected ' ╭───────────────────────────────────…' to contain 'Trust parent folder (user)' × FolderTrustDialog > directory display > should correctly display an empty parent folder name for a directory directly under root 1587ms → expected ' ╭───────────────────────────────────…' to contain 'Trust parent folder ()' ✓ FolderTrustDialog > directory display > should display discovery results when provided 2249ms ✓ FolderTrustDialog > directory display > should display security warnings when provided 1732ms ✓ FolderTrustDialog > directory display > should display discovery errors when provided 1699ms ✓ FolderTrustDialog > directory display > should use scrolling instead of truncation when alternate buffer is enabled and expanded 1241ms ✓ FolderTrustDialog > directory display > should strip ANSI codes from discovery results 2029ms [?2004h[?2004h[?2004h(node:31326) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 update listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (Use `node --trace-warnings ...` to show where the warning was created) (node:31326) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clear listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit [?2004h[?2004h[?2004h[?2004h ❯ src/ui/utils/MarkdownDisplay.test.tsx (30 tests | 8 failed) 35346ms ✓ > renders nothing for empty text 2065ms ✓ > renders a simple paragraph 1685ms ✓ > with 'Windows' line endings > renders headers with correct levels 1467ms ✓ > with 'Windows' line endings > renders a fenced code block with a language 920ms ✓ > with 'Windows' line endings > renders a fenced code block without a language 2000ms ✓ > with 'Windows' line endings > handles unclosed (pending) code blocks 466ms × > with 'Windows' line endings > renders unordered lists with different markers 2623ms → Snapshot ` > with 'Windows' line endings > renders unordered lists with different markers 1` mismatched × > with 'Windows' line endings > renders nested unordered lists 1428ms → Snapshot ` > with 'Windows' line endings > renders nested unordered lists 1` mismatched × > with 'Windows' line endings > renders ordered lists 1500ms → Snapshot ` > with 'Windows' line endings > renders ordered lists 1` mismatched ✓ > with 'Windows' line endings > renders horizontal rules 1422ms ✓ > with 'Windows' line endings > renders tables correctly 1823ms ✓ > with 'Windows' line endings > handles a table at the end of the input 1366ms ✓ > with 'Windows' line endings > inserts a single space between paragraphs 1333ms × > with 'Windows' line endings > correctly parses a mix of markdown elements 1095ms → Snapshot ` > with 'Windows' line endings > correctly parses a mix of markdown elements 1` mismatched ✓ > with 'Windows' line endings > hides line numbers in code blocks when showLineNumbers is false 404ms ✓ > with 'Windows' line endings > shows line numbers in code blocks by default 401ms ✓ > with 'Unix' line endings > renders headers with correct levels 1353ms ✓ > with 'Unix' line endings > renders a fenced code block with a language 373ms ✓ > with 'Unix' line endings > renders a fenced code block without a language 339ms ✓ > with 'Unix' line endings > handles unclosed (pending) code blocks 332ms × > with 'Unix' line endings > renders unordered lists with different markers 1363ms → Snapshot ` > with 'Unix' line endings > renders unordered lists with different markers 1` mismatched × > with 'Unix' line endings > renders nested unordered lists 1400ms → Snapshot ` > with 'Unix' line endings > renders nested unordered lists 1` mismatched × > with 'Unix' line endings > renders ordered lists 1379ms → Snapshot ` > with 'Unix' line endings > renders ordered lists 1` mismatched ✓ > with 'Unix' line endings > renders horizontal rules 1330ms ✓ > with 'Unix' line endings > renders tables correctly 1427ms ✓ > with 'Unix' line endings > handles a table at the end of the input 1305ms ✓ > with 'Unix' line endings > inserts a single space between paragraphs 1293ms × > with 'Unix' line endings > correctly parses a mix of markdown elements 658ms → Snapshot ` > with 'Unix' line endings > correctly parses a mix of markdown elements 1` mismatched ✓ > with 'Unix' line endings > hides line numbers in code blocks when showLineNumbers is false 383ms ✓ > with 'Unix' line endings > shows line numbers in code blocks by default 383ms ❯ src/ui/components/EmptyWalletDialog.test.tsx (11 tests | 1 failed) 21211ms ✓ EmptyWalletDialog > rendering > should match snapshot with fallback available 3361ms × EmptyWalletDialog > rendering > should match snapshot without fallback 1672ms → Snapshot `EmptyWalletDialog > rendering > should match snapshot without fallback 1` mismatched ✓ EmptyWalletDialog > rendering > should display the model name and usage limit message 1619ms ✓ EmptyWalletDialog > rendering > should display purchase prompt and credits update notice 1592ms ✓ EmptyWalletDialog > rendering > should display reset time when provided 1605ms ✓ EmptyWalletDialog > rendering > should not display reset time when not provided 1591ms ✓ EmptyWalletDialog > rendering > should display slash command hints 1564ms ✓ EmptyWalletDialog > onChoice handling > should call onGetCredits and onChoice when get_credits is selected 2304ms ✓ EmptyWalletDialog > onChoice handling > should call onChoice without onGetCredits when onGetCredits is not provided 1892ms ✓ EmptyWalletDialog > onChoice handling > should call onChoice with use_fallback when selected 2098ms ✓ EmptyWalletDialog > onChoice handling > should call onChoice with stop when selected 1888ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/OverageMenuDialog.test.tsx (11 tests | 1 failed) 22753ms ✓ OverageMenuDialog > rendering > should match snapshot with fallback available 3597ms × OverageMenuDialog > rendering > should match snapshot without fallback 1784ms → Snapshot `OverageMenuDialog > rendering > should match snapshot without fallback 1` mismatched ✓ OverageMenuDialog > rendering > should display the credit balance 1675ms ✓ OverageMenuDialog > rendering > should display the model name 1676ms ✓ OverageMenuDialog > rendering > should display reset time when provided 1599ms ✓ OverageMenuDialog > rendering > should not display reset time when not provided 1593ms ✓ OverageMenuDialog > rendering > should display slash command hints 1554ms ✓ OverageMenuDialog > onChoice handling > should call onChoice with use_credits when selected 1783ms ✓ OverageMenuDialog > onChoice handling > should call onChoice with manage when selected 2518ms ✓ OverageMenuDialog > onChoice handling > should call onChoice with use_fallback when selected 2783ms ✓ OverageMenuDialog > onChoice handling > should call onChoice with stop when selected 2157ms (node:30779) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 update listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (Use `node --trace-warnings ...` to show where the warning was created) (node:30779) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clear listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/shared/ScrollableList.test.tsx (7 tests | 7 failed) 32988ms × ScrollableList Demo Behavior > should scroll to bottom when new items are added and stop when scrolled up 12417ms → expected '\n ╭─────────────────────────────────…' to contain 'Item 1001' × ScrollableList Demo Behavior > should display sticky header when scrolled past the item 4037ms → lastFrame() returned an empty string. If this is intentional, use lastFrame({ allowEmpty: true }). Otherwise, ensure you are calling await waitUntilReady() and that the component is rendering correctly. × ScrollableList Demo Behavior > Keyboard Navigation > should handle scroll keys correctly 2243ms → lastFrame() returned an empty string. If this is intentional, use lastFrame({ allowEmpty: true }). Otherwise, ensure you are calling await waitUntilReady() and that the component is rendering correctly. × ScrollableList Demo Behavior > Width Prop > should apply the width prop to the container 3843ms → expected 'I\nt\ne\nm\n1\n' to contain 'Item 1' × ScrollableList Demo Behavior > regression: remove last item and add 2 items when scrolled to bottom 3484ms → expected 10 to be 5 // Object.is equality × ScrollableList Demo Behavior > regression: bottom-most element changes size but list does not update 3409ms → expected 5 to be 1 // Object.is equality × ScrollableList Demo Behavior > regression: prepending items does not corrupt heights (total height correct) 3480ms → expected 10 to be 8 // Object.is equality [?2004h[?2004h[?2004h ❯ src/ui/components/messages/ToolStickyHeaderRegression.test.tsx (2 tests | 1 failed) 11181ms ✓ ToolMessage Sticky Header Regression > verifies that multiple ToolMessages in a ToolGroupMessage in a ScrollableList have sticky headers 7262ms × ToolMessage Sticky Header Regression > verifies that ShellToolMessage in a ToolGroupMessage in a ScrollableList has sticky headers 3901ms → expected '█\n█\n│\n│\n│\n' to contain 'Shell Command' [?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/views/ExtensionRegistryView.test.tsx (6 tests) 13424ms ✓ ExtensionRegistryView > should render extensions 2973ms ✓ ExtensionRegistryView > should use useRegistrySearch hook 1498ms ✓ ExtensionRegistryView > should call search function when typing 2660ms ✓ ExtensionRegistryView > should call onSelect when extension is selected and Enter is pressed in details 3192ms ✓ ExtensionRegistryView > should show [Update available] and hide [Installed] when update is available 1602ms ✓ ExtensionRegistryView > should show [Updating...] and hide [Installed] when update is in progress 1477ms [?2004h ✓ src/ui/components/views/ExtensionsList.test.tsx (11 tests) 15581ms ✓ > should render "No extensions installed." if there are no extensions 2066ms ✓ > should render a list of extensions with their version and status 1572ms ✓ > should display "unknown state" if an extension has no update state 1330ms ✓ > should correctly display the state: 'checking for updates' 1321ms ✓ > should correctly display the state: 'updating' 1317ms ✓ > should correctly display the state: 'update available' 1313ms ✓ > should correctly display the state: 'updated, needs restart' 1308ms ✓ > should correctly display the state: 'updated' 1286ms ✓ > should correctly display the state: 'error' 1288ms ✓ > should correctly display the state: 'up to date' 1346ms ✓ > should render resolved settings for an extension 1413ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/AppHeader.test.tsx (11 tests) 24844ms ✓ > should render the banner with default text 3635ms ✓ > should render the banner with warning text 1781ms ✓ > should not render the banner when no flags are set 1582ms ✓ > should not render the default banner if shown count is 5 or more 1602ms ✓ > should increment the version count when default banner is displayed 1505ms ✓ > should render banner text with unescaped newlines 1518ms ✓ > should render Tips when tipsShown is less than 10 1594ms ✓ > should NOT render Tips when tipsShown is 10 or more 2018ms ✓ > should show tips until they have been shown 10 times (persistence flow) 3294ms ✓ > should render the full logo when logged out 2557ms ✓ > should NOT render Tips when ui.hideTips is true 3729ms ❯ src/ui/components/BackgroundTaskDisplay.test.tsx (10 tests | 3 failed) 22348ms ✓ > renders the output of the active shell 2722ms ✓ > renders tabs for multiple shells 1506ms ✓ > highlights the focused state 1485ms ✓ > resizes the PTY on mount and when dimensions change 1590ms × > renders the process list when isListOpenProp is true 2652ms → Snapshot ` > renders the process list when isListOpenProp is true 1` mismatched ✓ > selects the current process and closes the list when Ctrl+L is pressed in list view 2153ms ✓ > kills the highlighted process when Ctrl+K is pressed in list view 2139ms ✓ > kills the active process when Ctrl+K is pressed in output view 1332ms × > scrolls to active shell when list opens 2534ms → Snapshot ` > scrolls to active shell when list opens 1` mismatched × > keeps exit code status color even when selected 4187ms → Snapshot ` > keeps exit code status color even when selected 1` mismatched ❯ src/ui/components/VoiceModelDialog.test.tsx (3 tests | 1 failed) 17067ms ✓ VoiceModelDialog > should display a privacy warning when Gemini Live API (Cloud) is selected 4219ms × VoiceModelDialog > should NOT display a privacy warning when Whisper (Local) is highlighted 8080ms → expected '╭────────────────────────────────────…' to contain 'Whisper (Local)' ✓ VoiceModelDialog > should update settings and close dialog when a backend is selected 4748ms ✓ src/ui/utils/TableRenderer.test.tsx (20 tests) 40003ms ✓ TableRenderer > renders a 3x3 table correctly 3445ms ✓ TableRenderer > renders a table with long headers and 4 columns correctly 2038ms ✓ TableRenderer > wraps long cell content correctly 1690ms ✓ TableRenderer > wraps all long columns correctly 1821ms ✓ TableRenderer > wraps mixed long and short columns correctly 1664ms ✓ TableRenderer > wraps columns with punctuation correctly 1851ms ✓ TableRenderer > strips bold markers from headers and renders them correctly 1668ms ✓ TableRenderer > handles wrapped bold headers without showing markers 1820ms ✓ TableRenderer > renders a complex table with mixed content lengths correctly 6678ms ✓ TableRenderer > 'handles non-ASCII characters (emojis …' 1775ms ✓ TableRenderer > 'renders a table with only emojis and …' 1449ms ✓ TableRenderer > 'renders a table with only Asian chara…' 1467ms ✓ TableRenderer > 'renders a table with mixed emojis, As…' 1516ms ✓ TableRenderer > 'renders correctly when headers are em…' 1413ms ✓ TableRenderer > 'renders correctly when there are more…' 1477ms ✓ TableRenderer > 'renders complex markdown in rows and …' 1771ms ✓ TableRenderer > 'calculates column widths based on ren…' 1439ms ✓ TableRenderer > 'handles nested markdown styles recurs…' 1639ms ✓ TableRenderer > 'calculates width correctly for conten…' 1748ms ✓ TableRenderer > 'does not parse markdown inside code s…' 1602ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/messages/ToolMessageRawMarkdown.test.tsx (6 tests) 7277ms ✓ - Raw Markdown Display Snapshots > renders with renderMarkdown=true, useAlternateBuffer=false '(default, regular buffer)' 2989ms ✓ - Raw Markdown Display Snapshots > renders with renderMarkdown=true, useAlternateBuffer=true '(default, alternate buffer)' 831ms ✓ - Raw Markdown Display Snapshots > renders with renderMarkdown=false, useAlternateBuffer=false '(raw markdown, regular buffer)' 1523ms ✓ - Raw Markdown Display Snapshots > renders with renderMarkdown=false, useAlternateBuffer=true '(raw markdown, alternate buffer)' 518ms ✓ - Raw Markdown Display Snapshots > renders with renderMarkdown=true, useAlternateBuffer=false '(constrained height, regular buffer -…' 492ms ✓ - Raw Markdown Display Snapshots > renders with renderMarkdown=true, useAlternateBuffer=true '(constrained height, alternate buffer…' 853ms [?2004h[?2004h[?2004h[?25h[?25h[?25h[?25h[?25h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/StatsDisplay.test.tsx (15 tests) 26087ms ✓ > renders only the Performance section in its zero state 3004ms ✓ > renders a table with two models correctly 1905ms ✓ > renders role breakdown correctly under models 1698ms ✓ > renders all sections when all data is present 1663ms ✓ > Conditional Rendering Tests > hides User Agreement when no decisions are made 1513ms ✓ > Conditional Rendering Tests > hides Efficiency section when cache is not used 1582ms ✓ > Conditional Color Tests > renders success rate in green for high values 1475ms ✓ > Conditional Color Tests > renders success rate in yellow for medium values 1484ms ✓ > Conditional Color Tests > renders success rate in red for low values 1478ms ✓ > Code Changes Display > displays Code Changes when line counts are present 2308ms ✓ > Code Changes Display > hides Code Changes when no lines are added or removed 1713ms ✓ > Title Rendering > renders the default title when no title prop is provided 1476ms ✓ > Title Rendering > renders the custom title when a title prop is provided 1698ms ✓ > User Identity Display > renders User row with Auth Method and Tier 1532ms ✓ > User Identity Display > renders User row with API Key and no Tier 1526ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?25h ✓ src/ui/components/messages/DiffRenderer.test.tsx (26 tests) 37962ms ✓ > with useAlternateBuffer = true > should call colorizeCode with correct language for new file with known extension 2436ms ✓ > with useAlternateBuffer = true > should call colorizeCode with null language for new file with unknown extension 2897ms ✓ > with useAlternateBuffer = true > should call colorizeCode with null language for new file if no filename is provided 1737ms ✓ > with useAlternateBuffer = true > should render diff content for existing file (not calling colorizeCode directly for the whole block) 1478ms ✓ > with useAlternateBuffer = true > should handle diff with only header and no changes 1351ms ✓ > with useAlternateBuffer = true > should handle empty diff content 1312ms ✓ > with useAlternateBuffer = true > should render a gap indicator for skipped lines 1712ms ✓ > with useAlternateBuffer = true > should not render a gap indicator for small gaps (<= MAX_CONTEXT_LINES_WITHOUT_GAP) 2411ms ✓ > with useAlternateBuffer = true > should correctly render a diff with multiple hunks and a gap indicator > with terminalWidth 80 and height undefined 1880ms ✓ > with useAlternateBuffer = true > should correctly render a diff with multiple hunks and a gap indicator > with terminalWidth 80 and height 6 935ms ✓ > with useAlternateBuffer = true > should correctly render a diff with multiple hunks and a gap indicator > with terminalWidth 30 and height 6 632ms ✓ > with useAlternateBuffer = true > should correctly render a diff with a SVN diff format 1700ms ✓ > with useAlternateBuffer = true > should correctly render a new file with no file extension correctly 1427ms ✓ > with useAlternateBuffer = false > should call colorizeCode with correct language for new file with known extension 1273ms ✓ > with useAlternateBuffer = false > should call colorizeCode with null language for new file with unknown extension 1238ms ✓ > with useAlternateBuffer = false > should call colorizeCode with null language for new file if no filename is provided 1242ms ✓ > with useAlternateBuffer = false > should render diff content for existing file (not calling colorizeCode directly for the whole block) 1353ms ✓ > with useAlternateBuffer = false > should handle diff with only header and no changes 1289ms ✓ > with useAlternateBuffer = false > should handle empty diff content 1304ms ✓ > with useAlternateBuffer = false > should render a gap indicator for skipped lines 1384ms ✓ > with useAlternateBuffer = false > should not render a gap indicator for small gaps (<= MAX_CONTEXT_LINES_WITHOUT_GAP) 1456ms ✓ > with useAlternateBuffer = false > should correctly render a diff with multiple hunks and a gap indicator > with terminalWidth 80 and height undefined 1490ms ✓ > with useAlternateBuffer = false > should correctly render a diff with multiple hunks and a gap indicator > with terminalWidth 80 and height 6 587ms ✓ > with useAlternateBuffer = false > should correctly render a diff with multiple hunks and a gap indicator > with terminalWidth 30 and height 6 599ms ✓ > with useAlternateBuffer = false > should correctly render a diff with a SVN diff format 1454ms ✓ > with useAlternateBuffer = false > should correctly render a new file with no file extension correctly 1353ms [?25h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useQuotaAndFallback.test.ts (28 tests) 35264ms ✓ useQuotaAndFallback > should register a fallback handler on initialization 1905ms ✓ useQuotaAndFallback > Fallback Handler Logic > should show fallback dialog but omit switch to API key message if authType is not LOGIN_WITH_GOOGLE 1503ms ✓ useQuotaAndFallback > Fallback Handler Logic > should auto-retry transient capacity failures in low verbosity mode 1298ms ✓ useQuotaAndFallback > Fallback Handler Logic > should still prompt for terminal quota in low verbosity mode 1273ms ✓ useQuotaAndFallback > Fallback Handler Logic > Interactive Fallback > should set an interactive request for a terminal quota error 1261ms ✓ useQuotaAndFallback > Fallback Handler Logic > Interactive Fallback > should show the model name for a terminal quota error on a non-pro model 1230ms ✓ useQuotaAndFallback > Fallback Handler Logic > Interactive Fallback > should handle terminal quota error without retry delay 1217ms ✓ useQuotaAndFallback > Fallback Handler Logic > Interactive Fallback > should handle race conditions by stopping subsequent requests 1209ms ✓ useQuotaAndFallback > Fallback Handler Logic > Interactive Fallback > should handle generic error correctly 1213ms ✓ useQuotaAndFallback > Fallback Handler Logic > Interactive Fallback > should handle retryable quota error correctly 1261ms ✓ useQuotaAndFallback > Fallback Handler Logic > Interactive Fallback > should handle ModelNotFoundError correctly 1199ms ✓ useQuotaAndFallback > Fallback Handler Logic > Interactive Fallback > should handle ModelNotFoundError with invalid model correctly 1207ms ✓ useQuotaAndFallback > G1 AI Credits Flow > should fall through to ProQuotaDialog if credits are already active (strategy=always) 1275ms ✓ useQuotaAndFallback > G1 AI Credits Flow > should show overage menu if balance > 0 and not auto-using 1231ms ✓ useQuotaAndFallback > G1 AI Credits Flow > should handle use_fallback from overage menu 1240ms ✓ useQuotaAndFallback > G1 AI Credits Flow > should show empty wallet menu if balance is 0 1238ms ✓ useQuotaAndFallback > G1 AI Credits Flow > should add info message to history when get_credits is selected 1254ms ✓ useQuotaAndFallback > handleProQuotaChoice > should do nothing if there is no pending pro quota request 1213ms ✓ useQuotaAndFallback > handleProQuotaChoice > should resolve intent to "retry_later" 1200ms ✓ useQuotaAndFallback > handleProQuotaChoice > should resolve intent to "retry_always" and add info message on continue 1218ms ✓ useQuotaAndFallback > handleProQuotaChoice > should show a special message when falling back from the preview model 1201ms ✓ useQuotaAndFallback > handleProQuotaChoice > should show a special message when falling back from the preview model, but do not show periodical check message for flash model fallback 1197ms ✓ useQuotaAndFallback > Validation Handler > should register a validation handler on initialization 1189ms ✓ useQuotaAndFallback > Validation Handler > should set a validation request when handler is called 1202ms ✓ useQuotaAndFallback > Validation Handler > should handle race conditions by returning cancel for subsequent requests 1205ms ✓ useQuotaAndFallback > Validation Handler > should call onShowAuthSelection when change_auth is chosen 1192ms ✓ useQuotaAndFallback > Validation Handler > should call onShowAuthSelection when cancel is chosen 1196ms ✓ useQuotaAndFallback > Validation Handler > should do nothing if handleValidationChoice is called without pending request 1210ms [?2004h[?2004h[?2004h ✓ src/ui/auth/AuthDialog.test.tsx (26 tests) 40127ms ✓ AuthDialog > Environment Variable Effects on Auth Options > correctly shows/hides COMPUTE_ADC options 'in Cloud Shell' 3145ms ✓ AuthDialog > Environment Variable Effects on Auth Options > correctly shows/hides COMPUTE_ADC options 'with GEMINI_CLI_USE_COMPUTE_ADC' 1629ms ✓ AuthDialog > Environment Variable Effects on Auth Options > correctly shows/hides COMPUTE_ADC options 'by default' 1523ms ✓ AuthDialog > filters auth types when enforcedType is set 1501ms ✓ AuthDialog > sets initial index to 0 when enforcedType is set 1475ms ✓ AuthDialog > Initial Auth Type Selection > selects initial auth type 'from settings' 1502ms ✓ AuthDialog > Initial Auth Type Selection > selects initial auth type 'from GEMINI_DEFAULT_AUTH_TYPE env var' 1474ms ✓ AuthDialog > Initial Auth Type Selection > selects initial auth type 'from GEMINI_API_KEY env var' 1476ms ✓ AuthDialog > Initial Auth Type Selection > selects initial auth type 'defaults to Sign in with Google' 1473ms ✓ AuthDialog > handleAuthSelect > calls onAuthError if validation fails 1534ms ✓ AuthDialog > handleAuthSelect > sets auth context with requiresRestart: true for LOGIN_WITH_GOOGLE 1467ms ✓ AuthDialog > handleAuthSelect > sets auth context with requiresRestart: true for USE_VERTEX_AI in Cloud Shell 1463ms ✓ AuthDialog > handleAuthSelect > sets auth context with empty object for USE_VERTEX_AI outside Cloud Shell 1458ms ✓ AuthDialog > handleAuthSelect > sets auth context with empty object for other auth types 1450ms ✓ AuthDialog > handleAuthSelect > always shows API key dialog even when env var is present 1462ms ✓ AuthDialog > handleAuthSelect > always shows API key dialog even when env var is empty string 1792ms ✓ AuthDialog > handleAuthSelect > shows API key dialog on initial setup if no env var is present 1810ms ✓ AuthDialog > handleAuthSelect > always shows API key dialog on re-auth even if env var is present 1459ms ✓ AuthDialog > handleAuthSelect > exits process for Sign in with Google when browser is suppressed 625ms ✓ AuthDialog > displays authError when provided 1522ms ✓ AuthDialog > useKeypress > 'does nothing on escape if authError i…' 1468ms ✓ AuthDialog > useKeypress > 'calls onAuthError on escape if no aut…' 1444ms ✓ AuthDialog > useKeypress > 'calls setAuthState(Unauthenticated) o…' 1448ms ✓ AuthDialog > Snapshots > renders correctly with default props 1514ms ✓ AuthDialog > Snapshots > renders correctly with auth error 1500ms ✓ AuthDialog > Snapshots > renders correctly with enforced auth type 1478ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/messages/ToolGroupMessageRegression.test.tsx (4 tests) 6947ms ✓ ToolGroupMessage Regression Tests > Plan Mode: suppresses phantom tool group (hidden tools) 1929ms ✓ ToolGroupMessage Regression Tests > Agent Case: suppresses the bottom border box for ongoing agents (no vertical ticks) 2210ms ✓ ToolGroupMessage Regression Tests > Agent Case: renders a bottom border horizontal line for completed agents 1499ms ✓ ToolGroupMessage Regression Tests > Bridges: still renders a bridge if it has a top border 1289ms [?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ❯ src/ui/components/messages/ToolMessage.test.tsx (25 tests | 1 failed) 17091ms ✓ > renders basic tool information 2093ms ✓ > JSON rendering > pretty prints valid JSON 544ms ✓ > JSON rendering > renders pretty JSON in ink frame 386ms ✓ > JSON rendering > uses JSON renderer even when renderOutputAsMarkdown=true is true 405ms ✓ > JSON rendering > falls back to plain text for malformed JSON 349ms ✓ > JSON rendering > rejects mixed text + JSON renders as plain text 366ms ✓ > JSON rendering > rejects ANSI-tained JSON renders as plain text 339ms ✓ > JSON rendering > pretty printing 10kb JSON completes in <50ms 4921ms ✓ > ToolStatusIndicator rendering > shows ✓ for Success status 461ms ✓ > ToolStatusIndicator rendering > shows o for Pending status 379ms ✓ > ToolStatusIndicator rendering > shows ? for Confirming status 293ms ✓ > ToolStatusIndicator rendering > shows - for Canceled status 317ms ✓ > ToolStatusIndicator rendering > shows x for Error status 315ms ✓ > ToolStatusIndicator rendering > shows paused spinner for Executing status when streamingState is Idle 316ms ✓ > ToolStatusIndicator rendering > shows paused spinner for Executing status when streamingState is WaitingForConfirmation 310ms ✓ > ToolStatusIndicator rendering > shows MockRespondingSpinner for Executing status when streamingState is Responding 301ms ✓ > renders DiffRenderer for diff results 496ms × > renders emphasis correctly 486ms → Snapshot ` > renders emphasis correctly 1` mismatched ✓ > renders AnsiOutputText for AnsiOutput results 315ms ✓ > renders McpProgressIndicator with percentage and message for executing tools 350ms ✓ > renders only percentage when progressMessage is missing 349ms ✓ > renders indeterminate progress when total is missing 322ms ✓ > Truncation > applies truncation for Kind.Agent when availableTerminalHeight is provided 1210ms ✓ > Truncation > does NOT apply truncation for Kind.Agent when availableTerminalHeight is undefined 702ms ✓ > Truncation > does NOT apply truncation for Kind.Read 717ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?25h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h(node:30977) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 update listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit (Use `node --trace-warnings ...` to show where the warning was created) (node:30977) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 clear listeners added to [UiTelemetryService]. MaxListeners is 10. Use emitter.setMaxListeners() to increase limit [?2004h[?2004h[?2004h ❯ src/ui/components/shared/BaseSelectionList.test.tsx (31 tests | 10 failed) 53528ms ✓ BaseSelectionList > Rendering and Structure > should render all items using the renderItem prop 2703ms ✓ BaseSelectionList > Rendering and Structure > should render the selection indicator (● or space) and layout 1430ms ✓ BaseSelectionList > Rendering and Structure > should handle an empty list gracefully 1255ms ✓ BaseSelectionList > useSelectionList Integration > should pass props correctly to useSelectionList 1515ms ✓ BaseSelectionList > useSelectionList Integration > should use the activeIndex returned by the hook 1477ms ✓ BaseSelectionList > Styling and Colors > should apply success color to the selected item 1433ms ✓ BaseSelectionList > Styling and Colors > should apply primary color to unselected, enabled items 1430ms ✓ BaseSelectionList > Styling and Colors > should apply secondary color to disabled items (when not selected) 1459ms ✓ BaseSelectionList > Styling and Colors > should apply success color to disabled items if they are selected 1437ms ✓ BaseSelectionList > Numbering (showNumbers) > should show numbers by default with correct formatting 1522ms ✓ BaseSelectionList > Numbering (showNumbers) > should hide numbers when showNumbers is false 1465ms ✓ BaseSelectionList > Numbering (showNumbers) > should apply correct padding for alignment in long lists 2355ms ✓ BaseSelectionList > Numbering (showNumbers) > should apply secondary color to numbers if showNumbers is false (internal logic check) 1392ms × BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should only show maxItemsToShow items initially 1974ms → expected '● 1. I\n t\n e\n m\n …' to contain 'Item 1' × BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should scroll down when activeIndex moves beyond the visible window 3305ms → expected ' 2. I\n t\n e\n m\n …' to contain 'Item 2' × BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should scroll up when activeIndex moves before the visible window 2648ms → expected ' 3. I\n t\n e\n m\n …' to contain 'Item 3' × BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should pin the scroll offset to the end if selection starts near the end 1382ms → expected ' 8. I\n t\n e\n m\n …' to contain 'Item 10' × BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should handle dynamic scrolling through multiple activeIndex changes 1360ms → expected '● 1. I\n t\n e\n m\n …' to contain 'Item 1' ✓ BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should correctly identify the selected item within the visible window 1443ms ✓ BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should correctly identify the selected item when scrolled (high index) 1398ms ✓ BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should correctly calculate scroll offset during the initial render phase 1418ms × BaseSelectionList > Scrolling and Pagination (maxItemsToShow) > should handle maxItemsToShow larger than the list length 1557ms → expected '● 1. I\n t\n e\n m\n …' to contain 'Item 1' ✓ BaseSelectionList > Mouse Interaction > should register mouse click handler for each item 1399ms ✓ BaseSelectionList > Mouse Interaction > should update activeIndex on first click and call onSelect on second click 3736ms ✓ BaseSelectionList > Mouse Interaction > should not call onSelect when a disabled item is clicked 2422ms ✓ BaseSelectionList > Mouse Interaction > should pass isActive: isFocused to useMouseClick 1395ms ✓ BaseSelectionList > Scroll Arrows (showScrollArrows) > should not show arrows by default 1440ms × BaseSelectionList > Scroll Arrows (showScrollArrows) > should show arrows with correct colors when enabled (at the top) 1623ms → Snapshot `BaseSelectionList > Scroll Arrows (showScrollArrows) > should show arrows with correct colors when enabled (at the top) 1` mismatched × BaseSelectionList > Scroll Arrows (showScrollArrows) > should show arrows and correct items when scrolled to the middle 1366ms → Snapshot `BaseSelectionList > Scroll Arrows (showScrollArrows) > should show arrows and correct items when scrolled to the middle 1` mismatched × BaseSelectionList > Scroll Arrows (showScrollArrows) > should show arrows and correct items when scrolled to the end 1377ms → Snapshot `BaseSelectionList > Scroll Arrows (showScrollArrows) > should show arrows and correct items when scrolled to the end 1` mismatched × BaseSelectionList > Scroll Arrows (showScrollArrows) > should not show arrows when list fits entirely 1371ms → Snapshot `BaseSelectionList > Scroll Arrows (showScrollArrows) > should not show arrows when list fits entirely 1` mismatched [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/hooks/useSlashCompletion.test.ts (30 tests) 47512ms ✓ useSlashCompletion > Top-Level Commands > should suggest all top-level commands for the root slash 2865ms ✓ useSlashCompletion > Top-Level Commands > should filter commands based on partial input 1301ms ✓ useSlashCompletion > Top-Level Commands > should suggest commands based on partial altNames 1231ms ✓ useSlashCompletion > Top-Level Commands > should provide suggestions even for a perfectly typed command that is a leaf node 1243ms ✓ useSlashCompletion > Top-Level Commands > should suggest commands even when altNames is fully typed 1218ms ✓ useSlashCompletion > Top-Level Commands > should suggest commands even when altNames is fully typed 1215ms ✓ useSlashCompletion > Top-Level Commands > should show all matching suggestions even when one is a perfect match 1305ms ✓ useSlashCompletion > Top-Level Commands > should show the same selectable auto/checkpoint menu for /chat and /resume 4471ms ✓ useSlashCompletion > Top-Level Commands > should NOT suggest the auto-list command when typing a non-matching partial after /chat 1238ms ✓ useSlashCompletion > Top-Level Commands > should STILL suggest the auto-list command when typing a matching partial after /chat 1209ms ✓ useSlashCompletion > Top-Level Commands > should sort exact altName matches to the top 1190ms ✓ useSlashCompletion > Top-Level Commands > should suggest the command itself instead of subcommands when a parent command is fully typed without a trailing space 1193ms ✓ useSlashCompletion > Top-Level Commands > should NOT suggest subcommands when a parent command is fully typed without a trailing space (fix for over-eager completion) 1210ms ✓ useSlashCompletion > Top-Level Commands > should not provide suggestions for a fully typed command that has no sub-commands or argument completion 2202ms ✓ useSlashCompletion > Top-Level Commands > should not provide suggestions for an unknown command 1198ms ✓ useSlashCompletion > Top-Level Commands > should not suggest hidden commands 2193ms ✓ useSlashCompletion > Top-Level Commands > should rank primary name prefix matches higher than alias prefix matches 1190ms ✓ useSlashCompletion > Sub-Commands > should suggest sub-commands for a parent command 2210ms ✓ useSlashCompletion > Sub-Commands > should suggest parent command (and siblings) instead of sub-commands when no trailing space 1218ms ✓ useSlashCompletion > Sub-Commands > should suggest all sub-commands when the query ends with the parent command and a space 2202ms ✓ useSlashCompletion > Sub-Commands > should filter sub-commands by prefix 1194ms ✓ useSlashCompletion > Sub-Commands > should provide no suggestions for an invalid sub-command 1196ms ✓ useSlashCompletion > Argument Completion > should call the command.completion function for argument suggestions 1223ms ✓ useSlashCompletion > Argument Completion > should call command.completion with an empty string when args start with a space 1197ms ✓ useSlashCompletion > Argument Completion > should handle completion function that returns null 1221ms ✓ useSlashCompletion > Command Kind Information > should include commandKind for MCP commands in suggestions 2238ms ✓ useSlashCompletion > Command Kind Information > should include commandKind when filtering MCP commands by prefix 1192ms ✓ useSlashCompletion > Command Kind Information > should include commandKind for sub-commands 2202ms ✓ useSlashCompletion > Command Kind Information > should include commandKind for file commands 1187ms ✓ useSlashCompletion > should not call shared callbacks when disabled 1330ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/messages/ToolResultDisplay.test.tsx (14 tests) 32278ms ✓ ToolResultDisplay > uses ScrollableList for ANSI output in alternate buffer mode 2819ms ✓ ToolResultDisplay > uses Scrollable for non-ANSI output in alternate buffer mode 1623ms ✓ ToolResultDisplay > passes hasFocus prop to scrollable components 1425ms ✓ ToolResultDisplay > renders string result as markdown by default 2386ms ✓ ToolResultDisplay > renders string result as plain text when renderOutputAsMarkdown is false 1449ms ✓ ToolResultDisplay > truncates very long string results 5184ms ✓ ToolResultDisplay > renders file diff result 1846ms ✓ ToolResultDisplay > renders ANSI output result 2875ms ✓ ToolResultDisplay > renders nothing for todos result 2307ms ✓ ToolResultDisplay > does not fall back to plain text if availableHeight is set and not in alternate buffer 1512ms ✓ ToolResultDisplay > keeps markdown if in alternate buffer even with availableHeight 1402ms ✓ ToolResultDisplay > truncates ANSI output when maxLines is provided 1500ms ✓ ToolResultDisplay > truncates ANSI output when maxLines is provided, even if availableTerminalHeight is undefined 2076ms ✓ ToolResultDisplay > stays scrolled to the bottom when lines are incrementally added 3835ms ✓ src/ui/hooks/useToolScheduler.test.ts (13 tests) 14378ms ✓ useToolScheduler > initializes with empty tool calls 1632ms ✓ useToolScheduler > updates tool calls when MessageBus emits TOOL_CALLS_UPDATE 1284ms ✓ useToolScheduler > preserves responseSubmittedToGemini flag across updates 1248ms ✓ useToolScheduler > delegates cancelAll to the Core Scheduler 1260ms ✓ useToolScheduler > resolves the schedule promise when scheduler resolves 1210ms ✓ useToolScheduler > setToolCallsForDisplay re-groups tools by schedulerId (Multi-Scheduler support) 1205ms ✓ useToolScheduler > ignores TOOL_CALLS_UPDATE from non-root schedulers when no tools await approval 1198ms ✓ useToolScheduler > allows TOOL_CALLS_UPDATE from non-root schedulers when tools are awaiting approval 1200ms ✓ useToolScheduler > preserves subagent tools in the UI after they have been approved 1238ms ✓ useToolScheduler > accumulates SUBAGENT_ACTIVITY events and attaches them to toolCalls 1207ms ✓ useToolScheduler > replaces SUBAGENT_ACTIVITY events by ID instead of appending 1209ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004hstderr | src/ui/hooks/useExecutionLifecycle.test.tsx An update to TestComponent inside a test was not wrapped in act(...). When testing, code that causes React state updates should be wrapped into act(...): act(() => { /* fire events that update state */ }); /* assert on the output */ This ensures that you're testing the behavior the user would see in the browser. Learn more at https://react.dev/link/wrap-tests-with-act ✓ src/ui/hooks/useExecutionLifecycle.test.tsx (36 tests) 43313ms ✓ useExecutionLifecycle > should initiate command execution and set pending state 1826ms ✓ useExecutionLifecycle > should pass the config sessionId into shell execution config 1249ms ✓ useExecutionLifecycle > should handle successful execution and update history correctly 1226ms ✓ useExecutionLifecycle > should handle command failure and display error status 1212ms ✓ useExecutionLifecycle > should not wrap the command on Windows 1207ms ✓ useExecutionLifecycle > should handle command abort and display cancelled status 1195ms ✓ useExecutionLifecycle > should handle binary output result correctly 1196ms ✓ useExecutionLifecycle > should prepend warnings to AnsiOutput array 1237ms ✓ useExecutionLifecycle > should handle promise rejection and show an error 1204ms ✓ useExecutionLifecycle > should handle synchronous errors during execution and clean up resources 1207ms ✓ useExecutionLifecycle > Directory Change Warning > should show a warning if the working directory changes 1199ms ✓ useExecutionLifecycle > Directory Change Warning > should NOT show a warning if the directory does not change 1191ms ✓ useExecutionLifecycle > ActiveShellPtyId management > should have activeShellPtyId as null initially 1217ms ✓ useExecutionLifecycle > ActiveShellPtyId management > should set activeShellPtyId when a command with a PID starts 1193ms ✓ useExecutionLifecycle > ActiveShellPtyId management > should update the pending history item with the ptyId 1191ms ✓ useExecutionLifecycle > ActiveShellPtyId management > should reset activeShellPtyId to null after successful execution 1188ms ✓ useExecutionLifecycle > ActiveShellPtyId management > should reset activeShellPtyId to null after failed execution 1213ms ✓ useExecutionLifecycle > ActiveShellPtyId management > should reset activeShellPtyId to null if execution promise rejects 1212ms ✓ useExecutionLifecycle > ActiveShellPtyId management > should not set activeShellPtyId on synchronous execution error and should remain null 1190ms ✓ useExecutionLifecycle > ActiveShellPtyId management > should not set activeShellPtyId if service does not return a PID 1188ms ✓ useExecutionLifecycle > Background Shell Management > should register a background shell and update count 1298ms ✓ useExecutionLifecycle > Background Shell Management > should toggle background shell visibility 1223ms ✓ useExecutionLifecycle > Background Shell Management > should show info message when toggling background shells if none are active 1204ms ✓ useExecutionLifecycle > Background Shell Management > should dismiss a background shell and remove it from state 1197ms ✓ useExecutionLifecycle > Background Shell Management > should handle backgrounding the current shell 1209ms ✓ useExecutionLifecycle > Background Shell Management > should auto-dismiss background task on successful exit 1196ms ✓ useExecutionLifecycle > Background Shell Management > should auto-dismiss background task on failed exit 1220ms ✓ useExecutionLifecycle > Background Shell Management > should NOT trigger re-render on background shell output when visible 1206ms ✓ useExecutionLifecycle > Background Shell Management > should NOT trigger re-render on background shell output when hidden 1196ms ✓ useExecutionLifecycle > Background Shell Management > should trigger re-render on binary progress when visible 1198ms ✓ useExecutionLifecycle > Background Shell Management > should NOT hide background shell when model is responding without confirmation 1271ms ✓ useExecutionLifecycle > Background Shell Management > should hide background shell when waiting for confirmation and restore after delay 1675ms ✓ useExecutionLifecycle > Background Shell Management > should auto-hide background shell when foreground shell starts and restore when it ends 1637ms ✓ useExecutionLifecycle > Background Shell Management > should NOT restore background shell if it was manually hidden during foreground execution 1345ms [?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h[?2004h ✓ src/ui/components/messages/ToolOverflowConsistencyChecks.test.tsx (2 tests) 5497ms ✓ ToolOverflowConsistencyChecks: ToolGroupMessage and ToolResultDisplay synchronization > should ensure ToolGroupMessage correctly reports overflow to the global state in Alternate Buffer (ASB) mode 3574ms ✓ ToolOverflowConsistencyChecks: ToolGroupMessage and ToolResultDisplay synchronization > should ensure ToolGroupMessage correctly reports overflow in Standard mode 1897ms ❯ src/ui/components/messages/ShellToolMessage.test.tsx (19 tests | 2 failed) 21238ms ✓ > interactive shell focus > clicks inside the shell area sets focus for SHELL_COMMAND_NAME 2085ms ✓ > interactive shell focus > clicks inside the shell area sets focus for SHELL_TOOL_NAME 590ms ✓ > interactive shell focus > resets focus when shell finishes 821ms ✓ > Snapshots > renders in Executing state 412ms ✓ > Snapshots > renders in Success state (history mode) 929ms ✓ > Snapshots > renders in Error state 694ms ✓ > Snapshots > renders in Cancelled state with partial output 413ms × > Snapshots > renders in Alternate Buffer mode while focused 922ms → Snapshot ` > Snapshots > renders in Alternate Buffer mode while focused 1` mismatched ✓ > Snapshots > renders in Alternate Buffer mode while unfocused 501ms ✓ > Height Constraints > respects availableTerminalHeight when it is smaller than ACTIVE_SHELL_MAX_LINES 1204ms ✓ > Height Constraints > uses ACTIVE_SHELL_MAX_LINES when availableTerminalHeight is large 980ms × > Height Constraints > uses full availableTerminalHeight when focused in alternate buffer mode 2731ms → Snapshot ` > Height Constraints > uses full availableTerminalHeight when focused in alternate buffer mode 1` mismatched ✓ > Height Constraints > defaults to ACTIVE_SHELL_MAX_LINES in alternate buffer when availableTerminalHeight is undefined 939ms ✓ > Height Constraints > fully expands in standard mode when availableTerminalHeight is undefined 1962ms ✓ > Height Constraints > fully expands in alternate buffer mode when constrainHeight is false and isExpandable is true 3696ms ✓ > Height Constraints > stays constrained in alternate buffer mode when isExpandable is false even if constrainHeight is false 973ms ✓ > Header Expansion > truncates header by default 467ms ✓ > Header Expansion > expands header when availableTerminalHeight is undefined 426ms ✓ > Header Expansion > expands header when isExpanded is true in context 467ms ✓ src/ui/components/GradientRegression.test.tsx (5 tests) 9717ms ✓ Gradient Crash Regression Tests > should not crash when theme.ui.gradient is empty 3043ms ✓ Gradient Crash Regression Tests > should not crash when theme.ui.gradient is empty 2027ms ✓ Gradient Crash Regression Tests > should not crash when theme.ui.gradient is empty 1388ms ✓ Gradient Crash Regression Tests >