Fixes#10843
The VSCode Language Model API requires that when an Assistant message
contains LanguageModelToolCallPart(s), the immediately next message MUST
be a User message with LanguageModelToolResultPart(s) with matching callIds.
This commit adds a validateAndRepairToolSequence function that:
- Identifies assistant messages with tool calls
- Checks that the next message is a user message with matching tool results
- Adds placeholder ToolResultParts for any missing tool results
- Creates user messages with placeholder results when no user message follows
This fixes the 'Invalid request: Tool call part must be followed by a User
message with a LanguageModelToolResultPart with a matching callId' error
that occurs when using MCP servers (like JIRA/Confluence) with the vscode-lm
provider in versions after 3.36.
* feat: warn users when too many MCP tools are enabled
- Add WarningRow component for displaying generic warnings with icon, title, message, and optional docs link
- Add TooManyToolsWarning component that shows when users have more than 40 MCP tools enabled
- Add MAX_MCP_TOOLS_THRESHOLD constant (40)
- Add i18n translations for the warning message
- Integrate warning into ChatView to display after task header
- Add comprehensive tests for both components
Closes ROO-542
* Moves constant to the right place
* Move it to the backend
* i18n
* Add actionlink that takes you to MCP settings in this case
* Add to MCP settings too
* Bump max tools up to 60 since github itself has 50+
* DRY
* Fix test
---------
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
* feat: add debug mode toggle to settings
* Update About component with debug mode description
* i18n: add debug mode strings to settings locales
* Update debug mode description in all locales
* fix: post state to webview after debugSetting update
This addresses the review feedback that the debugSetting handler was not
posting updated state back to the webview, which could cause the UI to
stay stale until another state refresh occurred.
* fix: clarify debug mode description to specify task header location
Updated debugMode.description across all 18 locales to clarify that
debug buttons appear in the task header, per review feedback.
* fix: remove redundant postStateToWebview call after debug setting update
* Update src/core/webview/webviewMessageHandler.ts
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
---------
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>