Commit graph

4919 commits

Author SHA1 Message Date
Matt Rubens
6fce618f4e
Update CHANGELOG.md 2025-06-25 21:55:23 -04:00
github-actions[bot]
30fb3142be changeset version bump 2025-06-26 01:49:49 +00:00
Matt Rubens
12691918a3
v3.22.0 (#5130) 2025-06-25 21:49:13 -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
KJ7LNW
d1ab71c60e
Improve translation workflow to avoid unnecessary file reads (#5126)
* dotroo: improve translation workflow to reduce unnecessary file reads

Update translation workflow guidelines to use search_files instead of reading
each translation file individually. This approach is more efficient and
reduces context token usage while maintaining translation accuracy.

The improved workflow:
- Uses search_files to find JSON structure in translation files
- Creates proper context for apply_diff without reading every file
- Only reads specific files when their structure differs
- Validates changes with the missing translations script

Fixes: #5125
Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>

* Update 001-general-rules.md

---------

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
2025-06-25 20:24:30 -04:00
ExactDoug
889e92518b
Fix: Remove temperature parameter for Azure OpenAI reasoning models (#5116)
* Fix temperature parameter error for Azure OpenAI reasoning models

* Fix tests: Update O3 family model tests to expect temperature: undefined

- Updated failing tests in openai.spec.ts to expect temperature: undefined for O3 models
- This aligns with the PR changes that remove temperature parameter for Azure OpenAI o1, o3, and o4 models
- All 4 previously failing tests now pass

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-25 20:23:45 -04:00
Hannes Rudolph
e559beee67
fix: handle YAML parsing edge cases in CustomModesManager (#5099)
* fix: handle YAML parsing edge cases in CustomModesManager

- Add BOM (Byte Order Mark) stripping for UTF-8 and UTF-16
- Normalize invisible characters including non-breaking spaces
- Replace fancy quotes and dashes with standard characters
- Remove zero-width characters that can cause parsing issues
- Add comprehensive test coverage for all edge cases

This fixes the YAML parsing limitations documented in PR #237 by
implementing proper preprocessing before parsing YAML content.

* fix: address PR review comments

- Fix BOM handling to correctly handle UTF-16 (all BOMs appear as \uFEFF when decoded)
- Optimize cleanInvisibleCharacters with single regex pass for better performance
- Prevent duplicate error messages by marking errors as already handled
- Refactor test file to use mockFsReadFile helper function to reduce duplication
- Fix YAML indentation in tests (use spaces instead of tabs)
- Add ESLint disable comment for character class warning (regex is correct)

* fix: prevent YAML line breaks by setting lineWidth to 0

- Added lineWidth: 0 option to all yaml.stringify() calls
- Prevents automatic line wrapping at 80 characters
- Improves readability of YAML output for long strings
- Applied to CustomModesManager, SimpleInstaller, and migrateSettings

* fix: add defaultStringType option to yaml.stringify calls

- Added defaultStringType: 'PLAIN' to minimize formatting changes
- This helps preserve plain scalars when possible
- Works alongside lineWidth: 0 to prevent automatic line wrapping

* refactor: extract problematic characters regex as a named constant

- Move regex pattern to PROBLEMATIC_CHARS_REGEX static constant
- Add comprehensive documentation for each character range
- Improves maintainability and makes the pattern reusable

* test: add comprehensive edge case tests for YAML parsing

- Add test for mixed line endings (CRLF vs LF)
- Add test for multiple BOMs in sequence
- Add test for deeply nested structures with problematic characters
- Ensures robustness across different real-world scenarios

* feat(i18n): add error messages for custom modes in multiple languages

* fix: update tests to expect i18n keys instead of hardcoded strings

- Update CustomModesManager tests to expect translation keys
- Fix YAML edge case tests to match new i18n error messages
- All tests now pass with the i18n integration

* refactor: use strip-bom package and fix error handling

- Replace custom stripBOM method with existing strip-bom package
- Fix duplicate error handling in parseYamlSafely by returning empty object instead of re-throwing
- Addresses review comments from PR #5099

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-25 20:22:21 -04:00
Hannes Rudolph
896e9867ce
fix: disable reasoning budget UI controls for Claude Code provider (#5111) (#5113)
* fix: resolve intermittent reasoning content not displayed for Claude Code provider (#5111)

- Modified fallback logic in stream parsing to handle all message types, not just assistant messages
- Added proper parsing attempts for partial data before yielding
- Improved error logging to help debug streaming issues
- Added debug logging (controlled by DEBUG_CLAUDE_CODE env var) to trace message types

This ensures reasoning/thinking content from Claude 3.5 Sonnet 4.0 is properly displayed in all cases.

* fix: disable reasoning budget UI controls for Claude Code provider (#5111)

- Set supportsReasoningBudget to false for all Claude Code models
- Claude Code CLI doesn't support thinking/reasoning parameters
- UI controls were misleading users since they had no effect

* fix: update Claude Code models configuration

- Add missing requiredReasoningBudget: false to claude-3-5-sonnet-20241022 and claude-3-5-haiku-20241022
- Revert run.ts changes as they are not needed for fixing the UI issue
- The UI issue is resolved by properly disabling reasoning budget support in model configuration

* feat: add reasoning effort support to Claude Code models and integrate into model selection

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-25 20:07:42 -04:00
Chris Estreich
aaed043cb0
Git repo cloud telemetry (#5119)
This PR adds filtering of git repository properties from telemetry data and includes git info in telemetry properties, with comprehensive tests.

Behavior:
PostHogTelemetryClient now filters out repositoryUrl, repositoryName, and defaultBranch from telemetry events.
ClineProvider includes git repository information in telemetry properties, filtered by clients.
Functions:
Added isPropertyCapturable() in BaseTelemetryClient to allow property filtering.
Implemented getGitRepositoryInfo() and getWorkspaceGitInfo() in git.ts to extract git info.
Tests:
Added tests for isPropertyCapturable() in PostHogTelemetryClient.test.ts.
Added tests for getGitRepositoryInfo() and getWorkspaceGitInfo() in git.spec.ts.
2025-06-25 17:01:32 -07: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
Daniel
a9752e0293
Improve pr-reviewer to verify resolved comments by checking code (#5112) 2025-06-25 16:07:29 -04:00
shivamd1810
1472c19f8f
feat: register importSettings as VSCode command (#5095)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-25 16:07:08 -04:00
KJ7LNW
8455909809
fix: use safeWriteJson for all JSON file writes with race condition fix (#4733)
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-25 16:05:02 -04:00
Catriel Müller
8ef359f9ee
fix: allowed commands import/export (#5110)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-25 16:01:15 -04:00
Chris Estreich
3598e3c877
Publish @roo-code/types v1.29.0 (#5084) 2025-06-24 16:31:50 -07: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
github-actions[bot]
ba5033e02e
Update contributors list (#5053)
Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-06-24 16:02:35 -04:00
Daniel
f666cb334f
Revert fix: resolve LM Studio context length detection (#5075) (#5083) 2025-06-24 15:56:22 -04:00
Daniel
e7ca038cb5
feat(pr-fixer): add validation step to workflow (#5078) 2025-06-24 15:00:35 -04:00
Hannes Rudolph
f5d4847dce
feat: add PR check monitoring to issue-fixer workflow (#5077) 2025-06-24 15:00:19 -04:00
Hannes Rudolph
cb4c178b5b
feat: remove individual review comments option from PR Reviewer mode (#5080) 2025-06-24 14:59:59 -04:00
Daniel
5bf7d006a2
fix: resolve LM Studio context length detection (#5075) (#5076) 2025-06-24 14:44:06 -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
Sam Hoang Van
c8b92e0789
feat: add support for loading rules from global and project-local .roo directories (#5016)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-24 11:40:45 -04:00
Hannes Rudolph
ee751af5c6
fix: improve Bedrock error handling for throttling and streaming contexts (#4745) (#4748)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-24 11:37:19 -04:00
Daniel
03052f827b
Add default task names for empty tasks (#5071)
Co-authored-by: kiwina <kiwina@users.noreply.github.com>
2025-06-24 11:35:45 -04:00
Daniel
954825afb7
fix: Handle long Claude code messages (#5072) 2025-06-24 11:34:06 -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
Thomas Brugman
245c8f3269
Fix: Allow write_to_file to handle newline-only and empty content (#3550)
* Fix: Allow write_to_file to handle newline-only and empty content

* fix: update writeToFileTool to return early without error on missing or empty parameters

* fix: preserve newlines in content parameters and update error handling in writeToFileTool tests

* fix: update parseAssistantMessage and parseAssistantMessageV2 to preserve newlines in content parameters while stripping leading and trailing newlines

---------

Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-23 18:43:49 -04:00
OlegOAndreev
82f7e88c2c
Added Enable Roo Code quick fixes setting to disable quick fixes. (#4878)
* Added Enable Roo Code quick fixes setting to disable quick fixes.

* Fix: Address PR review comments and failing tests for #4878

* Fix localization consistency and add test coverage

- Add missing period to French translation for consistency
- Add test case for disabled enableCodeActions setting
- Fix existing test mock setup for proper configuration handling

---------

Co-authored-by: hannesrudolph <hrudolph@gmail.com>
Co-authored-by: RooCode <roocode@RooCodes-Virtual-Machine.local>
2025-06-23 18:41:57 -04:00
John Richmond
6670e1abba
Cloud: settings fetch logging improvements (#5056) 2025-06-23 16:26:26 -04:00
github-actions[bot]
609df58831
Changeset version bump (#5055)
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-06-23 15:04:16 -04:00
Matt Rubens
9cb5a8627d
chore: add changeset for v3.21.5 patch release (#5054) 2025-06-23 15:00:59 -04:00
github-actions[bot]
05f7d685e0
Update contributors list (#5029)
Co-authored-by: mrubens <2600+mrubens@users.noreply.github.com>
2025-06-23 14:48:04 -04:00
John Richmond
9b40829922
Fetch settings only when ready (#5052) 2025-06-23 14:47:27 -04:00
Daniel
041c28d8e5
fix: improve LM Studio model detection to show all downloaded models (#5047) 2025-06-23 14:46:56 -04:00
Matt Rubens
8d94cf86c8
Bump types to 1.28.0 (#5051) 2025-06-23 14:31:27 -04:00
Hannes Rudolph
cabf19153e
fix: resolve Claude Code provider JSON parsing and reasoning block display (#5049)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-06-23 14:14:20 -04:00
Chiao-Wei Wang
3fda1efbd7
fix(qdrant): add URL prefix handling for QdrantClient initialization (#5033) 2025-06-23 14:00:53 -04:00
Chris Estreich
1f05caa569
Skip e2e test that often prompts you (#5044) 2025-06-23 09:32:48 -07:00
Chris Estreich
0a8c55cbd2
Fix TemperatureControl test flake (#5045) 2025-06-23 08:48:26 -07:00
github-actions[bot]
ae885d64e0
Changeset version bump (#5039)
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-06-23 10:25:57 -04:00
Matt Rubens
aaa5f1fd70
v3.21.4 (#5040) 2025-06-23 10:20:52 -04:00
Matt Rubens
6fd0b75bc8
Add claude code as a provider that doesn't need configuration (#5038) 2025-06-23 10:16:22 -04:00
Matt Rubens
abaa3d8179
Store the organization id in credentials (#5002)
* Store the organization id in credentials

* Better organization logic

* Fix tests

* Update cloud settings defaults

* Fix organization_id handling in Clerk API calls

Address review feedback by properly handling 3 cases for organization_id:
1. Have an org id: send organization_id=THE_ORG_ID
2. Have a personal account: send organization_id= (empty string)
3. Don't know if you have an org id (old credentials): don't send organization_id param at all

Changes:
- Updated clerkCreateSessionToken() to check credentials.organizationId !== undefined
- Updated fetchUserInfo() to handle all 3 cases consistently
- Added fallback logic for old credentials without organization context
- Improved logging for better debugging of organization context

* DRY up organization loading code in AuthService

Extract common organization membership processing logic into reusable helper methods:

- findOrganizationMembership(): Find specific org membership by ID
- findPrimaryOrganizationMembership(): Get first/primary org membership
- setUserOrganizationInfo(): Set organization info on user object

This eliminates duplication between the two clerkGetOrganizationMemberships()
call sites that were doing very similar organization data processing.
2025-06-23 07:23:29 -04:00
Sam Hoang Van
5bc3af1bc3
fix: start line not working in multiple apply diff (#5019) 2025-06-22 23:33:52 -04: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
Mark IJbema
9750d868c1
Close the local browser when used as fallback for remote (#4823) 2025-06-22 23:01:23 -04:00
Daniel
35cdcf4883
Refine PR Reviewer mode: focus on issues, minimize markdown (#5022) 2025-06-22 22:53:10 -04:00