Commit graph

1747 commits

Author SHA1 Message Date
Chris Estreich
bdf128a79e Move @roo-code/cloud to the Roo-Code repo (#7503) 2025-09-02 23:22:10 -04:00
Chris Hasson
1e7d33eb76 Show console logging in vitests when the --no-silent flag is set (#7467)
By default, all of the tests run in silent mode with monkey-patched the console logging so no console logging will ever appear in test output.
This confuses the agent- sometimes it will add console logging to help it debug things, and it won't see the logs that it expects.

Adds src/utils/vitest-verbosity.ts to handle verbosity resolution and console logging.
Modifies src/vitest.config.ts and webview-ui/vitest.config.ts to integrate the new verbosity control.
Removes manual console suppression from src/vitest.setup.ts and webview-ui/vitest.setup.ts as it's now handled dynamically.

Co-authored-by: Chris Hasson <noreply@example.com>
2025-09-02 23:15:28 -04:00
Daniel
313a674d9e fix: prevent dirty state on initial mount in ImageGenerationSettings (#7495) 2025-09-02 23:15:28 -04:00
Matt Rubens
fce45487b8 Add padding to image model picker (#7494) 2025-09-02 23:15:27 -04:00
Daniel
0829f0595f feat: update OpenRouter API to support input/output modalities and filter image generation models (#7492) 2025-09-02 23:15:27 -04:00
Matt Rubens
76a64cbbb3 Support free imagegen (#7493) 2025-09-02 23:15:27 -04:00
Daniel
ef88be25fc feat: add image generation tool with OpenRouter integration (#7474)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: cte <cestreich@gmail.com>
2025-09-02 23:15:27 -04:00
Daniel
daa50ed495 Fix GPT-5 Responses API issues with condensing and image support (#7067)
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: Hannes Rudolph <hrudolph@gmail.com>
2025-09-02 23:11:59 -04:00
Shawn
306dd5e0ab removed initial checkpoint creation
Pathing shows up on a separate line from the file name
2025-09-01 17:31:41 -04:00
Shawn
24d626c815 Removed UI from settings, Files Changed now stacked properly under Todo 2025-09-01 11:22:53 -04:00
Shawn
901a0e2c39 Switched to tailwind for FilesChangedOverview
- Reduced from 21 to 4 inline styles (only dynamic ones remain)
  - Converted static styles to Tailwind CSS classes:
    - Container styles: border, px-2.5, py-1.5, m-0, etc.
    - Flexbox layouts: flex, justify-between, items-center, gap-2
    - Button styles: Consistent classes for primary/secondary/icon buttons
    - Text styles: font-mono, text-xs, font-medium, etc.
  - Preserved dynamic styles for runtime calculations:
    - Virtualization: height, transform
    - State-based: opacity, borderBottom
  - Updated tests to check for CSS classes instead of inline styles
2025-09-01 10:53:39 -04:00
Shawn
91a6587a4c ix: code quality improvements for FCO feature and address more comments
- Remove duplicate enableCheckpoints check in checkpoints/index.ts
  - Remove unused _CheckpointEventData interface from
  FilesChangedOverview.tsx
  - Fix message type naming consistency: checkpoint_created ->
  checkpointCreated, checkpoint_restored -> checkpointRestored
  - Remove debug console.log statements from checkpoints/index.ts
2025-09-01 09:18:26 -04:00
Shawn
3461836507 Chat-only edits are not tracked 2025-08-31 22:10:47 -04:00
Shawn
a157aceb20 Apply missing FCO theming changes from backup branch
From commit 71c63f9a6 'language files, theming, bug fix, Test improvements':

Theming Updates:
- Convert from Tailwind CSS classes to inline styles for consistent theming
- Make Files Changed Overview match TodoList theming (slim and compact)
- Simplify formatLineChanges to show only '+X, -Y' format (no translations)
- Remove parentheses from count format in summary
- Update FileItem to use thinner rows (32px instead of 60px)
- Apply compact padding and margins throughout component

Visual Changes:
- Smaller button sizes and padding for compact look
- Consistent inline styling using CSS variables
- Better alignment with VS Code theming system
- Matches TodoList component styling for unified look

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 17:06:00 -04:00
Shawn
b15d6f68e2 Bug fixes and test cases added
- Added more tests for checkpoints
- Fixed bug where fco was not updating after checkpoints properly.
- It would include all previous edits from the previous checkpoint on tasks that were mid edit.
- Added timestamp checking to cover the edge case.
- Added tests for the edge cases covered.
- Bug fix for users enabling FCO after some time using the task.
- One more edge case being covered when the user enables fco after talking with the task for a while.
- To solve this, added test cases and have the settings enabled to set the timestamp if it was previously disabled.
- Added better separation of concerns for testing of FCO web ui.
2025-08-31 15:40:02 -04:00
Hannes Rudolph
06d5674801 style(webview): replace remaining inline styles in FilesChangedOverview with CSS utility classes where feasible; keep dynamic styles for virtualization 2025-08-27 18:04:54 -06:00
Hannes Rudolph
243a0347bf fix(settings): move FCO toggle to Experimental, adopt debounced action hook, clean up UISettings and SettingsView imports/tests; fix lint unused args in FilesChangedOverview 2025-08-27 17:32:09 -06:00
Hannes Rudolph
39cf881838 fix: add missing UI translations; id locale consistency; lazy-init VSCode decorations to prevent import-time failures; update DiffViewProvider test mock for decoration type 2025-08-27 15:53:03 -06:00
Hannes Rudolph
f379d6b8e5 FCO: resolve conflicts, integrate types + UI, and fix provider.getCurrentTask usage 2025-08-27 13:59:11 -06:00
Matt Rubens
94f3b2a35b
Remove dot before model display (#7461) 2025-08-27 13:33:48 -04:00
Matt Rubens
1ad2129964
Add support for Vercel embeddings (#7445)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-08-27 13:30:19 -04:00
roomote[bot]
33a8573b02
feat: update tooltip component to match native VSCode tooltip shadow styling (#7457)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: cte <cestreich@gmail.com>
2025-08-27 10:27:40 -07:00
Daniel
faf5734bdc
feat: show model ID in API configuration dropdown (#7423) 2025-08-27 13:19:30 -04:00
Chris Estreich
02f551cec5
Update @roo-code/cloud to enable roomote control for cloud agents (#7446)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-08-27 00:53:40 -07:00
Chris Estreich
f02a2bb05d
Random chat text area cleanup (#7436) 2025-08-26 20:48:24 -07:00
Matt Rubens
3528f51304
fix: remove duplicate cache display in task header (#7443) 2025-08-26 22:11:35 -04:00
Josh
934bfd0a54
feat: Add Vercel AI Gateway provider integration (#7396)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: cte <cestreich@gmail.com>
2025-08-26 13:41:02 -07:00
Matt Rubens
572fa5080d
Sonic -> Grok Code Fast (#7426) 2025-08-26 16:17:47 -04:00
Daniel
91f3dd90fb
fix: preserve user input when selecting follow-up choices (#7394) 2025-08-25 17:18:08 -04:00
Daniel
c75f184022
feat: Hide static providers with no models from provider list (#7392) 2025-08-25 17:17:07 -04:00
Matt Rubens
2c82f4c950
Add a built-in /init slash command (#7381)
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2025-08-25 16:53:32 -04:00
roomote[bot]
2e99d5bf1b
feat: Add Qwen Code CLI API Support with OAuth Authentication (#7380)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: cte <cestreich@gmail.com>
2025-08-25 10:43:48 -07:00
Matt Rubens
3dd3d7bf17
Handle substitution patterns in command validation (#7390) 2025-08-25 12:41:01 -04:00
Dicha Zelianivan Arkana
fc70012f54
fix(ui): make auto approve toggle trigger stay (#7318)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-08-23 10:54:23 -07:00
Christiaan Arnoldus
8e4c0ae99d
Show cache read and write prices for OpenRouter inference providers (#7176) 2025-08-22 14:43:34 -07:00
Daniel
d175272c76
feat: add custom base URL support for Requesty provider (#7337)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: John Costa <john@requesty.ai>
Co-authored-by: Thibault Jaigu <thibault.jaigu@gmail.com>
2025-08-22 13:43:08 -07:00
roomote[bot]
f14e6acaf0
feat: add documentation links for global custom instructions in UI (#7114)
* feat: add documentation links for global custom instructions in UI

- Updated translation strings to include links to global rules documentation
- Added VSCodeLink components in ModesView to render clickable documentation links
- Helps users discover global custom instructions feature as suggested in GitHub discussion #7111

* fix: address PR feedback - update all language files and improve documentation links

- Added <0> placeholders to all 17 non-English translation files for global rules links
- Updated documentation anchors to use #global-rules-directory and #setting-up-global-rules
- Added aria-label attributes to all VSCodeLink components for better accessibility
- Improved UTM campaign parameter naming for clearer tracking

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-22 08:40:22 -07:00
roomote[bot]
4222036c58
feat: remove assistantMessageParser experiment flag and enable for all users (#7300)
- Remove assistantMessageParser from experiment definitions in packages/types
- Remove ASSISTANT_MESSAGE_PARSER from shared experiments configuration
- Update Task.ts to always initialize and use AssistantMessageParser
- Remove conditional logic that checked for experiment flag
- Remove unused parseAssistantMessage import
- Update test files to remove assistantMessageParser references
- All tests passing successfully

Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-21 15:30:42 -07:00
roomote[bot]
0bc1183c71
feat: enable grounding features for Vertex AI (#6777)
* feat: enable grounding features for Vertex AI

- Add enableUrlContext and enableGrounding options to vertexSchema in provider-settings.ts
- Update Vertex.tsx UI component to include URL context and grounding checkboxes
- Add comprehensive tests for the new grounding features in Vertex.spec.tsx
- Reuse existing localization strings from Gemini provider

Fixes #6776

* fix: address review feedback - hide grounding features in welcome view and only show for Gemini models

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-08-21 13:02:45 -07:00
Hannes Rudolph
4664955127
feat: add optional todos parameter to new_task tool with experimental setting (#6329) (#6775)
* feat: add optional todos parameter to new_task tool with experimental setting (#6329)

- Add optional todos parameter to new_task tool for hierarchical task planning
- Implement experimental setting to optionally require todos parameter
- Add clean state-based UI rendering to avoid spurious messages
- Export and reuse parseMarkdownChecklist function
- Add comprehensive test coverage for both optional and required modes
- Maintain full backward compatibility (todos optional by default)

* fix: update new_task tool example to include todos parameter

- Updated the example in tool-use.ts to show the todos parameter
- This prevents AI confusion about whether todos is a valid parameter
- The example now demonstrates the complete tool usage pattern

* fix: make new_task tool definition dynamic based on experimental setting

- Tool description now changes based on newTaskRequireTodos setting
- When disabled: shows todos as (optional)
- When enabled: shows todos as (required) with no mention of configuration
- Added tests to verify dynamic behavior
- Ensures AI models get unambiguous instructions based on current settings

* fix: add translations for newTaskRequireTodos experimental setting

- Added translations for all 17 supported languages
- Ensures consistent UI experience across all locales

* test: update snapshots for new_task tool example with todos parameter

- Updated 13 snapshot files to reflect the new tool-use example
- All tests now pass with the updated example format

* Update src/core/tools/newTaskTool.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: address PR review comments

- Replace any[] with TodoItem[] type in ExtensionStateContext.tsx for better type safety
- Remove redundant initialTodos parameter from startTask call in Task.ts (todos already set in constructor)
- Improve code clarity in newTaskTool.ts by checking provider reference early and reusing state

# Conflicts:
#	src/core/task/Task.ts
#	webview-ui/src/context/ExtensionStateContext.tsx

* fix: revert order of operations in startTask to fix integration test timeout

The change in order of operations (calling say() before postStateToWebview()) was causing the XML content file test to timeout. Reverting to the original order fixes the issue.

* fix: hide todos parameter from new_task tool prompt when experiment is disabled

- Modified getNewTaskDescription to completely omit todos parameter when experiment is off
- Updated tests to verify todos parameter is not shown at all when disabled
- Ensures tool prompt remains unchanged when experimental setting is disabled
- Maintains backward compatibility while providing cleaner prompt interface

* fix: update snapshots for new_task tool todos parameter

- Updated snapshots in add-custom-instructions.spec.ts
- Updated snapshots in system-prompt.spec.ts
- All tests now passing with the new todos parameter documentation

* feat: move newTaskRequireTodos from experimental to VSCode settings

- Added newTaskRequireTodos as a VSCode configuration property in src/package.json
- Added description in src/package.nls.json
- Updated newTaskTool.ts to read from VSCode configuration instead of experiments
- Removed NEW_TASK_REQUIRE_TODOS from experimental settings in src/shared/experiments.ts
- Removed newTaskRequireTodos from packages/types/src/experiment.ts
- Updated tests to use VSCode configuration mocking instead of experiments
- Removed references from experiments test file
- Maintains backward compatibility (defaults to false)

* fix: make new_task tool description dynamically reflect VSCode setting

- Updated new-task.ts to check args.settings instead of args.experiments
- Added newTaskRequireTodos to SystemPromptSettings interface
- Pass newTaskRequireTodos setting through Task.ts and generateSystemPrompt.ts
- Updated all related tests to use settings instead of experiments
- Fixed TypeScript errors in test files by adding newTaskRequireTodos property

This ensures the tool description correctly shows todos parameter as required/optional
based on the VSCode setting value, fixing the issue where Roo would try to use
new_task without the todos parameter when it was required.

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Merge Resolver <merge-resolver@roo-code.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-21 13:02:05 -07:00
Daniel
4216618c72
feat: add MDM authentication notification when navigation is blocked (#7291)
- Show VSCode warning when users under MDM policy try to leave AccountView without auth
- Add showMdmAuthRequiredNotification message type to WebviewMessage interface
- Implement handler in webviewMessageHandler to display localized warning
- Add 'Your organization requires authentication' translation in all 17 languages
- Fix translation key path to use common:mdm.info.organization_requires_auth
2025-08-21 11:12:04 -07:00
roomote[bot]
b2fdb9ac57
fix: handle null/undefined token values in ContextCondenseRow to prevent UI crash (#6916)
* fix: handle null/undefined token values in ContextCondenseRow to prevent UI crash

- Added null/undefined checks for prevContextTokens, newContextTokens, and cost
- Default to 0 when values are null or undefined
- Added comprehensive test coverage for edge cases
- Fixes #6914

* Delete webview-ui/src/components/chat/__tests__/ContextCondenseRow.spec.tsx

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-08-21 02:21:41 -07:00
roomote[bot]
007b58db77
feat: add "Installed" filter to Roo Marketplace (#7007)
* feat: add "Installed" filter to Roo Marketplace

- Added installed boolean filter to ViewState interface
- Implemented UI checkbox for "Show installed only" filter
- Updated filterItems method to filter by installation status
- Added translation strings for the new filter
- Updated tests to include the new filter property

Fixes #7004

* fix: add missing translations for "Installed" filter in marketplace

- Added "filters.installed.label" and "filters.installed.description" keys
- Updated all backend marketplace.json files (src/i18n/locales/*/marketplace.json)
- Updated all frontend marketplace.json files (webview-ui/src/i18n/locales/*/marketplace.json)
- All translation checks now pass successfully

* fix: improve code quality for installed filter feature

- Replace plain HTML checkbox with UI library Checkbox component for consistency
- Add proper TypeScript typing for installedMetadata (MarketplaceInstalledMetadata)
- Optimize filterItems method to avoid unnecessary object copying
- Remove dead code for subcomponent filtering

* refactor: improve installed filter UI and functionality

- Replace checkbox with dropdown for better UX
- Place dropdown inline with search field for better layout
- Add three filter options: All Items, Installed Only, Not Installed
- Update filter logic to handle all three states
- Improve translation labels to clarify it's a filter
- Optimize filterItems method for better performance
- Add proper TypeScript types throughout

* fix: ensure both filter dropdowns have matching height

- Set both Select and Button components to h-7 for visual consistency
- Installation status dropdown and tags dropdown now have identical height
- Improved visual alignment for better UX

* chore: remove redundant useEffect in MarketplaceListView to prevent re-render loop; rely on state manager handleMessage sync

* i18n: update tri-state Installed filter translations across all locales

- Replace checkbox-based installed keys with dropdown keys:
  { label, all, installed, notInstalled }
- Updated both frontend and backend marketplace.json files for all non-English locales
- Ensures translation completeness for CI check

* i18n: change Installed option text to 'Installed' (remove 'Only') across all locales (frontend + backend)

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-08-21 02:17:41 -07:00
DarinVerheijke
57ea6257dd
feat: Featherless provider (#7235)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: cte <cestreich@gmail.com>
2025-08-20 10:42:57 -07:00
Matt Rubens
94fa33bd63
Add announcement for Sonic model (#7244) 2025-08-19 23:02:27 -07:00
Matt Rubens
fd3535c21a
Add support for Sonic model (#7207)
Co-authored-by: cte <cestreich@gmail.com>
2025-08-19 00:53:32 -07:00
Will Li
438c8e377a
Make enhance with task history default to true (#7140) 2025-08-15 22:40:46 -04:00
Daniel
bfdd158129
Fix: Enable save button for provider dropdown and checkbox changes (#7113)
* fix: enable save button for provider dropdown and checkbox changes

The save button wasn't enabling when users changed provider settings like
dropdowns and checkboxes because setApiConfigurationField was treating all
changes from undefined to a defined value as 'initial sync' and not marking
the form as dirty.

Added an optional isUserAction parameter (defaults to true) to distinguish:
- User actions (should enable save button) - the default
- Automatic initialization (shouldn't enable save button) - pass false

This fixes the issue where changing provider dropdowns, checkboxes with
default values, and other settings wouldn't enable the save button.

* fix: remove incorrect isUserAction=false from apiModelId sync

The useEffect that syncs apiModelId with selectedModelId was incorrectly
passing isUserAction=false, which prevented the save button from enabling
when users selected a different model. Since this effect responds to all
selectedModelId changes (including user selections), it should use the
default isUserAction=true behavior.

* test: fix ThinkingBudget test to expect isUserAction parameter

The test now correctly expects setApiConfigurationField to be called
with three arguments including the isUserAction=false parameter for
automatic thinking token adjustments.
2025-08-14 19:48:25 -04:00
f14XuanLv
e5d93f2bca
fix: reset condensing state when switching tasks (#6922)
Previously, when users initiated context condensing and switched to another task before completion, the 'condensing context' indicator would persist on the new task.

This fix ensures the condensing state is properly reset in the task switching effect, preventing the indicator from appearing incorrectly on different tasks.
2025-08-14 10:21:31 -04:00
roomote[bot]
dcbb7a673f
fix: remove 500-message limit to prevent scrollbar jumping in long conversations (#7064)
- Removed array slicing logic that limited messages to 500
- This eliminates array index shifting that caused Virtuoso to lose scroll position
- Virtuoso is designed to efficiently handle large lists through virtualization
- Fixes the scrollbar jumping issue reported in #7063 and #7052

Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-13 21:21:32 -04:00