Commit graph

1549 commits

Author SHA1 Message Date
Justin Halsall
7a0a6deb93
Port: feat(chat): add copy prompt button to task actions (#5392)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-04 11:16:57 -04:00
Matt Rubens
7ae74404f4
Fix inconsistent descriptions in slash commands (#5388) 2025-07-04 01:08:37 -04:00
Daniel
f96021fa6b
fix: resolve UI issues with checkbox state and popover visibility (#5387) 2025-07-03 22:01:10 -04:00
Daniel
e508eaf3df
Fix code index secret persistence and improve settings UX (#5158)
* Fix code index secret persistence with async VSCode storage

- Add async secret methods to CodeIndexConfigManager
- Implement direct VSCode secret storage access bypassing ContextProxy cache
- Update loadConfiguration to use async secret loading
- Modify webview message handler to use new async secret storage
- Add public secret methods to CodeIndexManager
- Enhance debugging throughout secret flow

This fixes the issue where API keys were saved but not loaded immediately
into services due to ContextProxy cache synchronization issues.

* Fix code index secret persistence and test failures

- Add async secret handling to CodeIndexConfigManager with new methods:
  - getSecretAsync(), storeSecretAsync() for individual secrets
  - loadSecretsAsync(), storeSecretsAsync() for batch operations
- Update doesConfigChangeRequireRestart() to check OpenAI Compatible modelDimension changes
- Fix all failing tests by using setupSecretMocks() helper consistently
- Update manager.spec.ts to properly mock _recreateServices to avoid real service creation

This ensures API keys and other secrets are properly loaded from VSCode's async secret storage
and that configuration changes requiring service restart are correctly detected.

* feat: improve code index settings secret handling in UI

- Show placeholder dots (••••••••••••••••) in password fields when secrets are already set
- Only send modified secret fields to prevent overwriting existing secrets with empty values
- Track which fields have been modified by the user
- Add requestCodeIndexSecretStatus message handler to check if secrets exist
- Fix console.log to handle empty string keys without errors
- Ensure changing one setting doesn't clear other unmodified secrets

* refactor: disconnect code index from unified settings system

- Rename handleExternalSettingsChange to handleSettingsChange for clarity
- Remove handleSettingsChange call from ClineProvider (not related to code index)
- Remove codebaseIndexConfig from general settings save in SettingsView
- Delete unused codebaseIndexConfig message handler
- Remove codebaseIndexConfig from WebviewMessage type definition
- Code index settings are now fully independent with their own dedicated UI

* feat: separate code index enable/disable from indexing settings

- Move 'Enable codebase indexing' toggle to global settings in Experimental section
- Keep indexing-specific settings (API keys, URLs, models) in dedicated Code Index Settings component
- Add codebaseIndexEnabled handler to webview message handler
- Update translations with new settings title and disabled message
- Ensure code index service properly responds to enable/disable changes
- Maintain backward compatibility with existing codebaseIndexConfig structure

* refactor: remove ContextProxy.getVSCodeContext() and pass ExtensionContext directly

- Updated CodeIndexConfigManager to accept vscode.ExtensionContext in constructor
- Modified CodeIndexManager to pass context directly to CodeIndexConfigManager
- Updated webviewMessageHandler to use provider.context.secrets directly
- Removed getVSCodeContext() method from ContextProxy
- Updated all related tests to reflect these changes
- Fixed CodeIndexSettings webview tests after UI changes

* refactor: streamline secret handling by removing async methods and utilizing ContextProxy directly

* feat: translations and popover component

* refactor: simplify test mocks and improve checkbox handling in CodeIndexSettings tests

* refactor: remove debug logging from CodeIndexConfigManager, CodeIndexManager, CodeIndexServiceFactory, and QdrantVectorStore

* fix: merge missing translation keys from main after rebase

- Add advancedConfigLabel, searchMinScoreLabel, searchMinScoreDescription, searchMinScoreResetTooltip keys
- Update startIndexingButton and clearIndexDataButton labels to match main
- Preserve all CodeIndexPopover translations added in this PR

* Revert "fix: merge missing translation keys from main after rebase"

This reverts commit beb1de4924ac1475731fcd06d994ddb96eb1e5fd.

* fix: add missing translation keys from main branch after rebase

- Added codeIndex.advancedConfigLabel
- Added codeIndex.searchMinScoreLabel
- Added codeIndex.searchMinScoreDescription
- Added codeIndex.searchMinScoreResetTooltip

These keys exist on main but were missing from non-English locales after rebase.

* fix: remove clickIndicatorMessage, fix toggle message type, and clean up translation key inconsistencies

* refactor: streamline settings management in CodeIndexPopover and improve secret handling

* refactor: remove debug logging from configuration checks in CodeIndexConfigManager and webviewMessageHandler

* fix: translations

* refactor: remove CodeIndexSettings component and associated tests
2025-07-03 18:33:20 -04:00
Hannes Rudolph
329690cf54
feat: Delete .roo/rules-{mode} folder when custom mode is deleted (#5210) (#5317)
* feat: Add folder deletion when custom mode is deleted (#5210)

* fix: address PR feedback - fix Korean translation typo and add missing German translation

* fix: use os.homedir() instead of vscode.env.userHome

* fix: use dynamic home directory in webview tests for cross-platform compatibility

* fix: normalize path separators in tests for Windows compatibility

* feat: implement DeleteModeDialog component for mode deletion confirmation

* fix: use ref to store current modeToDelete value for consistent state handling

* feat: add error handling for rules folder deletion and localize error messages

* Update src/i18n/locales/ja/common.json

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

* Update src/i18n/locales/zh-CN/common.json

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

* fix: remove redundant rulesFolderExists from deleteCustomModeCheck response

* fix: update webviewMessageHandler tests to match fs import style

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-07-03 13:00:07 -04:00
SeeD
abea1920ac
Fix: Chat UI consistency and layout shifts (#5237) 2025-07-03 00:02:00 -04:00
SannidhyaSah
e4b051bb71
fix: prevent completion sound from replaying when reopening completed tasks (#4885) (#5249) 2025-07-02 23:59:51 -04:00
SannidhyaSah
87aa688f33
feat: add Gemini embedding provider for codebase indexing (#5228)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-02 23:51:42 -04:00
Matt Rubens
cb44e6dda4
v3.22.6 (#5357) 2025-07-02 17:15:40 -04:00
Christiaan Arnoldus
89d28a5e66
Give Mermaid buttons a light background in light mode (#5342) 2025-07-02 10:58:35 -04:00
Hannes Rudolph
70726bcd21
feat: Import export modes (#5074)
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-01 17:13:44 -04:00
Matt Rubens
a1ae29cdcd
Suppress mermaid error rendering (#5308) 2025-07-01 15:50:24 -04:00
Will Li
781beeb30f
Auto approve follow up questions (#5296) 2025-07-01 14:43:16 -04:00
Hannes Rudolph
a348a2ae9a
feat: add user-configurable search score threshold slider for semantic search (#5027) (#5041)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-07-01 14:41:23 -04:00
Hannes Rudolph
298908fe1d
fix: ensure VersionIndicator only shows on welcome screen (#5288)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-30 14:07:00 -04:00
SannidhyaSah
24eb6e4c29
fix: prevent Qdrant URL field from auto-filling with default value (#5217)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-30 10:56:49 -04:00
Hannes Rudolph
904e956179
feat: add persistent version indicator on chat screen (#5115) (#5128)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-30 10:53:55 -04:00
Matt Rubens
d64e677f88
Remove Gemini CLI provider (#5223) 2025-06-28 23:48:28 -04:00
Daniel
867eaf4d70
fix: move StandardTooltip inside PopoverTrigger in ShareButton (#5203) 2025-06-27 20:13:46 -04:00
Matt Rubens
719d661478
Add optional mode suggestions to follow-up questions (#5200) 2025-06-27 16:26:17 -04:00
Daniel
b0190387ce
Fix checkpoint popover not opening due to StandardTooltip wrapper conflict (#5192) 2025-06-27 11:22:32 -04:00
KJ7LNW
c58b9638c5
fix: eliminate XSS vulnerability in CodeBlock component (#5157)
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-27 10:20:59 -04:00
Hannes Rudolph
992997c02f
feat: add Gemini CLI provider for free access to Gemini models (#5134) (#5137)
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-06-26 16:03:18 -04:00
Hannes Rudolph
3318366b66
fix: standardize tooltip delays to 300ms (#5090) (#5098)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-26 15:41:32 -04:00
Matt Rubens
1c37b77e9d
Track mode selector opened in telemetry (#5150) 2025-06-26 15:19:58 -04:00
Christiaan Arnoldus
1a9aa13bd2
Use upstream_inference_cost for OpenRouter BYOK cost calculation and show cached token count (#5145)
Improve OpenRouter cache calculation and show cached tokens
2025-06-26 10:18:49 -04:00
Hannes Rudolph
f9f01b012c
fix: resolve Claude Code token counting inefficiency and enable caching (#5104) (#5108)
* fix: resolve Claude Code token counting inefficiency and enable caching (#5104)

- Remove 1.5x fudge factor from Claude Code token counting
- Enable prompt caching support for all Claude Code models
- Add comprehensive tests for token counting and caching
- Update existing tests to reflect accurate token counting

This fixes the extreme token inefficiency where simple messages would
jump from ~40k to over 60k tokens, causing API hangs when approaching
the artificial 120k limit. Claude Code now properly utilizes its full
200k context window with accurate token counting.

* fix: address PR review comments

- Extract IMAGE_TOKEN_ESTIMATE as a named constant for clarity
- Update token counting tests to use exact counts instead of ranges for deterministic testing
- Fix test expectations to match actual tokenizer output

* Remove token counting changes, keep only cache support

- Removed custom countTokens override from claude-code.ts
- Deleted claude-code-token-counting.spec.ts test file
- Kept cache token collection and reporting functionality
- Kept supportsPromptCache: true for all Claude Code models
- Kept claude-code-caching.spec.ts tests

This focuses the PR on enabling cache support without modifying token counting behavior.

* fix: update webview test to expect supportsPromptCache=true for Claude Code models

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-25 20:36:06 -04:00
Hannes Rudolph
83c19ce2c8
fix: resolve claude-code provider image hang (#5100) (#5105)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-06-25 16:08:35 -04:00
Matt Rubens
da8b09e655
Sharing improvements (#5082)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: John Richmond <5629+jr@users.noreply.github.com>
Co-authored-by: cte <cestreich@gmail.com>
2025-06-24 16:36:32 -04:00
Bruno Bergher
21dc57365e
Modes selector improvements (#4902)
Co-authored-by: Bruno Bergher <me@brunobergher.comexport>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-24 14:24:35 -04:00
kiwina
64901c867c
fix: Address multiple memory leaks in CodeBlock component (#4244)
* fix: address multiple memory leaks in CodeBlock component (CodeBlock_247, CodeBlock_459, CodeBlock_694)

* fix: Address review feedback for CodeBlock memory leak fixes

- Consolidate isMountedRef management into syntax highlighting useEffect
- Unify timeout cleanup patterns for consistent maintainability
- Maintain all existing memory leak protections
- Improve code organization and readability

Addresses review comments from daniel-lxs in PR #4244

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-23 18:45:59 -04:00
xyOz
976dcfdcef
memory cleanup (#4190)
* memory cleaanup

* forgot to run linter
2025-06-23 18:45:15 -04:00
Daniel
041c28d8e5
fix: improve LM Studio model detection to show all downloaded models (#5047) 2025-06-23 14:46:56 -04:00
Chris Estreich
0a8c55cbd2
Fix TemperatureControl test flake (#5045) 2025-06-23 08:48:26 -07:00
Hannes Rudolph
ff9b6b3ef6
feat: add Claude Code provider for local CLI integration (#4864)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-22 23:17:55 -04:00
Daniel
5b9907b925
fix: resolve MCP tool eye icon state and hide in chat context (#4993) (#4994) 2025-06-21 15:22:20 -04:00
Chris Estreich
00ad4256d1
Fix flakey ModelPicker test (#4972) 2025-06-21 00:34:08 -07:00
renovate[bot]
d049634263
fix(deps): update dependency tailwind-merge to v3 (#4834)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-20 23:14:57 -04:00
renovate[bot]
15d5af6919
fix(deps): update dependency pretty-bytes to v7 (#4806)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-20 23:14:01 -04:00
SannidhyaSah
7392f14e44
feat: add profile-specific context condensing thresholds (#4456)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-20 23:02:04 -04:00
Brad Davis
37ed013157
fix context length for lmstudio and ollama (#2462) (#4314)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-20 22:53:04 -04:00
Ksandr
d99ae582d0
feature: add toggle for disable mcp server tool from prompt (#3551)
* add toggle for disable mcp server tool from prompt

* languages

* fix error message

* Update src/core/prompts/instructions/create-mcp-server.ts

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

* fix build

* typo

* refactor: make the switch style consistent

* respect review

* refactor: improve layout and styling in McpToolRow component

* fix: update new mcp tests

* tailwind css for disabledTool swipper

* id locale (from main)

* fix: improve error message for updating tool settings

* fix: specify type for serverConfigData as Record<string, any>

* fix: enhance UI layout and improve accessibility for tool controls

* fix: migrate jest.Mock to vitest Mock type

* Update .changeset/slimy-years-smell.md

* fix: replace enabled switch with button

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-06-20 19:14:59 -04:00
roomote
6ed217c716
Fixes #4882: Remove experimental setting for command execution in attempt_completion (#4884)
* Fixes #4882: Remove experimental setting for command execution in attempt_completion

- Remove DISABLE_COMPLETION_COMMAND from experiments system
- Permanently disable command execution in attempt_completion tool
- Update tool prompts to remove command parameter and examples
- Remove experimental UI toggle and localization entries (18+ languages)
- Update tests to reflect permanent behavior
- Remove experiment-specific test file

Command execution is now permanently disabled in attempt_completion.
Users must use execute_command tool separately before attempt_completion.

* refactor: simplify getAttemptCompletionDescription by removing unnecessary variables

* test: fix tests by regenerating snaps

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-20 17:48:01 -04:00
xyOz
93b8f6d87f
Update MarkdownBlock.tsx (#4841)
* Update MarkdownBlock.tsx

* fix: correct URL handling in MarkdownBlock and add tests for trailing punctuation

* Fix URL punctuation rendering

* fix: improve URL handling in MarkdownBlock and update tests for trailing punctuation

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-20 17:46:38 -04:00
Daniel
9da598c9db
fix: update MarketplaceViewStateManager test to match default isFetching state (#4954)
The test was expecting isFetching to be false in the default state, but the implementation correctly initializes it as true to show a loading state on initial load. Updated the test expectation to match the actual behavior.
2025-06-20 13:36:26 -07:00
roomote
ce2cfe6df0
Fixes #4855: Rename 'Boomerang Tasks' to 'Task Orchestration' for clarity (#4856) 2025-06-20 15:45:58 -04:00
Hannes Rudolph
85d73af334
feat: add LaTeX math equation rendering in chat window (#4258) (#4786)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-20 15:45:18 -04:00
roomote
d598fc3795
Fixes #4794: Fix marketplace blanking after populating (#4796)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-20 15:42:36 -04:00
Matt Rubens
8370591ec0
Display the organization image in the account view (#4953) 2025-06-20 15:14:18 -04:00
Daniel
9a5f6ce7ea
fix: resolve marketplace timeout issues and display installed MCPs (#4817) (#4941) 2025-06-20 13:20:02 -04:00