Skip to content

Conversation

@acoliver
Copy link
Collaborator

@acoliver acoliver commented Jan 28, 2026

TLDR

OpenAIResponsesProvider.getModels() hardcoded provider: 'openai-responses' in 4 places instead of using this.name, causing ModelsDialog to show the wrong provider name for aliases like Synthetic and codex that use baseProvider: openai-responses.

closes #1209

Dive Deeper

Root Cause

When a provider alias is created (e.g., Synthetic with baseProvider: openai, or codex with baseProvider: openai-responses), the system calls bindProviderAliasIdentity() which overrides this.name via Object.defineProperty(). Both OpenAIProvider.getModels() and OpenAIVercelProvider.getModels() already use this.name for the provider field, so aliases work correctly for those base providers. However, OpenAIResponsesProvider.getModels() hardcoded provider: 'openai-responses' in all 4 return paths (no-auth fallback, API fetch, API empty-response fallback, and catch fallback), ignoring the overridden name.

Fix

Replaced all 4 occurrences of provider: 'openai-responses' in getModels() with provider: this.name. This is the same pattern already used by OpenAIProvider and OpenAIVercelProvider. The default behavior is unchanged since this.name defaults to 'openai-responses' for the non-aliased provider.

Test

Added a test that simulates alias identity binding (Object.defineProperty on name) and verifies that getModels() returns models with the overridden provider name.

Reviewer Test Plan

  1. Run tests: npm run test
  2. Verify the new test in OpenAIResponsesProvider.models.test.ts passes
  3. If you have a Synthetic or codex alias configured, run /model and verify the provider column shows the alias name, not openai-responses

Testing Matrix

\U0001F34F \U0001FAA0 \U0001F427
npm run \u2705 \u2753 \u2753
npx \u2753 \u2753 \u2753
Docker \u2753 \u2753 \u2753
Podman \u2753 - -
Seatbelt \u2753 - -

Linked issues / bugs

closes #1209

…sesProvider.getModels()

Previously, OpenAIResponsesProvider.getModels() hardcoded 'openai-responses' in 4 places (lines 209, 245, 256, 268) instead of using this.name. This caused provider aliases (like 'codex') to incorrectly show as 'openai-responses' in ModelsDialog, even when the provider's name was overridden via Object.defineProperty().

Changed all 4 occurrences to use this.name, matching the pattern already used in OpenAIProvider and OpenAIVercelProvider. Added test to verify that provider field uses this.name so aliases work correctly.

Fixes #1209
@github-actions github-actions bot added the maintainer:e2e:ok Trusted contributor; maintainer-approved E2E run label Jan 28, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 28, 2026

Walkthrough

OpenAIResponsesProvider's model listing methods are refactored to use this.name (the provider instance's alias name) instead of hardcoded 'openai-responses' for the provider field. This enables provider aliases to correctly report their identity in model listings. A new test validates that all returned models use the provider's dynamic name property.

Changes

Cohort / File(s) Summary
Provider implementation
packages/core/src/providers/openai-responses/OpenAIResponsesProvider.ts
Replaces hardcoded 'openai-responses' with this.name across getModels() paths: no-api-key fallback, API fetch results, and final fallback; also applies to Codex/non-Codex model construction branches
Provider tests
packages/core/src/providers/openai-responses/__tests__/OpenAIResponsesProvider.models.test.ts
Adds test ensuring all returned models have provider field equal to the instance's name property (supporting provider aliases)

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested labels

maintainer:e2e:ok

Poem

🐰 A provider claims its rightful name,
No more 'openai' masquerade game,
With this.name the aliases shine,
Synthetic, Qwen—each one divine,
Models now speak the truth they hold! ✨

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and accurately describes the main change: using this.name instead of hardcoded 'openai-responses' in the OpenAIResponsesProvider.getModels() method.
Linked Issues check ✅ Passed The PR directly addresses issue #1209 by ensuring getModels() uses this.name instead of hardcoded provider values, allowing aliases to display correctly in ModelsDialog.
Out of Scope Changes check ✅ Passed All changes are scoped to OpenAIResponsesProvider.getModels() (4 line replacements) and a new test to verify the fix, both directly addressing issue #1209 without unrelated modifications.
Description check ✅ Passed The pull request description comprehensively covers TLDR, Dive Deeper, Reviewer Test Plan, Testing Matrix, and Linked Issues sections with detailed technical context and clear instructions.

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

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch issue1209

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@github-actions
Copy link
Contributor

github-actions bot commented Jan 28, 2026

LLxprt PR Review – PR #1237

Issue Alignment

The fix directly resolves issue #1209. The bug caused provider aliases (Synthetic, codex) to display the wrong provider name in ModelsDialog because OpenAIResponsesProvider.getModels() hardcoded provider: 'openai-responses' in all 4 return paths instead of using this.name (which bindProviderAliasIdentity() overrides). The 4 replacements of provider: 'openai-responses'provider: this.name align with how OpenAIProvider and OpenAIVercelProvider already handle this, making the behavior consistent across providers.

Side Effects

  • No configuration changes
  • No shared module modifications beyond the target file
  • No performance impact (instance property access vs string literal)
  • Change is minimal and surgical

Code Quality

  • Correctness: Straightforward fix using instance property this.name instead of string literal
  • Error handling: Unchanged from existing code paths
  • Data validation: Not applicable (model objects unchanged except for provider field)
  • Race conditions: None introduced
  • Maintainability: Aligns with existing patterns in sibling providers

Tests and Coverage

  • Test added: Yes – OpenAIResponsesProvider.models.test.ts now includes a test that creates a provider, overrides this.name via Object.defineProperty(), calls getModels(), and verifies all returned models have the correct provider name
  • Coverage impact: Increase – new behavioral test covering alias scenario
  • Test quality: Good – tests observable behavior (provider field on returned models), not implementation details

Verdict

Ready – The fix is minimal, targeted, and properly tested. It resolves the root cause of issue #1209 and maintains consistency with how other OpenAI providers handle aliases.

@github-actions
Copy link
Contributor

Code Coverage Summary

Package Lines Statements Functions Branches
CLI 49.3% 49.3% 56.72% 77.02%
Core 70.9% 70.9% 73.65% 78.82%
CLI Package - Full Text Report
-------------------|---------|----------|---------|---------|-------------------
File               | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-------------------|---------|----------|---------|---------|-------------------
All files          |    49.3 |    77.02 |   56.72 |    49.3 |                   
 src               |   33.84 |    51.58 |      50 |   33.84 |                   
  gemini.tsx       |   14.47 |    57.14 |   28.57 |   14.47 | ...,334-1135,1143 
  ...ractiveCli.ts |   60.84 |    55.55 |   42.85 |   60.84 | ...72-488,506-513 
  ...liCommands.ts |   97.22 |       60 |     100 |   97.22 | 39-40             
  ...ActiveAuth.ts |      36 |    35.71 |      80 |      36 | ...64-169,186-195 
 src/auth          |   52.56 |    64.25 |   67.56 |   52.56 |                   
  ...andlerImpl.ts |   90.72 |    84.61 |   71.42 |   90.72 | ...48-149,155-159 
  ...henticator.ts |     100 |    95.23 |   83.33 |     100 | 170               
  ...ketManager.ts |     100 |      100 |     100 |     100 |                   
  ...h-provider.ts |   56.82 |     53.7 |   66.66 |   56.82 | ...71-605,613-636 
  ...h-provider.ts |   40.74 |    85.71 |   69.23 |   40.74 | ...72-485,489-531 
  ...h-provider.ts |   17.74 |       90 |   27.77 |   17.74 | ...31-562,568-587 
  ...l-oauth-ui.ts |   54.16 |      100 |      40 |   54.16 | 26-32,38-39,57-61 
  ...h-callback.ts |   82.94 |    75.67 |    90.9 |   82.94 | ...74-775,788-790 
  migration.ts     |       0 |        0 |       0 |       0 | 1-69              
  oauth-manager.ts |   56.44 |    56.89 |   76.92 |   56.44 | ...1991,2000-2017 
  ...h-provider.ts |   36.15 |    31.81 |      40 |   36.15 | ...52-490,498-534 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/commands      |   70.21 |      100 |      25 |   70.21 |                   
  extensions.tsx   |   56.66 |      100 |       0 |   56.66 | 23-34,38          
  mcp.ts           |   94.11 |      100 |      50 |   94.11 | 26                
 ...nds/extensions |   49.46 |       84 |    37.5 |   49.46 |                   
  disable.ts       |   17.54 |      100 |       0 |   17.54 | 17-30,36-63,65-69 
  enable.ts        |   16.12 |      100 |       0 |   16.12 | 17-36,42-68,70-74 
  install.ts       |   78.03 |    71.42 |   66.66 |   78.03 | ...09,155,158-164 
  link.ts          |   24.39 |      100 |       0 |   24.39 | 21-41,48-53,55-58 
  list.ts          |   32.14 |      100 |       0 |   32.14 | 11-27,34-35       
  new.ts           |     100 |      100 |     100 |     100 |                   
  uninstall.ts     |   44.11 |      100 |   33.33 |   44.11 | 14-22,34-39,42-45 
  update.ts        |   10.86 |      100 |       0 |   10.86 | ...43-158,160-164 
  validate.ts      |   90.21 |     87.5 |      75 |   90.21 | 49-52,59,111-114  
 ...les/mcp-server |       0 |        0 |       0 |       0 |                   
  example.ts       |       0 |        0 |       0 |       0 | 1-60              
 src/commands/mcp  |   97.15 |    86.44 |    90.9 |   97.15 |                   
  add.ts           |     100 |    96.15 |     100 |     100 | 210               
  list.ts          |   90.65 |    80.76 |      80 |   90.65 | ...11-113,138-139 
  remove.ts        |     100 |    71.42 |     100 |     100 | 19-23             
 src/config        |   84.82 |    79.16 |   74.07 |   84.82 |                   
  auth.ts          |   90.69 |    89.47 |     100 |   90.69 | 19-20,57-58       
  ...alSettings.ts |   86.66 |    88.88 |     100 |   86.66 | 40-41,44-47       
  config.ts        |   78.39 |    80.95 |   71.42 |   78.39 | ...1832,1835-1839 
  extension.ts     |   78.53 |    87.83 |   75.75 |   78.53 | ...15-816,819-820 
  keyBindings.ts   |     100 |      100 |     100 |     100 |                   
  paths.ts         |     100 |      100 |     100 |     100 |                   
  policy.ts        |   80.76 |      100 |      50 |   80.76 | 45-49             
  ...eBootstrap.ts |      86 |     82.5 |      90 |      86 | ...51-753,762-763 
  sandboxConfig.ts |    66.9 |    47.77 |   89.47 |    66.9 | ...93-500,518-519 
  ...oxProfiles.ts |    8.53 |      100 |       0 |    8.53 | 47-48,51-129      
  settings.ts      |   86.69 |    75.59 |      72 |   86.69 | ...75-776,830-831 
  ...ingsSchema.ts |   99.87 |       75 |     100 |   99.87 | 58-59             
  ...tedFolders.ts |   97.94 |    95.45 |     100 |   97.94 | 86,180-181        
  welcomeConfig.ts |   21.05 |      100 |       0 |   21.05 | ...70,73-78,81-82 
 ...fig/extensions |   71.57 |    82.72 |   91.66 |   71.57 |                   
  ...Enablement.ts |   93.87 |       96 |     100 |   93.87 | ...98-204,265-267 
  ...onSettings.ts |     100 |      100 |     100 |     100 |                   
  github.ts        |   53.01 |    82.53 |   81.81 |   53.01 | ...22-427,433-459 
  ...ntegration.ts |   90.29 |    77.77 |     100 |   90.29 | ...62-163,167-168 
  ...ingsPrompt.ts |   72.72 |    94.73 |      80 |   72.72 | 92-121            
  ...ngsStorage.ts |   73.09 |    69.81 |   92.85 |   73.09 | ...18,339-340,343 
  update.ts        |   62.34 |    46.66 |   66.66 |   62.34 | ...22-150,167-175 
  ...ableSchema.ts |     100 |      100 |     100 |     100 |                   
  variables.ts     |   95.34 |       90 |     100 |   95.34 | 30-31             
 src/constants     |     100 |      100 |     100 |     100 |                   
  historyLimits.ts |     100 |      100 |     100 |     100 |                   
 src/extensions    |   65.75 |    57.89 |      75 |   65.75 |                   
  ...utoUpdater.ts |   65.75 |    57.89 |      75 |   65.75 | ...49-450,459,461 
 src/generated     |     100 |      100 |     100 |     100 |                   
  git-commit.ts    |     100 |      100 |     100 |     100 |                   
 ...egration-tests |   90.72 |    84.61 |     100 |   90.72 |                   
  test-utils.ts    |   90.72 |    84.61 |     100 |   90.72 | ...01,219-220,230 
 src/patches       |       0 |        0 |       0 |       0 |                   
  is-in-ci.ts      |       0 |        0 |       0 |       0 | 1-17              
 src/providers     |   83.23 |    71.36 |   78.84 |   83.23 |                   
  IFileSystem.ts   |    86.2 |    85.71 |   85.71 |    86.2 | 51-52,67-68       
  ...Precedence.ts |   94.59 |    86.66 |     100 |   94.59 | 40-41             
  index.ts         |       0 |        0 |       0 |       0 | 1-19              
  ...gistration.ts |   77.94 |    68.75 |   33.33 |   77.94 | ...,93-97,103-104 
  ...derAliases.ts |   74.35 |    66.66 |     100 |   74.35 | ...43-149,154-155 
  ...onfigUtils.ts |   92.45 |       75 |     100 |   92.45 | 25-29             
  ...erInstance.ts |   84.44 |    70.77 |   79.31 |   84.44 | ...53-757,875-876 
  types.ts         |       0 |        0 |       0 |       0 | 1-8               
 ...viders/logging |   87.59 |    88.63 |   63.63 |   87.59 |                   
  ...rvice-impl.ts |   44.44 |        0 |       0 |   44.44 | 21-22,25-30,36-37 
  git-stats.ts     |   94.59 |    90.69 |     100 |   94.59 | ...48-149,180-181 
 src/runtime       |   67.09 |    72.22 |   69.67 |   67.09 |                   
  ...imeAdapter.ts |   97.03 |    89.65 |     100 |   97.03 | ...38,344-345,541 
  ...etFailover.ts |   97.05 |    91.66 |     100 |   97.05 | 31-32,215         
  messages.ts      |      20 |      100 |       0 |      20 | ...0,38-66,74-102 
  ...pplication.ts |   82.78 |    71.31 |      70 |   82.78 | ...65-668,679-680 
  ...extFactory.ts |   91.28 |    72.41 |     100 |   91.28 | ...63-266,351-358 
  ...meSettings.ts |   55.38 |    66.77 |   55.22 |   55.38 | ...2179,2204-2259 
 src/services      |   72.51 |     88.5 |   83.33 |   72.51 |                   
  ...mandLoader.ts |     100 |      100 |     100 |     100 |                   
  ...ardService.ts |    91.3 |    33.33 |     100 |    91.3 | 35-36             
  ...andService.ts |     100 |      100 |     100 |     100 |                   
  ...mandLoader.ts |   88.77 |    90.47 |     100 |   88.77 | ...79-184,258-265 
  ...omptLoader.ts |   30.68 |    81.25 |      50 |   30.68 | ...80-281,284-288 
  types.ts         |       0 |        0 |       0 |       0 | 1                 
 ...mpt-processors |   97.56 |    94.11 |     100 |   97.56 |                   
  ...tProcessor.ts |     100 |      100 |     100 |     100 |                   
  ...lProcessor.ts |   97.36 |    93.61 |     100 |   97.36 | 77-78,202-203     
  types.ts         |     100 |      100 |     100 |     100 |                   
 ...o-continuation |   85.62 |    82.14 |   94.11 |   85.62 |                   
  ...ionService.ts |   85.62 |    82.14 |   94.11 |   85.62 | ...94,553,579-580 
 src/settings      |   61.97 |    77.87 |     100 |   61.97 |                   
  ...alSettings.ts |   61.53 |    79.24 |     100 |   61.53 | ...26-437,440-446 
  ...aramParser.ts |   71.42 |    57.14 |     100 |   71.42 | 21-22,24-25,30-31 
 src/test-utils    |      72 |     92.5 |   22.22 |      72 |                   
  ...eExtension.ts |     100 |      100 |     100 |     100 |                   
  ...omMatchers.ts |   21.21 |      100 |       0 |   21.21 | 22-50             
  ...andContext.ts |     100 |      100 |     100 |     100 |                   
  render.tsx       |   77.55 |    96.29 |   18.75 |   77.55 | ...58-179,262-263 
  ...e-testing.tsx |       0 |        0 |       0 |       0 | 1-56              
  ...iderConfig.ts |       0 |        0 |       0 |       0 | 1-19              
 src/ui            |    15.8 |    98.36 |   29.87 |    15.8 |                   
  App.tsx          |   34.48 |      100 |       0 |   34.48 | 50-85,91-98       
  AppContainer.tsx |    5.06 |      100 |       0 |    5.06 | 155-164,193-2492  
  ...tionNudge.tsx |       8 |      100 |       0 |       8 | 27-102            
  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   |   95.65 |    96.29 |     100 |   95.65 | 29-30             
  ...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   |   65.14 |    76.84 |   63.48 |   65.14 |                   
  aboutCommand.ts  |      75 |       24 |     100 |      75 | ...05,112-113,141 
  authCommand.ts   |   74.95 |     84.4 |   83.33 |   74.95 | ...39-642,652-676 
  ...urlCommand.ts |      30 |      100 |       0 |      30 | 20-40             
  bugCommand.ts    |   79.16 |     37.5 |     100 |   79.16 | 32-35,42,79-88    
  chatCommand.ts   |   63.38 |    77.27 |      50 |   63.38 | ...87-509,526-536 
  clearCommand.ts  |     100 |      100 |     100 |     100 |                   
  ...essCommand.ts |   12.19 |      100 |       0 |   12.19 | 16-89             
  copyCommand.ts   |   98.27 |    94.44 |     100 |   98.27 | 37                
  debugCommands.ts |   13.29 |      100 |       0 |   13.29 | ...48,455,462,469 
  ...icsCommand.ts |    62.5 |    57.14 |   33.33 |    62.5 | ...88,320,427-432 
  ...ryCommand.tsx |   16.86 |      100 |       0 |   16.86 | ...38-148,155-179 
  docsCommand.ts   |     100 |      100 |     100 |     100 |                   
  ...extCommand.ts |   93.18 |    77.77 |     100 |   93.18 | 108-113           
  editorCommand.ts |     100 |      100 |     100 |     100 |                   
  ...onsCommand.ts |   97.61 |    89.28 |     100 |   97.61 | 22,53,130         
  helpCommand.ts   |     100 |      100 |     100 |     100 |                   
  ideCommand.ts    |   66.35 |    68.96 |   55.55 |   66.35 | ...22-225,233-240 
  initCommand.ts   |   83.33 |    71.42 |   66.66 |   83.33 | 35-39,41-85       
  keyCommand.ts    |     100 |    77.77 |     100 |     100 | 47                
  ...ileCommand.ts |   11.11 |      100 |       0 |   11.11 | 23-134            
  ...ingCommand.ts |   10.96 |      100 |       0 |   10.96 | ...59-528,545-556 
  logoutCommand.ts |   15.62 |      100 |       0 |   15.62 | 21-85             
  mcpCommand.ts    |   82.16 |    82.22 |   83.33 |   82.16 | ...10-411,429-430 
  memoryCommand.ts |   88.82 |    83.87 |     100 |   88.82 | 69-83,96-101,152  
  modelCommand.ts  |     100 |     97.5 |     100 |     100 | 122               
  mouseCommand.ts  |     100 |      100 |     100 |     100 |                   
  ...onsCommand.ts |     100 |      100 |     100 |     100 |                   
  ...iesCommand.ts |   97.02 |    82.85 |     100 |   97.02 | 27,40-41          
  ...acyCommand.ts |   61.53 |      100 |       0 |   61.53 | 22-26             
  ...ileCommand.ts |   61.47 |    73.04 |   69.23 |   61.47 | ...1044,1065-1081 
  ...derCommand.ts |   53.12 |    30.55 |      80 |   53.12 | ...58-262,270-275 
  quitCommand.ts   |   34.48 |      100 |       0 |   34.48 | 16-35             
  ...oreCommand.ts |   92.53 |     87.5 |     100 |   92.53 | ...,90-91,120-125 
  setCommand.ts    |   82.21 |    77.27 |      80 |   82.21 | ...11-816,858-871 
  ...ngsCommand.ts |     100 |      100 |     100 |     100 |                   
  ...hubCommand.ts |     100 |      100 |     100 |     100 |                   
  statsCommand.ts  |   94.33 |     90.9 |     100 |   94.33 | 26-34             
  statusCommand.ts |   13.63 |      100 |       0 |   13.63 | 20-87             
  ...entCommand.ts |   83.46 |    79.71 |   83.33 |   83.46 | ...18-624,651-664 
  ...tupCommand.ts |     100 |      100 |     100 |     100 |                   
  themeCommand.ts  |     100 |      100 |     100 |     100 |                   
  ...matCommand.ts |   26.66 |      100 |       0 |   26.66 | 33-92             
  toolsCommand.ts  |   84.98 |     74.6 |     100 |   84.98 | ...85-294,307-308 
  types.ts         |     100 |      100 |     100 |     100 |                   
  ...ileCommand.ts |   61.11 |      100 |       0 |   61.11 | 16-22             
  vimCommand.ts    |   44.44 |      100 |       0 |   44.44 | 14-24             
 ...ommands/schema |   96.22 |    91.02 |    92.3 |   96.22 |                   
  index.ts         |   96.45 |    91.61 |     100 |   96.45 | ...08-412,423-424 
  types.ts         |       0 |        0 |       0 |       0 | 1                 
 src/ui/components |   10.27 |    34.73 |    2.32 |   10.27 |                   
  AboutBox.tsx     |    4.03 |      100 |       0 |    4.03 | 27-161            
  AsciiArt.ts      |     100 |      100 |     100 |     100 |                   
  AuthDialog.tsx   |    6.29 |      100 |       0 |    6.29 | 27-194            
  ...nProgress.tsx |   16.66 |      100 |       0 |   16.66 | 18-62             
  ...Indicator.tsx |   15.15 |      100 |       0 |   15.15 | 17-47             
  ...firmation.tsx |    7.31 |      100 |       0 |    7.31 | 45-179            
  ...tsDisplay.tsx |    7.69 |      100 |       0 |    7.69 | 23-34,38-156      
  CliSpinner.tsx   |       0 |        0 |       0 |       0 | 1-22              
  Composer.tsx     |     9.8 |      100 |       0 |     9.8 | 24-73             
  ...entPrompt.tsx |   18.75 |      100 |       0 |   18.75 | 21-51             
  ...ryDisplay.tsx |   21.05 |      100 |       0 |   21.05 | 17-35             
  ...ryDisplay.tsx |    4.93 |      100 |       0 |    4.93 | 26-112            
  ...geDisplay.tsx |       0 |        0 |       0 |       0 | 1-37              
  ...gProfiler.tsx |   17.88 |      100 |       0 |   17.88 | ...71-116,120-199 
  ...esDisplay.tsx |   10.52 |      100 |       0 |   10.52 | 24-82             
  ...ogManager.tsx |    9.26 |      100 |       0 |    9.26 | 59-487            
  ...ngsDialog.tsx |    6.53 |      100 |       0 |    6.53 | 27-189            
  ...rBoundary.tsx |   10.16 |        0 |       0 |   10.16 | ...16-161,179-191 
  ...ustDialog.tsx |   15.73 |      100 |       0 |   15.73 | 31-123            
  Footer.tsx       |    8.94 |      100 |     100 |    8.94 | ...30-508,512-525 
  ...ngSpinner.tsx |    40.9 |      100 |       0 |    40.9 | 31-47             
  Header.tsx       |    17.5 |      100 |       0 |    17.5 | 22-62             
  Help.tsx         |    3.17 |      100 |       0 |    3.17 | 17-179            
  ...emDisplay.tsx |   19.23 |      100 |       0 |   19.23 | 51-179            
  InputPrompt.tsx  |    38.8 |     37.2 |   66.66 |    38.8 | ...4-902,916-1065 
  ...tsDisplay.tsx |    4.41 |      100 |       0 |    4.41 | 26-37,41-249      
  ...utManager.tsx |       0 |        0 |       0 |       0 | 1-97              
  ...ileDialog.tsx |    6.89 |      100 |       0 |    6.89 | 20-119            
  ...Indicator.tsx |   14.54 |      100 |       0 |   14.54 | 24-81             
  ...ingDialog.tsx |    4.52 |      100 |       0 |    4.52 | ...9,84-90,93-354 
  ...geDisplay.tsx |       0 |        0 |       0 |       0 | 1-40              
  ModelDialog.tsx  |    1.79 |      100 |       0 |    1.79 | 53-76,79-628      
  ...tsDisplay.tsx |    6.28 |      100 |       0 |    6.28 | 33-52,56-214      
  ...fications.tsx |   15.65 |      100 |       0 |   15.65 | 36-149            
  ...odeDialog.tsx |    7.31 |      100 |       0 |    7.31 | 30-140            
  ...ustDialog.tsx |    6.21 |      100 |       0 |    6.21 | 30-237            
  PrepareLabel.tsx |   13.33 |      100 |       0 |   13.33 | 20-48             
  ...ailDialog.tsx |   11.58 |      100 |       0 |   11.58 | 57-68,71-343      
  ...ineEditor.tsx |    2.59 |      100 |       0 |    2.59 | 25-65,69-357      
  ...istDialog.tsx |    2.99 |      100 |       0 |    2.99 | 35-369            
  ...derDialog.tsx |    3.84 |      100 |       0 |    3.84 | 22-272            
  ...Indicator.tsx |       0 |        0 |       0 |       0 | 1-21              
  ...eKeyInput.tsx |       0 |        0 |       0 |       0 | 1-138             
  ...ryDisplay.tsx |      50 |      100 |       0 |      50 | 15-17             
  ...ngsDialog.tsx |    1.95 |      100 |       0 |    1.95 | ...0-109,112-1272 
  ...ionDialog.tsx |    12.5 |      100 |       0 |    12.5 | 32-114            
  ...Indicator.tsx |   44.44 |      100 |       0 |   44.44 | 12-17             
  ...MoreLines.tsx |      28 |      100 |       0 |      28 | 18-40             
  StatsDisplay.tsx |    6.82 |      100 |       0 |    6.82 | ...85-160,168-339 
  ...nsDisplay.tsx |    7.76 |      100 |       0 |    7.76 | 49-164            
  ThemeDialog.tsx  |    4.85 |      100 |       0 |    4.85 | 34-338            
  Tips.tsx         |      16 |      100 |       0 |      16 | 17-45             
  TodoPanel.tsx    |    5.55 |      100 |       0 |    5.55 | 26-74,77-245      
  ...tsDisplay.tsx |    7.42 |      100 |       0 |    7.42 | 30-53,56-228      
  ToolsDialog.tsx  |    7.86 |      100 |       0 |    7.86 | 23-119            
  ...ification.tsx |   36.36 |      100 |       0 |   36.36 | 15-22             
  ...ionDialog.tsx |    7.52 |      100 |       0 |    7.52 | 18-122            
  todo-utils.ts    |       0 |        0 |       0 |       0 | 1-7               
 ...leCreateWizard |   19.24 |       50 |       0 |   19.24 |                   
  ...aramsStep.tsx |    5.82 |      100 |       0 |    5.82 | 27-244            
  ...ationStep.tsx |    4.82 |      100 |       0 |    4.82 | 27-294            
  ...onfigStep.tsx |   11.23 |      100 |       0 |   11.23 | 25-119            
  ...electStep.tsx |    6.11 |      100 |       0 |    6.11 | 28-235            
  ...ationMenu.tsx |       0 |        0 |       0 |       0 | 1-101             
  ...eSaveStep.tsx |    6.28 |      100 |       0 |    6.28 | 33-255            
  ...ssSummary.tsx |   12.12 |      100 |       0 |   12.12 | 22-87             
  ...electStep.tsx |   16.92 |      100 |       0 |   16.92 | 27-94             
  TextInput.tsx    |     5.6 |      100 |       0 |     5.6 | 27-168            
  constants.ts     |     100 |      100 |     100 |     100 |                   
  index.tsx        |    6.27 |      100 |       0 |    6.27 | 28-296            
  types.ts         |     100 |      100 |     100 |     100 |                   
  utils.ts         |    5.22 |      100 |       0 |    5.22 | ...46-350,355-372 
  validation.ts    |   11.23 |      100 |       0 |   11.23 | ...97-104,107-111 
 ...gentManagement |     7.7 |      100 |       0 |     7.7 |                   
  ...entWizard.tsx |    4.06 |      100 |       0 |    4.06 | 33-238            
  ...ionWizard.tsx |    2.81 |      100 |       0 |    2.81 | 28-362            
  ...eteDialog.tsx |    6.59 |      100 |       0 |    6.59 | 21-126            
  ...tEditForm.tsx |    3.72 |      100 |       0 |    3.72 | 24-249            
  ...tListMenu.tsx |    3.97 |      100 |       0 |    3.97 | 25-236            
  ...tMainMenu.tsx |   18.75 |      100 |       0 |   18.75 | 19-49             
  ...gerDialog.tsx |    3.89 |      100 |       0 |    3.89 | 26-444            
  ...tShowView.tsx |    4.03 |      100 |       0 |    4.03 | 21-162            
  index.ts         |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 ...comeOnboarding |   13.04 |        0 |       0 |   13.04 |                   
  ...ethodStep.tsx |   22.47 |      100 |       0 |   22.47 | 43-128            
  ...ationStep.tsx |    5.42 |      100 |       0 |    5.42 | 28-182            
  ...etionStep.tsx |    5.08 |      100 |       0 |    5.08 | 22-164            
  ...electStep.tsx |    7.95 |      100 |       0 |    7.95 | 30-131            
  ...electStep.tsx |   34.48 |      100 |       0 |   34.48 | 50-119            
  SkipExitStep.tsx |    12.5 |      100 |       0 |    12.5 | 18-59             
  ...omeDialog.tsx |   12.38 |      100 |       0 |   12.38 | 37-146            
  WelcomeStep.tsx  |    10.2 |      100 |       0 |    10.2 | 23-74             
  index.ts         |       0 |        0 |       0 |       0 | 1-13              
 ...nents/messages |    10.7 |      100 |    3.57 |    10.7 |                   
  ...onMessage.tsx |   13.72 |      100 |       0 |   13.72 | 24-80             
  DiffRenderer.tsx |    3.33 |      100 |       0 |    3.33 | ...79-360,363-381 
  ErrorMessage.tsx |   22.22 |      100 |       0 |   22.22 | 16-31             
  ...niMessage.tsx |   16.07 |      100 |       0 |   16.07 | 27-83             
  ...geContent.tsx |   20.83 |      100 |       0 |   20.83 | 26-46             
  InfoMessage.tsx  |   26.31 |      100 |       0 |   26.31 | 17-32             
  ...rlMessage.tsx |   11.36 |      100 |       0 |   11.36 | 18-65             
  ...ckDisplay.tsx |      20 |      100 |       0 |      20 | 43-64             
  ...onMessage.tsx |    4.45 |      100 |       0 |    4.45 | 41-374            
  ...upMessage.tsx |   10.36 |      100 |       0 |   10.36 | ...2,65-80,84-254 
  ToolMessage.tsx  |    7.11 |      100 |       0 |    7.11 | ...66-400,403-406 
  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 |   31.87 |    56.35 |    61.9 |   31.87 |                   
  ...ctionList.tsx |    5.55 |      100 |       0 |    5.55 | 53-184            
  MaxSizedBox.tsx  |    2.37 |      100 |       0 |    2.37 | 23-50,99-625      
  ...tonSelect.tsx |   13.63 |      100 |       0 |   13.63 | 57-100            
  ...lableList.tsx |    8.49 |      100 |       0 |    8.49 | 45-153            
  ...lizedList.tsx |    2.29 |      100 |       0 |    2.29 | 56-486            
  text-buffer.ts   |    51.8 |    62.01 |   83.33 |    51.8 | ...1823-1873,1911 
  ...er-actions.ts |   30.78 |    38.59 |      50 |   30.78 | ...98-806,810-812 
 ...mponents/views |    11.7 |      100 |       0 |    11.7 |                   
  ChatList.tsx     |    14.7 |      100 |       0 |    14.7 | 18-51             
  ...sionsList.tsx |      10 |      100 |       0 |      10 | 19-80             
 src/ui/constants  |     100 |      100 |     100 |     100 |                   
  ...ollections.ts |     100 |      100 |     100 |     100 |                   
 src/ui/containers |       0 |        0 |       0 |       0 |                   
  ...ontroller.tsx |       0 |        0 |       0 |       0 | 1-340             
  UIStateShell.tsx |       0 |        0 |       0 |       0 | 1-15              
 src/ui/contexts   |   53.81 |    72.35 |   38.33 |   53.81 |                   
  ...chContext.tsx |    64.7 |      100 |      50 |    64.7 | 24-29             
  FocusContext.tsx |       0 |        0 |       0 |       0 | 1-11              
  ...ssContext.tsx |    74.4 |    76.82 |   78.57 |    74.4 | ...23-929,932-988 
  MouseContext.tsx |      70 |    68.75 |      80 |      70 | ...23-136,143-144 
  ...erContext.tsx |       0 |        0 |       0 |       0 | 1-120             
  ...owContext.tsx |   19.64 |      100 |       0 |   19.64 | 33,36,39-87       
  ...meContext.tsx |   46.92 |       25 |   28.57 |   46.92 | ...91,195-196,201 
  ...lProvider.tsx |   89.16 |    69.81 |     100 |   89.16 | ...79-380,387-388 
  ...onContext.tsx |    6.73 |      100 |       0 |    6.73 | ...88-282,287-294 
  ...teContext.tsx |       0 |        0 |       0 |       0 | 1-61              
  ...gsContext.tsx |      50 |      100 |       0 |      50 | 15-20             
  ...ngContext.tsx |   42.85 |      100 |       0 |   42.85 | 15-22             
  TodoContext.tsx  |   55.55 |      100 |       0 |   55.55 | 19-22,24-27       
  TodoProvider.tsx |    6.94 |      100 |       0 |    6.94 | 24-105            
  ...llContext.tsx |     100 |      100 |       0 |     100 |                   
  ...lProvider.tsx |    6.75 |      100 |       0 |    6.75 | 28-122            
  ...nsContext.tsx |      25 |      100 |       0 |      25 | 195-206,209-214   
  ...teContext.tsx |   27.77 |      100 |       0 |   27.77 | 235-244,247-252   
  ...deContext.tsx |   11.11 |      100 |       0 |   11.11 | 29-81,84-89       
 src/ui/editors    |   94.11 |    85.71 |   66.66 |   94.11 |                   
  ...ngsManager.ts |   94.11 |    85.71 |   66.66 |   94.11 | 55,69-70          
 src/ui/hooks      |   55.41 |    79.18 |   66.66 |   55.41 |                   
  ...dProcessor.ts |   78.19 |    77.27 |     100 |   78.19 | ...15-518,530-549 
  index.ts         |       0 |        0 |       0 |       0 | 1-9               
  ...dProcessor.ts |    96.4 |    75.67 |     100 |    96.4 | ...18-219,224-225 
  ...dProcessor.ts |   29.49 |    52.38 |      50 |   29.49 | ...76-377,382-766 
  ...dScrollbar.ts |   96.55 |      100 |     100 |   96.55 | 104-106           
  ...Completion.ts |   92.77 |    89.28 |     100 |   92.77 | ...91-192,225-228 
  ...uthCommand.ts |    6.45 |      100 |       0 |    6.45 | 15-135            
  ...tIndicator.ts |   80.95 |     87.5 |     100 |   80.95 | 37,39-49          
  ...chedScroll.ts |   16.66 |      100 |       0 |   16.66 | 14-32             
  ...ketedPaste.ts |      20 |      100 |       0 |      20 | 20-38             
  ...ompletion.tsx |   92.76 |    83.33 |     100 |   92.76 | ...22-223,227-234 
  useCompletion.ts |    92.4 |     87.5 |     100 |    92.4 | ...,95-96,100-101 
  ...leMessages.ts |       5 |      100 |       0 |       5 | 29-65,68-118      
  ...fileDialog.ts |   16.12 |      100 |       0 |   16.12 | 17-47             
  ...orSettings.ts |   11.11 |      100 |       0 |   11.11 | 29-81             
  ...AutoUpdate.ts |    9.52 |      100 |       0 |    9.52 | 18-58             
  ...ionUpdates.ts |   67.47 |    76.92 |   66.66 |   67.47 | ...79-185,200-217 
  ...erDetector.ts |     100 |      100 |     100 |     100 |                   
  useFocus.ts      |     100 |      100 |     100 |     100 |                   
  ...olderTrust.ts |     100 |      100 |     100 |     100 |                   
  ...miniStream.ts |   51.15 |    49.27 |      40 |   51.15 | ...1460,1490-1592 
  ...BranchName.ts |     100 |    88.88 |     100 |     100 | 58,61             
  ...oryManager.ts |   96.26 |     92.1 |     100 |   96.26 | ...66-167,210-211 
  ...stListener.ts |   12.12 |      100 |       0 |   12.12 | 17-50             
  ...putHistory.ts |    92.5 |    85.71 |     100 |    92.5 | 62-63,71,93-95    
  ...storyStore.ts |     100 |    94.11 |     100 |     100 | 66                
  useKeypress.ts   |   22.22 |      100 |       0 |   22.22 | 24-39             
  ...rdProtocol.ts |   36.36 |      100 |       0 |   36.36 | 24-31             
  ...fileDialog.ts |    5.71 |      100 |       0 |    5.71 | 27-135            
  ...gIndicator.ts |     100 |      100 |     100 |     100 |                   
  useLogger.ts     |   93.75 |      100 |     100 |   93.75 | 26                
  ...oryMonitor.ts |     100 |      100 |     100 |     100 |                   
  useMouse.ts      |   77.77 |    66.66 |     100 |   77.77 | 31-34             
  ...eSelection.ts |    3.13 |      100 |       0 |    3.13 | 36-103,106-315    
  ...oviderInfo.ts |       0 |        0 |       0 |       0 | 1-80              
  ...odifyTrust.ts |    9.09 |      100 |       0 |    9.09 | 46-137            
  ...raseCycler.ts |    84.9 |    76.92 |     100 |    84.9 | 43-45,48-49,65-67 
  ...cySettings.ts |   87.28 |     82.6 |     100 |   87.28 | ...21-122,133-144 
  ...Management.ts |    2.48 |      100 |       0 |    2.48 | 21-62,74-423      
  ...Completion.ts |   29.41 |       40 |     100 |   29.41 | ...14-227,236-242 
  ...iderDialog.ts |    7.89 |      100 |       0 |    7.89 | 27-110            
  ...lScheduler.ts |   67.51 |    80.64 |   77.77 |   67.51 | ...73-475,571-581 
  ...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 
  ...ectionList.ts |   87.29 |    87.91 |     100 |   87.29 | ...10-411,420-423 
  useSession.ts    |       0 |        0 |       0 |       0 | 1-23              
  ...ngsCommand.ts |   18.75 |      100 |       0 |   18.75 | 10-25             
  ...ellHistory.ts |   91.66 |    79.41 |     100 |   91.66 | ...69,117-118,128 
  ...oryCommand.ts |       0 |        0 |       0 |       0 | 1-62              
  ...ompletion.tsx |   80.42 |    83.81 |      75 |   80.42 | ...54-855,857-858 
  ...leCallback.ts |     100 |      100 |     100 |     100 |                   
  ...tateAndRef.ts |   59.09 |      100 |     100 |   59.09 | 23-31             
  ...oryRefresh.ts |     100 |      100 |     100 |     100 |                   
  ...rminalSize.ts |   11.42 |      100 |       0 |   11.42 | 13-55             
  ...emeCommand.ts |    6.03 |      100 |       0 |    6.03 | 26-151            
  useTimer.ts      |   88.09 |    85.71 |     100 |   88.09 | 44-45,51-53       
  ...ntinuation.ts |       0 |        0 |       0 |       0 | 1-270             
  ...ePreserver.ts |   48.48 |      100 |      75 |   48.48 | 33-50             
  ...oolsDialog.ts |    4.67 |      100 |       0 |    4.67 | 24-145            
  ...Onboarding.ts |    2.57 |      100 |       0 |    2.57 | 76-392            
  ...eMigration.ts |   10.34 |      100 |       0 |   10.34 | 14-72             
  vim.ts           |   83.57 |     79.5 |     100 |   83.57 | ...38,742-750,759 
 src/ui/layouts    |    5.34 |      100 |       0 |    5.34 |                   
  ...AppLayout.tsx |    5.34 |      100 |       0 |    5.34 | 57-74,77-641      
 ...noninteractive |      75 |      100 |    6.66 |      75 |                   
  ...eractiveUi.ts |      75 |      100 |    6.66 |      75 | 17-19,23-24,27-28 
 src/ui/privacy    |   25.78 |      100 |       0 |   25.78 |                   
  ...acyNotice.tsx |   10.97 |      100 |       0 |   10.97 | 22-123            
  ...acyNotice.tsx |   14.28 |      100 |       0 |   14.28 | 16-59             
  ...acyNotice.tsx |   12.19 |      100 |       0 |   12.19 | 16-62             
  ...acyNotice.tsx |   41.33 |      100 |       0 |   41.33 | 78-91,99-193      
  ...acyNotice.tsx |   21.95 |      100 |       0 |   21.95 | 20-59,62-64       
 src/ui/reducers   |   78.44 |     90.9 |      50 |   78.44 |                   
  appReducer.ts    |     100 |      100 |     100 |     100 |                   
  ...ionReducer.ts |       0 |        0 |       0 |       0 | 1-52              
 src/ui/state      |   61.25 |    33.33 |     100 |   61.25 |                   
  extensions.ts    |   61.25 |    33.33 |     100 |   61.25 | ...22,124-127,129 
 src/ui/themes     |   99.17 |    81.11 |   96.15 |   99.17 |                   
  ansi-light.ts    |     100 |      100 |     100 |     100 |                   
  ansi.ts          |     100 |      100 |     100 |     100 |                   
  atom-one-dark.ts |     100 |      100 |     100 |     100 |                   
  ayu-light.ts     |     100 |      100 |     100 |     100 |                   
  ayu.ts           |     100 |      100 |     100 |     100 |                   
  color-utils.ts   |     100 |      100 |     100 |     100 |                   
  default-light.ts |     100 |      100 |     100 |     100 |                   
  default.ts       |     100 |      100 |     100 |     100 |                   
  dracula.ts       |     100 |      100 |     100 |     100 |                   
  github-dark.ts   |     100 |      100 |     100 |     100 |                   
  github-light.ts  |     100 |      100 |     100 |     100 |                   
  googlecode.ts    |     100 |      100 |     100 |     100 |                   
  green-screen.ts  |     100 |      100 |     100 |     100 |                   
  no-color.ts      |     100 |      100 |     100 |     100 |                   
  ...c-resolver.ts |     100 |      100 |     100 |     100 |                   
  ...tic-tokens.ts |     100 |      100 |     100 |     100 |                   
  ...-of-purple.ts |     100 |      100 |     100 |     100 |                   
  theme-compat.ts  |     100 |       50 |     100 |     100 | 79                
  theme-manager.ts |   89.74 |    82.53 |     100 |   89.74 | ...04-310,315-316 
  theme.ts         |   99.51 |    76.84 |   85.71 |   99.51 | 269-270           
  xcode.ts         |     100 |      100 |     100 |     100 |                   
 src/ui/utils      |   43.03 |    86.63 |    61.6 |   43.03 |                   
  ...Colorizer.tsx |    5.76 |      100 |       0 |    5.76 | ...16-128,140-232 
  ...olePatcher.ts |      78 |    77.77 |     100 |      78 | 58-69             
  ...nRenderer.tsx |    9.15 |      100 |       0 |    9.15 | 26-170,179-188    
  ...wnDisplay.tsx |    5.63 |      100 |       0 |    5.63 | ...00-425,436-440 
  ...eRenderer.tsx |   10.63 |      100 |       0 |   10.63 | ...32-247,260-395 
  ...ketedPaste.ts |   55.55 |      100 |       0 |   55.55 | 11-12,15-16       
  clipboard.ts     |   97.29 |    84.61 |     100 |   97.29 | 40                
  ...boardUtils.ts |   32.25 |     37.5 |     100 |   32.25 | ...55-114,129-145 
  commandUtils.ts  |   93.44 |    89.79 |     100 |   93.44 | ...31,135,137-138 
  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.42 |     100 |     100 | 75                
  highlight.ts     |   65.43 |      100 |   66.66 |   65.43 | 77-110            
  input.ts         |   64.51 |    88.88 |   33.33 |   64.51 | 18-25,51-58       
  ...olDetector.ts |    6.36 |      100 |       0 |    6.36 | ...51-152,155-156 
  ...nUtilities.ts |   69.84 |    85.71 |     100 |   69.84 | 75-91,100-101     
  mouse.ts         |   83.69 |    71.42 |     100 |   83.69 | ...03,210,223-224 
  ...mConstants.ts |     100 |      100 |     100 |     100 |                   
  ...opDetector.ts |       0 |        0 |       0 |       0 | 1-209             
  responsive.ts    |    69.9 |    73.33 |      80 |    69.9 | ...95-103,106-121 
  ...putHandler.ts |   87.36 |    90.32 |     100 |   87.36 | 52-53,74-83       
  ...alContract.ts |     100 |      100 |     100 |     100 |                   
  terminalLinks.ts |     100 |      100 |     100 |     100 |                   
  ...lSequences.ts |     100 |      100 |     100 |     100 |                   
  terminalSetup.ts |    4.03 |      100 |       0 |    4.03 | 40-340            
  textUtils.ts     |   74.77 |    94.59 |   72.72 |   74.77 | ...14-115,135-137 
  ...Formatters.ts |   17.39 |      100 |       0 |   17.39 | 14-21,29-36,50-52 
  ...icsTracker.ts |     100 |    66.66 |     100 |     100 | 32-34             
  ui-sizing.ts     |   21.05 |      100 |       0 |   21.05 | 11-23,26-31       
  updateCheck.ts   |     100 |    93.75 |     100 |     100 | 33,44             
 src/utils         |   57.44 |     88.5 |   81.25 |   57.44 |                   
  ...ionContext.ts |   79.59 |       75 |     100 |   79.59 | 37-40,62-63,78-81 
  bootstrap.ts     |   94.11 |    88.88 |     100 |   94.11 | 71-72             
  checks.ts        |   33.33 |      100 |       0 |   33.33 | 23-28             
  cleanup.ts       |   72.72 |      100 |      75 |   72.72 | 43-52             
  commands.ts      |    50.9 |    63.63 |     100 |    50.9 | 25-26,45,57-84    
  commentJson.ts   |    92.3 |     92.5 |     100 |    92.3 | 94-102            
  ...ScopeUtils.ts |   19.23 |      100 |       0 |   19.23 | 23-40,46-73       
  ...icSettings.ts |   88.61 |    88.88 |     100 |   88.61 | ...37,40-43,61-64 
  ...arResolver.ts |   96.42 |    96.15 |     100 |   96.42 | 111-112           
  errors.ts        |   94.59 |       88 |     100 |   94.59 | 49-50,88-89       
  events.ts        |     100 |      100 |     100 |     100 |                   
  gitUtils.ts      |    92.5 |    82.35 |     100 |    92.5 | 61-62,77-80       
  ...AutoUpdate.ts |   67.05 |    77.08 |   71.42 |   67.05 | ...13-214,261-326 
  ...lationInfo.ts |     100 |      100 |     100 |     100 |                   
  math.ts          |   66.66 |      100 |       0 |   66.66 | 15                
  readStdin.ts     |   79.24 |       90 |      80 |   79.24 | 31-38,50-52       
  relaunch.ts      |     100 |      100 |     100 |     100 |                   
  resolvePath.ts   |   66.66 |       25 |     100 |   66.66 | 12-13,16,18-19    
  sandbox.ts       |    5.46 |      100 |   18.18 |    5.46 | 31-42,103-1199    
  ...ionCleanup.ts |   94.58 |    87.69 |     100 |   94.58 | ...74-175,256-257 
  sessionUtils.ts  |    9.23 |      100 |       0 |    9.23 | 43-99,106-120     
  settingsUtils.ts |   84.14 |    90.52 |   93.33 |   84.14 | ...12-439,478-479 
  ...ttingSaver.ts |    1.92 |      100 |       0 |    1.92 | 7-28,36-81        
  spawnWrapper.ts  |     100 |      100 |     100 |     100 |                   
  ...upWarnings.ts |     100 |      100 |     100 |     100 |                   
  stdinSafety.ts   |   93.24 |    86.48 |     100 |   93.24 | ...62-163,167,242 
  ...entEmitter.ts |     100 |      100 |     100 |     100 |                   
  ...upWarnings.ts |     100 |      100 |     100 |     100 |                   
  version.ts       |     100 |       50 |     100 |     100 | 16                
  windowTitle.ts   |     100 |      100 |     100 |     100 |                   
 src/utils/privacy |    46.3 |    68.57 |   52.63 |    46.3 |                   
  ...taRedactor.ts |   60.66 |    70.58 |   55.55 |   60.66 | ...77-479,485-506 
  ...acyManager.ts |       0 |        0 |       0 |       0 | 1-178             
 ...ed-integration |   22.23 |        0 |       0 |   22.23 |                   
  acp.ts           |   14.63 |        0 |       0 |   14.63 | ...31-332,335-342 
  ...temService.ts |   20.58 |      100 |       0 |   20.58 | ...34,37-46,48-49 
  schema.ts        |     100 |      100 |     100 |     100 |                   
  ...ntegration.ts |    4.41 |      100 |       0 |    4.41 | ...1449,1464-1514 
-------------------|---------|----------|---------|---------|-------------------
Core Package - Full Text Report
-------------------|---------|----------|---------|---------|-------------------
File               | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-------------------|---------|----------|---------|---------|-------------------
All files          |    70.9 |    78.82 |   73.65 |    70.9 |                   
 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/adapters      |     100 |      100 |     100 |     100 |                   
  ...eamAdapter.ts |     100 |      100 |     100 |     100 |                   
 src/agents        |    77.5 |     68.1 |      90 |    77.5 |                   
  ...vestigator.ts |       0 |        0 |       0 |       0 | 1-152             
  executor.ts      |   88.25 |    67.03 |     100 |   88.25 | ...04-705,741-747 
  invocation.ts    |   96.34 |    76.47 |     100 |   96.34 | 61,65-66          
  registry.ts      |       0 |        0 |       0 |       0 | 1-83              
  types.ts         |     100 |      100 |     100 |     100 |                   
  utils.ts         |   78.94 |       80 |     100 |   78.94 | 32-35             
 src/auth          |   65.76 |    80.08 |   76.76 |   65.76 |                   
  ...evice-flow.ts |    7.21 |      100 |       0 |    7.21 | ...49-268,274-282 
  ...evice-flow.ts |   46.65 |    57.14 |   63.63 |   46.65 | ...95-484,494-580 
  oauth-errors.ts  |   94.15 |    83.33 |     100 |   94.15 | ...68,609,635-636 
  precedence.ts    |   76.75 |    78.15 |   94.44 |   76.75 | ...1028,1034-1037 
  ...evice-flow.ts |    8.33 |        0 |       0 |    8.33 | ...69-206,214-220 
  token-store.ts   |   78.49 |    87.34 |   93.75 |   78.49 | ...76-477,488-496 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/code_assist   |   68.41 |    78.81 |      78 |   68.41 |                   
  codeAssist.ts    |   16.25 |       50 |   33.33 |   16.25 | ...1,80-87,95-108 
  converter.ts     |   94.96 |    93.02 |     100 |   94.96 | ...88,202,219-220 
  ...al-storage.ts |   98.21 |       75 |     100 |   98.21 | 70,119            
  oauth2.ts        |    63.4 |    75.29 |   78.57 |    63.4 | ...16-717,722-723 
  server.ts        |   51.89 |    72.72 |   53.84 |   51.89 | ...99-240,243-246 
  setup.ts         |   82.92 |    73.91 |     100 |   82.92 | ...27-129,153-159 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/commands      |     100 |      100 |     100 |     100 |                   
  extensions.ts    |     100 |      100 |     100 |     100 |                   
 src/config        |   74.44 |    78.81 |   59.11 |   74.44 |                   
  config.ts        |      73 |    79.28 |   47.46 |      73 | ...2003,2017-2018 
  constants.ts     |     100 |      100 |     100 |     100 |                   
  endpoints.ts     |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  models.ts        |     100 |      100 |     100 |     100 |                   
  ...ileManager.ts |   83.61 |    77.02 |     100 |   83.61 | ...09-413,415-419 
  ...rSingleton.ts |   77.56 |    82.85 |   41.66 |   77.56 | ...45,248-251,259 
  storage.ts       |   90.65 |     86.2 |   92.59 |   90.65 | ...67,69,71,96-97 
  ...entManager.ts |   57.91 |    65.57 |     100 |   57.91 | ...57-458,476-500 
  types.ts         |       0 |        0 |       0 |       0 |                   
 ...nfirmation-bus |   68.39 |    88.46 |   66.66 |   68.39 |                   
  index.ts         |       0 |        0 |       0 |       0 | 1-2               
  message-bus.ts   |   67.48 |    91.66 |   72.72 |   67.48 | ...04-238,247-255 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/core          |   65.74 |    73.58 |   69.82 |   65.74 |                   
  baseLlmClient.ts |   97.26 |       90 |     100 |   97.26 | 55-56,244-245     
  ...ntegration.ts |    96.5 |    95.65 |     100 |    96.5 | ...28-129,209-210 
  client.ts        |    57.2 |    73.55 |   66.66 |    57.2 | ...2136,2141-2152 
  ...ion-config.ts |     100 |      100 |     100 |     100 |                   
  ...tGenerator.ts |   91.08 |    80.76 |     100 |   91.08 | ...32,148,163-166 
  ...lScheduler.ts |   76.92 |    75.48 |   90.24 |   76.92 | ...1872,1876-1882 
  geminiChat.ts    |   59.45 |    67.09 |      60 |   59.45 | ...3030,3053-3054 
  geminiRequest.ts |     100 |      100 |     100 |     100 |                   
  ...nAIWrapper.ts |   88.88 |      100 |   83.33 |   88.88 | 56-59             
  logger.ts        |   81.26 |    81.81 |     100 |   81.26 | ...64-378,419-430 
  ...tGenerator.ts |   10.89 |      100 |       0 |   10.89 | ...93-194,197-200 
  ...olExecutor.ts |   66.66 |    80.76 |   55.55 |   66.66 | ...52-153,198-232 
  prompts.ts       |   67.98 |    65.62 |      70 |   67.98 | ...95,311,352-355 
  subagent.ts      |   52.01 |    65.42 |   57.14 |   52.01 | ...1969,1981-1982 
  ...chestrator.ts |    89.1 |    73.56 |   95.23 |    89.1 | ...17,620-621,626 
  ...tScheduler.ts |       0 |        0 |       0 |       0 | 1                 
  tokenLimits.ts   |   90.27 |    73.07 |     100 |   90.27 | ...72,77,79,83,93 
  ...Governance.ts |    94.2 |     90.9 |     100 |    94.2 | 34-35,51-52       
  turn.ts          |    92.2 |    73.68 |     100 |    92.2 | ...29-430,460-461 
 src/debug         |   78.28 |    87.83 |   89.65 |   78.28 |                   
  ...ionManager.ts |   77.88 |    78.04 |      85 |   77.88 | ...33-234,251-255 
  DebugLogger.ts   |   91.07 |    90.32 |      88 |   91.07 | ...72,211-215,252 
  FileOutput.ts    |   91.79 |    93.02 |     100 |   91.79 | ...,93-97,117-118 
  ...ionManager.ts |       0 |      100 |     100 |       0 | 18-64             
  ...FileOutput.ts |       0 |      100 |     100 |       0 | 15-37             
  index.ts         |     100 |      100 |     100 |     100 |                   
  types.ts         |       0 |        0 |       0 |       0 |                   
 src/filters       |   99.19 |    98.79 |     100 |   99.19 |                   
  EmojiFilter.ts   |   99.19 |    98.79 |     100 |   99.19 | 208-209           
 src/hooks         |   73.36 |    78.98 |   66.66 |   73.36 |                   
  hookPlanner.ts   |   98.82 |     93.1 |     100 |   98.82 | 97                
  hookRegistry.ts  |    90.1 |    82.14 |     100 |    90.1 | ...66,268,270,272 
  ...Translator.ts |   94.62 |    67.44 |     100 |   94.62 | ...87-288,299,348 
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...ssion-hook.ts |   88.88 |    33.33 |     100 |   88.88 | 24,30             
  types.ts         |   27.61 |    85.71 |       0 |   27.61 | ...11-328,339-368 
 src/ide           |   72.74 |    84.61 |   72.54 |   72.74 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  detect-ide.ts    |     100 |      100 |     100 |     100 |                   
  ide-client.ts    |   54.41 |    75.51 |   54.83 |   54.41 | ...70-478,506-514 
  ide-installer.ts |   90.55 |    85.18 |     100 |   90.55 | ...35,142-146,159 
  ideContext.ts    |    83.8 |      100 |     100 |    83.8 | 75-91             
  process-utils.ts |   89.13 |    82.14 |     100 |   89.13 | ...69-170,211-212 
 src/interfaces    |       0 |        0 |       0 |       0 |                   
  index.ts         |       0 |        0 |       0 |       0 |                   
  ....interface.ts |       0 |        0 |       0 |       0 |                   
 src/mcp           |   79.34 |    78.18 |   71.95 |   79.34 |                   
  ...oken-store.ts |   87.38 |    90.47 |   81.25 |   87.38 | ...33-334,337-338 
  ...h-provider.ts |   87.14 |      100 |      25 |   87.14 | ...96,100,104-105 
  ...h-provider.ts |   75.07 |    55.88 |     100 |   75.07 | ...21-928,935-937 
  ...en-storage.ts |    81.5 |    88.88 |   68.18 |    81.5 | ...95-196,201-202 
  oauth-utils.ts   |   72.19 |    85.29 |   91.66 |   72.19 | ...64-285,310-333 
  ...n-provider.ts |      88 |    94.73 |   33.33 |      88 | ...38,142,146-147 
  token-store.ts   |     100 |      100 |     100 |     100 |                   
 .../token-storage |   87.57 |    87.94 |   93.02 |   87.57 |                   
  ...en-storage.ts |     100 |      100 |     100 |     100 |                   
  ...en-storage.ts |   86.61 |    87.09 |   92.85 |   86.61 | ...64-172,180-181 
  ...en-storage.ts |     100 |      100 |     100 |     100 |                   
  ...en-storage.ts |   82.55 |    83.11 |   84.61 |   82.55 | ...60,262,314-315 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/models        |   83.44 |    91.15 |    87.5 |   83.44 |                   
  hydration.ts     |    4.76 |      100 |       0 |    4.76 | 65-129,151-231    
  index.ts         |     100 |      100 |     100 |     100 |                   
  profiles.ts      |     100 |      100 |     100 |     100 |                   
  ...ntegration.ts |   95.31 |    85.36 |     100 |   95.31 | ...35-136,199-200 
  registry.ts      |   90.45 |    88.88 |      92 |   90.45 | ...69-270,389-402 
  schema.ts        |     100 |      100 |     100 |     100 |                   
  transformer.ts   |     100 |      100 |     100 |     100 |                   
 src/parsers       |    70.7 |       75 |    86.2 |    70.7 |                   
  ...CallParser.ts |    70.7 |       75 |    86.2 |    70.7 | ...1,983,989-1004 
 src/policy        |   81.37 |    79.81 |   82.14 |   81.37 |                   
  config.ts        |   64.06 |    62.79 |   71.42 |   64.06 | ...10-417,427-445 
  index.ts         |     100 |      100 |     100 |     100 |                   
  policy-engine.ts |   96.42 |    97.61 |   88.88 |   96.42 | 171-174           
  ...-stringify.ts |   82.55 |     64.1 |      50 |   82.55 | ...22-126,139-140 
  toml-loader.ts   |   90.22 |     86.2 |     100 |   90.22 | ...60,462,469,471 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/prompt-config |   74.43 |    83.81 |   85.05 |   74.43 |                   
  ...lateEngine.ts |   91.75 |    85.91 |     100 |   91.75 | ...48-249,264-267 
  index.ts         |       0 |      100 |     100 |       0 | 5-41              
  prompt-cache.ts  |   99.06 |     97.4 |     100 |   99.06 | 211-212           
  ...-installer.ts |   83.11 |    82.47 |     100 |   83.11 | ...1173,1253-1254 
  prompt-loader.ts |   87.27 |    90.42 |   76.92 |   87.27 | ...22-423,429-430 
  ...t-resolver.ts |   34.85 |    64.17 |   53.84 |   34.85 | ...20-771,774-802 
  ...pt-service.ts |   82.35 |    83.33 |   78.94 |   82.35 | ...37,568,580-581 
  ...delegation.ts |   58.33 |       50 |     100 |   58.33 | 24-34             
  types.ts         |     100 |      100 |     100 |     100 |                   
 ...onfig/defaults |   50.17 |    46.75 |     100 |   50.17 |                   
  core-defaults.ts |   37.54 |    39.02 |     100 |   37.54 | ...72,283,289-297 
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...est-loader.ts |   81.81 |    79.31 |     100 |   81.81 | ...02-108,116-120 
  ...t-warnings.ts |      92 |    33.33 |     100 |      92 | 17-18             
  ...r-defaults.ts |    41.7 |    39.02 |     100 |    41.7 | ...40,251,257-262 
  ...e-defaults.ts |     100 |      100 |     100 |     100 |                   
  tool-defaults.ts |      50 |       40 |     100 |      50 | ...11-216,229-234 
 src/prompts       |   26.41 |      100 |      25 |   26.41 |                   
  mcp-prompts.ts   |   18.18 |      100 |       0 |   18.18 | 11-19             
  ...t-registry.ts |   28.57 |      100 |   28.57 |   28.57 | ...42,48-55,68-73 
 src/providers     |   67.79 |     77.8 |   67.21 |   67.79 |                   
  BaseProvider.ts  |   80.78 |    79.64 |   80.76 |   80.78 | ...1154,1191-1192 
  ...eratorRole.ts |     100 |      100 |     100 |     100 |                   
  IModel.ts        |       0 |        0 |       0 |       0 |                   
  IProvider.ts     |       0 |        0 |       0 |       0 |                   
  ...derManager.ts |     100 |      100 |     100 |     100 |                   
  ITool.ts         |       0 |        0 |       0 |       0 |                   
  ...ngProvider.ts |   87.91 |     89.6 |   90.62 |   87.91 | ...1106,1137-1139 
  ...derWrapper.ts |   56.67 |    63.86 |   51.28 |   56.67 | ...1356,1363-1370 
  ...tGenerator.ts |    17.3 |      100 |       0 |    17.3 | ...59,62-79,82-85 
  ...derManager.ts |   57.33 |    73.19 |   60.46 |   57.33 | ...1515-1516,1519 
  errors.ts        |   78.57 |    77.77 |      60 |   78.57 | ...43,150-170,191 
  types.ts         |       0 |        0 |       0 |       0 | 1                 
 ...ders/anthropic |   78.41 |    79.18 |   74.57 |   78.41 |                   
  ...icProvider.ts |   80.54 |    81.94 |      75 |   80.54 | ...2690,2698-2699 
  ...aConverter.ts |   52.53 |    44.11 |   71.42 |   52.53 | ...57,263,280-288 
 ...pic/test-utils |       0 |        0 |       0 |       0 |                   
  ...cTestUtils.ts |       0 |        0 |       0 |       0 |                   
 ...oviders/gemini |   59.45 |    67.22 |   51.21 |   59.45 |                   
  ...niProvider.ts |   55.24 |    56.25 |   48.71 |   55.24 | ...1867,1876-1877 
  ...Signatures.ts |     100 |    98.38 |     100 |     100 | 182               
 ...viders/logging |   39.53 |       80 |      75 |   39.53 |                   
  ...tExtractor.ts |       0 |        0 |       0 |       0 | 1-228             
  ...nceTracker.ts |   89.47 |    84.21 |   81.81 |   89.47 | ...66-167,182-183 
 ...oviders/openai |   51.54 |    74.48 |   60.49 |   51.54 |                   
  ...ationCache.ts |   70.49 |    86.66 |   82.35 |   70.49 | ...64-166,216-217 
  ...rateParams.ts |       0 |        0 |       0 |       0 |                   
  ...AIProvider.ts |   38.84 |    65.55 |   45.55 |   38.84 | ...4970,4978-4987 
  ...API_MODELS.ts |     100 |      100 |     100 |     100 |                   
  ...lCollector.ts |   93.33 |    89.28 |     100 |   93.33 | ...51-153,173-174 
  ...Normalizer.ts |   92.75 |       96 |     100 |   92.75 | 74-78             
  ...llPipeline.ts |   64.54 |    53.33 |      75 |   64.54 | ...34-143,174-184 
  ...eValidator.ts |   94.02 |    93.75 |     100 |   94.02 | 106-109           
  ...sesRequest.ts |   83.85 |    93.24 |     100 |   83.85 | ...64,297,302-307 
  ...moteTokens.ts |   89.55 |     92.3 |     100 |   89.55 | 101-107           
  ...oviderInfo.ts |    86.2 |    73.52 |     100 |    86.2 | ...31-133,144-145 
  ...uestParams.ts |   90.56 |    75.86 |     100 |   90.56 | ...15-116,118-119 
  ...nsesStream.ts |    88.7 |     87.5 |     100 |    88.7 | ...87,210-217,241 
  ...aConverter.ts |    24.2 |    42.85 |   28.57 |    24.2 | ...59-260,277-285 
  ...lResponses.ts |   71.98 |    72.72 |      75 |   71.98 | ...97-301,321-335 
  test-types.ts    |       0 |        0 |       0 |       0 |                   
  toolNameUtils.ts |   96.79 |    95.45 |      50 |   96.79 | 102,127,239-241   
 ...enai-responses |   66.39 |    73.23 |   46.15 |   66.39 |                   
  CODEX_MODELS.ts  |     100 |      100 |     100 |     100 |                   
  ...esProvider.ts |    80.9 |    77.11 |   58.82 |    80.9 | ...01,740-745,761 
  ...romContent.ts |   84.93 |    66.66 |     100 |   84.93 | 45-49,71-75,94    
  index.ts         |       0 |        0 |       0 |       0 | 1                 
  ...aConverter.ts |    8.12 |       20 |   14.28 |    8.12 | ...53-277,280-289 
 .../openai-vercel |   66.66 |    67.29 |   66.19 |   66.66 |                   
  ...elProvider.ts |   63.55 |       64 |   53.33 |   63.55 | ...1934,1944-1999 
  errors.ts        |   93.23 |    82.05 |     100 |   93.23 | ...50-151,165-169 
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...Conversion.ts |   71.63 |    73.17 |   83.33 |   71.63 | ...45,548-549,553 
  ...aConverter.ts |   50.95 |       40 |   71.42 |   50.95 | ...58-259,276-284 
  toolIdUtils.ts   |     100 |      100 |     100 |     100 |                   
 ...ders/reasoning |    42.1 |       90 |      70 |    42.1 |                   
  ...oningUtils.ts |    42.1 |       90 |      70 |    42.1 | ...45-203,235-310 
 ...ers/test-utils |     100 |      100 |     100 |     100 |                   
  ...TestConfig.ts |     100 |      100 |     100 |     100 |                   
 ...ers/tokenizers |   69.49 |    77.77 |      75 |   69.49 |                   
  ...cTokenizer.ts |   68.42 |       75 |     100 |   68.42 | 34-39             
  ITokenizer.ts    |       0 |        0 |       0 |       0 |                   
  ...ITokenizer.ts |      70 |       80 |   66.66 |      70 | 52-55,62-71       
 ...roviders/types |       0 |        0 |       0 |       0 |                   
  ...iderConfig.ts |       0 |        0 |       0 |       0 |                   
  ...derRuntime.ts |       0 |        0 |       0 |       0 |                   
 ...roviders/utils |   87.94 |     87.5 |   95.83 |   87.94 |                   
  authToken.ts     |   33.33 |       50 |      50 |   33.33 | 14-22,30-35       
  ...sExtractor.ts |   95.45 |     91.3 |     100 |   95.45 | 15-16             
  dumpContext.ts   |    96.1 |    95.65 |     100 |    96.1 | 110-112           
  ...SDKContext.ts |   94.59 |       75 |     100 |   94.59 | 27,49             
  localEndpoint.ts |   89.28 |    91.42 |     100 |   89.28 | ...18-119,138-139 
  ...malization.ts |     100 |      100 |     100 |     100 |                   
  ...nsePayload.ts |   92.63 |    84.74 |     100 |   92.63 | ...42-147,200-204 
  userMemory.ts    |   51.51 |       60 |     100 |   51.51 | 16-18,31-43       
 src/runtime       |   83.65 |    86.09 |   76.38 |   83.65 |                   
  ...imeContext.ts |     100 |      100 |     100 |     100 |                   
  ...timeLoader.ts |      85 |       70 |      80 |      85 | ...87-190,228-231 
  ...ntimeState.ts |   95.22 |    92.07 |     100 |   95.22 | ...35-636,652-653 
  ...ionContext.ts |   80.35 |    92.85 |      75 |   80.35 | 64-66,110-117     
  ...imeContext.ts |   82.03 |      100 |   64.28 |   82.03 | ...27-130,132-137 
  index.ts         |       0 |        0 |       0 |       0 | 1-15              
  ...imeContext.ts |    64.7 |    83.33 |     100 |    64.7 | 67-78,83-94       
  ...meAdapters.ts |   54.95 |    70.58 |      50 |   54.95 | ...98-108,125-152 
  ...ateFactory.ts |    96.9 |    86.48 |     100 |    96.9 | 95,110,136        
 src/services      |   80.01 |    84.25 |   75.67 |   80.01 |                   
  ...ardService.ts |   93.33 |    92.85 |     100 |   93.33 | 63,67-68          
  ...y-analyzer.ts |   76.32 |    81.17 |   77.77 |   76.32 | ...79-507,513-514 
  ...eryService.ts |   97.03 |     90.9 |     100 |   97.03 | 47,56,140-141     
  ...temService.ts |    61.9 |      100 |   66.66 |    61.9 | 54-61             
  ...ts-service.ts |      50 |      100 |       0 |      50 | 41-42,48-49       
  gitService.ts    |   70.58 |    93.33 |      60 |   70.58 | ...16-126,129-133 
  index.ts         |       0 |        0 |       0 |       0 | 1-15              
  ...ionService.ts |   99.04 |    98.41 |     100 |   99.04 | 270-271           
  ...ionService.ts |   82.51 |    81.66 |   84.21 |   82.51 | ...29-754,763-784 
  ...xt-tracker.ts |   94.87 |       90 |    87.5 |   94.87 | 54-55             
  ...er-service.ts |   42.42 |     90.9 |      25 |   42.42 | ...36-139,142-160 
  ...er-service.ts |   69.45 |    55.88 |      80 |   69.45 | ...85-289,311-314 
 ...rvices/history |   82.19 |    83.84 |    88.4 |   82.19 |                   
  ...Converters.ts |   87.19 |    82.64 |   85.71 |   87.19 | ...44,351,357-363 
  HistoryEvents.ts |       0 |        0 |       0 |       0 |                   
  ...oryService.ts |   79.39 |    83.27 |   87.03 |   79.39 | ...1402,1438-1439 
  IContent.ts      |   85.07 |       84 |     100 |   85.07 | ...34-235,241-244 
  ...calToolIds.ts |   96.82 |    93.33 |     100 |   96.82 | 36-37             
 src/settings      |   92.48 |    77.33 |      92 |   92.48 |                   
  ...ngsService.ts |   91.69 |       75 |   95.23 |   91.69 | ...53-354,384-388 
  ...ceInstance.ts |     100 |      100 |     100 |     100 |                   
  types.ts         |       0 |        0 |       0 |       0 | 1                 
 src/storage       |   93.53 |    93.02 |   94.44 |   93.53 |                   
  ...FileWriter.ts |   83.54 |       80 |    87.5 |   83.54 | 40-41,71-81       
  ...nceService.ts |   98.67 |    96.96 |     100 |   98.67 | 293-294           
  sessionTypes.ts  |     100 |      100 |     100 |     100 |                   
 src/telemetry     |   65.57 |    79.79 |   60.33 |   65.57 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  ...-exporters.ts |   28.08 |      100 |       0 |   28.08 | ...14-115,118-119 
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...t.circular.ts |       0 |        0 |       0 |       0 | 1-17              
  ...t.circular.ts |       0 |        0 |       0 |       0 | 1-132             
  loggers.ts       |   63.35 |    69.76 |   59.25 |   63.35 | ...71-584,592-608 
  metrics.ts       |   62.35 |    96.15 |   66.66 |   62.35 | ...41-163,166-189 
  sdk.ts           |   72.54 |    23.07 |     100 |   72.54 | ...35,140-141,143 
  ...l-decision.ts |   33.33 |      100 |       0 |   33.33 | 17-32             
  types.ts         |   73.94 |    84.88 |   64.91 |   73.94 | ...34-636,639-643 
  uiTelemetry.ts   |   95.26 |    96.15 |   91.66 |   95.26 | 152,189-195       
 src/test-utils    |   86.86 |    84.03 |   57.47 |   86.86 |                   
  config.ts        |     100 |      100 |     100 |     100 |                   
  index.ts         |       0 |        0 |       0 |       0 | 1-9               
  mock-tool.ts     |   96.25 |    93.33 |   81.81 |   96.25 | 62-63,118         
  ...aceContext.ts |     100 |      100 |     100 |     100 |                   
  ...allOptions.ts |   93.67 |    91.11 |   63.63 |   93.67 | ...10,178,207-210 
  runtime.ts       |   80.18 |       75 |   39.53 |   80.18 | ...99-301,310-312 
  tools.ts         |      82 |    76.92 |   78.94 |      82 | ...31,153,157-158 
 src/todo          |   51.55 |    83.33 |      75 |   51.55 |                   
  todoFormatter.ts |   51.55 |    83.33 |      75 |   51.55 | ...56-160,198-199 
 src/tools         |    72.5 |     76.3 |   76.69 |    72.5 |                   
  ...lFormatter.ts |     100 |      100 |     100 |     100 |                   
  ToolFormatter.ts |   20.89 |    76.19 |   33.33 |   20.89 | ...07,514-612,627 
  ...IdStrategy.ts |   91.94 |    88.88 |     100 |   91.94 | ...55-258,267-270 
  ast-edit.ts      |   46.57 |    56.52 |   56.96 |   46.57 | ...2376,2379-2498 
  codesearch.ts    |      98 |     87.5 |   85.71 |      98 | 110-111,173       
  ...line_range.ts |   84.68 |    67.56 |      70 |   84.68 | ...81-282,290-291 
  diffOptions.ts   |     100 |      100 |     100 |     100 |                   
  ...-web-fetch.ts |   93.18 |    72.41 |   77.77 |   93.18 | ...56,166-167,187 
  ...scapeUtils.ts |   61.65 |    72.97 |      50 |   61.65 | ...93,309,311-321 
  edit.ts          |   75.16 |    77.08 |   77.77 |   75.16 | ...94-795,813-855 
  ...web-search.ts |   97.91 |    85.71 |   83.33 |   97.91 | 126-127,191       
  ...y-replacer.ts |   85.71 |    84.35 |     100 |   85.71 | ...47-448,493-494 
  glob.ts          |   90.65 |    81.96 |      90 |   90.65 | ...62-263,368-369 
  ...-web-fetch.ts |   92.87 |    88.23 |    92.3 |   92.87 | ...82-383,393-394 
  ...invocation.ts |   54.74 |    38.88 |      75 |   54.74 | ...29-133,165-210 
  ...web-search.ts |     100 |      100 |     100 |     100 |                   
  grep.ts          |      60 |    78.19 |   73.68 |      60 | ...77-981,991-992 
  ...rt_at_line.ts |   81.55 |    76.08 |      70 |   81.55 | ...05-306,314-315 
  ...-subagents.ts |   87.28 |    69.56 |   88.88 |   87.28 | ...1,81-89,98,153 
  ls.ts            |    97.5 |    89.23 |     100 |    97.5 | 154-159           
  ...nt-manager.ts |   48.51 |    41.17 |   35.71 |   48.51 | ...13-314,320-325 
  mcp-client.ts    |   56.26 |    61.24 |   59.37 |   56.26 | ...1350,1354-1357 
  mcp-tool.ts      |   94.35 |    93.75 |   86.95 |   94.35 | ...50-260,322-323 
  memoryTool.ts    |   79.39 |    82.75 |    87.5 |   79.39 | ...55-356,399-440 
  ...iable-tool.ts |   98.34 |       80 |     100 |   98.34 | 167-168           
  read-file.ts     |   91.36 |    79.72 |    90.9 |   91.36 | ...27-228,396-397 
  ...many-files.ts |   72.67 |    77.33 |   88.88 |   72.67 | ...23-524,531-532 
  ...line_range.ts |    74.9 |     65.9 |      80 |    74.9 | ...50-351,355-356 
  ripGrep.ts       |   89.75 |    86.02 |    92.3 |   89.75 | ...47-448,469-470 
  shell.ts         |   84.96 |    80.22 |      90 |   84.96 | ...20-822,835-836 
  task.ts          |   80.65 |    69.04 |   92.85 |   80.65 | ...89,792,795-804 
  todo-events.ts   |    62.5 |      100 |       0 |    62.5 | 23-24,27-28,31-32 
  todo-pause.ts    |   87.09 |       80 |     100 |   87.09 | 64-69,73-78,93-98 
  todo-read.ts     |   89.24 |    94.73 |     100 |   89.24 | 113-124           
  todo-schemas.ts  |     100 |      100 |     100 |     100 |                   
  todo-store.ts    |   86.66 |       80 |     100 |   86.66 | 48-49,55-56,63-64 
  todo-write.ts    |   87.38 |    72.41 |    87.5 |   87.38 | ...75,210-212,271 
  ...tion-types.ts |     100 |      100 |     100 |     100 |                   
  tool-context.ts  |     100 |      100 |     100 |     100 |                   
  tool-error.ts    |      88 |      100 |       0 |      88 | 106-113           
  tool-names.ts    |     100 |      100 |     100 |     100 |                   
  tool-registry.ts |   82.39 |    72.89 |   81.08 |   82.39 | ...05-613,621-622 
  toolNameUtils.ts |      80 |     92.1 |     100 |      80 | 59-60,64-65,69-82 
  tools.ts         |    81.6 |    83.09 |   72.22 |    81.6 | ...29-830,833-837 
  write-file.ts    |   76.51 |    68.88 |   73.33 |   76.51 | ...93-594,616-655 
 src/types         |     100 |      100 |     100 |     100 |                   
  modelParams.ts   |     100 |      100 |     100 |     100 |                   
 src/utils         |   79.47 |     85.8 |   84.35 |   79.47 |                   
  LruCache.ts      |       0 |        0 |       0 |       0 | 1-41              
  bfsFileSearch.ts |   88.88 |       90 |     100 |   88.88 | 83-91             
  browser.ts       |    8.69 |      100 |       0 |    8.69 | 17-53             
  channel.ts       |     100 |      100 |     100 |     100 |                   
  delay.ts         |     100 |      100 |     100 |     100 |                   
  editor.ts        |   97.64 |    94.23 |     100 |   97.64 | 159,228,231-232   
  ...entContext.ts |     100 |      100 |     100 |     100 |                   
  errorParsing.ts  |      88 |    78.26 |     100 |      88 | ...07,249,252,258 
  ...rReporting.ts |   83.72 |    84.61 |     100 |   83.72 | 82-86,107-115     
  errors.ts        |   55.55 |    71.42 |   38.46 |   55.55 | ...92-108,112-118 
  events.ts        |     100 |      100 |     100 |     100 |                   
  ...sionLoader.ts |   94.23 |       68 |     100 |   94.23 | ...,60-61,111-112 
  fetch.ts         |    31.5 |    66.66 |      25 |    31.5 | ...37,40-84,87-88 
  fileUtils.ts     |   95.41 |    90.29 |     100 |   95.41 | ...35-239,451-457 
  formatters.ts    |   54.54 |       50 |     100 |   54.54 | 12-16             
  ...eUtilities.ts |   96.11 |       96 |     100 |   96.11 | 36-37,67-68       
  ...rStructure.ts |   95.96 |    94.93 |     100 |   95.96 | ...14-117,345-347 
  getPty.ts        |    12.5 |      100 |       0 |    12.5 | 21-34             
  ...noreParser.ts |   94.01 |    89.74 |     100 |   94.01 | ...06-307,319-320 
  ...ineChanges.ts |   58.56 |    79.41 |      80 |   58.56 | ...18-256,264-270 
  gitUtils.ts      |   90.24 |    90.47 |     100 |   90.24 | 40-41,71-72       
  googleErrors.ts  |    1.47 |      100 |       0 |    1.47 | 132-317           
  ...uotaErrors.ts |   98.08 |    79.54 |     100 |   98.08 | 61-62,204         
  ide-trust.ts     |      60 |      100 |       0 |      60 | 14-15             
  ...rePatterns.ts |     100 |    96.55 |     100 |     100 | 248               
  ...ionManager.ts |     100 |       90 |     100 |     100 | 23                
  ...edit-fixer.ts |       0 |        0 |       0 |       0 | 1-156             
  ...yDiscovery.ts |   85.77 |     78.5 |   84.61 |   85.77 | ...02-603,606-607 
  ...tProcessor.ts |    93.4 |    86.51 |    92.3 |    93.4 | ...87-388,397-398 
  ...Inspectors.ts |   61.53 |      100 |      50 |   61.53 | 18-23             
  output-format.ts |   36.36 |      100 |       0 |   36.36 | ...52-153,163-184 
  package.ts       |   18.18 |      100 |       0 |   18.18 | 18-28             
  ...erCoercion.ts |   83.78 |    81.15 |     100 |   83.78 | ...79-180,242-243 
  partUtils.ts     |     100 |      100 |     100 |     100 |                   
  pathReader.ts    |       0 |        0 |       0 |       0 | 1-60              
  paths.ts         |   86.99 |    86.58 |     100 |   86.99 | ...22-223,237-238 
  ...rDetection.ts |   57.62 |    63.15 |     100 |   57.62 | ...9,92-93,99-100 
  retry.ts         |   68.36 |    78.26 |   81.81 |   68.36 | ...17-620,625-626 
  ...thResolver.ts |   84.87 |    83.87 |     100 |   84.87 | ...06,129,178-181 
  ...nStringify.ts |     100 |      100 |     100 |     100 |                   
  sanitization.ts  |     100 |      100 |     100 |     100 |                   
  ...aValidator.ts |   83.52 |    82.75 |     100 |   83.52 | 70-81,125-126     
  ...r-launcher.ts |   78.57 |     87.5 |   66.66 |   78.57 | ...33,135,153-188 
  session.ts       |     100 |      100 |     100 |     100 |                   
  shell-markers.ts |     100 |      100 |     100 |     100 |                   
  shell-parser.ts  |   25.57 |    58.33 |   46.15 |   25.57 | ...23-337,344-374 
  shell-utils.ts   |   86.19 |     87.5 |     100 |   86.19 | ...28-430,433-438 
  summarizer.ts    |     100 |    88.88 |     100 |     100 | 92                
  ...emEncoding.ts |   97.14 |    91.42 |     100 |   97.14 | 108-109,161       
  testUtils.ts     |   53.33 |      100 |   33.33 |   53.33 | ...53,59-64,70-72 
  textUtils.ts     |    12.5 |      100 |       0 |    12.5 | 15-34             
  thoughtUtils.ts  |     100 |      100 |     100 |     100 |                   
  tool-utils.ts    |   82.47 |     77.5 |     100 |   82.47 | ...25-126,136-137 
  ...putLimiter.ts |   88.07 |    79.06 |     100 |   88.07 | ...22-227,271-278 
  unicodeUtils.ts  |     100 |      100 |     100 |     100 |                   
  ...untManager.ts |   91.96 |    88.23 |     100 |   91.96 | 37-39,76-78,94-96 
  ...aceContext.ts |   96.82 |    95.34 |    92.3 |   96.82 | 94-95,109-110     
 ...ils/filesearch |   96.18 |    91.26 |     100 |   96.18 |                   
  crawlCache.ts    |     100 |      100 |     100 |     100 |                   
  crawler.ts       |   96.22 |     92.3 |     100 |   96.22 | 66-67             
  fileSearch.ts    |   93.22 |    86.95 |     100 |   93.22 | ...26-227,229-230 
  ignore.ts        |     100 |      100 |     100 |     100 |                   
  result-cache.ts  |     100 |    91.66 |     100 |     100 | 46                
-------------------|---------|----------|---------|---------|-------------------

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

@acoliver
Copy link
Collaborator Author

@CodeRabbit I see how this addresses something important, but I don't see how it addresses #1209. Am I wrong?

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 28, 2026

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== List provider files =="
fd -a --strip-cwd-prefix 'packages/core/src/providers' || true

echo
echo "== Locate OpenAIResponsesProvider.ts =="
fd -a --strip-cwd-prefix 'OpenAIResponsesProvider.ts' || true
echo
sed -n '180,320p' packages/core/src/providers/openai-responses/OpenAIResponsesProvider.ts 2>/dev/null || true

echo
echo "== Find OpenAIProvider implementation files =="
fd -a --strip-cwd-prefix 'OpenAIProvider.ts' || true
rg -n -C3 --type=ts '\bclass\s+OpenAIProvider\b|getModels\s*\(' packages 2>/dev/null || true

echo
echo "== Search for alias binding and baseProvider fields =="
rg -n -C3 'bindProviderAliasIdentity|baseProvider|modelsDevProviderId' packages 2>/dev/null || true

echo
echo "== Search for Synthetic alias definitions =="
rg -n -C5 '\bSynthetic\b|\bsynthetic\b' packages 2>/dev/null || true

echo
echo "== Inspect ProviderManager.getAvailableModels (or similarly named) =="
rg -n -C4 'getAvailableModels|ProviderManager' packages 2>/dev/null || true
fd -a --strip-cwd-prefix 'providerManagerInstance.ts' || true
sed -n '1,240p' packages/cli/src/providers/providerManagerInstance.ts 2>/dev/null || true

Length of output: 268024


🏁 Script executed:

#!/bin/bash
# Check OpenAIProvider.getModels() implementation to see if it also hardcodes provider names
echo "== OpenAIProvider.getModels() implementation =="
sed -n '825,900p' packages/core/src/providers/openai/OpenAIProvider.ts

echo ""
echo "== Search for where OpenAIProvider sets provider field on models =="
sed -n '900,1000p' packages/core/src/providers/openai/OpenAIProvider.ts

echo ""
echo "== Check if OpenAIProvider uses this.name or hardcodes 'openai' =="
rg -n "provider:\s*['\"]openai['\"]" packages/core/src/providers/openai/OpenAIProvider.ts -A2 -B2

echo ""
echo "== Check if OpenAIProvider uses this.name =="
rg -n "provider:\s*this\.name" packages/core/src/providers/openai/OpenAIProvider.ts -A2 -B2

Length of output: 7360


@acoliver You're absolutely right to question this! Let me clarify:

PR #1237 fixes a different provider path than the one described in issue #1209:

  • Issue #1209 specifically mentions the Synthetic alias showing 'openai' instead of 'Synthetic'
  • Synthetic alias uses baseProvider: "openai" which instantiates OpenAIProvider
  • OpenAIProvider.getModels() already uses provider: this.name (see lines 863, 891, 897, 903 in OpenAIProvider.ts)

What PR #1237 actually fixes:

  • PR #1237 changes OpenAIResponsesProvider to use provider: this.name instead of hardcoded 'openai-responses'
  • This fixes the Codex alias (which uses baseProvider: "openai-responses")
  • It also fixes any other aliases that use openai-responses as their base provider

The disconnect:

Since OpenAIProvider already uses this.name, and bindProviderAliasIdentity() sets the provider's name property to the alias name, the Synthetic alias scenario described in issue #1209 should already be working correctly (or has a different root cause than what this PR addresses).

Verdict: You're not wrong—PR #1237 addresses the openai-responses provider family (like Codex), but not the original Synthetic/openai scenario from issue #1209. Either:

  1. Issue #1209's root cause analysis was incorrect (Synthetic wasn't actually the problem), or
  2. Issue #1209 was already inadvertently fixed when OpenAIProvider was updated to use this.name, or
  3. There's a separate bug in how Synthetic models are displayed that this PR doesn't address

Would you like me to investigate further what's actually happening with the Synthetic alias and ModelsDialog?

@acoliver
Copy link
Collaborator Author

@CodeRabbit I think the issues is provider aliases and the models.dev/model dialog integration. Its giving API rather than the alias. But since we may have defaults in the alias, we actually want it to use synthetic provider alias rather than the base provider openai. Does that make sense?

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 28, 2026

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

@acoliver Yes, that makes perfect sense! The issue is that when an alias like Synthetic (which uses baseProvider: "openai") fetches models, they're showing up as "openai" instead of "Synthetic" in the models.dev/ModelsDialog integration.

Let me investigate the models.dev integration and how ModelsDialog fetches models to understand where the disconnect is happening:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== Search for models.dev integration =="
rg -n -C4 'models\.dev|ModelsDialog|modelsDevProviderId' packages --type=ts | head -200

echo ""
echo "== Find ModelsDialog implementation =="
fd 'ModelsDialog' --type=f

echo ""
echo "== Search for how models are fetched for the dialog =="
rg -n -C5 'getAvailableModels|getAllModels' packages --type=ts | head -300

echo ""
echo "== Check bindProviderAliasIdentity implementation =="
rg -n -C10 'bindProviderAliasIdentity' packages --type=ts | head -150

echo ""
echo "== Search for where provider field is set or transformed =="
rg -n -C3 'modelsDevProviderId.*provider|provider.*modelsDevProviderId' packages --type=ts | head -100

Length of output: 39049


Perfect! Now I can see the issue. Let me examine the hydration code more closely to see where the provider field gets overwritten:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== Read the full hydrateModelsWithRegistry function =="
sed -n '58,150p' packages/core/src/models/hydration.ts

echo ""
echo "== Check if hydration overwrites the provider field =="
rg -n -C5 'provider.*=' packages/core/src/models/hydration.ts

echo ""
echo "== Look for where LlxprtModel provider field is used =="
rg -n -C3 'registryModel\.provider|rm\.provider' packages/core/src/models/hydration.ts

Length of output: 4078


Excellent! I found it. Let me check the IModel interface and see which field is being used:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== Check IModel interface definition =="
rg -n -C10 'interface IModel|export.*IModel' packages/core/src/providers/IModel.ts

echo ""
echo "== Search for providerId field usage =="
rg -n -C3 'model\.providerId|\.providerId' packages --type=ts | head -100

echo ""
echo "== Look at the HydratedModel type =="
sed -n '20,60p' packages/core/src/models/hydration.ts

echo ""
echo "== Search for where models are displayed in UI/dialog =="
rg -n -C5 'model\.provider[^a-zA-Z]' packages --type=ts | head -150

Length of output: 18450


Now I need to check what happens in the registry-only fallback and the transformer:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== Check the transformer to see what provider field it sets =="
sed -n '37,120p' packages/core/src/models/transformer.ts

echo ""
echo "== Check LlxprtModel schema to see provider field =="
rg -n -C8 'export.*LlxprtModel|interface LlxprtModel' packages/core/src/models/schema.ts

echo ""
echo "== Check the registry-only fallback in ProviderManager =="
sed -n '854,890p' packages/core/src/providers/ProviderManager.ts

echo ""
echo "== Check llxprtModelToIModel function =="
sed -n '48,67p' packages/core/src/models/provider-integration.ts

Length of output: 7247


Perfect! Now I can see the issue clearly. Let me check one more thing to confirm:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== Check what PROVIDER_ID_MAP has for Synthetic =="
rg -n -C8 "Synthetic:" packages/core/src/models/provider-integration.ts

echo ""
echo "== Check if there's a 'synthetic' provider in the bundled models.dev data =="
fd 'models.json' packages/core/src/models/
cat packages/core/src/models/bundled/models.json | jq 'keys' 2>/dev/null | head -50 || echo "Cannot parse JSON"

echo ""
echo "== Check transformer again - where does provider field come from =="
rg -n "provider:" packages/core/src/models/transformer.ts

Length of output: 908


@acoliver Yes, that makes perfect sense! I found the issue. Let me explain:

The Root Cause:

When you select the Synthetic alias in ModelsDialog:

  1. ProviderManager.getAvailableModels("Synthetic") is called
  2. It calls getModelsDevProviderIds("Synthetic") to find which models.dev provider IDs to use for hydration
  3. PROVIDER_ID_MAP returns ['synthetic'] (line 42 in provider-integration.ts)
  4. But models.dev doesn't have a provider called 'synthetic'! ❌
  5. So hydration either fails or gets no enrichment data from models.dev
  6. The models end up showing the base provider info instead of the alias

The Fix:

The PROVIDER_ID_MAP should map the Synthetic alias to the actual models.dev provider ID it corresponds to. Since Synthetic uses baseProvider: "openai", it should be:

Synthetic: ['openai'],  // Not ['synthetic']

This way:

  • When fetching models for Synthetic, it looks up openai in models.dev
  • Gets pricing, capabilities, and other metadata from models.dev's OpenAI models
  • The provider field stays as "Synthetic" (from this.name) because hydration uses {...model, ...hydrationData} which preserves the original provider field

The Confusion:

PR #1237 fixes a similar issue for OpenAIResponsesProvider (used by the Codex alias), but #1209 is about OpenAIProvider (used by the Synthetic alias). They're separate provider classes with the same bug pattern.

Would you like me to create a fix for this? The change would be in packages/core/src/models/provider-integration.ts.

@acoliver acoliver merged commit c404c15 into main Jan 28, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ModelsDialog shows 'openai' as provider for Synthetic alias models

2 participants