This adds support for inheriting custom modes from git submodules:
- Add "submodule" source type to mode schema in packages/types/src/mode.ts
- Add `submodulePath` field to track which submodule a mode comes from
- Add `includeSubmoduleModes` setting in global-settings.ts (default: false)
- Create git-submodules.ts utility for recursive submodule detection
- Modify CustomModesManager to load modes from submodules with proper
precedence (project > submodule > global)
- Add file watchers for submodule .roomodes files
- Update UI to show submodule indicator in mode selector and make
submodule modes read-only (disable rename/delete/edit buttons)
Addresses Issue #10382
* feat: add optional mode field to slash command front matter
- Add mode field to Command interface
- Update command parsing to extract mode from frontmatter
- Modify RunSlashCommandTool to automatically switch mode when specified
- Add comprehensive tests for mode field parsing and switching
- Update existing tests to include mode field
* Make it work for manual slash commands too
---------
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
* Add support for skills
* fix: use type-only import for ClineProvider and relative paths in skills section
---------
Co-authored-by: Roo Code <roomote@roocode.com>
- Delete simpleReadFileTool.ts file
- Delete simple-read-file.ts prompt description file
- Delete single-file-read-models.ts types file
- Remove imports and usage from presentAssistantMessage.ts
- Remove imports and usage from prompts/tools/index.ts
- Remove export from packages/types/src/index.ts
This removes all traces of the legacy single-file read tool implementation that was used for specific models. All models now use the standard read_file tool.
Co-authored-by: Roo Code <roomote@roocode.com>
Implements grace retry error handling for 'no assistant messages' API
errors, following the same pattern as PR #10196 for 'no tools used'.
- Add consecutiveNoAssistantMessagesCount counter to Task.ts
- First failure: silent retry (grace retry)
- After 2+ consecutive failures: show MODEL_NO_ASSISTANT_MESSAGES error
- Add UI handling in ChatRow.tsx with ErrorRow component
- Add localized strings to all 18 locale files
- Add comprehensive tests for the grace retry behavior
- Normalize file content to LF after reading to ensure consistent matching
- Normalize search/replace strings to handle CRLF from model output
- Add comprehensive CRLF normalization tests for both tools
- Consistent with existing edit_file tool behavior
* fix: move array-specific properties into anyOf variant in normalizeToolSchema
Fixes read_file tool schema rejection with GPT-5-mini which requires
items property to be inside the { type: 'array' } variant when using
anyOf for nullable arrays.
Resolves ROO-262
* refactor: extract array-specific properties constant and helper function