Commit graph

2761 commits

Author SHA1 Message Date
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
Daniel
a5b143bb44
feat: add OpenAI context window error handling (#6967)
* feat: add OpenAI context window error handling

- Add comprehensive context window error detection for OpenAI, OpenRouter, Anthropic, and Cerebras
- Implement automatic retry with aggressive context truncation (25% reduction)
- Use proper profile settings for condensing operations
- Add robust error handling with try-catch blocks

Based on PR #5479 from cline/cline repository

* fix: address PR review comments

- Improved type safety by using Record<string, any> instead of direct any casts
- Enhanced Anthropic error detection with message pattern matching
- Added comprehensive unit tests for context-error-handling module
- Added named constant FORCED_CONTEXT_REDUCTION_PERCENT
- Added MAX_CONTEXT_WINDOW_RETRIES limit to prevent infinite loops
- Added logging for context window exceeded errors
- Extracted getCurrentProfileId helper method to reduce duplication
- All tests passing (3438 tests)

* fix: address PR review comments for context window error handling

- Improve Anthropic error detection with more specific patterns and error codes
- Add comprehensive unit tests for context-error-handling module
- Add logging for context window errors with detailed information
- Fix comment for FORCED_CONTEXT_REDUCTION_PERCENT constant
- Fix TypeScript error for untyped error parameter
- Maintain existing getCurrentProfileId helper method

---------

Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-21 02:20:49 -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
Dicha Zelianivan Arkana
ce052dbd7e
refactor(storage): better fs check (#7164)
* refactor(storage): better fs check

* fix(storage): fs check inconsistencies

* test(storage): more thorough testing
2025-08-21 02:15:52 -07:00
roomote[bot]
090737c516
fix: omit temperature parameter when not explicitly set for OpenAI Compatible providers (#7188)
* fix: omit temperature parameter when not explicitly set for OpenAI Compatible providers

- Modified OpenAiHandler to only include temperature when modelTemperature is defined
- Modified BaseOpenAiCompatibleProvider to only include temperature when modelTemperature is defined
- Added tests to verify temperature is omitted when undefined
- Updated existing tests to explicitly set temperature where needed

This allows backend services (LiteLLM, vLLM) to use their configured default temperatures
instead of being forced to use temperature=0 when "Use custom temperature" is unchecked.

Fixes #7187

* test: update tests to match new temperature handling behavior

- Remove temperature parameter expectations from provider tests
- Tests now expect temperature to be omitted when not explicitly set
- Aligns with PR #7188 changes to fix OpenAI Compatible provider behavior

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-08-21 02:14:03 -07:00
roomote[bot]
faece9e26f
feat: enable loading Roo modes from multiple files in .roo/roo_modes directory (#7203)
* feat: enable loading Roo modes from multiple files in .roo/roo_modes directory

- Add support for loading modes from .roo/roo_modes directory (both global and project)
- Implement proper precedence: project .roo/roo_modes > .roomodes > global .roo/roo_modes > settings
- Update file watchers to monitor .roo/roo_modes directories
- Preserve original source file when updating modes
- Add comprehensive tests for the new functionality

Fixes #7202

* refactor: rename .roo/roo_modes to .roo/modes for cleaner directory structure

- Changed ROO_MODES_DIR constant from "roo_modes" to "modes"
- Updated all references in CustomModesManager.ts
- Updated all test descriptions and mocks in CustomModesManager.spec.ts
- All tests passing successfully

* fix: normalize sourceFile paths to use forward slashes in exported YAML

- Fixes Windows test failure where backslashes in sourceFile paths were causing test assertions to fail
- Ensures cross-platform compatibility by normalizing all paths to use forward slashes in YAML exports

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-08-21 02:12:56 -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
github-actions[bot]
c608392a85
Changeset version bump (#7246)
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-08-19 23:07:50 -07:00
Matt Rubens
94fa33bd63
Add announcement for Sonic model (#7244) 2025-08-19 23:02:27 -07:00
github-actions[bot]
1f7ae548ed
Changeset version bump (#7243)
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-08-19 19:37:02 -07:00
Daniel
912eefd7b3
Fix: Add 'roo' provider to checkExistKey function (#7239) 2025-08-19 19:13:44 -07:00
github-actions[bot]
c249ff81e9
Changeset version bump (#7220)
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-08-19 17:45:45 -07:00
Daniel
9a7ddab1bc
feat: simple read_file tool for single-file-only models (#7222) 2025-08-19 10:57:57 -07:00
Matt Rubens
ede26b8036
Increase sonic max_tokens to 16384 (#7218) 2025-08-19 07:19:50 -07:00
Chris Estreich
532728ee85
Expose thinking tokens for roo/sonic (#7212)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-19 07:01:01 -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
roomote[bot]
87c42c1f26
fix: respect enableReasoningEffort setting when determining reasoning usage (#7049)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-08-18 15:07:06 -07:00
Daniel
b975ced81b
feat: simplify ask_followup_question prompt documentation (#7191) 2025-08-18 09:12:16 -07:00
Daniel
e7e827a3f8
fix: prevent duplicate LM Studio models with case-insensitive deduplication (#7185)
* fix: prevent duplicate LM Studio models with case-insensitive deduplication

- Keep both listDownloadedModels and listLoaded APIs to support JIT loading
- Implement case-insensitive deduplication to prevent duplicates
- When duplicates are found, prefer loaded model data for accurate runtime info
- Add test coverage for deduplication logic
- Addresses feedback about LM Studio's JIT Model Loading feature (v0.3.5+)

Fixes #6954

* fix: correct deduplication logic to prefer loaded models

- When a loaded model ID is found in any downloaded model key (case-insensitive)
- Remove the downloaded model and replace with the loaded model
- This ensures loaded models with runtime info take precedence
- Updated tests to verify the correct deduplication behavior

* fix: improve deduplication logic and add comprehensive test coverage

- Enhanced deduplication to use path segment matching instead of simple substring
- Prevents false positives like 'llama' matching 'codellama'
- Added comprehensive test cases for edge cases and multiple scenarios
- Maintains support for JIT Model Loading feature
2025-08-18 08:17:43 -07:00
Matt Rubens
a8aea14078
chore: bump version to v1.53.0 (#7171) 2025-08-17 23:30:45 -07:00
github-actions[bot]
d941cee055
Changeset version bump (#7170)
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-08-17 22:26:16 -07:00
Matt Rubens
185365af5d
Fix terminal reuse logic (#7157) 2025-08-16 23:10:59 -07:00
github-actions[bot]
0d90facc53
Changeset version bump (#7152)
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-08-16 19:54:59 -07:00
Chris Estreich
2a974e8bf6
Emit event when a task ask requires interaction (#7128)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-08-16 02:46:51 -07:00
Daniel
f3864ffebb
fix: use native Ollama API instead of OpenAI compatibility layer (#7137) 2025-08-15 23:31:58 -04:00
Will Li
438c8e377a
Make enhance with task history default to true (#7140) 2025-08-15 22:40:46 -04:00
Matt Rubens
52c58ea666
Bump cloud version to 0.16.0 (#7135) 2025-08-15 14:25:32 -04:00
Matt Rubens
6274273982
Release: v1.51.0 (#7130) 2025-08-15 12:42:53 -04:00
Matt Rubens
9a734d0cab
Add an API for resuming tasks by ID (#7122) 2025-08-15 12:03:58 -04:00
Chris Estreich
44086e4a86
Add support for task page event population (#7117) 2025-08-14 23:17:05 -07:00
roomote[bot]
0d0bba2eb7
fix: add type check before calling .match() on diffItem.content (#6905) (#6906)
* fix: add type check before calling .match() on diffItem.content

Fixes #6905 - Error during diff application "v.content.match is not a function"

- Added type check to ensure diffItem.content is a string before calling .match()
- Added comprehensive tests for handling non-string content values
- Prevents runtime errors when content is null, undefined, or other non-string types

* fix: validate content type earlier in diff parsing

- Move type check to where content is first extracted from XML
- Remove redundant check since content is now guaranteed to be string
- Add test for early content validation

* chore: remove comments

* fix: add TelemetryService mock to multiApplyDiffTool tests

* fix: add captureDiffApplicationError to TelemetryService mock

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-08-14 20:05:45 -04:00
NaccOll
3f4af18bf7
fix: Use cline.cwd as primary source for workspace path in codebaseSearchTool (#6902)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-08-14 18:17:14 -04:00
NaccOll
57389bff36
Hotfix multiple folder workspace checkpoint (#6903) 2025-08-14 18:16:54 -04:00
roomote[bot]
6540f2be5c
fix: prevent XML entity decoding in diff tools (#7107) (#7108)
* fix: prevent XML entity decoding in diff tools

- Add parseXmlForDiff function with processEntities: false to preserve exact content
- Update multiApplyDiffTool to use parseXmlForDiff instead of parseXml
- Add comprehensive tests for entity handling in parseXmlForDiff

This fixes the issue where fast-xml-parser was decoding HTML entities like &
causing mismatches in diff tools when comparing against original file content.

Fixes #7107

* refactor: eliminate code duplication between parseXml and parseXmlForDiff

- Refactored parseXml to accept optional ParseXmlOptions parameter
- parseXmlForDiff now delegates to parseXml with processEntities: false
- Added explanatory comment in multiApplyDiffTool.ts about why parseXmlForDiff is used
- Improved JSDoc documentation with specific use cases for parseXmlForDiff

This maintains backward compatibility while eliminating code duplication.
parseXml continues to be used for general XML parsing (file reads, follow-up questions),
while parseXmlForDiff is specifically for diff operations where entity processing must be disabled.

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-08-14 17:46:52 -04:00
Catriel Müller
342123d351
Refactor task execution system: improve call stack management (#7035) 2025-08-14 15:43:44 -04:00
github-actions[bot]
2a105a5881
Changeset version bump (#7104)
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-08-14 12:52:06 -04:00
Chris Estreich
c56b95bc60
Task metadata (#7092) 2025-08-14 03:14:17 -07:00
github-actions[bot]
ca6f261cce
Changeset version bump (#7061)
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-08-13 16:09:47 -04:00
roomote[bot]
23afdfca03
fix: only include verbosity parameter for models that support it (#7055)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-13 15:33:18 -04:00
Daniel
7ed833cb5d
Fix: AWS Bedrock 1M context - Move anthropic_beta to additionalModelRequestFields (#7056) 2025-08-13 15:26:50 -04:00
Chris Estreich
962df868bd
Fix webview in dev mode (#7044) 2025-08-13 01:40:00 -07:00
Chris Estreich
9ffc2b0a36
Move cloud types from @roo-code/types to @roo-code/cloud (#7038) 2025-08-13 00:10:29 -07:00
Matt Rubens
6f81b775c7
Revert "Fix token usage / cost often being underreported" (#7039) 2025-08-13 01:33:57 -04:00
github-actions[bot]
140310f055
Changeset version bump (#7034)
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-08-12 23:11:43 -04:00
roomote[bot]
667773be10
fix: add i18n support for Account button title (#6978)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-12 22:59:01 -04:00
Matt Rubens
13d1a5bc8f
Add Sonnet 1M context checkbox (#7032) 2025-08-12 22:51:30 -04:00
roomote[bot]
8bd8f5dc59
feat: add support for AGENT.md alongside AGENTS.md (#6913)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-12 21:20:59 -04:00
roomote[bot]
7b0f489ea2
fix: add --no-messages flag to ripgrep to suppress file access errors (#6757)
Fixes #6756

When ripgrep encounters file access errors (e.g., permission denied), it would cause the search_files tool to return empty results. Adding the --no-messages flag suppresses these error messages while still showing pattern syntax errors, allowing the search to continue and return valid results from accessible files.

Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-12 17:51:06 -04:00
github-actions[bot]
245bc2a2e6
Changeset version bump (#7019)
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-08-12 16:15:51 -04:00
Daniel
8e7a2e7bdb
feat: Update Claude Sonnet 4 context window to 1 million tokens (#7005)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-08-12 14:40:42 -04:00