Commit graph

1233 commits

Author SHA1 Message Date
Matt Rubens
55d23e0d26
chore: add changeset for v3.24.0 (#6237) 2025-07-26 00:22:11 -04:00
Daniel
0504199ce4
refactor: consolidate HuggingFace models API into providers/fetchers (#6228)
refactor: move HuggingFace models API to providers/fetchers

- Moved getHuggingFaceModels functionality from src/api/huggingface-models.ts to src/api/providers/fetchers/huggingface.ts
- Added getHuggingFaceModelsWithMetadata function to maintain the same API interface
- Updated import in webviewMessageHandler.ts to use the new location
- Deleted the now redundant src/api/huggingface-models.ts file

This consolidates all HuggingFace-related API logic into a single location within the providers/fetchers directory structure.
2025-07-25 20:39:18 -04:00
Daniel
440ec30d66
fix: add error message when no workspace folder is open for code indexing (#6227)
* fix: add error message when no workspace folder is open for code indexing

- Add 'Indexing requires an open workspace folder' error message in orchestrator.ts
- Replace hardcoded error string with translatable message using i18n
- Add translations for the error message in all 18 supported languages
- Ensures proper error handling when users attempt code indexing without a workspace

* fix: add workspace folder checks for code indexing operations

- Add null checks for codeIndexManager in webviewMessageHandler
- Show translated error message when no workspace folder is open
- Prevents crashes when users try to use indexing features without a workspace
- Uses existing translation key from orchestrator

* Update src/i18n/locales/ca/embeddings.json

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-07-25 20:14:35 -04:00
roomote[bot]
f45d9be709
fix: respect maxReadFileLine setting for file mentions to prevent context exhaustion (#6073)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-25 16:45:45 -04:00
KJ7LNW
25857a4809
feat: add efficiency warning for single SEARCH/REPLACE blocks in apply_diff (#6055)
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-25 00:40:43 -04:00
Hannes Rudolph
1e17b3b3bb
feat: add confirmation dialog and proper cleanup for marketplace mode removal (#6136)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-24 00:57:10 -04:00
roomote[bot]
3977bbc0ce
feat: add support for Agent Rules standard via AGENTS.md (#5966) (#5969)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-24 00:42:11 -04:00
Matt Rubens
bcad858b2f
basic hugging face provider (#6134)
* basic hugging face provider

* fetch hf models and providers

* save provider to config

* Update translations

---------

Co-authored-by: Thomas G. Lopes <26071571+TGlide@users.noreply.github.com>
2025-07-23 15:19:23 -04:00
Hannes Rudolph
0323256006
feat: Add settings to control diagnostic messages (#5524) (#5582)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-07-23 14:49:41 -04:00
KJ7LNW
3e89b06f25
debug: Add ErrorBoundary component for better error handling (#5085)
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-07-23 08:45:35 -04:00
Christiaan Arnoldus
1c26bbc5ab
Fix todo list toggle not working (#6103) 2025-07-23 08:39:27 -04:00
Chris Estreich
9956cc1f48
Use SIGKILL for command execution timeouts in the "execa" variant (#6071) 2025-07-23 01:47:10 -07:00
Murilo Pires
0cb76d9ae9
fix: add Git installation check for checkpoints feature (#3109) (#5920)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-22 21:31:20 -04:00
Hannes Rudolph
2b8228ef0c
docs: clarify when to use update_todo_list tool (#5926)
* docs: clarify when to use update_todo_list tool

Added 'complicated' to the condition for when to use the update_todo_list tool,
making it clearer that the tool should be used for tasks that are either
complicated OR involve multiple steps.

* fix: update vscode mock and snapshots for update_todo_list tool changes

- Add missing RelativePattern export to vscode mock
- Fix onDidChangeWorkspaceFolders function in workspace mock
- Update test snapshots to reflect new "complicated" text in update_todo_list tool documentation
- Build tree-sitter WASM files to fix parsing tests

Fixes failing CI tests related to PR #5926 documentation changes.

* Delete package-lock.json

* revert: remove unrelated changes to src/__mocks__/vscode.js

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-07-22 17:37:27 -04:00
roomote[bot]
dbde23c84e
fix: add case sensitivity mention to suggested fixes in apply_diff error message (#6076)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-22 14:15:28 -07:00
roomote[bot]
b1bc085aa6
Add todo list tool enable checkbox to provider advanced settings (#6032)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-21 23:27:28 -04:00
Matt Rubens
8334f0869f
Update the max_tokens fallback logic in the sliding window (#5993) 2025-07-21 22:26:39 -04:00
roomote[bot]
0500894b34
fix: sort symlinked rules files by symlink names, not target names (#5903)
* fix: sort symlinked rules files alphabetically

- Add alphabetical sorting to readTextFilesFromDirectory function
- Sort by basename of filename (case-insensitive) for consistent order
- Fixes issue where symlinked rules were read in random order
- Add test case to verify alphabetical sorting behavior

Fixes #4131

* chore: remove solution-indicating comment per PR feedback

* fix: sort symlinks by their symlink names, not target names

- Modified readTextFilesFromDirectory to store both original symlink path and resolved target path
- Updated resolveDirectoryEntry and resolveSymLink to track both paths
- Sort files by original path (symlink name) but read content from resolved path
- Added test to verify symlinks are sorted by their names, not their target names
- This ensures consistent alphabetical ordering when using symlinks in rules directories

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-21 19:37:42 -04:00
roomote[bot]
2eb586b422
fix: properly distinguish between user cancellations and API failures (#6025)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-07-21 11:16:38 -07:00
Hannes Rudolph
464a3ffa5f
fix: resolve global mode export not including rules files (#5834) (#5837)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-21 11:16:11 -07:00
roomote[bot]
cfda8392fb
feat: auto-omit MCP content when no servers are configured (#5889)
* feat: auto-omit MCP content when no servers are configured

- Modify system prompt generation to detect when no MCP servers are defined
- Only include MCP sections when mode has mcp group AND servers exist
- Pass undefined mcpHub to capabilities and tools when no servers available
- Reduces system prompt verbosity when MCP functionality is not in use

* fix: add missing Uri and RelativePattern exports to VSCode mocks

- Added Uri and RelativePattern exports to global VSCode mock in __mocks__/vscode.js
- Fixed McpHub.spec.ts VSCode mock to include Uri and RelativePattern
- Fixed Task.spec.ts VSCode mock to include Uri and RelativePattern with proper TypeScript typing
- Resolves unhandled rejection errors in unit tests caused by missing VSCode API mocks

* fix: add proper TypeScript typing for RelativePattern in McpHub test mock

* fix: resolve unit test failures in PR #5889

- Fix VSCode mock onDidChangeWorkspaceFolders to accept callback parameter
- Update MCP test mocks to properly test auto-omit functionality
- Update test snapshots to reflect new MCP content omission behavior
- All core functionality tests now passing

* chore: remove package-lock.json as project uses npm

* fix: remove unrelated mock changes from PR

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-20 15:25:26 -04:00
SannidhyaSah
de13d8a5cf
fix: move context condensing prompt to Prompts section (#4924) (#5279)
* feat: move context condensing prompt from context to prompts page

* fix: remove unused imports after lint fixes
2025-07-19 22:24:08 -04:00
roomote[bot]
37300ef0c5
fix: add character limit to prevent terminal output context explosion (#5777)
* fix: add character limit to prevent terminal output context explosion

- Enhanced truncateOutput function to accept character limits alongside line limits
- Character limits take priority over line limits to prevent context window explosion
- Added terminalOutputCharacterLimit setting (default: 100,000 characters)
- Updated all terminal output processing to use both limits
- Added comprehensive tests for character limit functionality

Fixes #5775

* feat: add terminal output character limit setting to UI

- Add character limit slider to Terminal Settings UI (default: 50,000)
- Update ExtensionStateContext to manage character limit state
- Add validation for positive character limit values
- Add English translation and translations for all 17 supported languages
- Connect UI to backend through proper message handling
- Character limit takes precedence over line limit to prevent memory issues

* fix: update test expectations for character limit edge cases

- Fix multi-byte character test to account for JavaScript's string length behavior
- Fix newline content test to match actual slice behavior
- Tests now correctly validate the truncateOutput function's character limit handling

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-19 13:26:25 -04:00
SannidhyaSah
7ddc4e64f3
feat: Add Mistral embedding provider (#5932) (#5946)
* feat: add Mistral embedding provider with OpenAI Compatible Wrapper

- Implement MistralEmbedder class using OpenAI-compatible API
- Add comprehensive unit tests with 100% coverage
- Update type definitions for Mistral provider support
- Integrate Mistral option in UI components and configuration
- Add internationalization support for Mistral provider
- Fix API key storage and retrieval for embedding providers
- Update service factory to support Mistral embeddings
- Add proper error handling and validation

This implementation allows users to use Mistral's embedding models
through the existing OpenAI-compatible wrapper approach, providing
a seamless integration experience.

* feat: add Mistral embedding provider support

- Implement MistralEmbedder class with API integration
- Add Mistral models to embedding model configurations
- Update UI to include Mistral provider option
- Add comprehensive unit tests for Mistral embedder
- Update type definitions and interfaces
- Add internationalization support for Mistral provider

* fix: add missing translations for Mistral embedding provider

* fix: address PR review feedback - improve translations and add clarifying comment
2025-07-19 13:24:24 -04:00
roomote[bot]
90148401e9
Add command timeout allowlist with IPC support (#5910)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-18 16:48:39 -04:00
roomote[bot]
b6bded9818
feat: add configurable delay for Go diagnostics to prevent premature error reporting (#5863)
* feat: add configurable delay for Go diagnostics to prevent premature error reporting

- Add diagnosticsDelayMs setting (default: 2000ms) to allow linters time to process
- Add diagnosticsEnabled setting to optionally disable diagnostic checking entirely
- Update DiffViewProvider.saveChanges() to use configurable delay before checking diagnostics
- Update all tool files (writeToFile, searchAndReplace, insertContent, applyDiff, multiApplyDiff) to pass diagnostic settings
- Add comprehensive tests for new diagnostic functionality
- Fixes issue where Go diagnostics errors were submitted to LLM before linter could clean up unused imports

Resolves #5859

* fix: add missing TypeScript type definitions for diagnostic settings

- Add diagnosticsDelayMs and diagnosticsEnabled to globalSettingsSchema
- Include properties in ExtensionState Pick type
- Add default values to EVALS_SETTINGS
- Fix VSCode mock to include DiagnosticSeverity for tests
- Resolves compilation errors in ClineProvider and webviewMessageHandler

* fix: update test mocks to support diagnostic settings in tool tests

- Add providerRef mock to insertContentTool and writeToFileTool tests
- Update mocks to include diagnosticsEnabled and diagnosticsDelayMs settings
- Fix test expectations to match new implementation with diagnostic configuration
- Resolves failing unit tests for insertContentTool.spec.ts and writeToFileTool.spec.ts

* fix: remove package-lock.json file (project uses pnpm)

* refactor: use existing writeDelayMs instead of diagnosticsDelayMs

- Remove diagnosticsDelayMs setting in favor of existing writeDelayMs
- Add min(0) validation for writeDelayMs in global settings schema
- Add error handling around delay function calls in DiffViewProvider
- Create DEFAULT_WRITE_DELAY_MS constant (1000ms) to replace repeated defaults
- Update all tool files to pass writeDelayMs instead of diagnosticsDelayMs
- Remove diagnosticsDelayMs from webview message handlers and types
- Update test files to use writeDelayMs instead of diagnosticsDelayMs

This refactoring consolidates diagnostic delay functionality to use the
existing writeDelayMs setting as requested in PR feedback.

* fix: resolve failing unit tests and TypeScript compilation errors

- Fix DiffViewProvider test to expect correct default delay (1000ms instead of 2000ms)
- Fix TypeScript type errors in ClineProvider test mock state object
- Correct terminalPowershellCounter and terminalZdotdir types to boolean
- Fix pinnedApiConfigs type from array to Record<string, boolean>

* fix: remove unrelated changes from ClineProvider.spec.ts

- Removed extensive unrelated property additions to mock state
- Kept only diagnosticsEnabled property which is related to Go diagnostics delay feature
- Removed unused DEFAULT_WRITE_DELAY_MS import
- Restored original structure and organization of mock state object

This addresses the feedback to remove unrelated changes while preserving
the necessary diagnostic functionality for the Go diagnostics delay feature.

* refactor: move DEFAULT_WRITE_DELAY_MS to packages/types/src/global-settings.ts

- Move DEFAULT_WRITE_DELAY_MS constant from src/shared/constants.ts to packages/types/src/global-settings.ts
- Update all import statements in affected files to use @roo-code/types
- Delete src/shared/constants.ts file as it is no longer needed
- Files updated:
  - src/integrations/editor/DiffViewProvider.ts
  - src/core/webview/ClineProvider.ts
  - src/core/tools/multiApplyDiffTool.ts
  - src/core/tools/applyDiffTool.ts
  - src/core/tools/searchAndReplaceTool.ts
  - src/core/tools/insertContentTool.ts
  - src/core/tools/writeToFileTool.ts

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-18 16:12:00 -04:00
Matt Rubens
a6e16e80d9
Prevent completion with open todos (#5716)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-18 11:31:31 -04:00
Daniel
a28d50e20c
fix: detect Claude models by name for API protocol selection (#5840)
* fix: detect Claude models by name for API protocol selection

- Modified getApiProtocol to accept modelId parameter
- Added check for 'claude' in model name (case-insensitive)
- Updated Task.ts to pass model ID to getApiProtocol
- Added comprehensive tests for the new logic

Fixes #5830

* fix: limit Claude model detection to vertex and bedrock providers only

- Modified getApiProtocol to only detect Claude models by name when provider is vertex or bedrock
- Added comprehensive unit tests for getApiProtocol function as requested in PR review
- This ensures Claude models are only auto-detected for providers that need it
2025-07-17 18:27:52 -04:00
Will Li
fb374b3e94
Message edit/delete overhaul (#5538)
* improved chat row first pass

* big UI improvements

* working functionality

* tests working

* ok finally tests working for real!

* translations

* add back hidden flag

* remove option to skip notif

* fixed image issue

* ui fix

* put back edit flag

* oops test fix

* reduce margins

* code review
2025-07-17 10:16:57 -04:00
Daniel
2458751424
fix: prevent empty mode names from being saved (#5766) (#5794) 2025-07-16 17:50:14 -04:00
Christiaan Arnoldus
a92ee567df
Format time in ISO 8601 (#5793) 2025-07-16 15:58:11 -04:00
Murilo Pires
93f88b45b6
feat: Add configurable error & repetition limit with unified control (#5654) (#5752)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-15 18:25:43 -04:00
Matt Rubens
d0452d0d5c
Add telemetry for todos (#5746) 2025-07-15 10:47:50 -04:00
Matt Rubens
5762964b56
Add Kimi K2 model and better support (#5717) 2025-07-15 00:31:18 -04:00
Matt Rubens
1187a7c50e
Tweaks to command timeout error (#5700) 2025-07-14 14:38:01 -04:00
Roomote Bot
e0196320b5
feat: Add configurable timeout for command execution (#5668)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-07-14 14:12:12 -04:00
Roomote Bot
f71275ef55
fix: resolve vector dimension mismatch error when switching embedding models (#5616) (#5617)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-07-14 14:10:09 -04:00
chris-garrett
a163053430
fix: [5424] return the cwd in the exec tool's response so that the model is not lost after subsequent calls (#5667) 2025-07-13 22:36:25 -04:00
Daniel
5bffebde58
feat: add enable/disable toggle for code indexing (#5599) 2025-07-12 12:55:50 -04:00
Matt Rubens
cdacdfd54b
Add a command denylist (#5614)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-07-12 12:36:04 -04:00
Hannes Rudolph
39b83070c3
feat: Enable dynamic tool selection in architect mode for context discovery (#5607)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-11 22:47:45 -04:00
Murilo Pires
9aa2e6ea54
Fix/issue 2897 mermaid syntax warning (#5530) 2025-07-11 17:46:38 -04:00
Daniel
0ecae9d4f1
fix: exclude cache tokens from context window calculation (#5603)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-07-11 16:54:51 -04:00
Noritaka Kobayashi
ab55854702
chore: fix typos in comment & document (#5569) 2025-07-10 11:33:26 -04:00
Daniel
12ae900660
fix: handle null/empty custom modes files to prevent 'Cannot read properties of null' error (#5526)
* fix: handle null/empty custom modes files to prevent 'Cannot read properties of null' error

- Fix SimpleInstaller to ensure existingData is always an object after yaml.parse
- Fix CustomModesManager.parseYamlSafely to return empty object instead of null
- Ensure customModes array is always initialized in both install and remove operations
- Add tests for empty/null file handling scenarios
- Update existing tests to match correct behavior

* fix: handle null/undefined settings in updateModesInFile and loadModesFromFile

- Ensure settings object exists before accessing customModes property
- Initialize customModes as empty array if undefined
- Prevent 'Cannot read properties of null' error during mode import
- Add proper validation in loadModesFromFile before schema check
2025-07-09 15:49:32 -05:00
Matt Rubens
7fe1c0f47a
feat: prepare v3.23.0 release (#5497) 2025-07-09 00:05:23 -04:00
Ruakij
a2815e2026
Fix #3652: Allow insertContentTool to create new files with content (#4382)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-08 23:14:28 -04:00
Hannes Rudolph
0028c56711
fix: strengthen codebase_search enforcement throughout conversations (#5486) 2025-07-08 23:12:53 -04:00
Daniel
09e348e21c
Move codebase indexing out of experimental (#5481) 2025-07-08 23:07:36 -04:00
Will Li
917b2cc882
Simplify edit panel (#5488)
fix
2025-07-08 20:11:04 -04:00