Skip to content

Conversation

tanzhenxin
Copy link
Collaborator

TLDR

Dive Deeper

Reviewer Test Plan

Testing Matrix

🍏 πŸͺŸ 🐧
npm run ❓ ❓ ❓
npx ❓ ❓ ❓
Docker ❓ ❓ ❓
Podman ❓ - -
Seatbelt ❓ - -

Linked issues / bugs

Copy link
Contributor

πŸ“‹ Review Summary

This PR refactors the DashScope provider to apply cache_control to all content types, not just text content. The changes simplify the implementation by removing the need to add empty text items when the last content item is not text, and instead directly apply cache_control to whatever the last item is. This is a good improvement that makes the code more consistent with how cache_control should work across different content types.

πŸ” General Feedback

  • The refactoring simplifies the logic for applying cache_control by directly adding it to the last content item regardless of its type
  • Removal of the ChatCompletionContentPartTextWithCache type in favor of a more generic approach improves maintainability
  • Test cases have been appropriately updated to reflect the new behavior
  • The change makes the implementation more consistent with the expected behavior of applying cache_control to all content types

🎯 Specific Feedback

🟒 Medium

  • File: packages/core/src/core/openaiContentGenerator/provider/dashscope.ts:243 - The change from an empty string to a single space in the text content when creating a new content item might have implications for consumers of this API. While this is a minor change, it would be good to verify that this doesn't affect any downstream processing that might be expecting an empty string.

  • File: packages/core/src/core/openaiContentGenerator/provider/dashscope.test.ts:590 - The test description was updated but might not accurately reflect what the test is actually doing. The test is still checking that cache_control is added to an image content item, not that it's added directly to image content when the last item is not text.

πŸ”΅ Low

  • File: packages/core/src/core/openaiContentGenerator/provider/dashscope.test.ts:615 - The expected length of the content array changed from 3 to 2, which correctly reflects the new behavior of modifying the existing item rather than adding a new one. This is good but worth noting for anyone reviewing the test changes.

  • File: packages/core/src/core/openaiContentGenerator/provider/dashscope.test.ts:691 - Similar to the earlier point, the change from an empty string to a single space in the test expectation should be verified to not cause any issues with downstream processing.

βœ… Highlights

  • Simplified the logic for applying cache_control by directly adding it to the last content item regardless of its type
  • Removed the need to add empty text items when the last content item is not text
  • Updated type definitions to be more generic and maintainable
  • Appropriately updated test cases to reflect the new behavior

@github-actions github-actions bot added bug status/need-information More information is needed to resolve this issue. labels Oct 13, 2025
Copy link
Contributor

Code Coverage Summary

Package Lines Statements Functions Branches
CLI 69.47% 69.47% 74.01% 80.05%
Core 76.07% 76.07% 78.49% 83.98%
CLI Package - Full Text Report
-------------------|---------|----------|---------|---------|-------------------
File               | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-------------------|---------|----------|---------|---------|-------------------
All files          |   69.47 |    80.05 |   74.01 |   69.47 |                   
 src               |   57.75 |    68.33 |   61.53 |   57.75 |                   
  gemini.tsx       |   41.69 |       50 |    62.5 |   41.69 | ...71,381-387,399 
  ...ractiveCli.ts |   90.38 |    73.68 |   33.33 |   90.38 | 36-39,58-61,88-90 
  ...ActiveAuth.ts |     100 |      100 |     100 |     100 |                   
 src/commands      |    72.5 |      100 |      25 |    72.5 |                   
  extensions.tsx   |   56.52 |      100 |       0 |   56.52 | 19-27,31          
  mcp.ts           |   94.11 |      100 |      50 |   94.11 | 26                
 ...nds/extensions |   35.65 |       75 |   11.11 |   35.65 |                   
  disable.ts       |    28.2 |      100 |       0 |    28.2 | 17-27,33-44,46-50 
  enable.ts        |    23.4 |      100 |       0 |    23.4 | 17-35,41-52,54-58 
  install.ts       |   55.31 |    66.66 |   33.33 |   55.31 | 20-34,56,59-63    
  list.ts          |   32.14 |      100 |       0 |   32.14 | 11-27,34-35       
  uninstall.ts     |   45.71 |      100 |   33.33 |   45.71 | 15-23,35-40,43-46 
  update.ts        |   26.47 |      100 |       0 |   26.47 | 15-30,36-41,43-46 
 src/commands/mcp  |   95.62 |       80 |    90.9 |   95.62 |                   
  add.ts           |    97.4 |    83.33 |     100 |    97.4 | 109-112,119       
  list.ts          |   90.56 |    80.76 |      80 |   90.56 | ...07-109,134-135 
  remove.ts        |     100 |    66.66 |     100 |     100 | 19-23             
 src/config        |   92.56 |    83.14 |   87.32 |   92.56 |                   
  auth.ts          |   83.33 |       95 |      25 |   83.33 | ...60,63-64,67-68 
  config.ts        |   96.17 |    85.24 |   83.33 |   96.17 | ...58,515,710-714 
  extension.ts     |   83.72 |    83.87 |   91.66 |   83.72 | ...68-469,476-480 
  keyBindings.ts   |     100 |      100 |     100 |     100 |                   
  sandboxConfig.ts |   54.16 |    23.07 |   66.66 |   54.16 | ...44,54-68,73-89 
  settings.ts      |    89.4 |    82.44 |   95.45 |    89.4 | ...74-775,847-848 
  ...ingsSchema.ts |     100 |      100 |     100 |     100 |                   
  ...tedFolders.ts |   92.43 |       90 |     100 |   92.43 | ...10,126-131,149 
 ...fig/extensions |    87.5 |    66.66 |     100 |    87.5 |                   
  ...ableSchema.ts |     100 |      100 |     100 |     100 |                   
  variables.ts     |   83.72 |    66.66 |     100 |   83.72 | ...40,53-54,64-65 
 src/generated     |     100 |      100 |     100 |     100 |                   
  git-commit.ts    |     100 |      100 |     100 |     100 |                   
 src/patches       |       0 |        0 |       0 |       0 |                   
  is-in-ci.ts      |       0 |        0 |       0 |       0 | 1-17              
 src/services      |   71.94 |    88.15 |   82.35 |   71.94 |                   
  ...mandLoader.ts |     100 |      100 |     100 |     100 |                   
  ...andService.ts |     100 |      100 |     100 |     100 |                   
  ...mandLoader.ts |    92.7 |     92.5 |     100 |    92.7 | 177-182,265-272   
  ...omptLoader.ts |   34.37 |    72.72 |      50 |   34.37 | ...43-244,247-251 
  types.ts         |     100 |      100 |     100 |     100 |                   
 ...mpt-processors |   97.03 |     93.5 |     100 |   97.03 |                   
  ...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 |   96.96 |    94.87 |     100 |   96.96 | 93-96             
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/test-utils    |   91.52 |    83.33 |      80 |   91.52 |                   
  ...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            |   61.06 |    65.32 |   59.52 |   61.06 |                   
  App.tsx          |   60.02 |    56.41 |   35.29 |   60.02 | ...1559,1585-1614 
  ...tionNudge.tsx |    8.33 |      100 |       0 |    8.33 | 24-96             
  colors.ts        |   79.59 |      100 |   66.66 |   79.59 | ...43,45-46,48-49 
  constants.ts     |     100 |      100 |     100 |     100 |                   
  keyMatchers.ts   |   95.65 |    95.83 |     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/commands   |   77.64 |    80.75 |    82.5 |   77.64 |                   
  aboutCommand.ts  |     100 |       60 |     100 |     100 | 24-31             
  agentsCommand.ts |   77.77 |      100 |       0 |   77.77 | 23-25,32-34       
  ...odeCommand.ts |   79.23 |    75.53 |     100 |   79.23 | ...14-415,429-430 
  authCommand.ts   |     100 |      100 |     100 |     100 |                   
  bugCommand.ts    |   79.72 |     37.5 |     100 |   79.72 | 33-36,43,81-90    
  chatCommand.ts   |   94.23 |    83.33 |     100 |   94.23 | ...11-212,214-215 
  clearCommand.ts  |     100 |      100 |     100 |     100 |                   
  ...essCommand.ts |     100 |    88.88 |     100 |     100 | 73                
  copyCommand.ts   |     100 |      100 |     100 |     100 |                   
  corgiCommand.ts  |     100 |      100 |     100 |     100 |                   
  ...ryCommand.tsx |   69.69 |    73.07 |     100 |   69.69 | ...24-125,160-168 
  docsCommand.ts   |     100 |      100 |     100 |     100 |                   
  editorCommand.ts |     100 |      100 |     100 |     100 |                   
  ...onsCommand.ts |     100 |      100 |     100 |     100 |                   
  helpCommand.ts   |     100 |      100 |     100 |     100 |                   
  ideCommand.ts    |   62.19 |    66.66 |      60 |   62.19 | ...34-248,256-270 
  initCommand.ts   |   83.54 |       70 |     100 |   83.54 | 64,78-83,85-90    
  mcpCommand.ts    |   82.33 |    82.95 |   83.33 |   82.33 | ...84-385,438-445 
  memoryCommand.ts |   60.88 |     86.2 |   42.85 |   60.88 | ...12,219-240,264 
  modelCommand.ts  |     100 |      100 |     100 |     100 |                   
  ...acyCommand.ts |     100 |      100 |     100 |     100 |                   
  quitCommand.ts   |   64.81 |      100 |      50 |   64.81 | 15-34             
  ...oreCommand.ts |      92 |    87.09 |     100 |      92 | ...,82-87,128-129 
  ...ngsCommand.ts |     100 |      100 |     100 |     100 |                   
  ...hubCommand.ts |   83.66 |    66.66 |     100 |   83.66 | ...54-157,160-163 
  statsCommand.ts  |   84.48 |       75 |     100 |   84.48 | 25-33             
  ...aryCommand.ts |    8.33 |      100 |       0 |    8.33 | 23-188            
  ...tupCommand.ts |     100 |      100 |     100 |     100 |                   
  themeCommand.ts  |     100 |      100 |     100 |     100 |                   
  toolsCommand.ts  |     100 |      100 |     100 |     100 |                   
  types.ts         |     100 |      100 |     100 |     100 |                   
  vimCommand.ts    |   44.44 |      100 |       0 |   44.44 | 15-25             
 src/ui/components |   65.54 |    79.66 |   70.66 |   65.54 |                   
  AboutBox.tsx     |     100 |       50 |     100 |     100 | 104               
  AsciiArt.ts      |     100 |      100 |     100 |     100 |                   
  AuthDialog.tsx   |   74.65 |       90 |      50 |   74.65 | ...15-116,138-144 
  ...nProgress.tsx |   16.66 |      100 |       0 |   16.66 | 19-63             
  ...Indicator.tsx |   13.15 |      100 |       0 |   13.15 | 17-52             
  ...ryDisplay.tsx |   89.47 |    33.33 |     100 |   89.47 | 20-21             
  ...ryDisplay.tsx |   92.13 |    94.44 |     100 |   92.13 | 82-87,92          
  ...geDisplay.tsx |     100 |      100 |     100 |     100 |                   
  ...gProfiler.tsx |      24 |      100 |       0 |      24 | 13-36             
  ...esDisplay.tsx |   10.52 |      100 |       0 |   10.52 | 24-82             
  ...ngsDialog.tsx |    6.99 |      100 |       0 |    6.99 | 30-181            
  ...ustDialog.tsx |     100 |      100 |     100 |     100 |                   
  Footer.tsx       |   84.82 |    82.35 |     100 |   84.82 | ...,89-91,136-143 
  ...ngSpinner.tsx |   76.19 |       60 |     100 |   76.19 | 34,39-44          
  Header.tsx       |   87.23 |    57.14 |     100 |   87.23 | 36-39,55,64       
  Help.tsx         |    3.38 |      100 |       0 |    3.38 | 17-167            
  ...emDisplay.tsx |   82.05 |    55.55 |     100 |   82.05 | ...8,61-66,87,100 
  InputPrompt.tsx  |   77.82 |    74.85 |     100 |   77.82 | ...78-780,788-799 
  ...Indicator.tsx |     100 |      100 |     100 |     100 |                   
  ...geDisplay.tsx |   25.92 |      100 |       0 |   25.92 | 15-37             
  ...ionDialog.tsx |     100 |      100 |     100 |     100 |                   
  ...tsDisplay.tsx |     100 |      100 |     100 |     100 |                   
  ...tchDialog.tsx |     100 |      100 |     100 |     100 |                   
  ...KeyPrompt.tsx |   62.33 |    31.25 |     100 |   62.33 | ...59-112,116-124 
  ...ryDisplay.tsx |      20 |      100 |       0 |      20 | 20-41             
  PrepareLabel.tsx |      60 |       80 |     100 |      60 | 35-48             
  ...ionDialog.tsx |   20.75 |      100 |       0 |   20.75 | 28-74             
  ...hProgress.tsx |     100 |      100 |     100 |     100 |                   
  ...ryDisplay.tsx |     100 |      100 |     100 |     100 |                   
  ...ngsDialog.tsx |   58.49 |    70.19 |      75 |   58.49 | ...03-704,738,749 
  ...ionDialog.tsx |    85.5 |      100 |   33.33 |    85.5 | 35-38,43-50       
  ...Indicator.tsx |   44.44 |      100 |       0 |   44.44 | 12-17             
  ...MoreLines.tsx |      60 |       25 |     100 |      60 | 24-27,33-40       
  StatsDisplay.tsx |    98.5 |    93.33 |     100 |    98.5 | 180-182           
  ...nsDisplay.tsx |   84.61 |    68.42 |     100 |   84.61 | ...08-112,122-124 
  ThemeDialog.tsx  |    5.33 |      100 |       0 |    5.33 | 36-312            
  Tips.tsx         |   19.23 |      100 |       0 |   19.23 | 17-45             
  TodoDisplay.tsx  |     100 |      100 |     100 |     100 |                   
  ...tsDisplay.tsx |     100 |     87.5 |     100 |     100 | 30-31             
  ...ification.tsx |   36.36 |      100 |       0 |   36.36 | 15-22             
  ...ackDialog.tsx |    7.95 |      100 |       0 |    7.95 | 23-123            
  ...ionDialog.tsx |    8.75 |      100 |       0 |    8.75 | 20-108            
 ...nents/messages |   80.01 |    85.12 |   64.28 |   80.01 |                   
  ...onMessage.tsx |   20.68 |      100 |       0 |   20.68 | 23-51             
  DiffRenderer.tsx |   93.44 |    82.79 |     100 |   93.44 | ...29-230,234,296 
  ErrorMessage.tsx |     100 |      100 |     100 |     100 |                   
  ...niMessage.tsx |   18.75 |      100 |       0 |   18.75 | 21-49             
  ...geContent.tsx |   19.04 |      100 |       0 |   19.04 | 25-43             
  InfoMessage.tsx  |    90.9 |       50 |     100 |    90.9 | 19-20             
  ...ryMessage.tsx |   12.82 |      100 |       0 |   12.82 | 22-59             
  ...onMessage.tsx |   76.49 |    78.26 |      40 |   76.49 | ...49-164,178-181 
  ...upMessage.tsx |     100 |      100 |     100 |     100 |                   
  ToolMessage.tsx  |   88.28 |       86 |      80 |   88.28 | ...60-264,357-359 
  UserMessage.tsx  |     100 |      100 |     100 |     100 |                   
  ...llMessage.tsx |   36.36 |      100 |       0 |   36.36 | 17-25             
 ...ponents/shared |   77.16 |    76.34 |   93.18 |   77.16 |                   
  MaxSizedBox.tsx  |   81.62 |     82.5 |   88.88 |   81.62 | ...08-509,614-615 
  ...tonSelect.tsx |   86.45 |    67.44 |     100 |   86.45 | ...52,155-156,230 
  TextInput.tsx    |    7.94 |      100 |       0 |    7.94 | 32-194            
  text-buffer.ts   |   77.86 |    78.03 |   96.66 |   77.86 | ...1800,1827,1877 
  ...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.77 |      100 |       0 |    8.77 |                   
  ...ionWizard.tsx |    6.87 |      100 |       0 |    6.87 | 34-319            
  ...rSelector.tsx |      15 |      100 |       0 |      15 | 26-84             
  ...onSummary.tsx |    3.03 |      100 |       0 |    3.03 | 22-306            
  ...tionInput.tsx |    9.09 |      100 |       0 |    9.09 | 23-173            
  ...dSelector.tsx |   35.89 |      100 |       0 |   35.89 | 31-57             
  ...nSelector.tsx |   41.17 |      100 |       0 |   41.17 | 31-52             
  ...EntryStep.tsx |   12.76 |      100 |       0 |   12.76 | 34-78             
  ToolSelector.tsx |    3.74 |      100 |       0 |    3.74 | 30-249            
 ...bagents/manage |    9.16 |      100 |       0 |    9.16 |                   
  ...ctionStep.tsx |   13.72 |      100 |       0 |   13.72 | 20-74             
  ...eleteStep.tsx |   15.78 |      100 |       0 |   15.78 | 19-57             
  ...tEditStep.tsx |   28.75 |      100 |       0 |   28.75 | 44-111            
  ...ctionStep.tsx |    3.23 |      100 |       0 |    3.23 | 27-329            
  ...iewerStep.tsx |   13.33 |      100 |       0 |   13.33 | 17-65             
  ...gerDialog.tsx |    6.17 |      100 |       0 |    6.17 | 32-332            
 ...agents/runtime |    8.08 |      100 |       0 |    8.08 |                   
  ...onDisplay.tsx |    8.08 |      100 |       0 |    8.08 | ...73-503,512-550 
 src/ui/contexts   |   83.44 |    83.45 |     100 |   83.44 |                   
  ...ssContext.tsx |   81.79 |    85.32 |     100 |   81.79 | ...76-478,481-483 
  ...owContext.tsx |   91.07 |    81.81 |     100 |   91.07 | 47-48,60-62       
  ...onContext.tsx |    94.2 |      100 |     100 |    94.2 | 103-106           
  ...gsContext.tsx |   83.33 |       50 |     100 |   83.33 | 17-18             
  ...ngContext.tsx |   71.42 |       50 |     100 |   71.42 | 17-20             
  ...deContext.tsx |   76.08 |       50 |     100 |   76.08 | 47-48,52-59,77-78 
 src/ui/editors    |   93.18 |    85.71 |   66.66 |   93.18 |                   
  ...ngsManager.ts |   93.18 |    85.71 |   66.66 |   93.18 | 48,62-63          
 src/ui/hooks      |   78.78 |    80.98 |   85.86 |   78.78 |                   
  ...dProcessor.ts |   78.76 |    80.19 |     100 |   78.76 | ...47-450,461-479 
  ...dProcessor.ts |   96.34 |    76.31 |     100 |   96.34 | ...12-213,218-219 
  ...dProcessor.ts |   72.35 |    69.79 |    62.5 |   72.35 | ...38-507,563-591 
  ...agerDialog.ts |   88.23 |      100 |     100 |   88.23 | 20,24             
  ...Completion.ts |   92.77 |    89.47 |     100 |   92.77 | ...85-186,219-222 
  ...uthCommand.ts |    8.82 |      100 |       0 |    8.82 | 17-91             
  ...tIndicator.ts |     100 |    88.88 |     100 |     100 | 43                
  ...ketedPaste.ts |     100 |      100 |     100 |     100 |                   
  ...ompletion.tsx |    95.3 |    80.48 |     100 |    95.3 | ...24-225,227-228 
  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 |    42.1 |    22.22 |     100 |    42.1 | ...,94-96,100-102 
  ...orSettings.ts |     100 |      100 |     100 |     100 |                   
  useFocus.ts      |     100 |      100 |     100 |     100 |                   
  ...olderTrust.ts |     100 |    85.71 |     100 |     100 | 25-27             
  ...miniStream.ts |   72.96 |    72.95 |     100 |   72.96 | ...7-938,971-1073 
  ...BranchName.ts |   91.66 |    84.61 |     100 |   91.66 | 57-63             
  ...oryManager.ts |   98.41 |    93.33 |     100 |   98.41 | 43                
  ...putHistory.ts |    92.5 |    85.71 |     100 |    92.5 | 62-63,71,93-95    
  useKeypress.ts   |     100 |      100 |     100 |     100 |                   
  ...rdProtocol.ts |     100 |      100 |     100 |     100 |                   
  ...unchEditor.ts |   11.53 |      100 |       0 |   11.53 | 16-30,37-82       
  ...gIndicator.ts |     100 |      100 |     100 |     100 |                   
  useLogger.ts     |      25 |      100 |       0 |      25 | 15-33             
  ...ssageQueue.ts |     100 |      100 |     100 |     100 |                   
  ...raseCycler.ts |   95.45 |       75 |     100 |   95.45 | ...64-165,183-185 
  ...cySettings.ts |   85.08 |       75 |     100 |   85.08 | ...15-116,127-138 
  ...Completion.ts |   40.64 |    58.33 |     100 |   40.64 | ...23-224,226-227 
  ...nfirmation.ts |   55.55 |      100 |     100 |   55.55 | 14,18-31          
  useQwenAuth.ts   |     100 |      100 |     100 |     100 |                   
  ...lScheduler.ts |   78.82 |    94.44 |     100 |   78.82 | ...00-203,289-299 
  ...oryCommand.ts |       0 |        0 |       0 |       0 | 1-7               
  ...ompletion.tsx |     100 |     92.3 |     100 |     100 | 77                
  ...ngsCommand.ts |    87.5 |      100 |     100 |    87.5 | 13,17             
  ...ellHistory.ts |   91.66 |       80 |     100 |   91.66 | ...69,117-118,128 
  ...oryCommand.ts |       0 |        0 |       0 |       0 | 1-76              
  ...Completion.ts |      94 |    92.53 |     100 |      94 | 58-61,69-72,93    
  ...tateAndRef.ts |   13.63 |      100 |       0 |   13.63 | 16-36             
  ...eateDialog.ts |   88.23 |      100 |     100 |   88.23 | 14,18             
  ...rminalSize.ts |   18.18 |      100 |       0 |   18.18 | 12-32             
  ...emeCommand.ts |   46.98 |       75 |     100 |   46.98 | ...4,70-71,77-100 
  useTimer.ts      |   88.09 |    85.71 |     100 |   88.09 | 44-45,51-53       
  ...AutoSwitch.ts |   91.84 |    88.57 |     100 |   91.84 | ...07,173,233-241 
  ...elcomeBack.ts |   69.44 |    44.44 |     100 |   69.44 | ...85,89-90,96-98 
  ...eMigration.ts |    53.7 |       50 |   33.33 |    53.7 | ...35,42-57,60-61 
  vim.ts           |   83.57 |    79.67 |     100 |   83.57 | ...38,742-750,759 
 src/ui/models     |   62.96 |      100 |      50 |   62.96 |                   
  ...ableModels.ts |   62.96 |      100 |      50 |   62.96 | 25-31,38-40       
 src/ui/privacy    |   14.52 |      100 |       0 |   14.52 |                   
  ...acyNotice.tsx |   10.38 |      100 |       0 |   10.38 | 21-117            
  ...acyNotice.tsx |   14.28 |      100 |       0 |   14.28 | 16-59             
  ...acyNotice.tsx |   12.19 |      100 |       0 |   12.19 | 16-62             
  ...acyNotice.tsx |   30.76 |      100 |       0 |   30.76 | 19-36,39-41       
 src/ui/themes     |   99.01 |    67.71 |     100 |   99.01 |                   
  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 |   87.23 |    77.77 |     100 |   87.23 | ...00-306,311-312 
  theme.ts         |     100 |    42.55 |     100 |     100 | 255-270           
  xcode.ts         |     100 |      100 |     100 |     100 |                   
 src/ui/utils      |   65.97 |    79.93 |   82.25 |   65.97 |                   
  ...Colorizer.tsx |   79.31 |    84.37 |     100 |   79.31 | ...51-154,190-216 
  ...olePatcher.ts |      96 |       75 |     100 |      96 | 59-60             
  ...nRenderer.tsx |   52.85 |    27.27 |     100 |   52.85 | ...26-132,142-144 
  ...wnDisplay.tsx |   85.84 |    87.69 |     100 |   85.84 | ...72-280,313-336 
  ...eRenderer.tsx |   78.09 |    76.19 |     100 |   78.09 | 55-83             
  ...boardUtils.ts |   32.25 |     37.5 |     100 |   32.25 | ...55-114,129-145 
  commandUtils.ts  |   92.79 |    88.63 |     100 |   92.79 | ...12,116,118-119 
  computeStats.ts  |     100 |      100 |     100 |     100 |                   
  displayUtils.ts  |     100 |      100 |     100 |     100 |                   
  formatters.ts    |   90.47 |    95.83 |     100 |   90.47 | 57-60             
  isNarrowWidth.ts |     100 |      100 |     100 |     100 |                   
  ...olDetector.ts |   13.88 |      100 |      50 |   13.88 | 16-97             
  ...nUtilities.ts |   69.84 |    85.71 |     100 |   69.84 | 75-91,100-101     
  ...mConstants.ts |     100 |      100 |     100 |     100 |                   
  terminalSetup.ts |       4 |      100 |       0 |       4 | 40-342            
  textUtils.ts     |   94.11 |    82.35 |     100 |   94.11 | 17-18             
  updateCheck.ts   |     100 |    80.95 |     100 |     100 | 27-39             
 src/utils         |   46.87 |    90.82 |   83.87 |   46.87 |                   
  checks.ts        |   33.33 |      100 |       0 |   33.33 | 23-28             
  cleanup.ts       |   65.38 |      100 |   66.66 |   65.38 | 28-37             
  ...ScopeUtils.ts |   79.06 |    66.66 |     100 |   79.06 | 55-64             
  errors.ts        |   28.57 |      100 |       0 |   28.57 | 8-12              
  events.ts        |     100 |      100 |     100 |     100 |                   
  gitUtils.ts      |   94.66 |    82.35 |     100 |   94.66 | 75-78             
  ...AutoUpdate.ts |    81.6 |    95.83 |   66.66 |    81.6 | 89-103,129-136    
  ...lationInfo.ts |     100 |      100 |     100 |     100 |                   
  package.ts       |   88.88 |       80 |     100 |   88.88 | 33-34             
  readStdin.ts     |   79.24 |       90 |      80 |   79.24 | 31-38,50-52       
  resolvePath.ts   |   66.66 |       25 |     100 |   66.66 | 12-13,16,18-19    
  sandbox.ts       |       0 |        0 |       0 |       0 | 1-962             
  settingsUtils.ts |   86.94 |    92.13 |   96.66 |   86.94 | ...78-405,444-445 
  spawnWrapper.ts  |     100 |      100 |     100 |     100 |                   
  ...upWarnings.ts |   23.07 |      100 |       0 |   23.07 | 14-40             
  ...entEmitter.ts |     100 |      100 |     100 |     100 |                   
  ...upWarnings.ts |     100 |      100 |     100 |     100 |                   
  version.ts       |     100 |       50 |     100 |     100 | 11                
 ...ed-integration |   24.27 |        0 |       0 |   24.27 |                   
  acp.ts           |    3.29 |        0 |       0 |    3.29 | ...53-289,292-339 
  ...temService.ts |   19.35 |      100 |       0 |   19.35 | 15-19,22-34,37-46 
  schema.ts        |     100 |      100 |     100 |     100 |                   
  ...ntegration.ts |    2.97 |        0 |       0 |    2.97 | ...30-907,922-981 
-------------------|---------|----------|---------|---------|-------------------
Core Package - Full Text Report
-------------------|---------|----------|---------|---------|-------------------
File               | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-------------------|---------|----------|---------|---------|-------------------
All files          |   76.07 |    83.98 |   78.49 |   76.07 |                   
 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/code_assist   |   75.15 |    78.78 |      80 |   75.15 |                   
  codeAssist.ts    |   18.51 |      100 |       0 |   18.51 | 15-37             
  converter.ts     |   94.93 |    93.02 |     100 |   94.93 | ...83,197,214-215 
  oauth2.ts        |   78.19 |    66.66 |   91.66 |   78.19 | ...39-445,450-451 
  server.ts        |   50.29 |       80 |   53.84 |   50.29 | ...75-216,219-222 
  setup.ts         |   86.66 |    78.94 |     100 |   86.66 | ...,92-94,118-124 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/config        |   77.22 |    88.97 |      50 |   77.22 |                   
  config.ts        |   75.93 |    87.17 |   44.76 |   75.93 | ...1046,1062-1063 
  models.ts        |     100 |      100 |     100 |     100 |                   
  storage.ts       |   85.88 |      100 |   73.91 |   85.88 | ...08-109,112-113 
 src/core          |   78.74 |    83.69 |   75.37 |   78.74 |                   
  client.ts        |   80.46 |    81.11 |   75.86 |   80.46 | ...1075,1082-1131 
  ...tGenerator.ts |   70.62 |    72.41 |     100 |   70.62 | ...51,185,206-245 
  ...lScheduler.ts |   84.41 |    84.41 |      92 |   84.41 | ...,967,1047-1051 
  geminiChat.ts    |   73.45 |     87.5 |   58.62 |   73.45 | ...22-823,826-827 
  geminiRequest.ts |     100 |      100 |     100 |     100 |                   
  logger.ts        |   83.42 |    84.07 |     100 |   83.42 | ...63-367,407-418 
  ...tGenerator.ts |    16.1 |      100 |      20 |    16.1 | ...52-184,187-188 
  ...olExecutor.ts |     100 |      100 |      50 |     100 |                   
  prompts.ts       |   86.16 |    82.27 |   77.77 |   86.16 | ...25-826,829-830 
  tokenLimits.ts   |     100 |    85.71 |     100 |     100 | 41-42             
  turn.ts          |   87.01 |     87.8 |     100 |   87.01 | ...07-308,321-322 
 ...ntentGenerator |   56.54 |    79.24 |   81.81 |   56.54 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  converter.ts     |   21.41 |    25.49 |   54.54 |   21.41 | ...8-971,990-1027 
  errorHandler.ts  |     100 |      100 |     100 |     100 |                   
  index.ts         |       0 |        0 |       0 |       0 | 1-92              
  ...tGenerator.ts |   49.58 |     87.5 |    87.5 |   49.58 | 86-98,102-155     
  pipeline.ts      |   97.16 |    92.06 |     100 |   97.16 | ...27-228,397-401 
  ...CallParser.ts |   90.14 |    86.66 |     100 |   90.14 | ...15-319,349-350 
  ...tryService.ts |   98.75 |    95.23 |     100 |   98.75 | 153-154           
 ...rator/provider |   97.16 |    88.88 |     100 |   97.16 |                   
  dashscope.ts     |   98.19 |    91.93 |     100 |   98.19 | 190-191,261-262   
  deepseek.ts      |   89.83 |    70.58 |     100 |   89.83 | 34-35,39-40,53-54 
  default.ts       |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  openrouter.ts    |     100 |      100 |     100 |     100 |                   
  types.ts         |       0 |        0 |       0 |       0 |                   
 src/generated     |     100 |      100 |     100 |     100 |                   
  git-commit.ts    |     100 |      100 |     100 |     100 |                   
 src/ide           |   75.99 |    84.31 |   79.16 |   75.99 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  detect-ide.ts    |   96.96 |    97.29 |     100 |   96.96 | 63-65             
  ide-client.ts    |   62.04 |    76.36 |   64.28 |   62.04 | ...00-508,533-541 
  ide-installer.ts |   91.45 |       84 |     100 |   91.45 | ...95,130-134,147 
  ideContext.ts    |   83.65 |      100 |     100 |   83.65 | 74-90             
  process-utils.ts |   88.03 |    78.57 |     100 |   88.03 | ...18,149,159-160 
 src/mcp           |   76.51 |    68.55 |   81.57 |   76.51 |                   
  ...h-provider.ts |   86.36 |      100 |   33.33 |   86.36 | ...85,89,93,97-98 
  ...h-provider.ts |   74.19 |    51.64 |     100 |   74.19 | ...05-809,816-818 
  ...en-storage.ts |     100 |      100 |     100 |     100 |                   
  oauth-utils.ts   |   67.78 |    78.57 |    90.9 |   67.78 | ...61-282,307-330 
 .../token-storage |   96.87 |    93.33 |   83.33 |   96.87 |                   
  ...en-storage.ts |     100 |      100 |     100 |     100 |                   
  types.ts         |       0 |        0 |       0 |       0 | 1                 
 src/mocks         |     100 |      100 |     100 |     100 |                   
  msw.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          |   86.68 |     80.2 |   97.01 |   86.68 |                   
  ...tGenerator.ts |   98.63 |    98.18 |     100 |   98.63 | 106-107           
  qwenOAuth2.ts    |   85.85 |    76.06 |    92.3 |   85.85 | ...67,797-808,847 
  ...kenManager.ts |   84.24 |    76.03 |     100 |   84.24 | ...52-757,778-783 
 src/services      |   88.15 |    85.29 |   91.66 |   88.15 |                   
  ...ingService.ts |   77.01 |     61.9 |     100 |   77.01 | ...06-408,435-437 
  ...eryService.ts |   93.33 |    88.46 |   85.71 |   93.33 | 32,40,85,110-111  
  ...temService.ts |     100 |      100 |     100 |     100 |                   
  gitService.ts    |      70 |    93.33 |      60 |      70 | ...14-124,127-131 
  ...ionService.ts |   97.53 |     92.1 |     100 |   97.53 | ...44-345,351-352 
  ...ionService.ts |   92.21 |    88.15 |     100 |   92.21 | ...69-370,446-460 
 src/subagents     |   85.89 |    80.32 |   84.21 |   85.89 |                   
  ...tin-agents.ts |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...ent-events.ts |   83.33 |      100 |      50 |   83.33 | 124-125,128-129   
  ...gent-hooks.ts |       0 |        0 |       0 |       0 | 1                 
  ...nt-manager.ts |   85.03 |    81.06 |   95.45 |   85.03 | ...24-725,794-795 
  ...statistics.ts |   97.97 |    82.92 |     100 |   97.97 | 111,131,168,201   
  subagent.ts      |   78.91 |    63.55 |      68 |   78.91 | ...73-874,880-881 
  types.ts         |     100 |      100 |     100 |     100 |                   
  validation.ts    |    92.4 |    96.59 |     100 |    92.4 | 54-59,63-68,72-77 
 src/telemetry     |   65.44 |    85.86 |   71.13 |   65.44 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  ...-exporters.ts |   26.47 |        0 |       0 |   26.47 | ...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       |   53.15 |    75.86 |   52.38 |   53.15 | ...46-565,574-593 
  metrics.ts       |   62.09 |    93.54 |   46.15 |   62.09 | ...85-287,293-311 
  sdk.ts           |   78.08 |    47.05 |     100 |   78.08 | ...82,186-187,189 
  ...etry-utils.ts |     100 |      100 |     100 |     100 |                   
  ...l-decision.ts |     100 |      100 |     100 |     100 |                   
  types.ts         |   89.81 |    93.05 |    92.1 |   89.81 | ...69-378,398-409 
  uiTelemetry.ts   |    99.3 |    95.83 |     100 |    99.3 | 130               
 ...learcut-logger |   41.02 |       66 |   41.17 |   41.02 |                   
  ...cut-logger.ts |   34.35 |     65.3 |   41.17 |   34.35 | ...52-953,956-959 
  ...tadata-key.ts |     100 |      100 |     100 |     100 |                   
 ...ry/qwen-logger |   68.17 |    83.07 |      70 |   68.17 |                   
  event-types.ts   |       0 |        0 |       0 |       0 |                   
  qwen-logger.ts   |   68.17 |    82.81 |   69.23 |   68.17 | ...15-720,762-763 
 src/test-utils    |   96.87 |       96 |   81.81 |   96.87 |                   
  config.ts        |     100 |      100 |     100 |     100 |                   
  ...aceContext.ts |     100 |      100 |     100 |     100 |                   
  tools.ts         |   95.86 |    95.23 |      80 |   95.86 | 60-61,129,133-134 
 src/tools         |   74.12 |    83.27 |   82.97 |   74.12 |                   
  diffOptions.ts   |     100 |      100 |     100 |     100 |                   
  edit.ts          |      81 |    86.81 |   86.66 |      81 | ...54-455,545-588 
  exitPlanMode.ts  |   93.66 |    86.95 |     100 |   93.66 | 88-90,102-107     
  glob.ts          |   91.63 |    82.69 |    87.5 |   91.63 | ...27-228,319-320 
  grep.ts          |   62.07 |       84 |      80 |   62.07 | ...57-661,671-672 
  ls.ts            |   97.37 |    91.66 |     100 |   97.37 | 140-145           
  ...nt-manager.ts |   79.74 |    83.33 |      80 |   79.74 | ...98-105,113-114 
  mcp-client.ts    |   31.05 |    78.26 |      50 |   31.05 | ...1356,1360-1363 
  mcp-tool.ts      |    94.9 |    92.85 |   94.11 |    94.9 | 199-209,271-272   
  memoryTool.ts    |   75.87 |    84.37 |   90.47 |   75.87 | ...41-352,490-574 
  ...iable-tool.ts |     100 |    84.61 |     100 |     100 | 99,106            
  read-file.ts     |   98.67 |    96.96 |    87.5 |   98.67 | 64-65             
  ...many-files.ts |   80.17 |    78.37 |   85.71 |   80.17 | ...90-491,498-499 
  ripGrep.ts       |   89.72 |    86.17 |   92.85 |   89.72 | ...42-443,464-465 
  shell.ts         |   88.34 |    78.88 |     100 |   88.34 | ...73-474,485-486 
  task.ts          |    66.4 |    86.53 |     100 |    66.4 | ...00-501,522-529 
  todoWrite.ts     |   78.21 |    79.48 |   71.42 |   78.21 | ...70-395,416-417 
  tool-error.ts    |     100 |      100 |     100 |     100 |                   
  tool-names.ts    |     100 |      100 |     100 |     100 |                   
  tool-registry.ts |   69.11 |    65.38 |   70.37 |   69.11 | ...18-423,431-439 
  tools.ts         |   89.32 |    89.58 |    87.5 |   89.32 | ...69-370,386-392 
  web-fetch.ts     |   84.97 |    63.63 |      90 |   84.97 | ...30-231,233-234 
  web-search.ts    |   79.43 |    82.14 |    87.5 |   79.43 | ...,92-98,117-121 
  write-file.ts    |   82.19 |    78.68 |      75 |   82.19 | ...31-434,446-480 
 src/utils         |   84.31 |     89.4 |   85.57 |   84.31 |                   
  LruCache.ts      |       0 |        0 |       0 |       0 | 1-41              
  bfsFileSearch.ts |   89.02 |    90.47 |     100 |   89.02 | 86-94             
  browser.ts       |    7.69 |      100 |       0 |    7.69 | 17-56             
  editor.ts        |   97.63 |    94.54 |     100 |   97.63 | 154,224,227-228   
  ...entContext.ts |     100 |      100 |     100 |     100 |                   
  errorParsing.ts  |     100 |     92.3 |     100 |     100 | 76,80,86          
  ...rReporting.ts |   83.72 |    84.61 |     100 |   83.72 | 82-86,107-115     
  errors.ts        |   45.94 |       60 |      30 |   45.94 | ...0,76-92,96-102 
  fetch.ts         |   34.04 |      100 |       0 |   34.04 | 22-27,31-57       
  fileUtils.ts     |   94.65 |       90 |     100 |   94.65 | ...08-113,322-328 
  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 |     100 |    89.47 |     100 |     100 | 27,47             
  gitUtils.ts      |   51.21 |     90.9 |      50 |   51.21 | 40-41,50-73       
  ...rePatterns.ts |     100 |      100 |     100 |     100 |                   
  ...ionManager.ts |     100 |    91.66 |     100 |     100 | 23                
  ...-detection.ts |     100 |      100 |     100 |     100 |                   
  ...yDiscovery.ts |    82.4 |    72.41 |   77.77 |    82.4 | ...97-398,401-402 
  ...tProcessor.ts |   91.51 |    88.46 |   84.61 |   91.51 | ...02-308,385-386 
  ...Inspectors.ts |   61.53 |      100 |      50 |   61.53 | 18-23             
  ...kerChecker.ts |   83.33 |    83.33 |     100 |   83.33 | 64-65,75-80,88-94 
  openaiLogger.ts  |    19.1 |      100 |   33.33 |    19.1 | ...96-116,124-131 
  partUtils.ts     |     100 |      100 |     100 |     100 |                   
  pathReader.ts    |     100 |      100 |     100 |     100 |                   
  paths.ts         |   88.11 |    91.17 |     100 |   88.11 | ...,89-90,101-102 
  ...ectSummary.ts |    3.75 |      100 |       0 |    3.75 | 27-119            
  ...rDetection.ts |   76.85 |    84.31 |     100 |   76.85 | ...25-126,166-167 
  retry.ts         |   63.98 |    76.19 |     100 |   63.98 | ...74-294,339-354 
  safeJsonParse.ts |      72 |    83.33 |     100 |      72 | 37-43             
  ...nStringify.ts |     100 |      100 |     100 |     100 |                   
  ...aValidator.ts |   89.18 |    53.33 |     100 |   89.18 | 27-28,30-31       
  ...r-launcher.ts |   76.52 |     87.5 |   66.66 |   76.52 | ...33,135,153-191 
  session.ts       |     100 |      100 |     100 |     100 |                   
  shell-utils.ts   |   98.63 |    97.56 |     100 |   98.63 | 177-178,195-196   
  ...nlyChecker.ts |   81.63 |       80 |      80 |   81.63 | ...58-259,263-264 
  ...tGenerator.ts |     100 |      100 |     100 |     100 |                   
  summarizer.ts    |     100 |    88.88 |     100 |     100 | 91                
  ...emEncoding.ts |      98 |    94.11 |     100 |      98 | 106-107           
  testUtils.ts     |   84.44 |    72.72 |   83.33 |   84.44 | 27-28,34-35,70-72 
  textUtils.ts     |    12.5 |      100 |       0 |    12.5 | 15-34             
  tool-utils.ts    |   91.48 |    89.47 |     100 |   91.48 | 53-54,57-58       
  ...untManager.ts |   97.14 |    94.73 |     100 |   97.14 | 36-38             
  ...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 |   59.81 |    76.37 |   75.67 |   59.81 |                   
  ...eTokenizer.ts |   41.47 |    76.47 |   69.23 |   41.47 | ...67-440,450-504 
  index.ts         |   66.66 |      100 |      50 |   66.66 | 35-40             
  ...tTokenizer.ts |   71.18 |    70.96 |   91.66 |   71.18 | ...26-327,338-339 
  ...ageFormats.ts |      76 |      100 |   33.33 |      76 | 45-48,55-56       
  textTokenizer.ts |     100 |    88.88 |     100 |     100 | 71,76,81          
  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.

@github-actions github-actions bot added type/bug Something isn't working as expected and removed bug labels Oct 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status/need-information More information is needed to resolve this issue. type/bug Something isn't working as expected

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant