Skip to content

feat(goal): abandon impossible /goal conditions instead of looping#322

Merged
mabry1985 merged 1 commit into
mainfrom
feat/fail-impossible-goals
May 27, 2026
Merged

feat(goal): abandon impossible /goal conditions instead of looping#322
mabry1985 merged 1 commit into
mainfrom
feat/fail-impossible-goals

Conversation

@mabry1985

Copy link
Copy Markdown

What

Port of QwenLM/qwen-code#4230 ("fail impossible goals"), adapted to our goal subsystem (packages/core/src/goal, single goalEvaluator) rather than upstream's goalJudge architecture.

/goal keeps the agent working turn-after-turn until a small model confirms the condition holds. Today, a genuinely unachievable condition loops forever (until /goal clear or a budget cap). This adds a terminal "impossible" verdict: when the evaluator determines the condition can never be satisfied in this session, the autonomous loop stops and the goal is recorded as failed.

Guardrails (mirrors upstream intent)

impossible: true is only used when the condition is genuinely unachievable — self-contradictory, depends on an unavailable resource/capability, or all reasonable approaches are exhausted and the transcript confirms no path forward. Specifically:

  • The assistant claiming impossibility is evidence, not proof — the evaluator must independently confirm.
  • "When in doubt, return {met: false} without impossible."
  • impossible is only honoured alongside met: false (ignored on a met verdict).
  • An evaluator error or empty reply never fails a goal — it stays met: false and continues, so the guardrail can't strand a solvable goal.

Changes

  • types: GoalEvaluationResult.impossible, GoalState.failedAt
  • goalEvaluator: prompt documents the third verdict shape + guardrails; parser reads impossible (only when not met)
  • GoalManager: markImpossible(reason) → terminal lastFailed state; getLastFailedGoal(); reset() clears it
  • client: impossible verdict → markImpossible and stop (no continuation); logs the abandonment
  • goalCommand: /goal status reports an abandoned-as-impossible goal, preferring the most recent terminal outcome

Tests

60 goal tests pass — parser (impossible parsed when not-met, ignored when met, omitted when absent/false), manager (markImpossible/getLastFailedGoal/reset), and status-text (impossible report, most-recent-terminal preference). tsc + eslint clean.

Note / possible follow-up

I deliberately scoped out upstream's dedicated GoalStatusMessage UI component. Terminal state is surfaced via the pill clearing + /goal status (consistent with how achieved goals already work). A richer inline "goal failed" message could be a small follow-up if wanted.

🤖 Generated with Claude Code

Ported from QwenLM#4230, adapted to our goal subsystem
(core/src/goal, single goalEvaluator) rather than upstream's goalJudge.

The goal evaluator can now return a terminal "impossible" verdict — used only
when the condition is genuinely unachievable in this session (self-
contradictory, depends on an unavailable resource, or all reasonable
approaches are exhausted). When it fires, the autonomous /goal loop stops and
the goal is recorded as failed instead of continuing forever.

Guardrails mirror upstream: the assistant claiming impossibility is evidence,
not proof; "impossible" is only honoured alongside met:false; and an evaluator
error or empty reply never fails a goal (stays met:false, continues).

- types: `GoalEvaluationResult.impossible`, `GoalState.failedAt`
- goalEvaluator: prompt + parser support the third verdict shape
- GoalManager: `markImpossible(reason)` / `getLastFailedGoal()`; reset clears it
- client: impossible verdict → markImpossible + stop (no continuation)
- goalCommand: `/goal` status reports an abandoned-as-impossible goal,
  preferring the most recent terminal outcome
- tests: parser, manager, and status-text coverage (60 goal tests pass)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@protoquinn

protoquinn Bot commented May 27, 2026

Copy link
Copy Markdown

👀 Quinn is reviewing — verdict (PASS / WARN / FAIL) + findings to follow.

@coderabbitai

coderabbitai Bot commented May 27, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@mabry1985, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 7 minutes and 36 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

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

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 8fbf6157-5a47-4fa9-b29f-d1defa4156b8

📥 Commits

Reviewing files that changed from the base of the PR and between 8a7cb38 and 97bcbdb.

📒 Files selected for processing (8)
  • packages/cli/src/ui/commands/goalCommand.test.ts
  • packages/cli/src/ui/commands/goalCommand.ts
  • packages/core/src/core/client.ts
  • packages/core/src/goal/GoalManager.test.ts
  • packages/core/src/goal/GoalManager.ts
  • packages/core/src/goal/goalEvaluator.test.ts
  • packages/core/src/goal/goalEvaluator.ts
  • packages/core/src/goal/types.ts
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/fail-impossible-goals

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

@protoquinn

protoquinn Bot commented May 27, 2026

Copy link
Copy Markdown

QA Audit — PR #322 | feat(goal): abandon impossible /goal conditions instead of looping

VERDICT: PASS


CI Status

  • CodeQL: in_progress
  • Lint: in_progress
    (CI still running but diff shows no blocking issues; will not hold)

Diff Review
This PR adds a terminal "impossible" verdict to the goal subsystem, closing the loop on conditions that are genuinely unachievable rather than letting the autonomous loop run forever. Key changes:

  • types: GoalEvaluationResult.impossible, GoalState.failedAt + lastReason
  • goalEvaluator: prompt documents the third verdict shape + all guardrails; parser reads impossible only when met: false
  • GoalManager: markImpossible(reason)lastFailed; getLastFailedGoal(); reset() clears it
  • client: impossible verdict calls markImpossible and stops the autonomous loop immediately
  • goalCommand: /goal status renders the abandonment with its reason, preferring most-recent terminal outcome

Observations

  • All guardrails from the PR description are structurally enforced:
    • impossible is only acted on alongside met: false ✓ (client.ts branch guards this)
    • "When in doubt, return {met: false}" is documented in the prompt string ✓ - Empty/malformed eval replies fall through to else { met: false } ✓ — no new failure path
  • Test coverage is thorough: parser cases (impossible when not-met / ignored when met / absent), manager state machine, status text, and the most-recent-terminal preference ordering
  • reset() now clears lastFailed, consistent with the session-clear semantics
  • ClaWPATCH unavailable at time of review (checkout cache ref error on main), but the diff is well-scoped and low-risk — core logic touches only goal-related filesChecks:7 | Passed: 7 | Failed: 0 | Gaps: 0

✅ Submitted APPROVE review on protoLabsAI/protoCLI#322.

@github-actions

Copy link
Copy Markdown

Code Coverage Summary

Package Lines Statements Functions Branches
CLI 54.79% 54.79% 68.17% 79.05%
Core 71.85% 71.85% 75.04% 80.87%
CLI Package - Full Text Report
-------------------|---------|----------|---------|---------|-------------------
File               | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-------------------|---------|----------|---------|---------|-------------------
All files          |   54.79 |    79.05 |   68.17 |   54.79 |                   
 src               |   65.89 |     63.5 |   66.66 |   65.89 |                   
  gemini.tsx       |   59.18 |    57.14 |      60 |   59.18 | ...89,597-600,609 
  ...ractiveCli.ts |   58.13 |    59.72 |      50 |   58.13 | ...99,514,518-654 
  ...liCommands.ts |   85.09 |    70.83 |     100 |   85.09 | ...51,253,402,409 
  ...ActiveAuth.ts |   94.11 |    82.35 |     100 |   94.11 | 27-30             
 ...cp-integration |    5.43 |    33.33 |      10 |    5.43 |                   
  acpAgent.ts      |    2.95 |        0 |       0 |    2.95 | ...36-142,145-719 
  authMethods.ts   |   17.85 |      100 |       0 |   17.85 | 11-22,25-29,32-37 
  errorCodes.ts    |       0 |        0 |       0 |       0 | 1-22              
  ...DirContext.ts |     100 |      100 |     100 |     100 |                   
 ...ration/service |   68.65 |    83.33 |   66.66 |   68.65 |                   
  filesystem.ts    |   68.65 |    83.33 |   66.66 |   68.65 | ...32,77-94,97-98 
 ...ration/session |   64.41 |    59.22 |      75 |   64.41 |                   
  ...ryReplayer.ts |   76.31 |    77.14 |      90 |   76.31 | ...21-222,230-231 
  Session.ts       |   56.94 |    46.71 |      64 |   56.94 | ...1457,1463-1466 
  ...entTracker.ts |   90.85 |    84.84 |      90 |   90.85 | ...35,199,251-260 
  index.ts         |       0 |        0 |       0 |       0 | 1-40              
  ...ssionUtils.ts |   74.59 |    73.07 |     100 |   74.59 | ...73-189,204-206 
  types.ts         |       0 |        0 |       0 |       0 | 1                 
 ...ssion/emitters |   92.48 |    87.12 |      92 |   92.48 |                   
  BaseEmitter.ts   |    82.6 |       75 |      80 |    82.6 | 23-24,50-51       
  ...ageEmitter.ts |     100 |    83.33 |     100 |     100 | 84-86             
  PlanEmitter.ts   |     100 |      100 |     100 |     100 |                   
  ...allEmitter.ts |   91.37 |    86.79 |     100 |   91.37 | ...28-229,318,326 
  index.ts         |       0 |        0 |       0 |       0 | 1-10              
 src/commands      |   70.63 |      100 |   15.38 |   70.63 |                   
  auth.ts          |      44 |      100 |       0 |      44 | ...50,59-63,66-67 
  extensions.tsx   |   96.55 |      100 |      50 |   96.55 | 37                
  hooks.tsx        |   66.66 |      100 |       0 |   66.66 | 20-24             
  mcp.ts           |   94.73 |      100 |      50 |   94.73 | 28                
  setup.ts         |   84.61 |      100 |       0 |   84.61 | 18-19             
 src/commands/auth |   44.74 |    95.65 |   64.28 |   44.74 |                   
  handler.ts       |   28.02 |    93.75 |   16.66 |   28.02 | 55-352            
  ...veSelector.ts |     100 |    96.66 |     100 |     100 | 58                
 ...nds/extensions |   84.53 |    88.95 |   81.81 |   84.53 |                   
  consent.ts       |   71.65 |    89.28 |   42.85 |   71.65 | ...85-141,156-162 
  disable.ts       |     100 |      100 |     100 |     100 |                   
  enable.ts        |     100 |      100 |     100 |     100 |                   
  install.ts       |    75.6 |    66.66 |   66.66 |    75.6 | ...39-142,145-153 
  link.ts          |     100 |      100 |     100 |     100 |                   
  list.ts          |     100 |      100 |     100 |     100 |                   
  new.ts           |     100 |      100 |     100 |     100 |                   
  settings.ts      |   99.15 |      100 |   83.33 |   99.15 | 151               
  uninstall.ts     |    37.5 |      100 |   33.33 |    37.5 | 23-45,57-64,67-70 
  update.ts        |   96.32 |      100 |     100 |   96.32 | 101-105           
  utils.ts         |   60.24 |    28.57 |     100 |   60.24 | ...81,83-87,89-93 
 ...les/mcp-server |       0 |        0 |       0 |       0 |                   
  example.ts       |       0 |        0 |       0 |       0 | 1-60              
 src/commands/mcp  |   91.28 |    82.97 |   88.88 |   91.28 |                   
  add.ts           |     100 |    96.66 |     100 |     100 | 213               
  list.ts          |   91.22 |    80.76 |      80 |   91.22 | ...19-121,146-147 
  reconnect.ts     |   76.72 |    71.42 |   85.71 |   76.72 | 35-48,153-175     
  remove.ts        |     100 |       80 |     100 |     100 | 21-25             
 ...commands/setup |    23.4 |    81.25 |   21.42 |    23.4 |                   
  handler.ts       |    7.99 |      100 |       0 |    7.99 | 57-578            
  ...lDiscovery.ts |   93.75 |    81.25 |     100 |   93.75 | ...,86-87,103-104 
 src/config        |   91.22 |    80.11 |   81.53 |   91.22 |                   
  auth.ts          |   86.66 |    77.55 |     100 |   86.66 | ...92-193,209-210 
  config.ts        |   87.26 |    81.18 |      65 |   87.26 | ...1236,1258-1259 
  keyBindings.ts   |   96.15 |       50 |     100 |   96.15 | 161-164           
  ...idersScope.ts |      92 |       90 |     100 |      92 | 11-12             
  sandboxConfig.ts |   54.16 |    23.07 |   66.66 |   54.16 | ...44,54-68,73-89 
  settings.ts      |   80.69 |    82.05 |   81.81 |   80.69 | ...98-699,775-792 
  ...ingsSchema.ts |     100 |      100 |     100 |     100 |                   
  ...tedFolders.ts |   96.29 |       94 |     100 |   96.29 | ...88-190,205-206 
  webSearch.ts     |   42.37 |       25 |     100 |   42.37 | ...6,86-93,96-112 
 ...nfig/migration |   94.56 |    78.94 |   83.33 |   94.56 |                   
  index.ts         |   93.93 |    88.88 |     100 |   93.93 | 85-86             
  scheduler.ts     |   96.55 |    77.77 |     100 |   96.55 | 19-20             
  types.ts         |       0 |        0 |       0 |       0 | 1                 
 ...ation/versions |   93.63 |     94.5 |     100 |   93.63 |                   
  ...-v2-shared.ts |     100 |      100 |     100 |     100 |                   
  v1-to-v2.ts      |   81.75 |    90.19 |     100 |   81.75 | ...28-229,231-247 
  v2-to-v3.ts      |     100 |      100 |     100 |     100 |                   
 src/constants     |   93.02 |    94.11 |   66.66 |   93.02 |                   
  ...dardApiKey.ts |     100 |      100 |     100 |     100 |                   
  codingPlan.ts    |   92.74 |    94.11 |   66.66 |   92.74 | ...00-301,309-321 
 src/core          |   65.71 |    77.77 |   66.66 |   65.71 |                   
  auth.ts          |    9.52 |      100 |       0 |    9.52 | 21-48             
  initializer.ts   |   84.37 |    33.33 |     100 |   84.37 | 41,55-58          
  theme.ts         |     100 |      100 |     100 |     100 |                   
 src/generated     |     100 |      100 |     100 |     100 |                   
  git-commit.ts    |     100 |      100 |     100 |     100 |                   
 src/i18n          |   43.69 |    76.19 |   38.88 |   43.69 |                   
  index.ts         |   26.11 |    76.92 |   26.66 |   26.11 | ...35-236,246-257 
  languages.ts     |   98.27 |       75 |     100 |   98.27 | 88                
 src/i18n/locales  |       0 |        0 |       0 |       0 |                   
  de.js            |       0 |        0 |       0 |       0 | 1-1967            
  en.js            |       0 |        0 |       0 |       0 | 1-2230            
  fr.js            |       0 |        0 |       0 |       0 | 1-2097            
  ja.js            |       0 |        0 |       0 |       0 | 1-1461            
  pt.js            |       0 |        0 |       0 |       0 | 1-1959            
  ru.js            |       0 |        0 |       0 |       0 | 1-1966            
  zh.js            |       0 |        0 |       0 |       0 | 1-1813            
 ...nonInteractive |   64.41 |    69.49 |   69.56 |   64.41 |                   
  session.ts       |   68.04 |    67.27 |   82.35 |   68.04 | ...77-678,686-696 
  types.ts         |    42.5 |      100 |   33.33 |    42.5 | ...74-575,578-579 
 ...active/control |   76.97 |       88 |      80 |   76.97 |                   
  ...rolContext.ts |    7.14 |        0 |       0 |    7.14 | 54-88             
  ...Dispatcher.ts |   91.63 |    91.66 |   88.88 |   91.63 | ...54-372,387,390 
  ...rolService.ts |       8 |        0 |       0 |       8 | 46-179            
 ...ol/controllers |    7.25 |       80 |   13.79 |    7.25 |                   
  ...Controller.ts |   19.32 |      100 |      60 |   19.32 | 81-118,127-210    
  ...Controller.ts |       0 |        0 |       0 |       0 | 1-56              
  ...Controller.ts |    3.96 |      100 |   11.11 |    3.96 | ...61-379,389-494 
  ...Controller.ts |   14.06 |      100 |       0 |   14.06 | ...82-117,130-133 
  ...Controller.ts |    5.57 |      100 |       0 |    5.57 | ...85-397,406-431 
 .../control/types |       0 |        0 |       0 |       0 |                   
  serviceAPIs.ts   |       0 |        0 |       0 |       0 | 1                 
 ...Interactive/io |   97.57 |    92.59 |   96.15 |   97.57 |                   
  ...putAdapter.ts |   97.31 |    91.35 |     100 |   97.31 | ...1277,1302-1303 
  ...putAdapter.ts |      96 |    91.66 |   85.71 |      96 | 51-52             
  ...nputReader.ts |     100 |    94.73 |     100 |     100 | 67                
  ...putAdapter.ts |   98.23 |      100 |   89.47 |   98.23 | 70-71,111-112     
 src/patches       |       0 |        0 |       0 |       0 |                   
  is-in-ci.ts      |       0 |        0 |       0 |       0 | 1-17              
 src/services      |   89.53 |    87.55 |   96.87 |   89.53 |                   
  ...mandLoader.ts |     100 |      100 |     100 |     100 |                   
  ...killLoader.ts |     100 |      100 |     100 |     100 |                   
  ...andService.ts |     100 |      100 |     100 |     100 |                   
  ...mandLoader.ts |   86.61 |    82.14 |     100 |   86.61 | ...29-334,339-344 
  ...omptLoader.ts |    75.1 |    80.64 |   83.33 |    75.1 | ...03-204,270-271 
  audioCapture.ts  |   98.33 |    93.75 |     100 |   98.33 | 71                
  ...nd-factory.ts |    91.2 |    93.33 |     100 |    91.2 | 119-126           
  ...ation-tool.ts |     100 |    95.45 |     100 |     100 | 125               
  ...and-parser.ts |   89.74 |    85.71 |     100 |   89.74 | 59-62             
  sttClient.ts     |   93.33 |       75 |     100 |   93.33 | 28-29             
  types.ts         |     100 |      100 |     100 |     100 |                   
 ...ght/generators |   85.95 |    86.42 |   90.47 |   85.95 |                   
  DataProcessor.ts |   85.68 |    86.46 |   92.85 |   85.68 | ...1110,1114-1121 
  ...tGenerator.ts |   98.21 |    85.71 |     100 |   98.21 | 46                
  ...teRenderer.ts |   45.45 |      100 |       0 |   45.45 | 13-51             
 .../insight/types |       0 |       50 |      50 |       0 |                   
  ...sightTypes.ts |       0 |        0 |       0 |       0 |                   
  ...sightTypes.ts |       0 |        0 |       0 |       0 | 1                 
 ...mpt-processors |   97.27 |    94.04 |     100 |   97.27 |                   
  ...tProcessor.ts |     100 |      100 |     100 |     100 |                   
  ...eProcessor.ts |   94.52 |    84.21 |     100 |   94.52 | 46-47,93-94       
  ...tionParser.ts |     100 |      100 |     100 |     100 |                   
  ...lProcessor.ts |   97.41 |    95.65 |     100 |   97.41 | 95-98             
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/test-utils    |   93.67 |    83.33 |      80 |   93.67 |                   
  ...omMatchers.ts |   69.69 |       50 |      50 |   69.69 | 32-35,37-39,45-47 
  ...andContext.ts |     100 |      100 |     100 |     100 |                   
  render.tsx       |     100 |      100 |     100 |     100 |                   
 src/ui            |   68.97 |    67.92 |   48.64 |   68.97 |                   
  App.tsx          |     100 |      100 |     100 |     100 |                   
  AppContainer.tsx |   74.35 |    57.14 |   42.85 |   74.35 | ...1274,1690-1696 
  ...tionNudge.tsx |    9.58 |      100 |       0 |    9.58 | 24-94             
  ...ackDialog.tsx |   29.23 |      100 |       0 |   29.23 | 25-75             
  ...tionNudge.tsx |    7.69 |      100 |       0 |    7.69 | 25-103            
  colors.ts        |   56.36 |      100 |   29.41 |   56.36 | ...49,51-52,60-61 
  constants.ts     |     100 |      100 |     100 |     100 |                   
  keyMatchers.ts   |   91.83 |    88.88 |     100 |   91.83 | 25-26,54-55       
  ...tic-colors.ts |     100 |      100 |     100 |     100 |                   
  textConstants.ts |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/ui/auth       |   29.54 |    46.34 |   26.08 |   29.54 |                   
  AuthDialog.tsx   |   51.95 |     47.5 |   28.57 |   51.95 | ...53,672,674,676 
  ...nProgress.tsx |       0 |        0 |       0 |       0 | 1-64              
  useAuth.ts       |     2.3 |      100 |       0 |     2.3 | 45-595            
 src/ui/commands   |   56.38 |    81.05 |   47.24 |   56.38 |                   
  aboutCommand.ts  |     100 |      100 |     100 |     100 |                   
  agentsCommand.ts |    64.7 |      100 |       0 |    64.7 | ...30,35-36,39-41 
  ...odeCommand.ts |     100 |      100 |     100 |     100 |                   
  authCommand.ts   |     100 |      100 |     100 |     100 |                   
  bgCommand.ts     |   23.18 |      100 |       0 |   23.18 | 14-69             
  btwCommand.ts    |     100 |    90.32 |     100 |     100 | 25,199,213        
  bugCommand.ts    |   76.47 |    66.66 |      50 |   76.47 | 21-22,57-66       
  clearCommand.ts  |   89.65 |    55.55 |      50 |   89.65 | 23-24,49-50,68-69 
  ...essCommand.ts |   63.15 |       50 |      50 |   63.15 | ...47-148,162-165 
  ...extCommand.ts |    4.65 |      100 |       0 |    4.65 | ...8,93-96,99-375 
  copyCommand.ts   |   96.22 |      100 |      50 |   96.22 | 15-16             
  deleteCommand.ts |     100 |      100 |     100 |     100 |                   
  ...ryCommand.tsx |   59.19 |    73.07 |    37.5 |   59.19 | ...15-216,224-232 
  docsCommand.ts   |   95.23 |       80 |      50 |   95.23 | 20-21             
  doctorCommand.ts |     100 |    93.33 |     100 |     100 | 20                
  editorCommand.ts |     100 |      100 |     100 |     100 |                   
  exportCommand.ts |   55.97 |    91.66 |   33.33 |   55.97 | ...48-349,356-357 
  ...onsCommand.ts |   44.09 |    85.71 |   27.27 |   44.09 | ...35-236,244-245 
  goalCommand.ts   |   91.26 |       90 |     100 |   91.26 | 81-86,138-140     
  helpCommand.ts   |     100 |      100 |     100 |     100 |                   
  hooksCommand.ts  |   42.72 |       60 |   33.33 |   42.72 | ...86-116,123-124 
  ideCommand.ts    |   41.91 |    69.23 |   21.42 |   41.91 | ...08-209,212-226 
  index.ts         |       0 |        0 |       0 |       0 | 1-20              
  initCommand.ts   |    81.7 |       70 |      50 |    81.7 | ...67,81-86,88-93 
  ...ghtCommand.ts |   56.62 |    28.57 |   28.57 |   56.62 | ...65-179,184-197 
  ...ageCommand.ts |   89.24 |    82.35 |   76.92 |   89.24 | ...20-323,345-346 
  loopCommand.ts   |   97.12 |    85.41 |     100 |   97.12 | 108-109,115-116   
  mcpCommand.ts    |   85.71 |      100 |      50 |   85.71 | 14-15             
  memoryCommand.ts |   44.63 |    84.61 |   23.07 |   44.63 | ...69,574-575,593 
  modelCommand.ts  |   57.31 |       80 |   66.66 |   57.31 | 24-33,51-77       
  notesCommand.ts  |    9.32 |      100 |       0 |    9.32 | 27-30,33-151      
  ...onsCommand.ts |     100 |      100 |     100 |     100 |                   
  quitCommand.ts   |   93.75 |      100 |      50 |   93.75 | 15-16             
  recapCommand.ts  |   22.44 |      100 |       0 |   22.44 | 18-58             
  renameCommand.ts |   58.78 |    52.17 |     100 |   58.78 | ...42-149,156-161 
  ...oreCommand.ts |   92.24 |     87.5 |     100 |   92.24 | ...,83-88,129-130 
  resumeCommand.ts |     100 |      100 |     100 |     100 |                   
  rewindCommand.ts |    62.5 |      100 |       0 |    62.5 | 17-22             
  ...ngsCommand.ts |     100 |      100 |     100 |     100 |                   
  setupCommand.ts  |     100 |      100 |     100 |     100 |                   
  ...hubCommand.ts |   80.12 |    63.63 |      60 |   80.12 | ...69-172,175-178 
  skillsCommand.ts |   12.28 |      100 |       0 |   12.28 | ...91-109,112-139 
  statsCommand.ts  |   84.69 |     90.9 |      50 |   84.69 | ...8,52-53,99-100 
  ...aryCommand.ts |    4.61 |      100 |       0 |    4.61 | 21-24,27-322      
  teamCommand.ts   |   15.55 |      100 |       0 |   15.55 | ...70-271,274-298 
  ...tupCommand.ts |     100 |      100 |     100 |     100 |                   
  themeCommand.ts  |     100 |      100 |     100 |     100 |                   
  toolsCommand.ts  |   95.12 |      100 |      50 |   95.12 | 18-19             
  trustCommand.ts  |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
  vimCommand.ts    |   42.85 |      100 |       0 |   42.85 | 14-15,18-28       
  voiceCommand.ts  |   35.08 |      100 |       0 |   35.08 | 29-51,55-73       
 src/ui/components |    58.6 |    73.78 |   60.26 |    58.6 |                   
  AboutBox.tsx     |     100 |      100 |     100 |     100 |                   
  AnsiOutput.tsx   |   76.74 |      100 |      50 |   76.74 | 71-81             
  ApiKeyInput.tsx  |   18.91 |      100 |       0 |   18.91 | 30-95             
  AppHeader.tsx    |   89.58 |       50 |     100 |   89.58 | 33-38             
  ...odeDialog.tsx |     9.7 |      100 |       0 |     9.7 | 35-47,50-182      
  AsciiArt.ts      |     100 |      100 |     100 |     100 |                   
  ...Indicator.tsx |   13.95 |      100 |       0 |   13.95 | 18-58             
  ...TextInput.tsx |   65.47 |    66.66 |      50 |   65.47 | ...24-226,244,253 
  Composer.tsx     |   90.29 |    61.53 |      50 |   90.29 | ...-61,79,120,133 
  ...itDisplay.tsx |   55.81 |      100 |      50 |   55.81 | 22-38,42-43       
  ...entPrompt.tsx |     100 |      100 |     100 |     100 |                   
  ...ryDisplay.tsx |   75.89 |    62.06 |     100 |   75.89 | ...,88,93-108,113 
  ...geDisplay.tsx |   90.47 |       75 |     100 |   90.47 | 20-21             
  ...ification.tsx |   28.57 |      100 |       0 |   28.57 | 16-36             
  ...gProfiler.tsx |       0 |        0 |       0 |       0 | 1-36              
  ...ogManager.tsx |    8.18 |      100 |       0 |    8.18 | 51-560            
  ...ngsDialog.tsx |    8.44 |      100 |       0 |    8.44 | 37-195            
  ExitWarning.tsx  |     100 |      100 |     100 |     100 |                   
  ...ustDialog.tsx |     100 |      100 |     100 |     100 |                   
  Footer.tsx       |   73.38 |    33.33 |     100 |   73.38 | ...98-102,120-124 
  ...ngSpinner.tsx |   54.28 |       50 |      50 |   54.28 | 31-48,61          
  GoalPill.tsx     |     100 |      100 |     100 |     100 |                   
  Header.tsx       |   98.21 |    86.66 |     100 |   98.21 | 96,98             
  Help.tsx         |   98.74 |    68.75 |     100 |   98.74 | 74,129            
  ...emDisplay.tsx |   69.93 |     42.1 |     100 |   69.93 | ...21,224,227,230 
  ...ngeDialog.tsx |     100 |      100 |     100 |     100 |                   
  InputPrompt.tsx  |   79.21 |    75.08 |     100 |   79.21 | ...1306-1322,1365 
  ...Shortcuts.tsx |   21.11 |      100 |       0 |   21.11 | ...5,48-50,66-124 
  ...Indicator.tsx |     100 |      100 |     100 |     100 |                   
  ...firmation.tsx |   91.42 |      100 |      50 |   91.42 | 26-31             
  MainContent.tsx  |    17.1 |      100 |       0 |    17.1 | 25-96             
  ...geDisplay.tsx |       0 |        0 |       0 |       0 | 1-41              
  ModelDialog.tsx  |   75.13 |    40.98 |     100 |   75.13 | ...17-433,478-482 
  ...tsDisplay.tsx |     100 |    97.29 |     100 |     100 | 240               
  ...fications.tsx |   18.18 |      100 |       0 |   18.18 | 15-58             
  ...onsDialog.tsx |    2.18 |      100 |       0 |    2.18 | 62-133,148-986    
  ...ryDisplay.tsx |     100 |      100 |     100 |     100 |                   
  ...icePrompt.tsx |   88.14 |    83.87 |     100 |   88.14 | ...01-105,133-138 
  PrepareLabel.tsx |   91.66 |    76.19 |     100 |   91.66 | 73-75,77-79,110   
  ...geDisplay.tsx |     100 |      100 |     100 |     100 |                   
  ...ngDisplay.tsx |   21.42 |      100 |       0 |   21.42 | 13-39             
  RewindDialog.tsx |       0 |        0 |       0 |       0 | 1-217             
  RewindPicker.tsx |    3.35 |      100 |       0 |    3.35 | 48-70,89-394      
  ...ionPicker.tsx |   95.07 |    91.89 |     100 |   95.07 | 98,241-249        
  ...onPreview.tsx |   93.38 |    78.26 |     100 |   93.38 | ...,66-67,126-128 
  ...ryDisplay.tsx |     100 |      100 |     100 |     100 |                   
  ...putPrompt.tsx |   72.56 |       80 |      40 |   72.56 | ...06-109,114-117 
  ...ngsDialog.tsx |   66.75 |    72.66 |     100 |   66.75 | ...72-780,786-787 
  ...ionDialog.tsx |    87.8 |      100 |   33.33 |    87.8 | 36-39,44-51       
  ...putPrompt.tsx |    15.9 |      100 |       0 |    15.9 | 20-63             
  ...Indicator.tsx |   44.44 |      100 |       0 |   44.44 | 12-17             
  ...MoreLines.tsx |      28 |      100 |       0 |      28 | 18-40             
  ...ionPicker.tsx |   17.27 |      100 |       0 |   17.27 | 55-174            
  StatsDisplay.tsx |     100 |      100 |     100 |     100 |                   
  StatusBar.tsx    |   96.19 |    72.22 |     100 |   96.19 | 109-111,113       
  ...yTaskList.tsx |     100 |      100 |     100 |     100 |                   
  ...nsDisplay.tsx |   84.09 |    57.14 |     100 |   84.09 | ...16-118,125-127 
  ...ffDisplay.tsx |   18.42 |      100 |       0 |   18.42 | 16-18,25-58       
  ThemeDialog.tsx  |   89.95 |    46.15 |      75 |   89.95 | ...71-173,243-245 
  Tips.tsx         |      75 |       60 |      75 |      75 | 23,48-49,52-62    
  TodoDisplay.tsx  |     100 |      100 |     100 |     100 |                   
  ...tsDisplay.tsx |     100 |     87.5 |     100 |     100 | 31-32             
  ...ptOverlay.tsx |   10.83 |      100 |      50 |   10.83 | 37-168            
  ...oryBanner.tsx |       0 |        0 |       0 |       0 | 1-26              
  TrustDialog.tsx  |     100 |    81.81 |     100 |     100 | 71-86             
  ...ification.tsx |   36.36 |      100 |       0 |   36.36 | 15-22             
  ...MicButton.tsx |   11.11 |      100 |       0 |   11.11 | 26-81             
  ...ackDialog.tsx |    7.84 |      100 |       0 |    7.84 | 24-134            
 ...nts/agent-view |   24.89 |    89.36 |    12.5 |   24.89 |                   
  ...tChatView.tsx |     8.1 |      100 |       0 |     8.1 | 53-283            
  ...tComposer.tsx |    9.95 |      100 |       0 |    9.95 | 57-308            
  AgentFooter.tsx  |   17.07 |      100 |       0 |   17.07 | 28-66             
  AgentHeader.tsx  |   15.38 |      100 |       0 |   15.38 | 27-64             
  AgentTabBar.tsx  |    8.25 |      100 |       0 |    8.25 | 35-55,60-167      
  ...oryAdapter.ts |     100 |     91.3 |     100 |     100 | 102,108-109,137   
  index.ts         |       0 |        0 |       0 |       0 | 1-12              
 ...nts/extensions |   45.28 |    33.33 |      60 |   45.28 |                   
  ...gerDialog.tsx |   44.31 |    34.14 |      75 |   44.31 | ...71-480,483-488 
  index.ts         |       0 |        0 |       0 |       0 | 1-9               
  types.ts         |     100 |      100 |     100 |     100 |                   
 ...tensions/steps |   54.77 |    94.23 |   66.66 |   54.77 |                   
  ...ctionStep.tsx |   95.12 |    92.85 |   85.71 |   95.12 | 84-86,89          
  ...etailStep.tsx |    6.18 |      100 |       0 |    6.18 | 17-128            
  ...nListStep.tsx |   88.35 |    94.73 |      80 |   88.35 | 51-52,58-71,105   
  ...electStep.tsx |   13.46 |      100 |       0 |   13.46 | 20-70             
  ...nfirmStep.tsx |   19.56 |      100 |       0 |   19.56 | 23-65             
  index.ts         |     100 |      100 |     100 |     100 |                   
 ...mponents/hooks |   78.44 |    70.27 |      85 |   78.44 |                   
  ...etailStep.tsx |   96.52 |       75 |     100 |   96.52 | 33,37,50,59       
  ...etailStep.tsx |   98.13 |    82.35 |     100 |   98.13 | 41-42             
  ...abledStep.tsx |     100 |      100 |     100 |     100 |                   
  ...sListStep.tsx |     100 |      100 |     100 |     100 |                   
  ...entDialog.tsx |   47.78 |    51.92 |   66.66 |   47.78 | ...04,408-421,425 
  constants.ts     |     100 |      100 |     100 |     100 |                   
  index.ts         |       0 |        0 |       0 |       0 | 1-13              
  types.ts         |     100 |      100 |     100 |     100 |                   
 ...components/mcp |    20.2 |    84.61 |   81.81 |    20.2 |                   
  ...ealthPill.tsx |   68.42 |    85.71 |     100 |   68.42 | 40-46             
  ...entDialog.tsx |    3.64 |      100 |       0 |    3.64 | 41-717            
  constants.ts     |     100 |      100 |     100 |     100 |                   
  index.ts         |       0 |        0 |       0 |       0 | 1-30              
  types.ts         |     100 |      100 |     100 |     100 |                   
  utils.ts         |   96.42 |    87.09 |     100 |   96.42 | 21,96-97          
 ...ents/mcp/steps |    7.31 |      100 |       0 |    7.31 |                   
  ...icateStep.tsx |    7.58 |      100 |       0 |    7.58 | 27-197            
  ...electStep.tsx |   10.95 |      100 |       0 |   10.95 | 16-88             
  ...etailStep.tsx |    5.26 |      100 |       0 |    5.26 | 31-247            
  ...rListStep.tsx |    5.88 |      100 |       0 |    5.88 | 20-176            
  ...etailStep.tsx |   10.41 |      100 |       0 |   10.41 | ...1,67-79,82-139 
  ToolListStep.tsx |    7.14 |      100 |       0 |    7.14 | 16-146            
 ...nents/messages |   75.28 |    75.56 |   64.15 |   75.28 |                   
  ...ionDialog.tsx |   77.35 |    74.54 |    62.5 |   77.35 | ...90,508,526-528 
  BtwMessage.tsx   |   76.31 |       50 |     100 |   76.31 | 34-42             
  ...onMessage.tsx |   91.93 |    82.35 |     100 |   91.93 | 57-59,61,63       
  ...nMessages.tsx |   94.38 |    95.23 |    90.9 |   94.38 | 197-207,282-283   
  DiffRenderer.tsx |   93.19 |    86.17 |     100 |   93.19 | ...09,237-238,304 
  ...ssMessage.tsx |    12.5 |      100 |       0 |    12.5 | 18-59             
  RecapMessage.tsx |   42.85 |      100 |       0 |   42.85 | 19-26             
  ...sMessages.tsx |   16.17 |      100 |       0 |   16.17 | ...1,85-95,99-104 
  ...ryMessage.tsx |   12.82 |      100 |       0 |   12.82 | 22-59             
  ...onMessage.tsx |   73.07 |    55.81 |   33.33 |   73.07 | ...34-436,443-445 
  ...upMessage.tsx |   95.09 |     87.5 |     100 |   95.09 | 40-43,55          
  ToolMessage.tsx  |   69.21 |    66.66 |   81.81 |   69.21 | ...42-547,621-623 
 ...ponents/shared |   78.41 |    76.54 |   89.09 |   78.41 |                   
  ...ctionList.tsx |   99.03 |    95.65 |     100 |   99.03 | 85                
  ...tonSelect.tsx |   97.14 |    66.66 |     100 |   97.14 | 72                
  EnumSelector.tsx |     100 |    96.42 |     100 |     100 | 58                
  MaxSizedBox.tsx  |   81.13 |    81.96 |   88.88 |   81.13 | ...12-513,618-619 
  MultiSelect.tsx  |       0 |        0 |       0 |       0 | 1-193             
  ...tonSelect.tsx |     100 |      100 |     100 |     100 |                   
  ...eSelector.tsx |     100 |       60 |     100 |     100 | 40-45             
  TextInput.tsx    |   38.69 |       50 |      25 |   38.69 | ...72-206,212-218 
  text-buffer.ts   |   82.07 |    75.59 |   96.87 |   82.07 | ...1897,1924,1986 
  ...er-actions.ts |   86.71 |    67.79 |     100 |   86.71 | ...07-608,809-811 
 ...ents/subagents |   32.77 |    33.33 |    12.5 |   32.77 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  reducers.tsx     |    12.1 |      100 |       0 |    12.1 | 33-190            
  types.ts         |     100 |      100 |     100 |     100 |                   
  utils.ts         |   13.69 |    33.33 |   16.66 |   13.69 | ...1,56-57,60-102 
 ...bagents/create |    9.13 |      100 |       0 |    9.13 |                   
  ...ionWizard.tsx |    7.28 |      100 |       0 |    7.28 | 34-299            
  ...rSelector.tsx |   14.75 |      100 |       0 |   14.75 | 26-85             
  ...onSummary.tsx |    4.26 |      100 |       0 |    4.26 | 27-331            
  ...tionInput.tsx |    8.63 |      100 |       0 |    8.63 | 23-177            
  ...dSelector.tsx |   33.33 |      100 |       0 |   33.33 | 20-21,26-27,36-63 
  ...nSelector.tsx |    37.5 |      100 |       0 |    37.5 | 20-21,26-27,36-58 
  ...EntryStep.tsx |   12.76 |      100 |       0 |   12.76 | 34-78             
  ToolSelector.tsx |    4.16 |      100 |       0 |    4.16 | 31-253            
 ...bagents/manage |    8.43 |      100 |       0 |    8.43 |                   
  ...ctionStep.tsx |   10.25 |      100 |       0 |   10.25 | 21-103            
  ...eleteStep.tsx |   20.93 |      100 |       0 |   20.93 | 23-62             
  ...tEditStep.tsx |   25.53 |      100 |       0 |   25.53 | ...2,37-38,51-124 
  ...ctionStep.tsx |    2.29 |      100 |       0 |    2.29 | 28-449            
  ...iewerStep.tsx |   15.21 |      100 |       0 |   15.21 | 18-66             
  ...gerDialog.tsx |    6.74 |      100 |       0 |    6.74 | 35-341            
 ...agents/runtime |   83.84 |    60.91 |     100 |   83.84 |                   
  ...onDisplay.tsx |   83.84 |    60.91 |     100 |   83.84 | ...88-690,693-696 
 ...mponents/views |   43.51 |    69.23 |   23.07 |   43.51 |                   
  ContextUsage.tsx |    5.07 |      100 |       0 |    5.07 | ...30-145,148-424 
  DoctorReport.tsx |     9.8 |      100 |       0 |     9.8 | 25-54,57-131      
  ...sionsList.tsx |   87.69 |    73.68 |     100 |   87.69 | 65-72             
  McpStatus.tsx    |   89.53 |    60.52 |     100 |   89.53 | ...72,175-177,262 
  SkillsList.tsx   |   27.27 |      100 |       0 |   27.27 | 18-35             
  ToolsList.tsx    |     100 |      100 |     100 |     100 |                   
 src/ui/contexts   |   76.38 |    79.92 |    87.5 |   76.38 |                   
  ...ewContext.tsx |   64.83 |      100 |      75 |   64.83 | ...18-221,227-237 
  AppContext.tsx   |      40 |      100 |       0 |      40 | 17-22             
  ...igContext.tsx |   81.81 |       50 |     100 |   81.81 | 15-16             
  ...ssContext.tsx |   83.83 |       83 |     100 |   83.83 | ...1049,1054-1056 
  ...owContext.tsx |   89.28 |       80 |   66.66 |   89.28 | 34,47-48,60-62    
  ...onContext.tsx |   47.02 |     62.5 |   71.42 |   47.02 | ...36-239,243-246 
  ...gsContext.tsx |   83.33 |       50 |     100 |   83.33 | 17-18             
  ...usContext.tsx |     100 |      100 |     100 |     100 |                   
  ...ngContext.tsx |   71.42 |       50 |     100 |   71.42 | 17-20             
  ...nsContext.tsx |   88.88 |       50 |     100 |   88.88 | 119-120           
  ...teContext.tsx |   84.61 |       50 |     100 |   84.61 | 166-167           
  ...deContext.tsx |   76.08 |    72.72 |     100 |   76.08 | 47-48,52-59,77-78 
 src/ui/editors    |   93.33 |    85.71 |   66.66 |   93.33 |                   
  ...ngsManager.ts |   93.33 |    85.71 |   66.66 |   93.33 | 49,63-64          
 src/ui/hooks      |   75.01 |    78.88 |   80.11 |   75.01 |                   
  ...dProcessor.ts |   83.02 |     81.9 |     100 |   83.02 | ...86-387,406-433 
  keyToAnsi.ts     |    3.92 |      100 |       0 |    3.92 | 19-77             
  ...dProcessor.ts |   94.77 |    70.58 |     100 |   94.77 | ...75-276,281-282 
  ...dProcessor.ts |   76.37 |    58.18 |   61.53 |   76.37 | ...98,722,741-745 
  ...amingState.ts |   12.22 |      100 |       0 |   12.22 | 54-158            
  ...agerDialog.ts |   88.23 |      100 |     100 |   88.23 | 20,24             
  ...odeCommand.ts |   58.82 |      100 |     100 |   58.82 | 28,33-48          
  ...Completion.ts |   92.77 |    89.09 |     100 |   92.77 | ...86-187,220-223 
  ...ifications.ts |   88.05 |    94.73 |     100 |   88.05 | 84-93             
  ...tIndicator.ts |     100 |    93.75 |     100 |     100 | 63                
  ...waySummary.ts |   41.12 |       40 |      50 |   41.12 | 64-79,106,119-179 
  ...ntProgress.ts |   38.37 |      100 |   16.66 |   38.37 | ...9,82-88,91-106 
  ...ketedPaste.ts |    23.8 |      100 |       0 |    23.8 | 19-38             
  ...lanUpdates.ts |     100 |       92 |     100 |     100 | 59,158            
  ...ompletion.tsx |   94.87 |    80.55 |     100 |   94.87 | ...02-203,205-206 
  ...dMigration.ts |   90.62 |       75 |     100 |   90.62 | 38-40             
  useCompletion.ts |    92.4 |     87.5 |     100 |    92.4 | 68-69,93-94,98-99 
  ...rrentTodos.ts |     100 |    93.33 |     100 |     100 | 39                
  ...eteCommand.ts |   33.33 |       50 |     100 |   33.33 | 30,34,41-90       
  ...ialogClose.ts |      25 |      100 |     100 |      25 | 62-99             
  ...orSettings.ts |     100 |      100 |     100 |     100 |                   
  ...itHandling.ts |   45.16 |      100 |     100 |   45.16 | 46-98             
  ...ionUpdates.ts |   93.45 |     92.3 |     100 |   93.45 | ...83-287,300-306 
  ...agerDialog.ts |   88.88 |      100 |     100 |   88.88 | 21,25             
  ...backDialog.ts |   50.75 |    77.77 |   33.33 |   50.75 | ...56-171,192-193 
  useFocus.ts      |     100 |      100 |     100 |     100 |                   
  ...olderTrust.ts |     100 |      100 |     100 |     100 |                   
  ...ggestions.tsx |   89.15 |     64.7 |     100 |   89.15 | ...19-121,146-147 
  ...miniStream.ts |    69.5 |    68.38 |    87.5 |    69.5 | ...2192,2201-2203 
  ...BranchName.ts |    90.9 |     92.3 |     100 |    90.9 | 19-20,55-58       
  ...itDiffStat.ts |    7.69 |      100 |       0 |    7.69 | 26-79             
  useGoalStatus.ts |     100 |      100 |     100 |     100 |                   
  ...oryManager.ts |   98.41 |    93.33 |     100 |   98.41 | 43                
  ...ooksDialog.ts |    87.5 |      100 |     100 |    87.5 | 19,23             
  ...stListener.ts |     100 |      100 |     100 |     100 |                   
  ...ssageDrain.ts |   72.72 |       40 |     100 |   72.72 | 25-26,28-31       
  ...nAuthError.ts |   76.19 |       50 |     100 |   76.19 | 39-40,43-45       
  ...ionEffects.ts |   28.72 |     37.5 |     100 |   28.72 | ...23-130,134-135 
  ...putHistory.ts |   92.59 |    85.71 |     100 |   92.59 | 63-64,72,94-96    
  ...storyStore.ts |     100 |    94.11 |     100 |     100 | 69                
  ...rdHandling.ts |   33.68 |      100 |      50 |   33.68 | 94,103-258        
  useKeypress.ts   |     100 |      100 |     100 |     100 |                   
  ...rdProtocol.ts |   36.36 |      100 |       0 |   36.36 | 24-31             
  ...unchEditor.ts |    8.97 |      100 |       0 |    8.97 | 20-67,74-125      
  ...gIndicator.ts |     100 |      100 |     100 |     100 |                   
  useLogger.ts     |   21.05 |      100 |       0 |   21.05 | 15-37             
  useMCPHealth.ts  |   70.58 |       75 |      50 |   70.58 | 42-47,59-62       
  useMcpDialog.ts  |    87.5 |      100 |     100 |    87.5 | 19,23             
  ...oryMonitor.ts |     100 |      100 |     100 |     100 |                   
  ...ssageQueue.ts |     100 |      100 |     100 |     100 |                   
  ...delCommand.ts |     100 |       75 |     100 |     100 | 22                
  ...raseCycler.ts |   84.48 |    76.47 |     100 |   84.48 | ...47,50-51,67-69 
  ...uggestions.ts |   50.73 |       28 |     100 |   50.73 | ...81-183,201-203 
  ...lScheduler.ts |    70.6 |    94.73 |     100 |    70.6 | ...89-292,379-389 
  ...oryCommand.ts |       0 |        0 |       0 |       0 | 1-7               
  ...umeCommand.ts |   95.94 |    66.66 |     100 |   95.94 | 79-80,102         
  ...ompletion.tsx |   90.59 |    83.33 |     100 |   90.59 | ...01,104,137-140 
  ...ectionList.ts |   96.59 |    94.62 |     100 |   96.59 | ...82-183,237-240 
  ...moryStatus.ts |       0 |        0 |       0 |       0 | 1-29              
  ...sionPicker.ts |   91.16 |    71.69 |     100 |   91.16 | ...78-279,283-284 
  ...ngsCommand.ts |   18.75 |      100 |       0 |   18.75 | 10-25             
  ...ellHistory.ts |   91.74 |    79.41 |     100 |   91.74 | ...74,122-123,133 
  ...oryCommand.ts |       0 |        0 |       0 |       0 | 1-73              
  ...Completion.ts |   80.97 |     84.4 |   91.66 |   80.97 | ...69-471,479-487 
  ...tateAndRef.ts |     100 |      100 |     100 |     100 |                   
  ...eateDialog.ts |   88.23 |      100 |     100 |   88.23 | 14,18             
  ...rminalSize.ts |   76.19 |      100 |      50 |   76.19 | 21-25             
  ...emeCommand.ts |    7.95 |      100 |       0 |    7.95 | 25-113            
  useTimer.ts      |   88.09 |    85.71 |     100 |   88.09 | 44-45,51-53       
  ...lMigration.ts |       0 |        0 |       0 |       0 |                   
  ...iptOverlay.ts |   77.77 |      100 |      50 |   77.77 | 38-41             
  ...rustModify.ts |     100 |      100 |     100 |     100 |                   
  useVoice.ts      |   93.24 |    77.77 |     100 |   93.24 | 58-62             
  ...elcomeBack.ts |   69.44 |    54.54 |     100 |   69.44 | ...85,89-90,96-98 
  ...indowTitle.ts |     100 |    91.66 |     100 |     100 | 42                
  vim.ts           |   83.54 |     79.5 |     100 |   83.54 | ...44,748-756,765 
 src/ui/layouts    |   77.11 |     37.5 |     100 |   77.11 |                   
  ...AppLayout.tsx |   78.57 |    38.46 |     100 |   78.57 | ...63,68-75,93-95 
  ...AppLayout.tsx |   73.52 |    33.33 |     100 |   73.52 | 30-35,37-39       
 src/ui/models     |   56.25 |    85.71 |      40 |   56.25 |                   
  ...ableModels.ts |   56.25 |    85.71 |      40 |   56.25 | ...3,80-81,98-100 
 ...noninteractive |     100 |      100 |    7.14 |     100 |                   
  ...eractiveUi.ts |     100 |      100 |    7.14 |     100 |                   
 src/ui/state      |   94.91 |    81.81 |     100 |   94.91 |                   
  extensions.ts    |   94.91 |    81.81 |     100 |   94.91 | 68-69,88          
 src/ui/themes     |   98.53 |    70.58 |     100 |   98.53 |                   
  ansi-light.ts    |     100 |      100 |     100 |     100 |                   
  ansi.ts          |     100 |      100 |     100 |     100 |                   
  atom-one-dark.ts |     100 |      100 |     100 |     100 |                   
  ayu-light.ts     |     100 |      100 |     100 |     100 |                   
  ayu.ts           |     100 |      100 |     100 |     100 |                   
  color-utils.ts   |     100 |      100 |     100 |     100 |                   
  default-light.ts |     100 |      100 |     100 |     100 |                   
  default.ts       |     100 |      100 |     100 |     100 |                   
  ...inal-theme.ts |   88.59 |    85.96 |     100 |   88.59 | ...57-261,266-270 
  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 |                   
  no-color.ts      |     100 |      100 |     100 |     100 |                   
  qwen-dark.ts     |     100 |      100 |     100 |     100 |                   
  qwen-light.ts    |     100 |      100 |     100 |     100 |                   
  ...tic-tokens.ts |     100 |      100 |     100 |     100 |                   
  ...-of-purple.ts |     100 |      100 |     100 |     100 |                   
  theme-manager.ts |   87.98 |    82.89 |     100 |   87.98 | ...48-357,362-363 
  theme.ts         |     100 |    38.02 |     100 |     100 | ...34-449,457-461 
  xcode.ts         |     100 |      100 |     100 |     100 |                   
 src/ui/utils      |   72.73 |    86.07 |   83.18 |   72.73 |                   
  ...Colorizer.tsx |   82.78 |    88.23 |     100 |   82.78 | ...10-111,197-223 
  ...nRenderer.tsx |   59.31 |       40 |     100 |   59.31 | ...33-139,149-151 
  ...wnDisplay.tsx |   85.75 |    88.05 |     100 |   85.75 | ...76-284,317-342 
  QueryGuard.ts    |   85.71 |      100 |   66.66 |   85.71 | 61-62,65-66       
  ...eRenderer.tsx |   77.88 |    76.19 |     100 |   77.88 | 54-82             
  ...boardUtils.ts |   59.61 |    58.82 |     100 |   59.61 | ...,86-88,107-149 
  commandUtils.ts  |   93.54 |    88.63 |     100 |   93.54 | ...43,147,149-150 
  computeStats.ts  |     100 |      100 |     100 |     100 |                   
  displayUtils.ts  |     100 |      100 |     100 |     100 |                   
  formatters.ts    |    94.8 |    98.11 |     100 |    94.8 | 101-104           
  gradientUtils.ts |     100 |      100 |     100 |     100 |                   
  highlight.ts     |   98.63 |       95 |     100 |   98.63 | 93                
  ...oryMapping.ts |     100 |    94.44 |     100 |     100 | 45,67             
  isNarrowWidth.ts |     100 |      100 |     100 |     100 |                   
  ...olDetector.ts |    7.22 |      100 |       0 |    7.22 | ...24-125,128-129 
  layoutUtils.ts   |     100 |      100 |     100 |     100 |                   
  ...nUtilities.ts |   69.84 |    85.71 |     100 |   69.84 | 75-91,100-101     
  ...mConstants.ts |     100 |      100 |     100 |     100 |                   
  ...storyUtils.ts |   60.42 |    67.14 |      90 |   60.42 | ...48,396,401-423 
  ...ickerUtils.ts |     100 |      100 |     100 |     100 |                   
  ...izedOutput.ts |   95.65 |      100 |   88.88 |   95.65 | 134-139           
  ...wOptimizer.ts |     100 |    96.77 |     100 |     100 | 69                
  terminalSetup.ts |    4.37 |      100 |       0 |    4.37 | 44-393            
  textUtils.ts     |   96.61 |     93.5 |    90.9 |   96.61 | ...32-233,245-246 
  updateCheck.ts   |     100 |    80.95 |     100 |     100 | 30-42             
 ...i/utils/export |    2.38 |        0 |       0 |    2.38 |                   
  collect.ts       |    0.87 |      100 |       0 |    0.87 | 40-394,401-697    
  index.ts         |     100 |      100 |     100 |     100 |                   
  normalize.ts     |    1.23 |      100 |       0 |    1.23 | 17-336            
  types.ts         |       0 |        0 |       0 |       0 | 1                 
  utils.ts         |      40 |      100 |       0 |      40 | 11-13             
 ...ort/formatters |    3.38 |      100 |       0 |    3.38 |                   
  html.ts          |    9.61 |      100 |       0 |    9.61 | ...28,34-76,82-84 
  json.ts          |      50 |      100 |       0 |      50 | 14-15             
  jsonl.ts         |     3.5 |      100 |       0 |     3.5 | 14-76             
  markdown.ts      |    0.94 |      100 |       0 |    0.94 | 13-295            
 src/utils         |   69.64 |    89.33 |   94.04 |   69.64 |                   
  acpModelUtils.ts |     100 |      100 |     100 |     100 |                   
  ...tification.ts |   92.59 |    71.42 |     100 |   92.59 | 36-37             
  checks.ts        |   33.33 |      100 |       0 |   33.33 | 23-28             
  cleanup.ts       |   65.38 |      100 |   66.66 |   65.38 | 28-37             
  commands.ts      |     100 |      100 |     100 |     100 |                   
  commentJson.ts   |     100 |    93.75 |     100 |     100 | 30                
  ...Calculator.ts |     100 |      100 |     100 |     100 |                   
  deepMerge.ts     |     100 |       90 |     100 |     100 | 41-43,49          
  ...ScopeUtils.ts |   97.56 |    88.88 |     100 |   97.56 | 67                
  doctorChecks.ts  |   64.32 |    71.05 |     100 |   64.32 | ...63-269,293-309 
  ...arResolver.ts |   94.28 |    88.46 |     100 |   94.28 | 28-29,125-126     
  errors.ts        |   96.89 |    92.85 |     100 |   96.89 | 46-47,214-215     
  events.ts        |     100 |      100 |     100 |     100 |                   
  gitUtils.ts      |   91.91 |    84.61 |     100 |   91.91 | 78-81,124-127     
  ...AutoUpdate.ts |    51.2 |       90 |      50 |    51.2 | 87-152            
  ...lationInfo.ts |     100 |      100 |     100 |     100 |                   
  languageUtils.ts |   97.87 |    96.42 |     100 |   97.87 | 132-133           
  math.ts          |       0 |        0 |       0 |       0 | 1-15              
  ...onfigUtils.ts |     100 |      100 |     100 |     100 |                   
  ...iveHelpers.ts |   96.84 |    93.28 |     100 |   96.84 | ...87-488,586,599 
  package.ts       |   88.88 |       80 |     100 |   88.88 | 33-34             
  processUtils.ts  |     100 |      100 |     100 |     100 |                   
  readStdin.ts     |   79.62 |       90 |      80 |   79.62 | 33-40,52-54       
  relaunch.ts      |   98.07 |    76.92 |     100 |   98.07 | 70                
  resolvePath.ts   |   66.66 |       25 |     100 |   66.66 | 12-13,16,18-19    
  runBudget.ts     |   99.35 |    96.77 |     100 |   99.35 | 119               
  sandbox.ts       |       0 |        0 |       0 |       0 | 1-984             
  settingsUtils.ts |   86.32 |    90.59 |   94.44 |   86.32 | ...38,569,632-644 
  spawnWrapper.ts  |     100 |      100 |     100 |     100 |                   
  ...upWarnings.ts |     100 |      100 |     100 |     100 |                   
  stdioHelpers.ts  |     100 |       60 |     100 |     100 | 23,32             
  systemInfo.ts    |   92.52 |     90.9 |   83.33 |   92.52 | 63-69,184         
  ...InfoFields.ts |   86.13 |    65.78 |     100 |   86.13 | ...10-111,132-133 
  ...entEmitter.ts |     100 |      100 |     100 |     100 |                   
  ...upWarnings.ts |   91.17 |    82.35 |     100 |   91.17 | 67-68,73-74,77-78 
  version.ts       |     100 |       50 |     100 |     100 | 11                
  windowTitle.ts   |     100 |      100 |     100 |     100 |                   
  ...WithBackup.ts |    62.1 |    77.77 |     100 |    62.1 | 93,107,118-157    
-------------------|---------|----------|---------|---------|-------------------
Core Package - Full Text Report
-------------------|---------|----------|---------|---------|-------------------
File               | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-------------------|---------|----------|---------|---------|-------------------
All files          |   71.85 |    80.87 |   75.04 |   71.85 |                   
 src               |     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/agents        |    59.5 |    83.33 |   56.75 |    59.5 |                   
  ...chestrator.ts |   75.83 |     82.6 |     100 |   75.83 | ...49-159,210-217 
  ...ound-store.ts |   97.95 |     90.9 |     100 |   97.95 | 61                
  index.ts         |     100 |      100 |     100 |     100 |                   
  mailbox.ts       |      80 |    78.57 |      80 |      80 | 55-57,74-75,89-97 
  team-config.ts   |    6.48 |      100 |       0 |    6.48 | 43-176            
  team-registry.ts |   45.45 |      100 |       0 |   45.45 | ...34,37-38,41-42 
 ...gents/backends |   76.77 |    85.23 |    72.6 |   76.77 |                   
  ITermBackend.ts  |   97.97 |    93.93 |     100 |   97.97 | ...78-180,255,307 
  ...essBackend.ts |   92.81 |     85.5 |   82.85 |   92.81 | ...15-235,294,390 
  TmuxBackend.ts   |    90.7 |    76.55 |   97.36 |    90.7 | ...87,697,743-747 
  detect.ts        |   31.25 |      100 |       0 |   31.25 | 34-88             
  index.ts         |     100 |      100 |     100 |     100 |                   
  iterm-it2.ts     |     100 |     92.1 |     100 |     100 | 37-38,106         
  tmux-commands.ts |    6.64 |      100 |    3.03 |    6.64 | ...93-363,386-503 
  types.ts         |     100 |      100 |     100 |     100 |                   
 ...agents/runtime |   78.78 |    75.67 |   72.11 |   78.78 |                   
  agent-core.ts    |   68.39 |    67.61 |   56.52 |   68.39 | ...1339,1366-1412 
  agent-events.ts  |    87.5 |      100 |      75 |    87.5 | 266-270           
  ...t-headless.ts |    80.5 |    71.11 |      55 |    80.5 | ...87-388,391-392 
  ...nteractive.ts |   84.33 |    83.33 |   78.12 |   84.33 | ...42,744,746,749 
  ...statistics.ts |   98.19 |    82.35 |     100 |   98.19 | 127,151,192,225   
  agent-types.ts   |    91.3 |      100 |   33.33 |    91.3 | 141,145           
  compaction.ts    |   91.08 |    76.56 |     100 |   91.08 | ...29-233,240-241 
  index.ts         |     100 |      100 |     100 |     100 |                   
 ...ckgroundShells |   26.48 |    46.66 |   46.66 |   26.48 |                   
  diskOutput.ts    |   47.25 |       50 |    62.5 |   47.25 | 28-29,54-107      
  index.ts         |     100 |      100 |     100 |     100 |                   
  notifications.ts |    4.76 |      100 |       0 |    4.76 | 12-17,20-54       
  registry.ts      |    2.53 |        0 |       0 |    2.53 | 24-126            
  types.ts         |     100 |      100 |     100 |     100 |                   
  watcher.ts       |   32.35 |       50 |      50 |   32.35 | ...0,63-79,88-109 
 src/config        |   70.38 |    71.11 |   58.17 |   70.38 |                   
  config.ts        |   68.65 |    66.53 |   53.57 |   68.65 | ...2486,2493-2496 
  constants.ts     |     100 |      100 |     100 |     100 |                   
  models.ts        |     100 |      100 |     100 |     100 |                   
  storage.ts       |   80.26 |    92.72 |    77.5 |   80.26 | ...83-287,298-299 
 ...nfirmation-bus |   74.35 |    52.17 |      90 |   74.35 |                   
  message-bus.ts   |   72.22 |       50 |      90 |   72.22 | ...18-120,123-124 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/core          |   77.98 |       80 |   89.94 |   77.98 |                   
  agentCore.ts     |   93.75 |       80 |     100 |   93.75 | 115,162,168,171   
  baseLlmClient.ts |     100 |    96.42 |     100 |     100 | 113               
  ...pointStore.ts |     100 |      100 |     100 |     100 |                   
  client.ts        |    72.1 |    73.58 |   91.66 |    72.1 | ...1179,1239-1240 
  ...tGenerator.ts |   80.48 |    55.17 |     100 |   80.48 | ...16,318,325-328 
  ...lScheduler.ts |   69.23 |    76.07 |      90 |   69.23 | ...1821,1878-1882 
  geminiChat.ts    |   72.29 |    82.31 |   81.25 |   72.29 | ...56-867,901-904 
  geminiRequest.ts |     100 |      100 |     100 |     100 |                   
  logger.ts        |   82.25 |    81.81 |     100 |   82.25 | ...57-361,407-421 
  ...tyDefaults.ts |     100 |      100 |     100 |     100 |                   
  ...olExecutor.ts |   92.59 |       75 |      50 |   92.59 | 41-42             
  ...on-helpers.ts |   74.74 |    46.15 |     100 |   74.74 | ...86,192,197-206 
  prompts.ts       |   81.73 |    87.95 |   69.23 |   81.73 | ...1268,1278-1305 
  tokenLimits.ts   |     100 |    88.23 |     100 |     100 | 43-44             
  ...okTriggers.ts |   99.31 |     90.9 |     100 |   99.31 | 124,135           
  turn.ts          |   91.13 |    87.03 |     100 |   91.13 | ...92,405-406,454 
 ...ntentGenerator |   87.91 |    69.28 |   91.17 |   87.91 |                   
  ...tGenerator.ts |   87.25 |    64.66 |    87.5 |   87.25 | ...45-652,656-657 
  converter.ts     |   90.35 |    73.97 |     100 |   90.35 | ...99,542-557,580 
  index.ts         |       0 |        0 |       0 |       0 | 1-21              
 ...ntentGenerator |   75.87 |    61.84 |   94.11 |   75.87 |                   
  ...tGenerator.ts |   73.49 |    61.64 |   93.75 |   73.49 | ...57-463,481-482 
  index.ts         |     100 |    66.66 |     100 |     100 | 45                
 ...ntentGenerator |   91.06 |    67.96 |      85 |   91.06 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...tGenerator.ts |   91.02 |    67.96 |      85 |   91.02 | ...37,547-548,576 
 ...ntentGenerator |   79.01 |    84.02 |    92.1 |   79.01 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  converter.ts     |   76.08 |    80.06 |      90 |   76.08 | ...1526,1547-1556 
  errorHandler.ts  |     100 |      100 |     100 |     100 |                   
  index.ts         |       0 |        0 |       0 |       0 | 1-94              
  ...tGenerator.ts |   48.78 |    91.66 |   77.77 |   48.78 | ...10-163,166-167 
  pipeline.ts      |   88.92 |    84.23 |     100 |   88.92 | ...65-766,786,798 
  ...CallParser.ts |   91.42 |    89.74 |     100 |   91.42 | ...48-352,382-383 
 ...rator/provider |    96.1 |    88.07 |   93.75 |    96.1 |                   
  dashscope.ts     |   96.29 |    87.09 |   93.33 |   96.29 | ...10-211,287-288 
  deepseek.ts      |   90.76 |       75 |     100 |   90.76 | 40-41,45-46,59-60 
  default.ts       |   97.64 |      100 |   85.71 |   97.64 | 85-86             
  index.ts         |     100 |      100 |     100 |     100 |                   
  modelscope.ts    |     100 |      100 |     100 |     100 |                   
  openrouter.ts    |     100 |      100 |     100 |     100 |                   
  types.ts         |       0 |        0 |       0 |       0 |                   
 src/extension     |   60.36 |    79.75 |   78.22 |   60.36 |                   
  ...-converter.ts |   63.79 |    47.82 |      90 |   63.79 | ...86-787,796-828 
  ...ionManager.ts |    44.7 |    84.12 |   65.11 |    44.7 | ...1320,1341-1360 
  ...onSettings.ts |   93.46 |    93.05 |     100 |   93.46 | ...17-221,228-232 
  ...-converter.ts |   54.88 |    94.44 |      60 |   54.88 | ...35-146,158-192 
  github.ts        |   44.94 |    88.52 |      60 |   44.94 | ...53-359,398-451 
  index.ts         |     100 |      100 |     100 |     100 |                   
  marketplace.ts   |   97.29 |    93.75 |     100 |   97.29 | ...64,184-185,274 
  npm.ts           |   49.82 |    76.08 |      75 |   49.82 | ...05-407,414-418 
  override.ts      |   94.11 |    88.88 |     100 |   94.11 | 63-64,81-82       
  settings.ts      |   66.26 |      100 |      50 |   66.26 | 81-108,143-149    
  storage.ts       |   94.73 |       90 |     100 |   94.73 | 41-42             
  ...ableSchema.ts |     100 |      100 |     100 |     100 |                   
  variables.ts     |   88.75 |    83.33 |     100 |   88.75 | ...28-231,234-237 
 src/followup      |   44.88 |    92.71 |   68.42 |   44.88 |                   
  followupState.ts |   95.83 |    89.18 |     100 |   95.83 | 153-155,210-211   
  forkedQuery.ts   |      30 |      100 |      50 |      30 | 122-249           
  index.ts         |     100 |      100 |     100 |     100 |                   
  overlayFs.ts     |   95.06 |       84 |     100 |   95.06 | 78,108,122,133    
  speculation.ts   |    13.4 |      100 |   16.66 |    13.4 | 88-458,518-563    
  ...onToolGate.ts |     100 |    96.29 |     100 |     100 | 93                
  ...nGenerator.ts |   38.27 |    95.12 |   33.33 |   38.27 | ...00-302,337-367 
 src/generated     |       0 |        0 |       0 |       0 |                   
  git-commit.ts    |       0 |        0 |       0 |       0 | 1-10              
 src/goal          |   96.07 |    86.04 |     100 |   96.07 |                   
  GoalManager.ts   |     100 |    94.11 |     100 |     100 | 131,151           
  goalEvaluator.ts |   92.85 |    80.76 |     100 |   92.85 | ...44-148,199-200 
  index.ts         |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/hooks         |   78.24 |    84.66 |   85.27 |   78.24 |                   
  ...on-checker.ts |     100 |      100 |     100 |     100 |                   
  ...Aggregator.ts |   96.17 |       90 |     100 |   96.17 | ...74,276-277,350 
  ...entHandler.ts |   86.07 |       84 |   80.76 |   86.07 | ...88,641-642,652 
  hookPlanner.ts   |   78.18 |       72 |    90.9 |   78.18 | ...18-236,244-245 
  hookRegistry.ts  |   84.32 |    77.77 |     100 |   84.32 | ...04,435,437,439 
  hookRunner.ts    |   61.61 |    73.33 |   73.33 |   61.61 | ...45-655,708-709 
  hookSystem.ts    |   82.73 |      100 |   83.33 |   82.73 | ...54-370,376-392 
  index.ts         |     100 |      100 |     100 |     100 |                   
  trustedHooks.ts  |     9.3 |      100 |       0 |     9.3 | 24-122            
  types.ts         |   89.01 |    94.66 |   85.18 |   89.01 | ...70-371,431-435 
 src/ide           |   72.67 |    83.92 |   75.92 |   72.67 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  detect-ide.ts    |     100 |      100 |     100 |     100 |                   
  ide-client.ts    |    64.2 |    81.48 |   66.66 |    64.2 | ...9-970,999-1007 
  ideContext.ts    |     100 |      100 |     100 |     100 |                   
  process-utils.ts |   84.84 |    71.79 |     100 |   84.84 | ...37,151,193-194 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/loop          |   96.33 |    90.47 |     100 |   96.33 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...rvalParser.ts |   92.59 |     91.3 |     100 |   92.59 | 73-74,82-83       
  ...rvalToCron.ts |     100 |    89.47 |     100 |     100 | 86-87             
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/lsp           |   33.39 |    43.56 |   44.91 |   33.39 |                   
  ...nfigLoader.ts |   70.27 |    35.89 |   94.73 |   70.27 | ...20-422,426-432 
  ...ionFactory.ts |    4.29 |        0 |       0 |    4.29 | ...20-371,377-394 
  ...Normalizer.ts |   23.09 |    13.72 |   30.43 |   23.09 | ...04-905,909-924 
  ...verManager.ts |   10.47 |       75 |      25 |   10.47 | ...56-675,681-711 
  ...eLspClient.ts |   17.89 |      100 |       0 |   17.89 | ...37-244,254-258 
  ...LspService.ts |   45.87 |    62.13 |   66.66 |   45.87 | ...1282,1299-1309 
  constants.ts     |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/mcp           |   78.74 |    75.68 |   75.92 |   78.74 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  ...h-provider.ts |   86.95 |      100 |   33.33 |   86.95 | ...,93,97,101-102 
  ...h-provider.ts |   73.74 |    54.45 |     100 |   73.74 | ...64-871,878-880 
  ...en-storage.ts |   98.62 |    97.72 |     100 |   98.62 | 87-88             
  oauth-utils.ts   |   70.58 |    85.29 |    90.9 |   70.58 | ...70-290,315-344 
  ...n-provider.ts |   89.83 |    95.83 |   45.45 |   89.83 | ...43,147,151-152 
 .../token-storage |   79.48 |    86.66 |   86.36 |   79.48 |                   
  ...en-storage.ts |     100 |      100 |     100 |     100 |                   
  ...en-storage.ts |   82.75 |    82.35 |   92.85 |   82.75 | ...62-172,180-181 
  ...en-storage.ts |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...en-storage.ts |   68.14 |    82.35 |   64.28 |   68.14 | ...81-295,298-314 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/memory        |   15.06 |       75 |     7.4 |   15.06 |                   
  ...tterParser.ts |   13.04 |      100 |       0 |   13.04 | 20-51,57-72       
  index.ts         |     100 |      100 |     100 |     100 |                   
  memoryAge.ts     |   32.07 |      100 |       0 |   32.07 | 36-46,53-68,75-84 
  ...yExtractor.ts |   13.68 |      100 |       0 |   13.68 | 35-189            
  memoryPrompt.ts  |     100 |      100 |     100 |     100 |                   
  memoryScan.ts    |   21.05 |      100 |       0 |   21.05 | 19-24,31-40       
  memoryStore.ts   |    7.75 |       75 |   18.18 |    7.75 | 52-364            
  proposalStore.ts |    7.27 |      100 |       0 |    7.27 | 20-152            
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/mocks         |       0 |        0 |       0 |       0 |                   
  msw.ts           |       0 |        0 |       0 |       0 | 1-9               
 src/models        |   88.44 |    82.37 |    87.3 |   88.44 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...nfigErrors.ts |   74.22 |    47.82 |   84.61 |   74.22 | ...,67-74,106-117 
  ...igResolver.ts |    99.3 |    87.09 |     100 |    99.3 | 127               
  modelRegistry.ts |     100 |    97.72 |     100 |     100 | 164               
  modelsConfig.ts  |   84.51 |    82.17 |   83.33 |   84.51 | ...1069,1098-1099 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/output        |     100 |      100 |     100 |     100 |                   
  ...-formatter.ts |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/permissions   |   68.47 |    87.27 |   48.27 |   68.47 |                   
  ...classifier.ts |   30.88 |    57.14 |   33.33 |   30.88 | ...07-230,234-235 
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...on-manager.ts |   77.21 |       80 |      84 |   77.21 | ...95-802,822-831 
  rule-parser.ts   |   98.03 |    95.15 |     100 |   98.03 | ...39-840,989-991 
  ...-semantics.ts |   58.28 |    85.27 |    30.2 |   58.28 | ...1604-1614,1643 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/prompts       |   29.09 |      100 |      25 |   29.09 |                   
  mcp-prompts.ts   |   18.18 |      100 |       0 |   18.18 | 11-19             
  ...t-registry.ts |   31.81 |      100 |   28.57 |   31.81 | ...45,51-58,71-76 
 src/recap         |   86.44 |    66.66 |     100 |   86.44 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...pGenerator.ts |   85.96 |    66.66 |     100 |   85.96 | 104-111           
 src/services      |   67.52 |    79.56 |   80.64 |   67.52 |                   
  baselineCheck.ts |    3.65 |      100 |       0 |    3.65 | 25-93,100-132     
  ...VerifyGate.ts |   88.81 |    91.42 |     100 |   88.81 | 91-99,139-146     
  ...ionService.ts |   80.63 |    85.31 |   81.81 |   80.63 | ...78-813,828-861 
  ...ingService.ts |   68.22 |    51.28 |    87.5 |   68.22 | ...24-525,542-543 
  cronScheduler.ts |   85.02 |    90.32 |   94.11 |   85.02 | ...24,128-137,202 
  evolveService.ts |      15 |      100 |       0 |      15 | 45-197            
  ...eryService.ts |   80.43 |    95.45 |      75 |   80.43 | ...19-134,140-141 
  fileReadCache.ts |     100 |      100 |     100 |     100 |                   
  ...temService.ts |   89.76 |     85.1 |   88.88 |   89.76 | ...89,191,266-273 
  fileTracker.ts   |   98.21 |     90.9 |     100 |   98.21 | 43                
  gitService.ts    |   85.39 |    83.33 |   77.77 |   85.39 | ...06-107,116-120 
  ...reeService.ts |    67.5 |    65.21 |    87.5 |    67.5 | ...24,830-847,865 
  ...derService.ts |   42.85 |    22.22 |   66.66 |   42.85 | ...03-108,117-118 
  ...ionService.ts |    97.5 |     96.7 |   95.45 |    97.5 | ...38-339,386-387 
  ...solidation.ts |     5.9 |        0 |       0 |     5.9 | 65-339            
  microcompact.ts  |   85.71 |       68 |     100 |   85.71 | ...59,76-77,79-80 
  ...leSelector.ts |   94.03 |       75 |     100 |   94.03 | ...40,243-244,285 
  ...kerService.ts |    5.79 |        0 |       0 |    5.79 | 21-107            
  ...EditVerify.ts |   11.11 |      100 |       0 |   11.11 | 19-76             
  ...MapService.ts |    83.2 |    79.31 |      90 |    83.2 | ...30,343,392-415 
  scopeLock.ts     |   36.17 |    66.66 |   28.57 |   36.17 | ...,87-88,104-116 
  sessionNotes.ts  |   33.89 |      100 |      40 |   33.89 | 89-147            
  sessionRecap.ts  |    12.5 |      100 |       0 |    12.5 | 20-35             
  ...ionService.ts |      81 |    70.22 |    91.3 |      81 | ...87-908,916-940 
  ...ionService.ts |   85.06 |    81.68 |      85 |   85.06 | ...1073,1079-1084 
  ...actService.ts |   28.04 |       50 |   33.33 |   28.04 | ...22-123,130-144 
  task-store.ts    |     8.1 |        0 |       0 |     8.1 | 106-597           
 .../sessionMemory |   32.89 |    95.23 |    37.5 |   32.89 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  prompts.ts       |    6.77 |      100 |       0 |    6.77 | ...65-166,179-221 
  sessionMemory.ts |   13.18 |      100 |       0 |   13.18 | 58-176            
  ...emoryUtils.ts |   85.22 |    95.23 |   64.28 |   85.22 | ...68-172,176-177 
 src/skills        |   83.48 |    80.25 |   89.28 |   83.48 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  skill-load.ts    |   90.83 |    77.77 |     100 |   90.83 | ...28,148,160-162 
  skill-manager.ts |    80.9 |    80.83 |    87.5 |    80.9 | ...12-720,727-731 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/subagents     |    80.7 |    82.74 |    92.1 |    80.7 |                   
  ...tin-agents.ts |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...nt-manager.ts |    71.6 |    73.88 |      88 |    71.6 | ...-932,1008-1009 
  types.ts         |     100 |      100 |     100 |     100 |                   
  validation.ts    |   92.34 |    96.51 |     100 |   92.34 | 50-55,59-64,68-73 
 src/telemetry     |   67.67 |    84.42 |   69.94 |   67.67 |                   
  config.ts        |     100 |      100 |     100 |     100 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  ...-exporters.ts |   46.37 |      100 |   44.44 |   46.37 | ...85,88-89,92-93 
  ...sTelemetry.ts |   24.19 |      100 |   16.66 |   24.19 | ...59-177,186-203 
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...t.circular.ts |       0 |        0 |       0 |       0 | 1-128             
  loggers.ts       |   51.34 |       70 |   48.71 |   51.34 | ...1045,1048-1072 
  metrics.ts       |   82.85 |    86.74 |   81.63 |   82.85 | ...25-726,732-750 
  sanitize.ts      |      80 |    83.33 |     100 |      80 | 35-36,41-42       
  sdk.ts           |   86.09 |    74.46 |     100 |   86.09 | ...67,270,273,286 
  ...etry-utils.ts |     100 |      100 |     100 |     100 |                   
  ...l-decision.ts |     100 |      100 |     100 |     100 |                   
  ...panContext.ts |     100 |      100 |     100 |     100 |                   
  types.ts         |   71.87 |    81.48 |      75 |   71.87 | ...0-988,991-1020 
  uiTelemetry.ts   |   91.87 |    96.15 |   78.57 |   91.87 | ...67-168,174-181 
 src/test-utils    |   92.85 |    94.28 |   77.41 |   92.85 |                   
  config.ts        |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  mock-tool.ts     |   91.02 |    93.54 |   75.86 |   91.02 | ...31,195-196,209 
  ...aceContext.ts |     100 |      100 |     100 |     100 |                   
 src/tools         |   71.19 |    77.75 |   73.46 |   71.19 |                   
  agent.ts         |   76.12 |     86.5 |   76.19 |   76.12 | ...1032,1041-1046 
  ...erQuestion.ts |   89.33 |    79.16 |    90.9 |   89.33 | ...74-375,382-383 
  bg-stop.ts       |   31.74 |      100 |      25 |   31.74 | ...79-132,164-167 
  browser-tool.ts  |   55.51 |    44.44 |   94.11 |   55.51 | ...77-978,980-981 
  cron-create.ts   |   97.61 |    88.88 |   83.33 |   97.61 | 30-31             
  cron-delete.ts   |   96.55 |      100 |   83.33 |   96.55 | 26-27             
  cron-list.ts     |   96.36 |      100 |   83.33 |   96.36 | 25-26             
  diffOptions.ts   |     100 |      100 |     100 |     100 |                   
  edit.ts          |   80.11 |       83 |      75 |   80.11 | ...68-569,652-702 
  exitPlanMode.ts  |   85.81 |    86.95 |     100 |   85.81 | ...24-129,157-169 
  glob.ts          |   91.57 |    88.33 |   84.61 |   91.57 | ...20,163,293,296 
  grep.ts          |    71.3 |    87.34 |   68.42 |    71.3 | ...90,530,538-545 
  ls.ts            |   96.72 |    90.14 |     100 |   96.72 | 169-174,205,209   
  lsp.ts           |   72.58 |    60.29 |   90.32 |   72.58 | ...1202,1204-1205 
  mailbox-tools.ts |   96.42 |      100 |   83.33 |   96.42 | 39-40,117-118     
  ...nt-manager.ts |   46.44 |       60 |    42.1 |   46.44 | ...89-507,510-547 
  mcp-client.ts    |   29.34 |    70.83 |   45.45 |   29.34 | ...1425,1431-1434 
  mcp-tool.ts      |   90.46 |     87.5 |   96.55 |   90.46 | ...11-612,662-663 
  memoryTool.ts    |   74.68 |     80.7 |   90.47 |   74.68 | ...41-350,463-547 
  ...iable-tool.ts |     100 |    84.61 |     100 |     100 | 102,109           
  read-file.ts     |   95.37 |    90.76 |   81.81 |   95.37 | ...5-88,91-92,224 
  repoMap.ts       |   59.42 |      100 |   33.33 |   59.42 | ...,47-61,109-112 
  ripGrep.ts       |   96.24 |    90.76 |     100 |   96.24 | ...73,276,354-355 
  ...-transport.ts |    6.34 |        0 |       0 |    6.34 | 47-145            
  shell.ts         |   82.96 |    78.19 |   85.71 |   82.96 | ...84-588,789-790 
  skill.ts         |   94.08 |    88.88 |   84.61 |   94.08 | ...16,255-258,262 
  task-create.ts   |   59.03 |      100 |   33.33 |   59.03 | ...,36-59,105-108 
  task-get.ts      |      50 |      100 |   33.33 |      50 | ...29,32-57,88-91 
  task-list.ts     |   47.82 |      100 |   33.33 |   47.82 | ...,40-72,113-116 
  task-output.ts   |    59.7 |      100 |   33.33 |    59.7 | ...30,33-50,87-90 
  task-ready.ts    |   39.44 |      100 |   33.33 |   39.44 | ...,35-93,132-135 
  task-stop.ts     |      50 |      100 |   33.33 |      50 | ...30,33-61,96-99 
  task-update.ts   |   86.56 |      100 |      75 |   86.56 | 33-38,156-167     
  tool-error.ts    |     100 |      100 |     100 |     100 |                   
  tool-names.ts    |     100 |      100 |     100 |     100 |                   
  tool-registry.ts |   62.56 |    65.38 |   57.57 |   62.56 | ...43-552,559-575 
  tools.ts         |   83.11 |    89.58 |   77.77 |   83.11 | ...33-434,450-456 
  web-fetch.ts     |   85.41 |    58.33 |   91.66 |   85.41 | ...58-259,261-262 
  write-file.ts    |   79.25 |    78.46 |   69.23 |   79.25 | ...60-463,475-510 
 ...ols/web-search |   79.93 |    74.13 |   78.94 |   79.93 |                   
  base-provider.ts |    72.5 |    57.14 |     100 |    72.5 | 44-48,63-66,75-76 
  index.ts         |   82.94 |    80.43 |   85.71 |   82.94 | ...80-188,196-200 
  types.ts         |       0 |        0 |       0 |       0 | 1                 
  utils.ts         |      60 |       50 |      50 |      60 | 35-42             
 ...arch/providers |   77.41 |       65 |   88.88 |   77.41 |                   
  ...e-provider.ts |   17.64 |        0 |       0 |   17.64 | 16-33             
  ...e-provider.ts |   83.33 |    55.55 |     100 |   83.33 | 57-58,61-62,76-80 
  ...y-provider.ts |   90.56 |       80 |     100 |   90.56 | 66-70             
 src/utils         |   84.64 |    87.16 |   88.57 |   84.64 |                   
  LruCache.ts      |       0 |        0 |       0 |       0 | 1-41              
  ...ssageQueue.ts |     100 |      100 |     100 |     100 |                   
  ...cFileWrite.ts |   76.08 |    44.44 |     100 |   76.08 | 61-70,72          
  ...essEmitter.ts |   10.86 |      100 |       0 |   10.86 | ...,95-99,114-190 
  browser.ts       |    7.69 |      100 |       0 |    7.69 | 17-56             
  ...igResolver.ts |     100 |      100 |     100 |     100 |                   
  cronDisplay.ts   |   42.85 |    23.07 |     100 |   42.85 | 26-31,33-45,47-54 
  cronParser.ts    |   89.74 |    85.71 |     100 |   89.74 | ...,63-64,183-186 
  debugLogger.ts   |   96.12 |    93.75 |   93.75 |   96.12 | 164-168           
  editHelper.ts    |   92.67 |    82.14 |     100 |   92.67 | ...52-454,463-464 
  editor.ts        |   96.98 |    93.87 |     100 |   96.98 | ...93-194,196-197 
  ...arResolver.ts |   94.28 |    88.88 |     100 |   94.28 | 28-29,125-126     
  ...entContext.ts |     100 |       95 |     100 |     100 | 83                
  errorParsing.ts  |   96.92 |       95 |     100 |   96.92 | 36-37             
  ...rReporting.ts |   88.46 |       90 |     100 |   88.46 | 69-74             
  errors.ts        |   68.38 |    77.27 |      50 |   68.38 | ...98-214,218-224 
  fetch.ts         |   71.97 |    72.22 |   71.42 |   71.97 | ...38,144,157,182 
  fileUtils.ts     |   87.96 |    81.31 |   94.73 |   87.96 | ...85-791,805-811 
  formatters.ts    |   54.54 |       50 |     100 |   54.54 | 12-16             
  ...eUtilities.ts |   89.21 |    86.66 |     100 |   89.21 | 16-17,49-55,65-66 
  ...rStructure.ts |   94.36 |    94.28 |     100 |   94.36 | ...17-120,330-335 
  getPty.ts        |    12.5 |      100 |       0 |    12.5 | 21-34             
  ...noreParser.ts |    92.3 |    89.36 |     100 |    92.3 | ...15-116,186-187 
  gitUtils.ts      |   36.66 |    76.92 |      50 |   36.66 | ...4,88-89,97-148 
  iconvHelper.ts   |     100 |      100 |     100 |     100 |                   
  ...rePatterns.ts |     100 |      100 |     100 |     100 |                   
  ...ionManager.ts |     100 |    88.88 |     100 |     100 | 26                
  jsonl-utils.ts   |    8.87 |      100 |       0 |    8.87 | ...51-184,190-196 
  ...-detection.ts |     100 |      100 |     100 |     100 |                   
  ...yDiscovery.ts |   82.01 |    73.21 |     100 |   82.01 | ...74-377,398-399 
  ...tProcessor.ts |   93.63 |    90.12 |     100 |   93.63 | ...96-302,384-385 
  ...Inspectors.ts |   61.53 |      100 |      50 |   61.53 | 18-23             
  ...kerChecker.ts |   84.04 |    78.94 |     100 |   84.04 | 68-69,79-84,92-98 
  openaiLogger.ts  |   86.27 |    82.14 |     100 |   86.27 | ...05-107,130-135 
  partUtils.ts     |     100 |      100 |     100 |     100 |                   
  pathReader.ts    |     100 |      100 |     100 |     100 |                   
  paths.ts         |   95.69 |    94.52 |     100 |   95.69 | ...,71-72,104-105 
  ...ectSummary.ts |    3.75 |      100 |       0 |    3.75 | 27-119            
  ...tIdContext.ts |     100 |      100 |     100 |     100 |                   
  ...noreParser.ts |    87.5 |    83.87 |     100 |    87.5 | ...72,78-79,85-86 
  ...rDetection.ts |   58.57 |       76 |     100 |   58.57 | ...4,88-89,95-100 
  rateLimit.ts     |      90 |    84.37 |     100 |      90 | 68,79-81          
  readManyFiles.ts |   85.95 |    85.71 |     100 |   85.95 | ...80-182,198-209 
  retry.ts         |   67.91 |    73.68 |     100 |   67.91 | ...82,200,207-208 
  ripgrepUtils.ts  |   46.53 |    83.33 |   66.66 |   46.53 | ...32-233,245-322 
  ...tchOptions.ts |   55.88 |       50 |      75 |   55.88 | ...29-130,151-152 
  safeJsonParse.ts |   74.07 |    83.33 |     100 |   74.07 | 40-46             
  ...nStringify.ts |     100 |      100 |     100 |     100 |                   
  ...aConverter.ts |   90.78 |    87.87 |     100 |   90.78 | ...41-42,93,95-96 
  ...aValidator.ts |     100 |    82.85 |     100 |     100 | 15-39,93-94,125   
  ...r-launcher.ts |   76.72 |     91.3 |   66.66 |   76.72 | ...33,135,156-194 
  ...orageUtils.ts |   91.17 |    87.27 |     100 |   91.17 | ...00,211-213,224 
  shell-utils.ts   |   84.23 |    90.84 |     100 |   84.23 | ...1035,1042-1046 
  ...lAstParser.ts |   92.34 |    86.54 |    92.3 |   92.34 | ...1139-1141,1151 
  ...nlyChecker.ts |   95.75 |    92.39 |     100 |   95.75 | ...00-301,313-314 
  streamStall.ts   |   97.43 |    92.85 |     100 |   97.43 | 75                
  ...tGenerator.ts |     100 |     90.9 |     100 |     100 | 129               
  symlink.ts       |   77.77 |       50 |     100 |   77.77 | 44,54-59          
  ...emEncoding.ts |   96.36 |    91.17 |     100 |   96.36 | 59-60,124-125     
  ...Serializer.ts |   98.72 |       90 |     100 |   98.72 | 42-43,134,201-203 
  testUtils.ts     |   53.33 |      100 |   33.33 |   53.33 | ...53,59-64,70-72 
  textUtils.ts     |      60 |      100 |   66.66 |      60 | 36-55             
  thoughtUtils.ts  |     100 |    93.33 |     100 |     100 | 72                
  ...-converter.ts |   94.59 |    85.71 |     100 |   94.59 | 35-36             
  tool-utils.ts    |    93.6 |     91.3 |     100 |    93.6 | ...58-159,162-163 
  truncation.ts    |     100 |     90.9 |     100 |     100 | 52,71             
  ...aceContext.ts |   96.22 |       92 |   93.33 |   96.22 | ...15-116,133,160 
  yaml-parser.ts   |      92 |    83.67 |     100 |      92 | 49-53,65-69       
 ...ils/filesearch |   96.17 |     91.4 |     100 |   96.17 |                   
  crawlCache.ts    |     100 |      100 |     100 |     100 |                   
  crawler.ts       |   96.22 |     92.3 |     100 |   96.22 | 66-67             
  fileSearch.ts    |   93.22 |    87.14 |     100 |   93.22 | ...30-231,233-234 
  ignore.ts        |     100 |      100 |     100 |     100 |                   
  result-cache.ts  |     100 |     92.3 |     100 |     100 | 46                
 ...uest-tokenizer |   56.63 |    74.52 |   74.19 |   56.63 |                   
  ...eTokenizer.ts |   41.86 |    76.47 |   69.23 |   41.86 | ...70-443,453-507 
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...tTokenizer.ts |   68.39 |    69.49 |    90.9 |   68.39 | ...24-325,327-328 
  ...ageFormats.ts |      76 |      100 |   33.33 |      76 | 45-48,55-56       
  textTokenizer.ts |     100 |      100 |     100 |     100 |                   
  types.ts         |       0 |        0 |       0 |       0 | 1                 
-------------------|---------|----------|---------|---------|-------------------

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

@mabry1985 mabry1985 merged commit 2315a02 into main May 27, 2026
7 checks passed
@mabry1985 mabry1985 deleted the feat/fail-impossible-goals branch May 27, 2026 05:31
mabry1985 added a commit that referenced this pull request May 29, 2026
…nce (#344)

* fix(goal): stop runaway loops and let the judge credit artifact evidence

Goal mode could loop forever re-confirming a finished task. Three causes,
all fixed here on top of the existing impossible-goal abandonment (#322):

- The evaluator judged only execution-shaped evidence (test output, exit
  codes), so a docs/research goal whose deliverable is files-that-exist
  could never be marked met. The judge now accepts the requested artifact
  itself as evidence and is told to judge the condition exactly as written,
  without inventing stricter acceptance criteria.

- The evidence window was the last 20 raw tool calls, so read-only churn on
  re-confirmation turns pushed the original writes out of view and the judge
  lost sight of the work that satisfied the goal. Replaced with
  summarizeToolCallsForGoal: dedupes repeats into counts, classifies
  state-changing actions vs read-only inspections, and keeps every distinct
  action while capping read noise — the deliverable stays visible no matter
  how long the agent loops.

- Added a stall guard: when the evaluator returns the same not-met reason
  GOAL_STALL_LIMIT (3) turns running without converging, the loop clears the
  goal and spends one final turn reporting to the user instead of re-firing.
  Distinct from an impossible verdict, which still ends the loop immediately.

Tests: 56 goal-module tests (incl. stall detection + summary) and 64 client
tests pass; typecheck, eslint, prettier clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* fix(goal): avoid polynomial-redos in normalizeReason

CodeQL flagged `/[.!?]+$/` (js/polynomial-redos, high): it backtracks
polynomially on strings with many '!', and the reason text it runs on comes
from the evaluator model (uncontrolled input). Replace it with a trailing-
character scan that strips the same punctuation in linear time. Behavior is
unchanged; existing stall-detection tests still pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Automaker <automaker@localhost>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant