* fix: handle mode selector empty state on workspace switch
When switching between VS Code workspaces, if the current mode from
workspace A is not available in workspace B, the mode selector would
show an empty string. This fix adds fallback logic to automatically
switch to the default "code" mode when the current mode is not found
in the available modes list.
Changes:
- Import defaultModeSlug from @roo/modes
- Add fallback logic in selectedMode useMemo to detect when current
mode is not available and automatically switch to default mode
- Add tests to verify the fallback behavior works correctly
- Export defaultModeSlug in test mock for consistent behavior
* fix: prevent infinite loop by moving fallback notification to useEffect
* fix: prevent infinite loop by using ref to track notified invalid mode
* refactor: clean up comments in ModeSelector fallback logic
---------
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
copy: update /slack page messaging
- Update trial CTA to 'Start a free 14 day Team trial'
- Replace 'humans' with 'your team' in value props subtitle
- Shorten value prop titles for consistent one-line display
- Improve Thread-aware and Open to all descriptions
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>