Skip to content

Eliminate settings ESLint directives (Fixes #2120)#2149

Open
acoliver wants to merge 1 commit into
mainfrom
issue2120
Open

Eliminate settings ESLint directives (Fixes #2120)#2149
acoliver wants to merge 1 commit into
mainfrom
issue2120

Conversation

@acoliver

Copy link
Copy Markdown
Collaborator

TLDR

Eliminates all inline ESLint disable and enable directives from packages/settings/src and locks the settings package into the completed directive-cleanup guard scope. Adds behavioral tests around malformed profile loading and guard coverage so settings cannot regress to inline lint suppressions.

Dive Deeper

This PR removes the remaining settings-module ESLint directives by refactoring the affected code rather than moving suppressions elsewhere.

Key changes:

  • Refactors SettingsService runtime-boundary handling with explicit narrowing helpers for provider settings, nested reads, updateSettings, profile import, active-provider fallback, and tool arrays.
  • Refactors ProfileManager profile and load-balancer validation to keep defensive checks type-necessary while preserving error mapping for invalid persisted JSON.
  • Adds ProfileManager malformed JSON and malformed load-balancer shape behavior coverage.
  • Removes the SettingsService test overwrite directive by asserting the intermediate value before overwriting it.
  • Moves packages/settings/src from legacyDirectiveCleanupScopes to completedDirectiveCleanupScopes.
  • Adds scripts/tests/eslint-guard.test.js coverage for zero settings directives, completed broad glob lock, and absence from legacy scope.

Reviewer Test Plan

Suggested validation:

  1. Search packages/settings/src for eslint-disable and eslint-enable directives and confirm there are no matches.
  2. Review eslint.config.js to confirm packages/settings/src glob is in completedDirectiveCleanupScopes and no settings entry remains in legacyDirectiveCleanupScopes.
  3. Run targeted guard/settings tests:
    • npm run test --workspace @vybestack/llxprt-code-settings -- SettingsService.test.ts ProfileManager.test.ts
    • npm run test:scripts -- scripts/tests/eslint-guard.test.js
  4. Run package lint/typecheck for settings:
    • npm run lint --workspace @vybestack/llxprt-code-settings
    • npm run typecheck --workspace @vybestack/llxprt-code-settings

Testing Matrix

🍏 🪟 🐧
npm run
npx
Docker
Podman - -
Seatbelt - -

Verification run on macOS:

  • npm run test: passed on rerun. An earlier full-suite run had two agents timeout failures; rerunning those specific tests passed, then the full suite passed.
  • npm run lint: passed.
  • npm run typecheck: passed.
  • npm run format: passed.
  • npm run build: passed.
  • node scripts/start.js --profile-load ollamaglm51 "write me a haiku and nothing else": passed.
  • node scripts/start.js --profile-load synthetic "write me a haiku and nothing else": reached the app and failed on the OpenAI API call in this local environment.
  • grep for eslint-disable and eslint-enable under packages/settings/src: no matches.

Linked issues / bugs

Fixes #2120

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

coderabbitai Bot commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Summary by CodeRabbit

  • New Features

    • Settings and profile handling now supports more robust import/export behavior, including better recognition of valid profile data and tool lists.
    • Settings files in the settings package are now covered by stricter inline-comment rules.
  • Bug Fixes

    • Improved handling of corrupted or incomplete profile files, with clearer rejection of unsupported or invalid profiles.
    • Fixed settings updates to behave more reliably with nested and provider-specific values.

Walkthrough

The PR eliminates all inline ESLint disable directives from the packages/settings module by refactoring ProfileManager and SettingsService with runtime type guards and helper utilities, adds tests for malformed profile inputs, removes one remaining inline disable comment from the test file, and promotes the settings package to the completed ESLint directive cleanup scope in eslint.config.js with a corresponding guard test.

Changes

Settings Package ESLint Directive Cleanup

Layer / File(s) Summary
ProfileManager runtime validation helpers
packages/settings/src/profiles/ProfileManager.ts
Adds plain-object guard, load-balancer shape/version/reference validator, standard-profile required-field checker, and a missing-version utility; updates constructor empty-string check for profilesDir.
SettingsService type guards and array utility
packages/settings/src/settings/SettingsService.ts
Adds isProviderSettingsRecord type guard and asStringArray coercion helper; introduces EphemeralSettings interfaces and event payload types used throughout the refactored service.
ProfileManager loadProfile, save, and convert refactors
packages/settings/src/profiles/ProfileManager.ts
Delegates load-balancer checks in saveLoadBalancerProfile and validateLoadBalancerReferences to the shared validator; rewrites loadProfile to parse as unknown and route by type; refactors convertProfileToSettingsData to compute allowedTools/disabledTools with legacy disabled-tools fallback.
SettingsService provider access, updateSettings, export, import refactors
packages/settings/src/settings/SettingsService.ts
Rewrites getProviderSettings, setProviderSetting, getNestedValue, setNestedValue, and updateSettings to use isProviderSettingsRecord; updates exportForProfile active-provider derivation and disabled-tools branching; gates importFromProfile on the record guard and extracts importProviderEntries helper.
ProfileManager and SettingsService tests
packages/settings/src/profiles/__tests__/ProfileManager.test.ts, packages/settings/src/__tests__/SettingsService.test.ts
Adds test suites for malformed/corrupted JSON and invalid loadbalancer profile shapes; removes the inline eslint-disable comment from the SettingsService overwrite test.
ESLint config promotion and guard tests
eslint.config.js, scripts/tests/eslint-guard.test.js
Removes packages/settings from legacyDirectiveCleanupScopes; adds the broad packages/settings/src/**/*.{ts,tsx} glob to completedDirectiveCleanupScopes; adds a guard test suite asserting zero inline directives and correct scope membership.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related issues

Possibly related PRs

  • vybestack/llxprt-code#2096: This PR extends the eslint.config.js directive-cleanup scope system and scripts/tests/eslint-guard.test.js guard pattern first introduced in #2096, applying the same mechanism to packages/settings.
  • vybestack/llxprt-code#1493: The ProfileManager.loadProfile and convertProfileToSettingsData behavioral changes in this PR (provider derivation and tools.allowed/tools.disabled handling) directly affect the same code paths that #1493 validated in its profileManager.test.ts assertions.

Poem

🐇 Hop hop, no more suppressed lines to hide,
The settings module runs clean with no override.
Type guards and helpers now carry the load,
isProviderSettingsRecord lights the road.
eslint-disable comments? Banished with glee—
The linter and rabbit now both roam free! 🎉

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly states the main change: removing settings ESLint directives, and it references the linked issue.
Description check ✅ Passed All required sections are present and filled with specific TLDR, implementation, test plan, matrix, and linked issue details.
Linked Issues check ✅ Passed The refactors, config changes, and guard tests address the requirement to remove all settings ESLint directives and prevent regressions.
Out of Scope Changes check ✅ Passed The changes stay focused on settings directive removal, validation refactors, and guard coverage with no obvious unrelated additions.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

📋 Issue Planner

Built with CodeRabbit's Coding Plans for faster development and fewer bugs.

View plan used: #2120

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch issue2120

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

@github-actions

Copy link
Copy Markdown
Contributor

LLxprt PR Review – PR #2149

Issue Alignment

Evidence of success: On the issue2120 branch, grep -r "eslint-disable" packages/settings/src returns zero matches. The diffs confirm all 19 inline ESLint directives were removed from SettingsService.ts and ProfileManager.ts by refactoring code rather than relocating suppressions. The new validateLoadBalancerShape, hasStandardProfileFields, isMissingVersion, and isProviderSettingsRecord helpers eliminate the complex conditionals that triggered sonarjs/expression-complexity and @typescript-eslint/no-unnecessary-condition rules. The ESLint guard tests (scripts/tests/eslint-guard.test.js) were extended with a new packages/settings directive cleanup (#2120) describe block that asserts zero directives, correct completedDirectiveCleanupScopes entry, and removal from legacyDirectiveCleanupScopes. Issue #2120 requires zero inline directives in packages/settings/src, and this PR delivers exactly that.

Side Effects

  • eslint.config.js: Settings package moved from legacyDirectiveCleanupScopescompletedDirectiveCleanupScopes. The broad glob packages/settings/src/**/*.{ts,tsx} now locks the package in the "error" enforcement mode per the directive-cleanup guard scope design.
  • Removed the BN4-C-P01 comment references: These were the original justification comments for the @typescript-eslint/no-unnecessary-condition suppressions. Their removal is intentional and correct—they were never valid justifications per issue Eliminate all inline ESLint disables in packages/settings #2120.
  • Minor refactoring: exportForProfile() now uses explicit conditional logic instead of || short-circuit, which may alter behavior for falsy (but non-null) values like 0 or false strings. The original code would treat 0 (number) as falsy and fall through to defaults; the new code only treats empty string '' as falsy. This is likely an improvement since 0 is not a realistic provider name, but worth noting.

Code Quality

  • Correctness: Refactoring is sound. Type narrowing helpers (isProviderSettingsRecord, asStringArray) are properly implemented with type guards. The validateLoadBalancerShape helper centralizes validation logic that was previously duplicated in saveLoadBalancerProfile and updateLoadBalancerProfile.
  • Security: The prototype pollution guard (dangerousKeys check for __proto__, constructor, prototype) was retained in setNestedValue; the comment was removed but the protection remains.
  • Error mapping: The new loadProfile flow properly maps JSON null, arrays, and empty objects to "missing required fields" error, preserving the error-surface contract.

Tests and Coverage

Coverage impact: Increase

New behavioral tests added in ProfileManager.test.ts:

  • Corrupted/malformed profile JSON tests (null, array, number, empty object → "missing required fields")
  • Malformed load-balancer shape tests (version 2 rejection, missing/empty profiles array, version-first vs profiles-first error priority)

SettingsService test was corrected: removed the eslint-disable-next-line sonarjs/no-element-overwrite by changing the test assertion to verify the final value instead of asserting mid-overwrite.

The SettingsService tests pass (29 tests). The eslint-guard tests pass (15 tests, including the 3 new settings-specific ones). Failures observed in ProfileManager.test.ts are due to missing zod devDependency in the sandbox environment, not a code issue—this is a workspace dependency resolution problem in the test runner, not a test logic problem.


Verdict: Ready

The PR achieves the issue goal: packages/settings/src now has zero inline ESLint directives. Code was refactored to eliminate the rules that required suppression, not suppressed elsewhere. Behavioral tests cover the new validation paths. The settings package is locked into completedDirectiveCleanupScopes with a broad glob, preventing regression. No blockers identified.

@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: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
packages/settings/src/settings/SettingsService.ts (1)

10-21: 📐 Maintainability & Code Quality | 🟡 Minor

Remove the stray n?: unknown field from EphemeralSettings. It isn’t used anywhere in packages/settings/src and only adds noise to the settings contract.

🤖 Prompt for 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.

In `@packages/settings/src/settings/SettingsService.ts` around lines 10 - 21,
Remove the stray n?: unknown field from the EphemeralSettings interface in
SettingsService; it is not used anywhere in packages/settings/src. Update the
settings contract definition only, keeping the existing providers, global,
activeProvider, and tools shape intact.
🤖 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 `@packages/settings/src/profiles/ProfileManager.ts`:
- Around line 115-137: hasStandardProfileFields() is too permissive because it
only checks that modelParams and ephemeralSettings are non-null, allowing
primitives like numbers or booleans to pass into loadProfile() and be cast as
Profile. Tighten the guard in ProfileManager by validating that
record.modelParams and record.ephemeralSettings are object-shaped (and not
arrays) before returning true, and keep the existing version/provider/model
checks intact so the final Profile cast only happens for properly shaped
records.
- Around line 75-99: validateLoadBalancerShape() is missing a check for the
load-balancer discriminant before it returns a LoadBalancerProfile. Update this
validator in ProfileManager.ts to verify that the incoming record has type ===
'loadbalancer' in addition to version === 1 and a non-empty profiles array, and
throw the same kind of validation error when the type is missing or incorrect.
Make sure saveLoadBalancerProfile() relies on this strengthened validation so
only properly shaped load-balancer profiles can be persisted and later loaded by
loadProfile().

In `@packages/settings/src/settings/SettingsService.ts`:
- Around line 283-291: Empty-string activeProvider values should consistently
fall back to 'openai' instead of being exported as blank. Update the fallback
logic in SettingsService, specifically the activeProvider selection used by
exportForProfile and the matching branch in getDiagnosticsData, so the
settings.activeProvider path rejects empty strings the same way the
global.activeProvider path does. Keep the existing defaulting behavior intact by
only accepting non-empty strings before assigning activeProvider.

In `@scripts/tests/eslint-guard.test.js`:
- Around line 237-243: The ESLint guard test is flagging any line containing the
directive text, including strings, instead of only actual comment directives.
Update the directive matching logic in eslint-guard.test.js around directiveRe
and the offenders scan so it only matches inline ESLint comment syntax, and keep
using listTsFiles/readFileSync/lines.forEach to locate the affected lines. Make
the check ignore non-comment occurrences while still detecting eslint-disable
and eslint-enable directives in comments.

---

Outside diff comments:
In `@packages/settings/src/settings/SettingsService.ts`:
- Around line 10-21: Remove the stray n?: unknown field from the
EphemeralSettings interface in SettingsService; it is not used anywhere in
packages/settings/src. Update the settings contract definition only, keeping the
existing providers, global, activeProvider, and tools shape intact.
🪄 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: 67fe1291-954d-4daa-8b01-df4a9c2f77e4

📥 Commits

Reviewing files that changed from the base of the PR and between 65b2e83 and c664010.

📒 Files selected for processing (6)
  • eslint.config.js
  • packages/settings/src/__tests__/SettingsService.test.ts
  • packages/settings/src/profiles/ProfileManager.ts
  • packages/settings/src/profiles/__tests__/ProfileManager.test.ts
  • packages/settings/src/settings/SettingsService.ts
  • scripts/tests/eslint-guard.test.js
📜 Review details
⏰ Context from checks skipped due to timeout. (7)
  • GitHub Check: E2E Test (macOS)
  • GitHub Check: E2E Test (Linux) - sandbox:none
  • GitHub Check: E2E Test (Linux) - sandbox:docker
  • GitHub Check: Lint (Javascript)
  • GitHub Check: CodeQL
  • GitHub Check: Run LLxprt review
  • GitHub Check: Interactive UI (tmux)
🧰 Additional context used
🧠 Learnings (7)
📚 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/settings/src/__tests__/SettingsService.test.ts
  • packages/settings/src/profiles/__tests__/ProfileManager.test.ts
  • packages/settings/src/profiles/ProfileManager.ts
  • packages/settings/src/settings/SettingsService.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/settings/src/__tests__/SettingsService.test.ts
  • packages/settings/src/profiles/__tests__/ProfileManager.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/settings/src/__tests__/SettingsService.test.ts
  • packages/settings/src/profiles/__tests__/ProfileManager.test.ts
  • packages/settings/src/profiles/ProfileManager.ts
  • packages/settings/src/settings/SettingsService.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/settings/src/__tests__/SettingsService.test.ts
  • packages/settings/src/profiles/__tests__/ProfileManager.test.ts
  • packages/settings/src/profiles/ProfileManager.ts
  • packages/settings/src/settings/SettingsService.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/settings/src/__tests__/SettingsService.test.ts
  • packages/settings/src/profiles/__tests__/ProfileManager.test.ts
  • scripts/tests/eslint-guard.test.js
  • packages/settings/src/profiles/ProfileManager.ts
  • eslint.config.js
  • packages/settings/src/settings/SettingsService.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/settings/src/__tests__/SettingsService.test.ts
  • packages/settings/src/profiles/__tests__/ProfileManager.test.ts
  • packages/settings/src/profiles/ProfileManager.ts
  • packages/settings/src/settings/SettingsService.ts
📚 Learning: 2026-03-16T20:36:45.254Z
Learnt from: acoliver
Repo: vybestack/llxprt-code PR: 1733
File: eslint.config.js:0-0
Timestamp: 2026-03-16T20:36:45.254Z
Learning: In vybestack/llxprt-code, the global baseline for no-console is intentionally set to 'warn' across core/cli packages. Do not flag this in reviews or suggest removing it. Entry points or CLI-specific configurations may override this to 'off' in a later pass when the rule is tightened to 'error'. Treat this as a deliberate, repository-wide baseline, and only flag console usage if there is an explicit deviation from the stated intent or an automation gate indicates improper override.

Applied to files:

  • eslint.config.js
🪛 ast-grep (0.44.0)
packages/settings/src/profiles/__tests__/ProfileManager.test.ts

[warning] 361-361: Filesystem path is not a string literal; a request-/variable-derived path can enable path traversal. Validate and normalize the path before use.
Context: fs.writeFile(filePath, 'null', 'utf8')
Note: [CWE-22] Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal').

(detect-non-literal-fs-filename-typescript)


[warning] 370-370: Filesystem path is not a string literal; a request-/variable-derived path can enable path traversal. Validate and normalize the path before use.
Context: fs.writeFile(filePath, '[1, 2, 3]', 'utf8')
Note: [CWE-22] Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal').

(detect-non-literal-fs-filename-typescript)


[warning] 379-379: Filesystem path is not a string literal; a request-/variable-derived path can enable path traversal. Validate and normalize the path before use.
Context: fs.writeFile(filePath, '42', 'utf8')
Note: [CWE-22] Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal').

(detect-non-literal-fs-filename-typescript)


[warning] 388-388: Filesystem path is not a string literal; a request-/variable-derived path can enable path traversal. Validate and normalize the path before use.
Context: fs.writeFile(filePath, '{}', 'utf8')
Note: [CWE-22] Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal').

(detect-non-literal-fs-filename-typescript)


[warning] 411-415: Filesystem path is not a string literal; a request-/variable-derived path can enable path traversal. Validate and normalize the path before use.
Context: fs.writeFile(
filePath,
JSON.stringify({ type: 'loadbalancer', version: 2 }),
'utf8',
)
Note: [CWE-22] Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal').

(detect-non-literal-fs-filename-typescript)


[warning] 424-432: Filesystem path is not a string literal; a request-/variable-derived path can enable path traversal. Validate and normalize the path before use.
Context: fs.writeFile(
filePath,
JSON.stringify({
type: 'loadbalancer',
version: 2,
profiles: ['p1'],
}),
'utf8',
)
Note: [CWE-22] Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal').

(detect-non-literal-fs-filename-typescript)


[warning] 441-445: Filesystem path is not a string literal; a request-/variable-derived path can enable path traversal. Validate and normalize the path before use.
Context: fs.writeFile(
filePath,
JSON.stringify({ type: 'loadbalancer', version: 1 }),
'utf8',
)
Note: [CWE-22] Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal').

(detect-non-literal-fs-filename-typescript)


[warning] 454-462: Filesystem path is not a string literal; a request-/variable-derived path can enable path traversal. Validate and normalize the path before use.
Context: fs.writeFile(
filePath,
JSON.stringify({
type: 'loadbalancer',
version: 1,
profiles: [],
}),
'utf8',
)
Note: [CWE-22] Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal').

(detect-non-literal-fs-filename-typescript)


[warning] 471-475: Filesystem path is not a string literal; a request-/variable-derived path can enable path traversal. Validate and normalize the path before use.
Context: fs.writeFile(
filePath,
JSON.stringify({ type: 'loadbalancer', version: 2 }),
'utf8',
)
Note: [CWE-22] Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal').

(detect-non-literal-fs-filename-typescript)

🔇 Additional comments (6)
packages/settings/src/profiles/__tests__/ProfileManager.test.ts (1)

346-395: LGTM!

Also applies to: 397-482

packages/settings/src/__tests__/SettingsService.test.ts (1)

44-44: LGTM!

packages/settings/src/profiles/ProfileManager.ts (1)

151-153: LGTM!

Also applies to: 219-219, 259-278, 283-287, 420-440, 459-460

packages/settings/src/settings/SettingsService.ts (1)

39-56: LGTM!

Also applies to: 114-118, 166-179, 260-275, 360-369

eslint.config.js (1)

292-296: LGTM!

scripts/tests/eslint-guard.test.js (1)

250-264: LGTM!

Comment on lines +75 to +99
function validateLoadBalancerShape(
name: string,
profile: unknown,
): LoadBalancerProfile {
if (!isPlainObject(profile)) {
throw new Error(
`LoadBalancer profile '${name}' must reference at least one profile`,
);
}
const record = profile;
if (record.version !== 1) {
throw new Error('unsupported profile version');
}
const profilesField = record.profiles;
if (
profilesField === null ||
profilesField === undefined ||
!Array.isArray(profilesField) ||
profilesField.length === 0
) {
throw new Error(
`LoadBalancer profile '${name}' must reference at least one profile`,
);
}
return profile as unknown as LoadBalancerProfile;

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.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Validate the load-balancer discriminant before saving.

validateLoadBalancerShape() casts to LoadBalancerProfile without checking type === 'loadbalancer'. Since saveLoadBalancerProfile() persists after this check, a malformed object with version: 1 and profiles: [...] but no/incorrect type can be saved and later rejected by loadProfile() as a standard profile.

Proposed fix
   const record = profile;
+  if (record.type !== 'loadbalancer') {
+    throw new Error(`LoadBalancer profile '${name}' has invalid type`);
+  }
   if (record.version !== 1) {
     throw new Error('unsupported profile version');
   }

Also applies to: 176-176

🤖 Prompt for 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.

In `@packages/settings/src/profiles/ProfileManager.ts` around lines 75 - 99,
validateLoadBalancerShape() is missing a check for the load-balancer
discriminant before it returns a LoadBalancerProfile. Update this validator in
ProfileManager.ts to verify that the incoming record has type === 'loadbalancer'
in addition to version === 1 and a non-empty profiles array, and throw the same
kind of validation error when the type is missing or incorrect. Make sure
saveLoadBalancerProfile() relies on this strengthened validation so only
properly shaped load-balancer profiles can be persisted and later loaded by
loadProfile().

Comment on lines +115 to +137
function hasStandardProfileFields(record: Record<string, unknown>): boolean {
if (isMissingVersion(record.version)) {
return false;
}
const provider = record.provider;
if (typeof provider !== 'string' || provider === '') {
return false;
}
const model = record.model;
if (typeof model !== 'string' || model === '') {
return false;
}
if (record.modelParams === null || record.modelParams === undefined) {
return false;
}
if (
record.ephemeralSettings === null ||
record.ephemeralSettings === undefined
) {
return false;
}
return true;
}

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.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Require object-shaped standard profile fields.

hasStandardProfileFields() accepts any non-null modelParams/ephemeralSettings, so JSON like "modelParams": 1 or "ephemeralSettings": false passes loadProfile() and is returned as Profile. Tighten the guard before the final cast.

Proposed fix
-  if (record.modelParams === null || record.modelParams === undefined) {
+  if (!isPlainObject(record.modelParams)) {
     return false;
   }
-  if (
-    record.ephemeralSettings === null ||
-    record.ephemeralSettings === undefined
-  ) {
+  if (!isPlainObject(record.ephemeralSettings)) {
     return false;
   }

Also applies to: 279-287

🤖 Prompt for 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.

In `@packages/settings/src/profiles/ProfileManager.ts` around lines 115 - 137,
hasStandardProfileFields() is too permissive because it only checks that
modelParams and ephemeralSettings are non-null, allowing primitives like numbers
or booleans to pass into loadProfile() and be cast as Profile. Tighten the guard
in ProfileManager by validating that record.modelParams and
record.ephemeralSettings are object-shaped (and not arrays) before returning
true, and keep the existing version/provider/model checks intact so the final
Profile cast only happens for properly shaped records.

Comment on lines +283 to +291
const globalActive = this.settings.global.activeProvider;
let activeProvider: string;
if (typeof globalActive === 'string' && globalActive !== '') {
activeProvider = globalActive;
} else if (this.settings.activeProvider !== null) {
activeProvider = this.settings.activeProvider;
} else {
activeProvider = 'openai';
}

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.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Empty-string activeProvider skips the 'openai' fallback.

The global branch (Line 285) explicitly rejects '', but the settings.activeProvider branch (Line 287) only checks !== null. If settings.activeProvider is an empty string, exportForProfile exports defaultProvider: '' instead of falling back to 'openai'. The same pattern exists in getDiagnosticsData (Line 385). Low risk today since it's normally set to non-empty values, but worth tightening for consistency.

🔧 Proposed fix
-    } else if (this.settings.activeProvider !== null) {
+    } else if (
+      this.settings.activeProvider !== null &&
+      this.settings.activeProvider !== ''
+    ) {
       activeProvider = this.settings.activeProvider;
     } else {
       activeProvider = 'openai';
     }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
const globalActive = this.settings.global.activeProvider;
let activeProvider: string;
if (typeof globalActive === 'string' && globalActive !== '') {
activeProvider = globalActive;
} else if (this.settings.activeProvider !== null) {
activeProvider = this.settings.activeProvider;
} else {
activeProvider = 'openai';
}
const globalActive = this.settings.global.activeProvider;
let activeProvider: string;
if (typeof globalActive === 'string' && globalActive !== '') {
activeProvider = globalActive;
} else if (
this.settings.activeProvider !== null &&
this.settings.activeProvider !== ''
) {
activeProvider = this.settings.activeProvider;
} else {
activeProvider = 'openai';
}
🤖 Prompt for 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.

In `@packages/settings/src/settings/SettingsService.ts` around lines 283 - 291,
Empty-string activeProvider values should consistently fall back to 'openai'
instead of being exported as blank. Update the fallback logic in
SettingsService, specifically the activeProvider selection used by
exportForProfile and the matching branch in getDiagnosticsData, so the
settings.activeProvider path rejects empty strings the same way the
global.activeProvider path does. Keep the existing defaulting behavior intact by
only accepting non-empty strings before assigning activeProvider.

Comment on lines +237 to +243
const directiveRe = /eslint-(?:disable|enable)(?:-next-line|-line)?\b/;
const offenders = [];
for (const file of listTsFiles(settingsSrcDir)) {
const lines = readFileSync(file, 'utf8').split('\n');
lines.forEach((line, idx) => {
if (directiveRe.test(line)) {
offenders.push(file.replace(repoRoot + '/', '') + ':' + (idx + 1));

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.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Limit directive detection to comment syntax to avoid false positives.

On Line 237, the regex matches token text anywhere in a line, including strings. This test should only flag inline ESLint directive comments.

Suggested fix
-    const directiveRe = /eslint-(?:disable|enable)(?:-next-line|-line)?\b/;
+    const directiveRe =
+      /(?:\/\/|\/\*)\s*eslint-(?:disable|enable)(?:-next-line|-line)?\b/;
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
const directiveRe = /eslint-(?:disable|enable)(?:-next-line|-line)?\b/;
const offenders = [];
for (const file of listTsFiles(settingsSrcDir)) {
const lines = readFileSync(file, 'utf8').split('\n');
lines.forEach((line, idx) => {
if (directiveRe.test(line)) {
offenders.push(file.replace(repoRoot + '/', '') + ':' + (idx + 1));
const directiveRe =
/(?:\/\/|\/\*)\s*eslint-(?:disable|enable)(?:-next-line|-line)?\b/;
const offenders = [];
for (const file of listTsFiles(settingsSrcDir)) {
const lines = readFileSync(file, 'utf8').split('\n');
lines.forEach((line, idx) => {
if (directiveRe.test(line)) {
offenders.push(file.replace(repoRoot + '/', '') + ':' + (idx + 1));
🤖 Prompt for 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.

In `@scripts/tests/eslint-guard.test.js` around lines 237 - 243, The ESLint guard
test is flagging any line containing the directive text, including strings,
instead of only actual comment directives. Update the directive matching logic
in eslint-guard.test.js around directiveRe and the offenders scan so it only
matches inline ESLint comment syntax, and keep using
listTsFiles/readFileSync/lines.forEach to locate the affected lines. Make the
check ignore non-comment occurrences while still detecting eslint-disable and
eslint-enable directives in comments.

@github-actions

Copy link
Copy Markdown
Contributor

Code Coverage Summary

Package Lines Statements Functions Branches
CLI 55.92% 55.92% 57.84% 81.91%
Core 76.61% 76.61% 73.19% 83.11%
CLI Package - Full Text Report
-------------------|---------|----------|---------|---------|-------------------
File               | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-------------------|---------|----------|---------|---------|-------------------
All files          |   55.92 |    81.91 |   57.84 |   55.92 |                   
 src               |   70.04 |    65.71 |   89.09 |   70.04 |                   
  cli.tsx          |   56.97 |    59.74 |   78.57 |   56.97 | ...1286,1294-1313 
  ...st-helpers.ts |     100 |       60 |     100 |     100 | 23-34             
  ...ractiveCli.ts |   90.37 |     84.9 |   86.66 |   90.37 | ...04-209,282-284 
  ...liCommands.ts |   97.18 |    63.63 |     100 |   97.18 | 39-40             
  ...CliSupport.ts |   80.04 |    65.04 |      95 |   80.04 | ...76-478,500-501 
  ...ActiveAuth.ts |      60 |    68.42 |     100 |      60 | ...91-106,110-119 
 src/auth          |   98.07 |       80 |     100 |   98.07 |                   
  ...gs-adapter.ts |   98.07 |       80 |     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 |    74.1 |    92.93 |   67.18 |    74.1 |                   
  config.ts        |   94.61 |    91.83 |     100 |   94.61 | ...66-167,196-201 
  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.19 |      100 |       0 |   10.19 | ...71-190,192-197 
  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.59 |      100 |       0 |    7.59 |                   
  migrate.ts       |    7.59 |      100 |       0 |    7.59 | ...90-200,202-204 
 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        |   86.45 |    84.98 |   86.94 |   86.45 |                   
  ...deResolver.ts |   94.54 |    95.45 |     100 |   94.54 | 50-52             
  auth.ts          |   84.61 |    82.35 |     100 |   84.61 | 18-19,22-23,53-54 
  cliArgParser.ts  |   92.85 |    89.36 |     100 |   92.85 | ...24,285,287-290 
  config.ts        |     100 |      100 |     100 |     100 |                   
  configBuilder.ts |   95.41 |    95.52 |   66.66 |   95.41 | ...18-219,260-261 
  ...mentLoader.ts |    82.9 |    53.84 |     100 |    82.9 | ...29-131,139-142 
  extension.ts     |   75.07 |    88.23 |   78.04 |   75.07 | ...12-913,916-917 
  ...iveContext.ts |   93.75 |    91.66 |     100 |   93.75 | 79,81,87-92,232   
  ...iateConfig.ts |   96.39 |    97.05 |     100 |   96.39 | 53,150-152        
  keyBindings.ts   |     100 |      100 |     100 |     100 |                   
  ...rverConfig.ts |   83.33 |    94.44 |     100 |   83.33 | 23-39             
  paths.ts         |     100 |      100 |     100 |     100 |                   
  policy.ts        |   80.76 |      100 |      50 |   80.76 | 47-51             
  ...figRuntime.ts |   88.65 |    84.21 |     100 |   88.65 | ...22-429,440-443 
  ...eBootstrap.ts |   91.35 |     87.2 |   97.22 |   91.35 | ...07-809,818-819 
  ...Resolution.ts |   43.51 |    72.41 |    62.5 |   43.51 | ...72-291,303-311 
  ...pplication.ts |   85.03 |       65 |     100 |   85.03 | ...44,146-152,176 
  ...elResolver.ts |   90.38 |    73.68 |     100 |   90.38 | 40,42-43,70,79    
  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.95 |    80.62 |     100 |   86.95 | ...02,404,406,408 
  settings.ts      |   82.92 |    86.27 |   65.21 |   82.92 | ...40-441,496-497 
  ...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.83 |    90.62 |     100 |   95.83 | 54,126-129        
  ...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.18 |    84.44 |   87.61 |   76.18 |                   
  consent.ts       |   88.03 |    85.71 |     100 |   88.03 | ...77-378,381-382 
  ...ionConsent.ts |   87.38 |    76.66 |     100 |   87.38 | ...,64-67,113-116 
  ...Enablement.ts |    93.9 |       96 |     100 |    93.9 | ...06-212,275-277 
  ...sionLoader.ts |   93.33 |    89.36 |     100 |   93.33 | ...86-187,195-199 
  ...onSettings.ts |     100 |      100 |     100 |     100 |                   
  github.ts        |   62.19 |    81.73 |   70.83 |   62.19 | ...41-642,652-655 
  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 |   84.77 |    75.92 |     100 |   84.77 | ...90-291,309-312 
  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    |   66.86 |    61.81 |      75 |   66.86 |                   
  ...utoUpdater.ts |   66.86 |    61.81 |      75 |   66.86 | ...56-457,466,468 
 src/generated     |     100 |      100 |     100 |     100 |                   
  git-commit.ts    |     100 |      100 |     100 |     100 |                   
 ...egration-tests |   71.54 |    83.33 |   85.71 |   71.54 |                   
  ...st-helpers.ts |       0 |        0 |       0 |       0 | 1-79              
  test-utils.ts    |   91.93 |     86.2 |    92.3 |   91.93 | ...45,263-264,274 
 src/patches       |       0 |        0 |       0 |       0 |                   
  is-in-ci.ts      |       0 |        0 |       0 |       0 | 1-17              
 ...viders/logging |   89.31 |    90.24 |   69.23 |   89.31 |                   
  ...rvice-impl.ts |   44.44 |        0 |       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       |   97.65 |       92 |     100 |   97.65 |                   
  ...imeAdapter.ts |   97.65 |       92 |     100 |   97.65 | ...18-219,308-309 
 src/services      |   86.13 |    86.27 |   95.34 |   86.13 |                   
  ...mandLoader.ts |   79.75 |       75 |   83.33 |   79.75 | ...10-124,168-186 
  ...andService.ts |     100 |      100 |     100 |     100 |                   
  ...mandLoader.ts |   91.77 |    86.53 |     100 |   91.77 | ...10-215,300-307 
  ...omptLoader.ts |    67.5 |    67.85 |     100 |    67.5 | ...75,181-187,202 
  ...tArgParser.ts |   96.49 |    94.91 |     100 |   96.49 | ...,89-90,140-141 
  performResume.ts |   89.11 |    89.18 |     100 |   89.11 | ...61-264,270-271 
  types.ts         |       0 |        0 |       0 |       0 | 1                 
 ...mpt-processors |      98 |    92.85 |     100 |      98 |                   
  ...tProcessor.ts |     100 |      100 |     100 |     100 |                   
  ...lProcessor.ts |   97.88 |    92.45 |     100 |   97.88 | 80-81,265-266     
  types.ts         |     100 |      100 |     100 |     100 |                   
 ...o-continuation |   86.56 |    84.09 |   94.73 |   86.56 |                   
  ...ionService.ts |   86.56 |    84.09 |   94.73 |   86.56 | ...07,574,600-601 
 src/test-utils    |   76.07 |     90.9 |   26.78 |   76.07 |                   
  async.ts         |       0 |        0 |       0 |       0 | 1-34              
  ...eExtension.ts |     100 |      100 |     100 |     100 |                   
  ...omMatchers.ts |    14.7 |      100 |       0 |    14.7 | 13-45             
  ...andContext.ts |     100 |      100 |     100 |     100 |                   
  render.tsx       |   94.84 |    96.66 |      25 |   94.84 | ...51-156,259-260 
  ...e-testing.tsx |       0 |        0 |       0 |       0 | 1-56              
  ...iderConfig.ts |       0 |        0 |       0 |       0 | 1-19              
 src/ui            |   37.77 |    93.44 |   30.48 |   37.77 |                   
  App.tsx          |   37.25 |      100 |       0 |   37.25 | 64-91,97-104      
  AppContainer.tsx |     100 |      100 |     100 |     100 |                   
  ...erRuntime.tsx |   14.28 |      100 |   16.66 |   14.28 | 66-399            
  ...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 |                   
  ...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.08 |    76.71 |    76.9 |   71.08 |                   
  aboutCommand.ts  |   82.84 |    51.51 |   91.66 |   82.84 | ...92-193,195-196 
  authCommand.ts   |   49.52 |    77.33 |   58.33 |   49.52 | ...51-654,665-707 
  ...urlCommand.ts |      30 |      100 |       0 |      30 | 20-40             
  bugCommand.ts    |   71.23 |    30.76 |     100 |   71.23 | ...99-110,145-153 
  chatCommand.ts   |   69.72 |    74.62 |   66.66 |   69.72 | ...50-551,599-610 
  clearCommand.ts  |   88.88 |    88.88 |     100 |   88.88 | 96-103            
  ...essCommand.ts |    97.7 |    89.28 |     100 |    97.7 | 41,63-64          
  ...nueCommand.ts |     100 |      100 |     100 |     100 |                   
  copyCommand.ts   |     100 |      100 |     100 |     100 |                   
  debugCommands.ts |   13.29 |      100 |       0 |   13.29 | ...49,456,463,470 
  ...st-helpers.ts |   89.62 |     91.3 |      50 |   89.62 | ...93,95-96,98-99 
  ...icsCommand.ts |   66.28 |    32.83 |   84.61 |   66.28 | ...99-402,417-422 
  ...ticsTokens.ts |   90.96 |    87.17 |     100 |   90.96 | ...,67-72,107-108 
  ...ryCommand.tsx |    89.5 |    84.84 |     100 |    89.5 | ...29-137,204-212 
  docsCommand.ts   |     100 |      100 |     100 |     100 |                   
  ...extCommand.ts |   96.22 |    89.65 |     100 |   96.22 | 216-221           
  editorCommand.ts |     100 |      100 |     100 |     100 |                   
  ...onsCommand.ts |   41.27 |    88.09 |    62.5 |   41.27 | ...24-381,391-539 
  ...ionSection.ts |   83.33 |    93.33 |     100 |   83.33 | 28-34             
  helpCommand.ts   |     100 |      100 |     100 |     100 |                   
  hooksCommand.ts  |   89.62 |    87.27 |     100 |   89.62 | ...54,344-345,459 
  ideCommand.ts    |   69.87 |    73.52 |   69.23 |   69.87 | ...36-237,240-255 
  initCommand.ts   |   80.26 |    71.42 |   66.66 |   80.26 | 36-40,42-89       
  keyCommand.ts    |   89.87 |    80.76 |     100 |   89.87 | ...92,415-416,515 
  ...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 |   15.87 |      100 |       0 |   15.87 | 21-84             
  lspCommand.ts    |    90.9 |    87.17 |     100 |    90.9 | ...18-123,147-149 
  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    |   83.25 |     80.8 |   94.11 |   83.25 | ...89-490,517-518 
  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.05 |    80.55 |     100 |   97.05 | 27,40-41          
  ...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   |   51.74 |       60 |    87.5 |   51.74 | ...47,174,185-189 
  ...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 |   56.96 |    31.57 |   88.88 |   56.96 | ...89-290,299-304 
  quitCommand.ts   |   36.66 |      100 |       0 |   36.66 | 17-36             
  ...oreCommand.ts |   90.16 |    82.85 |     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  |   78.53 |    78.78 |     100 |   78.53 | ...78-186,247-254 
  ...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.75 |    77.77 |   95.23 |   85.75 | ...63-364,402-416 
  ...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.56 |    76.47 |     100 |   86.56 | ...59,293,324-325 
  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 |   11.62 |    39.04 |     7.5 |   11.62 |                   
  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   |    4.36 |      100 |       0 |    4.36 | ...38-263,266-347 
  ...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     |    7.14 |      100 |       0 |    7.14 | 16-29,42-97       
  ...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-224 
  ...esDisplay.tsx |   10.52 |      100 |       0 |   10.52 | 24-82             
  ...ogManager.tsx |    5.54 |      100 |       0 |    5.54 | 71-782,786-810    
  ...ngsDialog.tsx |   12.56 |      100 |       0 |   12.56 | ...48-172,176-247 
  ...rBoundary.tsx |   10.16 |        0 |       0 |   10.16 | ...19-164,182-195 
  ...ustDialog.tsx |   16.34 |      100 |       0 |   16.34 | ...2,70-81,84-143 
  Footer.tsx       |   11.06 |        0 |       0 |   11.06 | ...24-693,698-715 
  ...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 | 55-239,242-280    
  ...usDisplay.tsx |       0 |        0 |       0 |       0 | 1-47              
  InputPrompt.tsx  |   53.38 |     42.1 |   67.34 |   53.38 | ...1639-1644,1662 
  ...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 |   13.84 |      100 |       0 |   13.84 | 20-24,34-96       
  ...ingDialog.tsx |    4.92 |      100 |       0 |    4.92 | ...65-382,386-435 
  ...geDisplay.tsx |       0 |        0 |       0 |       0 | 1-41              
  ModelDialog.tsx  |     3.6 |      100 |       0 |     3.6 | ...66-739,743-829 
  ...tsDisplay.tsx |    3.82 |      100 |       0 |    3.82 | 32-205,208-259    
  ...fications.tsx |   17.32 |      100 |       0 |   17.32 | ...11-142,145-180 
  ...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.15 |      100 |       0 |    4.15 | ...68-554,557-632 
  ...istDialog.tsx |     4.6 |      100 |       0 |     4.6 | ...88-525,528-614 
  ...derDialog.tsx |    2.63 |      100 |       0 |    2.63 | 60-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 |    1.03 |      100 |       0 |    1.03 | ...1738,1743-2800 
  ...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        |    7.54 |      100 |       0 |    7.54 | 27-89             
  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    
  todo-utils.ts    |       0 |        0 |       0 |       0 | 1-7               
 ...leCreateWizard |   18.43 |       50 |       0 |   18.43 |                   
  ...aramsStep.tsx |   11.34 |      100 |       0 |   11.34 | ...34-247,259-343 
  ...ationStep.tsx |    7.12 |      100 |       0 |    7.12 | ...08-544,556-624 
  ...onfigStep.tsx |   12.35 |      100 |       0 |   12.35 | 19-25,36-117      
  ...electStep.tsx |    9.73 |      100 |       0 |    9.73 | ...13-280,296-341 
  ...ationMenu.tsx |       0 |        0 |       0 |       0 | 1-102             
  ...eSaveStep.tsx |    7.45 |      100 |       0 |    7.45 | ...76-305,317-396 
  ...ssSummary.tsx |   12.12 |      100 |       0 |   12.12 | 23-88             
  ...electStep.tsx |   16.92 |      100 |       0 |   16.92 | 28-97             
  TextInput.tsx    |    6.56 |      100 |       0 |    6.56 | ...01-111,119-202 
  constants.ts     |     100 |      100 |     100 |     100 |                   
  index.tsx        |   14.51 |      100 |       0 |   14.51 | ...94-223,232-316 
  types.ts         |     100 |      100 |     100 |     100 |                   
  utils.ts         |    5.15 |      100 |       0 |    5.15 | ...53-356,361-378 
  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-147     
  ...tEditForm.tsx |    1.77 |      100 |       0 |    1.77 | 30-619,622-640    
  ...tListMenu.tsx |    2.94 |      100 |       0 |    2.94 | 17-266,269-350    
  ...tMainMenu.tsx |   16.66 |      100 |       0 |   16.66 | 22-62             
  ...gerDialog.tsx |    2.39 |      100 |       0 |    2.39 | 29-601,604-680    
  ...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 |   14.36 |        0 |       0 |   14.36 |                   
  ...ethodStep.tsx |   22.47 |      100 |       0 |   22.47 | 44-129            
  ...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.01 |    88.63 |   12.67 |   18.01 |                   
  ...onMessage.tsx |   12.28 |      100 |       0 |   12.28 | 24-86             
  DiffRenderer.tsx |    3.02 |      100 |       0 |    3.02 | ...10-441,444-462 
  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  |   19.23 |      100 |       0 |   19.23 | 19-41             
  ...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.18 |      100 |       0 |    3.18 | 40-524,537-616    
  ...upMessage.tsx |    6.77 |      100 |       0 |    6.77 | ...03-300,304-379 
  ToolMessage.tsx  |    4.33 |      100 |       0 |    4.33 | 40-342,358-428    
  ...ltDisplay.tsx |   91.53 |    85.71 |     100 |   91.53 | 39-53,222-224     
  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 |   26.31 |      100 |       0 |   26.31 | 17-32             
 ...ponents/shared |   41.49 |    64.39 |   40.85 |   41.49 |                   
  ...ctionList.tsx |    4.31 |      100 |       0 |    4.31 | 36-123,128-206    
  MaxSizedBox.tsx  |   49.89 |     58.1 |      75 |   49.89 | ...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.84 |      100 |       0 |    3.84 | ...68-793,796-833 
  ...lizedList.tsx |   11.11 |      100 |       0 |   11.11 | 28-108            
  ...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 |   56.04 |     75.6 |    87.5 |   56.04 | ...74-181,205-251 
  ...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 |    71.73 |     100 |    90.2 | ...48-350,372-373 
  ...navigation.ts |   53.01 |    60.93 |   73.68 |   53.01 | ...39-360,383-405 
 ...mponents/views |    8.89 |      100 |       0 |    8.89 |                   
  ChatList.tsx     |    14.7 |      100 |       0 |    14.7 | 18-52             
  ...sionsList.tsx |    7.59 |      100 |       0 |    7.59 | 19-103            
  HooksList.tsx    |    10.1 |      100 |       0 |    10.1 | ...15-126,129-144 
  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-362             
  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 | 21-22             
  ...ateBuilder.ts |   66.66 |      100 |       0 |   66.66 | 21-22             
 ...ontainer/hooks |   55.17 |     87.1 |   56.52 |   55.17 |                   
  ...pBootstrap.ts |   94.71 |    58.33 |     100 |   94.71 | ...20-223,227-229 
  useAppDialogs.ts |   41.37 |      100 |   42.85 |   41.37 | ...63,182-398,418 
  ...ntHandlers.ts |     100 |      100 |     100 |     100 |                   
  useAppInput.ts   |    5.55 |      100 |       0 |    5.55 | 100-521,524-528   
  useAppLayout.ts  |    7.92 |      100 |       0 |    7.92 | 92-299,302-305    
  ...reenAction.ts |   13.63 |      100 |       0 |   13.63 | 23-42             
  ...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 | 131-139,143       
  ...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,167            
  ...yBootstrap.ts |      30 |      100 |       0 |      30 | 28-34             
  ...eybindings.ts |   86.28 |    78.18 |     100 |   86.28 | ...06-208,252-253 
  ...easurement.ts |   15.38 |      100 |       0 |   15.38 | 45-95             
  ...reshAction.ts |   79.16 |     37.5 |     100 |   79.16 | 51,82-85,87-96    
  ...untimeSync.ts |     100 |      100 |     100 |     100 |                   
  ...elTracking.ts |   26.22 |      100 |      50 |   26.22 | 20-24,60-113      
  ...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   |   52.76 |    79.53 |   51.68 |   52.76 |                   
  ...chContext.tsx |   88.23 |    66.66 |     100 |   88.23 | 27-28             
  FocusContext.tsx |       0 |        0 |       0 |       0 | 1-11              
  ...ssContext.tsx |   83.75 |     86.7 |    87.5 |   83.75 | ...17-520,573-574 
  MouseContext.tsx |   78.82 |       75 |      80 |   78.82 | ...00-101,111-117 
  ...erContext.tsx |       0 |        0 |       0 |       0 | 1-127             
  ...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 |   92.05 |    73.84 |     100 |   92.05 | ...85-486,498-499 
  ...onContext.tsx |     4.4 |      100 |       0 |     4.4 | ...40-395,400-407 
  ...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.37 |      100 |       0 |    3.37 | 27-167,170-200    
  ...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.42 |    85.73 |   72.52 |   68.42 |                   
  ...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.8 |    78.57 |   88.88 |    78.8 | ...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 | ...74-275,407-411 
  ...ndHandlers.ts |    17.6 |    27.27 |   22.22 |    17.6 | ...44-645,650-659 
  ...dPathUtils.ts |    95.7 |    90.52 |     100 |    95.7 | ...25-227,271-272 
  ...dProcessor.ts |     100 |      100 |     100 |     100 |                   
  ...sorSupport.ts |   68.72 |    70.83 |   66.66 |   68.72 | ...82-285,303-310 
  ...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 |   93.03 |    88.51 |     100 |   93.03 | ...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     
  ...BranchName.ts |     100 |    89.47 |     100 |     100 | 60,63             
  ...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 | 28-29             
  ...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 | 36-367,370-416    
  ...hestration.ts |     100 |      100 |     100 |     100 |                   
  ...oviderInfo.ts |       0 |        0 |       0 |       0 | 1-86              
  ...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.46 |    83.33 |   73.52 |   75.46 | ...41-657,808,815 
  ...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 |    88.88 |     100 |   89.78 | ...19-425,445-449 
  useSession.ts    |       0 |        0 |       0 |       0 | 1-23              
  ...ionBrowser.ts |     100 |      100 |     100 |     100 |                   
  ...serHelpers.ts |   95.79 |    85.21 |   97.36 |   95.79 | ...39-641,764-765 
  ...erKeypress.ts |   89.87 |    97.29 |   94.11 |   89.87 | 101-108,130-145   
  ...ngsCommand.ts |   18.75 |      100 |       0 |   18.75 | 10-25             
  ...ellHistory.ts |   90.75 |       80 |     100 |   90.75 | ...83,131-132,142 
  ...Completion.ts |   97.04 |    81.25 |     100 |   97.04 | 71-73,101-102     
  ...oryCommand.ts |       0 |        0 |       0 |       0 | 1-63              
  ...cessorCore.ts |   73.91 |       60 |     100 |   73.91 | ...18,154,174-201 
  ...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.17 |    90.9 |   85.73 | ...07-716,832-834 
 ...s/geminiStream |   88.04 |    80.28 |   89.09 |   88.04 |                   
  ...ersistence.ts |   98.29 |    95.12 |     100 |   98.29 | 162-164           
  ...tProcessor.ts |   77.85 |    69.56 |      80 |   77.85 | ...48-159,162-164 
  index.ts         |     100 |      100 |     100 |     100 |                   
  queryPreparer.ts |   63.15 |    18.18 |     100 |   63.15 | ...26-127,130-143 
  ...Dispatcher.ts |   90.14 |    85.45 |   91.66 |   90.14 | ...19,321-325,410 
  streamUtils.ts   |   98.98 |    94.87 |     100 |   98.98 | 349-351           
  thoughtState.ts  |   93.33 |    61.53 |     100 |   93.33 | 71-72,77-78       
  ...ionHandler.ts |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
  ...genticLoop.ts |   97.43 |     87.5 |      60 |   97.43 | 177-178,239,346   
  ...miniStream.ts |   99.33 |    88.23 |   85.71 |   99.33 | 87                
  ...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.63 |    89.28 |     100 |   73.63 | ...30-436,445-454 
  ...treamState.ts |   79.76 |    52.17 |     100 |   79.76 | ...79,200,237-238 
  ...ubmitQuery.ts |      86 |    66.66 |   81.81 |      86 | ...30-432,434-436 
 src/ui/layouts    |   83.46 |    55.17 |   82.75 |   83.46 |                   
  ...AppLayout.tsx |   80.98 |    71.42 |   83.33 |   80.98 | ...88-202,318-356 
  ...utHelpers.tsx |    84.6 |    52.94 |    82.6 |    84.6 | ...02-803,824-852 
 ...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 |    86.63 |   97.77 |      99 |                   
  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   |   99.38 |    98.63 |     100 |   99.38 | 326-327           
  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      |   55.71 |    86.36 |   67.89 |   55.71 |                   
  ...Colorizer.tsx |    5.64 |      100 |       0 |    5.64 | ...27-168,180-249 
  ...olePatcher.ts |   72.09 |      100 |   83.33 |   72.09 | 51-62             
  ...nRenderer.tsx |   27.87 |    63.26 |      45 |   27.87 | ...09,411,415-416 
  ...wnDisplay.tsx |    3.05 |      100 |       0 |    3.05 | ...89-814,825-829 
  ...eRenderer.tsx |   10.46 |      100 |       0 |   10.46 | ...28-379,386-419 
  ...tGenerator.ts |    76.4 |    53.84 |      60 |    76.4 | ...63,69-72,84-85 
  ...ketedPaste.ts |      60 |      100 |       0 |      60 | 13-14,17-18       
  clipboard.ts     |   97.29 |    84.61 |     100 |   97.29 | 40                
  ...boardUtils.ts |   63.09 |    76.74 |   83.33 |   63.09 | ...52-264,334-336 
  commandUtils.ts  |   93.11 |    95.34 |   95.83 |   93.11 | ...40-244,325-333 
  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.51 |    97.29 |      60 |   77.51 | 144-170,174-179   
  ...xportUtils.ts |   98.03 |    91.66 |     100 |   98.03 | 111-112           
  ...storyItems.ts |   99.04 |    94.44 |     100 |   99.04 | 72                
  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 |    85.71 |     100 |   66.66 | 75-94,103-104     
  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 |   91.84 |    66.66 |     100 |   91.84 | ...15-218,262-266 
  ...putHandler.ts |   89.89 |    89.91 |     100 |   89.89 | ...80-289,356-357 
  ...ityManager.ts |   94.33 |    85.71 |   93.18 |   94.33 | ...58-459,497,507 
  ...alContract.ts |     100 |      100 |     100 |     100 |                   
  terminalLinks.ts |     100 |      100 |     100 |     100 |                   
  ...colCleanup.ts |   95.45 |       75 |     100 |   95.45 | 39                
  ...lSequences.ts |     100 |      100 |     100 |     100 |                   
  terminalSetup.ts |    3.64 |      100 |       0 |    3.64 | 42-397            
  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.39 |    88.68 |    74.9 |   61.39 |                   
  ...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 
  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 |   92.53 |    91.66 |     100 |   92.53 | 55-56,61-64,67-70 
  ...arResolver.ts |   96.66 |    96.42 |     100 |   96.66 | 115-116           
  errors.ts        |   94.87 |       88 |     100 |   94.87 | 54-55,96-97       
  events.ts        |     100 |      100 |     100 |     100 |                   
  ...lativeTime.ts |     100 |      100 |     100 |     100 |                   
  gitUtils.ts      |   93.54 |       85 |     100 |   93.54 | 63-64,79-82       
  ...AutoUpdate.ts |   69.45 |    78.57 |      80 |   69.45 | ...67-268,282-347 
  ...lationInfo.ts |   99.49 |     98.3 |     100 |   99.49 | 61                
  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 |   86.64 |       84 |     100 |   86.64 | ...48-249,332-333 
  sessionUtils.ts  |     8.1 |      100 |       0 |     8.1 | 51-118,125-139    
  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    |   64.51 |    63.33 |   83.33 |   64.51 | ...98-199,206-227 
  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 |                   
  ...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 |   62.91 |    77.35 |      80 |   62.91 |                   
  ...taRedactor.ts |   78.06 |    78.09 |   82.75 |   78.06 | ...86-588,594-615 
  ...acyManager.ts |       0 |        0 |       0 |       0 | 1-176             
 ...ed-integration |    9.73 |     92.3 |    9.23 |    9.73 |                   
  ...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.7 |      100 |       0 |     4.7 | ...70-502,505-529 
  ...vider-auth.ts |    3.53 |      100 |       0 |    3.53 | ...17-224,227-287 
  ...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          |   76.61 |    83.11 |   73.19 |   76.61 |                   
 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.19 |    80.54 |   77.41 |   69.19 |                   
  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 |   97.39 |    76.31 |     100 |   97.39 | 76,103,132        
  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 |    76.92 |     100 |   86.09 | ...60-162,187-193 
  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        |   71.18 |    79.44 |   59.82 |   71.18 |                   
  ...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        |   59.84 |    72.83 |   57.14 |   59.84 | ...35-744,769-776 
  configBase.ts    |   68.81 |    72.09 |   72.72 |   68.81 | ...48-255,257-261 
  ...igBaseCore.ts |   70.13 |    94.28 |    45.2 |   70.13 | ...54-755,757-758 
  ...onstructor.ts |   97.14 |    90.14 |     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 |                   
  endpoints.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 |   61.51 |    73.46 |   68.75 |   61.51 | ...82,399,408,417 
  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 |   82.54 |    75.92 |   69.23 |   82.54 | ...89-505,515-525 
  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          |   81.09 |    78.78 |   83.33 |   81.09 |                   
  ...ssionTypes.ts |   68.42 |      100 |      20 |   68.42 | ...05-107,112-113 
  ...ntContract.ts |     100 |      100 |     100 |     100 |                   
  ...tGenerator.ts |     100 |       96 |     100 |     100 | 96                
  ...okTriggers.ts |   43.27 |    55.55 |      60 |   43.27 | ...76-277,301-306 
  geminiRequest.ts |      60 |      100 |       0 |      60 | 18-19             
  ...nAIWrapper.ts |   77.77 |      100 |   66.66 |   77.77 | 58-61,64-67       
  ...okTriggers.ts |   96.21 |     87.5 |     100 |   96.21 | ...19,165,219,268 
  logger.ts        |   81.06 |    81.81 |     100 |   81.06 | ...70-385,432-446 
  prompts.ts       |   82.85 |    56.33 |    91.3 |   82.85 | ...55,558,619-620 
  subagentTypes.ts |     100 |      100 |   83.33 |     100 |                   
  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       |   99.19 |    98.82 |     100 |   99.19 |                   
  EmojiFilter.ts   |   99.19 |    98.82 |     100 |   99.19 | 208-209           
 src/hooks         |   82.96 |    84.55 |   80.12 |   82.96 |                   
  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.45 |    84.73 |   93.75 |   91.45 | ...55,795-801,846 
  hookPlanner.ts   |   98.79 |    93.33 |     100 |   98.79 | 103               
  hookRegistry.ts  |   98.25 |    89.23 |     100 |   98.25 | 353,355,357,359   
  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 |      100 |       0 |   20.77 | ...6,82-90,96-109 
  types.ts         |   52.19 |    87.09 |      50 |   52.19 | ...21-422,433-434 
 ...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.48 |    92.41 |    87.5 |   83.48 |                   
  hydration.ts     |    4.76 |      100 |       0 |    4.76 | 65-131,153-233    
  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      |   90.58 |    88.88 |      92 |   90.58 | ...72-273,393-406 
  schema.ts        |     100 |      100 |     100 |     100 |                   
  transformer.ts   |     100 |      100 |     100 |     100 |                   
 src/parsers       |   71.41 |    73.68 |   88.88 |   71.41 |                   
  ...CallParser.ts |   71.85 |    77.12 |   86.66 |   71.85 | ...6,981,987-1002 
  ...rser-utils.ts |   66.15 |    42.85 |     100 |   66.15 | ...58,66-67,71-76 
 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.46 |     87.3 |   82.22 |   82.46 |                   
  ...lateEngine.ts |   93.83 |    87.36 |     100 |   93.83 | ...04-407,418-421 
  index.ts         |       0 |      100 |     100 |       0 | 5-41              
  prompt-cache.ts  |    99.1 |    97.46 |     100 |    99.1 | 227-228           
  ...-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.28 |    83.18 |   80.95 |   85.28 | ...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 |    45.74 |   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 |    79.31 |     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.81 |     85.2 |   97.93 |   90.81 |                   
  ...ntegration.ts |    83.9 |       75 |     100 |    83.9 | ...31-132,143-144 
  ReplayEngine.ts  |    97.1 |     91.2 |     100 |    97.1 | 121-122,473-480   
  ...nDiscovery.ts |   92.12 |    84.53 |     100 |   92.12 | ...35,252-254,304 
  ...ockManager.ts |   89.41 |    81.25 |     100 |   89.41 | ...98,213,240-241 
  ...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       |   74.73 |    84.48 |   75.86 |   74.73 |                   
  ...imeContext.ts |     100 |      100 |     100 |     100 |                   
  ...timeLoader.ts |   84.37 |    71.18 |   83.33 |   84.37 | ...43,247,274-277 
  ...ntimeState.ts |   95.63 |    90.54 |     100 |   95.63 | ...01-502,542-543 
  ...ionContext.ts |   83.54 |    93.33 |   71.42 |   83.54 | ...56-157,168-175 
  ...imeContext.ts |   73.96 |    97.61 |   60.71 |   73.96 | ...60-265,267-274 
  index.ts         |       0 |        0 |       0 |       0 | 1-19              
  ...imeContext.ts |      70 |       90 |     100 |      70 | 88-108            
  ...meAdapters.ts |     4.8 |      100 |       0 |     4.8 | ...84-118,124-170 
  ...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.37 |    85.65 |   88.26 |   84.37 |                   
  ...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.62 |    96.66 |     100 |   98.62 | 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.6 |    86.95 |      80 |    86.6 | ...35-138,142-146 
  index.ts         |       0 |        0 |       0 |       0 | 1-23              
  ...ionService.ts |   95.77 |    93.33 |     100 |   95.77 | ...53-354,364-365 
  ...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.55 |    85.71 |    62.5 |   71.55 | ...80-303,362-375 
  ...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 | ...20,151-152,208 
  ...yLifecycle.ts |   86.77 |    78.68 |   88.88 |   86.77 | ...92,297,354-356 
  shellPtyState.ts |       0 |        0 |       0 |       0 | 1                 
  ...xt-tracker.ts |   94.87 |       90 |    87.5 |   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 |   81.11 |    84.63 |   84.39 |   81.11 |                   
  ...Converters.ts |   83.29 |    81.96 |   81.81 |   83.29 | ...51-452,558-581 
  HistoryEvents.ts |       0 |        0 |       0 |       0 |                   
  ...oryService.ts |   80.45 |    89.39 |   80.39 |   80.45 | ...85-686,765-766 
  IContent.ts      |    89.7 |       76 |     100 |    89.7 | ...40,250-251,262 
  ...calToolIds.ts |   96.82 |    92.59 |     100 |   96.82 | 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 |   69.69 |    71.42 |   66.66 |   69.69 | 54-64             
  ...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        |   76.77 |     82.9 |   77.41 |   76.77 |                   
  skillLoader.ts   |   63.96 |    79.66 |   83.33 |   63.96 | ...63-299,302-338 
  skillManager.ts  |   91.28 |     86.2 |   73.68 |   91.28 | ...57-358,364-365 
 src/storage       |    98.7 |    96.96 |     100 |    98.7 |                   
  ...FileWriter.ts |     100 |      100 |     100 |     100 |                   
  ...nceService.ts |   98.67 |    96.96 |     100 |   98.67 | 294-295           
  ...ey-storage.ts |     100 |      100 |     100 |     100 |                   
  secure-store.ts  |     100 |      100 |     100 |     100 |                   
  sessionTypes.ts  |     100 |      100 |     100 |     100 |                   
 src/telemetry     |   15.17 |        0 |       0 |   15.17 |                   
  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-115             
  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    |      50 |       60 |   18.18 |      50 |                   
  config.ts        |   65.38 |      100 |   13.04 |   65.38 | ...,91-96,155-193 
  index.ts         |       0 |        0 |       0 |       0 | 1-9               
  mock-tool.ts     |       0 |        0 |       0 |       0 | 1-158             
  ...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 | ...13-276,284-347 
  tools.ts         |   43.02 |      100 |   31.25 |   43.02 | ...99-211,214-221 
 src/todo          |   13.04 |      100 |       0 |   13.04 |                   
  todoFormatter.ts |   13.04 |      100 |       0 |   13.04 | ...64,170-211,214 
 src/tools         |   79.33 |    83.33 |   91.66 |   79.33 |                   
  ...ey-storage.ts |   79.33 |    83.33 |   91.66 |   79.33 | ...05-310,319-324 
 ...tools-adapters |    43.8 |    61.68 |   31.57 |    43.8 |                   
  ...iceAdapter.ts |   61.22 |       80 |   57.14 |   61.22 | ...52,55-60,65-68 
  ...iceAdapter.ts |   27.58 |      100 |      25 |   27.58 | 21-26,29-37,40-45 
  ...iceAdapter.ts |   22.58 |      100 |      25 |   22.58 | 18-25,28-43,46-47 
  ...iceAdapter.ts |      30 |      100 |       0 |      30 | 16-18,21-22,25-33 
  ...BusAdapter.ts |   11.76 |      100 |      20 |   11.76 | ...07-120,123-129 
  ...iceAdapter.ts |      60 |      100 |       0 |      60 | ...27,36-37,40-41 
  ...iceAdapter.ts |   53.84 |      100 |      25 |   53.84 | 17-18,21-22,26-27 
  ...ostAdapter.ts |   19.88 |      100 |    4.76 |   19.88 | ...16-222,225-239 
  ...iceAdapter.ts |   15.58 |        0 |       0 |   15.58 | ...9,82-84,87-102 
  ...iceAdapter.ts |   52.94 |      100 |       0 |   52.94 | ...18,21-22,25-26 
  ...iceAdapter.ts |   49.83 |    57.31 |      68 |   49.83 | ...53-796,801-804 
  ...iceAdapter.ts |   68.18 |       50 |      50 |   68.18 | 32-36,39-40       
  ...ostAdapter.ts |    29.9 |      100 |    9.09 |    29.9 | ...48-154,157-158 
  ...ageAdapter.ts |   46.15 |      100 |       0 |   46.15 | ...33,36-37,40-41 
  ...ostAdapter.ts |   67.74 |      100 |      50 |   67.74 | ...57,60-61,64-65 
  ...iceAdapter.ts |      50 |      100 |      50 |      50 | 19-23             
  ...iceHelpers.ts |   63.79 |    59.18 |      75 |   63.79 | ...79-280,284-285 
  index.ts         |     100 |      100 |     100 |     100 |                   
 src/utils         |   82.56 |    86.82 |   82.94 |   82.56 |                   
  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             
  channel.ts       |     100 |      100 |     100 |     100 |                   
  ...pointUtils.ts |   95.58 |    95.23 |     100 |   95.58 | 150-155           
  debugLogger.ts   |     100 |      100 |     100 |     100 |                   
  delay.ts         |     100 |      100 |     100 |     100 |                   
  editor.ts        |   96.46 |    90.38 |    90.9 |   96.46 | ...27-228,230-231 
  ...entContext.ts |     100 |      100 |     100 |     100 |                   
  errorParsing.ts  |   93.23 |    85.14 |   95.23 |   93.23 | ...73,213,297-298 
  ...rReporting.ts |   84.44 |    86.66 |     100 |   84.44 | 47-51,117-125     
  errors.ts        |   74.67 |       95 |   46.66 |   74.67 | ...27-128,189-213 
  events.ts        |   65.74 |      100 |    62.5 |   65.74 | ...04-309,315-318 
  exitCodes.ts     |     100 |      100 |     100 |     100 |                   
  ...sionLoader.ts |   80.98 |    62.85 |    92.3 |   80.98 | ...70-171,224-232 
  fetch.ts         |   24.32 |      100 |       0 |   24.32 | 23-28,32-86,89-90 
  fileDiffUtils.ts |     100 |      100 |     100 |     100 |                   
  fileUtils.ts     |    93.8 |    89.93 |      95 |    93.8 | ...82,452,486-492 
  formatters.ts    |   18.18 |      100 |       0 |   18.18 | 8-16              
  ...eUtilities.ts |   91.25 |       90 |   93.75 |   91.25 | ...95-299,347-357 
  ...rStructure.ts |   96.35 |       95 |     100 |   96.35 | 98-101,387-392    
  getPty.ts        |    12.5 |      100 |       0 |    12.5 | 21-36             
  ...noreParser.ts |   89.28 |    89.58 |      80 |   89.28 | ...30-231,236-250 
  ...ineChanges.ts |       0 |        0 |       0 |       0 | 1-275             
  gitUtils.ts      |   42.55 |    71.42 |      50 |   42.55 | 32-33,40-44,53-80 
  googleErrors.ts  |   77.24 |    72.72 |     100 |   77.24 | ...01,348,354-355 
  ...uotaErrors.ts |    95.5 |    86.59 |     100 |    95.5 | ...69-270,308-309 
  ide-trust.ts     |      60 |      100 |       0 |      60 | 14-15             
  ...rePatterns.ts |     100 |    96.55 |     100 |     100 | 249               
  ...ionManager.ts |     100 |    88.88 |     100 |     100 | 24                
  ...edit-fixer.ts |       0 |        0 |       0 |       0 | 1-156             
  ...yDiscovery.ts |    83.6 |    78.26 |    87.5 |    83.6 | ...60-761,764-765 
  ...tProcessor.ts |   95.79 |    89.41 |   93.75 |   95.79 | ...17-318,413-414 
  ...Inspectors.ts |       0 |        0 |       0 |       0 | 1-23              
  output-format.ts |   36.36 |      100 |       0 |   36.36 | ...53-154,164-185 
  package.ts       |     100 |      100 |     100 |     100 |                   
  ...erCoercion.ts |   86.66 |    82.89 |     100 |   86.66 | ...09-210,272-273 
  partUtils.ts     |   95.31 |    94.59 |     100 |   95.31 | 28,101-102        
  pathReader.ts    |   22.58 |      100 |       0 |   22.58 | ...22,28-29,41-60 
  paths.ts         |    87.5 |    85.18 |   92.85 |    87.5 | ...49-250,265-275 
  ...rDetection.ts |   53.62 |    83.33 |   83.33 |   53.62 | ...01-102,112-113 
  ...archTarget.ts |   89.58 |    69.23 |     100 |   89.58 | 45-47,65-66       
  retry.ts         |   82.61 |    88.01 |   91.66 |   82.61 | ...1007,1012-1013 
  ...thResolver.ts |     100 |      100 |     100 |     100 |                   
  ...nStringify.ts |     100 |      100 |     100 |     100 |                   
  sanitization.ts  |     100 |      100 |     100 |     100 |                   
  ...aValidator.ts |   93.67 |    76.31 |     100 |   93.67 | ...94-295,312-323 
  ...r-launcher.ts |   89.34 |       80 |     100 |   89.34 | ...84-189,194-195 
  session.ts       |     100 |      100 |     100 |     100 |                   
  shell-parser.ts  |   23.82 |    45.45 |   42.85 |   23.82 | ...97-411,436-475 
  shell-utils.ts   |   84.74 |    88.88 |   95.45 |   84.74 | ...47-553,722-731 
  ...Completion.ts |   94.16 |     92.3 |     100 |   94.16 | 69-75             
  stdio.ts         |   84.21 |    59.09 |     100 |   84.21 | ...21-125,134-138 
  ...dleTimeout.ts |   98.57 |    92.59 |     100 |   98.57 | 79                
  summarizer.ts    |     100 |    88.88 |     100 |     100 | 91                
  ...emEncoding.ts |   97.16 |    91.42 |     100 |   97.16 | 115-116,168       
  terminal.ts      |   34.09 |      100 |       0 |   34.09 | ...55,58-59,62-66 
  ...Serializer.ts |   98.16 |    92.18 |     100 |   98.16 | ...,98-99,153-155 
  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    |   66.94 |    76.92 |      75 |   66.94 | ...36-137,158-182 
  ...putLimiter.ts |   95.14 |    81.63 |     100 |   95.14 | ...5-66,78-79,113 
  unicodeUtils.ts  |     100 |      100 |     100 |     100 |                   
  ...untManager.ts |   89.83 |    88.57 |     100 |   89.83 | ...0,78-83,99-101 
  version.ts       |     100 |      100 |     100 |     100 |                   
  ...aceContext.ts |   96.85 |    95.23 |    92.3 |   96.85 | 95-96,110-111     
 ...ils/filesearch |   88.24 |    89.93 |   93.54 |   88.24 |                   
  crawlCache.ts    |     100 |      100 |     100 |     100 |                   
  crawler.ts       |   83.15 |     82.6 |      60 |   83.15 | ...,97-99,111-116 
  fileSearch.ts    |   83.05 |    86.51 |     100 |   83.05 | ...06-307,309-310 
  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.

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.

Eliminate all inline ESLint disables in packages/settings

1 participant