Skip to content

Conversation

@tanzhenxin
Copy link
Collaborator

Summary

This PR refactors the ripgrep search tool with improved configuration flexibility, simplified parameters, and better resource management. The changes introduce hard limits on search results, respect for ignore files, and provide users with more control over ripgrep usage.

🎯 Key Changes

1. Smart Output Truncation with Hard Limits

  • New Constant: MAX_LLM_CONTENT_LENGTH = 20_000 characters
  • Dual Truncation Strategy:
    • Model-controlled limit: Optional limit parameter for maximum matching lines
    • Safety net: Automatic character-based truncation at 20,000 characters
    • Clear feedback: Truncation notices show exactly how many lines were omitted

Why this matters: Prevents overwhelming the LLM context with massive search results, improving response quality and reducing token costs.

Example output:

Found 500 matches for pattern "TODO" in the workspace directory:
---
[first 100 lines of matches]
[400 lines truncated] ...

2. Respect for Ignore Files (.gitignore & .qwenignore)

  • Integrated file filtering: Now respects context.fileFiltering settings
    • .gitignore support (configurable via context.fileFiltering.respectGitIgnore)
    • .qwenignore support (configurable via context.fileFiltering.respectQwenIgnore)
  • Smart ignore handling: Automatically detects and applies .qwenignore when present
  • Configurable behavior: Users can disable ignore file respect if needed

Why this matters:

  • Excludes node_modules, build artifacts, and other irrelevant files from searches
  • Reduces noise and improves search relevance
  • Aligns with user expectations from git workflows

3. Tool Rename for Clarity

  • Renamed tool from search_file_content to grep_search for better semantic clarity
  • Rationale: The new name better reflects the tool's functionality and aligns with common CLI conventions

4. Flexible Ripgrep Configuration

  • New Setting: tools.useBuiltinRipgrep (default: true)
    • When true: Uses bundled ripgrep binary (cross-platform)
    • When false: Falls back to system rg command
    • Only effective when tools.useRipgrep is true

🔄 Breaking Changes

⚠️ Tool Name Change: The tool name changed from search_file_content to grep_search

Impact:

  • Existing tool allowlists/exclusions referencing search_file_content should be updated to grep_search
  • LLM prompts and tool descriptions have been updated accordingly
  • No user action required for normal usage

Migration:
If you have tools.allowed or tools.exclude arrays in your settings referencing the old name, update them:

// Before
{
  "tools": {
    "allowed": ["search_file_content"]
  }
}

// After
{
  "tools": {
    "allowed": ["grep_search"]
  }
}

📝 Documentation

  • Updated docs/cli/configuration.md with new configuration options
  • Added descriptions for both useRipgrep and useBuiltinRipgrep settings
  • Enhanced in-code documentation and comments

Linked issues / bugs

@github-actions
Copy link
Contributor

📋 Review Summary

This PR refactors and enhances the ripgrep search tool with improved configuration flexibility, simplified parameters, and better resource management. The changes introduce hard limits on search results, respect for ignore files, and provide users with more control over ripgrep usage. Overall, this is a well-executed enhancement that improves the search functionality while maintaining backward compatibility where possible.

🔍 General Feedback

  • The PR introduces several valuable enhancements to the ripgrep tool, including output truncation, ignore file support, and configurable ripgrep usage.
  • The renaming of the tool from search_file_content to grep_search improves semantic clarity and aligns with common CLI conventions.
  • The implementation of MAX_LLM_CONTENT_LENGTH provides a good safety net to prevent overwhelming the LLM context.
  • The changes to respect .gitignore and .qwenignore files will significantly improve search relevance by excluding irrelevant files.
  • The addition of useBuiltinRipgrep setting gives users more control over which ripgrep binary to use.
  • Test coverage has been appropriately updated to reflect the new functionality.

🎯 Specific Feedback

🟡 High

  • File: packages/core/src/tools/ripGrep.ts:194 - The removal of multi-directory workspace search functionality may impact users who were relying on this feature. While the PR description doesn't explicitly mention this as a breaking change, it's a significant behavioral change that should be documented clearly. Consider whether this functionality should be restored or if the documentation should be updated to reflect this change.

🟢 Medium

  • File: packages/core/src/tools/ripGrep.ts:338 - The tool description mentions "Total results limited to 20,000 matches like VSCode" but the implementation now uses a character-based limit of 20,000 characters instead. This inconsistency should be addressed in the documentation.

🔵 Low

  • File: packages/core/src/tools/ripGrep.test.ts:157 - Consider adding tests for edge cases in the regex validation, such as patterns with special characters that might be valid but could cause unexpected behavior.
  • File: packages/core/src/utils/ripgrepUtils.ts:105 - The fallback mechanism for system ripgrep could benefit from additional error handling to provide more informative error messages when system ripgrep is not available.

✅ Highlights

  • The implementation of smart output truncation with both model-controlled limits and character-based safety nets is well-designed and provides good user feedback about truncated content.
  • The respect for ignore files (.gitignore & .qwenignore) with configurable behavior is a significant improvement that aligns with user expectations.
  • The introduction of the useBuiltinRipgrep configuration option provides valuable flexibility for users who prefer to use their system's ripgrep installation.
  • The updated tool descriptions and documentation are clear and helpful for users understanding how to use the tool effectively.
  • The test coverage has been appropriately expanded to cover the new functionality, including tests for ignore file handling and truncation.

@github-actions
Copy link
Contributor

Code Coverage Summary

Package Lines Statements Functions Branches
CLI 72.34% 72.34% 75.13% 81.41%
Core 77.88% 77.88% 80.11% 84.58%
CLI Package - Full Text Report
-------------------|---------|----------|---------|---------|-------------------
File               | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-------------------|---------|----------|---------|---------|-------------------
All files          |   72.34 |    81.41 |   75.13 |   72.34 |                   
 src               |   75.73 |       68 |   71.42 |   75.73 |                   
  gemini.tsx       |   61.97 |    47.61 |      75 |   61.97 | ...34,445-454,462 
  ...ractiveCli.ts |   92.36 |    83.87 |   33.33 |   92.36 | ...93,119-120,150 
  ...liCommands.ts |   97.14 |       75 |     100 |   97.14 | 38-39             
  ...ActiveAuth.ts |   96.55 |    84.21 |     100 |   96.55 | 19-20             
 src/commands      |   70.45 |      100 |      25 |   70.45 |                   
  extensions.tsx   |   55.55 |      100 |       0 |   55.55 | 21-31,35          
  mcp.ts           |   94.11 |      100 |      50 |   94.11 | 26                
 ...nds/extensions |   44.24 |    97.14 |   34.48 |   44.24 |                   
  disable.ts       |   20.68 |      100 |       0 |   20.68 | 18-31,37-63,65-69 
  enable.ts        |   19.04 |      100 |       0 |   19.04 | 18-36,42-68,70-74 
  install.ts       |   82.05 |    91.66 |   66.66 |   82.05 | 40-43,85-88,91-96 
  link.ts          |   26.31 |      100 |       0 |   26.31 | 20-37,44-49,51-54 
  list.ts          |   32.14 |      100 |       0 |   32.14 | 11-27,34-35       
  new.ts           |     100 |      100 |     100 |     100 |                   
  uninstall.ts     |   45.71 |      100 |   33.33 |   45.71 | 15-23,35-40,43-46 
  update.ts        |   12.09 |      100 |       0 |   12.09 | ...29-144,146-150 
 ...les/mcp-server |       0 |        0 |       0 |       0 |                   
  example.ts       |       0 |        0 |       0 |       0 | 1-60              
 src/commands/mcp  |   97.16 |     86.2 |    90.9 |   97.16 |                   
  add.ts           |     100 |    96.15 |     100 |     100 | 210               
  list.ts          |   90.82 |    80.76 |      80 |   90.82 | ...10-112,137-138 
  remove.ts        |     100 |    66.66 |     100 |     100 | 19-23             
 src/config        |   93.38 |    84.67 |   88.63 |   93.38 |                   
  auth.ts          |     100 |       90 |     100 |     100 | 16                
  config.ts        |   97.39 |    87.79 |    87.5 |   97.39 | ...07,632,817-821 
  extension.ts     |   83.93 |     88.4 |   84.37 |   83.93 | ...75-776,779-780 
  keyBindings.ts   |     100 |      100 |     100 |     100 |                   
  sandboxConfig.ts |   54.16 |    23.07 |   66.66 |   54.16 | ...44,54-68,73-89 
  settings.ts      |   89.32 |    77.77 |   91.66 |   89.32 | ...76-677,778-781 
  ...ingsSchema.ts |     100 |      100 |     100 |     100 |                   
  ...tedFolders.ts |   96.87 |    93.87 |     100 |   96.87 | ...87-188,203-204 
 ...fig/extensions |   70.34 |    86.66 |   94.44 |   70.34 |                   
  ...Enablement.ts |   95.45 |    95.52 |     100 |   95.45 | ...89-191,235-237 
  github.ts        |   57.38 |    83.07 |      90 |   57.38 | ...81-386,392-418 
  update.ts        |   60.54 |    53.84 |   66.66 |   60.54 | ...21-147,162-170 
  ...ableSchema.ts |     100 |      100 |     100 |     100 |                   
  variables.ts     |   95.34 |       90 |     100 |   95.34 | 30-31             
 src/core          |   75.92 |     37.5 |     100 |   75.92 |                   
  auth.ts          |   56.25 |       50 |     100 |   56.25 | 27-36             
  initializer.ts   |   85.71 |    33.33 |     100 |   85.71 | 46-49             
  theme.ts         |      80 |    33.33 |     100 |      80 | 18-19             
 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      |   85.58 |    86.88 |   94.11 |   85.58 |                   
  ...mandLoader.ts |     100 |      100 |     100 |     100 |                   
  ...andService.ts |     100 |      100 |     100 |     100 |                   
  ...mandLoader.ts |   89.44 |    91.11 |     100 |   89.44 | ...85-190,273-280 
  ...omptLoader.ts |   74.88 |       80 |   83.33 |   74.88 | ...00-201,267-268 
  types.ts         |     100 |      100 |     100 |     100 |                   
 ...mpt-processors |   97.12 |     93.5 |     100 |   97.12 |                   
  ...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.14 |    94.87 |     100 |   97.14 | 94-97             
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/test-utils    |   94.11 |     87.5 |   83.33 |   94.11 |                   
  ...eExtension.ts |     100 |      100 |     100 |     100 |                   
  ...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            |    74.1 |    72.67 |   61.11 |    74.1 |                   
  App.tsx          |      80 |    85.71 |     100 |      80 | 20-29             
  AppContainer.tsx |   75.77 |    63.15 |   44.44 |   75.77 | ...1016,1031-1092 
  ...tionNudge.tsx |       8 |      100 |       0 |       8 | 25-100            
  colors.ts        |   67.34 |      100 |   46.66 |   67.34 | ...46,48-49,54-55 
  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       |   39.74 |     87.5 |   33.33 |   39.74 |                   
  AuthDialog.tsx   |   74.32 |     87.5 |      50 |   74.32 | ...19-120,142-148 
  ...nProgress.tsx |   16.66 |      100 |       0 |   16.66 | 19-63             
  useAuth.ts       |    5.73 |      100 |       0 |    5.73 | 18-29,32-160      
 src/ui/commands   |   74.58 |    80.92 |   80.23 |   74.58 |                   
  aboutCommand.ts  |   95.65 |    58.33 |     100 |   95.65 | 52-53             
  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    |   82.02 |    57.14 |     100 |   82.02 | ...,89-98,104-105 
  chatCommand.ts   |   93.78 |    85.52 |     100 |   93.78 | ...16,301,333-338 
  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.27 |    73.07 |     100 |   69.27 | ...25-126,161-169 
  docsCommand.ts   |     100 |      100 |     100 |     100 |                   
  editorCommand.ts |     100 |      100 |     100 |     100 |                   
  ...onsCommand.ts |   94.32 |    96.55 |     100 |   94.32 | 62-65,91-94       
  helpCommand.ts   |     100 |      100 |     100 |     100 |                   
  ideCommand.ts    |   62.25 |       60 |   54.54 |   62.25 | ...52-266,274-288 
  initCommand.ts   |   83.54 |       70 |     100 |   83.54 | 64,78-83,85-90    
  mcpCommand.ts    |   42.16 |    80.95 |      40 |   42.16 | ...60-262,282-322 
  memoryCommand.ts |   61.02 |     86.2 |   42.85 |   61.02 | ...12,219-240,264 
  modelCommand.ts  |     100 |      100 |     100 |     100 |                   
  ...onsCommand.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.27 |      100 |       0 |    8.27 | 23-189            
  ...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 |   71.38 |    79.49 |    70.4 |   71.38 |                   
  AboutBox.tsx     |     100 |       50 |     100 |     100 | 104               
  AnsiOutput.tsx   |     100 |      100 |     100 |     100 |                   
  AppHeader.tsx    |    42.1 |      100 |       0 |    42.1 | 19-33             
  AsciiArt.ts      |     100 |      100 |     100 |     100 |                   
  ...Indicator.tsx |   13.15 |      100 |       0 |   13.15 | 17-52             
  Composer.tsx     |   98.46 |    68.96 |     100 |   98.46 | 76,85             
  ...itDisplay.tsx |   62.16 |      100 |      50 |   62.16 | 21-32,36-37       
  ...entPrompt.tsx |     100 |      100 |     100 |     100 |                   
  ...ryDisplay.tsx |   21.05 |      100 |       0 |   21.05 | 17-35             
  ...ryDisplay.tsx |   87.91 |    62.06 |     100 |   87.91 | ...51-52,82-87,92 
  ...geDisplay.tsx |     100 |      100 |     100 |     100 |                   
  ...gProfiler.tsx |      24 |      100 |       0 |      24 | 13-36             
  ...esDisplay.tsx |   10.34 |      100 |       0 |   10.34 | 24-83             
  ...ogManager.tsx |   13.71 |      100 |       0 |   13.71 | 47-271            
  ...ngsDialog.tsx |    6.53 |      100 |       0 |    6.53 | 30-192            
  ExitWarning.tsx  |     100 |      100 |     100 |     100 |                   
  ...ustDialog.tsx |     100 |      100 |     100 |     100 |                   
  Footer.tsx       |    84.5 |    70.37 |     100 |    84.5 | ...57-164,167-170 
  ...ngSpinner.tsx |   54.28 |       50 |      50 |   54.28 | 31-48,61          
  Header.tsx       |   87.23 |    57.14 |     100 |   87.23 | 36-39,55,64       
  Help.tsx         |   98.41 |       60 |     100 |   98.41 | 77,131            
  ...emDisplay.tsx |   87.96 |       52 |     100 |   87.96 | ...34,139-143,146 
  ...ngeDialog.tsx |     100 |      100 |     100 |     100 |                   
  InputPrompt.tsx  |   80.76 |    81.16 |     100 |   80.76 | ...-995,1003-1014 
  ...Indicator.tsx |     100 |      100 |     100 |     100 |                   
  ...firmation.tsx |   91.42 |      100 |      50 |   91.42 | 26-31             
  MainContent.tsx  |   17.24 |      100 |       0 |   17.24 | 22-73             
  ...geDisplay.tsx |   22.58 |      100 |       0 |   22.58 | 15-41             
  ModelDialog.tsx  |     100 |    92.85 |     100 |     100 | 45                
  ...tsDisplay.tsx |     100 |      100 |     100 |     100 |                   
  ...tchDialog.tsx |     100 |      100 |     100 |     100 |                   
  ...fications.tsx |   17.02 |      100 |       0 |   17.02 | 15-62             
  ...KeyPrompt.tsx |   46.85 |    14.28 |      50 |   46.85 | 32-150            
  ...ustDialog.tsx |     100 |    81.81 |     100 |     100 | 71-86             
  ...ryDisplay.tsx |      20 |      100 |       0 |      20 | 20-41             
  PrepareLabel.tsx |   91.66 |    76.19 |     100 |   91.66 | 73-75,77-79,110   
  ...otaDialog.tsx |     100 |      100 |     100 |     100 |                   
  ...geDisplay.tsx |     100 |      100 |     100 |     100 |                   
  ...ionDialog.tsx |   19.29 |      100 |       0 |   19.29 | 28-78             
  ...ngDisplay.tsx |   23.07 |      100 |       0 |   23.07 | 13-37             
  ...hProgress.tsx |     100 |    97.61 |     100 |     100 | 137               
  ...ryDisplay.tsx |     100 |      100 |     100 |     100 |                   
  ...ngsDialog.tsx |   62.84 |    76.69 |      75 |   62.84 | ...00,807,813-814 
  ...ionDialog.tsx |   86.48 |      100 |   33.33 |   86.48 | 35-38,43-50       
  ...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             
  StatsDisplay.tsx |   98.59 |    93.33 |     100 |   98.59 | 195-197           
  ...nsDisplay.tsx |   87.35 |    68.18 |     100 |   87.35 | ...53,102,124-126 
  ThemeDialog.tsx  |   90.73 |    48.27 |      75 |   90.73 | ...15-116,158-160 
  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.77 |      100 |       0 |    7.77 | 23-125            
  ...ionDialog.tsx |    9.19 |      100 |       0 |    9.19 | 21-119            
 ...nents/messages |   79.74 |    79.91 |   64.51 |   79.74 |                   
  ...onMessage.tsx |   94.11 |    82.35 |     100 |   94.11 | 48,50,52          
  DiffRenderer.tsx |   93.03 |    85.55 |     100 |   93.03 | ...02,228-229,295 
  ErrorMessage.tsx |   22.22 |      100 |       0 |   22.22 | 16-31             
  ...niMessage.tsx |     100 |      100 |     100 |     100 |                   
  ...geContent.tsx |     100 |      100 |     100 |     100 |                   
  InfoMessage.tsx  |   22.72 |      100 |       0 |   22.72 | 18-37             
  ...ryMessage.tsx |   12.82 |      100 |       0 |   12.82 | 22-59             
  ...onMessage.tsx |   76.47 |    77.77 |   33.33 |   76.47 | ...57-158,179-194 
  ...upMessage.tsx |   90.82 |       84 |     100 |   90.82 | 40-43,55,142-146  
  ToolMessage.tsx  |    80.3 |       70 |      80 |    80.3 | ...72-377,451-453 
  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.82 |    77.39 |   94.11 |   80.82 |                   
  ...ctionList.tsx |     100 |      100 |     100 |     100 |                   
  ...tonSelect.tsx |     100 |      100 |     100 |     100 |                   
  EnumSelector.tsx |     100 |    96.42 |     100 |     100 | 58                
  MaxSizedBox.tsx  |   81.62 |    82.11 |   88.88 |   81.62 | ...07-508,613-614 
  ...tonSelect.tsx |     100 |      100 |     100 |     100 |                   
  ...eSelector.tsx |     100 |       60 |     100 |     100 | 38-43             
  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.6 |      100 |       0 |     8.6 |                   
  ...ionWizard.tsx |    6.46 |      100 |       0 |    6.46 | 33-320            
  ...rSelector.tsx |   14.75 |      100 |       0 |   14.75 | 26-85             
  ...onSummary.tsx |     3.4 |      100 |       0 |     3.4 | 23-310            
  ...tionInput.tsx |    8.39 |      100 |       0 |    8.39 | 22-172            
  ...dSelector.tsx |      35 |      100 |       0 |      35 | 31-58             
  ...nSelector.tsx |      40 |      100 |       0 |      40 | 31-53             
  ...EntryStep.tsx |   12.76 |      100 |       0 |   12.76 | 34-78             
  ToolSelector.tsx |    3.72 |      100 |       0 |    3.72 | 30-250            
 ...bagents/manage |    8.88 |      100 |       0 |    8.88 |                   
  ...ctionStep.tsx |   13.72 |      100 |       0 |   13.72 | 20-74             
  ...eleteStep.tsx |   15.78 |      100 |       0 |   15.78 | 19-57             
  ...tEditStep.tsx |   28.39 |      100 |       0 |   28.39 | 44-112            
  ...ctionStep.tsx |    2.83 |      100 |       0 |    2.83 | 26-330            
  ...iewerStep.tsx |   13.33 |      100 |       0 |   13.33 | 17-65             
  ...gerDialog.tsx |    5.81 |      100 |       0 |    5.81 | 31-331            
 ...agents/runtime |    7.83 |      100 |       0 |    7.83 |                   
  ...onDisplay.tsx |    7.83 |      100 |       0 |    7.83 | ...72-502,511-549 
 ...mponents/views |   92.33 |    74.19 |     100 |   92.33 |                   
  ...sionsList.tsx |     100 |    93.75 |     100 |     100 | 15                
  McpStatus.tsx    |   89.15 |    60.52 |     100 |   89.15 | ...21-122,165,168 
  ToolsList.tsx    |     100 |      100 |     100 |     100 |                   
 src/ui/contexts   |   77.62 |    77.45 |   85.71 |   77.62 |                   
  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 |   46.59 |    59.09 |   66.66 |   46.59 | ...25-226,230-233 
  ...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 |    87.5 |       50 |     100 |    87.5 | 66-67             
  ...teContext.tsx |   83.33 |       50 |     100 |   83.33 | 155-156           
  ...deContext.tsx |   76.08 |    33.33 |     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      |   79.61 |    83.19 |   83.47 |   79.61 |                   
  ...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 |   71.16 |    65.88 |    62.5 |   71.16 | ...25-490,542-570 
  ...agerDialog.ts |   88.23 |      100 |     100 |   88.23 | 20,24             
  ...Completion.ts |   92.77 |    89.28 |     100 |   92.77 | ...85-186,219-222 
  ...tIndicator.ts |     100 |     87.5 |     100 |     100 | 43                
  ...ketedPaste.ts |    23.8 |      100 |       0 |    23.8 | 19-37             
  ...ompletion.tsx |    95.3 |       80 |     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 |   28.57 |      100 |     100 |   28.57 | 54-88             
  ...orSettings.ts |     100 |      100 |     100 |     100 |                   
  ...ionUpdates.ts |   73.68 |       95 |      50 |   73.68 | ...20-123,138-144 
  useFocus.ts      |     100 |      100 |     100 |     100 |                   
  ...olderTrust.ts |     100 |      100 |     100 |     100 |                   
  ...miniStream.ts |   75.26 |    77.17 |      75 |   75.26 | ...1096,1129-1230 
  ...BranchName.ts |   90.38 |    81.81 |     100 |   90.38 | 49-55             
  ...oryManager.ts |   98.41 |    93.33 |     100 |   98.41 | 43                
  ...stListener.ts |     100 |      100 |     100 |     100 |                   
  ...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 |   11.53 |      100 |       0 |   11.53 | 16-30,37-82       
  ...gIndicator.ts |     100 |      100 |     100 |     100 |                   
  useLogger.ts     |      25 |      100 |       0 |      25 | 15-33             
  ...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 |    95.6 |       80 |     100 |    95.6 | ...73-174,190-192 
  ...Completion.ts |   40.64 |    56.52 |     100 |   40.64 | ...23-224,226-227 
  ...nfirmation.ts |   55.55 |      100 |     100 |   55.55 | 14,18-31          
  ...ndFallback.ts |   98.27 |    96.42 |     100 |   98.27 | 69-71             
  useQwenAuth.ts   |     100 |      100 |     100 |     100 |                   
  ...lScheduler.ts |      85 |    94.73 |     100 |      85 | ...00-203,291-301 
  ...oryCommand.ts |       0 |        0 |       0 |       0 | 1-7               
  ...ompletion.tsx |   90.59 |    83.33 |     100 |   90.59 | ...01,104,137-140 
  ...ectionList.ts |   96.18 |    93.75 |     100 |   96.18 | ...58-159,205-208 
  ...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.41 |    83.67 |      90 |   80.41 | ...52-454,462-470 
  ...tateAndRef.ts |   13.63 |      100 |       0 |   13.63 | 16-36             
  ...eateDialog.ts |   88.23 |      100 |     100 |   88.23 | 14,18             
  ...rminalSize.ts |   68.18 |      100 |      50 |   68.18 | 19-23,27-28       
  ...emeCommand.ts |    7.89 |      100 |       0 |    7.89 | 24-101            
  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 |    54.54 |     100 |   69.44 | ...85,89-90,96-98 
  ...eMigration.ts |   11.11 |      100 |       0 |   11.11 | 16-70             
  vim.ts           |   83.57 |     79.5 |     100 |   83.57 | ...38,742-750,759 
 src/ui/layouts    |   92.59 |       80 |     100 |   92.59 |                   
  ...AppLayout.tsx |     100 |      100 |     100 |     100 |                   
  ...AppLayout.tsx |   85.18 |       50 |     100 |   85.18 | 28-31             
 src/ui/models     |   73.58 |    71.42 |      60 |   73.58 |                   
  ...ableModels.ts |   73.58 |    71.42 |      60 |   73.58 | ...52-54,63-65,69 
 ...noninteractive |     100 |      100 |    8.33 |     100 |                   
  ...eractiveUi.ts |     100 |      100 |    8.33 |     100 |                   
 src/ui/state      |   94.82 |    81.81 |     100 |   94.82 |                   
  extensions.ts    |   94.82 |    81.81 |     100 |   94.82 | 67-68,87          
 src/ui/themes     |   99.07 |    61.53 |     100 |   99.07 |                   
  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 |    32.25 |     100 |     100 | 255-437           
  xcode.ts         |     100 |      100 |     100 |     100 |                   
 src/ui/utils      |   68.65 |    83.98 |    79.1 |   68.65 |                   
  ...Colorizer.tsx |   82.19 |    88.23 |     100 |   82.19 | ...08-109,191-217 
  ...olePatcher.ts |      78 |    77.77 |     100 |      78 | 58-69             
  ...nRenderer.tsx |   57.85 |    38.23 |     100 |   57.85 | ...26-132,142-144 
  ...wnDisplay.tsx |   85.58 |    87.87 |     100 |   85.58 | ...72-280,313-338 
  ...eRenderer.tsx |   78.09 |    76.19 |     100 |   78.09 | 55-83             
  ...boardUtils.ts |   31.11 |     37.5 |     100 |   31.11 | ...51-110,125-141 
  commandUtils.ts  |   92.79 |    88.09 |     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             
  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 |                   
  terminalSetup.ts |       4 |      100 |       0 |       4 | 40-342            
  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         |   55.86 |    92.79 |   90.24 |   55.86 |                   
  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.67 |    88.88 |     100 |   97.67 | 63                
  ...arResolver.ts |   96.42 |    96.15 |     100 |   96.42 | 111-112           
  errors.ts        |     100 |    96.66 |     100 |     100 | 77                
  events.ts        |     100 |      100 |     100 |     100 |                   
  gitUtils.ts      |   94.66 |    82.35 |     100 |   94.66 | 75-78             
  ...AutoUpdate.ts |    51.2 |       95 |      50 |    51.2 | 84-149            
  ...lationInfo.ts |     100 |      100 |     100 |     100 |                   
  math.ts          |   66.66 |      100 |       0 |   66.66 | 15                
  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-994             
  settingsUtils.ts |   87.33 |    94.73 |   96.87 |   87.33 | ...91-418,462-463 
  spawnWrapper.ts  |     100 |      100 |     100 |     100 |                   
  ...upWarnings.ts |     100 |      100 |     100 |     100 |                   
  ...entEmitter.ts |     100 |      100 |     100 |     100 |                   
  ...upWarnings.ts |   93.75 |     87.5 |     100 |   93.75 | 67-68,72-73       
  version.ts       |     100 |       50 |     100 |     100 | 11                
  windowTitle.ts   |     100 |      100 |     100 |     100 |                   
 ...ed-integration |   24.52 |        0 |       0 |   24.52 |                   
  acp.ts           |    3.29 |        0 |       0 |    3.29 | ...53-289,292-339 
  ...temService.ts |   20.58 |      100 |       0 |   20.58 | ...34,37-46,48-49 
  schema.ts        |     100 |      100 |     100 |     100 |                   
  ...ntegration.ts |    3.43 |        0 |       0 |    3.43 | ...34-916,931-990 
-------------------|---------|----------|---------|---------|-------------------
Core Package - Full Text Report
-------------------|---------|----------|---------|---------|-------------------
File               | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-------------------|---------|----------|---------|---------|-------------------
All files          |   77.88 |    84.58 |   80.11 |   77.88 |                   
 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   |   78.69 |    83.24 |   81.25 |   78.69 |                   
  codeAssist.ts    |    17.5 |      100 |       0 |    17.5 | 16-38,41-54       
  converter.ts     |   96.22 |    95.55 |     100 |   96.22 | 181-185,199       
  ...al-storage.ts |     100 |    74.07 |     100 |     100 | 37-39,70-73       
  oauth2.ts        |   81.77 |     81.7 |    92.3 |   81.77 | ...32-533,556-557 
  server.ts        |   54.21 |    73.33 |   57.14 |   54.21 | ...30-233,252-253 
  setup.ts         |   86.66 |    78.94 |     100 |   86.66 | ...,92-94,118-124 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/config        |   79.58 |     85.8 |   54.88 |   79.58 |                   
  config.ts        |   78.42 |    84.17 |   50.92 |   78.42 | ...1144,1157-1158 
  constants.ts     |     100 |      100 |     100 |     100 |                   
  models.ts        |     100 |      100 |     100 |     100 |                   
  storage.ts       |   82.22 |    94.44 |   70.83 |   82.22 | ...14-115,118-119 
 src/core          |   80.45 |    84.74 |    77.2 |   80.45 |                   
  baseLlmClient.ts |     100 |    96.55 |     100 |     100 | 122               
  client.ts        |   85.73 |    83.78 |      68 |   85.73 | ...00-704,712-728 
  ...tGenerator.ts |   49.57 |       70 |      50 |   49.57 | ...16,147,168-207 
  ...lScheduler.ts |   80.15 |    81.14 |   88.88 |   80.15 | ...1130,1211-1215 
  geminiChat.ts    |   85.16 |     88.7 |   79.31 |   85.16 | ...50-652,698-699 
  geminiRequest.ts |     100 |      100 |     100 |     100 |                   
  logger.ts        |   82.99 |    81.81 |     100 |   82.99 | ...52-356,396-407 
  ...tGenerator.ts |   12.42 |      100 |      10 |   12.42 | ...00-201,204-207 
  ...olExecutor.ts |     100 |      100 |      50 |     100 |                   
  prompts.ts       |   87.11 |     87.3 |      75 |   87.11 | ...96-797,800-801 
  tokenLimits.ts   |     100 |    85.71 |     100 |     100 | 41-42             
  turn.ts          |    91.9 |    87.03 |     100 |    91.9 | ...27,340-341,389 
 ...ntentGenerator |   62.06 |    86.79 |   82.08 |   62.06 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  converter.ts     |   34.17 |    74.15 |   56.52 |   34.17 | ...-998,1017-1054 
  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.2 |    92.06 |     100 |    97.2 | ...27-228,403-407 
  ...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.22 |    89.24 |     100 |   97.22 |                   
  dashscope.ts     |   98.26 |     92.3 |     100 |   98.26 | 195-196,276-277   
  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/fallback      |   55.55 |    93.75 |   66.66 |   55.55 |                   
  handler.ts       |   55.05 |    93.75 |   66.66 |   55.05 | 20-21,70-120      
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/generated     |     100 |      100 |     100 |     100 |                   
  git-commit.ts    |     100 |      100 |     100 |     100 |                   
 src/ide           |   71.44 |    83.58 |   75.47 |   71.44 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  detect-ide.ts    |     100 |      100 |     100 |     100 |                   
  ide-client.ts    |   56.73 |    78.26 |    60.6 |   56.73 | ...05-813,839-847 
  ide-installer.ts |   88.97 |    81.48 |     100 |   88.97 | ...35,142-146,159 
  ideContext.ts    |     100 |      100 |     100 |     100 |                   
  process-utils.ts |   87.09 |    74.19 |     100 |   87.09 | ...25,156,166-167 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/mcp           |   78.48 |    75.12 |   75.92 |   78.48 |                   
  ...h-provider.ts |   86.36 |      100 |   33.33 |   86.36 | ...85,89,93,97-98 
  ...h-provider.ts |   73.39 |    54.16 |     100 |   73.39 | ...00-807,814-816 
  ...en-storage.ts |    98.6 |    97.67 |     100 |    98.6 | 84-85             
  oauth-utils.ts   |   70.33 |    81.48 |    90.9 |   70.33 | ...62-283,308-331 
  ...n-provider.ts |   89.38 |    95.83 |   45.45 |   89.38 | ...39,143,147-148 
 .../token-storage |   88.39 |    86.46 |      95 |   88.39 |                   
  ...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 |   85.71 |    81.81 |      90 |   85.71 | ...25-227,249-250 
  types.ts         |     100 |      100 |     100 |     100 |                   
 src/mocks         |     100 |      100 |     100 |     100 |                   
  msw.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          |   86.68 |    80.27 |   97.01 |   86.68 |                   
  ...tGenerator.ts |   98.63 |    98.18 |     100 |   98.63 | 103-104           
  qwenOAuth2.ts    |   85.85 |    76.27 |    92.3 |   85.85 | ...67,797-808,847 
  ...kenManager.ts |   84.24 |    76.03 |     100 |   84.24 | ...52-757,778-783 
 src/services      |   88.68 |       82 |   92.85 |   88.68 |                   
  ...ingService.ts |   85.27 |    62.26 |     100 |   85.27 | ...14-416,443-445 
  ...eryService.ts |   96.73 |    96.96 |    87.5 |   96.73 | 112,140-141       
  ...temService.ts |     100 |      100 |     100 |     100 |                   
  gitService.ts    |   69.07 |     92.3 |      60 |   69.07 | ...12-122,125-129 
  ...ionService.ts |   97.67 |    91.35 |     100 |   97.67 | ...79-380,386-387 
  ...ionService.ts |   86.86 |    78.26 |     100 |   86.86 | ...68-669,673-678 
 src/subagents     |   84.89 |    79.45 |   84.21 |   84.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      |   76.34 |     60.5 |      68 |   76.34 | ...77-878,884-885 
  types.ts         |     100 |      100 |     100 |     100 |                   
  validation.ts    |    92.4 |    96.59 |     100 |    92.4 | 54-59,63-68,72-77 
 src/telemetry     |   74.51 |    87.18 |   78.78 |   74.51 |                   
  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       |   62.53 |    68.88 |   61.29 |   62.53 | ...07-726,729-748 
  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         |   90.72 |     95.6 |   90.74 |   90.72 | ...10-519,650-659 
  uiTelemetry.ts   |    99.3 |    96.15 |     100 |    99.3 | 130               
 ...learcut-logger |   45.62 |    68.42 |   38.09 |   45.62 |                   
  ...cut-logger.ts |   39.02 |    67.85 |   38.09 |   39.02 | ...1132,1135-1138 
  ...tadata-key.ts |     100 |      100 |     100 |     100 |                   
 ...ry/qwen-logger |   73.36 |    83.78 |   73.46 |   73.36 |                   
  event-types.ts   |       0 |        0 |       0 |       0 |                   
  qwen-logger.ts   |   73.36 |    83.56 |   72.91 |   73.36 | ...38-843,885-886 
 src/test-utils    |   93.92 |    93.33 |   77.77 |   93.92 |                   
  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.47 |    82.22 |   83.49 |   74.47 |                   
  diffOptions.ts   |     100 |      100 |     100 |     100 |                   
  edit.ts          |   84.86 |    86.73 |   86.66 |   84.86 | ...56-457,547-587 
  exitPlanMode.ts  |   85.18 |    86.36 |     100 |   85.18 | ...02-107,135-147 
  glob.ts          |   91.18 |    81.96 |    87.5 |   91.18 | ...28-229,331-332 
  grep.ts          |   62.07 |       84 |      80 |   62.07 | ...57-661,671-672 
  ls.ts            |   96.29 |    88.52 |     100 |   96.29 | 140-145,176,180   
  ...nt-manager.ts |   80.89 |    66.66 |      80 |   80.89 | ...12-119,127-128 
  mcp-client.ts    |   28.38 |    69.56 |   48.38 |   28.38 | ...1329,1333-1336 
  mcp-tool.ts      |   95.39 |    93.67 |      95 |   95.39 | 229-239,301-302   
  memoryTool.ts    |   74.35 |    83.87 |   90.47 |   74.35 | ...38-346,448-532 
  ...iable-tool.ts |     100 |    84.61 |     100 |     100 | 99,106            
  read-file.ts     |   98.71 |    97.14 |    87.5 |   98.71 | 64-65             
  ...many-files.ts |   79.03 |    79.41 |   85.71 |   79.03 | ...43-444,451-452 
  ripGrep.ts       |   89.26 |    83.33 |   92.85 |   89.26 | ...12-413,435-436 
  shell.ts         |   86.55 |    77.77 |     100 |   86.55 | ...70-477,482-483 
  smart-edit.ts    |   82.95 |    77.86 |      88 |   82.95 | ...01-903,921-964 
  task.ts          |    66.4 |    86.79 |     100 |    66.4 | ...00-501,522-529 
  todoWrite.ts     |   78.64 |    80.95 |   71.42 |   78.64 | ...94-419,440-441 
  tool-error.ts    |     100 |      100 |     100 |     100 |                   
  tool-names.ts    |     100 |      100 |     100 |     100 |                   
  tool-registry.ts |      69 |    65.38 |   70.37 |      69 | ...22-427,435-443 
  tools.ts         |    89.2 |    89.58 |    87.5 |    89.2 | ...74-375,391-397 
  web-fetch.ts     |   85.14 |    60.86 |      90 |   85.14 | ...32-233,235-236 
  web-search.ts    |   79.28 |    85.18 |    87.5 |   79.28 | ...,91-97,116-120 
  write-file.ts    |   83.33 |    83.33 |      75 |   83.33 | ...16-419,431-465 
 src/utils         |   86.48 |    89.82 |   88.28 |   86.48 |                   
  LruCache.ts      |   80.64 |       75 |     100 |   80.64 | 28,30-34          
  bfsFileSearch.ts |   89.65 |     92.3 |     100 |   89.65 | 86-94             
  browser.ts       |    7.69 |      100 |       0 |    7.69 | 17-56             
  editor.ts        |   96.85 |    93.75 |     100 |   96.85 | ...84-185,187-188 
  ...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        |   58.33 |       75 |      50 |   58.33 | ...86-102,106-112 
  fetch.ts         |   34.04 |      100 |       0 |   34.04 | 22-27,31-57       
  fileUtils.ts     |   95.32 |    90.37 |     100 |   95.32 | ...35-239,449-455 
  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      |   51.21 |       90 |      50 |   51.21 | 40-41,50-73       
  ...rePatterns.ts |     100 |      100 |     100 |     100 |                   
  ...ionManager.ts |     100 |     90.9 |     100 |     100 | 23                
  ...-detection.ts |     100 |      100 |     100 |     100 |                   
  ...edit-fixer.ts |     100 |      100 |     100 |     100 |                   
  ...yDiscovery.ts |   82.72 |    72.88 |   77.77 |   82.72 | ...05-406,409-410 
  ...tProcessor.ts |   93.23 |    89.74 |    92.3 |   93.23 | ...95-301,378-379 
  ...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  |    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            
  ...tIdContext.ts |     100 |      100 |     100 |     100 |                   
  ...rDetection.ts |   76.85 |    84.31 |     100 |   76.85 | ...25-126,166-167 
  ...noreParser.ts |   85.45 |    81.48 |     100 |   85.45 | ...59,65-66,72-73 
  retry.ts         |   63.77 |    77.63 |     100 |   63.77 | ...98-318,363-378 
  ripgrepUtils.ts  |   91.25 |       96 |     100 |   91.25 | 65-71             
  safeJsonParse.ts |      72 |    83.33 |     100 |      72 | 37-43             
  ...nStringify.ts |     100 |      100 |     100 |     100 |                   
  ...aValidator.ts |     100 |    76.19 |     100 |     100 | 11-25,62,66-67    
  ...r-launcher.ts |   76.52 |     87.5 |   66.66 |   76.52 | ...33,135,153-191 
  session.ts       |     100 |      100 |     100 |     100 |                   
  shell-utils.ts   |    91.3 |    97.65 |    92.3 |    91.3 | ...96-197,469-497 
  ...nlyChecker.ts |   81.63 |       80 |      80 |   81.63 | ...58-259,263-264 
  ...tGenerator.ts |     100 |     90.9 |     100 |     100 | 129               
  summarizer.ts    |     100 |    88.88 |     100 |     100 | 91                
  ...emEncoding.ts |      98 |    94.11 |     100 |      98 | 106-107           
  ...Serializer.ts |   99.06 |    94.54 |     100 |   99.06 | 90,147-149        
  testUtils.ts     |   84.44 |    72.72 |   83.33 |   84.44 | 27-28,34-35,70-72 
  textUtils.ts     |   53.33 |      100 |      50 |   53.33 | 36-55             
  thoughtUtils.ts  |     100 |      100 |     100 |     100 |                   
  tool-utils.ts    |   91.48 |    89.47 |     100 |   91.48 | 53-54,57-58       
  ...untManager.ts |   97.14 |    94.59 |     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.

@tanzhenxin tanzhenxin marked this pull request as ready for review October 30, 2025 11:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants