Commit graph

2443 commits

Author SHA1 Message Date
Roo Code
58f9492225 fix: prevent data loss in checkpoint restoration by removing dangerous git clean
- Removed the dangerous `git clean -d -f` command that was deleting all untracked files
- Simplified restoration to use only `git reset --hard` which preserves untracked files
- Added validation to ensure worktree configuration is correct before restoration
- Added check to verify commit exists before attempting restoration
- Added recovery methods (listStashes, recoverFromStash) for emergency data recovery
- Updated tests to reflect the safer behavior

This fixes the critical data loss issue where users were losing their entire codebase
when restoring checkpoints, especially when switching between different tools like
Copilot and Roo Code.

Fixes #6209
2025-07-25 12:53:18 +00:00
John Richmond
d62a260576
Add support for bedrock api keys (#6132)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-25 01:04:49 -04:00
Nahim EL ATMANI
b1406342a8
Fix Ollama API URL normalization by removing trailing slashes (#6079)
Co-authored-by: Nahim El Atmani <2959826+Naam@users.noreply.github.com>
2025-07-25 00:41:35 -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
Chris Estreich
7f70145cb1
Expose default modes in @roo-code/types (#6184) 2025-07-24 22:13:40 -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
github-actions[bot]
d720d35483
Changeset version bump (#6131)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-23 13:56:21 -04:00
github-actions[bot]
714fafd328
Changeset version bump (#6111)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-23 09:07:14 -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
github-actions[bot]
2411c8faa4
Changeset version bump (#6092)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-22 21:45:53 -04: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
roomote[bot]
8dcc078d85
feat: add Qwen/Qwen3-235B-A22B-Instruct-2507 model to Chutes AI provider (#6052)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-22 21:17:14 -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
Matt Rubens
df6c57d293
feat: add moonshot provider (#6046)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: CellenLee <99465814+CellenLee@users.noreply.github.com>
2025-07-22 00:37:24 -04: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
github-actions[bot]
e2970265dd
Changeset version bump (#5953)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-19 11:58:06 -04:00
Daniel
cc369da2d5
feat: add batch limiting to code indexer (#5891)
feat: add batch limiting to code indexer to control memory usage

- Add MAX_PENDING_BATCHES constant (20) to limit concurrent batches
- Implement backpressure mechanism to pause file parsing when limit reached
- Prevent memory overflow during large codebase indexing
2025-07-19 09:37:37 -04:00
Daniel
020c2337dd
feat: add global rate limiting for OpenAI-compatible embeddings (#5854)
* feat: add global rate limiting for OpenAI-compatible embeddings

- Implement shared rate limit state across all embedder instances
- Add exponential backoff (5s base, up to 5 minutes max)
- Track consecutive rate limit errors with auto-reset after 60s
- Add thread-safe mutex for concurrent access
- Remove verbose logging to prevent log flooding during retries
- Add comprehensive test coverage for rate limiting behavior

This prevents multiple parallel batches from overwhelming APIs with
restrictive rate limits by coordinating delays globally.

* fix: restore original logging while keeping rate limit logging silent

- Restored all original console.warn and console.error calls that were inadvertently removed
- Only the rate limit retry warning remains silent (no console output)
- Fixed test expectation to use correct error variable
- All existing logging behavior is preserved
2025-07-19 09:37:01 -04:00
github-actions[bot]
64d35dc357
Changeset version bump (#5935)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-07-18 20:21:26 -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
roomote[bot]
38d8edf05a
feat: move marketplace icon from overflow menu to top navigation (#5864)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-07-17 22:05:49 -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
github-actions[bot]
2f4d833ebc
Changeset version bump (#5836)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-07-17 11:53:04 -07:00
Chris Estreich
921d7ca6c4
Log API-initiated tasks to a tmp directory (#5833) 2025-07-17 11:47:21 -07:00
github-actions[bot]
88f1af2ebe
Changeset version bump (#5829)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-07-17 11:01:01 -07:00
Chris Estreich
80fcd1ba74
Allow command execution timeout to be set via IPC task execution (#5825)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-07-17 10:41:40 -07: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
Daniel
a7a6bcb30f
fix: resolve DirectoryScanner memory leak and improve file limit handling (#5785) 2025-07-16 15:06:26 -04:00
Daniel
8c8888a977
feat: increase Ollama API timeout values and extract as constants (#5778)
- Increase embedding request timeout from 10s to 60s
- Increase validation request timeouts from 5s to 30s
- Extract timeout values as module-level constants for better maintainability
- OLLAMA_EMBEDDING_TIMEOUT_MS = 60000 (60 seconds)
- OLLAMA_VALIDATION_TIMEOUT_MS = 30000 (30 seconds)
2025-07-16 09:30:33 -04:00
Murilo Pires
d513b9c0e1
fix: Exclude Terraform and Terragrunt cache directories from checkpoints (#4601) (#5750)
* feat: add Issue Fixer Orchestrator mode

* fix: Exclude Terraform and Terragrunt cache directories from checkpoints (#4601)
2025-07-15 19:50:55 -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
axb
5557d77a96
list-files must include at least the first-level directory contents (#5303)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-15 17:34:03 -04:00