Skip to content

add hint for installing external source extensions - #1694

Merged
tanzhenxin merged 5 commits into
mainfrom
fix/external-source-extensions
Feb 5, 2026
Merged

tanzhenxin merged 5 commits into
mainfrom
fix/external-source-extensions

Conversation

@LaZzyMan

@LaZzyMan LaZzyMan commented Feb 3, 2026 •

Copy link
Copy Markdown
Collaborator

TLDR

This is a supplement to the PR #1636 @Ojhaharsh .

  • It adopts a more general approach.
  • It adds hints for Claude source extensions.
  • It adds internationalization support.

Testing Matrix

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

Ojhaharsh and others added 5 commits January 27, 2026 21:16
Fixes installation failure for Gemini CLI extensions (e.g., conductor) that
only provide gemini-extension.json but not qwen-extension.json.

Instead of strict schema validation via isGeminiExtensionConfig(), now
automatically attempts conversion whenever gemini-extension.json exists.

Fixes: #1621
Shows warning when installing Gemini CLI extensions to set user expectations
about potential compatibility differences.

- Keeps isGeminiExtensionConfig validation intact (no skipped checks)
- Zero UI in core package (warning only in CLI layer via consent.ts)
- Uses t() for internationalization
- Warning appears in consent prompt before installation

Fixes: #1621
@github-actions

github-actions Bot commented Feb 3, 2026

Copy link
Copy Markdown
Contributor

📋 Review Summary

This PR introduces a mechanism to warn users when installing extensions from external sources (Claude, Gemini) that may not work perfectly with Qwen Code. It adds internationalization support for the warning message and tracks the origin source of extensions through the installation process.

🔍 General Feedback

  • The implementation properly handles tracking extension origin sources through the installation pipeline
  • Internationalization support is well-implemented across multiple languages
  • The consent flow is appropriately enhanced to show warnings for non-Qwen Code extensions
  • Good separation of concerns with the new ExtensionOriginSource type

🎯 Specific Feedback

🟡 High

  • File: packages/core/src/extension/extensionManager.ts:139 - The ExtensionRequestOptions interface was updated to include originSource but the corresponding implementation in the consent functions wasn't fully updated in the base file. The diff shows the changes but make sure the actual file reflects the complete implementation with the new parameter.

🟢 Medium

  • File: packages/cli/src/commands/extensions/consent.ts:152 - The default value for originSource is hardcoded as 'QwenCode' which is fine, but consider if this should be imported from the shared type definition to avoid duplication.
  • File: packages/core/src/extension/extensionManager.ts:250 - The convertGeminiOrClaudeExtension function now returns both extensionDir and originSource. Consider adding JSDoc comments to document this new return type for better maintainability.

🔵 Low

  • File: packages/cli/src/commands/extensions/consent.test.ts - The tests were updated to include the new originSource parameter, which is great. Consider adding specific test cases to verify the warning message appears correctly when originSource is not 'QwenCode'.
  • File: packages/core/src/extension/marketplace.ts:269 - All marketplace extensions are marked as 'Claude' originSource. This seems like a reasonable default but consider if there might be cases where this needs to be more granular in the future.

✅ Highlights

  • Excellent addition of i18n support for the new warning message across multiple languages (de, en, ja, pt, ru, zh)
  • Proper type safety with the new ExtensionOriginSource union type ('QwenCode' | 'Claude' | 'Gemini')
  • Well-integrated consent flow that conditionally shows warnings based on extension origin
  • Good test coverage updates to account for the new originSource parameter

@github-actions

github-actions Bot commented Feb 3, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Summary

Package Lines Statements Functions Branches
CLI 62.06% 62.06% 71.54% 80.84%
Core 73.01% 73.01% 77.53% 81.75%
CLI Package - Full Text Report
-------------------|---------|----------|---------|---------|-------------------
File               | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-------------------|---------|----------|---------|---------|-------------------
All files          |   62.06 |    80.84 |   71.54 |   62.06 |                   
 src               |   76.27 |    66.06 |   68.42 |   76.27 |                   
  gemini.tsx       |   63.43 |    61.81 |      75 |   63.43 | ...73,478-486,494 
  ...ractiveCli.ts |   82.77 |    62.74 |   33.33 |   82.77 | ...23,332-337,356 
  ...liCommands.ts |   83.18 |    69.04 |     100 |   83.18 | ...07,242,244,367 
  ...ActiveAuth.ts |   94.02 |    82.35 |     100 |   94.02 | 26-29             
 ...cp-integration |   45.76 |       75 |   23.07 |   45.76 |                   
  acp.ts           |   11.22 |      100 |   27.27 |   11.22 | ...93-398,401-408 
  acpAgent.ts      |    3.15 |        0 |       0 |    3.15 | 36-55,58-408      
  errorCodes.ts    |     100 |      100 |     100 |     100 |                   
  schema.ts        |     100 |      100 |     100 |     100 |                   
 ...ration/service |   75.47 |    66.66 |      50 |   75.47 |                   
  filesystem.ts    |   75.47 |    66.66 |      50 |   75.47 | 39,54,58-67,69-70 
 ...ration/session |   46.74 |    62.69 |    67.5 |   46.74 |                   
  ...ryReplayer.ts |   73.43 |    81.25 |   88.88 |   73.43 | ...57-186,199-200 
  Session.ts       |   32.77 |    44.23 |      50 |   32.77 | ...1046,1067-1135 
  ...entTracker.ts |   81.34 |       75 |    90.9 |   81.34 | ...68-375,378-379 
  index.ts         |       0 |        0 |       0 |       0 | 1-40              
  types.ts         |       0 |        0 |       0 |       0 | 1                 
 ...ssion/emitters |   97.11 |    94.94 |   91.66 |   97.11 |                   
  BaseEmitter.ts   |   84.61 |      100 |      75 |   84.61 | 35-36             
  ...ageEmitter.ts |     100 |      100 |     100 |     100 |                   
  PlanEmitter.ts   |     100 |      100 |     100 |     100 |                   
  ...allEmitter.ts |   98.94 |     93.1 |     100 |   98.94 | 308,316           
  index.ts         |       0 |        0 |       0 |       0 | 1-10              
 src/commands      |   95.65 |      100 |      50 |   95.65 |                   
  extensions.tsx   |   96.55 |      100 |      50 |   96.55 | 37                
  mcp.ts           |   94.11 |      100 |      50 |   94.11 | 26                
 ...nds/extensions |   85.16 |    91.27 |   81.81 |   85.16 |                   
  consent.ts       |    71.5 |    89.28 |   42.85 |    71.5 | ...84-140,155-161 
  disable.ts       |     100 |      100 |     100 |     100 |                   
  enable.ts        |     100 |      100 |     100 |     100 |                   
  install.ts       |   81.55 |    83.33 |   66.66 |   81.55 | ...16-119,122-129 
  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 | 150               
  uninstall.ts     |   36.36 |      100 |   33.33 |   36.36 | 22-44,56-63,66-69 
  update.ts        |   96.24 |      100 |     100 |   96.24 | 98-102            
  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  |   97.19 |     86.2 |    90.9 |   97.19 |                   
  add.ts           |     100 |    96.15 |     100 |     100 | 210               
  list.ts          |   91.15 |    80.76 |      80 |   91.15 | ...18-120,145-146 
  remove.ts        |     100 |    66.66 |     100 |     100 | 19-23             
 src/config        |   90.66 |    81.51 |    82.6 |   90.66 |                   
  auth.ts          |   86.92 |    78.84 |     100 |   86.92 | ...98-199,215-216 
  config.ts        |   90.31 |    85.65 |      70 |   90.31 | ...-937,1056-1057 
  keyBindings.ts   |     100 |      100 |     100 |     100 |                   
  ...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      |   83.49 |       80 |   80.76 |   83.49 | ...97-919,922-945 
  ...ingsSchema.ts |     100 |      100 |     100 |     100 |                   
  ...tedFolders.ts |   96.87 |       94 |     100 |   96.87 | ...87-188,203-204 
  webSearch.ts     |    40.9 |    11.11 |     100 |    40.9 | ...95-102,105-121 
 src/core          |    17.8 |      100 |       0 |    17.8 |                   
  auth.ts          |    9.52 |      100 |       0 |    9.52 | 21-48             
  initializer.ts   |   15.38 |      100 |       0 |   15.38 | 33-74             
  theme.ts         |   38.46 |      100 |       0 |   38.46 | 17-24             
 src/generated     |     100 |      100 |     100 |     100 |                   
  git-commit.ts    |     100 |      100 |     100 |     100 |                   
 src/i18n          |   42.91 |    71.42 |   38.88 |   42.91 |                   
  index.ts         |   25.27 |    69.23 |   26.66 |   25.27 | ...38-239,249-260 
  languages.ts     |   98.27 |       75 |     100 |   98.27 | 88                
 src/i18n/locales  |       0 |        0 |       0 |       0 |                   
  de.js            |       0 |        0 |       0 |       0 | 1-1373            
  en.js            |       0 |        0 |       0 |       0 | 1-1366            
  ja.js            |       0 |        0 |       0 |       0 | 1-888             
  pt.js            |       0 |        0 |       0 |       0 | 1-1392            
  ru.js            |       0 |        0 |       0 |       0 | 1-1377            
  zh.js            |       0 |        0 |       0 |       0 | 1-1202            
 ...nonInteractive |   63.42 |     65.6 |   68.88 |   63.42 |                   
  session.ts       |   66.87 |    63.24 |   81.81 |   66.87 | ...43-644,658-668 
  types.ts         |    42.5 |      100 |   33.33 |    42.5 | ...63-564,567-568 
 ...active/control |   75.65 |    87.03 |   78.94 |   75.65 |                   
  ...rolContext.ts |    7.69 |        0 |       0 |    7.69 | 47-79             
  ...Dispatcher.ts |   89.32 |    90.38 |   88.23 |   89.32 | ...50-370,385,388 
  ...rolService.ts |       8 |        0 |       0 |       8 | 46-179            
 ...ol/controllers |    6.59 |       80 |   13.79 |    6.59 |                   
  ...Controller.ts |   16.66 |      100 |      60 |   16.66 | 77-114,123-210    
  ...Controller.ts |       0 |        0 |       0 |       0 | 1-56              
  ...Controller.ts |    3.92 |      100 |   11.11 |    3.92 | ...63-381,391-498 
  ...Controller.ts |   13.23 |      100 |       0 |   13.23 | ...82-121,134-137 
  ...Controller.ts |    4.95 |      100 |       0 |    4.95 | ...94-406,415-442 
 .../control/types |       0 |        0 |       0 |       0 |                   
  serviceAPIs.ts   |       0 |        0 |       0 |       0 | 1                 
 ...Interactive/io |   97.13 |    91.91 |   95.94 |   97.13 |                   
  ...putAdapter.ts |    97.3 |    91.57 |     100 |    97.3 | ...1246,1271-1272 
  ...putAdapter.ts |   96.15 |    91.66 |   85.71 |   96.15 | 51-52             
  ...nputReader.ts |     100 |    94.73 |     100 |     100 | 67                
  ...putAdapter.ts |   96.15 |     92.3 |    87.5 |   96.15 | ...81,107-108,289 
 src/patches       |       0 |        0 |       0 |       0 |                   
  is-in-ci.ts      |       0 |        0 |       0 |       0 | 1-17              
 src/services      |   87.75 |       85 |   95.83 |   87.75 |                   
  ...mandLoader.ts |     100 |    77.77 |     100 |     100 | 82                
  ...andService.ts |     100 |      100 |     100 |     100 |                   
  ...mandLoader.ts |   87.44 |    81.48 |     100 |   87.44 | ...16-321,326-331 
  ...omptLoader.ts |    75.1 |    80.64 |   83.33 |    75.1 | ...03-204,270-271 
  ...nd-factory.ts |   91.01 |    93.33 |     100 |   91.01 | 116-123           
  ...ation-tool.ts |     100 |    95.45 |     100 |     100 | 125               
  ...and-parser.ts |   89.47 |    85.71 |     100 |   89.47 | 54-57             
  types.ts         |     100 |      100 |     100 |     100 |                   
 ...mpt-processors |   97.25 |    92.59 |     100 |   97.25 |                   
  ...tProcessor.ts |     100 |      100 |     100 |     100 |                   
  ...eProcessor.ts |   94.44 |    84.21 |     100 |   94.44 | 43-44,90-91       
  ...tionParser.ts |     100 |      100 |     100 |     100 |                   
  ...lProcessor.ts |   97.38 |    93.02 |     100 |   97.38 | 96-99             
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/test-utils    |   93.46 |    83.33 |      80 |   93.46 |                   
  ...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            |   66.51 |    74.35 |   55.26 |   66.51 |                   
  App.tsx          |     100 |      100 |     100 |     100 |                   
  AppContainer.tsx |    71.4 |    64.86 |      50 |    71.4 | ...1168,1182-1243 
  ...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        |   63.63 |      100 |   41.17 |   63.63 | ...52,54-55,60-61 
  constants.ts     |     100 |      100 |     100 |     100 |                   
  keyMatchers.ts   |   95.65 |    95.65 |     100 |   95.65 | 25-26             
  ...tic-colors.ts |     100 |      100 |     100 |     100 |                   
  textConstants.ts |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/ui/auth       |   29.13 |    72.72 |   42.85 |   29.13 |                   
  AuthDialog.tsx   |   86.66 |    76.19 |      60 |   86.66 | ...01-102,147-153 
  ...nProgress.tsx |       0 |        0 |       0 |       0 | 1-64              
  useAuth.ts       |    3.21 |      100 |       0 |    3.21 | 30-324            
 src/ui/commands   |   66.98 |    80.44 |      52 |   66.98 |                   
  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 |                   
  bugCommand.ts    |   76.47 |    66.66 |      50 |   76.47 | 21-22,57-66       
  clearCommand.ts  |   88.23 |    66.66 |      50 |   88.23 | 16-17,41-42       
  ...essCommand.ts |   64.13 |    57.89 |      50 |   64.13 | ...34-138,153-156 
  copyCommand.ts   |   96.22 |      100 |      50 |   96.22 | 15-16             
  ...ryCommand.tsx |   67.53 |    73.07 |      50 |   67.53 | ...75-176,184-192 
  docsCommand.ts   |   95.23 |       80 |      50 |   95.23 | 20-21             
  editorCommand.ts |     100 |      100 |     100 |     100 |                   
  ...onsCommand.ts |   75.45 |    82.89 |   47.82 |   75.45 | ...51-652,661-662 
  helpCommand.ts   |     100 |      100 |     100 |     100 |                   
  ideCommand.ts    |   56.79 |    57.69 |   35.29 |   56.79 | ...00-301,304-318 
  initCommand.ts   |    81.7 |       70 |      50 |    81.7 | ...67,81-86,88-93 
  ...ageCommand.ts |   89.16 |    82.35 |   76.92 |   89.16 | ...17-320,342-343 
  mcpCommand.ts    |   37.54 |    80.95 |   22.22 |   37.54 | ...12-352,358-361 
  memoryCommand.ts |   70.47 |    77.14 |   33.33 |   70.47 | ...84,291-292,310 
  modelCommand.ts  |     100 |      100 |     100 |     100 |                   
  ...onsCommand.ts |     100 |      100 |     100 |     100 |                   
  quitCommand.ts   |   93.75 |      100 |      50 |   93.75 | 15-16             
  ...oreCommand.ts |      92 |    87.09 |     100 |      92 | ...,82-87,128-129 
  resumeCommand.ts |     100 |      100 |     100 |     100 |                   
  ...ngsCommand.ts |     100 |      100 |     100 |     100 |                   
  ...hubCommand.ts |    82.8 |    66.66 |      75 |    82.8 | ...57-160,163-166 
  skillsCommand.ts |    10.9 |      100 |       0 |    10.9 | ...86-102,105-132 
  statsCommand.ts  |   76.92 |       75 |      50 |   76.92 | ...36,50-51,65-66 
  ...aryCommand.ts |    4.74 |      100 |       0 |    4.74 | 21-24,27-314      
  ...tupCommand.ts |     100 |      100 |     100 |     100 |                   
  themeCommand.ts  |     100 |      100 |     100 |     100 |                   
  toolsCommand.ts  |   95.12 |      100 |      50 |   95.12 | 18-19             
  types.ts         |     100 |      100 |     100 |     100 |                   
  vimCommand.ts    |   42.85 |      100 |       0 |   42.85 | 14-15,18-28       
 src/ui/components |   70.43 |       77 |   67.47 |   70.43 |                   
  AboutBox.tsx     |     100 |      100 |     100 |     100 |                   
  AnsiOutput.tsx   |     100 |      100 |     100 |     100 |                   
  AppHeader.tsx    |     100 |       50 |     100 |     100 | 26,38             
  ...odeDialog.tsx |     9.7 |      100 |       0 |     9.7 | 35-47,50-182      
  AsciiArt.ts      |     100 |      100 |     100 |     100 |                   
  ...Indicator.tsx |   15.38 |      100 |       0 |   15.38 | 18-53             
  Composer.tsx     |   96.07 |    69.23 |     100 |   96.07 | 40,46,118,127     
  ...itDisplay.tsx |   55.81 |      100 |      50 |   55.81 | 22-38,42-43       
  ...entPrompt.tsx |     100 |      100 |     100 |     100 |                   
  ...ryDisplay.tsx |   21.05 |      100 |       0 |   21.05 | 17-35             
  ...ryDisplay.tsx |   75.89 |    62.06 |     100 |   75.89 | ...,88,93-108,113 
  ...geDisplay.tsx |   90.47 |       75 |     100 |   90.47 | 20-21             
  ...gProfiler.tsx |       0 |        0 |       0 |       0 | 1-36              
  ...esDisplay.tsx |   10.34 |      100 |       0 |   10.34 | 24-83             
  ...ogManager.tsx |   12.23 |      100 |       0 |   12.23 | 48-334            
  ...ngsDialog.tsx |    7.84 |      100 |       0 |    7.84 | 32-190            
  ExitWarning.tsx  |     100 |      100 |     100 |     100 |                   
  ...ustDialog.tsx |     100 |      100 |     100 |     100 |                   
  Footer.tsx       |   75.89 |    31.57 |     100 |   75.89 | ...,87-91,107-111 
  ...ngSpinner.tsx |   54.28 |       50 |      50 |   54.28 | 31-48,61          
  Header.tsx       |    82.3 |       60 |   66.66 |    82.3 | ...19,121,126-129 
  Help.tsx         |   98.69 |    73.33 |     100 |   98.69 | 74,129            
  ...emDisplay.tsx |   79.38 |    48.14 |     100 |   79.38 | ...67-171,174,177 
  ...ngeDialog.tsx |     100 |      100 |     100 |     100 |                   
  InputPrompt.tsx  |    88.1 |    82.46 |     100 |    88.1 | ...84,744-745,860 
  ...Shortcuts.tsx |   22.89 |      100 |       0 |   22.89 | ...8,41-43,59-117 
  ...Indicator.tsx |     100 |      100 |     100 |     100 |                   
  ...firmation.tsx |   91.42 |      100 |      50 |   91.42 | 26-31             
  MainContent.tsx  |   16.39 |      100 |       0 |   16.39 | 22-76             
  ...geDisplay.tsx |       0 |        0 |       0 |       0 | 1-41              
  ModelDialog.tsx  |   79.22 |    68.05 |     100 |   79.22 | ...39-355,368-372 
  ...tsDisplay.tsx |     100 |      100 |     100 |     100 |                   
  ...tchDialog.tsx |     100 |      100 |     100 |     100 |                   
  ...fications.tsx |   17.02 |      100 |       0 |   17.02 | 15-62             
  ...KeyPrompt.tsx |   45.49 |     12.5 |   33.33 |   45.49 | ...80-198,214-216 
  ...ustDialog.tsx |     100 |    81.81 |     100 |     100 | 71-86             
  ...ryDisplay.tsx |      20 |      100 |       0 |      20 | 20-41             
  ...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             
  ...hProgress.tsx |   90.78 |    95.55 |     100 |   90.78 | 247-273           
  ...ionPicker.tsx |   94.18 |    92.85 |     100 |   94.18 | 79,194-202        
  ...ryDisplay.tsx |     100 |      100 |     100 |     100 |                   
  ...putPrompt.tsx |   72.56 |       80 |      40 |   72.56 | ...06-109,114-117 
  ...ngsDialog.tsx |   66.71 |    72.66 |     100 |   66.71 | ...70-778,784-785 
  ...ionDialog.tsx |   87.01 |      100 |   33.33 |   87.01 | 36-39,44-51       
  ...putPrompt.tsx |      15 |      100 |       0 |      15 | 19-57             
  ...Indicator.tsx |   44.44 |      100 |       0 |   44.44 | 12-17             
  ...MoreLines.tsx |      28 |      100 |       0 |      28 | 18-40             
  ...ionPicker.tsx |    6.97 |      100 |       0 |    6.97 | 20-128            
  StatsDisplay.tsx |   98.66 |    93.33 |     100 |   98.66 | 199-201           
  ...nsDisplay.tsx |   84.09 |    57.14 |     100 |   84.09 | ...16-118,125-127 
  ThemeDialog.tsx  |   90.95 |    44.44 |      75 |   90.95 | ...16-117,159-161 
  Tips.tsx         |   57.14 |      100 |       0 |   57.14 | 24-37             
  TodoDisplay.tsx  |     100 |      100 |     100 |     100 |                   
  ...tsDisplay.tsx |     100 |     87.5 |     100 |     100 | 31-32             
  ...ification.tsx |   36.36 |      100 |       0 |   36.36 | 15-22             
  ...ackDialog.tsx |    7.84 |      100 |       0 |    7.84 | 24-134            
 ...nents/messages |   78.16 |    80.25 |    60.6 |   78.16 |                   
  ...onMessage.tsx |   91.93 |    82.35 |     100 |   91.93 | 57-59,61,63       
  DiffRenderer.tsx |   93.17 |    86.17 |     100 |   93.17 | ...08,236-237,303 
  ErrorMessage.tsx |   22.22 |      100 |       0 |   22.22 | 16-31             
  ...niMessage.tsx |     100 |      100 |     100 |     100 |                   
  ...geContent.tsx |     100 |      100 |     100 |     100 |                   
  ...htMessage.tsx |   17.85 |      100 |       0 |   17.85 | 24-48             
  ...geContent.tsx |   31.57 |      100 |       0 |   31.57 | 26-40             
  InfoMessage.tsx  |   22.72 |      100 |       0 |   22.72 | 18-37             
  ...ryMessage.tsx |   12.82 |      100 |       0 |   12.82 | 22-59             
  ...onMessage.tsx |   77.48 |    77.77 |   33.33 |   77.48 | ...57-158,179-194 
  ...upMessage.tsx |   90.74 |       84 |     100 |   90.74 | 40-43,55,140-144  
  ToolMessage.tsx  |   80.54 |       70 |      80 |   80.54 | ...77-382,456-458 
  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 |   80.81 |    77.19 |   94.11 |   80.81 |                   
  ...ctionList.tsx |   99.02 |    95.65 |     100 |   99.02 | 82                
  ...tonSelect.tsx |     100 |      100 |     100 |     100 |                   
  EnumSelector.tsx |     100 |    96.42 |     100 |     100 | 58                
  MaxSizedBox.tsx  |   81.62 |    81.96 |   88.88 |   81.62 | ...07-508,613-614 
  ...tonSelect.tsx |     100 |      100 |     100 |     100 |                   
  ...eSelector.tsx |     100 |       60 |     100 |     100 | 40-45             
  TextInput.tsx    |    7.94 |      100 |       0 |    7.94 | 32-194            
  text-buffer.ts   |   82.06 |    75.96 |   96.87 |   82.06 | ...1895,1922,1984 
  ...er-actions.ts |   86.71 |    67.79 |     100 |   86.71 | ...07-608,809-811 
 ...ents/subagents |    32.1 |      100 |       0 |    32.1 |                   
  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         |   10.95 |      100 |       0 |   10.95 | ...1,56-57,60-102 
 ...bagents/create |    8.66 |      100 |       0 |    8.66 |                   
  ...ionWizard.tsx |    6.38 |      100 |       0 |    6.38 | 34-339            
  ...rSelector.tsx |   14.75 |      100 |       0 |   14.75 | 26-85             
  ...onSummary.tsx |    3.51 |      100 |       0 |    3.51 | 24-328            
  ...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.01 |      100 |       0 |    8.01 |                   
  ...ctionStep.tsx |   10.25 |      100 |       0 |   10.25 | 21-103            
  ...eleteStep.tsx |   17.07 |      100 |       0 |   17.07 | 20-59             
  ...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.03 |      100 |       0 |    6.03 | 32-338            
 ...agents/runtime |    7.83 |      100 |       0 |    7.83 |                   
  ...onDisplay.tsx |    7.83 |      100 |       0 |    7.83 | ...72-502,511-549 
 ...mponents/views |   84.97 |    69.23 |      75 |   84.97 |                   
  ...sionsList.tsx |    87.3 |    73.68 |     100 |    87.3 | 62-69             
  McpStatus.tsx    |   87.34 |    60.52 |     100 |   87.34 | ...79,182-184,269 
  SkillsList.tsx   |   27.27 |      100 |       0 |   27.27 | 18-35             
  ToolsList.tsx    |     100 |      100 |     100 |     100 |                   
 src/ui/contexts   |   77.47 |    79.32 |    86.2 |   77.47 |                   
  AppContext.tsx   |      40 |      100 |       0 |      40 | 17-22             
  ...igContext.tsx |   81.81 |       50 |     100 |   81.81 | 15-16             
  ...ssContext.tsx |   85.24 |    84.21 |     100 |   85.24 | ...52-754,757-759 
  ...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 | 83-84             
  ...teContext.tsx |   83.33 |       50 |     100 |   83.33 | 141-142           
  ...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      |   81.37 |    82.89 |   84.39 |   81.37 |                   
  ...dProcessor.ts |   78.76 |    80.19 |     100 |   78.76 | ...47-450,461-479 
  keyToAnsi.ts     |    3.92 |      100 |       0 |    3.92 | 19-77             
  ...dProcessor.ts |   94.75 |    70.58 |     100 |   94.75 | ...70-271,276-277 
  ...dProcessor.ts |   80.14 |    65.59 |      80 |   80.14 | ...29,584,603-609 
  ...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.28 |     100 |   92.77 | ...85-186,219-222 
  ...ifications.ts |     100 |      100 |     100 |     100 |                   
  ...tIndicator.ts |     100 |     87.5 |     100 |     100 | 43                
  ...ketedPaste.ts |    23.8 |      100 |       0 |    23.8 | 19-37             
  ...ompletion.tsx |   94.87 |    80.55 |     100 |   94.87 | ...99-200,202-203 
  ...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 
  ...leMessages.ts |   98.68 |       95 |     100 |   98.68 | 55                
  ...ialogClose.ts |      25 |      100 |     100 |      25 | 57-94             
  ...orSettings.ts |     100 |      100 |     100 |     100 |                   
  ...ionUpdates.ts |   93.45 |     92.3 |     100 |   93.45 | ...83-287,300-306 
  ...backDialog.ts |      50 |    77.77 |   33.33 |      50 | ...56-172,193-194 
  useFocus.ts      |     100 |      100 |     100 |     100 |                   
  ...olderTrust.ts |     100 |      100 |     100 |     100 |                   
  ...miniStream.ts |   75.04 |    75.24 |      75 |   75.04 | ...1199,1232-1333 
  ...BranchName.ts |    90.9 |     92.3 |     100 |    90.9 | 19-20,55-58       
  ...oryManager.ts |   98.41 |    93.33 |     100 |   98.41 | 43                
  ...stListener.ts |     100 |      100 |     100 |     100 |                   
  ...nAuthError.ts |   76.19 |       50 |     100 |   76.19 | 39-40,43-45       
  ...putHistory.ts |    92.5 |    85.71 |     100 |    92.5 | 62-63,71,93-95    
  ...storyStore.ts |     100 |    94.11 |     100 |     100 | 66                
  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             
  ...oryMonitor.ts |     100 |      100 |     100 |     100 |                   
  ...ssageQueue.ts |     100 |      100 |     100 |     100 |                   
  ...delCommand.ts |     100 |      100 |     100 |     100 |                   
  ...odifyTrust.ts |     100 |      100 |     100 |     100 |                   
  ...raseCycler.ts |   84.48 |    76.47 |     100 |   84.48 | ...47,50-51,67-69 
  useQwenAuth.ts   |     100 |      100 |     100 |     100 |                   
  ...lScheduler.ts |   85.06 |    94.73 |     100 |   85.06 | ...00-203,291-301 
  ...oryCommand.ts |       0 |        0 |       0 |       0 | 1-7               
  ...umeCommand.ts |   95.45 |    83.33 |     100 |   95.45 | 55-56             
  ...ompletion.tsx |   90.59 |    83.33 |     100 |   90.59 | ...01,104,137-140 
  ...ectionList.ts |   96.18 |    93.67 |     100 |   96.18 | ...58-159,205-208 
  ...sionPicker.ts |   91.66 |    72.34 |     100 |   91.66 | ...45-246,250-251 
  ...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-76              
  ...Completion.ts |   80.88 |     84.4 |   91.66 |   80.88 | ...66-468,476-484 
  ...tateAndRef.ts |   13.63 |      100 |       0 |   13.63 | 16-36             
  ...eateDialog.ts |   88.23 |      100 |     100 |   88.23 | 14,18             
  ...rminalSize.ts |   76.19 |      100 |      50 |   76.19 | 21-25             
  ...emeCommand.ts |    8.04 |      100 |       0 |    8.04 | 25-112            
  useTimer.ts      |   88.09 |    85.71 |     100 |   88.09 | 44-45,51-53       
  ...lMigration.ts |       0 |        0 |       0 |       0 |                   
  ...AutoSwitch.ts |   91.84 |    88.57 |     100 |   91.84 | ...07,173,233-241 
  ...elcomeBack.ts |   69.44 |    54.54 |     100 |   69.44 | ...85,89-90,96-98 
  vim.ts           |   83.57 |     79.5 |     100 |   83.57 | ...38,742-750,759 
 src/ui/layouts    |   89.65 |       80 |     100 |   89.65 |                   
  ...AppLayout.tsx |     100 |      100 |     100 |     100 |                   
  ...AppLayout.tsx |   79.31 |       50 |     100 |   79.31 | 28-33             
 src/ui/models     |    91.5 |     87.5 |   81.81 |    91.5 |                   
  ...ableModels.ts |    91.5 |     87.5 |   81.81 |    91.5 | 70-71,79-85       
 ...noninteractive |     100 |      100 |    9.09 |     100 |                   
  ...eractiveUi.ts |     100 |      100 |    9.09 |     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     |   99.09 |    59.06 |     100 |   99.09 |                   
  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 |                   
  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 |   88.08 |    79.68 |     100 |   88.08 | ...00-306,311-312 
  theme.ts         |     100 |    29.41 |     100 |     100 | 270-458           
  xcode.ts         |     100 |      100 |     100 |     100 |                   
 src/ui/utils      |   69.43 |    83.16 |   79.01 |   69.43 |                   
  ...Colorizer.tsx |   82.19 |    88.23 |     100 |   82.19 | ...08-109,191-217 
  ...olePatcher.ts |      70 |    55.55 |   66.66 |      70 | ...56,59-60,64-67 
  ...nRenderer.tsx |   58.74 |    38.23 |     100 |   58.74 | ...30-136,146-148 
  ...wnDisplay.tsx |   85.75 |    88.05 |     100 |   85.75 | ...76-284,317-342 
  ...eRenderer.tsx |   77.88 |    76.19 |     100 |   77.88 | 54-82             
  ...boardUtils.ts |   29.29 |     37.5 |     100 |   29.29 | ...59-120,135-151 
  commandUtils.ts  |   93.16 |    88.37 |     100 |   93.16 | ...29,133,135-136 
  computeStats.ts  |     100 |      100 |     100 |     100 |                   
  displayUtils.ts  |     100 |      100 |     100 |     100 |                   
  formatters.ts    |   94.11 |    97.82 |     100 |   94.11 | 91-94             
  highlight.ts     |   98.63 |       95 |     100 |   98.63 | 93                
  isNarrowWidth.ts |     100 |      100 |     100 |     100 |                   
  ...olDetector.ts |    7.89 |      100 |       0 |    7.89 | ...11-112,115-116 
  ...nUtilities.ts |   69.84 |    85.71 |     100 |   69.84 | 75-91,100-101     
  ...mConstants.ts |     100 |      100 |     100 |     100 |                   
  ...storyUtils.ts |   85.58 |    70.96 |     100 |   85.58 | ...28,236-241,289 
  ...ickerUtils.ts |     100 |      100 |     100 |     100 |                   
  terminalSetup.ts |    3.67 |      100 |       0 |    3.67 | 41-390            
  textUtils.ts     |   96.52 |    94.44 |    87.5 |   96.52 | 19-20,148-149     
  updateCheck.ts   |     100 |    80.95 |     100 |     100 | 27-39             
 src/utils         |   67.78 |    90.78 |   93.75 |   67.78 |                   
  ...tification.ts |      92 |    71.42 |     100 |      92 | 34-35             
  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 |      100 |     100 |     100 |                   
  deepMerge.ts     |     100 |    89.65 |     100 |     100 | 41-43,49          
  ...ScopeUtils.ts |   97.56 |    88.88 |     100 |   97.56 | 67                
  ...arResolver.ts |   94.28 |    88.46 |     100 |   94.28 | 28-29,125-126     
  errors.ts        |   98.27 |    95.12 |     100 |   98.27 | 40-41             
  events.ts        |     100 |      100 |     100 |     100 |                   
  gitUtils.ts      |   91.75 |    84.61 |     100 |   91.75 | 75-78,121-124     
  ...AutoUpdate.ts |   52.71 |     87.5 |      50 |   52.71 | 88-153            
  ...lationInfo.ts |     100 |      100 |     100 |     100 |                   
  languageUtils.ts |   97.87 |    96.42 |     100 |   97.87 | 131-132           
  math.ts          |       0 |        0 |       0 |       0 | 1-15              
  ...onfigUtils.ts |     100 |      100 |     100 |     100 |                   
  ...iveHelpers.ts |   96.17 |       93 |     100 |   96.17 | ...45-446,544,557 
  package.ts       |   88.88 |       80 |     100 |   88.88 | 33-34             
  processUtils.ts  |     100 |      100 |     100 |     100 |                   
  readStdin.ts     |   79.24 |       90 |      80 |   79.24 | 31-38,50-52       
  relaunch.ts      |      98 |    83.33 |     100 |      98 | 68                
  resolvePath.ts   |   66.66 |       25 |     100 |   66.66 | 12-13,16,18-19    
  sandbox.ts       |       0 |        0 |       0 |       0 | 1-989             
  settingsUtils.ts |   88.23 |    93.57 |   96.87 |   88.23 | ...95,460-493,524 
  spawnWrapper.ts  |     100 |      100 |     100 |     100 |                   
  ...upWarnings.ts |     100 |      100 |     100 |     100 |                   
  systemInfo.ts    |   98.94 |    90.32 |     100 |   98.94 | 168               
  ...InfoFields.ts |   91.11 |    64.51 |     100 |   91.11 | ...,80-81,116-117 
  ...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 |                   
-------------------|---------|----------|---------|---------|-------------------
Core Package - Full Text Report
-------------------|---------|----------|---------|---------|-------------------
File               | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-------------------|---------|----------|---------|---------|-------------------
All files          |   73.01 |    81.75 |   77.53 |   73.01 |                   
 src               |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
 src/__mocks__/fs  |     100 |      100 |     100 |     100 |                   
  promises.ts      |     100 |      100 |     100 |     100 |                   
 src/config        |   74.66 |    77.93 |    56.6 |   74.66 |                   
  config.ts        |   73.73 |    76.16 |   54.19 |   73.73 | ...1672,1675-1676 
  constants.ts     |     100 |      100 |     100 |     100 |                   
  models.ts        |     100 |      100 |     100 |     100 |                   
  storage.ts       |   81.13 |       95 |   67.85 |   81.13 | ...30-131,134-135 
 src/core          |   83.75 |    81.84 |    87.8 |   83.75 |                   
  baseLlmClient.ts |     100 |    96.42 |     100 |     100 | 115               
  client.ts        |   82.16 |    77.77 |      75 |   82.16 | ...43,586,612-628 
  ...tGenerator.ts |    72.1 |    61.11 |     100 |    72.1 | ...27,329,336-339 
  ...lScheduler.ts |   78.93 |    81.21 |   89.65 |   78.93 | ...1288,1330-1334 
  geminiChat.ts    |   86.12 |       84 |      84 |   86.12 | ...47-558,590-593 
  geminiRequest.ts |     100 |      100 |     100 |     100 |                   
  logger.ts        |   82.99 |    81.81 |     100 |   82.99 | ...52-356,396-407 
  ...olExecutor.ts |   92.59 |       75 |      50 |   92.59 | 41-42             
  prompts.ts       |   88.44 |    86.15 |    87.5 |   88.44 | ...96-797,800-801 
  tokenLimits.ts   |     100 |    86.66 |     100 |     100 | 41-42             
  turn.ts          |   95.93 |    88.23 |     100 |   95.93 | ...32,345-346,394 
 ...ntentGenerator |   93.59 |    71.17 |   90.32 |   93.59 |                   
  ...tGenerator.ts |   96.51 |    71.69 |   86.66 |   96.51 | ...73-274,408,464 
  converter.ts     |   92.76 |    71.31 |     100 |   92.76 | ...59,461-462,472 
  index.ts         |       0 |        0 |       0 |       0 | 1-21              
 ...ntentGenerator |   91.37 |    70.31 |   93.33 |   91.37 |                   
  ...tGenerator.ts |      90 |    70.49 |   92.85 |      90 | ...77-283,301-302 
  index.ts         |     100 |    66.66 |     100 |     100 | 45                
 ...ntentGenerator |   89.92 |    69.07 |      85 |   89.92 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...tGenerator.ts |   89.87 |    69.07 |      85 |   89.87 | ...73-474,502,510 
 ...ntentGenerator |   73.38 |    82.95 |    90.9 |   73.38 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  converter.ts     |   66.81 |    76.71 |      88 |   66.81 | ...1241,1262-1271 
  errorHandler.ts  |     100 |      100 |     100 |     100 |                   
  index.ts         |       0 |        0 |       0 |       0 | 1-94              
  ...tGenerator.ts |   47.93 |    91.66 |   77.77 |   47.93 | ...07-160,163-164 
  pipeline.ts      |   97.81 |    89.55 |     100 |   97.81 | ...11,346-347,355 
  ...CallParser.ts |   90.14 |    86.66 |     100 |   90.14 | ...15-319,349-350 
 ...rator/provider |      95 |    88.67 |   90.62 |      95 |                   
  dashscope.ts     |   96.53 |    90.14 |   93.75 |   96.53 | ...19-220,284-285 
  deepseek.ts      |   84.37 |    70.58 |      75 |   84.37 | ...41,54-55,82-85 
  default.ts       |   96.66 |      100 |   83.33 |   96.66 | 76-77             
  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     |   57.42 |    84.26 |    76.1 |   57.42 |                   
  ...-converter.ts |   46.52 |    53.24 |      70 |   46.52 | ...17-718,727-759 
  ...ionManager.ts |   43.55 |    86.79 |   64.28 |   43.55 | ...1217,1238-1243 
  ...onSettings.ts |   94.97 |    93.05 |     100 |   94.97 | ...14-216,223-225 
  ...-converter.ts |   58.33 |      100 |      60 |   58.33 | 67-106,140-174    
  github.ts        |   43.76 |    89.09 |      60 |   43.76 | ...35-341,380-433 
  index.ts         |     100 |      100 |     100 |     100 |                   
  marketplace.ts   |   97.15 |    93.18 |     100 |   97.15 | ...63,183-184,247 
  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     |   95.91 |    89.47 |     100 |   95.91 | 37-38             
 src/generated     |     100 |      100 |     100 |     100 |                   
  git-commit.ts    |     100 |      100 |     100 |     100 |                   
 src/ide           |   68.79 |    82.74 |      75 |   68.79 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  detect-ide.ts    |     100 |      100 |     100 |     100 |                   
  ide-client.ts    |   52.32 |     78.2 |      60 |   52.32 | ...11-819,845-853 
  ide-installer.ts |   89.06 |    79.31 |     100 |   89.06 | ...36,143-147,160 
  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/lsp           |   23.04 |    42.97 |   33.91 |   23.04 |                   
  ...nfigLoader.ts |   63.88 |    32.09 |     100 |   63.88 | ...79-481,485-491 
  ...ionFactory.ts |    3.65 |      100 |       0 |    3.65 | ...17-368,374-391 
  ...geDetector.ts |   76.31 |    46.66 |   66.66 |   76.31 | ...10-215,224-225 
  ...Normalizer.ts |    4.03 |      100 |       0 |    4.03 | ...48-856,862-916 
  ...verManager.ts |    9.71 |       75 |      25 |    9.71 | ...61-680,686-716 
  ...eLspClient.ts |   17.89 |      100 |       0 |   17.89 | ...37-244,254-258 
  ...LspService.ts |   19.59 |    76.47 |   39.13 |   19.59 | ...06-860,863-873 
  constants.ts     |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/mcp           |    78.5 |    75.24 |   75.92 |    78.5 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  ...h-provider.ts |   86.56 |      100 |   33.33 |   86.56 | ...86,90,94,98-99 
  ...h-provider.ts |   73.19 |    54.16 |     100 |   73.19 | ...11-818,825-827 
  ...en-storage.ts |    98.6 |    97.72 |     100 |    98.6 | 84-85             
  oauth-utils.ts   |   70.33 |    81.48 |    90.9 |   70.33 | ...62-283,308-331 
  ...n-provider.ts |   89.47 |    95.83 |   45.45 |   89.47 | ...40,144,148-149 
 .../token-storage |   79.76 |    86.66 |   86.36 |   79.76 |                   
  ...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.57 |    82.35 |   64.28 |   68.57 | ...77-291,294-310 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/mocks         |     100 |      100 |     100 |     100 |                   
  msw.ts           |     100 |      100 |     100 |     100 |                   
 src/models        |   87.78 |    82.62 |    84.9 |   87.78 |                   
  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 |   97.94 |    87.93 |     100 |   97.94 | 135,295,311-312   
  modelRegistry.ts |     100 |    97.77 |     100 |     100 | 164               
  modelsConfig.ts  |   80.91 |    80.45 |   76.92 |   80.91 | ...29,701,724-728 
  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/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/qwen          |   85.93 |    79.93 |   97.18 |   85.93 |                   
  ...tGenerator.ts |   98.63 |    98.18 |     100 |   98.63 | 103-104           
  qwenOAuth2.ts    |   84.37 |    75.78 |   93.33 |   84.37 | ...6,957-973,1000 
  ...kenManager.ts |   84.24 |    76.03 |     100 |   84.24 | ...52-757,778-783 
 src/services      |   83.34 |    80.96 |   83.15 |   83.34 |                   
  ...ionService.ts |   93.21 |     90.9 |     100 |   93.21 | ...44,176,178-182 
  ...ingService.ts |   67.42 |       50 |   84.61 |   67.42 | ...77-389,395-407 
  ...eryService.ts |   80.43 |    95.45 |      75 |   80.43 | ...19-134,140-141 
  ...temService.ts |     100 |      100 |     100 |     100 |                   
  gitService.ts    |   66.29 |     90.9 |   55.55 |   66.29 | ...03-113,116-120 
  ...ionService.ts |   97.67 |    91.25 |     100 |   97.67 | ...79-380,386-387 
  ...ionService.ts |   79.12 |    73.19 |   88.88 |   79.12 | ...50-671,679-703 
  ...ionService.ts |   82.18 |    78.63 |   73.91 |   82.18 | ...43-744,748-753 
 src/skills        |   64.86 |    83.72 |      75 |   64.86 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  skill-load.ts    |   40.54 |    69.23 |   66.66 |   40.54 | ...13,119,131-133 
  skill-manager.ts |   70.48 |    86.11 |      75 |   70.48 | ...24-532,535-544 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/subagents     |   81.03 |    79.04 |   84.81 |   81.03 |                   
  ...tin-agents.ts |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...ent-events.ts |      92 |      100 |      75 |      92 | 139-140           
  ...gent-hooks.ts |       0 |        0 |       0 |       0 | 1                 
  ...nt-manager.ts |   72.88 |    75.83 |      88 |   72.88 | ...72-894,962-963 
  ...statistics.ts |   98.19 |     81.7 |     100 |   98.19 | 128,152,193,226   
  subagent.ts      |   76.38 |    66.66 |      72 |   76.38 | ...01-902,908-909 
  types.ts         |     100 |      100 |     100 |     100 |                   
  validation.ts    |    92.4 |    96.59 |     100 |    92.4 | 54-59,63-68,72-77 
 src/telemetry     |   69.98 |    85.53 |   74.13 |   69.98 |                   
  config.ts        |     100 |      100 |     100 |     100 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  ...-exporters.ts |   36.76 |      100 |   22.22 |   36.76 | ...84,87-88,91-92 
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...t.circular.ts |       0 |        0 |       0 |       0 | 1-111             
  ...t.circular.ts |       0 |        0 |       0 |       0 | 1-128             
  loggers.ts       |   55.08 |     65.9 |   51.42 |   55.08 | ...04-919,922-948 
  metrics.ts       |   82.85 |    86.74 |   81.63 |   82.85 | ...24-725,731-749 
  sdk.ts           |   82.55 |       50 |     100 |   82.55 | ...85,189-190,192 
  ...etry-utils.ts |     100 |      100 |     100 |     100 |                   
  ...l-decision.ts |     100 |      100 |     100 |     100 |                   
  types.ts         |   80.39 |    91.11 |   84.48 |   80.39 | ...86-797,806-829 
  uiTelemetry.ts   |   94.73 |    96.15 |   91.66 |   94.73 | 136,165-171       
 ...learcut-logger |   45.11 |    70.17 |   38.09 |   45.11 |                   
  ...cut-logger.ts |   38.36 |    69.64 |   38.09 |   38.36 | ...1117,1120-1123 
  ...tadata-key.ts |     100 |      100 |     100 |     100 |                   
 ...ry/qwen-logger |   68.78 |    82.71 |   68.62 |   68.78 |                   
  event-types.ts   |       0 |        0 |       0 |       0 |                   
  qwen-logger.ts   |   68.78 |     82.5 |      68 |   68.78 | ...08-912,955-956 
 src/test-utils    |   93.88 |    93.33 |   77.77 |   93.88 |                   
  config.ts        |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  mock-tool.ts     |   92.14 |     92.3 |      76 |   92.14 | ...70,174-175,188 
  ...aceContext.ts |     100 |      100 |     100 |     100 |                   
 src/tools         |   74.79 |    79.45 |   84.01 |   74.79 |                   
  diffOptions.ts   |     100 |      100 |     100 |     100 |                   
  edit.ts          |   84.89 |    85.71 |   85.71 |   84.89 | ...60-461,550-590 
  exitPlanMode.ts  |   85.29 |    86.36 |     100 |   85.29 | ...03-108,136-148 
  glob.ts          |   95.73 |    86.53 |    90.9 |   95.73 | 91-97,139,224,227 
  grep.ts          |   71.35 |    85.29 |   76.47 |   71.35 | ...22,462,470-477 
  ls.ts            |   96.41 |     88.7 |     100 |   96.41 | 142-147,178,182   
  lsp.ts           |   72.58 |    60.29 |   90.32 |   72.58 | ...1202,1204-1205 
  ...nt-manager.ts |   87.05 |     62.5 |      80 |   87.05 | ...10-117,125-126 
  mcp-client.ts    |   28.89 |    70.42 |   48.38 |   28.89 | ...1365,1369-1372 
  mcp-tool.ts      |   95.43 |    93.67 |      95 |   95.43 | 233-243,305-306   
  memoryTool.ts    |   74.42 |    83.87 |   90.47 |   74.42 | ...39-347,449-533 
  ...iable-tool.ts |     100 |    84.61 |     100 |     100 | 99,106            
  read-file.ts     |   96.34 |    86.48 |    87.5 |   96.34 | 65,67,69-70,76-77 
  ...many-files.ts |   78.99 |    78.87 |   85.71 |   78.99 | ...46-447,454-455 
  ripGrep.ts       |   95.61 |    88.67 |     100 |   95.61 | ...23,226,304-305 
  ...-transport.ts |    2.43 |      100 |       0 |    2.43 | 44-163            
  shell.ts         |   87.22 |    82.35 |     100 |   87.22 | ...75-582,587-588 
  skill.ts         |   94.57 |    85.29 |    90.9 |   94.57 | ...77,220-223,227 
  smart-edit.ts    |   82.95 |    77.86 |      88 |   82.95 | ...01-903,921-964 
  task.ts          |   66.66 |     87.5 |     100 |   66.66 | ...04-505,526-533 
  todoWrite.ts     |   78.74 |    80.95 |   71.42 |   78.74 | ...95-420,441-442 
  tool-error.ts    |     100 |      100 |     100 |     100 |                   
  tool-names.ts    |     100 |      100 |     100 |     100 |                   
  tool-registry.ts |   69.09 |    65.38 |   70.37 |   69.09 | ...24-429,437-445 
  tools.ts         |    89.2 |    89.58 |    87.5 |    89.2 | ...74-375,391-397 
  web-fetch.ts     |   85.22 |    60.86 |      90 |   85.22 | ...33-234,236-237 
  write-file.ts    |   83.33 |    83.33 |      75 |   83.33 | ...16-419,431-465 
 ...ols/web-search |   72.49 |    76.59 |   81.25 |   72.49 |                   
  base-provider.ts |    40.9 |    33.33 |     100 |    40.9 | 40-43,48-56       
  index.ts         |   76.99 |    84.61 |   91.66 |   76.99 | ...47-151,257-267 
  types.ts         |       0 |        0 |       0 |       0 | 1                 
  utils.ts         |      60 |       50 |      50 |      60 | 35-42             
 ...arch/providers |   46.73 |     64.7 |   72.72 |   46.73 |                   
  ...e-provider.ts |       8 |      100 |       0 |       8 | 68-83,89-199      
  ...e-provider.ts |      82 |    55.55 |     100 |      82 | 57-58,61-62,72-76 
  ...y-provider.ts |   89.79 |       75 |     100 |   89.79 | 62-66             
 src/utils         |   84.48 |    88.68 |      86 |   84.48 |                   
  LruCache.ts      |   80.64 |       75 |     100 |   80.64 | 28,30-34          
  browser.ts       |    7.69 |      100 |       0 |    7.69 | 17-56             
  ...igResolver.ts |     100 |      100 |     100 |     100 |                   
  editHelper.ts    |   91.84 |    80.45 |     100 |   91.84 | ...73-475,484-485 
  editor.ts        |   96.95 |    93.87 |     100 |   96.95 | ...90-191,193-194 
  ...arResolver.ts |   94.28 |    88.88 |     100 |   94.28 | 28-29,125-126     
  ...entContext.ts |     100 |    94.73 |     100 |     100 | 120               
  errorParsing.ts  |     100 |      100 |     100 |     100 |                   
  ...rReporting.ts |   83.72 |    84.61 |     100 |   83.72 | 82-86,107-115     
  errors.ts        |   61.45 |    88.88 |   46.15 |   61.45 | ...08-124,128-134 
  fetch.ts         |   71.97 |    71.42 |   71.42 |   71.97 | ...38,144,157,182 
  fileUtils.ts     |   94.78 |       90 |     100 |   94.78 | ...27-429,478-484 
  formatters.ts    |   54.54 |       50 |     100 |   54.54 | 12-16             
  ...eUtilities.ts |    95.4 |    94.87 |     100 |    95.4 | 16-17,45-46       
  ...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 |    92.3 |    89.13 |     100 |    92.3 | ...15-116,186-187 
  gitUtils.ts      |   59.25 |    76.92 |   66.66 |   59.25 | 41-42,51-74,88-89 
  ...rePatterns.ts |     100 |      100 |     100 |     100 |                   
  ...ionManager.ts |     100 |       90 |     100 |     100 | 23                
  jsonl-utils.ts   |    7.37 |      100 |       0 |    7.37 | ...48-181,187-193 
  ...-detection.ts |     100 |      100 |     100 |     100 |                   
  ...edit-fixer.ts |     100 |      100 |     100 |     100 |                   
  ...yDiscovery.ts |    78.5 |       65 |   66.66 |    78.5 | ...83-384,387-388 
  ...tProcessor.ts |   92.46 |    88.75 |   92.85 |   92.46 | ...09-315,398-399 
  ...Inspectors.ts |   61.53 |      100 |      50 |   61.53 | 18-23             
  ...kerChecker.ts |   83.69 |    78.94 |     100 |   83.69 | 65-66,76-81,89-95 
  openaiLogger.ts  |   85.85 |    81.48 |     100 |   85.85 | ...98-100,123-128 
  partUtils.ts     |     100 |      100 |     100 |     100 |                   
  pathReader.ts    |     100 |      100 |     100 |     100 |                   
  paths.ts         |   95.32 |    95.23 |     100 |   95.32 | ...,70-71,103-104 
  ...ectSummary.ts |    3.75 |      100 |       0 |    3.75 | 27-119            
  ...tIdContext.ts |     100 |      100 |     100 |     100 |                   
  ...rDetection.ts |   60.25 |    74.07 |     100 |   60.25 | ...95-100,125-126 
  ...noreParser.ts |   85.45 |    78.26 |     100 |   85.45 | ...59,65-66,72-73 
  retry.ts         |   71.83 |    82.69 |     100 |   71.83 | ...12,230,237-238 
  ripgrepUtils.ts  |   36.19 |       75 |   55.55 |   36.19 | ...77-230,246-334 
  ...tchOptions.ts |   55.88 |       50 |      75 |   55.88 | ...29-130,151-152 
  safeJsonParse.ts |      72 |    83.33 |     100 |      72 | 37-43             
  ...nStringify.ts |     100 |      100 |     100 |     100 |                   
  ...aConverter.ts |   90.78 |    87.87 |     100 |   90.78 | ...41-42,93,95-96 
  ...aValidator.ts |     100 |    88.88 |     100 |     100 | 11-25,69          
  ...r-launcher.ts |   76.52 |     87.5 |   66.66 |   76.52 | ...33,135,153-191 
  shell-utils.ts   |   87.07 |    95.71 |   93.33 |   87.07 | ...30-543,563-567 
  ...nlyChecker.ts |   85.15 |    85.71 |   81.81 |   85.15 | ...07-308,312-313 
  ...tGenerator.ts |     100 |     90.9 |     100 |     100 | 129               
  summarizer.ts    |     100 |    88.88 |     100 |     100 | 91                
  ...emEncoding.ts |   98.11 |    94.59 |     100 |   98.11 | 115-116           
  ...Serializer.ts |   99.06 |    94.54 |     100 |   99.06 | 90,147-149        
  testUtils.ts     |   53.33 |      100 |   33.33 |   53.33 | ...53,59-64,70-72 
  textUtils.ts     |   53.33 |      100 |      50 |   53.33 | 36-55             
  thoughtUtils.ts  |     100 |     92.3 |     100 |     100 | 71                
  ...-converter.ts |   94.59 |    85.71 |     100 |   94.59 | 35-36             
  tool-utils.ts    |    93.6 |       92 |     100 |    93.6 | ...58-159,162-163 
  ...aceContext.ts |   96.82 |    95.12 |    92.3 |   96.82 | 94-95,109-110     
  yaml-parser.ts   |      92 |       84 |     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 | ...27-228,230-231 
  ignore.ts        |     100 |      100 |     100 |     100 |                   
  result-cache.ts  |     100 |     92.3 |     100 |     100 | 46                
 ...uest-tokenizer |   56.33 |    74.52 |   74.19 |   56.33 |                   
  ...eTokenizer.ts |   41.47 |    76.47 |   69.23 |   41.47 | ...67-440,450-504 
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...tTokenizer.ts |   68.12 |    69.49 |    90.9 |   68.12 | ...21-322,324-325 
  ...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.

@Ojhaharsh

Copy link
Copy Markdown
Contributor

@LaZzyMan Thanks for extending this with Claude support and polishing the i18n implementation! Happy to see this moving forward; appreciate you building on my contribution. 😊

@tanzhenxin tanzhenxin left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LGTM!

@tanzhenxin
tanzhenxin merged commit 1da07eb into main Feb 5, 2026
16 checks passed
xaelistic pushed a commit to xaelistic/qwen-code that referenced this pull request Jun 7, 2026
…ions

add hint for installing external source extensions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants