Skip to content

Upgrade CI workflows and runtime baseline to Node 24 (Fixes #2316)#2318

Merged
acoliver merged 4 commits into
mainfrom
issue2316
Jul 2, 2026
Merged

Upgrade CI workflows and runtime baseline to Node 24 (Fixes #2316)#2318
acoliver merged 4 commits into
mainfrom
issue2316

Conversation

@acoliver

@acoliver acoliver commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

Summary

GitHub Actions emits Node 20 deprecation warnings, and actions/setup-node resolved the project runtime from .nvmrc as Node 20. This moves repository CI workflows, the sandbox/builder images, the declared engine baseline, first-party type declarations, and contributor docs to Node 24 so the warnings disappear and CI matches GitHub's current JavaScript-action runtime direction.

Closes #2316.

Changes

Runtime / images

  • .nvmrc: 20 -> 24 (drives every node-version-file job)
  • Dockerfile (sandbox image): node:20-slim -> node:24-slim
  • .gcp/Dockerfile.gemini-code-builder: NodeSource node_20.x -> node_24.x (NODE_VERSION 20.12.2 -> 24.x)

CI workflows (9 files)

  • actions/setup-node upgraded v4 -> v6 (the action itself runs on the node24 runtime), pinned to SHA 48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e with normalized ratchet:actions/setup-node@v6 comments. Also corrected pre-existing typos (actions-node@v4) and bare comment styles so every pin is consistent.
  • Hardcoded node-version 20 / 20.x -> 24 / 24.x in e2e, nightly, evals-nightly, and build-sandbox workflows.
  • Jobs that use node-version-file pointing at .nvmrc (ci lint/test, interactive-ui) now resolve Node 24 automatically.
  • Updated a stale ci.yml comment referencing Linux + Node 20.

Package metadata

  • engines.node >=20 -> >=24 across the root and all workspace packages (see "Breaking support change" below).
  • @types/node ^20 -> ^24 in cli and vscode-ide-companion (the root and the other 12 packages were already on ^24).
  • Root @types/node aligned to ^24.2.1 (was ^24.0.13) for consistency with all workspace packages.
  • Synced package-lock.json (npm) and bun.lock.

Lockfile integrity fix (follow-up commit)

  • Removed four stale nested lockfile entries: packages/cli/node_modules/@types/node (20.19.33) + its undici-types (6.21.0), and the identical pair for packages/vscode-ide-companion. npm left these behind after the manifest range bump to ^24.2.1, causing npm ci to silently install Node 20 type definitions for those two workspaces while the root hoisted entry was already 24.13.2. Both workspaces now hoist to the root @types/node@24.13.2.

Tests

  • Updated packages/tools package-metadata test to assert engines.node is >=24 (it previously asserted >=20 and would fail after the engine bump).

Docs

  • README, README_CN, CONTRIBUTING, docs/getting-started, docs/tutorials/sandbox-setup, packages/vscode-ide-companion/README, dev-docs/PLAN now reference Node 24.
  • CONTRIBUTING now points developers to .nvmrc as the single source of truth for the dev Node version.

Notes / decisions

Breaking support change (engines.node >=24)

This raises the declared minimum Node version from >=20 to >=24, which drops Node 20 and Node 22 (Node 22 is active LTS until April 2027). This is intentional and honest: the ci.yml test matrix was already 24.x-only on main before this PR -- Node 20 and 22 were declared in engines.node but were never CI-tested. Declaring >=24 aligns the published support floor with the version actually verified in CI. If broader runtime support is desired later, a dedicated matrix leg (e.g., Node 22) must be added to CI before widening engines.node again.

Other notes

  • packages/vscode-ide-companion intentionally declares engines.vscode (not engines.node): it is published as a VSIX and runs in the VS Code extension host, so a node engine field would be non-idiomatic.
  • E2E and nightly matrices drop Node 20 coverage. This is intentional per the issue: Node 20 support is being retired and the remaining matrix legs run on 24.x.
  • project-plans historical planning documents were intentionally left unchanged.

Verification

  • npm run format, build, typecheck, check:lockfile: pass
  • Lockfile re-validation: after removing the stale @types/node@20 nested entries, re-ran npm run typecheck + npm run build -- both pass against @types/node@24.13.2 (cli and vscode-ide-companion now compile against the correct Node 24 types instead of the stale Node 20 types).
  • YAML validity checked for all 9 workflow files
  • package-metadata test: pass (19/19)
  • Smoke test (node scripts/start.js --profile-load ollamakimi): pass
  • Full test suite: all pass except 3 pre-existing failures in authCommand-logout.test.ts (verified identical on clean main via git stash; unrelated to this config-only change)
  • open-code-review (ocr): 29 files reviewed, 0 comments
  • local lint OOM is a known pre-existing local-environment issue (documented in ci.yml); zero lintable source changed in this PR

Acceptance criteria (#2316)

  • CI workflows no longer emit Node 20 deprecation warnings: setup-node is now v6 (node24 runtime) and all jobs run on Node 24.
  • Documented/runtime Node version is consistently Node 24: .nvmrc, Dockerfile, .gcp builder, engines.node, @types/node, and docs all say 24.
  • Lint/typecheck/build/test pass under Node 24: verified locally.
  • Bun smoke + npm lockfile checks: bun.lock and package-lock.json regenerated; check:lockfile passes.
  • setup-node upgrades follow the pinned-action ratchet style: SHA + ratchet:actions/setup-node@v6 on every usage.

GitHub Actions emits Node 20 deprecation warnings and actions/setup-node
resolved the project runtime from .nvmrc as Node 20. Move every CI job,
the sandbox/builder images, the declared engine baseline, first-party type
declarations, and contributor docs to Node 24 so CI matches GitHub's
current JavaScript-action runtime direction.

- .nvmrc: 20 -> 24 (drives all node-version-file jobs)
- Dockerfile: node:20-slim -> node:24-slim
- .gcp/Dockerfile.gemini-code-builder: NodeSource node_20.x -> node_24.x
- actions/setup-node v4 -> v6 (node24 runtime), pinned SHA + ratchet ref
- Hardcoded node-version '20'/'20.x' -> '24'/'24.x' in e2e, nightly,
  evals-nightly, build-sandbox workflows
- engines.node >=20 -> >=24 across root + all workspace packages
- @types/node ^20 -> ^24 in cli and vscode-ide-companion (other packages
  and root already on ^24)
- Sync package-lock.json and bun.lock
- Update package-metadata test assertion to expect >=24
- Docs (README, README_CN, CONTRIBUTING, getting-started, sandbox-setup,
  vscode companion, dev-docs/PLAN) reference Node 24
@coderabbitai

coderabbitai Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 5 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 4a19fe8b-b76d-4c43-a6ca-7ee6fddfe4c7

📥 Commits

Reviewing files that changed from the base of the PR and between abf36d2 and e791f82.

⛔ Files ignored due to path filters (1)
  • bun.lock is excluded by !**/*.lock
📒 Files selected for processing (2)
  • .github/workflows/build-sandbox.yml
  • .github/workflows/nightly.yml

Walkthrough

This PR upgrades the repository's Node.js baseline from version 20 to version 24. Changes span the Dockerfiles, GitHub Actions workflows (updating actions/setup-node to v6 and node-version to 24), .nvmrc, documentation, and engines.node constraints across all package.json files, plus a corresponding test update.

Changes

Node.js 24 Baseline Upgrade

Layer / File(s) Summary
Docker base images
Dockerfile, .gcp/Dockerfile.gemini-code-builder
Base image and NODE_VERSION/NodeSource repo channel updated from Node 20 to Node 24.
CI/CD workflow Node setup
.github/workflows/*.yml
All workflows bump actions/setup-node to the v6 pinned commit and change node-version values/matrix entries from 20 to 24 across CI, E2E, nightly, release, sync, and UI jobs.
Version pin and documentation
.nvmrc, CONTRIBUTING.md, README.md, README_CN.md, dev-docs/PLAN.md, docs/getting-started.md, docs/tutorials/sandbox-setup.md, packages/vscode-ide-companion/README.md
.nvmrc and prerequisite/runtime docs updated to reference Node.js 24 instead of 20.
Package engine constraints and types
package.json, packages/*/package.json, packages/tools/src/__tests__/package-metadata.test.ts
engines.node raised from >=20 to >=24 across all workspace packages, @types/node bumped, and the metadata test updated to expect >=24.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related issues

Poem

Twenty was cozy, but now we hop higher,
Node twenty-four lights the CI fire. 🐇
Dockerfiles, workflows, and docs all agree,
Engines set right for a runtime that's free.
Hoppy trails on version twenty-four!

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: upgrading CI workflows and the runtime baseline to Node 24.
Description check ✅ Passed The description is thorough and covers the summary, changes, verification, and linked issue, though it doesn't use the exact template headings.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch issue2316

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added the maintainer:e2e:ok Trusted contributor; maintainer-approved E2E run label Jul 1, 2026
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

LLxprt PR Review – PR #2318

Issue Alignment

The PR updates CI workflows, Dockerfiles, .nvmrc, docs, and engine baselines from Node 20 to Node 24 to address #2316 deprecation warnings. The implementation covers the reported issue: workflow node-version references, actions/setup-node pins, Docker base images, and engine declarations are consistently migrated.

Side Effects

  • Lockfiles (package-lock.json, bun.lock) changed; expected for engine baseline bumps and should be validated in CI.
  • build-sandbox.yml disables package-manager-cache for the publish job; this is a deliberate safety change tied to setup-node v6 behavior.

Code Quality

  • CI workflow changes are consistent: all actions/setup-node references upgraded to v6 SHA 48b55a0..., matrix/node-version values updated to 24.x, and comments normalized.
  • Dockerfiles and contributor docs are aligned with the new baseline.
  • No application logic changes; risk is limited to environment/tooling drift.

Tests and Coverage

  • Coverage impact: unchanged. The only test change updates an expected engine string in packages/tools/src/__tests__/package-metadata.test.ts. There are no new behavioral tests for Node 24 runtime compatibility, dependency resolution, or Docker image behavior.
  • Safety gate: This is not documentation-only, and meaningful automated tests for the new runtime baseline are absent.

Verdict

Needs Work

  1. Add or update CI/runtime validation for Node 24: at minimum, ensure CI runs successfully on Node 24 across all affected workflows and consider a smoke test for the sandbox/builder Docker image.
  2. Optionally add a test asserting the monorepo-wide engine baseline is >=24 to prevent regression.

@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Summary

Package Lines Statements Functions Branches
CLI 57.31% 57.31% 59.55% 82.56%
Core 78.01% 78.01% 75.22% 83.7%
CLI Package - Full Text Report
-------------------|---------|----------|---------|---------|-------------------
File               | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-------------------|---------|----------|---------|---------|-------------------
All files          |   57.31 |    82.56 |   59.55 |   57.31 |                   
 src               |   76.97 |       70 |   90.66 |   76.97 |                   
  cli.tsx          |   75.73 |    68.42 |     100 |   75.73 | ...18-220,229-233 
  ...tBootstrap.ts |   96.66 |       75 |     100 |   96.66 | 40                
  cliBootstrap.tsx |   65.39 |    55.55 |   89.65 |   65.39 | ...43,846-850,855 
  ...nBootstrap.ts |   71.58 |    63.63 |   83.33 |   71.58 | ...49-259,264-265 
  ...st-helpers.ts |       0 |        0 |       0 |       0 | 1-50              
  ...ractiveCli.ts |   89.64 |    85.18 |   86.66 |   89.64 | ...94-301,327-329 
  ...liCommands.ts |   97.26 |       70 |     100 |   97.26 | 40-41             
  ...CliSupport.ts |   91.07 |    79.79 |     100 |   91.07 | ...14,332-333,414 
  ...activeAuth.ts |      60 |    68.42 |     100 |      60 | ...91-106,110-119 
 src/auth          |   98.07 |    81.25 |     100 |   98.07 |                   
  ...gs-adapter.ts |   98.07 |    81.25 |     100 |   98.07 | 76                
 src/commands      |   78.35 |      100 |   44.44 |   78.35 |                   
  extensions.tsx   |   55.88 |      100 |       0 |   55.88 | 25-38,42          
  hooks.ts         |   61.53 |      100 |       0 |   61.53 | 14-17,20          
  mcp.ts           |   94.11 |      100 |      50 |   94.11 | 26                
  skills.tsx       |     100 |      100 |     100 |     100 |                   
  utils.ts         |     100 |      100 |     100 |     100 |                   
 ...nds/extensions |   73.98 |    92.93 |   67.18 |   73.98 |                   
  config.ts        |   93.93 |    91.83 |     100 |   93.93 | ...72-173,204-209 
  disable.ts       |     100 |      100 |     100 |     100 |                   
  enable.ts        |     100 |      100 |     100 |     100 |                   
  install.ts       |   80.48 |    76.92 |    87.5 |   80.48 | ...63,199,202-209 
  link.ts          |   64.81 |    83.33 |      25 |   64.81 | 31,54-65,67-72    
  list.ts          |      90 |      100 |   33.33 |      90 | 35-37             
  new.ts           |     100 |      100 |     100 |     100 |                   
  settings.ts      |   72.13 |      100 |      70 |   72.13 | 32-80,218-222,225 
  uninstall.ts     |   78.43 |      100 |   66.66 |   78.43 | 54-59,62-66       
  update.ts        |   10.06 |      100 |       0 |   10.06 | ...73-192,194-199 
  utils.ts         |   13.33 |      100 |       0 |   13.33 | 29-60             
  validate.ts      |   89.36 |     87.5 |      75 |   89.36 | 50-53,60,112-116  
 .../hooks/scripts |       0 |        0 |       0 |       0 |                   
  on-start.js      |       0 |        0 |       0 |       0 | 1-8               
 ...les/mcp-server |       0 |        0 |       0 |       0 |                   
  example.js       |       0 |        0 |       0 |       0 | 1-60              
 ...commands/hooks |    7.18 |      100 |       0 |    7.18 |                   
  migrate.ts       |    7.18 |      100 |       0 |    7.18 | ...00-210,212-214 
 src/commands/mcp  |   96.95 |    86.15 |   94.44 |   96.95 |                   
  add.ts           |   99.56 |    93.33 |     100 |   99.56 | 142               
  list.ts          |   90.51 |    82.14 |      80 |   90.51 | ...13-115,148-150 
  remove.ts        |     100 |    71.42 |     100 |     100 | 21-25             
 ...ommands/skills |   60.98 |     92.3 |   31.25 |   60.98 |                   
  disable.ts       |      54 |      100 |   33.33 |      54 | 40-52,54-63       
  enable.ts        |   72.22 |      100 |   33.33 |   72.22 | 33-37,39-43       
  install.ts       |   42.69 |      100 |      25 |   42.69 | ...71-100,102-109 
  list.ts          |   84.93 |       80 |   33.33 |   84.93 | ...9,92-96,98-100 
  uninstall.ts     |   57.89 |      100 |   33.33 |   57.89 | 47-64,66-71       
 src/config        |   87.68 |    85.33 |   90.17 |   87.68 |                   
  ...deResolver.ts |   94.54 |    95.45 |     100 |   94.54 | 50-52             
  auth.ts          |   84.21 |    82.35 |     100 |   84.21 | 17-18,21-22,52-53 
  cliArgParser.ts  |   93.36 |    91.11 |     100 |   93.36 | ...22-223,286-289 
  config.ts        |     100 |      100 |     100 |     100 |                   
  configBuilder.ts |   95.83 |    95.45 |      90 |   95.83 | ...12-213,254-255 
  ...mentLoader.ts |   83.47 |    53.84 |     100 |   83.47 | ...33-135,143-146 
  extension.ts     |   74.85 |    88.38 |   79.06 |   74.85 | ...28-929,932-933 
  ...iveContext.ts |   93.75 |    91.66 |     100 |   93.75 | 79,81,87-92,232   
  ...iateConfig.ts |   97.45 |      100 |     100 |   97.45 | 155-157           
  keyBindings.ts   |     100 |      100 |     100 |     100 |                   
  ...rverConfig.ts |   83.33 |    94.44 |     100 |   83.33 | 23-39             
  pathMigration.ts |   84.27 |    80.18 |     100 |   84.27 | ...97,703,711-714 
  paths.ts         |     100 |      100 |     100 |     100 |                   
  policy.ts        |   80.76 |      100 |      50 |   80.76 | 45-49             
  ...figRuntime.ts |   89.37 |    88.23 |     100 |   89.37 | ...97-504,515-518 
  ...eBootstrap.ts |   91.79 |    87.42 |     100 |   91.79 | ...04-806,815-816 
  ...Resolution.ts |   78.66 |    76.74 |     100 |   78.66 | ...87-290,303-311 
  ...pplication.ts |   92.12 |       80 |     100 |   92.12 | ...,92-93,109,176 
  ...elResolver.ts |    93.1 |    81.25 |     100 |    93.1 | 41,43-44,80       
  sandboxConfig.ts |   69.81 |    51.48 |   88.46 |   69.81 | ...80-581,593-594 
  ...oxProfiles.ts |    8.53 |      100 |       0 |    8.53 | 47-48,51-129      
  settingPaths.ts  |     100 |      100 |     100 |     100 |                   
  ...validation.ts |   86.99 |    80.62 |     100 |   86.99 | ...02,404,406,408 
  settings.ts      |   83.37 |    85.98 |   69.23 |   83.37 | ...75-476,523-524 
  ...ingsLegacy.ts |    70.9 |    81.81 |     100 |    70.9 | 48-52,56-67       
  ...ingsLoader.ts |   94.11 |    81.39 |     100 |   94.11 | ...78,108-109,137 
  settingsMerge.ts |   99.51 |    95.65 |     100 |   99.51 | 128-129           
  ...Migrations.ts |   95.67 |    91.66 |     100 |   95.67 | 22-24,48-49,55-56 
  ...ingsSchema.ts |     100 |      100 |     100 |     100 |                   
  ...Governance.ts |   95.16 |    91.17 |     100 |   95.16 | 47-48,129-132     
  ...tedFolders.ts |   95.58 |       96 |     100 |   95.58 | 93,120-126        
  welcomeConfig.ts |   22.41 |      100 |       0 |   22.41 | ...71,74-79,82-83 
  yargsOptions.ts  |   98.73 |    96.77 |    87.5 |   98.73 | 144,153-156       
 ...fig/extensions |   76.28 |     84.5 |   87.38 |   76.28 |                   
  consent.ts       |   88.03 |    85.71 |     100 |   88.03 | ...76-377,380-381 
  ...ionConsent.ts |   87.38 |    76.66 |     100 |   87.38 | ...,64-67,113-116 
  ...Enablement.ts |   94.02 |       96 |     100 |   94.02 | ...15-221,284-286 
  ...sionLoader.ts |   91.92 |    88.46 |     100 |   91.92 | ...20-221,229-233 
  ...onSettings.ts |     100 |      100 |     100 |     100 |                   
  github.ts        |   61.73 |    81.73 |      68 |   61.73 | ...49-650,660-663 
  hookSchema.ts    |     100 |      100 |     100 |     100 |                   
  ...ntegration.ts |   55.31 |    84.78 |      50 |   55.31 | ...61,402,426-427 
  ...ingsPrompt.ts |      73 |    94.73 |      80 |      73 | 92-121            
  ...ngsStorage.ts |   85.57 |    77.19 |     100 |   85.57 | ...05-306,324-327 
  update.ts        |   69.52 |    52.94 |   85.71 |   69.52 | ...73-201,218-226 
  ...ableSchema.ts |     100 |      100 |     100 |     100 |                   
  variables.ts     |   95.55 |       90 |     100 |   95.55 | 33-34             
 ...ettings-schema |   99.78 |       60 |     100 |   99.78 |                   
  schema-core.ts   |     100 |      100 |     100 |     100 |                   
  ...extensions.ts |     100 |      100 |     100 |     100 |                   
  ...a-security.ts |   99.44 |       50 |     100 |   99.44 | 16-17             
  schema-tail.ts   |   99.52 |       50 |     100 |   99.52 | 13-14             
  schema-ui.ts     |     100 |      100 |     100 |     100 |                   
  schema.ts        |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/constants     |     100 |      100 |     100 |     100 |                   
  historyLimits.ts |     100 |      100 |     100 |     100 |                   
 src/extensions    |   64.92 |    61.81 |      75 |   64.92 |                   
  ...utoUpdater.ts |   64.92 |    61.81 |      75 |   64.92 | ...69-470,479,481 
 src/generated     |     100 |      100 |     100 |     100 |                   
  git-commit.ts    |     100 |      100 |     100 |     100 |                   
 ...egration-tests |   71.66 |    83.33 |   85.71 |   71.66 |                   
  ...st-helpers.ts |       0 |        0 |       0 |       0 | 1-79              
  test-utils.ts    |   91.97 |     86.2 |    92.3 |   91.97 | ...45,263-264,274 
 src/launcher      |   94.31 |    88.17 |   90.19 |   94.31 |                   
  ...y-resolver.ts |   93.93 |    95.45 |    90.9 |   93.93 | 165-172           
  bun-launcher.ts  |   96.65 |    87.34 |    91.3 |   96.65 | 44-52,59-60       
  ...h-resolver.ts |   91.37 |    84.12 |   88.23 |   91.37 | ...26-228,251-252 
 ...viders/logging |   89.31 |     92.5 |   69.23 |   89.31 |                   
  ...rvice-impl.ts |   44.44 |      100 |       0 |   44.44 | 21-22,25-30,36-37 
  git-stats.ts     |   96.46 |     92.5 |     100 |   96.46 | 154-155,195-196   
 src/runtime       |   94.06 |    88.88 |     100 |   94.06 |                   
  ...imeAdapter.ts |   94.06 |    88.88 |     100 |   94.06 | ...07-308,321-324 
 src/services      |   85.69 |       85 |   94.87 |   85.69 |                   
  ...mandLoader.ts |   79.75 |    73.33 |      80 |   79.75 | ...10-124,168-186 
  ...andService.ts |     100 |      100 |     100 |     100 |                   
  ...mandLoader.ts |   91.91 |    86.27 |     100 |   91.91 | ...11-216,303-310 
  ...omptLoader.ts |    67.5 |    68.96 |     100 |    67.5 | ...75,181-187,202 
  ...tArgParser.ts |     100 |    94.28 |     100 |     100 | 42,72             
  performResume.ts |   89.11 |    89.18 |     100 |   89.11 | ...59-262,268-269 
  types.ts         |       0 |        0 |       0 |       0 | 1                 
 ...mpt-processors |      98 |     93.1 |     100 |      98 |                   
  ...tProcessor.ts |     100 |      100 |     100 |     100 |                   
  ...lProcessor.ts |   97.88 |    92.72 |     100 |   97.88 | 78-79,263-264     
  types.ts         |     100 |      100 |     100 |     100 |                   
 ...o-continuation |   86.84 |    84.09 |   94.73 |   86.84 |                   
  ...ionService.ts |   86.84 |    84.09 |   94.73 |   86.84 | ...16,583,609-610 
 src/session       |   80.15 |    80.68 |   84.61 |   80.15 |                   
  debugLog.ts      |      60 |       50 |     100 |      60 | 12-16             
  ...rReporting.ts |   72.91 |    66.66 |     100 |   72.91 | 17-19,22-30,37-38 
  ...ractiveUI.tsx |   83.12 |      100 |   66.66 |   83.12 | ...39-241,251-260 
  ...iveSession.ts |   77.05 |    57.89 |      75 |   77.05 | ...40-250,264-281 
  ...tListeners.ts |     100 |      100 |     100 |     100 |                   
  ...alHandlers.ts |   81.37 |    88.57 |      90 |   81.37 | ...,94-97,112-113 
  ...nalCleanup.ts |   85.71 |       50 |     100 |   85.71 | 21                
 src/test-utils    |   77.07 |    82.25 |   37.68 |   77.07 |                   
  assertions.ts    |   76.47 |       50 |     100 |   76.47 | ...40,49-50,59-60 
  async.ts         |       0 |        0 |       0 |       0 | 1-34              
  ...eExtension.ts |     100 |      100 |     100 |     100 |                   
  ...omMatchers.ts |   22.22 |      100 |       0 |   22.22 | 19-49             
  inkFrame.ts      |      65 |    66.66 |   66.66 |      65 | 31-32,40-44       
  mockAgent.ts     |     100 |      100 |      50 |     100 |                   
  ...andContext.ts |     100 |      100 |     100 |     100 |                   
  regex.ts         |     100 |      100 |     100 |     100 |                   
  render.tsx       |   94.87 |    96.66 |   24.48 |   94.87 | ...52-157,260-261 
  ...e-testing.tsx |       0 |        0 |       0 |       0 | 1-56              
  ...iderConfig.ts |       0 |        0 |       0 |       0 | 1-19              
 src/ui            |   38.17 |    93.65 |   32.14 |   38.17 |                   
  App.tsx          |   37.25 |      100 |       0 |   37.25 | 71-98,104-111     
  AppContainer.tsx |     100 |      100 |     100 |     100 |                   
  ...erRuntime.tsx |   14.24 |      100 |   16.66 |   14.24 | 72-406            
  ...tionNudge.tsx |       8 |      100 |       0 |       8 | 29-104            
  colors.ts        |   37.14 |      100 |   20.33 |   37.14 | ...03-304,306-307 
  constants.ts     |     100 |      100 |     100 |     100 |                   
  debug.ts         |     100 |      100 |     100 |     100 |                   
  ...derOptions.ts |     100 |      100 |     100 |     100 |                   
  keyMatchers.ts   |   88.63 |       84 |     100 |   88.63 | 18,20-21,28-29    
  ...ntsEnabled.ts |     100 |      100 |     100 |     100 |                   
  ...submission.ts |     100 |      100 |     100 |     100 |                   
  ...lobalState.ts |     100 |      100 |     100 |     100 |                   
  ...tic-colors.ts |   78.94 |      100 |      60 |   78.94 | 15-16,24-25       
  textConstants.ts |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/ui/commands   |   71.82 |    77.17 |   78.33 |   71.82 |                   
  aboutCommand.ts  |   82.84 |    51.51 |   91.66 |   82.84 | ...92-193,195-196 
  authCommand.ts   |   50.83 |    79.26 |    62.5 |   50.83 | ...62-665,676-714 
  ...urlCommand.ts |      68 |       75 |     100 |      68 | 47-62             
  bugCommand.ts    |   71.23 |    30.76 |     100 |   71.23 | ...99-110,145-153 
  chatCommand.ts   |   69.89 |    74.62 |   66.66 |   69.89 | ...42-543,591-602 
  clearCommand.ts  |   88.88 |    88.88 |     100 |   88.88 | 96-103            
  ...essCommand.ts |   93.47 |    86.04 |     100 |   93.47 | ...,67-71,111-112 
  ...nueCommand.ts |     100 |      100 |     100 |     100 |                   
  copyCommand.ts   |     100 |      100 |     100 |     100 |                   
  debugCommands.ts |   13.81 |      100 |       0 |   13.81 | ...52,459,466,473 
  ...st-helpers.ts |   89.62 |     91.3 |      50 |   89.62 | ...93,95-96,98-99 
  ...icsCommand.ts |   79.06 |    54.25 |   94.44 |   79.06 | ...21-524,539-544 
  ...ticsTokens.ts |   90.96 |     87.8 |     100 |   90.96 | ...,67-72,107-108 
  ...ryCommand.tsx |    89.5 |    84.84 |     100 |    89.5 | ...27-135,202-210 
  docsCommand.ts   |     100 |      100 |     100 |     100 |                   
  ...extCommand.ts |   96.22 |    89.65 |     100 |   96.22 | 220-225           
  editorCommand.ts |     100 |      100 |     100 |     100 |                   
  ...onsCommand.ts |   41.27 |    88.09 |    62.5 |   41.27 | ...23-380,390-538 
  ...ionSection.ts |   83.33 |    93.33 |     100 |   83.33 | 28-34             
  helpCommand.ts   |     100 |      100 |     100 |     100 |                   
  hooksCommand.ts  |   79.49 |    80.82 |   92.85 |   79.49 | ...02,511-512,626 
  ideCommand.ts    |   69.87 |    74.28 |   69.23 |   69.87 | ...36-237,240-255 
  initCommand.ts   |   80.76 |    71.42 |   66.66 |   80.76 | 37-41,43-90       
  keyCommand.ts    |   90.05 |    80.76 |     100 |   90.05 | ...97,420-421,520 
  ...ileCommand.ts |    10.9 |      100 |       0 |    10.9 | 22-46,53-141      
  ...ingCommand.ts |   10.27 |      100 |       0 |   10.27 | ...19-572,589-601 
  logoutCommand.ts |   52.52 |    66.66 |      75 |   52.52 | ...91,104-110,115 
  lspCommand.ts    |    93.8 |    85.36 |     100 |    93.8 | 43,95-100         
  mcpAuth.ts       |   90.59 |    83.33 |   66.66 |   90.59 | 35-44,89-90       
  mcpCommand.ts    |   96.22 |    85.71 |     100 |   96.22 | 93-98             
  mcpDisplay.ts    |   84.02 |     80.8 |   94.11 |   84.02 | ...82-483,510-511 
  memoryCommand.ts |   87.45 |    75.47 |     100 |   87.45 | ...46,234-248,297 
  modelCommand.ts  |   98.92 |    93.02 |     100 |   98.92 | 120               
  mouseCommand.ts  |     100 |      100 |     100 |     100 |                   
  ...onsCommand.ts |    93.9 |    88.88 |     100 |    93.9 | 58-62             
  ...iesCommand.ts |   97.79 |    87.75 |     100 |   97.79 | 24,34-35          
  ...acyCommand.ts |   61.53 |      100 |       0 |   61.53 | 22-26             
  ...ileCommand.ts |   56.52 |    46.42 |   55.55 |   56.52 | ...35-476,497-513 
  profileLoad.ts   |   52.08 |       60 |    87.5 |   52.08 | ...45,172,183-187 
  ...adBalancer.ts |   81.36 |    84.61 |     100 |   81.36 | ...20-321,347-352 
  ...ileSchemas.ts |   67.11 |    81.81 |     100 |   67.11 | ...18-230,262-267 
  ...derCommand.ts |   60.49 |    33.33 |     100 |   60.49 | ...94-295,304-309 
  quitCommand.ts   |   36.66 |      100 |       0 |   36.66 | 17-36             
  ...oreCommand.ts |   90.16 |    83.33 |     100 |   90.16 | ...69-174,207-212 
  setCommand.ts    |   86.32 |    84.28 |     100 |   86.32 | ...91-200,217-222 
  ...mandSchema.ts |   71.57 |    81.81 |   84.61 |   71.57 | ...05,232-240,295 
  ...ngsCommand.ts |     100 |      100 |     100 |     100 |                   
  setupCommand.ts  |     100 |      100 |     100 |     100 |                   
  ...hubCommand.ts |   90.47 |    82.85 |     100 |   90.47 | ...13-216,223-227 
  skillsCommand.ts |   82.78 |       75 |     100 |   82.78 | ...91-292,305-306 
  statsCommand.ts  |   57.25 |    86.66 |   58.33 |   57.25 | ...04-216,234-235 
  statsQuota.ts    |   80.16 |     67.1 |   86.66 |   80.16 | ...05-406,439-443 
  ...entCommand.ts |   76.72 |    69.73 |   81.81 |   76.72 | ...09-615,626-632 
  tasksCommand.ts  |   75.83 |       75 |     100 |   75.83 | ...51-156,202-210 
  ...tupCommand.ts |     100 |      100 |     100 |     100 |                   
  themeCommand.ts  |     100 |      100 |     100 |     100 |                   
  todoCommand.ts   |   82.24 |    72.28 |     100 |   82.24 | ...48-460,468-472 
  ...Formatters.ts |   48.93 |    71.42 |   33.33 |   48.93 | ...5,70-86,92-113 
  ...Operations.ts |   85.93 |    77.77 |   95.23 |   85.93 | ...71-372,410-424 
  ...matCommand.ts |   26.66 |      100 |       0 |   26.66 | 33-92             
  ...keyCommand.ts |   98.88 |     92.3 |     100 |   98.88 | 34                
  ...ileCommand.ts |    99.1 |    94.11 |     100 |    99.1 | 36                
  toolsCommand.ts  |   86.66 |    76.47 |     100 |   86.66 | ...62,295,326-327 
  types.ts         |     100 |      100 |     100 |     100 |                   
  ...ileCommand.ts |   27.77 |        0 |       0 |   27.77 | 11-23             
  vimCommand.ts    |   44.44 |      100 |       0 |   44.44 | 15-25             
 ...ommands/schema |   96.06 |    92.54 |   94.11 |   96.06 |                   
  index.ts         |   95.84 |    91.58 |     100 |   95.84 | ...07-211,222-223 
  schemaHelpers.ts |   97.02 |    96.22 |     100 |   97.02 | 67-68,115-117     
  types.ts         |       0 |        0 |       0 |       0 | 1                 
 src/ui/components |    12.2 |    38.81 |     7.7 |    12.2 |                   
  AboutBox.tsx     |   12.19 |      100 |       0 |   12.19 | ...,76-98,102-130 
  AnsiOutput.tsx   |    8.33 |      100 |       0 |    8.33 | 25-90             
  AppHeader.tsx    |   21.87 |      100 |       0 |   21.87 | 26-56             
  AsciiArt.ts      |     100 |      100 |     100 |     100 |                   
  AuthDialog.tsx   |    5.01 |      100 |       0 |    5.01 | ...32-239,242-325 
  ...nProgress.tsx |       0 |        0 |       0 |       0 | 1-63              
  ...Indicator.tsx |   15.15 |      100 |       0 |   15.15 | 17-47             
  ...firmation.tsx |   15.38 |      100 |       0 |   15.38 | 59-134,143-208    
  ...tsDisplay.tsx |   10.37 |      100 |       0 |   10.37 | ...70-110,114-168 
  CliSpinner.tsx   |       0 |        0 |       0 |       0 | 1-22              
  Composer.tsx     |     8.1 |      100 |       0 |     8.1 | 17-32,45-100      
  ...entPrompt.tsx |   18.75 |      100 |       0 |   18.75 | 21-51             
  ...ryDisplay.tsx |   21.05 |      100 |       0 |   21.05 | 17-35             
  ...ryDisplay.tsx |    4.65 |      100 |       0 |    4.65 | 29-107,110-174    
  ...geDisplay.tsx |       0 |        0 |       0 |       0 | 1-37              
  ...gProfiler.tsx |   16.86 |      100 |       0 |   16.86 | ...73-118,122-222 
  ...esDisplay.tsx |   10.52 |      100 |       0 |   10.52 | 24-82             
  ...ogManager.tsx |    5.66 |      100 |       0 |    5.66 | 71-803,807-831    
  ...ngsDialog.tsx |   12.56 |      100 |       0 |   12.56 | ...48-172,176-247 
  ...rBoundary.tsx |   10.07 |        0 |       0 |   10.07 | ...26-171,189-204 
  ...ustDialog.tsx |   16.34 |      100 |       0 |   16.34 | ...2,70-81,84-143 
  Footer.tsx       |    12.6 |        0 |       0 |    12.6 | ...49-653,657-726 
  ...ngSpinner.tsx |    40.9 |      100 |       0 |    40.9 | 31-47             
  Header.tsx       |    17.5 |      100 |       0 |    17.5 | 22-62             
  Help.tsx         |    6.84 |      100 |       0 |    6.84 | ...87-190,194-206 
  ...emDisplay.tsx |   12.01 |      100 |       0 |   12.01 | 53-237,240-278    
  ...usDisplay.tsx |       0 |        0 |       0 |       0 | 1-47              
  InputPrompt.tsx  |     100 |       75 |     100 |     100 | 45                
  ...tsDisplay.tsx |    4.36 |      100 |       0 |    4.36 | ...32-226,229-292 
  ...utManager.tsx |       0 |        0 |       0 |       0 | 1-99              
  ...ileDialog.tsx |    8.33 |      100 |       0 |    8.33 | ...8,72-81,85-152 
  ...Indicator.tsx |   14.92 |      100 |       0 |   14.92 | 21-25,35-97       
  ...ingDialog.tsx |    6.68 |      100 |       0 |    6.68 | ...66-383,387-436 
  ...geDisplay.tsx |       0 |        0 |       0 |       0 | 1-41              
  ModelDialog.tsx  |    3.82 |      100 |       0 |    3.82 | ...79-752,756-842 
  ...tsDisplay.tsx |    3.82 |      100 |       0 |    3.82 | 32-205,208-259    
  ...fications.tsx |   16.66 |      100 |       0 |   16.66 | ...08-139,142-177 
  ...odeDialog.tsx |     7.4 |      100 |       0 |     7.4 | 32-141            
  ...ustDialog.tsx |    5.53 |      100 |       0 |    5.53 | ...36-273,278-313 
  PrepareLabel.tsx |   13.33 |      100 |       0 |   13.33 | 20-48             
  ...ailDialog.tsx |   11.36 |      100 |       0 |   11.36 | ...93-499,503-576 
  ...ineEditor.tsx |    4.34 |      100 |       0 |    4.34 | ...66-552,555-630 
  ...istDialog.tsx |     4.5 |      100 |       0 |     4.5 | ...93-530,533-619 
  ...derDialog.tsx |    2.58 |      100 |       0 |    2.58 | 58-408,411-426    
  ...Indicator.tsx |       0 |        0 |       0 |       0 | 1-21              
  ...eKeyInput.tsx |       0 |        0 |       0 |       0 | 1-149             
  ...serDialog.tsx |    9.56 |      100 |       0 |    9.56 | ...52-603,611-670 
  ...ryDisplay.tsx |      50 |      100 |       0 |      50 | 15-17             
  ...ngsDialog.tsx |    9.75 |      100 |       0 |    9.75 | 29-105            
  ...putPrompt.tsx |   14.28 |      100 |       0 |   14.28 | 19-58             
  ...Indicator.tsx |   44.44 |      100 |       0 |   44.44 | 12-17             
  ...MoreLines.tsx |   30.43 |      100 |       0 |   30.43 | 18-38             
  StatsDisplay.tsx |    8.98 |      100 |       0 |    8.98 | ...40-445,449-500 
  ...usDisplay.tsx |       0 |        0 |       0 |       0 | 1-59              
  StickyHeader.tsx |    7.14 |      100 |       0 |    7.14 | 20-78             
  ...nsDisplay.tsx |    5.83 |      100 |       0 |    5.83 | 39-91,105-181     
  Table.tsx        |    6.77 |      100 |       0 |    6.77 | 31-36,39-99       
  ThemeDialog.tsx  |    3.96 |      100 |       0 |    3.96 | 51-441,444-500    
  ...dGradient.tsx |      25 |      100 |       0 |      25 | 27-46             
  Tips.tsx         |      16 |      100 |       0 |      16 | 17-45             
  TodoPanel.tsx    |     5.9 |      100 |       0 |     5.9 | ...87-244,247-296 
  ...tsDisplay.tsx |   10.05 |      100 |       0 |   10.05 | ...88-227,230-259 
  ToolsDialog.tsx  |   10.63 |      100 |       0 |   10.63 | ...5,41-47,50-123 
  ...ification.tsx |   36.36 |      100 |       0 |   36.36 | 15-22             
  ...ionDialog.tsx |    6.08 |      100 |       0 |    6.08 | 18-104,110-161    
  ...romptHooks.ts |   87.61 |    65.51 |     100 |   87.61 | ...39-343,359-366 
  ...eyHandlers.ts |   24.33 |    33.33 |      50 |   24.33 | ...75-577,581-606 
  ...mptRender.tsx |   53.05 |     31.7 |   72.72 |   53.05 | ...02,314-322,343 
  ...PromptText.ts |   31.08 |    55.55 |   28.57 |   31.08 | ...25-175,179-199 
  ...romptTypes.ts |       0 |        0 |       0 |       0 | 1                 
  ...logActions.ts |    2.59 |      100 |       0 |    2.59 | ...92-562,565-602 
  ...logDisplay.ts |    4.28 |      100 |       0 |    4.28 | 25-120,125-184    
  ...logHelpers.ts |    7.64 |      100 |       0 |    7.64 | ...76-194,201-214 
  ...ialogHooks.ts |     2.8 |      100 |       0 |     2.8 | ...98-599,632-807 
  ...ogKeypress.ts |    1.69 |      100 |       0 |    1.69 | 34-386,481-678    
  ...ialogTypes.ts |       0 |        0 |       0 |       0 | 1                 
  ...alogViews.tsx |    4.13 |      100 |       0 |    4.13 | 31-133,167-378    
  todo-utils.ts    |       0 |        0 |       0 |       0 | 1-7               
 ...leCreateWizard |    18.6 |       50 |       0 |    18.6 |                   
  ...aramsStep.tsx |   13.42 |      100 |       0 |   13.42 | ...33-246,258-342 
  ...ationStep.tsx |    7.23 |      100 |       0 |    7.23 | ...35-571,583-651 
  ...onfigStep.tsx |   13.33 |      100 |       0 |   13.33 | 20-26,37-117      
  ...electStep.tsx |    9.73 |      100 |       0 |    9.73 | ...12-279,295-340 
  ...ationMenu.tsx |       0 |        0 |       0 |       0 | 1-102             
  ...eSaveStep.tsx |    7.73 |      100 |       0 |    7.73 | ...75-304,316-394 
  ...ssSummary.tsx |   12.12 |      100 |       0 |   12.12 | 23-88             
  ...electStep.tsx |   18.18 |      100 |       0 |   18.18 | 29-96             
  TextInput.tsx    |    6.56 |      100 |       0 |    6.56 | ...99-109,117-200 
  constants.ts     |     100 |      100 |     100 |     100 |                   
  index.tsx        |   14.17 |      100 |       0 |   14.17 | ...97-226,235-319 
  types.ts         |     100 |      100 |     100 |     100 |                   
  utils.ts         |    5.42 |      100 |       0 |    5.42 | ...59-361,366-383 
  validation.ts    |   11.23 |      100 |       0 |   11.23 | ...97-104,107-111 
 ...gentManagement |    4.22 |      100 |       0 |    4.22 |                   
  ...entWizard.tsx |    2.91 |      100 |       0 |    2.91 | 30-232,237-312    
  ...ionWizard.tsx |    1.44 |      100 |       0 |    1.44 | 30-592,595-676    
  ...eteDialog.tsx |    5.88 |      100 |       0 |    5.88 | 14-94,104-146     
  ...tEditForm.tsx |    1.77 |      100 |       0 |    1.77 | 30-619,622-640    
  ...tListMenu.tsx |    2.94 |      100 |       0 |    2.94 | 15-264,267-348    
  ...tMainMenu.tsx |   16.66 |      100 |       0 |   16.66 | 22-62             
  ...gerDialog.tsx |    2.39 |      100 |       0 |    2.39 | 29-600,603-679    
  ...tShowView.tsx |    4.76 |      100 |       0 |    4.76 | 25-183,186-243    
  index.ts         |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 ...comeOnboarding |   13.67 |        0 |       0 |   13.67 |                   
  ...ethodStep.tsx |   16.86 |      100 |       0 |   16.86 | 38-123            
  ...ationStep.tsx |    7.35 |      100 |       0 |    7.35 | ...1,59-95,98-177 
  ...etionStep.tsx |    9.84 |      100 |       0 |    9.84 | ...,89-99,103-179 
  ...electStep.tsx |   12.12 |      100 |       0 |   12.12 | ...3,67-75,79-143 
  ...electStep.tsx |   34.48 |      100 |       0 |   34.48 | 51-120            
  SkipExitStep.tsx |    12.5 |      100 |       0 |    12.5 | 18-59             
  ...omeDialog.tsx |   11.76 |      100 |       0 |   11.76 | 51-118,121-166    
  WelcomeStep.tsx  |    10.2 |      100 |       0 |    10.2 | 23-74             
  index.ts         |       0 |        0 |       0 |       0 | 1-13              
 ...nents/messages |   18.85 |       90 |   15.06 |   18.85 |                   
  ...onMessage.tsx |   12.28 |      100 |       0 |   12.28 | 24-86             
  DiffRenderer.tsx |    3.59 |      100 |       0 |    3.59 | ...81-412,415-433 
  ErrorMessage.tsx |   22.22 |      100 |       0 |   22.22 | 16-31             
  ...niMessage.tsx |   14.51 |      100 |       0 |   14.51 | 28-95             
  ...geContent.tsx |   20.83 |      100 |       0 |   20.83 | 26-46             
  InfoMessage.tsx  |   17.24 |      100 |       0 |   17.24 | 19-44             
  ...rlMessage.tsx |   11.36 |      100 |       0 |   11.36 | 18-65             
  ...geMessage.tsx |     100 |      100 |     100 |     100 |                   
  ...ckDisplay.tsx |      20 |      100 |       0 |      20 | 43-64             
  ...onMessage.tsx |    3.04 |      100 |       0 |    3.04 | 38-554,559-638    
  ...upMessage.tsx |    7.42 |      100 |       0 |    7.42 | ...75-273,277-352 
  ToolMessage.tsx  |    4.37 |      100 |       0 |    4.37 | 38-342,358-428    
  ...ltDisplay.tsx |   92.03 |    88.23 |     100 |   92.03 | 55-69,238-240     
  ToolShared.tsx   |   64.61 |       90 |   33.33 |   64.61 | 78-99,102-105     
  UserMessage.tsx  |     100 |      100 |     100 |     100 |                   
  ...llMessage.tsx |   36.36 |      100 |       0 |   36.36 | 17-25             
  ...ngMessage.tsx |    23.8 |      100 |       0 |    23.8 | 17-34             
 ...ponents/shared |   40.89 |     63.3 |   39.91 |   40.89 |                   
  ...ctionList.tsx |    4.31 |      100 |       0 |    4.31 | 36-123,128-206    
  MaxSizedBox.tsx  |   49.79 |    56.75 |   70.58 |   49.79 | ...63-666,670-673 
  ...tonSelect.tsx |   12.76 |      100 |       0 |   12.76 | 66-113            
  ...lableList.tsx |    5.15 |      100 |       0 |    5.15 | 40-267            
  ...ist.hooks.tsx |    3.81 |      100 |       0 |    3.81 | ...70-795,798-835 
  ...lizedList.tsx |   11.49 |      100 |       0 |   11.49 | 28-112            
  ...List.types.ts |     100 |      100 |     100 |     100 |                   
  ...operations.ts |   75.54 |    48.14 |     100 |   75.54 | ...32-233,256-265 
  ...er-reducer.ts |   28.25 |    51.11 |   33.33 |   28.25 | ...30,632,644,687 
  buffer-types.ts  |     100 |      100 |     100 |     100 |                   
  text-buffer.ts   |   71.75 |    89.18 |   27.86 |   71.75 | ...33-635,654-660 
  ...formations.ts |   42.85 |    71.42 |      80 |   42.85 | ...32-139,163-209 
  ...n-handlers.ts |   33.99 |    61.53 |   23.25 |   33.99 | ...47-755,758-762 
  ...st-helpers.ts |       0 |        0 |       0 |       0 | 1-33              
  ...er-actions.ts |   93.84 |     87.5 |     100 |   93.84 | 91-93,100         
  visual-layout.ts |    90.2 |    72.34 |     100 |    90.2 | ...48-350,372-373 
  ...navigation.ts |   53.38 |    61.53 |   73.68 |   53.38 | ...45-366,389-411 
 ...mponents/views |    9.79 |      100 |       0 |    9.79 |                   
  ChatList.tsx     |   20.58 |      100 |       0 |   20.58 | 24-55             
  ...sionsList.tsx |     7.5 |      100 |       0 |     7.5 | 19-103            
  HooksList.tsx    |   10.67 |      100 |       0 |   10.67 | ...18-129,132-147 
  SkillsList.tsx   |    5.79 |      100 |       0 |    5.79 | 18-103            
 src/ui/constants  |   55.78 |     90.9 |      50 |   55.78 |                   
  ...ollections.ts |     100 |      100 |     100 |     100 |                   
  tips.ts          |       0 |        0 |       0 |       0 | 1-164             
 src/ui/containers |       0 |        0 |       0 |       0 |                   
  ...ontroller.tsx |       0 |        0 |       0 |       0 | 1-356             
  UIStateShell.tsx |       0 |        0 |       0 |       0 | 1-15              
 ...ainer/builders |   98.38 |      100 |   83.33 |   98.38 |                   
  ...dUIActions.ts |     100 |      100 |     100 |     100 |                   
  buildUIState.ts  |     100 |      100 |     100 |     100 |                   
  ...onsBuilder.ts |   66.66 |      100 |       0 |   66.66 | 20-21             
  ...ateBuilder.ts |   66.66 |      100 |       0 |   66.66 | 20-21             
 ...ontainer/hooks |   55.73 |    87.02 |   58.33 |   55.73 |                   
  ...pBootstrap.ts |   94.73 |    58.33 |     100 |   94.73 | ...32-235,239-241 
  useAppDialogs.ts |   41.42 |      100 |   42.85 |   41.42 | ...61,180-396,416 
  ...ntHandlers.ts |     100 |      100 |     100 |     100 |                   
  useAppInput.ts   |    5.77 |      100 |       0 |    5.77 | 102-524,527-531   
  useAppLayout.ts  |    7.92 |      100 |       0 |    7.92 | 92-299,302-305    
  ...reenAction.ts |   13.63 |      100 |       0 |   13.63 | 23-41             
  ...nSelection.ts |      20 |      100 |       0 |      20 | 27-48             
  ...hestration.ts |     100 |      100 |     100 |     100 |                   
  ...references.ts |      10 |      100 |       0 |      10 | 51-104            
  ...itHandling.ts |   89.79 |      100 |     100 |   89.79 | 130-138,142       
  ...textBridge.ts |   33.33 |      100 |       0 |   33.33 | 23-30             
  ...tartHotkey.ts |   26.66 |      100 |       0 |   26.66 | 23-33             
  ...omptSubmit.ts |     100 |      100 |     100 |     100 |                   
  ...utHandling.ts |   98.37 |     91.3 |     100 |   98.37 | 53,166            
  ...yBootstrap.ts |      30 |      100 |       0 |      30 | 28-34             
  ...eybindings.ts |   86.28 |    78.18 |     100 |   86.28 | ...04-206,250-251 
  ...easurement.ts |   15.38 |      100 |       0 |   15.38 | 45-95             
  ...reshAction.ts |   79.16 |     37.5 |     100 |   79.16 | 51,81-84,86-95    
  ...untimeSync.ts |   96.15 |    96.96 |     100 |   96.15 | 198-203           
  ...elTracking.ts |   27.41 |      100 |      50 |   27.41 | 20-24,67-120      
  ...laceholder.ts |      15 |      100 |       0 |      15 | 13-18,21-34       
  ...rorTimeout.ts |   17.64 |      100 |       0 |   17.64 | 24-39             
  ...astructure.ts |   73.91 |      100 |      20 |   73.91 | 53,57,61,75-83    
  ...ebugLogger.ts |   17.24 |      100 |       0 |   17.24 | 23-51             
  ...ialization.ts |   70.45 |    84.61 |   66.66 |   70.45 | ...,72-94,127-128 
  ...sAutoReset.ts |     100 |       90 |     100 |     100 | 44                
  ...andActions.ts |     100 |      100 |     100 |     100 |                   
  ...eshManager.ts |     100 |      100 |     100 |     100 |                   
  ...uationFlow.ts |    7.93 |      100 |       0 |    7.93 | 54-150            
  ...csTracking.ts |    95.8 |    80.64 |     100 |    95.8 | ...32-133,184-185 
  ...uthBridges.ts |   17.94 |      100 |   33.33 |   17.94 | ...13-138,142-146 
 src/ui/contexts   |   56.19 |       80 |   54.34 |   56.19 |                   
  ...chContext.tsx |   88.23 |    66.66 |     100 |   88.23 | 27-28             
  FocusContext.tsx |       0 |        0 |       0 |       0 | 1-11              
  ...ssContext.tsx |    83.3 |    87.89 |    87.5 |    83.3 | ...21-522,572-573 
  MouseContext.tsx |   78.82 |       75 |      80 |   78.82 | ...00-101,111-117 
  ...erContext.tsx |   94.44 |    63.63 |     100 |   94.44 | 125-128           
  ...owContext.tsx |   21.42 |      100 |   33.33 |   21.42 | 34,40-88          
  ...meContext.tsx |   52.34 |       40 |   57.14 |   52.34 | ...95-196,201-202 
  ...lProvider.tsx |    91.8 |    74.62 |     100 |    91.8 | ...94-495,507-508 
  ...onContext.tsx |     4.4 |      100 |       0 |     4.4 | ...38-393,398-405 
  ...teContext.tsx |       0 |        0 |       0 |       0 | 1-57              
  ...gsContext.tsx |      50 |      100 |       0 |      50 | 15-20             
  ...ngContext.tsx |   42.85 |      100 |       0 |   42.85 | 15-22             
  TodoContext.tsx  |   54.54 |      100 |       0 |   54.54 | 28-31,33-36,39-40 
  TodoProvider.tsx |    3.35 |      100 |       0 |    3.35 | 27-166,169-199    
  ...llContext.tsx |     100 |      100 |       0 |     100 |                   
  ...lProvider.tsx |    6.75 |      100 |       0 |    6.75 | 24-118            
  ...nsContext.tsx |      25 |      100 |       0 |      25 | 203-214,217-222   
  ...teContext.tsx |      50 |       50 |      50 |      50 | 251-260,265-266   
  ...deContext.tsx |   11.11 |      100 |       0 |   11.11 | 30-82,85-90       
 src/ui/editors    |   98.18 |     87.5 |     100 |   98.18 |                   
  ...ngsManager.ts |   98.18 |     87.5 |     100 |   98.18 | 59                
 src/ui/hooks      |   68.35 |    85.84 |   72.16 |   68.35 |                   
  ...st-helpers.ts |    95.9 |    90.47 |   56.66 |    95.9 | 67,79-80,98-99    
  ...dProcessor.ts |   87.95 |    87.09 |   88.88 |   87.95 | ...78-180,241-253 
  ...sorHelpers.ts |   78.42 |     77.6 |   88.88 |   78.42 | ...21-822,850-856 
  ...etionUtils.ts |   53.36 |    88.23 |   64.28 |   53.36 | 57-207,335        
  index.ts         |       0 |        0 |       0 |       0 | 1-9               
  keyToAnsi.ts     |    42.5 |      100 |       0 |    42.5 | 27-37,47-61       
  ...etionUtils.ts |     100 |    66.66 |     100 |     100 | 49                
  ...dProcessor.ts |   96.29 |       80 |     100 |   96.29 | ...71-272,404-408 
  ...ndHandlers.ts |   17.54 |    27.27 |   22.22 |   17.54 | ...45-646,651-660 
  ...dPathUtils.ts |    95.7 |    90.52 |     100 |    95.7 | ...25-227,271-272 
  ...dProcessor.ts |     100 |      100 |     100 |     100 |                   
  ...sorSupport.ts |   68.99 |    70.83 |   66.66 |   68.99 | ...85-288,306-313 
  ...tionEffect.ts |   90.76 |    86.56 |   92.85 |   90.76 | ...04-405,418-419 
  ...etionTypes.ts |       0 |        0 |       0 |       0 | 1                 
  toolMapping.ts   |   90.76 |    88.88 |   93.33 |   90.76 | ...95-207,226-228 
  ...nateBuffer.ts |      50 |      100 |       0 |      50 | 16-18             
  ...dScrollbar.ts |   97.82 |      100 |     100 |   97.82 | 153-155           
  ...st-helpers.ts |     100 |      100 |     100 |     100 |                   
  ...Completion.ts |   92.52 |    89.65 |     100 |   92.52 | ...02-603,606-607 
  ...uthCommand.ts |   96.42 |    66.66 |     100 |   96.42 | 21                
  ...tIndicator.ts |     100 |     92.3 |     100 |     100 | 57                
  useBanner.ts     |     100 |    83.33 |     100 |     100 | 22,48             
  ...chedScroll.ts |   16.66 |      100 |       0 |   16.66 | 14-32             
  ...ketedPaste.ts |      20 |      100 |       0 |      20 | 20-38             
  ...ompletion.tsx |   97.24 |    82.75 |    90.9 |   97.24 | ...04-206,209-210 
  useCompletion.ts |    92.4 |     87.5 |     100 |    92.4 | 68-69,93-94,98-99 
  ...leMessages.ts |   96.15 |       90 |     100 |   96.15 | 56-57,63          
  ...ntHandlers.ts |   31.25 |      100 |     100 |   31.25 | 43-70,74-82       
  ...fileDialog.ts |   16.12 |      100 |       0 |   16.12 | 17-47             
  ...orSettings.ts |   11.86 |      100 |       0 |   11.86 | 31-87             
  ...AutoUpdate.ts |    8.33 |      100 |       0 |    8.33 | 18-64             
  ...ionUpdates.ts |   75.17 |    80.64 |   77.77 |   75.17 | ...60-261,289-303 
  ...erDetector.ts |     100 |      100 |     100 |     100 |                   
  useFocus.ts      |     100 |      100 |     100 |     100 |                   
  ...olderTrust.ts |   87.09 |     91.3 |     100 |   87.09 | 50-63,135-136     
  ...st-helpers.ts |     100 |      100 |     100 |     100 |                   
  ...BranchName.ts |     100 |    89.47 |     100 |     100 | 58,61             
  ...oryManager.ts |   96.61 |    93.18 |     100 |   96.61 | ...70-171,214-215 
  ...splayState.ts |     100 |      100 |     100 |     100 |                   
  ...stListener.ts |   12.12 |      100 |       0 |   12.12 | 17-50             
  ...ivityTimer.ts |   76.19 |    66.66 |     100 |   76.19 | 30-35             
  ...putHistory.ts |    92.5 |    85.71 |     100 |    92.5 | 62-63,71,93-95    
  ...storyStore.ts |     100 |    94.11 |     100 |     100 | 67                
  useKeypress.ts   |   88.88 |       75 |     100 |   88.88 | 31-32             
  ...rdProtocol.ts |       0 |        0 |       0 |       0 | 1-26              
  ...fileDialog.ts |     5.3 |      100 |       0 |     5.3 | 26-72,75-148      
  ...gIndicator.ts |     100 |      100 |     100 |     100 |                   
  useLogger.ts     |   93.75 |      100 |     100 |   93.75 | 27                
  useMcpStatus.ts  |   90.69 |    66.66 |     100 |   90.69 | 19,33-35          
  ...oryMonitor.ts |     100 |      100 |     100 |     100 |                   
  ...ssageQueue.ts |     100 |      100 |     100 |     100 |                   
  useMouse.ts      |   77.77 |    66.66 |     100 |   77.77 | 31-34             
  useMouseClick.ts |     100 |      100 |     100 |     100 |                   
  ...eSelection.ts |     2.2 |      100 |       0 |     2.2 | 51-378,381-427    
  ...hestration.ts |     100 |      100 |     100 |     100 |                   
  ...oviderInfo.ts |       0 |        0 |       0 |       0 | 1-82              
  ...odifyTrust.ts |    9.09 |      100 |       0 |    9.09 | 43-134            
  ...raseCycler.ts |   79.72 |    73.33 |     100 |   79.72 | ...69,75-76,92-94 
  ...cySettings.ts |   86.72 |    83.33 |     100 |   86.72 | ...,95-99,127-138 
  ...Management.ts |    1.53 |      100 |       0 |    1.53 | 22-568,571-663    
  ...Completion.ts |   43.02 |    55.55 |      50 |   43.02 | ...84-297,328-337 
  ...iderDialog.ts |    5.66 |      100 |       0 |    5.66 | 45-83,86-158      
  ...lScheduler.ts |   75.51 |    83.33 |   73.52 |   75.51 | ...05,621-637,794 
  ...oryCommand.ts |       0 |        0 |       0 |       0 | 1-7               
  useResponsive.ts |     100 |      100 |     100 |     100 |                   
  ...ompletion.tsx |   69.56 |      100 |     100 |   69.56 | 45-47,51-66,78-81 
  useRewind.ts     |     100 |      100 |     100 |     100 |                   
  ...ectionList.ts |   89.78 |     89.1 |     100 |   89.78 | ...17-423,443-447 
  useSession.ts    |       0 |        0 |       0 |       0 | 1-23              
  ...ionBrowser.ts |     100 |      100 |     100 |     100 |                   
  ...serHelpers.ts |   95.79 |    85.21 |   97.36 |   95.79 | ...37-639,762-763 
  ...erKeypress.ts |   89.87 |    97.29 |   94.11 |   89.87 | 101-108,130-145   
  ...ngsCommand.ts |   18.75 |      100 |       0 |   18.75 | 10-25             
  ...hallowMemo.ts |      10 |      100 |       0 |      10 | 9-22,35-47        
  ...ellHistory.ts |   92.17 |    78.78 |     100 |   92.17 | ...81,129-130,140 
  ...Completion.ts |   97.07 |    81.25 |     100 |   97.07 | 71-73,101-102     
  ...oryCommand.ts |       0 |        0 |       0 |       0 | 1-63              
  ...cessorCore.ts |   74.13 |       60 |     100 |   74.13 | ...20,157,177-204 
  ...ompletion.tsx |   96.73 |    81.39 |     100 |   96.73 | ...,92-93,335-343 
  ...leCallback.ts |     100 |      100 |     100 |     100 |                   
  ...tateAndRef.ts |   59.09 |      100 |     100 |   59.09 | 23-31             
  ...oryRefresh.ts |     100 |      100 |     100 |     100 |                   
  ...rminalSize.ts |   10.34 |      100 |       0 |   10.34 | 15-44,49-85       
  ...emeCommand.ts |    4.29 |      100 |       0 |    4.29 | 25-122,125-199    
  useTimer.ts      |    87.5 |    85.71 |     100 |    87.5 | 44-45,50-52       
  ...ntinuation.ts |   91.28 |    89.74 |     100 |   91.28 | ...25-126,153-163 
  ...ePreserver.ts |   57.14 |      100 |      80 |   57.14 | 58-76             
  ...oolsDialog.ts |    3.44 |      100 |       0 |    3.44 | 23-106,109-193    
  ...Onboarding.ts |    1.92 |      100 |       0 |    1.92 | 77-402,405-486    
  ...eMigration.ts |   11.66 |      100 |       0 |   11.66 | 15-74             
  vim.ts           |   85.73 |     87.8 |    90.9 |   85.73 | ...07-716,832-834 
 ...s/geminiStream |    88.4 |    83.37 |   89.18 |    88.4 |                   
  ...ersistence.ts |   98.29 |    95.12 |     100 |   98.29 | 162-164           
  ...tProcessor.ts |      78 |    77.77 |      80 |      78 | ...47-158,161-163 
  contextLimit.ts  |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  queryPreparer.ts |   65.26 |    46.66 |     100 |   65.26 | ...29-130,133-146 
  ...Dispatcher.ts |   90.28 |    87.03 |   91.66 |   90.28 | ...25,327-331,416 
  streamUtils.ts   |   98.98 |    96.25 |     100 |   98.98 | 349-351           
  thoughtState.ts  |   93.33 |    68.75 |     100 |   93.33 | 70-71,76-77       
  ...ionHandler.ts |     100 |      100 |     100 |     100 |                   
  ...reparation.ts |    97.5 |    83.33 |     100 |    97.5 | 56                
  types.ts         |     100 |      100 |     100 |     100 |                   
  ...genticLoop.ts |   98.71 |    93.93 |      60 |   98.71 | 240,347           
  ...miniStream.ts |     100 |      100 |      80 |     100 |                   
  ...mLifecycle.ts |   84.18 |    58.62 |      80 |   84.18 | ...30-231,260-265 
  ...hestration.ts |    98.8 |    91.66 |   88.88 |    98.8 | 110-111,268       
  ...ntHandlers.ts |   73.53 |       96 |     100 |   73.53 | ...29-435,444-453 
  ...treamState.ts |   79.76 |    52.17 |     100 |   79.76 | ...79,200,237-238 
  ...ubmitQuery.ts |    87.5 |       75 |   83.33 |    87.5 | ...36-437,459-461 
 src/ui/layouts    |   83.47 |    56.89 |   83.33 |   83.47 |                   
  ...AppLayout.tsx |   80.98 |    71.42 |   83.33 |   80.98 | ...86-200,316-354 
  ...utHelpers.tsx |   86.29 |     54.9 |   95.23 |   86.29 | ...87-788,809-837 
  ...ainContent.ts |   23.52 |      100 |       0 |   23.52 | 16-22,25-28,31-34 
 ...noninteractive |      75 |      100 |    6.66 |      75 |                   
  ...eractiveUi.ts |      75 |      100 |    6.66 |      75 | 17-19,23-24,27-28 
 src/ui/privacy    |   19.41 |        0 |       0 |   19.41 |                   
  ...acyNotice.tsx |       0 |        0 |       0 |       0 | 1-139             
  ...acyNotice.tsx |       0 |        0 |       0 |       0 | 1-59              
  ...acyNotice.tsx |   12.19 |      100 |       0 |   12.19 | 16-62             
  ...acyNotice.tsx |   35.42 |      100 |       0 |   35.42 | 77-172,180-235    
  ...acyNotice.tsx |   19.35 |      100 |       0 |   19.35 | 21-52,55-57       
 src/ui/reducers   |    79.5 |    91.66 |      50 |    79.5 |                   
  appReducer.ts    |     100 |      100 |     100 |     100 |                   
  ...ionReducer.ts |       0 |        0 |       0 |       0 | 1-52              
 src/ui/state      |   52.63 |    30.76 |      50 |   52.63 |                   
  extensions.ts    |   52.63 |    30.76 |      50 |   52.63 | ...28,130,134-149 
 src/ui/themes     |   99.04 |    85.65 |   97.61 |   99.04 |                   
  ansi-light.ts    |     100 |      100 |     100 |     100 |                   
  ansi.ts          |     100 |      100 |     100 |     100 |                   
  atom-one-dark.ts |     100 |      100 |     100 |     100 |                   
  ayu-light.ts     |     100 |      100 |     100 |     100 |                   
  ayu.ts           |     100 |      100 |     100 |     100 |                   
  color-utils.ts   |     100 |      100 |     100 |     100 |                   
  default-light.ts |     100 |      100 |     100 |     100 |                   
  default.ts       |     100 |      100 |     100 |     100 |                   
  dracula.ts       |     100 |      100 |     100 |     100 |                   
  github-dark.ts   |     100 |      100 |     100 |     100 |                   
  github-light.ts  |     100 |      100 |     100 |     100 |                   
  googlecode.ts    |     100 |      100 |     100 |     100 |                   
  green-screen.ts  |     100 |      100 |     100 |     100 |                   
  no-color.ts      |     100 |      100 |     100 |     100 |                   
  ...c-resolver.ts |     100 |      100 |     100 |     100 |                   
  ...tic-tokens.ts |     100 |      100 |     100 |     100 |                   
  ...-of-purple.ts |     100 |      100 |     100 |     100 |                   
  theme-compat.ts  |     100 |       50 |     100 |     100 | 79                
  theme-manager.ts |   88.55 |    82.81 |     100 |   88.55 | ...03-312,317-318 
  theme.ts         |   99.09 |     81.3 |   94.11 |   99.09 | 282-283,702-703   
  xcode.ts         |     100 |      100 |     100 |     100 |                   
 src/ui/types      |       0 |        0 |       0 |       0 |                   
  ...ngMetadata.ts |       0 |        0 |       0 |       0 |                   
 src/ui/utils      |    62.5 |    88.78 |    73.4 |    62.5 |                   
  ...Colorizer.tsx |    5.64 |      100 |       0 |    5.64 | ...27-168,180-249 
  ...olePatcher.ts |   72.09 |      100 |   83.33 |   72.09 | 50-61             
  ...nRenderer.tsx |   96.88 |    87.87 |     100 |   96.88 | ...69-271,275-277 
  ...wnDisplay.tsx |       5 |      100 |       0 |       5 | ...90-717,728-732 
  ...eRenderer.tsx |   11.17 |      100 |       0 |   11.17 | ...34-387,394-427 
  ...tGenerator.ts |   78.16 |    53.84 |      60 |   78.16 | ...61,67-70,82-83 
  ...ketedPaste.ts |      60 |      100 |       0 |      60 | 13-14,17-18       
  clipboard.ts     |   97.29 |    84.61 |     100 |   97.29 | 40                
  ...boardUtils.ts |   62.28 |    76.74 |   83.33 |   62.28 | ...52-266,336-338 
  commandUtils.ts  |   93.02 |    94.44 |   96.15 |   93.02 | ...31-235,316-324 
  computeStats.ts  |     100 |      100 |     100 |     100 |                   
  displayUtils.ts  |     100 |      100 |     100 |     100 |                   
  formatters.ts    |   90.47 |    95.23 |     100 |   90.47 | 57-60             
  fuzzyFilter.ts   |     100 |    96.55 |     100 |     100 | 84                
  highlight.ts     |   77.69 |    97.29 |      60 |   77.69 | 146-172,176-181   
  ...xportUtils.ts |   98.47 |    92.85 |     100 |   98.47 | 139-140           
  ...storyItems.ts |   99.08 |    94.59 |     100 |   99.08 | 79                
  input.ts         |   84.28 |    94.44 |   66.66 |   84.28 | 73-80,106-113     
  isNarrowWidth.ts |      50 |      100 |       0 |      50 | 13-14             
  ...nUtilities.ts |   66.66 |     87.5 |     100 |   66.66 | 75-94,103-104     
  modelIdentity.ts |   99.23 |    98.18 |   84.61 |   99.23 | 169               
  mouse.ts         |   83.05 |    72.41 |     100 |   83.05 | ...94,201,214-215 
  ...mConstants.ts |     100 |      100 |     100 |     100 |                   
  ...opDetector.ts |       0 |        0 |       0 |       0 | 1-210             
  responsive.ts    |   73.39 |    76.66 |   83.33 |   73.39 | ...00-108,111-125 
  rewindFileOps.ts |   92.34 |    71.79 |     100 |   92.34 | ...48-251,291-295 
  ...putHandler.ts |   94.44 |    91.12 |     100 |   94.44 | ...15-316,386-387 
  ...ityManager.ts |    94.9 |    85.71 |    90.9 |    94.9 | ...28,352,380,391 
  ...alContract.ts |     100 |      100 |     100 |     100 |                   
  terminalLinks.ts |     100 |      100 |     100 |     100 |                   
  ...colCleanup.ts |   95.23 |       75 |     100 |   95.23 | 38                
  ...lSequences.ts |     100 |      100 |     100 |     100 |                   
  terminalSetup.ts |   10.72 |      100 |    7.14 |   10.72 | 80-419            
  textUtils.ts     |   95.27 |    92.15 |   88.88 |   95.27 | 20-25             
  ...Formatters.ts |       0 |        0 |       0 |       0 | 1-50              
  ...icsTracker.ts |     100 |    94.44 |     100 |     100 | 38                
  ui-sizing.ts     |      16 |      100 |       0 |      16 | 11-23,26-36       
  updateCheck.ts   |     100 |    94.11 |     100 |     100 | 34,45             
 src/utils         |   61.75 |    88.96 |    74.9 |   61.75 |                   
  ...ionContext.ts |   76.92 |       75 |     100 |   76.92 | 38-41,63-66,81-84 
  ...Formatting.ts |     100 |      100 |     100 |     100 |                   
  bootstrap.ts     |     100 |      100 |     100 |     100 |                   
  checks.ts        |   33.33 |      100 |       0 |   33.33 | 23-28             
  cleanup.ts       |   67.74 |       80 |      60 |   67.74 | ...66-68,71,85-94 
  coalesce.ts      |     100 |      100 |     100 |     100 |                   
  commands.ts      |   51.78 |    71.42 |     100 |   51.78 | 25-26,57-85       
  commentJson.ts   |    92.3 |     92.5 |     100 |    92.3 | 94-102            
  ...ScopeUtils.ts |   27.58 |      100 |       0 |   27.58 | 24-41,58-86       
  ...icSettings.ts |   88.07 |     87.5 |     100 |   88.07 | ...70,82-85,88-91 
  ...arResolver.ts |   96.72 |    96.42 |     100 |   96.72 | 118-119           
  errors.ts        |   94.87 |       88 |     100 |   94.87 | 53-54,95-96       
  events.ts        |     100 |      100 |     100 |     100 |                   
  ...lativeTime.ts |     100 |      100 |     100 |     100 |                   
  gitUtils.ts      |   93.54 |       85 |     100 |   93.54 | 61-62,77-80       
  ...AutoUpdate.ts |   69.37 |    80.76 |   77.77 |   69.37 | ...67-268,282-347 
  ...lationInfo.ts |   99.49 |     98.3 |     100 |   99.49 | 58                
  math.ts          |   66.66 |      100 |       0 |   66.66 | 15                
  ...stentState.ts |   95.31 |    84.21 |     100 |   95.31 | 42,63-64          
  readStdin.ts     |   81.03 |    91.66 |   83.33 |   81.03 | 32-39,51-53       
  relaunch.ts      |     100 |      100 |     100 |     100 |                   
  resolvePath.ts   |   66.66 |       25 |     100 |   66.66 | 12-13,16,18-19    
  ...containers.ts |    4.69 |      100 |       0 |    4.69 | ...35-655,659-685 
  ...entrypoint.ts |    9.87 |      100 |       0 |    9.87 | 19-48,51-100      
  sandbox-env.ts   |   74.65 |    77.14 |   66.66 |   74.65 | ...52-153,161-162 
  sandbox-exec.ts  |     4.6 |      100 |       0 |     4.6 | 51-392            
  sandbox-image.ts |    3.96 |      100 |       0 |    3.96 | 12-128            
  ...box-podman.ts |   74.59 |    94.73 |   77.77 |   74.59 | ...49-259,325-398 
  ...x-seatbelt.ts |     8.2 |      100 |       0 |     8.2 | 34-310            
  sandbox-ssh.ts   |   78.84 |    81.13 |     100 |   78.84 | ...06-307,371-375 
  sandbox.ts       |   13.23 |      100 |       0 |   13.23 | 47-111            
  ...st-helpers.ts |     100 |      100 |     100 |     100 |                   
  ...ionCleanup.ts |   88.34 |    83.11 |     100 |   88.34 | ...47-248,331-332 
  sessionUtils.ts  |    8.86 |      100 |       0 |    8.86 | 52-122,129-143    
  settingsUtils.ts |   85.67 |    91.34 |   94.28 |   85.67 | ...61-489,528-529 
  ...ttingSaver.ts |    1.92 |      100 |       0 |    1.92 | 11-32,40-85       
  skillSettings.ts |   86.13 |       88 |     100 |   86.13 | 99-107,134-138    
  skillUtils.ts    |   71.33 |    70.96 |   83.33 |   71.33 | ...88-189,203-224 
  spawnWrapper.ts  |     100 |      100 |     100 |     100 |                   
  ...upWarnings.ts |     100 |      100 |     100 |     100 |                   
  stdinSafety.ts   |   91.39 |    86.48 |     100 |   91.39 | ...66-167,170,245 
  terminalTheme.ts |     100 |      100 |     100 |     100 |                   
  typeGuards.ts    |   65.38 |      100 |      75 |   65.38 | 26-34             
  ...entEmitter.ts |     100 |      100 |     100 |     100 |                   
  ...upWarnings.ts |     100 |      100 |     100 |     100 |                   
  version.ts       |     100 |      100 |     100 |     100 |                   
  windowTitle.ts   |     100 |      100 |     100 |     100 |                   
 src/utils/privacy |   66.15 |       70 |   76.19 |   66.15 |                   
  ...taRedactor.ts |   81.91 |    71.42 |      80 |   81.91 | ...08-610,616-637 
  ...acyManager.ts |       0 |        0 |       0 |       0 | 1-176             
 ...ed-integration |    9.67 |     92.3 |    9.23 |    9.67 |                   
  ...temService.ts |     100 |      100 |     100 |     100 |                   
  ...tent-utils.ts |    6.38 |      100 |       0 |    6.38 | ...9,62-75,78-124 
  zed-helpers.ts   |   20.76 |      100 |      25 |   20.76 | ...79-128,131-148 
  ...h-resolver.ts |    4.69 |      100 |       0 |    4.69 | ...70-505,508-532 
  ...vider-auth.ts |    3.11 |      100 |       0 |    3.11 | ...15-222,225-285 
  ...ol-handler.ts |     5.1 |      100 |       0 |     5.1 | ...85-305,308-361 
  ...ntegration.ts |   11.88 |       80 |       8 |   11.88 | ...43-646,649-655 
-------------------|---------|----------|---------|---------|-------------------
Core Package - Full Text Report
-------------------|---------|----------|---------|---------|-------------------
File               | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-------------------|---------|----------|---------|---------|-------------------
All files          |   78.01 |     83.7 |   75.22 |   78.01 |                   
 src               |     100 |      100 |     100 |     100 |                   
  ...-factories.ts |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
 src/__mocks__/fs  |       0 |        0 |       0 |       0 |                   
  promises.ts      |       0 |        0 |       0 |       0 | 1-48              
 src/adapters      |     100 |      100 |     100 |     100 |                   
  ...eamAdapter.ts |     100 |      100 |     100 |     100 |                   
 src/code_assist   |   69.18 |    80.63 |   78.12 |   69.18 |                   
  codeAssist.ts    |   11.76 |      100 |       0 |   11.76 | 16-62,65-73,81-94 
  converter.ts     |   95.54 |    93.02 |     100 |   95.54 | 186-190,219-220   
  ...al-storage.ts |   95.86 |    79.48 |     100 |   95.86 | 27-28,86,110,139  
  oauth2.ts        |    64.9 |       78 |   81.81 |    64.9 | ...88-789,794-795 
  server.ts        |   48.16 |    72.72 |      50 |   48.16 | ...10-251,254-257 
  setup.ts         |   86.09 |    73.07 |     100 |   86.09 | ...57-159,183-189 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/commands      |     100 |      100 |     100 |     100 |                   
  extensions.ts    |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/config        |   70.72 |    78.92 |   58.63 |   70.72 |                   
  ...tLifecycle.ts |   95.36 |    94.59 |     100 |   95.36 | ...55-156,220-222 
  ...skServices.ts |    9.19 |      100 |       0 |    9.19 | ...5,62-80,89-129 
  config.ts        |      60 |    73.17 |   57.14 |      60 | ...37-746,771-778 
  configBase.ts    |   68.81 |    72.09 |   72.72 |   68.81 | ...48-255,257-261 
  ...igBaseCore.ts |   69.16 |    94.28 |      44 |   69.16 | ...88-789,791-792 
  ...onstructor.ts |   97.14 |    90.27 |     100 |   97.14 | ...16-517,520-521 
  ...estHarness.ts |   93.15 |    95.45 |   83.33 |   93.15 | 229-239,245-248   
  configTypes.ts   |      58 |      100 |      50 |      58 | 196-236           
  constants.ts     |     100 |      100 |     100 |     100 |                   
  ...ngsHelpers.ts |   62.16 |       40 |     100 |   62.16 | ...31,35-36,42-43 
  index.ts         |       0 |        0 |       0 |       0 | 1-41              
  ...ntegration.ts |   63.22 |    75.47 |   73.68 |   63.22 | ...12,429,438,447 
  models.ts        |     100 |      100 |     100 |     100 |                   
  ...rSingleton.ts |   76.22 |    70.37 |   56.25 |   76.22 | ...94,397-400,408 
  ...entManager.ts |   50.76 |    68.91 |   65.21 |   50.76 | ...52-653,679-703 
  ...ingsParser.ts |   41.37 |    33.33 |     100 |   41.37 | 31-48             
  ...tryFactory.ts |   84.69 |    76.92 |   69.23 |   84.69 | ...62,478,496-512 
  types.ts         |       0 |        0 |       0 |       0 |                   
 ...nfirmation-bus |   83.33 |       50 |      50 |   83.33 |                   
  index.ts         |       0 |        0 |       0 |       0 | 1-2               
  message-bus.ts   |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/core          |   80.82 |    77.28 |   81.25 |   80.82 |                   
  ...ssionTypes.ts |   68.42 |       75 |      20 |   68.42 | ...05-107,112-113 
  ...ntContract.ts |     100 |      100 |     100 |     100 |                   
  ...tGenerator.ts |     100 |    96.15 |     100 |     100 | 94                
  ...okTriggers.ts |   47.39 |     61.9 |   66.66 |   47.39 | ...51,253,299-304 
  geminiRequest.ts |      60 |      100 |       0 |      60 | 18-19             
  ...nAIWrapper.ts |   77.77 |      100 |   66.66 |   77.77 | 58-61,64-67       
  ...igBoundary.ts |       0 |        0 |       0 |       0 | 1                 
  ...okTriggers.ts |   96.09 |    84.37 |     100 |   96.09 | ...23,162,209,251 
  logger.ts        |   79.23 |    80.19 |   94.44 |   79.23 | ...35-449,492-501 
  prompts.ts       |   82.85 |     58.9 |    91.3 |   82.85 | ...55,558,619-620 
  subagentTypes.ts |   83.11 |    68.42 |   77.77 |   83.11 | ...01-302,317-318 
  tokenLimits.ts   |     100 |      100 |     100 |     100 |                   
  ...erContract.ts |     100 |      100 |     100 |     100 |                   
  turn.ts          |     100 |      100 |     100 |     100 |                   
 ...re/compression |   33.55 |       40 |   16.66 |   33.55 |                   
  ...nDirective.ts |    6.25 |      100 |       0 |    6.25 | 22-62             
  types.ts         |   41.02 |       40 |      20 |   41.02 | ...43-377,388-389 
 src/debug         |   61.53 |        0 |       0 |   61.53 |                   
  ...ionManager.ts |     100 |      100 |     100 |     100 |                   
  DebugLogger.ts   |     100 |      100 |     100 |     100 |                   
  FileOutput.ts    |     100 |      100 |     100 |     100 |                   
  ...ionManager.ts |       0 |        0 |       0 |       0 | 1-6               
  ...FileOutput.ts |       0 |        0 |       0 |       0 | 1-6               
  index.ts         |     100 |      100 |     100 |     100 |                   
  types.ts         |       0 |        0 |       0 |       0 | 1                 
 src/filters       |   97.79 |    95.58 |     100 |   97.79 |                   
  EmojiFilter.ts   |   97.79 |    95.58 |     100 |   97.79 | ...55-156,363-364 
 src/hooks         |   83.11 |       85 |   80.72 |   83.11 |                   
  errors.ts        |     100 |      100 |     100 |     100 |                   
  ...Aggregator.ts |    90.4 |    81.33 |    87.5 |    90.4 | ...50,369,371,373 
  ...sContracts.ts |       0 |        0 |       0 |       0 | 1                 
  ...entHandler.ts |   91.43 |     87.3 |   93.75 |   91.43 | ...50,782-788,833 
  hookPlanner.ts   |   98.79 |    93.33 |     100 |   98.79 | 103               
  hookRegistry.ts  |   97.19 |    88.31 |     100 |   97.19 | ...97,399,401,403 
  hookRunner.ts    |   84.88 |    87.14 |   86.95 |   84.88 | ...37-439,502-505 
  hookSystem.ts    |    64.2 |    88.88 |      65 |    64.2 | ...49-351,364-366 
  ...Translator.ts |   93.96 |    68.08 |     100 |   93.96 | ...06-307,318,367 
  ...Validators.ts |    92.4 |    89.83 |     100 |    92.4 | 57-59,78-80       
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...ssion-hook.ts |   88.88 |    33.33 |     100 |   88.88 | 24,30             
  trustedHooks.ts  |   20.77 |        0 |       0 |   20.77 | ...6,82-90,96-109 
  types.ts         |    53.2 |     87.5 |      52 |    53.2 | ...36-437,448-449 
 ...oks/test-utils |       0 |        0 |       0 |       0 |                   
  ...igWithHook.ts |       0 |        0 |       0 |       0 | 1-137             
 src/interfaces    |       0 |        0 |       0 |       0 |                   
  index.ts         |       0 |        0 |       0 |       0 |                   
  ....interface.ts |       0 |        0 |       0 |       0 |                   
 src/models        |    83.7 |    92.41 |    87.5 |    83.7 |                   
  hydration.ts     |    4.76 |      100 |       0 |    4.76 | 65-129,151-231    
  index.ts         |     100 |      100 |     100 |     100 |                   
  profiles.ts      |     100 |      100 |     100 |     100 |                   
  ...ntegration.ts |   95.34 |    89.74 |     100 |   95.34 | ...36-137,200-201 
  registry.ts      |    91.4 |    88.88 |      92 |    91.4 | ...72-273,392-403 
  schema.ts        |     100 |      100 |     100 |     100 |                   
  transformer.ts   |     100 |      100 |     100 |     100 |                   
 src/parsers       |   80.75 |    80.71 |   92.85 |   80.75 |                   
  ...CallParser.ts |   84.59 |     80.4 |    92.3 |   84.59 | ...09-810,813-814 
  ...rg-parsing.ts |   83.37 |    85.71 |   90.47 |   83.37 | ...23-425,501-502 
  ...ll-helpers.ts |   73.94 |     79.5 |   92.85 |   73.94 | ...07-508,514-535 
  ...rser-utils.ts |      76 |    73.33 |     100 |      76 | ...09-110,114-119 
 src/policy        |    72.9 |    76.19 |   88.46 |    72.9 |                   
  config.ts        |   68.06 |    77.19 |   86.36 |   68.06 | ...25,381,458-459 
  index.ts         |     100 |      100 |     100 |     100 |                   
  policy-engine.ts |     100 |      100 |     100 |     100 |                   
  ...cy-helpers.ts |   88.88 |    66.66 |     100 |   88.88 | 31-39             
  ...-stringify.ts |     100 |      100 |     100 |     100 |                   
  toml-loader.ts   |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
  utils.ts         |     100 |      100 |     100 |     100 |                   
 src/prompt-config |   82.64 |    87.55 |   82.35 |   82.64 |                   
  ...lateEngine.ts |    94.7 |    89.24 |     100 |    94.7 | ...32-435,446-449 
  index.ts         |       0 |      100 |     100 |       0 | 5-41              
  prompt-cache.ts  |    99.1 |    97.43 |     100 |    99.1 | 236-237           
  ...-installer.ts |   83.82 |    81.87 |    92.3 |   83.82 | ...24-831,863-866 
  prompt-loader.ts |   90.93 |    92.56 |   89.65 |   90.93 | ...15-532,542-543 
  ...t-resolver.ts |   50.38 |       84 |      50 |   50.38 | ...22-423,428-527 
  ...pt-service.ts |   85.32 |    83.18 |   80.95 |   85.32 | ...28,545-552,583 
  ...delegation.ts |   93.54 |     90.9 |     100 |   93.54 | 34-35             
  types.ts         |     100 |      100 |     100 |     100 |                   
 ...onfig/defaults |   56.45 |    46.03 |   85.41 |   56.45 |                   
  core-defaults.ts |      48 |     41.5 |   78.57 |      48 | ...55,365,371-379 
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...est-loader.ts |   81.81 |       80 |     100 |   81.81 | ...02-108,116-120 
  ...t-warnings.ts |    92.3 |    33.33 |     100 |    92.3 | 18-19             
  ...r-defaults.ts |   52.51 |    35.29 |   84.61 |   52.51 | ...24,334,340-345 
  ...e-defaults.ts |     100 |      100 |     100 |     100 |                   
  tool-defaults.ts |   56.05 |     42.3 |   84.61 |   56.05 | ...82-283,295-300 
 ...nfig/installer |   92.11 |    87.63 |   97.61 |   92.11 |                   
  ...resolution.ts |   96.63 |    92.45 |     100 |   96.63 | ...70-271,317-318 
  ...tory-utils.ts |   95.42 |    90.38 |     100 |   95.42 | ...14-117,154,175 
  file-writer.ts   |   78.78 |    73.68 |     100 |   78.78 | 31-32,51-52,69-78 
  ...operations.ts |   97.46 |    94.44 |     100 |   97.46 | 48-49             
  ...-expansion.ts |   82.67 |    81.81 |      90 |   82.67 | ...,70-71,165-172 
 ...onfig/resolver |   36.86 |    60.86 |   51.85 |   36.86 |                   
  ...ry-scanner.ts |    4.04 |      100 |       0 |    4.04 | ...98-159,163-207 
  fs-adapter.ts    |   39.06 |    66.66 |      50 |   39.06 | ...37,42-47,51-88 
  name-utils.ts    |   71.69 |       60 |   78.57 |   71.69 | ...03-204,208-218 
 src/prompts       |      30 |      100 |      25 |      30 |                   
  mcp-prompts.ts   |   28.57 |      100 |       0 |   28.57 | 11-15             
  ...t-registry.ts |   30.23 |      100 |   28.57 |   30.23 | ...43,49-56,69-74 
 src/recording     |    90.2 |     86.2 |   98.09 |    90.2 |                   
  ...ntegration.ts |    83.9 |       75 |     100 |    83.9 | ...31-132,143-144 
  ReplayEngine.ts  |   95.78 |       91 |     100 |   95.78 | ...37-342,502-509 
  ...nDiscovery.ts |   91.62 |    87.75 |     100 |   91.62 | ...44-345,360-361 
  ...ockManager.ts |   86.24 |    83.33 |     100 |   86.24 | ...18,233,260-261 
  ...ingService.ts |   82.97 |    92.45 |   95.65 |   82.97 | ...57,390-391,395 
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...st-helpers.ts |   91.12 |       90 |   92.85 |   91.12 | 190-200,227-230   
  resumeSession.ts |   93.19 |    89.65 |     100 |   93.19 | ...10-215,246-247 
  ...eanupUtils.ts |      90 |    69.23 |     100 |      90 | ...40-241,267,280 
  ...Management.ts |   88.23 |    85.71 |     100 |   88.23 | 94,108-112        
  types.ts         |       0 |        0 |       0 |       0 |                   
 src/resources     |   95.23 |     92.3 |     100 |   95.23 |                   
  ...e-registry.ts |   95.23 |     92.3 |     100 |   95.23 | 34-35             
 src/runtime       |   82.53 |    86.69 |   81.25 |   82.53 |                   
  ...imeContext.ts |     100 |      100 |     100 |     100 |                   
  ...timeLoader.ts |   86.85 |    73.68 |   81.81 |   86.85 | ...14,218,244-247 
  ...ntimeState.ts |   95.66 |    90.78 |     100 |   95.66 | ...03-504,544-545 
  ...ionContext.ts |   83.54 |    93.33 |   71.42 |   83.54 | ...55-156,167-174 
  ...imeContext.ts |   76.04 |    98.14 |   62.06 |   76.04 | ...98-303,305-312 
  index.ts         |       0 |        0 |       0 |       0 | 1-19              
  ...imeContext.ts |      70 |       90 |     100 |      70 | 88-108            
  ...meAdapters.ts |   66.66 |    95.23 |    92.3 |   66.66 | 77-111            
  ...ateFactory.ts |   90.32 |    71.42 |     100 |   90.32 | ...79,102,112,125 
  ...imeAdapter.ts |   80.55 |    86.66 |   88.88 |   80.55 | 52-59,67-68,71-76 
 ...time/contracts |       0 |        0 |       0 |       0 |                   
  ...lureReason.ts |       0 |        0 |       0 |       0 | 1                 
  ...kContracts.ts |       0 |        0 |       0 |       0 | 1                 
  ...ningOutput.ts |       0 |        0 |       0 |       0 | 1                 
  ...torFactory.ts |       0 |        0 |       0 |       0 | 1                 
  RuntimeModel.ts  |       0 |        0 |       0 |       0 | 1                 
  ...meProvider.ts |       0 |        0 |       0 |       0 | 1                 
  ...oviderChat.ts |       0 |        0 |       0 |       0 | 1                 
  ...derManager.ts |       0 |        0 |       0 |       0 | 1                 
  ...eTokenizer.ts |       0 |        0 |       0 |       0 | 1                 
  ...zerFactory.ts |       0 |        0 |       0 |       0 | 1                 
  ...tryContext.ts |       0 |        0 |       0 |       0 | 1                 
  index.ts         |       0 |        0 |       0 |       0 | 1                 
 ...runtime/errors |   94.87 |    85.71 |   66.66 |   94.87 |                   
  ...viderError.ts |     100 |      100 |     100 |     100 |                   
  index.ts         |       0 |        0 |       0 |       0 | 1-14              
 src/safety        |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  pathValidator.ts |     100 |      100 |     100 |     100 |                   
 src/scheduler     |       0 |        0 |       0 |       0 |                   
  types.ts         |       0 |        0 |       0 |       0 | 1                 
 src/services      |   84.74 |    86.28 |   88.83 |   84.74 |                   
  ...ardService.ts |   94.23 |    93.75 |     100 |   94.23 | 70,74-75          
  ...utoTrigger.ts |   97.33 |    95.83 |     100 |   97.33 | 127-128           
  ...askManager.ts |   95.81 |    93.93 |     100 |   95.81 | 151-157,365-366   
  ...derService.ts |   98.98 |    97.05 |     100 |   98.98 | 173               
  ...y-analyzer.ts |   83.51 |    79.85 |   87.09 |   83.51 | ...13-641,647-648 
  ...extManager.ts |     100 |    96.29 |     100 |     100 | 63                
  ...nitization.ts |    98.7 |    96.87 |     100 |    98.7 | 172-173           
  ...eryService.ts |     100 |      100 |     100 |     100 |                   
  ...temService.ts |     100 |      100 |     100 |     100 |                   
  ...ts-service.ts |      50 |      100 |       0 |      50 | 41-42,48-49       
  gitService.ts    |   86.72 |    86.95 |      80 |   86.72 | ...34-137,141-145 
  index.ts         |       0 |        0 |       0 |       0 | 1-23              
  ...ionService.ts |   96.43 |    95.08 |     100 |   96.43 | ...27-428,438-439 
  ...pExecution.ts |   88.42 |    78.57 |   83.33 |   88.42 | 65-66,92-100      
  ...lCpHelpers.ts |   87.83 |    87.75 |     100 |   87.83 | ...91,194,253-259 
  ...ionService.ts |   71.21 |    88.23 |    62.5 |   71.21 | ...83-306,365-378 
  ...utionTypes.ts |       0 |        0 |       0 |       0 | 1                 
  ...lExitGuard.ts |     100 |      100 |     100 |     100 |                   
  ...utputUtils.ts |   95.65 |    95.23 |     100 |   95.65 | 34-35             
  ...rocessKill.ts |   88.57 |    88.88 |     100 |   88.57 | 38-41             
  ...yExecution.ts |   96.15 |    93.33 |     100 |   96.15 | 110-111,132-134   
  ...PtyHelpers.ts |   87.03 |    76.19 |    87.5 |   87.03 | ...22,153-154,210 
  ...yLifecycle.ts |   87.68 |    78.12 |   94.73 |   87.68 | ...21,324,378-380 
  shellPtyState.ts |       0 |        0 |       0 |       0 | 1                 
  ...xt-tracker.ts |   94.87 |    88.88 |   85.71 |   94.87 | 54-55             
  ...er-service.ts |       0 |        0 |       0 |       0 | 1-161             
  ...er-service.ts |   68.47 |    48.48 |      80 |   68.47 | ...85-289,311-314 
 ...rvices/history |   82.58 |    84.98 |    87.5 |   82.58 |                   
  ...Converters.ts |   83.29 |    81.96 |   81.81 |   83.29 | ...51-452,558-581 
  HistoryEvents.ts |       0 |        0 |       0 |       0 |                   
  ...oryService.ts |    85.3 |     88.6 |   86.79 |    85.3 | ...03-704,783-784 
  IContent.ts      |    89.7 |       76 |     100 |    89.7 | ...40,250-251,262 
  ...calToolIds.ts |   96.87 |    93.33 |     100 |   96.87 | 36-37             
  ...ebugLogger.ts |   62.41 |       68 |   85.71 |   62.41 | ...33-145,158-162 
  ...Validation.ts |     100 |      100 |     100 |     100 |                   
  ...CloneUtils.ts |   73.07 |    88.46 |   83.33 |   73.07 | ...98-101,106-118 
  ...textWindow.ts |   91.42 |    55.55 |     100 |   91.42 | 59,61-62          
  ...ryCuration.ts |     100 |      100 |     100 |     100 |                   
  ...EventTypes.ts |       0 |        0 |       0 |       0 |                   
  ...erPipeline.ts |     100 |      100 |     100 |     100 |                   
  historyQuery.ts  |   63.63 |       50 |     100 |   63.63 | 27-30             
  ...Estimation.ts |   44.68 |    82.14 |      50 |   44.68 | ...87-196,202-251 
  ...zerAdapter.ts |     100 |     87.5 |     100 |     100 | 73                
  ...malization.ts |    91.7 |    87.12 |     100 |    91.7 | ...26-431,477-485 
  ...oolPairing.ts |   98.59 |     87.5 |     100 |   98.59 | 103               
 src/skills        |   73.86 |       80 |   77.14 |   73.86 |                   
  skillLoader.ts   |   59.42 |    78.94 |   76.92 |   59.42 | ...16-351,363-373 
  skillManager.ts  |   89.68 |    80.88 |   77.27 |   89.68 | ...94-395,401-402 
 src/storage       |   98.69 |    96.87 |     100 |   98.69 |                   
  ...FileWriter.ts |     100 |      100 |     100 |     100 |                   
  ...nceService.ts |   98.65 |    96.87 |     100 |   98.65 | 291-292           
  ...ey-storage.ts |     100 |      100 |     100 |     100 |                   
  secure-store.ts  |     100 |      100 |     100 |     100 |                   
  sessionTypes.ts  |     100 |      100 |     100 |     100 |                   
 src/telemetry     |   15.45 |        0 |       0 |   15.45 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  ...-exporters.ts |       0 |        0 |       0 |       0 | 1-6               
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...t.circular.ts |       0 |        0 |       0 |       0 | 1-17              
  ...t.circular.ts |       0 |        0 |       0 |       0 | 1-110             
  loggers.ts       |     100 |      100 |     100 |     100 |                   
  metrics.ts       |     100 |      100 |     100 |     100 |                   
  sdk.ts           |     100 |      100 |     100 |     100 |                   
  ...l-decision.ts |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
  uiTelemetry.ts   |     100 |      100 |     100 |     100 |                   
 src/test-utils    |   53.21 |    58.82 |   20.86 |   53.21 |                   
  config.ts        |   83.07 |    85.71 |   15.21 |   83.07 | ...,91-96,173-176 
  index.ts         |       0 |        0 |       0 |       0 | 1-9               
  mock-tool.ts     |       0 |        0 |       0 |       0 | 1-159             
  ...aceContext.ts |       0 |        0 |       0 |       0 | 1-32              
  ...allOptions.ts |   81.62 |    51.61 |   54.54 |   81.62 | ...83,196,225-228 
  runtime.ts       |   47.03 |    33.33 |    8.82 |   47.03 | ...17-279,287-350 
  tools.ts         |   45.94 |    81.81 |   38.09 |   45.94 | ...15-227,230-237 
 src/todo          |   12.86 |      100 |       0 |   12.86 |                   
  todoFormatter.ts |   12.86 |      100 |       0 |   12.86 | ...03,206-219,222 
 src/tools         |   81.61 |    81.15 |      92 |   81.61 |                   
  ...ey-storage.ts |   81.61 |    81.15 |      92 |   81.61 | ...31-436,445-450 
 ...tools-adapters |   47.06 |    73.56 |   36.52 |   47.06 |                   
  ...iceAdapter.ts |   61.22 |    83.33 |    62.5 |   61.22 | ...52,55-60,65-68 
  ...iceAdapter.ts |   27.58 |      100 |      40 |   27.58 | 21-26,29-37,40-45 
  ...iceAdapter.ts |   22.58 |      100 |      40 |   22.58 | 18-25,28-43,46-47 
  ...iceAdapter.ts |      30 |      100 |       0 |      30 | 16-18,21-22,25-33 
  ...BusAdapter.ts |   73.07 |     90.9 |   81.81 |   73.07 | ...02-126,145-151 
  ...iceAdapter.ts |      60 |      100 |       0 |      60 | ...27,36-37,40-41 
  ...iceAdapter.ts |   53.84 |      100 |      40 |   53.84 | 17-18,21-22,26-27 
  ...ostAdapter.ts |   19.33 |      100 |    8.69 |   19.33 | ...25-241,244-246 
  ...iceAdapter.ts |   15.58 |      100 |       0 |   15.58 | ...9,82-84,87-102 
  ...iceAdapter.ts |   52.94 |      100 |       0 |   52.94 | ...18,21-22,25-26 
  ...iceAdapter.ts |    52.5 |    67.02 |   65.51 |    52.5 | ...43-886,891-894 
  ...iceAdapter.ts |   68.18 |       50 |      50 |   68.18 | 32-36,39-40       
  ...ostAdapter.ts |   30.18 |      100 |   13.04 |   30.18 | ...45-151,154-155 
  ...ageAdapter.ts |   46.15 |      100 |       0 |   46.15 | ...33,36-37,40-41 
  ...ostAdapter.ts |   67.74 |      100 |   54.54 |   67.74 | ...57,60-61,64-65 
  ...iceAdapter.ts |      50 |      100 |   66.66 |      50 | 19-23             
  ...iceHelpers.ts |    56.2 |       50 |      70 |    56.2 | ...90-191,195-196 
  index.ts         |     100 |      100 |     100 |     100 |                   
 src/utils         |   84.21 |    86.79 |   85.64 |   84.21 |                   
  LruCache.ts      |    82.6 |      100 |   71.42 |    82.6 | 29-30,33-34       
  ...grep-utils.ts |   98.03 |     87.5 |     100 |   98.03 | 137-138           
  asyncIterator.ts |   73.07 |    84.61 |   66.66 |   73.07 | ...71,75-86,93-94 
  bfsFileSearch.ts |   93.61 |    92.85 |     100 |   93.61 | 36-44             
  browser.ts       |    8.69 |      100 |       0 |    8.69 | 17-53             
  bunPtyAdapter.ts |   88.76 |    84.78 |   84.21 |   88.76 | ...27-532,551-554 
  channel.ts       |     100 |      100 |     100 |     100 |                   
  ...pointUtils.ts |      95 |    91.66 |     100 |      95 | 142-149           
  debugLogger.ts   |     100 |      100 |     100 |     100 |                   
  delay.ts         |     100 |      100 |     100 |     100 |                   
  editor.ts        |   95.47 |    90.38 |    90.9 |   95.47 | ...38-239,241-242 
  ...entContext.ts |     100 |      100 |     100 |     100 |                   
  errorParsing.ts  |   92.12 |     87.5 |   95.65 |   92.12 | ...87,218,302-303 
  ...rReporting.ts |   82.35 |       75 |     100 |   82.35 | ...41-143,151-156 
  errors.ts        |   74.67 |    95.12 |      50 |   74.67 | ...27-128,189-213 
  events.ts        |   67.54 |      100 |    64.7 |   67.54 | ...41-346,352-355 
  exitCodes.ts     |     100 |      100 |     100 |     100 |                   
  ...sionLoader.ts |   80.98 |    63.88 |   92.85 |   80.98 | ...70-171,224-232 
  fetch.ts         |   24.32 |        0 |       0 |   24.32 | 23-28,32-86,89-90 
  fileDiffUtils.ts |   94.87 |     90.9 |     100 |   94.87 | 25-26             
  fileUtils.ts     |   93.83 |    90.06 |   95.23 |   93.83 | ...85,454,488-494 
  formatters.ts    |   18.18 |      100 |       0 |   18.18 | 8-16              
  ...eUtilities.ts |   91.28 |       90 |   93.75 |   91.28 | ...98-302,350-360 
  ...rStructure.ts |   95.57 |    94.59 |     100 |   95.57 | ...15-216,376-381 
  getPty.ts        |   73.07 |       75 |      50 |   73.07 | 43-49             
  ...noreParser.ts |     100 |      100 |     100 |     100 |                   
  ...ineChanges.ts |       0 |        0 |       0 |       0 | 1-348             
  gitUtils.ts      |   42.55 |    71.42 |      50 |   42.55 | 32-33,40-44,53-80 
  googleErrors.ts  |   77.01 |    73.21 |     100 |   77.01 | ...08,346-347,364 
  ...uotaErrors.ts |   94.94 |    87.25 |     100 |   94.94 | ...76-277,315-316 
  ide-trust.ts     |      60 |      100 |       0 |      60 | 14-15             
  ...rePatterns.ts |     100 |    96.55 |     100 |     100 | 257               
  ...ionManager.ts |     100 |    88.88 |     100 |     100 | 24                
  ...edit-fixer.ts |       0 |        0 |       0 |       0 | 1-156             
  ...yDiscovery.ts |   83.84 |    79.71 |   82.35 |   83.84 | ...42-743,757-768 
  ...tProcessor.ts |   97.19 |    91.86 |   94.44 |   97.19 | ...11-312,406-407 
  ...Inspectors.ts |       0 |        0 |       0 |       0 | 1-23              
  output-format.ts |      40 |      100 |      25 |      40 | ...53-154,164-185 
  package.ts       |     100 |      100 |     100 |     100 |                   
  ...erCoercion.ts |   80.89 |       80 |     100 |   80.89 | ...47-348,351-352 
  partUtils.ts     |   96.87 |    94.87 |     100 |   96.87 | 101-102           
  pathReader.ts    |   22.58 |      100 |       0 |   22.58 | ...22,28-29,41-60 
  paths.ts         |   84.35 |    85.54 |   78.94 |   84.35 | ...91-292,307-317 
  ...rDetection.ts |   52.05 |    78.94 |   83.33 |   52.05 | ...03-104,114-115 
  ...archTarget.ts |   89.58 |    69.23 |     100 |   89.58 | 45-47,65-66       
  retry.ts         |    83.7 |    86.85 |   92.59 |    83.7 | ...68-971,976-977 
  ...thResolver.ts |     100 |      100 |     100 |     100 |                   
  runtime.ts       |     100 |      100 |     100 |     100 |                   
  ...nStringify.ts |     100 |      100 |     100 |     100 |                   
  sanitization.ts  |     100 |      100 |     100 |     100 |                   
  ...aValidator.ts |   91.22 |    76.36 |     100 |   91.22 | ...51-352,368-379 
  ...r-launcher.ts |   90.29 |    81.81 |     100 |   90.29 | ...92,210,212-213 
  session.ts       |     100 |      100 |     100 |     100 |                   
  shell-parser.ts  |   88.07 |    80.53 |     100 |   88.07 | ...03-604,673-674 
  shell-utils.ts   |   85.99 |     92.7 |      88 |   85.99 | ...44-645,807-815 
  ...Completion.ts |   94.21 |    92.15 |     100 |   94.21 | 71-77             
  stdio.ts         |   83.83 |    56.52 |     100 |   83.83 | ...25-129,138-142 
  ...dleTimeout.ts |   97.59 |    93.54 |     100 |   97.59 | 59-60             
  summarizer.ts    |      98 |       90 |     100 |      98 | 92                
  ...emEncoding.ts |   94.96 |    88.88 |     100 |   94.96 | ...10,142-143,197 
  terminal.ts      |   34.09 |      100 |       0 |   34.09 | ...55,58-59,62-66 
  ...Serializer.ts |    98.2 |    92.75 |     100 |    98.2 | ...,98-99,181-183 
  testUtils.ts     |      50 |      100 |   33.33 |      50 | ...47,53-58,64-66 
  textUtils.ts     |    12.5 |      100 |       0 |    12.5 | 15-34             
  thoughtUtils.ts  |     100 |      100 |     100 |     100 |                   
  tool-utils.ts    |   68.64 |    77.77 |      80 |   68.64 | ...34-135,156-180 
  ...putLimiter.ts |   95.14 |    81.63 |     100 |   95.14 | ...5-66,78-79,113 
  unicodeUtils.ts  |     100 |      100 |     100 |     100 |                   
  ...untManager.ts |   88.52 |    86.48 |     100 |   88.52 | ...,83-88,104-106 
  version.ts       |     100 |      100 |     100 |     100 |                   
  ...aceContext.ts |   96.85 |    95.23 |    92.3 |   96.85 | 95-96,110-111     
 ...ils/filesearch |   89.81 |    91.52 |   94.59 |   89.81 |                   
  crawlCache.ts    |     100 |      100 |     100 |     100 |                   
  crawler.ts       |    84.9 |    85.71 |   66.66 |    84.9 | ...12-114,128-133 
  fileSearch.ts    |   86.48 |    89.21 |     100 |   86.48 | ...11-312,360-361 
  ignore.ts        |     100 |      100 |     100 |     100 |                   
  result-cache.ts  |     100 |      100 |     100 |     100 |                   
-------------------|---------|----------|---------|---------|-------------------

For detailed HTML reports, please see the 'coverage-reports-24.x-ubuntu-latest' artifact from the main CI run.

package-lock.json retained stale nested @types/node@20.19.33 installs for
packages/cli and packages/vscode-ide-companion even though their manifests
declare ^24.2.1. This caused npm ci to silently install Node 20 type
definitions for those workspaces while the root hoisted entry was already
24.13.2 — so typecheck/build were validating against the wrong @types/node
in both local and CI environments.

Remove the four stale nested lockfile entries (2x @types/node + their
undici-types deps). Both workspaces now hoist to the root @types/node@24.13.2,
which satisfies ^24.2.1. Also align the root devDependency range from
^24.0.13 to ^24.2.1 for consistency with all workspace packages.

Verified: check:lockfile passes, typecheck + build pass against @types/node@24.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/build-sandbox.yml:
- Around line 48-51: Disable the implicit npm cache in the build-sandbox publish
job’s actions/setup-node step. Because package.json declares packageManager as
npm@11.6.2, setup-node will auto-enable caching unless explicitly turned off;
update the Set up Node.js configuration to set package-manager-cache to false so
this workflow does not introduce a cache-poisoning path.

In @.github/workflows/nightly.yml:
- Around line 156-172: The nightly workflow’s Checkout step is pinned to a
different actions/checkout commit than the other v5 usage, so the ratchet label
and code are inconsistent. Update the Checkout reference in the workflow to the
same actions/checkout@v5 pin used elsewhere, keeping the existing ratchet
annotation aligned with that pinned version.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: ec64950d-92f2-409f-809b-ca9c4bcbac14

📥 Commits

Reviewing files that changed from the base of the PR and between 921ff67 and abf36d2.

⛔ Files ignored due to path filters (2)
  • bun.lock is excluded by !**/*.lock
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (37)
  • .gcp/Dockerfile.gemini-code-builder
  • .github/workflows/build-sandbox.yml
  • .github/workflows/ci.yml
  • .github/workflows/e2e.yml
  • .github/workflows/evals-nightly.yml
  • .github/workflows/interactive-ui.yml
  • .github/workflows/luther.yml
  • .github/workflows/nightly.yml
  • .github/workflows/release.yml
  • .github/workflows/upstream-sync.yml
  • .nvmrc
  • CONTRIBUTING.md
  • Dockerfile
  • README.md
  • README_CN.md
  • dev-docs/PLAN.md
  • docs/getting-started.md
  • docs/tutorials/sandbox-setup.md
  • package.json
  • packages/a2a-server/package.json
  • packages/agents/package.json
  • packages/auth/package.json
  • packages/cli/package.json
  • packages/core/package.json
  • packages/ide-integration/package.json
  • packages/lsp/package.json
  • packages/mcp/package.json
  • packages/policy/package.json
  • packages/providers/package.json
  • packages/settings/package.json
  • packages/storage/package.json
  • packages/telemetry/package.json
  • packages/test-utils/package.json
  • packages/tools/package.json
  • packages/tools/src/__tests__/package-metadata.test.ts
  • packages/vscode-ide-companion/README.md
  • packages/vscode-ide-companion/package.json
📜 Review details
⏰ Context from checks skipped due to timeout. (9)
  • GitHub Check: Run LLxprt review
  • GitHub Check: E2E Test (macOS)
  • GitHub Check: E2E Test (Linux) - sandbox:none
  • GitHub Check: E2E Test (Linux) - sandbox:docker
  • GitHub Check: Bun Native Modules Smoke
  • GitHub Check: Node Consumer Smoke
  • GitHub Check: CodeQL
  • GitHub Check: Lint (Javascript)
  • GitHub Check: Interactive UI (tmux)
⚠️ CI failures not shown inline (2)

GitHub Actions: LLxprt PR Review / 0_Run LLxprt review.txt: Upgrade CI workflows and runtime baseline to Node 24 (Fixes #2316)

Conclusion: failure

View job details

##[group]Run set -euo pipefail
 �[36;1mset -euo pipefail�[0m
 �[36;1mllxprt_log="review/llxprt.log"�[0m
 �[36;1mcontext_limit="${LLXPRT_CONTEXT_LIMIT:-200000}"�[0m
 �[36;1mecho "LLXPRT_CONTEXT_LIMIT raw: '${LLXPRT_CONTEXT_LIMIT-<unset>}'" >&2�[0m
 �[36;1mecho "LLXPRT_CONTEXT_LIMIT evaluated: '${context_limit}'" >&2�[0m
 �[36;1m�[0m
 �[36;1m# Initial instruction for agentic review - agent will explore artifacts using tools�[0m
 �[36;1minitial_prompt="You are reviewing PR #${PR_NUMBER}. Start by reading review/instructions.md for your mission and review/context.md for PR details. Use file tools to explore the changes incrementally. Write your final verdict to review/verdict.md."�[0m
 �[36;1m�[0m
 �[36;1mset +e�[0m
 �[36;1m# Agentic mode: use --prompt flag to pass initial instruction�[0m
 �[36;1m# Use --baseurl CLI flag instead of --set base-url to ensure proper timing�[0m
 �[36;1mllxprt \�[0m
 �[36;1m  --provider "${LLXPRT_DEFAULT_PROVIDER}" \�[0m
 �[36;1m  --model "${LLXPRT_DEFAULT_MODEL}" \�[0m
 �[36;1m  --yolo \�[0m
 �[36;1m  --key "${OPENAI_API_KEY}" \�[0m
 �[36;1m  --baseurl "${OPENAI_BASE_URL}" \�[0m
 �[36;1m  --set modelparam.temperature=0.7 \�[0m
 �[36;1m  --set modelparam.max_tokens=16000 \�[0m
 �[36;1m  --set context-limit="${context_limit}" \�[0m
 �[36;1m  --set shell-replacement=false \�[0m
 �[36;1m  --prompt "${initial_prompt}" 2>&1 | tee "${llxprt_log}"�[0m
 �[36;1mllxprt_status=${PIPESTATUS[0]}�[0m
 �[36;1mset -e�[0m
 �[36;1m�[0m
 �[36;1mif [[ ${llxprt_status} -ne 0 ]]; then�[0m
 �[36;1m  {�[0m
 �[36;1m    echo "<!-- llxprt-pr-review -->"�[0m
 �[36;1m    echo "## WARNING: LLxprt PR Review infrastructure failure"�[0m
 �[36;1m    echo�[0m
 �[36;1m    echo "The automated reviewer failed with exit code ${llxprt_status}. Please inspect the workflow logs (LLxprt section) and re-run once resolved."�[0m
 �[36;1m  } > review/comment.md�[0m
 �[36;1m  exit "${llxprt_status}"�[0m
 �[36;1mfi�[0m
 �[36;1m�[0m
 �[36;1m# Use verdict.md if agent wrote it, otherwise f...

GitHub Actions: LLxprt PR Review / Run LLxprt review: Upgrade CI workflows and runtime baseline to Node 24 (Fixes #2316)

Conclusion: failure

View job details

##[group]Run set -euo pipefail
 �[36;1mset -euo pipefail�[0m
 �[36;1mllxprt_log="review/llxprt.log"�[0m
 �[36;1mcontext_limit="${LLXPRT_CONTEXT_LIMIT:-200000}"�[0m
 �[36;1mecho "LLXPRT_CONTEXT_LIMIT raw: '${LLXPRT_CONTEXT_LIMIT-<unset>}'" >&2�[0m
 �[36;1mecho "LLXPRT_CONTEXT_LIMIT evaluated: '${context_limit}'" >&2�[0m
 �[36;1m�[0m
 �[36;1m# Initial instruction for agentic review - agent will explore artifacts using tools�[0m
 �[36;1minitial_prompt="You are reviewing PR #${PR_NUMBER}. Start by reading review/instructions.md for your mission and review/context.md for PR details. Use file tools to explore the changes incrementally. Write your final verdict to review/verdict.md."�[0m
 �[36;1m�[0m
 �[36;1mset +e�[0m
 �[36;1m# Agentic mode: use --prompt flag to pass initial instruction�[0m
 �[36;1m# Use --baseurl CLI flag instead of --set base-url to ensure proper timing�[0m
 �[36;1mllxprt \�[0m
 �[36;1m  --provider "${LLXPRT_DEFAULT_PROVIDER}" \�[0m
 �[36;1m  --model "${LLXPRT_DEFAULT_MODEL}" \�[0m
 �[36;1m  --yolo \�[0m
 �[36;1m  --key "${OPENAI_API_KEY}" \�[0m
 �[36;1m  --baseurl "${OPENAI_BASE_URL}" \�[0m
 �[36;1m  --set modelparam.temperature=0.7 \�[0m
 �[36;1m  --set modelparam.max_tokens=16000 \�[0m
 �[36;1m  --set context-limit="${context_limit}" \�[0m
 �[36;1m  --set shell-replacement=false \�[0m
 �[36;1m  --prompt "${initial_prompt}" 2>&1 | tee "${llxprt_log}"�[0m
 �[36;1mllxprt_status=${PIPESTATUS[0]}�[0m
 �[36;1mset -e�[0m
 �[36;1m�[0m
 �[36;1mif [[ ${llxprt_status} -ne 0 ]]; then�[0m
 �[36;1m  {�[0m
 �[36;1m    echo "<!-- llxprt-pr-review -->"�[0m
 �[36;1m    echo "## WARNING: LLxprt PR Review infrastructure failure"�[0m
 �[36;1m    echo�[0m
 �[36;1m    echo "The automated reviewer failed with exit code ${llxprt_status}. Please inspect the workflow logs (LLxprt section) and re-run once resolved."�[0m
 �[36;1m  } > review/comment.md�[0m
 �[36;1m  exit "${llxprt_status}"�[0m
 �[36;1mfi�[0m
 �[36;1m�[0m
 �[36;1m# Use verdict.md if agent wrote it, otherwise f...
🧰 Additional context used
🧠 Learnings (22)
📚 Learning: 2026-07-01T06:58:31.777Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 2307
File: packages/cli/package.json:34-36
Timestamp: 2026-07-01T06:58:31.777Z
Learning: When reviewing a package's `package.json` under `packages/**/`, ensure the `files` array does not accidentally include compiled test sources (e.g., test artifacts under `dist`). If `dist` contains compiled tests, fix it by updating `tsconfig.build.json` to exclude test sources from the build output and then rewrite the `package.json` `files` entries accordingly (so published files cover only the intended build outputs and not `dist/src/*.test.*`-style artifacts).

Applied to files:

  • packages/lsp/package.json
  • packages/settings/package.json
  • packages/a2a-server/package.json
  • packages/auth/package.json
  • packages/tools/package.json
  • packages/vscode-ide-companion/package.json
  • packages/telemetry/package.json
  • packages/core/package.json
  • packages/agents/package.json
  • packages/cli/package.json
  • packages/storage/package.json
  • packages/providers/package.json
  • packages/policy/package.json
  • packages/test-utils/package.json
  • packages/mcp/package.json
  • packages/ide-integration/package.json
📚 Learning: 2026-02-06T15:52:42.315Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 1305
File: scripts/generate-keybindings-doc.ts:1-5
Timestamp: 2026-02-06T15:52:42.315Z
Learning: In reviews of vybestack/llxprt-code, do not suggest changing existing copyright headers from 'Google LLC' to 'Vybestack LLC' for files that originated from upstream. Preserve upstream copyrights in files that came from upstream, and only apply 'Vybestack LLC' copyright on newly created, original LLxprt files. If a file is clearly LLxprt-original, it may carry the Vybestack header; if it is upstream-originated, keep the original sponsor header.

Applied to files:

  • packages/tools/src/__tests__/package-metadata.test.ts
📚 Learning: 2026-03-26T00:49:43.150Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 1778
File: packages/cli/src/auth/__tests__/auth-flow-orchestrator.spec.ts:309-324
Timestamp: 2026-03-26T00:49:43.150Z
Learning: In this repository’s Jest (or Jest-like) test files, it is acceptable to use `expect(promiseReturningFunction).resolves.not.toThrow()` when the function returns `Promise<void>`. Do not flag this as an incorrect or suboptimal matcher; for `Promise<void>` it is functionally equivalent to using `resolves.toBeUndefined()` to assert successful resolution.

Applied to files:

  • packages/tools/src/__tests__/package-metadata.test.ts
📚 Learning: 2026-03-31T02:12:43.093Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 1854
File: packages/core/src/core/subagentRuntimeSetup.test.ts:77-84
Timestamp: 2026-03-31T02:12:43.093Z
Learning: In this codebase, tool declarations should follow the single required contract `parametersJsonSchema`; do not ask to preserve or reintroduce the legacy `parameters` fallback field. Reviewers should not flag assertions/checks for missing `parameters` or suggest backward-compatibility behavior for `parameters`. Schema converters/providers are expected to error if `parametersJsonSchema` is absent instead of falling back to `parameters`.

Applied to files:

  • packages/tools/src/__tests__/package-metadata.test.ts
📚 Learning: 2026-06-10T18:18:08.545Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 1983
File: packages/policy/src/policy-engine.ts:156-156
Timestamp: 2026-06-10T18:18:08.545Z
Learning: In this repo, ESLint rule `sonarjs/too-many-break-or-continue-in-loop` is set to fail loops that contain more than 1 `break`/`continue` total per loop (or both present). When a loop violates this (e.g., it contains a `break` and a `continue`, or has multiple `break`s/`continue`s), the code will not lint unless the violating line includes `// eslint-disable-next-line sonarjs/too-many-break-or-continue-in-loop`. In code reviews, do not suggest removing these `eslint-disable-next-line` directives (use refactoring only if it eliminates the underlying >1 break/continue pattern).

Applied to files:

  • packages/tools/src/__tests__/package-metadata.test.ts
📚 Learning: 2026-06-10T18:18:09.253Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 1983
File: packages/policy/src/policy-engine.ts:263-263
Timestamp: 2026-06-10T18:18:09.253Z
Learning: In this repository, the ESLint rule `sonarjs/too-many-break-or-continue-in-loop` is configured to allow at most 1 `break`/`continue` per loop (it is stricter than the SonarJS default). During code review, treat `// eslint-disable-next-line sonarjs/too-many-break-or-continue-in-loop` on loops with 2+ `break`/`continue` as intentional and do not suggest removing or changing those directives. Only consider a change if the rule is violated without an appropriate intentional disable.

Applied to files:

  • packages/tools/src/__tests__/package-metadata.test.ts
📚 Learning: 2026-06-30T06:12:11.602Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 2260
File: scripts/tests/publish-integrity.test.ts:124-166
Timestamp: 2026-06-30T06:12:11.602Z
Learning: Do not add (or recommend adding) inline ESLint suppression directives such as `/* eslint-disable */`, `/* eslint-enable */`, or similar comment-based suppressions. This repository’s policy (`#2079/`#2080) bans inline ESLint suppressions and it is mechanically enforced by `scripts/check-eslint-guard.js` in the `lint:eslint-guard` CI job. During review, only suggest inline ESLint suppression if the author explicitly states the policy has changed (i.e., the CI guard would no longer block it).

Applied to files:

  • packages/tools/src/__tests__/package-metadata.test.ts
📚 Learning: 2026-06-19T17:16:56.523Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 2108
File: packages/agents/src/api/agentImpl.ts:1047-1079
Timestamp: 2026-06-19T17:16:56.523Z
Learning: When the fake-provider test seam is active in vybestack/llxprt-code, `process.env.LLXPRT_FAKE_RESPONSES` is set to a fixture file path ending in a `.jsonl` (not to the string `'1'` or any other boolean-like value). In code, detect the seam by checking `process.env.LLXPRT_FAKE_RESPONSES !== undefined` (and/or that it is a non-empty string), rather than using `process.env.LLXPRT_FAKE_RESPONSES === '1'`. Update any callers of the env var accordingly (see `packages/providers/src/composition/providerManagerInstance.ts` and harness usages).

Applied to files:

  • packages/tools/src/__tests__/package-metadata.test.ts
📚 Learning: 2026-06-26T16:23:45.527Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 2188
File: packages/mcp/src/auth/token-storage/file-token-storage.test.ts:0-0
Timestamp: 2026-06-26T16:23:45.527Z
Learning: For TypeScript unit/integration tests that intentionally skip behavior on Windows, prefer platform-gating via `it.skipIf(process.platform === 'win32')` instead of doing an early return inside the test body. This matches existing repo conventions for Windows-specific test skips (e.g., tool/platform tests) and keeps test intent explicit.

Applied to files:

  • packages/tools/src/__tests__/package-metadata.test.ts
📚 Learning: 2026-06-26T20:36:11.918Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 2214
File: packages/tools/src/tools/tools.test.ts:88-95
Timestamp: 2026-06-26T20:36:11.918Z
Learning: When reviewing tool message-bus code in this repo, ensure you use the correct `subscribe` API. `PublishSubscribeCapable.subscribe` has the 2-argument signature `subscribe(event: string, handler: (response: unknown) => void): void | Unsubscribe` (i.e., `(event, handler)`), and call sites (e.g., `BaseToolInvocation` confirmation flow in `packages/tools/src/tools/tools.ts` and related tests) should follow that shape. Do not confuse it with the separate optional `IToolMessageBus.subscribe`, which may have a different contract; using the wrong `subscribe` overload/signature should be flagged during review.

Applied to files:

  • packages/tools/src/__tests__/package-metadata.test.ts
📚 Learning: 2026-06-30T20:03:19.860Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 2290
File: packages/cli/src/launcher/bun-launcher.ts:209-226
Timestamp: 2026-06-30T20:03:19.860Z
Learning: If a change introduces large test blocks that would exceed the repository’s max-lines lint limit, split the test into a dedicated test file (e.g., move related coverage into a new {name}.test.ts file) rather than keeping everything in one test module. Ensure the extracted tests still cover the same behavior and are correctly imported/exercised by the test runner.

Applied to files:

  • packages/tools/src/__tests__/package-metadata.test.ts
📚 Learning: 2026-03-19T22:49:57.979Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 1736
File: packages/core/src/providers/openai/OpenAIRequestBuilder.test.ts:316-395
Timestamp: 2026-03-19T22:49:57.979Z
Learning: In `packages/core/src/providers/openai/OpenAIRequestBuilder.ts`, do not add logic to deduplicate tool messages by `tool_call_id` inside `validateToolMessageSequence`. Contiguous tool messages with the same `tool_call_id` are valid parts of the conversation history (e.g., replay/adaptor splitting). The only filtering/dropping behavior should be removing *orphaned* tool messages—those whose `tool_call_id` does not match any declared tool call in the immediately preceding assistant message. Eager deduplication of same-id tool messages has previously caused strict OpenAI-provider HTTP 400 errors, so avoid introducing it.

Applied to files:

  • .nvmrc
📚 Learning: 2026-03-20T01:26:20.297Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 1736
File: packages/core/src/providers/openai/OpenAIClientFactory.test.ts:241-246
Timestamp: 2026-03-20T01:26:20.297Z
Learning: For `packages/core/src/providers/openai/OpenAIClientFactory.test.ts`, it’s acceptable for the `instantiateClient` tests to inspect the OpenAI SDK client instance’s internal `_options` field (e.g., via a type cast to `Record<string, unknown>`) to assert `defaultHeaders` and HTTP agent propagation. Do not flag `_options` inspection in this specific test file as relying on unstable internals, since this is a deliberate testing tradeoff versus heavier constructor mocking.

Applied to files:

  • .nvmrc
📚 Learning: 2026-03-21T00:08:43.988Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 1741
File: packages/core/src/config/lspIntegration.ts:75-101
Timestamp: 2026-03-21T00:08:43.988Z
Learning: In packages/core/src/config/lspIntegration.ts, keep the existing timeout-bounded MCP navigation tool registration implementation that uses `Promise.race([registerMcpNavigationTools(...), timeoutPromise]).then(result => { ... })`. Do not refactor it into an `await` + inline `if`/fallback structure; treat this pattern as intentionally preserved from the original config.ts implementation and avoid restructuring refactors in this context.

Applied to files:

  • .nvmrc
📚 Learning: 2026-03-21T15:59:42.173Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 1740
File: packages/core/src/providers/utils/toolIdNormalization.ts:98-121
Timestamp: 2026-03-21T15:59:42.173Z
Learning: In `packages/core/src/providers/utils/toolIdNormalization.ts`, keep `normalizeToAnthropicToolId`’s handling of empty/falsy tool IDs deterministic: return the constant `'toolu_empty'` and use `debugLogger.error(...)` for visibility. Do not replace this with a random/hash-based fallback; the prior hash fallback caused a pairing hazard where `tool_use` and `tool_result` could receive different IDs, breaking correlation. (Although this path is typically unreachable because upstream normalization maps empty IDs via `normalizeToHistoryToolId` to a value handled by the `hist_tool_` prefix logic, the error log should remain for the case where a provider returns an empty tool call ID.)

Applied to files:

  • .nvmrc
📚 Learning: 2026-03-21T17:07:17.141Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 1743
File: packages/core/src/core/DirectMessageProcessor.ts:322-336
Timestamp: 2026-03-21T17:07:17.141Z
Learning: In `packages/core/src/core/DirectMessageProcessor.ts`, preserve the semantics in `_applyToolSelectionHook`: the guard `if (allowedFunctions?.length)` is intentionally keeping upstream behavior from `geminiChat.ts`. Treat an empty `allowedFunctionNames`/`allowedFunctions` array (`[]`) as “no restriction,” not “deny all,” and do not flag any decomposition/refactor PRs as a bug due to this empty-list handling. If someone proposes changing `[]` to mean deny-all, treat it as a feature/behavior modification (e.g., separate issue) rather than a refactor; upstream fix is tracked separately (e.g., `#1748`).

Applied to files:

  • .nvmrc
📚 Learning: 2026-03-26T02:22:16.930Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 1780
File: packages/cli/src/ui/hooks/geminiStream/streamUtils.ts:100-116
Timestamp: 2026-03-26T02:22:16.930Z
Learning: In `packages/cli/src/ui/hooks/geminiStream/streamUtils.ts`, do not flag `mergePendingToolGroupsForDisplay` as a deduplication bug when `filteredPendingTools` only removes overlapping shell entries and may leave overlapping non-shell tool `callId`s potentially duplicated. This behavior is pre-existing and was faithfully extracted from `useGeminiStream.ts`; any change to deduplicate non-shell overlapping `callId`s should be treated as a separate enhancement, not a structural refactor fix.

Applied to files:

  • .nvmrc
📚 Learning: 2026-03-26T02:47:16.208Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 1779
File: packages/core/src/core/subagentExecution.test.ts:142-143
Timestamp: 2026-03-26T02:47:16.208Z
Learning: In `packages/core/src/core/subagentExecution.test.ts`, for the `checkGoalCompletion` tests, treat the return type as `Promise<Content[] | null>` (not `Promise<Part[] | null>`). Since `Content` is shaped like `{ role: string, parts: Part[] }`, assertions like `result![0].parts[0]` are correct for accessing the first `Part` inside the first `Content` element. Do not flag `result![0].parts[0]` as an invalid shape/index access in these tests for this function.

Applied to files:

  • .nvmrc
📚 Learning: 2026-03-26T20:52:05.558Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 1780
File: packages/cli/src/ui/hooks/geminiStream/useStreamEventHandlers.ts:140-149
Timestamp: 2026-03-26T20:52:05.558Z
Learning: In packages/cli/src/ui/hooks/geminiStream/useStreamEventHandlers.ts, when reviewing decomposition/refactoring PRs, do not flag the applyThoughtToState reducer’s setPendingHistoryItem updater that casts item?.type as 'gemini' | 'gemini_content' and uses item?.text || '' as a bug. This behavior is intentional and was preserved from the original useGeminiStream.ts; changing it is a behavioral change that could affect tool_group pending item handling and requires careful end-to-end testing across all thinking-block rendering paths.

Applied to files:

  • .nvmrc
📚 Learning: 2026-03-27T01:00:24.588Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 1785
File: packages/cli/src/config/__tests__/toolGovernanceParity.test.ts:458-472
Timestamp: 2026-03-27T01:00:24.588Z
Learning: In `packages/cli/src/config/__tests__/toolGovernanceParity.test.ts`, when reviewing this test suite’s parity/refactor checks (including cases using “non-interactive DEFAULT with explicit --allowed-tools” and corresponding YOLO test cases), don’t flag `read_file` as an insufficient or incorrect `--allowed-tools` value just because it’s in `READ_ONLY_TOOL_NAMES`. These tests are intentionally scoped to preserving existing allowlist behavior across the refactor, not to proving union/exclusion semantics for non-read-only tools; treat the choice as deliberate test design unless the assertions themselves are incorrect.

Applied to files:

  • .nvmrc
📚 Learning: 2026-04-22T08:29:35.103Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 1907
File: packages/core/src/utils/googleQuotaErrors.test.ts:344-347
Timestamp: 2026-04-22T08:29:35.103Z
Learning: In `packages/core/src/utils/googleQuotaErrors.test.ts`, treat `if (result instanceof RetryableQuotaError) { ... }` blocks (with paired `// eslint-disable-next-line vitest/no-conditional-in-test` and `// eslint-disable-next-line vitest/no-conditional-expect`) as an intentional type-narrowing pattern for this lint-enforcement/test-validation work. In future reviews, don’t recommend consolidating these into a helper (e.g., `asRetryable()`) or removing the `eslint-disable-next-line` comments as part of lint-promotion/refactoring; keep the structure unchanged unless the PR explicitly changes the lint/enforcement scope.

Applied to files:

  • .nvmrc
📚 Learning: 2026-04-23T23:33:00.076Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 1907
File: packages/cli/src/ui/components/Footer.test.tsx:198-214
Timestamp: 2026-04-23T23:33:00.076Z
Learning: In `packages/cli/src/ui/components/Footer.test.tsx`, the responsive truncation test (`"should adapt branch truncation length based on breakpoint"`) intentionally uses a regex contract (`/feature\/.+\.\.\..+/`) to validate truncation behavior rather than asserting per-breakpoint maximum lengths. During code review, do not flag the `expectedMaxLength` field as unused and do not suggest adding per-breakpoint `expectedMaxLength` assertions, since those would be a test-coverage enhancement beyond what should be enforced by lint/PR-scope review.

Applied to files:

  • .nvmrc
🪛 Checkov (3.3.2)
Dockerfile

[low] 1-101: Ensure that HEALTHCHECK instructions have been added to container images

(CKV_DOCKER_2)

🪛 Trivy (0.69.3)
Dockerfile

[info] 1-1: No HEALTHCHECK defined

Add HEALTHCHECK instruction in your Dockerfile

Rule: DS-0026

Learn more

(IaC/Dockerfile)

🪛 zizmor (1.26.1)
.github/workflows/build-sandbox.yml

[error] 49-49: runtime artifacts potentially vulnerable to a cache poisoning attack (cache-poisoning): enables caching by default

(cache-poisoning)

.github/workflows/release.yml

[error] 144-144: runtime artifacts potentially vulnerable to a cache poisoning attack (cache-poisoning): this step

(cache-poisoning)

.github/workflows/nightly.yml

[warning] 168-169: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false

(artipacked)

.github/workflows/ci.yml

[error] 203-203: runtime artifacts potentially vulnerable to a cache poisoning attack (cache-poisoning): this step

(cache-poisoning)


[error] 475-475: runtime artifacts potentially vulnerable to a cache poisoning attack (cache-poisoning): this step

(cache-poisoning)


[error] 520-520: runtime artifacts potentially vulnerable to a cache poisoning attack (cache-poisoning): this step

(cache-poisoning)


[error] 589-589: runtime artifacts potentially vulnerable to a cache poisoning attack (cache-poisoning): this step

(cache-poisoning)

🔇 Additional comments (37)
Dockerfile (1)

1-1: LGTM!

.gcp/Dockerfile.gemini-code-builder (1)

7-9: LGTM!

Also applies to: 38-49

.github/workflows/ci.yml (1)

187-189: LGTM! The actions/setup-node@v6 bump and node-version 24 changes are consistent with the repo's declared Node 24 baseline. The pre-existing cache: 'npm' inputs mean caching behavior here isn't newly changed by this bump (unlike the no-cache-input case in build-sandbox.yml).

Also applies to: 203-206, 475-478, 520-523, 589-592

.github/workflows/e2e.yml (1)

146-169: LGTM!

Also applies to: 272-276

.github/workflows/evals-nightly.yml (1)

24-28: LGTM!

Also applies to: 60-64

.github/workflows/interactive-ui.yml (1)

71-75: LGTM!

.github/workflows/luther.yml (1)

348-353: LGTM!

.github/workflows/nightly.yml (2)

33-33: LGTM!


271-271: LGTM!

.github/workflows/release.yml (1)

144-147: 🔒 Security & Privacy | ⚖️ Poor tradeoff

Review cache use in privileged release job.

This step enables cache: 'npm' inside the release job, which holds contents: write, packages: write, and id-token: write permissions and publishes to npm/ghcr. Static analysis flags this as a potential cache-poisoning vector — a cache populated during a less-trusted run could be restored here and affect what gets built/published.

Consider whether this job should use an isolated/dedicated cache key or disable caching entirely, given its elevated permissions and production-release scope.

Source: Linters/SAST tools

.github/workflows/upstream-sync.yml (1)

37-37: LGTM!

.nvmrc (1)

1-1: LGTM!

package.json (1)

5-5: LGTM!

Also applies to: 158-158

packages/a2a-server/package.json (1)

52-52: LGTM!

packages/agents/package.json (1)

64-64: LGTM!

packages/auth/package.json (1)

40-40: LGTM!

CONTRIBUTING.md (1)

103-104: LGTM!

README.md (1)

83-83: LGTM!

README_CN.md (1)

65-65: LGTM!

packages/cli/package.json (1)

103-103: LGTM!

Also applies to: 121-121

packages/core/package.json (1)

268-268: LGTM!

packages/ide-integration/package.json (1)

44-44: LGTM!

packages/lsp/package.json (1)

33-33: LGTM!

dev-docs/PLAN.md (1)

251-251: LGTM!

docs/getting-started.md (1)

7-7: LGTM!

docs/tutorials/sandbox-setup.md (1)

24-24: LGTM!

packages/mcp/package.json (1)

50-50: LGTM!

packages/policy/package.json (1)

50-50: LGTM!

packages/providers/package.json (1)

169-169: LGTM!

packages/settings/package.json (1)

64-64: LGTM!

packages/vscode-ide-companion/README.md (1)

46-46: LGTM!

packages/storage/package.json (1)

83-83: LGTM!

packages/telemetry/package.json (1)

78-78: LGTM!

packages/test-utils/package.json (1)

24-24: LGTM!

packages/tools/package.json (1)

73-73: LGTM!

packages/tools/src/__tests__/package-metadata.test.ts (1)

130-133: LGTM!

packages/vscode-ide-companion/package.json (1)

138-138: LGTM!

Comment thread .github/workflows/build-sandbox.yml
Comment thread .github/workflows/nightly.yml
The root @types/node range was bumped from ^24.0.13 to ^24.2.1 in
package.json but bun.lock still recorded ^24.0.13. The bun-workspaces
test (macOS-only script harness) verifies bun.lock ranges match
package.json, causing Test (macos-latest, keyring) to fail in CI.
acoliver added a commit that referenced this pull request Jul 2, 2026
# Conflicts:
#	.github/workflows/ci.yml
#	CONTRIBUTING.md
#	README.md
#	docs/getting-started.md
build-sandbox.yml: disable setup-node v6 package-manager-cache to prevent
cache-poisoning in this privileged Docker publish job (packages:write).
setup-node v6 auto-enables caching when package.json declares packageManager,
unlike v4 which required an explicit cache input.

nightly.yml: align e2e_full checkout pin to actions/checkout@v5 SHA
(08c6903) used consistently across all other workflows, fixing the
ratchet label/code inconsistency flagged by CodeRabbit.
@acoliver acoliver merged commit 1164737 into main Jul 2, 2026
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

maintainer:e2e:ok Trusted contributor; maintainer-approved E2E run

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Upgrade CI workflows to Node 24 runtime

1 participant