Skip to content

Conversation

@tanzhenxin
Copy link
Collaborator

@tanzhenxin tanzhenxin commented Dec 3, 2025

Summary

This PR implements support for DeepSeek V3.2's Thinking Mode, enabling Qwen Code to properly exercise and validate our existing thinking-mode pipeline with a real model that exposes reasoning capabilities.

Changes

Core: OpenAI Content Generator

  • Extended the OpenAI-compatible converter to handle reasoning_content field used by DeepSeek V3.2
  • Added streaming support for reasoning_content delta chunks
  • Properly convert reasoning content to Gemini's thought part format for unified internal handling

Core: Turn Processing

  • Updated thought extraction to use the new getThoughtText() utility
  • Simplified thought event emission for consistent handling across model providers

Core: Chat History

  • Improved stripThoughtsFromHistory() to properly filter out thought parts before sending context back to the API
  • Fixed edge case where empty content objects could remain after thought filtering

Core: Session Service

  • Added support for persisting and recovering thought/reasoning content in session storage
  • Ensures thinking traces are preserved when resuming sessions

CLI: UI Components

  • Added GeminiThoughtMessage component with distinctive styling (✦ prefix, dimmed secondary color)
  • Added GeminiThoughtMessageContent for rendering thought content blocks
  • Updated HistoryItemDisplay to properly render thought messages in conversation history

CLI: Streaming Hook

  • Extended useGeminiStream to handle thought events from the streaming pipeline
  • Added proper state management for accumulating thought content during streaming

CLI: Resume History Utils

  • Updated session recovery logic to properly restore thought items when resuming a conversation

Telemetry

  • Extended telemetry service to track reasoning content for analytics

Testing

  • Added unit tests for reasoning_content conversion in both streaming and non-streaming scenarios
  • Added tests for thought text extraction utility
  • Updated existing tests to account for thought handling changes
  • Verified compatibility with:
    • ✅ Tool calling
    • ✅ Reasoning/trace streaming
    • ✅ Conversation/session storage
    • ✅ Telemetry

Usage

To use DeepSeek V3.2 with Thinking Mode:

  1. Configure your API endpoint and key for DeepSeek, and use mode deepseek-reasoner
  2. The thinking process will be displayed with a ✦ prefix in dimmed text

Bonus: Kimi K2 Thinking can also work, while other thinking models have not been tested.

Screenshots

image

Checklist

  • Code follows project style guidelines
  • Unit tests added/updated
  • Self-reviewed the changes
  • Documentation updated (if applicable)

@tanzhenxin tanzhenxin linked an issue Dec 3, 2025 that may be closed by this pull request
@github-actions
Copy link
Contributor

github-actions bot commented Dec 3, 2025

📋 Review Summary

This PR implements support for DeepSeek V3.2's Thinking Mode, enabling Qwen Code to properly exercise and validate the existing thinking-mode pipeline with a real model that exposes reasoning capabilities. The changes span across core components, CLI UI components, and session management to handle reasoning content from DeepSeek V3.2.

🔍 General Feedback

  • The implementation is well-structured and comprehensive, covering all necessary components from content conversion to UI display.
  • Good separation of concerns with dedicated utilities for thought handling (thoughtUtils.ts).
  • Proper handling of both streaming and non-streaming scenarios for reasoning content.
  • Excellent test coverage added for the new functionality.
  • The code follows existing patterns and conventions in the codebase.

🎯 Specific Feedback

🟢 Medium

  • File: packages/core/src/core/openaiContentGenerator/converter.ts:366-383 - The condition checking for thought parts could be simplified for better readability. Consider extracting this logic to a helper function.
  • File: packages/core/src/core/turn.ts:269-273 - The getThoughtText function is called but its result is used directly without checking if it's null. Consider adding explicit null checking for clarity.
  • File: packages/core/src/services/sessionService.ts:567-576 - The stripThoughtsFromContent function creates a new object even when no filtering is needed. Consider returning the original content object if no thought parts are found to improve performance.

🔵 Low

  • File: packages/cli/src/ui/components/messages/GeminiThoughtMessage.tsx:25 - The isPending, availableTerminalHeight, and terminalWidth props are defined in the interface but not used in the component implementation. Either use these props or remove them from the interface.
  • File: packages/cli/src/ui/components/messages/GeminiThoughtMessageContent.tsx:25 - Similar to the above, the isPending, availableTerminalHeight, and terminalWidth props are defined but not used.
  • File: packages/core/src/core/openaiContentGenerator/converter.ts:467-471 - In the createMultimodalMessage function, the reasoning content is attached as { type: 'text', text: reasoningContent } when it's already a string. This might be inconsistent with how regular content is handled.

✅ Highlights

  • Excellent test coverage added for all new functionality, including both streaming and non-streaming scenarios.
  • Well-designed UI components for displaying thought messages with appropriate styling (✦ prefix, dimmed secondary color).
  • Proper session management to persist and recover thought/reasoning content.
  • Comprehensive telemetry support to track reasoning content for analytics.
  • Good handling of edge cases, such as properly filtering out thought parts before sending context back to the API.

@github-actions
Copy link
Contributor

github-actions bot commented Dec 3, 2025

Code Coverage Summary

Package Lines Statements Functions Branches
CLI 69.24% 69.24% 71.82% 81.62%
Core 77.53% 77.53% 80.3% 83.75%
CLI Package - Full Text Report
-------------------|---------|----------|---------|---------|-------------------
File               | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-------------------|---------|----------|---------|---------|-------------------
All files          |   69.24 |    81.62 |   71.82 |   69.24 |                   
 src               |   74.63 |    69.65 |   61.11 |   74.63 |                   
  gemini.tsx       |   61.49 |     56.6 |      75 |   61.49 | ...76,481-489,497 
  ...ractiveCli.ts |   87.34 |    75.43 |      20 |   87.34 | ...83-290,309,360 
  ...liCommands.ts |    75.4 |    66.66 |   66.66 |    75.4 | ...-81,88,177-205 
  ...ActiveAuth.ts |   97.46 |    86.95 |     100 |   97.46 | 21-22             
 ...cp-integration |   44.39 |        0 |       0 |   44.39 |                   
  acp.ts           |    2.72 |        0 |       0 |    2.72 | ...67-303,306-353 
  acpAgent.ts      |    4.56 |        0 |       0 |    4.56 | 34-55,58-329      
  schema.ts        |     100 |      100 |     100 |     100 |                   
 ...ration/service |   20.58 |      100 |       0 |   20.58 |                   
  filesystem.ts    |   20.58 |      100 |       0 |   20.58 | ...34,37-46,48-49 
 ...ration/session |   26.17 |    72.13 |   73.68 |   26.17 |                   
  ...ryReplayer.ts |   95.06 |       84 |     100 |   95.06 | 102-103,134-135   
  Session.ts       |    3.63 |        0 |       0 |    3.63 | 75-894,913-981    
  ...entTracker.ts |   81.55 |    69.69 |    87.5 |   81.55 | ...04-311,314-315 
  index.ts         |       0 |        0 |       0 |       0 | 1-40              
  types.ts         |       0 |        0 |       0 |       0 | 1                 
 ...ssion/emitters |   96.96 |    95.55 |    91.3 |   96.96 |                   
  BaseEmitter.ts   |   84.61 |      100 |      75 |   84.61 | 35-36             
  ...ageEmitter.ts |     100 |      100 |     100 |     100 |                   
  PlanEmitter.ts   |     100 |      100 |     100 |     100 |                   
  ...allEmitter.ts |   99.39 |    94.33 |     100 |   99.39 | 285               
  index.ts         |       0 |        0 |       0 |       0 | 1-10              
 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        |   91.52 |    82.76 |   89.01 |   91.52 |                   
  auth.ts          |     100 |       90 |     100 |     100 | 16                
  config.ts        |   93.84 |    85.94 |   88.23 |   93.84 | ...22-839,981-985 
  extension.ts     |   83.88 |     88.4 |   84.37 |   83.88 | ...73-774,777-778 
  keyBindings.ts   |     100 |      100 |     100 |     100 |                   
  sandboxConfig.ts |   54.16 |    23.07 |   66.66 |   54.16 | ...44,54-68,73-89 
  settings.ts      |   87.94 |    77.33 |      92 |   87.94 | ...50-853,861-863 
  ...ingsSchema.ts |     100 |      100 |     100 |     100 |                   
  ...tedFolders.ts |   96.87 |    93.87 |     100 |   96.87 | ...87-188,203-204 
  webSearch.ts     |    40.9 |    11.11 |     100 |    40.9 | ...95-102,105-121 
 ...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          |   64.38 |       30 |     100 |   64.38 |                   
  auth.ts          |   42.85 |       50 |     100 |   42.85 | 29-48             
  initializer.ts   |   74.35 |       20 |     100 |   74.35 | 49-54,61-64       
  theme.ts         |   69.23 |    33.33 |     100 |   69.23 | 19-22             
 src/generated     |     100 |      100 |     100 |     100 |                   
  git-commit.ts    |     100 |      100 |     100 |     100 |                   
 src/i18n          |   64.45 |     62.5 |   68.75 |   64.45 |                   
  index.ts         |   64.45 |     62.5 |   68.75 |   64.45 | ...68-171,192-210 
 src/i18n/locales  |   51.81 |        0 |       0 |   51.81 |                   
  en.js            |     100 |      100 |     100 |     100 |                   
  zh.js            |       0 |        0 |       0 |       0 | 1-1052            
 ...nonInteractive |    58.3 |    66.98 |   63.88 |    58.3 |                   
  session.ts       |    60.9 |    64.28 |   79.16 |    60.9 | ...82-683,704-714 
  types.ts         |    42.5 |      100 |   33.33 |    42.5 | ...04-505,508-509 
 ...active/control |    82.6 |     90.9 |    87.5 |    82.6 |                   
  ...rolContext.ts |    8.33 |        0 |       0 |    8.33 | 46-76             
  ...Dispatcher.ts |   97.89 |    95.23 |     100 |   97.89 | 196-199           
  ...rolService.ts |    12.5 |        0 |       0 |    12.5 | 46-191            
 ...ol/controllers |    4.02 |       50 |   21.42 |    4.02 |                   
  ...Controller.ts |      25 |      100 |      60 |      25 | 77-114,122-162    
  ...Controller.ts |       0 |        0 |       0 |       0 | 1-56              
  mcpController.ts |       0 |        0 |       0 |       0 | 1-287             
  ...Controller.ts |       0 |        0 |       0 |       0 | 1-483             
  ...Controller.ts |    7.81 |      100 |       0 |    7.81 | ...53-187,198-214 
 .../control/types |       0 |        0 |       0 |       0 |                   
  serviceAPIs.ts   |       0 |        0 |       0 |       0 | 1                 
 ...Interactive/io |   97.59 |    92.52 |   95.83 |   97.59 |                   
  ...putAdapter.ts |   98.02 |    91.97 |     100 |   98.02 | ...-965,1128-1129 
  ...putAdapter.ts |   95.45 |      100 |   85.71 |   95.45 | 51-52             
  ...nputReader.ts |     100 |    94.73 |     100 |     100 | 67                
  ...putAdapter.ts |   96.15 |     92.3 |    87.5 |   96.15 | ...81,107-108,289 
 src/patches       |       0 |        0 |       0 |       0 |                   
  is-in-ci.ts      |       0 |        0 |       0 |       0 | 1-17              
 src/services      |   86.94 |    87.09 |   94.11 |   86.94 |                   
  ...mandLoader.ts |     100 |      100 |     100 |     100 |                   
  ...andService.ts |     100 |      100 |     100 |     100 |                   
  ...mandLoader.ts |   93.06 |    91.48 |     100 |   93.06 | 189-194,277-284   
  ...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.41 |     87.5 |   83.33 |   94.41 |                   
  ...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.36 |    72.67 |   61.11 |   74.36 |                   
  App.tsx          |      80 |    85.71 |     100 |      80 | 20-29             
  AppContainer.tsx |   76.06 |    63.15 |   44.44 |   76.06 | ...1033,1048-1109 
  ...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       |   32.71 |    72.72 |   42.85 |   32.71 |                   
  AuthDialog.tsx   |   86.66 |    76.19 |      60 |   86.66 | ...01-102,147-153 
  ...nProgress.tsx |       0 |        0 |       0 |       0 | 1-64              
  useAuth.ts       |    3.51 |      100 |       0 |    3.51 | 26-257            
 src/ui/commands   |    60.4 |    83.51 |   43.07 |    60.4 |                   
  aboutCommand.ts  |     100 |      100 |     100 |     100 |                   
  agentsCommand.ts |    64.7 |      100 |       0 |    64.7 | ...30,35-36,39-41 
  ...odeCommand.ts |     100 |      100 |     100 |     100 |                   
  authCommand.ts   |     100 |      100 |     100 |     100 |                   
  bugCommand.ts    |   76.92 |    66.66 |      50 |   76.92 | 24-25,62-71       
  clearCommand.ts  |   88.23 |    66.66 |      50 |   88.23 | 16-17,41-42       
  ...essCommand.ts |   97.33 |    88.88 |      50 |   97.33 | 17-18             
  copyCommand.ts   |   96.22 |      100 |      50 |   96.22 | 15-16             
  corgiCommand.ts  |     100 |      100 |     100 |     100 |                   
  ...ryCommand.tsx |   66.83 |    73.07 |      50 |   66.83 | ...77-178,186-194 
  docsCommand.ts   |   95.23 |       80 |      50 |   95.23 | 20-21             
  editorCommand.ts |     100 |      100 |     100 |     100 |                   
  ...onsCommand.ts |   90.54 |    96.55 |   57.14 |   90.54 | ...45-146,167-168 
  helpCommand.ts   |     100 |      100 |     100 |     100 |                   
  ideCommand.ts    |   58.54 |       60 |   35.29 |   58.54 | ...88-289,292-306 
  initCommand.ts   |    81.7 |       70 |      50 |    81.7 | ...67,81-86,88-93 
  ...ageCommand.ts |   12.32 |      100 |       0 |   12.32 | ...31-432,435-455 
  mcpCommand.ts    |   37.54 |    80.95 |   22.22 |   37.54 | ...12-352,358-361 
  memoryCommand.ts |    54.8 |     86.2 |      20 |    54.8 | ...78,285-286,304 
  modelCommand.ts  |     100 |      100 |     100 |     100 |                   
  ...onsCommand.ts |     100 |      100 |     100 |     100 |                   
  quitCommand.ts   |   61.01 |      100 |      25 |   61.01 | 14-15,18-37,44-45 
  ...oreCommand.ts |      92 |    87.09 |     100 |      92 | ...,82-87,128-129 
  ...ngsCommand.ts |     100 |      100 |     100 |     100 |                   
  ...hubCommand.ts |   82.69 |    66.66 |      75 |   82.69 | ...57-160,163-166 
  statsCommand.ts  |   76.92 |       75 |      50 |   76.92 | ...36,50-51,65-66 
  ...aryCommand.ts |    7.74 |      100 |       0 |    7.74 | 21-24,27-199      
  ...tupCommand.ts |     100 |      100 |     100 |     100 |                   
  themeCommand.ts  |     100 |      100 |     100 |     100 |                   
  toolsCommand.ts  |   95.12 |      100 |      50 |   95.12 | 18-19             
  types.ts         |     100 |      100 |     100 |     100 |                   
  vimCommand.ts    |   42.85 |      100 |       0 |   42.85 | 14-15,18-28       
 src/ui/components |   64.99 |    78.96 |   66.03 |   64.99 |                   
  AboutBox.tsx     |     100 |      100 |     100 |     100 |                   
  AnsiOutput.tsx   |     100 |      100 |     100 |     100 |                   
  AppHeader.tsx    |    42.1 |      100 |       0 |    42.1 | 19-33             
  ...odeDialog.tsx |    9.62 |      100 |       0 |    9.62 | 35-47,50-187      
  AsciiArt.ts      |     100 |      100 |     100 |     100 |                   
  ...Indicator.tsx |   15.38 |      100 |       0 |   15.38 | 18-53             
  Composer.tsx     |   98.51 |    68.96 |     100 |   98.51 | 77,86             
  ...itDisplay.tsx |   55.81 |      100 |      50 |   55.81 | 22-38,42-43       
  ...entPrompt.tsx |     100 |      100 |     100 |     100 |                   
  ...ryDisplay.tsx |   21.05 |      100 |       0 |   21.05 | 17-35             
  ...ryDisplay.tsx |   75.89 |    62.06 |     100 |   75.89 | ...,88,93-108,113 
  ...geDisplay.tsx |     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.05 |      100 |       0 |   13.05 | 51-316            
  ...ngsDialog.tsx |    6.91 |      100 |       0 |    6.91 | 31-198            
  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.69 |    73.33 |     100 |   98.69 | 73,128            
  ...emDisplay.tsx |   77.11 |    48.14 |     100 |   77.11 | ...48,153-157,160 
  ...ngeDialog.tsx |     100 |      100 |     100 |     100 |                   
  InputPrompt.tsx  |   90.08 |     85.5 |     100 |   90.08 | ...33,637-639,800 
  ...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 | 46                
  ...tsDisplay.tsx |     100 |      100 |     100 |     100 |                   
  ...tchDialog.tsx |     100 |      100 |     100 |     100 |                   
  ...fications.tsx |   17.02 |      100 |       0 |   17.02 | 15-62             
  ...KeyPrompt.tsx |   45.49 |     12.5 |   33.33 |   45.49 | ...80-198,214-216 
  ...ustDialog.tsx |     100 |    81.81 |     100 |     100 | 71-86             
  ...ryDisplay.tsx |      20 |      100 |       0 |      20 | 20-41             
  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 |   21.15 |      100 |       0 |   21.15 | 28-73             
  ...ngDisplay.tsx |   23.07 |      100 |       0 |   23.07 | 13-37             
  ...hProgress.tsx |   90.78 |    95.55 |     100 |   90.78 | 247-273           
  ...ionPicker.tsx |    2.22 |      100 |       0 |    2.22 | 30-436            
  ...ryDisplay.tsx |     100 |      100 |     100 |     100 |                   
  ...ngsDialog.tsx |    56.3 |    69.53 |      75 |    56.3 | ...45-846,928-932 
  ...ionDialog.tsx |   87.01 |      100 |   33.33 |   87.01 | 36-39,44-51       
  ...putPrompt.tsx |      15 |      100 |       0 |      15 | 19-57             
  ...Indicator.tsx |   44.44 |      100 |       0 |   44.44 | 12-17             
  ...MoreLines.tsx |      28 |      100 |       0 |      28 | 18-40             
  StatsDisplay.tsx |   98.65 |    93.33 |     100 |   98.65 | 197-199           
  ...nsDisplay.tsx |   84.09 |    57.14 |     100 |   84.09 | ...16-118,125-127 
  ThemeDialog.tsx  |    90.9 |    44.44 |      75 |    90.9 | ...16-117,159-161 
  Tips.tsx         |   19.35 |      100 |       0 |   19.35 | 18-46             
  TodoDisplay.tsx  |     100 |      100 |     100 |     100 |                   
  ...tsDisplay.tsx |     100 |     87.5 |     100 |     100 | 31-32             
  ...ification.tsx |   36.36 |      100 |       0 |   36.36 | 15-22             
  ...ackDialog.tsx |    7.84 |      100 |       0 |    7.84 | 24-134            
  ...ionDialog.tsx |    9.19 |      100 |       0 |    9.19 | 21-119            
 ...nents/messages |   78.02 |    79.91 |    60.6 |   78.02 |                   
  ...onMessage.tsx |   91.93 |    82.35 |     100 |   91.93 | 57-59,61,63       
  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 |                   
  ...htMessage.tsx |   17.85 |      100 |       0 |   17.85 | 24-48             
  ...geContent.tsx |   31.57 |      100 |       0 |   31.57 | 26-40             
  InfoMessage.tsx  |   22.72 |      100 |       0 |   22.72 | 18-37             
  ...ryMessage.tsx |   12.82 |      100 |       0 |   12.82 | 22-59             
  ...onMessage.tsx |   77.48 |    77.77 |   33.33 |   77.48 | ...58-159,180-195 
  ...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.81 |    77.39 |   94.11 |   80.81 |                   
  ...ctionList.tsx |   99.02 |    95.65 |     100 |   99.02 | 82                
  ...tonSelect.tsx |     100 |      100 |     100 |     100 |                   
  EnumSelector.tsx |     100 |    96.42 |     100 |     100 | 58                
  MaxSizedBox.tsx  |   81.62 |    82.11 |   88.88 |   81.62 | ...07-508,613-614 
  ...tonSelect.tsx |     100 |      100 |     100 |     100 |                   
  ...eSelector.tsx |     100 |    83.33 |     100 |     100 | 40                
  TextInput.tsx    |    7.94 |      100 |       0 |    7.94 | 32-194            
  text-buffer.ts   |   82.06 |    75.96 |   96.87 |   82.06 | ...1895,1922,1984 
  ...er-actions.ts |   86.71 |    67.79 |     100 |   86.71 | ...07-608,809-811 
 ...ents/subagents |    32.1 |      100 |       0 |    32.1 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  reducers.tsx     |    12.1 |      100 |       0 |    12.1 | 33-190            
  types.ts         |     100 |      100 |     100 |     100 |                   
  utils.ts         |   10.95 |      100 |       0 |   10.95 | ...1,56-57,60-102 
 ...bagents/create |    8.66 |      100 |       0 |    8.66 |                   
  ...ionWizard.tsx |    6.38 |      100 |       0 |    6.38 | 34-339            
  ...rSelector.tsx |   14.75 |      100 |       0 |   14.75 | 26-85             
  ...onSummary.tsx |    3.51 |      100 |       0 |    3.51 | 24-328            
  ...tionInput.tsx |    8.63 |      100 |       0 |    8.63 | 23-177            
  ...dSelector.tsx |   33.33 |      100 |       0 |   33.33 | 20-21,26-27,36-63 
  ...nSelector.tsx |    37.5 |      100 |       0 |    37.5 | 20-21,26-27,36-58 
  ...EntryStep.tsx |   12.76 |      100 |       0 |   12.76 | 34-78             
  ToolSelector.tsx |    4.16 |      100 |       0 |    4.16 | 31-253            
 ...bagents/manage |    9.05 |      100 |       0 |    9.05 |                   
  ...ctionStep.tsx |   10.52 |      100 |       0 |   10.52 | 21-99             
  ...eleteStep.tsx |   17.07 |      100 |       0 |   17.07 | 20-59             
  ...tEditStep.tsx |   26.37 |      100 |       0 |   26.37 | ...2,37-38,51-121 
  ...ctionStep.tsx |     3.1 |      100 |       0 |     3.1 | 27-337            
  ...iewerStep.tsx |   15.21 |      100 |       0 |   15.21 | 18-66             
  ...gerDialog.tsx |    6.13 |      100 |       0 |    6.13 | 32-334            
 ...agents/runtime |    7.83 |      100 |       0 |    7.83 |                   
  ...onDisplay.tsx |    7.83 |      100 |       0 |    7.83 | ...72-502,511-549 
 ...mponents/views |   90.74 |    74.19 |     100 |   90.74 |                   
  ...sionsList.tsx |     100 |    93.75 |     100 |     100 | 15                
  McpStatus.tsx    |   87.34 |    60.52 |     100 |   87.34 | ...79,182-184,269 
  ToolsList.tsx    |     100 |      100 |     100 |     100 |                   
 src/ui/contexts   |   77.44 |    77.66 |    86.2 |   77.44 |                   
  AppContext.tsx   |      40 |      100 |       0 |      40 | 17-22             
  ...igContext.tsx |   81.81 |       50 |     100 |   81.81 | 15-16             
  ...ssContext.tsx |   85.24 |    84.21 |     100 |   85.24 | ...52-754,757-759 
  ...owContext.tsx |   89.28 |       80 |   66.66 |   89.28 | 34,47-48,60-62    
  ...onContext.tsx |   47.02 |     62.5 |   71.42 |   47.02 | ...36-239,243-246 
  ...gsContext.tsx |   83.33 |       50 |     100 |   83.33 | 17-18             
  ...usContext.tsx |     100 |      100 |     100 |     100 |                   
  ...ngContext.tsx |   71.42 |       50 |     100 |   71.42 | 17-20             
  ...nsContext.tsx |   88.23 |       50 |     100 |   88.23 | 74-75             
  ...teContext.tsx |   83.33 |       50 |     100 |   83.33 | 148-149           
  ...deContext.tsx |   76.08 |    33.33 |     100 |   76.08 | 47-48,52-59,77-78 
 src/ui/editors    |   93.33 |    85.71 |   66.66 |   93.33 |                   
  ...ngsManager.ts |   93.33 |    85.71 |   66.66 |   93.33 | 49,63-64          
 src/ui/hooks      |   80.86 |    83.63 |   84.29 |   80.86 |                   
  ...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 |   73.83 |    65.59 |   72.72 |   73.83 | ...91,646,665-671 
  ...agerDialog.ts |   88.23 |      100 |     100 |   88.23 | 20,24             
  ...odeCommand.ts |   58.82 |      100 |     100 |   58.82 | 28,33-48          
  ...Completion.ts |   92.77 |    89.28 |     100 |   92.77 | ...85-186,219-222 
  ...ifications.ts |     100 |      100 |     100 |     100 |                   
  ...tIndicator.ts |     100 |     87.5 |     100 |     100 | 43                
  ...ketedPaste.ts |    23.8 |      100 |       0 |    23.8 | 19-37             
  ...ompletion.tsx |    94.7 |       80 |     100 |    94.7 | ...92-193,195-196 
  useCompletion.ts |    92.4 |     87.5 |     100 |    92.4 | 68-69,93-94,98-99 
  ...leMessages.ts |   98.68 |       95 |     100 |   98.68 | 55                
  ...ialogClose.ts |      25 |      100 |     100 |      25 | 63-103            
  ...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 |   76.91 |    77.55 |      75 |   76.91 | ...1165,1198-1299 
  ...BranchName.ts |   87.27 |       75 |     100 |   87.27 | 19-20,53-59       
  ...oryManager.ts |   98.41 |    93.33 |     100 |   98.41 | 43                
  ...stListener.ts |     100 |      100 |     100 |     100 |                   
  ...nAuthError.ts |   76.19 |       50 |     100 |   76.19 | 39-40,43-45       
  ...putHistory.ts |    92.5 |    85.71 |     100 |    92.5 | 62-63,71,93-95    
  ...storyStore.ts |     100 |    94.11 |     100 |     100 | 66                
  useKeypress.ts   |     100 |      100 |     100 |     100 |                   
  ...rdProtocol.ts |   36.36 |      100 |       0 |   36.36 | 24-31             
  ...unchEditor.ts |   11.53 |      100 |       0 |   11.53 | 16-30,37-82       
  ...gIndicator.ts |     100 |      100 |     100 |     100 |                   
  useLogger.ts     |   21.05 |      100 |       0 |   21.05 | 15-37             
  ...oryMonitor.ts |     100 |      100 |     100 |     100 |                   
  ...ssageQueue.ts |     100 |      100 |     100 |     100 |                   
  ...delCommand.ts |     100 |      100 |     100 |     100 |                   
  ...odifyTrust.ts |     100 |      100 |     100 |     100 |                   
  ...raseCycler.ts |   95.69 |    82.35 |     100 |   95.69 | ...78-179,195-197 
  ...nfirmation.ts |      60 |      100 |     100 |      60 | 14,18-29          
  ...ndFallback.ts |   98.27 |    96.42 |     100 |   98.27 | 69-71             
  useQwenAuth.ts   |     100 |      100 |     100 |     100 |                   
  ...lScheduler.ts |   85.06 |    94.73 |     100 |   85.06 | ...00-203,291-301 
  ...oryCommand.ts |       0 |        0 |       0 |       0 | 1-7               
  ...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.8 |    84.46 |    90.9 |    80.8 | ...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 |    8.04 |      100 |       0 |    8.04 | 25-112            
  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     |   76.66 |    77.77 |   71.42 |   76.66 |                   
  ...ableModels.ts |   76.66 |    77.77 |   71.42 |   76.66 | ...59-61,70-72,76 
 ...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      |   69.29 |    82.79 |    78.2 |   69.29 |                   
  ...Colorizer.tsx |   82.19 |    88.23 |     100 |   82.19 | ...08-109,191-217 
  ...olePatcher.ts |      70 |    55.55 |   66.66 |      70 | ...56,59-60,64-67 
  ...nRenderer.tsx |   58.74 |    38.23 |     100 |   58.74 | ...30-136,146-148 
  ...wnDisplay.tsx |   85.75 |    88.05 |     100 |   85.75 | ...76-284,317-342 
  ...eRenderer.tsx |   78.09 |    76.19 |     100 |   78.09 | 55-83             
  ...boardUtils.ts |   31.11 |     37.5 |     100 |   31.11 | ...51-110,125-141 
  commandUtils.ts  |   93.16 |    88.09 |     100 |   93.16 | ...29,133,135-136 
  computeStats.ts  |     100 |      100 |     100 |     100 |                   
  displayUtils.ts  |     100 |      100 |     100 |     100 |                   
  formatters.ts    |   94.11 |    97.82 |     100 |   94.11 | 91-94             
  highlight.ts     |   98.63 |       95 |     100 |   98.63 | 93                
  isNarrowWidth.ts |     100 |      100 |     100 |     100 |                   
  ...olDetector.ts |    7.89 |      100 |       0 |    7.89 | ...11-112,115-116 
  ...nUtilities.ts |   69.84 |    85.71 |     100 |   69.84 | 75-91,100-101     
  ...mConstants.ts |     100 |      100 |     100 |     100 |                   
  ...storyUtils.ts |   85.78 |    72.13 |     100 |   85.78 | ...24,232-237,285 
  terminalSetup.ts |    3.67 |      100 |       0 |    3.67 | 41-390            
  textUtils.ts     |   96.52 |    94.44 |    87.5 |   96.52 | 19-20,148-149     
  updateCheck.ts   |     100 |    80.95 |     100 |     100 | 27-39             
 src/utils         |   65.03 |    91.48 |   92.45 |   65.03 |                   
  ...tification.ts |     100 |    83.33 |     100 |     100 | 31                
  checks.ts        |   33.33 |      100 |       0 |   33.33 | 23-28             
  cleanup.ts       |   65.38 |      100 |   66.66 |   65.38 | 28-37             
  commands.ts      |     100 |      100 |     100 |     100 |                   
  commentJson.ts   |     100 |      100 |     100 |     100 |                   
  deepMerge.ts     |     100 |    89.65 |     100 |     100 | 41-43,49          
  ...ScopeUtils.ts |   97.56 |    88.88 |     100 |   97.56 | 67                
  ...arResolver.ts |   96.42 |    96.15 |     100 |   96.42 | 111-112           
  errors.ts        |     100 |    96.29 |     100 |     100 | 76                
  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                
  ...iveHelpers.ts |   96.21 |    91.83 |     100 |   96.21 | ...38-439,544,557 
  package.ts       |   88.88 |       80 |     100 |   88.88 | 33-34             
  processUtils.ts  |     100 |      100 |     100 |     100 |                   
  readStdin.ts     |   79.24 |       90 |      80 |   79.24 | 31-38,50-52       
  relaunch.ts      |      98 |    83.33 |     100 |      98 | 68                
  resolvePath.ts   |   66.66 |       25 |     100 |   66.66 | 12-13,16,18-19    
  sandbox.ts       |       0 |        0 |       0 |       0 | 1-994             
  settingsUtils.ts |   87.54 |    93.81 |   96.87 |   87.54 | ...92-419,467-468 
  spawnWrapper.ts  |     100 |      100 |     100 |     100 |                   
  ...upWarnings.ts |     100 |      100 |     100 |     100 |                   
  systemInfo.ts    |   98.92 |    85.71 |     100 |   98.92 | 164               
  ...InfoFields.ts |   97.72 |    81.81 |     100 |   97.72 | 109-110           
  ...entEmitter.ts |     100 |      100 |     100 |     100 |                   
  ...upWarnings.ts |   91.17 |    82.35 |     100 |   91.17 | 67-68,73-74,77-78 
  version.ts       |     100 |       50 |     100 |     100 | 11                
  windowTitle.ts   |     100 |      100 |     100 |     100 |                   
-------------------|---------|----------|---------|---------|-------------------
Core Package - Full Text Report
-------------------|---------|----------|---------|---------|-------------------
File               | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-------------------|---------|----------|---------|---------|-------------------
All files          |   77.53 |    83.75 |    80.3 |   77.53 |                   
 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.49 |    82.53 |   81.25 |   78.49 |                   
  codeAssist.ts    |    17.5 |      100 |       0 |    17.5 | 16-38,41-54       
  converter.ts     |   94.96 |    93.02 |     100 |   94.96 | ...85,199,216-217 
  ...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        |   77.94 |    80.11 |   55.63 |   77.94 |                   
  config.ts        |   76.44 |    77.39 |    51.3 |   76.44 | ...1292,1307-1308 
  constants.ts     |     100 |      100 |     100 |     100 |                   
  models.ts        |     100 |      100 |     100 |     100 |                   
  storage.ts       |   83.83 |       95 |   73.07 |   83.83 | ...21-122,125-126 
 src/core          |    79.6 |    82.81 |   79.38 |    79.6 |                   
  baseLlmClient.ts |     100 |    96.55 |     100 |     100 | 122               
  client.ts        |   82.79 |    78.86 |   73.91 |   82.79 | ...52-656,664-680 
  ...tGenerator.ts |   47.93 |       70 |      50 |   47.93 | ...17,147,168-211 
  ...lScheduler.ts |    78.5 |    80.52 |   89.28 |    78.5 | ...1261,1303-1307 
  geminiChat.ts    |   86.63 |    83.76 |      80 |   86.63 | ...77-580,623-624 
  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 |   92.59 |       75 |      50 |   92.59 | 41-42             
  prompts.ts       |   88.44 |     87.5 |    87.5 |   88.44 | ...96-797,800-801 
  tokenLimits.ts   |     100 |    86.66 |     100 |     100 | 41-42             
  turn.ts          |   95.95 |    88.23 |     100 |   95.95 | ...29,342-343,391 
 ...ntentGenerator |   66.85 |    82.31 |   86.76 |   66.85 |                   
  constants.ts     |     100 |      100 |     100 |     100 |                   
  converter.ts     |   46.17 |    63.06 |   69.56 |   46.17 | ...1095,1114-1151 
  errorHandler.ts  |     100 |      100 |     100 |     100 |                   
  index.ts         |       0 |        0 |       0 |       0 | 1-101             
  ...tGenerator.ts |      50 |     87.5 |    87.5 |      50 | 87-99,103-156     
  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.85 |    95.55 |     100 |   98.85 | 161-162           
 ...rator/provider |   97.36 |    89.58 |     100 |   97.36 |                   
  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 |                   
  modelscope.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.54 |    83.25 |   75.47 |   71.54 |                   
  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 |   89.06 |    79.31 |     100 |   89.06 | ...36,143-147,160 
  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          |   84.41 |    78.98 |    97.1 |   84.41 |                   
  ...tGenerator.ts |   98.63 |    98.18 |     100 |   98.63 | 103-104           
  qwenOAuth2.ts    |   80.85 |     73.1 |   92.85 |   80.85 | ...25,865,880-896 
  ...kenManager.ts |   84.24 |    76.03 |     100 |   84.24 | ...52-757,778-783 
 src/services      |   86.24 |    81.79 |   91.01 |   86.24 |                   
  ...ionService.ts |    95.1 |    95.23 |     100 |    95.1 | 134-142           
  ...ingService.ts |   74.28 |    59.37 |    92.3 |   74.28 | ...77-389,405-406 
  ...eryService.ts |   96.73 |    96.66 |    87.5 |   96.73 | 112,140-141       
  ...temService.ts |     100 |      100 |     100 |     100 |                   
  gitService.ts    |   66.29 |     90.9 |   55.55 |   66.29 | ...03-113,116-120 
  ...ionService.ts |   97.67 |    91.25 |     100 |   97.67 | ...79-380,386-387 
  ...ionService.ts |   79.12 |    73.19 |   88.88 |   79.12 | ...50-671,679-703 
  ...ionService.ts |   86.86 |    78.26 |     100 |   86.86 | ...68-669,673-678 
 src/subagents     |   84.92 |    79.49 |   84.21 |   84.92 |                   
  ...tin-agents.ts |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  ...ent-events.ts |   83.33 |      100 |      50 |   83.33 | 126-127,130-131   
  ...gent-hooks.ts |       0 |        0 |       0 |       0 | 1                 
  ...nt-manager.ts |   85.21 |     81.2 |   95.45 |   85.21 | ...30-731,800-801 
  ...statistics.ts |   97.97 |    82.92 |     100 |   97.97 | 111,131,168,201   
  subagent.ts      |   76.23 |     60.5 |      68 |   76.23 | ...80-881,887-888 
  types.ts         |     100 |      100 |     100 |     100 |                   
  validation.ts    |    92.4 |    96.59 |     100 |    92.4 | 54-59,63-68,72-77 
 src/telemetry     |   73.08 |    88.21 |   76.78 |   73.08 |                   
  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       |      60 |    68.18 |   56.25 |      60 | ...34-753,848-871 
  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         |   87.98 |      100 |   89.09 |   87.98 | ...62-671,702-722 
  uiTelemetry.ts   |    94.7 |    96.15 |   91.66 |    94.7 | 130,159-165       
 ...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 |   71.91 |    83.54 |   72.91 |   71.91 |                   
  event-types.ts   |       0 |        0 |       0 |       0 |                   
  qwen-logger.ts   |   71.91 |    83.33 |   72.34 |   71.91 | ...57-861,904-905 
 src/test-utils    |   93.88 |    93.33 |   77.77 |   93.88 |                   
  config.ts        |     100 |      100 |     100 |     100 |                   
  index.ts         |     100 |      100 |     100 |     100 |                   
  mock-tool.ts     |   92.14 |     92.3 |      76 |   92.14 | ...70,174-175,188 
  ...aceContext.ts |     100 |      100 |     100 |     100 |                   
 src/tools         |   75.22 |     82.2 |   83.27 |   75.22 |                   
  diffOptions.ts   |     100 |      100 |     100 |     100 |                   
  edit.ts          |   84.89 |    85.71 |   85.71 |   84.89 | ...60-461,550-590 
  exitPlanMode.ts  |   85.29 |    86.36 |     100 |   85.29 | ...03-108,136-148 
  glob.ts          |   96.05 |       88 |      90 |   96.05 | 91-97,215,218     
  grep.ts          |   71.35 |    85.29 |   76.47 |   71.35 | ...22,462,470-477 
  ls.ts            |   96.31 |    88.52 |     100 |   96.31 | 141-146,177,181   
  ...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.42 |    83.87 |   90.47 |   74.42 | ...39-347,449-533 
  ...iable-tool.ts |     100 |    84.61 |     100 |     100 | 99,106            
  read-file.ts     |    96.2 |    86.48 |    87.5 |    96.2 | 64,66,68-69,75-76 
  ...many-files.ts |   78.99 |    78.87 |   85.71 |   78.99 | ...46-447,454-455 
  ripGrep.ts       |   95.61 |    88.67 |     100 |   95.61 | ...23,226,304-305 
  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.74 |    80.95 |   71.42 |   78.74 | ...95-420,441-442 
  tool-error.ts    |     100 |      100 |     100 |     100 |                   
  tool-names.ts    |     100 |      100 |     100 |     100 |                   
  tool-registry.ts |      69 |    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.22 |    60.86 |      90 |   85.22 | ...33-234,236-237 
  write-file.ts    |   83.33 |    83.33 |      75 |   83.33 | ...16-419,431-465 
 ...ols/web-search |   72.49 |    76.59 |   81.25 |   72.49 |                   
  base-provider.ts |    40.9 |    33.33 |     100 |    40.9 | 40-43,48-56       
  index.ts         |   76.99 |    84.61 |   91.66 |   76.99 | ...47-151,257-267 
  types.ts         |       0 |        0 |       0 |       0 | 1                 
  utils.ts         |      60 |       50 |      50 |      60 | 35-42             
 ...arch/providers |   46.73 |     64.7 |   72.72 |   46.73 |                   
  ...e-provider.ts |       8 |      100 |       0 |       8 | 68-83,89-199      
  ...e-provider.ts |      82 |    55.55 |     100 |      82 | 57-58,61-62,72-76 
  ...y-provider.ts |   89.79 |       75 |     100 |   89.79 | 62-66             
 src/utils         |   84.15 |    88.74 |   87.67 |   84.15 |                   
  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             
  editHelper.ts    |   91.84 |    80.45 |     100 |   91.84 | ...73-475,484-485 
  editor.ts        |   96.95 |    93.87 |     100 |   96.95 | ...90-191,193-194 
  ...entContext.ts |     100 |    94.73 |     100 |     100 | 120               
  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     |   94.75 |       90 |     100 |   94.75 | ...26-428,476-482 
  formatters.ts    |   54.54 |       50 |     100 |   54.54 | 12-16             
  ...eUtilities.ts |    95.4 |    94.87 |     100 |    95.4 | 16-17,45-46       
  ...rStructure.ts |   95.96 |    94.93 |     100 |   95.96 | ...14-117,345-347 
  getPty.ts        |    12.5 |      100 |       0 |    12.5 | 21-34             
  ...noreParser.ts |    92.3 |    89.13 |     100 |    92.3 | ...15-116,186-187 
  gitUtils.ts      |   59.25 |    76.92 |   66.66 |   59.25 | 41-42,51-74,88-89 
  ...rePatterns.ts |     100 |      100 |     100 |     100 |                   
  ...ionManager.ts |     100 |       90 |     100 |     100 | 23                
  jsonl-utils.ts   |   11.47 |       50 |    12.5 |   11.47 | ...48-181,187-193 
  ...-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  |   85.85 |    81.48 |     100 |   85.85 | ...98-100,123-128 
  partUtils.ts     |     100 |      100 |     100 |     100 |                   
  pathReader.ts    |     100 |      100 |     100 |     100 |                   
  paths.ts         |    74.5 |    97.56 |     100 |    74.5 | 46-105            
  ...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.02 |     100 |   63.77 | ...98-318,363-378 
  ripgrepUtils.ts  |   36.19 |       75 |   55.55 |   36.19 | ...77-230,246-334 
  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 
  shell-utils.ts   |   86.82 |    95.55 |   93.33 |   86.82 | ...21-534,554-558 
  ...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 |    91.66 |     100 |     100 | 71                
  tool-utils.ts    |    93.6 |       92 |     100 |    93.6 | ...58-159,162-163 
  ...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 requested a review from pomelo-nwu December 4, 2025 06:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Integrate DeepSeek V3.2 Thinking Mode

2 participants