Commit graph

2035 commits

Author SHA1 Message Date
Hannes Rudolph
9eafcc505c fix: update webview terminal settings to use numeric limits
- Add terminalOutputLineLimit, terminalOutputCharacterLimit to SettingsView destructuring
- Add terminalCompressProgressBar to SettingsView destructuring
- Update TerminalSettings props to pass numeric settings instead of enum
- Fix ExtensionStateContext setters for numeric terminal settings
2026-01-28 17:45:41 -07:00
Hannes Rudolph
d7852a023c fix: add missing translations and fix TerminalSettings props
- Add 10 missing translation keys to all 17 supported locales:
  - common.true, common.false, common.empty, common.resetToDefault
  - sections.indexing
  - codeIndex.stopIndexingButton, codeIndex.configureInSettings
  - codeIndex.enableInSettings
  - codeIndex.apiKeyNote.title, codeIndex.apiKeyNote.description

- Fix TerminalSettings component props to use the correct numeric
  settings (terminalOutputLineLimit, terminalOutputCharacterLimit,
  terminalCompressProgressBar) instead of the old enum-based
  terminalOutputPreviewSize

- Remove unused Select component imports
2026-01-28 17:36:59 -07:00
Hannes Rudolph
3f93501d9e fix: update indexing API key note to use translation keys
- Replace hardcoded English text with i18n translation keys
- Add apiKeyNote.title and apiKeyNote.description to settings.json
- Note explains that API keys are shared with provider configuration
2026-01-28 17:24:44 -07:00
Hannes Rudolph
761b72892d fix: display default values when settings are reset to undefined
- Use settingDefaults fallback for checkbox checked state
- Use settingDefaults fallback for conditional rendering
- Use settingDefaults fallback for Select value

This ensures that when a setting is reset to undefined (meaning 'use default'),
the UI displays the actual default value instead of showing undefined/empty state.
2026-01-28 17:24:44 -07:00
Hannes Rudolph
504a71ac72 feat: add ResetToDefault component for settings with defaults
- Add ResetToDefault component with ↺ icon that shows when a setting
  differs from its default value
- Tooltip shows the default value (e.g., 'Reset to default (true)')
- Component only renders when current value !== default
- Add translation keys for boolean/empty/resetToDefault formatting
- Integrate with BrowserSettings as proof of concept:
  - browserToolEnabled checkbox
  - browserViewportSize dropdown
  - screenshotQuality slider
- Add comprehensive tests for visibility, functionality, and styling
2026-01-28 17:24:44 -07:00
Hannes Rudolph
f02913ba90 fix: address PR review feedback
- Change codebaseIndexEnabled default from true to false in IndexingSettings.tsx
- Remove condensingApiConfigId from settingDefaults (setting removed from schema)
2026-01-28 17:23:58 -07:00
Hannes Rudolph
763fe65bb7 refactor: implement reset-to-default pattern with centralized defaults
- Add settingDefaults registry in packages/types/src/defaults.ts
- Add settings migration framework with versioned migrations
- Flatten codebaseIndexConfig to top-level keys for consistency
- Create new IndexingSettings UI component in Settings view
- Update SettingsView to pass undefined instead of coerced defaults
- Update ExtensionStateContext types to support optional settings
- Add comprehensive tests for defaults and migrations
2026-01-28 17:23:56 -07:00
Roo Code
89f6cbf2ab fix: remove condensingApiConfigId from types and test fixtures 2026-01-28 17:20:22 -07:00
roomote[bot]
8640fd1472
fix: calculate header percentage based on available input space (#11054)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-28 15:29:34 -05:00
Hannes Rudolph
e7965d9b45
feat: lossless terminal output with on-demand retrieval (#10944) 2026-01-27 22:12:19 -07:00
roomote[bot]
a44842f16f
fix: include reserved output tokens in task header percentage calculation (#11034)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-27 23:37:48 -05:00
Matt Rubens
7632807021
Release v3.45.0 (#11036) 2026-01-27 22:59:23 -05:00
roomote[bot]
d6d00dedec
Fix local model validation error for Ollama models (#10893)
fix: prevent false validation error for local Ollama models

The validation logic was checking against an empty router models object
that was initialized but never populated for Ollama. This caused false
validation errors even when models existed locally.

Now only validates against router models if they actually contain data,
preventing the false error when using local Ollama models.

Fixes ROO-581

Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-27 16:50:05 +00:00
Matt Rubens
dc5e765e9c
Revert "Revert "Enable parallel tool calling with new_task isolation safeguards"" (#11006) 2026-01-27 10:31:03 -05:00
Matt Rubens
5b3626f1a6
Revert "Enable parallel tool calling with new_task isolation safeguards" (#11004) 2026-01-27 10:20:12 -05:00
Daniel
2584504b9b
Enable parallel tool calling with new_task isolation safeguards (#10979)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2026-01-27 00:26:49 -05:00
Matt Rubens
826e6da416
chore: add changeset for v3.44.0 (#10987) 2026-01-26 23:19:13 -05:00
roomote[bot]
2391a0f065
fix: use --force by default when deleting worktrees (#10986)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-26 23:10:23 -05:00
Hannes Rudolph
7534e19c60
chore: remove POWER_STEERING experiment remnants (#10980) 2026-01-26 15:26:47 -07:00
Peter Dave Hello
953c7773c0
Update and improve zh-TW Traditional Chinese locale and docs (#10953) 2026-01-25 07:07:23 -05:00
roomote[bot]
b472c15220
fix: restore opaque background to settings section headers (#10951)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-25 01:49:27 -05:00
Bruno Bergher
c56f0f43c7
ux: improve worktree selector and creation UX (#10940)
* Delete modal

* Restructured

* Much more prominent

* UI

* i18n

* Fixes i18n

* Remove mergeresultmodel

* i18n

* tests

* knip

* code review
2026-01-24 22:06:37 +00:00
Bruno Bergher
5848db66be
ux: Improve subtask visibility and navigation in history and chat views (#10864)
* Taskheader

* Subtask messages

* View subtask

* subtasks in history items

* i18n

* Table

* Lighter visuals

* bug

* fix: Align tests with implementation behavior

* refactor: extract CircularProgress component from TaskHeader

- Created reusable CircularProgress component for displaying percentage as a ring
- Moved inline SVG calculation from TaskHeader.tsx to dedicated component
- Added comprehensive tests for CircularProgress component (14 tests)
- Component supports customizable size, strokeWidth, and className
- Includes proper accessibility attributes (progressbar role, aria-valuenow)

* chore: update StandardTooltip default delay to 600ms

As mentioned in the PR description, increased the tooltip delay to 600ms
for less intrusive tooltips. The delay is still configurable via the
delay prop for components that need a different value.

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-24 07:21:25 -05:00
Matt Rubens
4bff2ab191
chore: add changeset for v3.43.0 (#10933) 2026-01-23 23:47:44 -05:00
roomote[bot]
f09718c5f4
Fix duplicate model display for OpenAI Codex provider (#10930)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-23 19:18:22 -08:00
Hannes Rudolph
526488e5b6
chore: remove MULTI_FILE_APPLY_DIFF experiment (#10925)
* chore: remove MULTI_FILE_APPLY_DIFF experiment

Remove the 'Enable concurrent file edits' experimental feature that
allowed editing multiple files in a single apply_diff call.

- Remove multiFileApplyDiff from experiment types and config
- Delete MultiFileSearchReplaceDiffStrategy class and tests
- Delete MultiApplyDiffTool wrapper and tests
- Remove experiment-specific code paths in Task.ts, generateSystemPrompt.ts, and presentAssistantMessage.ts
- Remove special handling in ExperimentalSettings.tsx
- Remove translations from all 18 locale files

The existing MultiSearchReplaceDiffStrategy continues to handle
multiple SEARCH/REPLACE blocks within a single file.

* fix: remove unused EXPERIMENT_IDS/experiments import from Task.ts

Addresses review feedback: removes the unused imports from
src/core/task/Task.ts that were left over after removing the
MULTI_FILE_APPLY_DIFF experiment routing code.
2026-01-23 18:39:24 -05:00
Hannes Rudolph
f7434dec72
chore: remove POWER_STEERING experimental feature (#10926)
- Remove powerSteering from experimentIds array and schema in packages/types
- Remove POWER_STEERING from EXPERIMENT_IDS and experimentConfigsMap
- Remove power steering conditional block from getEnvironmentDetails
- Remove POWER_STEERING entry from all 18 locale settings.json files
- Update related test files to remove power steering references
2026-01-23 18:07:58 -05:00
Daniel
2d2ed15bfb
Remove Merge button from worktrees (#10924)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-23 16:55:46 -05:00
Hannes Rudolph
85f42dca83
chore: remove diffEnabled and fuzzyMatchThreshold settings (#10298) 2026-01-23 16:39:08 -05:00
Hannes Rudolph
1f7be769ee
feat: Move condense prompt editor to Context Management tab (#10909) 2026-01-23 00:20:59 -05:00
Matt Rubens
f38bac9fe6
Release v3.42.0 (#10910) 2026-01-22 23:52:33 -05:00
Daniel
3ab1d08159
Fix EXT-553: Remove percentage-based progress tracking for worktree file copying (#10905)
* Fix EXT-553: Remove percentage-based progress tracking for worktree file copying

- Removed totalBytes from CopyProgress interface
- Removed Math.min() clamping that caused stuck-at-100% issue
- Changed UI from progress bar to spinner with activity indicator
- Shows 'item — X MB copied' instead of percentage
- Updated all 18 locale files
- Uses native cp with polling (no new dependencies)

* fix: translate copyingProgress text in all 17 non-English locale files

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-22 21:17:16 -05:00
Hannes Rudolph
9d65772d24
fix(condense): remove custom condensing model option (#10901)
* fix(condense): remove custom condensing model option

Remove the ability to specify a different model/API configuration for
condensing conversations. Modern conversations include provider-specific
data (tool calls, reasoning blocks, thought signatures) that only the
originating model can properly understand and summarize.

Changes:
- Remove condensingApiHandler parameter from summarizeConversation()
- Remove condensingApiConfigId from context management and Task
- Remove API config dropdown for CONDENSE in settings UI
- Update telemetry to remove usedCustomApiHandler parameter
- Update related tests

Users can still customize the CONDENSE prompt text; only model selection
is removed.

* fix: remove condensingApiConfigId from types and test fixtures

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-22 20:06:04 -05:00
roomote[bot]
73b1b38eb1
Fix padding on Roo Code Cloud upsell (#10889)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-22 03:00:26 -05:00
Daniel
971885d8e7
feat: add size-based progress tracking for worktree file copying (#10871) 2026-01-21 22:53:12 -05:00
Hannes Rudolph
3f332d8e2b
refactor: migrate context condensing prompt to customSupportPrompts and cleanup legacy code (#10881) 2026-01-21 21:33:46 -05:00
Daniel
7f854c0dd7
feat: remove Claude Code provider (#10883) 2026-01-21 21:32:56 -05:00
roomote[bot]
5bd26eb1d9
fix: Handle mode selector empty state on workspace switch (#9674)
* fix: handle mode selector empty state on workspace switch

When switching between VS Code workspaces, if the current mode from
workspace A is not available in workspace B, the mode selector would
show an empty string. This fix adds fallback logic to automatically
switch to the default "code" mode when the current mode is not found
in the available modes list.

Changes:
- Import defaultModeSlug from @roo/modes
- Add fallback logic in selectedMode useMemo to detect when current
  mode is not available and automatically switch to default mode
- Add tests to verify the fallback behavior works correctly
- Export defaultModeSlug in test mock for consistent behavior

* fix: prevent infinite loop by moving fallback notification to useEffect

* fix: prevent infinite loop by using ref to track notified invalid mode

* refactor: clean up comments in ModeSelector fallback logic

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2026-01-21 20:47:51 -05:00
Hannes Rudolph
fa92ec4586
fix: resolve race condition in context condensing prompt input (#10876) 2026-01-21 15:11:39 -07:00
Hannes Rudolph
8de9337e63
chore: remove XML tool calling support (#10841)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-20 20:25:08 -05:00
Hannes Rudolph
e356d058e9
feat: standardize model selectors across all providers (#10294)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-20 16:22:49 -07:00
Chris Estreich
04256be956
Git worktree management (#10458)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2026-01-20 13:39:24 -08:00
Hannes Rudolph
06039400cd
perf(webview): avoid resending taskHistory in state updates (#10842)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2026-01-19 21:22:32 -07:00
Hannes Rudolph
1a1827d806
feat(openai-codex): add ChatGPT subscription usage limits dashboard (#10813) 2026-01-19 11:55:40 -07:00
roomote[bot]
a148862a06
feat: warn users when too many MCP tools are enabled (#10772)
* feat: warn users when too many MCP tools are enabled

- Add WarningRow component for displaying generic warnings with icon, title, message, and optional docs link
- Add TooManyToolsWarning component that shows when users have more than 40 MCP tools enabled
- Add MAX_MCP_TOOLS_THRESHOLD constant (40)
- Add i18n translations for the warning message
- Integrate warning into ChatView to display after task header
- Add comprehensive tests for both components

Closes ROO-542

* Moves constant to the right place

* Move it to the backend

* i18n

* Add actionlink that takes you to MCP settings in this case

* Add to MCP settings too

* Bump max tools up to 60 since github itself has 50+

* DRY

* Fix test

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Bruno Bergher <bruno@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-18 09:22:09 -05:00
roomote[bot]
802b40a790
Fix thinking block word-breaking to prevent horizontal scroll (#10806)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-17 12:15:27 -05:00
Hannes Rudolph
9533f0be3c
fix(openai-codex): reset invalid model selection (#10777) 2026-01-16 14:55:01 -07:00
Bruno Bergher
9bf7173725
feat: add button to open markdown in VSCode preview (#10773)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-16 10:56:19 -05:00
roomote[bot]
245e0f66c6
feat: add settings tab titles to search index (#10761)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-15 22:59:40 -05:00
T
f48ea389df
Feat/issue 5376 aggregate subtask costs (#10757) 2026-01-15 16:44:55 -05:00