Commit graph

6767 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
d2befe4e08 fix: add missing terminal settings to type definitions
- Add terminalOutputLineLimit, terminalOutputCharacterLimit to GlobalSettings schema
- Add terminalCompressProgressBar to GlobalSettings schema
- Keep terminalOutputPreviewSize for backward compatibility with OutputInterceptor
- Add new terminal settings to ExtensionState type
- Add terminalOutputLineLimit/CharacterLimit to ClineProvider getState destructuring
2026-01-28 17:42:19 -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
2b1e10c530 fix: openSettings message passes section in values object
The webviewMessageHandler was passing section as 'tab' property but
App.tsx expects it in 'values.section'. This fixes the navigation from
CodeIndexPopover 'Configure in Settings' link to the indexing tab.
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
f8a20c3154 fix: remove codebaseIndexModels from globalState storage
EMBEDDING_MODEL_PROFILES was being stored in globalState on every
ClineProvider initialization, but this is unnecessary - it's static
reference data that should be passed directly to the webview.

Changes:
- Remove line that stored EMBEDDING_MODEL_PROFILES in globalState
- The webview still receives the data via the ?? fallback in getState()
- Add migration v3 to clean up existing codebaseIndexModels keys
- Add tests for migration v3
2026-01-28 17:24:44 -07:00
Hannes Rudolph
9a82299c48 feat: expand settingDefaults to include ALL settings with defaults
IMPORTANT: Every setting with a default value is now in settingDefaults.
This enables clearDefaultSettings() to properly clear ALL default values
from storage on every startup, ensuring defaults are never persisted.

Added settings:
- Auto-approval: autoApprovalEnabled, alwaysAllowReadOnly, alwaysAllowWrite,
  alwaysAllowBrowser, alwaysAllowMcp, alwaysAllowModeSwitch, alwaysAllowSubtasks,
  alwaysAllowExecute, requestDelaySeconds, followupAutoApproveTimeoutMs, etc.
- Terminal: terminalShellIntegrationDisabled, terminalCommandDelay,
  terminalPowershellCounter, terminalZsh*, terminalCompressProgressBar
- Other: diagnosticsEnabled, historyPreviewCollapsed, hasOpenedModeSelector,
  enableMcpServerCreation, rateLimitSeconds

Removed settings:
- diffEnabled, fuzzyMatchThreshold (removed from schema)

Updated test expectations to match new comprehensive defaults list.
2026-01-28 17:24:44 -07:00
Hannes Rudolph
28ab2e77f2 feat: clear settings matching defaults on every startup
This implements 'Option 2' - every-startup clearing of default values.

- Add clearDefaultSettings() function that checks all settings in
  settingDefaults and clears any that exactly match the default
- Add runStartupSettingsMaintenance() as the main entry point that
  runs both migrations (once) and default clearing (every startup)
- Update ContextProxy to use runStartupSettingsMaintenance
- Add comprehensive tests for the new functionality

This ensures users always benefit from default value improvements.
Note: Users cannot 'lock in' a value that matches the default.
2026-01-28 17:24:42 -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]
c983e26280
feat(marketing): add Linear integration page (#11028)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Michael Preuss <michael@roocode.com>
2026-01-28 16:06:08 -08:00
Hannes Rudolph
d7fa963b13
docs: clarify read_command_output search param should be omitted when not filtering (#11056) 2026-01-28 13:30:01 -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
Daniel
fe722dad23
feat: add AI SDK dependencies and message conversion utilities (#11047) 2026-01-28 14:05:53 -05:00
Daniel
f5004ac40a
fix: prevent time-travel bug in parallel tool calling (#11046) 2026-01-28 13:25:02 -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
github-actions[bot]
c6d0306550
Changeset version bump (#11037)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-27 23:05:16 -05:00
Matt Rubens
7632807021
Release v3.45.0 (#11036) 2026-01-27 22:59:23 -05:00
Hannes Rudolph
d748de6fae
feat(condense v2.1): add smart code folding (#10942)
* feat(condense): add smart code folding with tree-sitter signatures

At context condensation time, use tree-sitter to generate folded code
signatures (function definitions, class declarations) for files read
during the conversation. Each file is included as its own <system-reminder>
block in the condensed summary, preserving structural awareness without
consuming excessive tokens.

- Add getFilesReadByRoo() method to FileContextTracker
- Create generateFoldedFileContext() using tree-sitter parsing
- Update summarizeConversation() to accept array of file sections
- Each file gets its own content block in the summary message
- Add comprehensive test coverage (12 tests)

* fix: skip tree-sitter error strings in folded file context

- Add isTreeSitterErrorString helper to detect error messages
- Skip files that return error strings instead of embedding them
- Add test for error string handling

* refactor: move generateFoldedFileContext() inside summarizeConversation()

- Update summarizeConversation() to accept filesReadByRoo, cwd, rooIgnoreController instead of pre-generated sections
- Move folded file context generation inside summarizeConversation() (lines 319-339)
- Update ContextManagementOptions type and manageContext() to pass new parameters
- Remove generateFoldedFileContext from Task.ts imports - folding now handled internally
- Update all tests to use new parameter signature
- Reduces Task.ts complexity by moving folding logic to summarization module

* fix: prioritize most recently read files in folded context

Files are now sorted by roo_read_date descending before folded context
generation, so if the character budget runs out, the most relevant
(recently read) files are included and older files are skipped.

* refactor: improve code quality in condense module

- Convert summarizeConversation to use options object instead of 11 positional params
- Extract duplicated getFilesReadByRoo error handling into helper method
- Remove unnecessary re-export of generateFoldedFileContext
- Update all test files to use new options object pattern

* fix: address roomote feedback - batch error logging and early budget exit

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2026-01-27 18:47:24 -05:00
github-actions[bot]
7607c684e9
Changeset version bump (#11027)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-27 15:52:37 -05:00
Matt Rubens
e9043723d3
Release v3.44.2 (#11025) 2026-01-27 15:43:20 -05:00
Daniel
17d3456e96
fix: remove duplicate tool_call emission from Responses API providers (#11008) 2026-01-27 13:33:15 -05:00
Daniel
b9cf163b87
fix: use relative paths in isPathInIgnoredDirectory to fix worktree indexing (#11009) 2026-01-27 12:43:47 -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
github-actions[bot]
2078537201
Changeset version bump (#11005)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-27 10:28:20 -05:00
Matt Rubens
7b54a733e7
Release v3.44.1 (#11003) 2026-01-27 10:22: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
Seb Duerr
6e08ae4bfd
Add temperature=0.9 and top_p=0.95 to zai-glm-4.7 model (#10945)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-27 09:57:21 -05:00
MP
5100d15830
Add quality checks to marketing site deployment workflows (#10959)
Co-authored-by: cte <cestreich@gmail.com>
2026-01-27 00:56:30 -08: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
Daniel
f5d32e771a
Fix LiteLLM tool ID validation errors for Bedrock proxy (#10990) 2026-01-26 23:54:48 -05:00
github-actions[bot]
3edf71e29a
Changeset version bump (#10989)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2026-01-26 23:26:46 -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
2f92cb7a8d
fix: prevent nested condensing from including previously-condensed content (#10985) 2026-01-26 22:34:04 -05:00
Daniel
dd245cc40c
fix: VS Code LM token counting returns 0 outside requests, breaking context condensing (EXT-620) (#10983)
- Modified VsCodeLmHandler.internalCountTokens() to create temporary cancellation tokens when needed
- Token counting now works both during and outside of active requests
- Added 4 new tests to verify the fix and prevent regression
- Resolves issue where VS Code LM API users experienced context overflow errors
2026-01-26 19:43:10 -05:00
Daniel
27708f3038
feat: new_task tool creates checkpoint the same way write_to_file does (#10982) 2026-01-26 17:21:49 -07:00
Hannes Rudolph
bd29766406
fix: record truncation event when condensation fails but truncation succeeds (#10984) 2026-01-26 17:19:27 -07: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
roomote[bot]
c28478eda7
feat: add wildcard support for MCP alwaysAllow configuration (#10948)
Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-24 22:42:47 -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
roomote[bot]
c7910a99c7
fix(types): remove unsupported Fireworks model tool fields (#10937)
fix(types): remove unsupported tool capability fields from Fireworks model metadata

Co-authored-by: Roo Code <roomote@roocode.com>
2026-01-24 07:39:09 -05: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