Skip to content

Conversation

NaccOll
Copy link

@NaccOll NaccOll commented Aug 27, 2025

Related GitHub Issue

Relate: #7285
Closes: #5710 #4703

Roo Code Task Context (Optional)

Description

After fixing checkpointing issues and changing the checkpoint generation time, #5710 generated numerous conflicts, requiring a revision.

This PR resolves these conflicts, adapts to the new checkpoint generation time, improves user message editing, and supports delete operations to roll back file state.

Test Procedure

unit test

  • src/core/checkpoints/__tests__/checkpoint.test.ts
  • src/core/webview/__tests__/checkpointRestoreHandler.spec.ts
  • src/core/webview/__tests__/webviewMessageHandler.checkpoint.spec.ts
  • src/core/webview/__tests__/webviewMessageHandler.spec.ts

manual test

  1. Enable checkpoint
  2. Send messages multiple times, call tools to edit files, and create multiple checkpoints
  3. Select the user message before checkpoint, click Edit, the user message will become an input box, click Send, a dialog box will pop up。
    3.1. edit message only: Does not change the status of the current workspace file, only replaces the selected user message with the new content in the input box and resends the request. Delete all messages after the selected user's message
    3.2. restore code to checkpoint: Restore the workspace files to the state of the next checkpoint, and replaces the selected user message with the new content in the input box and resends the request. Delete all messages after the selected user's message
  4. Select the user message before checkpoint, click delete, a dialog box will pop up。
    4.1. delete message only: Does not change the status of the current workspace file and delete the current user message and all subsequent messagesuser's message
    4.2. restore code to checkpoint: Restore the workspace files to the state of the next checkpoint and delete the current user message and all subsequent messagesuser's message
  5. User message with no checkpoints at after, click Edit, the user message will become an input box, click Send, a dialog box will pop up。At this time, his confirmation option is only edit message only.
  6. Select user message with no checkpoints at after, click delete, a dialog box will pop up。At this time, his confirmation option is only delete message only.

Pre-Submission Checklist

  • Issue Linked: This PR is linked to an approved GitHub Issue (see "Related GitHub Issue" above).
  • Scope: My changes are focused on the linked issue (one major feature/fix per PR).
  • Self-Review: I have performed a thorough self-review of my code.
  • Testing: New and/or updated tests have been added to cover my changes (if applicable).
  • Documentation Impact: I have considered if my changes require documentation updates (see "Documentation Updates" section below).
  • Contribution Guidelines: I have read and agree to the Contributor Guidelines.

Screenshots / Videos

delete message:
image

edit message:
image
image

Documentation Updates

Added a section on editing and deleting user messages

Additional Notes

Get in Touch

NaccOll


Important

This PR adds functionality to edit/delete user messages with options to restore code to a previous checkpoint, including UI updates, backend logic, and localization support.

  • Behavior:
    • Adds edit/delete functionality for user messages with checkpoint restoration options in ChatView.tsx and CheckpointRestoreDialog.tsx.
    • Supports restoring code to a previous checkpoint or only editing/deleting the message.
  • UI Components:
    • Introduces CheckpointRestoreDialog for user confirmation with options to restore to checkpoint.
    • Updates ChatRow to handle edit mode with image selection and message editing.
  • Tests:
    • Adds unit tests for CheckpointRestoreDialog in CheckpointRestoreDialog.spec.tsx.
    • Updates existing tests to cover new edit/delete behavior in ClineProvider.spec.ts and webviewMessageHandler.checkpoint.spec.ts.
  • Localization:
    • Updates localization files for multiple languages to include new confirmation messages for edit/delete actions with checkpoints.

This description was created by Ellipsis for 83c38d0. You can customize this summary. It will automatically update as commits are pushed.

@NaccOll NaccOll requested review from mrubens, cte and jr as code owners August 27, 2025 08:33
@NaccOll NaccOll marked this pull request as draft August 27, 2025 08:34
@dosubot dosubot bot added the size:XXL This PR changes 1000+ lines, ignoring generated files. label Aug 27, 2025
Copy link

@roomote roomote bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your contribution! I've reviewed the changes and found several issues that need attention before this can be merged. The implementation of checkpoint restoration for edit/delete operations looks promising, but there are some critical items to address.

currentCline.abortTask()
// Wait a bit for the abort to complete
await pWaitFor(() => currentCline.abort === true, {
timeout: 1000,
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is a 1-second timeout sufficient for complex operations? Consider making this configurable or increasing the default:

@@ -1090,7 +1090,7 @@ export const ChatRowContent = ({
<Button
variant="ghost"
size="icon"
className="shrink-0 hidden"
className="shrink-0"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this intentional? The edit button was previously hidden but is now always visible. Should this be conditional based on message type or user permissions?

@@ -919,9 +919,30 @@ const ChatViewComponent: React.ForwardRefRenderFunction<ChatViewRef, ChatViewPro
useMount(() => textAreaRef.current?.focus())

const visibleMessages = useMemo(() => {
// Pre-compute checkpoint hashes that have associated user messages for O(1) lookup
const userMessageCheckpointHashes = new Set<string>()
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good optimization using Set for O(1) lookup! This improves performance when filtering checkpoint messages.

Copy link

roomote bot commented Aug 27, 2025

Additional Review Comments

Critical Issues to Address:

  1. Merge Conflicts - This PR currently has merge conflicts that need to be resolved before it can be properly reviewed and merged.

  2. Incomplete PR Checklist - Please complete the following items in your pre-submission checklist:

    • Self-Review: Perform a thorough self-review of your code
    • Testing: Confirm that tests have been added/updated to cover your changes
    • Documentation Impact: Consider if your changes require documentation updates
    • Contribution Guidelines: Confirm you have read and agree to the guidelines
  3. Missing Test Procedure - The "Test Procedure" section is empty. Please add steps for reviewers to test the edit/delete functionality with checkpoint restoration.

Positive Observations:

  • Excellent test coverage for the new CheckpointRestoreDialog component
  • Complete localization support across all languages
  • Good separation of concerns with the new checkpointRestoreHandler.ts module

Once these issues are addressed and the PR is moved out of draft status, it will be ready for final review and merge.

@hannesrudolph hannesrudolph added the Issue/PR - Triage New issue. Needs quick review to confirm validity and assign labels. label Aug 27, 2025
@daniel-lxs daniel-lxs moved this from Triage to PR [Draft / In Progress] in Roo Code Roadmap Aug 27, 2025
@hannesrudolph hannesrudolph added PR - Draft / In Progress and removed Issue/PR - Triage New issue. Needs quick review to confirm validity and assign labels. labels Aug 27, 2025
@NaccOll NaccOll force-pushed the feature-user-message-edit branch 2 times, most recently from fddb922 to 83c38d0 Compare August 28, 2025 16:48
@NaccOll NaccOll marked this pull request as ready for review August 29, 2025 15:58
@dosubot dosubot bot added the documentation Improvements or additions to documentation label Aug 29, 2025
@NaccOll NaccOll force-pushed the feature-user-message-edit branch from 83c38d0 to 44144bd Compare August 30, 2025 06:41
@NaccOll NaccOll mentioned this pull request Sep 1, 2025
6 tasks
commit 6384ca5
Merge: 0c481a3 85268aa
Author: NaccOll <[email protected]>
Date:   Mon Aug 25 18:00:51 2025 +0800

    Merge branch 'will/edit-w-checkpoints' into main

commit 85268aa
Author: Will Li <[email protected]>
Date:   Fri Jul 25 09:57:08 2025 -0700

    remove some extra code

commit 0bd49d7
Merge: a78aed8 d62a260
Author: Will Li <[email protected]>
Date:   Fri Jul 25 09:23:24 2025 -0700

    Merge branch 'main' into will/edit-w-checkpoints

commit a78aed8
Author: Will Li <[email protected]>
Date:   Wed Jul 23 04:06:27 2025 -0700

    further simplification

commit b8c5dda
Author: Will Li <[email protected]>
Date:   Wed Jul 23 03:17:54 2025 -0700

    clean code more

commit 6657a7d
Merge: 7baefef 9956cc1
Author: Will Li <[email protected]>
Date:   Wed Jul 23 03:03:58 2025 -0700

    Merge branch 'main' into will/edit-w-checkpoints

commit 7baefef
Author: Will Li <[email protected]>
Date:   Wed Jul 23 01:20:46 2025 -0700

    reduce checkpoint changes

commit ab46f94
Merge: 15ce9e3 5629199
Author: Matt Rubens <[email protected]>
Date:   Tue Jul 22 14:51:14 2025 -0400

    Merge remote-tracking branch 'origin/main' into will/edit-w-checkpoints

commit 15ce9e3
Merge: 09d0b29 9014840
Author: Will Li <[email protected]>
Date:   Fri Jul 18 15:33:21 2025 -0700

    merge main

commit 09d0b29
Author: Will Li <[email protected]>
Date:   Thu Jul 17 08:41:08 2025 -0700

    fix typo

commit 17658ba
Author: Will Li <[email protected]>
Date:   Thu Jul 17 08:39:36 2025 -0700

    fix weird autolint again

commit 2ab8d49
Author: Will Li <[email protected]>
Date:   Thu Jul 17 08:35:05 2025 -0700

    other merge fixes

commit 0e9954d
Merge: 2c77f32 fb374b3
Author: Will Li <[email protected]>
Date:   Thu Jul 17 08:34:29 2025 -0700

    Merge branch 'main' into will/edit-w-checkpoints

commit 2c77f32
Author: Will Li <[email protected]>
Date:   Mon Jul 14 15:56:18 2025 -0700

    clean logging

commit 616c4b6
Author: Will Li <[email protected]>
Date:   Mon Jul 14 15:42:08 2025 -0700

    do translations

commit 7015608
Author: Will Li <[email protected]>
Date:   Mon Jul 14 15:26:05 2025 -0700

    fix race cond and lint

commit caee1dc
Author: Will Li <[email protected]>
Date:   Mon Jul 14 14:52:06 2025 -0700

    tests, optimizations, refactors

commit bccffac
Author: Will Li <[email protected]>
Date:   Mon Jul 14 11:41:27 2025 -0700

    working

commit 930e70e
Author: Will Li <[email protected]>
Date:   Sun Jul 13 18:03:51 2025 -0700

    refactor

commit 6044c1a
Author: Will Li <[email protected]>
Date:   Sun Jul 13 15:26:24 2025 -0700

    initial print fix

commit 0872b8b
Author: Will Li <[email protected]>
Date:   Sun Jul 13 10:36:45 2025 -0700

    cleaner code

commit d3c655d
Author: Will Li <[email protected]>
Date:   Sun Jul 13 00:19:49 2025 -0700

    working version, still some default checkpointing bugs

commit 63c7c7c
Author: Will Li <[email protected]>
Date:   Fri Jul 11 15:56:33 2025 -0700

    some merge fixes

commit 7b77d80
Merge: ce0c182 69c3996
Author: Will Li <[email protected]>
Date:   Fri Jul 11 09:49:47 2025 -0700

    Merge branch 'will/edit-delete-overhaul' into will/edit-w-checkpoints

commit 69c3996
Merge: 4604211 406b366
Author: Will Li <[email protected]>
Date:   Thu Jul 10 20:46:31 2025 -0700

    Merge branch 'main' into will/edit-delete-overhaul

commit 4604211
Author: Will Li <[email protected]>
Date:   Thu Jul 10 20:26:35 2025 -0700

    ui fix

commit 5edab52
Author: Will Li <[email protected]>
Date:   Thu Jul 10 18:47:21 2025 -0700

    fixed image issue

commit f89d768
Author: Will Li <[email protected]>
Date:   Thu Jul 10 17:26:36 2025 -0700

    remove option to skip notif

commit ce0c182
Author: Will Li <[email protected]>
Date:   Thu Jul 10 17:10:12 2025 -0700

    temp push

commit 67fd5a7
Author: Will Li <[email protected]>
Date:   Wed Jul 9 17:08:10 2025 -0700

    add back hidden flag

commit a17bf98
Author: Will Li <[email protected]>
Date:   Wed Jul 9 17:06:43 2025 -0700

    translations

commit ed4a2a7
Author: Will Li <[email protected]>
Date:   Wed Jul 9 16:48:11 2025 -0700

    ok finally tests working for real!

commit 303a9c8
Author: Will Li <[email protected]>
Date:   Wed Jul 9 16:33:04 2025 -0700

    tests working

commit 24a8c10
Author: Will Li <[email protected]>
Date:   Wed Jul 9 15:32:50 2025 -0700

    working functionality

commit d926a77
Author: Will Li <[email protected]>
Date:   Wed Jul 9 13:02:18 2025 -0700

    big UI improvements

commit ff8c188
Author: Will Li <[email protected]>
Date:   Wed Jul 9 09:00:43 2025 -0700

    improved chat row first pass
@NaccOll NaccOll force-pushed the feature-user-message-edit branch from 44144bd to 7922443 Compare September 4, 2025 03:03
@daniel-lxs daniel-lxs moved this from PR [Draft / In Progress] to PR [Needs Prelim Review] in Roo Code Roadmap Sep 4, 2025
@daniel-lxs
Copy link
Collaborator

The checkpoint feature handles more than just code changes so I think it makes sense to have a more generic message. The translations should be updated to remove specific references to "code":

In all language files (webview-ui/src/i18n/locales/*/common.json):

restoreToCheckpoint:

  • Current: "Yes, restore code to checkpoint"
  • Should be: "Yes, restore the checkpoint"

editQuestionWithCheckpoint:

  • Current: "...Do you also want to undo all code changes back to this checkpoint?"
  • Should be: "...Do you also want to undo all changes back to this checkpoint?"

deleteQuestionWithCheckpoint:

  • Current: "...Do you also want to undo all code changes back to this checkpoint?"
  • Should be: "...Do you also want to undo all changes back to this checkpoint?"

What do you think?

@daniel-lxs daniel-lxs moved this from PR [Needs Prelim Review] to PR [Needs Review] in Roo Code Roadmap Sep 5, 2025
Copy link
Collaborator

@daniel-lxs daniel-lxs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you @NaccOll!

@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label Sep 5, 2025
@@ -285,7 +293,7 @@ export async function checkpointDiff(task: Task, { ts, previousCommitHash, commi

await vscode.commands.executeCommand(
"vscode.changes",
mode === "full" ? "Changes since task started" : "Changes since previous checkpoint",
mode === "full" ? "Changes since task started" : "Changes compare with next checkpoint",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
mode === "full" ? "Changes since task started" : "Changes compare with next checkpoint",
mode === "full" ? "Changes since task started" : "Changes compared to next checkpoint",

@mrubens mrubens merged commit e559ac6 into RooCodeInc:main Sep 5, 2025
18 checks passed
@github-project-automation github-project-automation bot moved this from PR [Needs Review] to Done in Roo Code Roadmap Sep 5, 2025
@github-project-automation github-project-automation bot moved this from New to Done in Roo Code Roadmap Sep 5, 2025
mtone pushed a commit to mtone/Roo-Code that referenced this pull request Sep 7, 2025
mini2s added a commit to zgsm-ai/costrict that referenced this pull request Sep 8, 2025
* Follow symlinks in rooignore checks (RooCodeInc#7405)

* Sonic -> Grok Code Fast (RooCodeInc#7426)

* chore: add changeset for v3.26.0 (RooCodeInc#7428)

* Changeset version bump (RooCodeInc#7429)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: Add Vercel AI Gateway provider integration (RooCodeInc#7396)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>

* feat: Enable on-disk storage for Qdrant vectors and HNSW index (RooCodeInc#7182)

* fix: use anthropic protocol for token counting when using anthropic models via Vercel AI Gateway (RooCodeInc#7433)

- Added condition in getApiProtocol to return 'anthropic' for vercel-ai-gateway when modelId starts with 'anthropic/'
- Added tests for Vercel AI Gateway provider protocol detection

This ensures proper token counting for Anthropic models accessed through Vercel AI Gateway, as Anthropic and OpenAI count tokens differently (Anthropic excludes cache tokens from input count, OpenAI includes them).

* fix: remove duplicate cache display in task header (RooCodeInc#7443)

* Random chat text area cleanup (RooCodeInc#7436)

* Update @roo-code/cloud to enable roomote control for cloud agents (RooCodeInc#7446)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Always set remoteControlEnabled to true for cloud agents (RooCodeInc#7448)

* chore: add changeset for v3.26.1 (RooCodeInc#7459)

* feat: show model ID in API configuration dropdown (RooCodeInc#7423)

* feat: update tooltip component to match native VSCode tooltip shadow styling (RooCodeInc#7457)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: cte <[email protected]>

* Add support for Vercel embeddings (RooCodeInc#7445)

Co-authored-by: daniel-lxs <[email protected]>

* Remove dot before model display (RooCodeInc#7461)

* Update contributors list (RooCodeInc#7109)

Co-authored-by: mrubens <[email protected]>

* Update 3.26.1 changeset (RooCodeInc#7463)

* Changeset version bump (RooCodeInc#7460)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Add type for RooCodeEventName.TaskSpawned (RooCodeInc#7465)

* fix: hide .rooignore'd files from environment details by default (RooCodeInc#7369)

* fix: change default showRooIgnoredFiles to false to hide ignored files

- Changed default value from true to false across all files
- Updated tests to reflect the new default behavior
- This prevents ignored files from appearing in environment details

Fixes RooCodeInc#7368

* fix: update tests to match new showRooIgnoredFiles default

* fix: update test expectation to match new showRooIgnoredFiles default value

The PR changed the default value of showRooIgnoredFiles from true to false,
so the test needs to expect false instead of true when calling formatFilesList.

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: exclude browser scroll actions from repetition detection (RooCodeInc#7471)

- Modified ToolRepetitionDetector to skip repetition detection for browser_action scroll_down and scroll_up actions
- Added isBrowserScrollAction() helper method to identify scroll actions
- Added comprehensive tests for the new behavior
- Fixes issue where multiple scroll actions were incorrectly flagged as being stuck in a loop

Resolves: RooCodeInc#7470

Co-authored-by: Roo Code <[email protected]>

* Fix GPT-5 Responses API issues with condensing and image support (RooCodeInc#7067)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>

* Bump cloud to 0.25.0 (RooCodeInc#7475)

* feat: add image generation tool with OpenRouter integration (RooCodeInc#7474)

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: cte <[email protected]>

* Make the default image filename more generic (RooCodeInc#7479)

* Release v3.26.2 (RooCodeInc#7490)

* Support free imagegen (RooCodeInc#7493)

* feat: update OpenRouter API to support input/output modalities and filter image generation models (RooCodeInc#7492)

* Add padding to image model picker (RooCodeInc#7494)

* fix: prevent dirty state on initial mount in ImageGenerationSettings (RooCodeInc#7495)

* Changeset version bump (RooCodeInc#7491)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Show console logging in vitests when the --no-silent flag is set (RooCodeInc#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 <[email protected]>

* Move @roo-code/cloud to the Roo-Code repo (RooCodeInc#7503)

* Refactor the extension bridge (RooCodeInc#7515)

* Implement deferred task subscriptions (RooCodeInc#7517)

* feat: add optional input image parameter to image generation tool (RooCodeInc#7525)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: sync extension bridge settings with cloud (RooCodeInc#7535)

- Use CloudService.getUserSettings() for remoteControlEnabled instead of global state
- Update CloudService.updateUserSettings when toggling remote control
- Add BridgeOrchestrator.connectOrDisconnect handling in settings update handler
- Remove dependency on contentProxy/globalSettings for remote control state
---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* refactor: flatten image generation settings structure (RooCodeInc#7536)

* chore: add changeset for v3.26.3 (RooCodeInc#7541)

* Changeset version bump (RooCodeInc#7542)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Mode and provider profile selector (RooCodeInc#7545)

* Putting the Roo in Roo-leases (RooCodeInc#7546)

* Fix evals (RooCodeInc#7547)

* fix: special tokens should not break task processing (RooCodeInc#7540)

* docs: update PR template branding from Roo Code to Costrict

* feat: optimize memory usage for image handling in webview (RooCodeInc#7556)

* feat: optimize memory usage for image handling in webview

- Replace base64 image data with webview URIs to reduce memory footprint
- Add proper resource roots to webview for workspace file access
- Implement convertToWebviewUri method for safe file-to-URI conversion
- Update ImageViewer to handle both webview URIs and file paths separately
- Add image message type for proper image rendering in chat
- Improve error handling and display for failed image loads
- Add comprehensive tests for ImageViewer component
- Format display paths as relative for better readability

This change significantly reduces memory usage by avoiding base64 encoding
of images and instead using VSCode's webview URI system for direct file
access. Images are now loaded on-demand from disk rather than being held
in memory as base64 strings.

* fix: address PR review comments

- Use safeJsonParse instead of JSON.parse in ChatRow.tsx
- Add type definition for parsed image info
- Add more specific error types in ClineProvider.ts
- Add comprehensive JSDoc comments to ImageBlock.tsx
- Improve error handling and type safety

* fix: address MrUbens' review comments

- Remove hardcoded 'rc1' pattern in formatDisplayPath, use generic workspace detection
- Internationalize 'No image data' text using i18n system

* chore: remove useless comment

* chore(i18n): add image.noData to all locales to fix translation check

* test: update ImageViewer.spec to align with i18n key and flexible path formatting

* feat: rename Account tab to Cloud tab (RooCodeInc#7558)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add Ollama API key support for Turbo mode (RooCodeInc#7425)

* feat: add Ollama API key support for Turbo mode

- Add ollamaApiKey field to ProviderSettings schema
- Add ollamaApiKey to SECRET_STATE_KEYS for secure storage
- Update Ollama and NativeOllama providers to use API key for authentication
- Add UI field for Ollama API key (shown when custom base URL is provided)
- Add test coverage for API key functionality

This enables users to use Ollama Turbo with datacenter-grade hardware by providing an API key for authenticated Ollama instances or cloud services.

* fix: use VSCodeTextField for Ollama API key field

Remove non-existent ApiKeyField import and use standard VSCodeTextField with password type, matching other provider implementations

* Add missing translation keys for Ollama API key support

- Add providers.ollama.apiKey and providers.ollama.apiKeyHelp to all 18 language files
- Support for authenticated Ollama instances and cloud services
- Relates to PR RooCodeInc#7425

* refactor: improve type safety for Ollama client configuration

- Replace 'any' type with proper OllamaOptions (Config) type
- Import Config type from ollama package for better type checking

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Disconnect extension bridge on logout (RooCodeInc#7563)

* Disconnect extension bridge on logout

* Remove bad test

* Cleanup

* Fix claudeCode.notFound translation key (RooCodeInc#7571)

I think I saw someone post a screenshot where "errors.claudeCode.notFound" was shown untranslated.

* v3.26.4 (RooCodeInc#7579)

* Update contributors list (RooCodeInc#7462)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7580)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add configurable embedding batch size for code indexing (RooCodeInc#7464)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Shows a pill with the base Roo Code Cloud URL when not pointing to pr… (RooCodeInc#7555)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Cloud: fix provider syncing (RooCodeInc#7603)

ClineProvider creation was moved before CloudService which broke
the old way of doing things.

* fix: add cache reporting support for OpenAI-Native provider (RooCodeInc#7602)

* fix: add cache reporting support for OpenAI-Native provider

- Add normalizeUsage method to properly extract cache tokens from Responses API
- Support both detailed token shapes (input_tokens_details) and legacy fields
- Calculate cache read/write tokens with proper fallbacks
- Include reasoning tokens when available in output_tokens_details
- Ensure accurate cost calculation using uncached input tokens

This fixes the issue where caching information was not being reported
when using the OpenAI-Native provider with the Responses API.

* fix: improve cache token normalization and add comprehensive tests

- Add fallback to derive total input tokens from details when totals are missing
- Remove unused convertToOpenAiMessages import
- Add comment explaining cost calculation alignment with Gemini provider
- Add comprehensive test coverage for normalizeUsage method covering:
  - Detailed token shapes with cached/miss tokens
  - Legacy field names and SSE-only events
  - Edge cases including missing totals with details-only
  - Cost calculation with uncached input tokens

* fix: address PR review comments

- Remove incorrect fallback to missFromDetails for cache write tokens
- Fix cost calculation to pass total input tokens (calculateApiCostOpenAI handles subtraction)
- Improve readability by extracting cache detail checks to intermediate variables
- Remove redundant ?? undefined
- Update tests to reflect correct behavior (miss tokens are not cache writes)
- Add clarifying comments about cache miss vs cache write tokens

* feat: add auto-approve support for MCP access_resource tool (RooCodeInc#7606)

* Move message queue to the extension host (RooCodeInc#7604)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Send custom modes to the extension bridge (RooCodeInc#7612)

* Never give up in socket transport (RooCodeInc#7616)

* Fix socket-io client event handling (RooCodeInc#7618)

* More socket-io client fixes from PR feedback (RooCodeInc#7619)

* More socket-io client logging improvements (RooCodeInc#7620)

* Publish subtask events (RooCodeInc#7626)

* Update chutes.ts to add Qwen3 235B A22B Thinking 2507 model (RooCodeInc#7578)

Co-authored-by: Matt Rubens <[email protected]>

* chore: add changeset for v3.26.5 (RooCodeInc#7628)

* Update contributors list (RooCodeInc#7629)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7630)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add run_slash_command tool for executing slash commands (RooCodeInc#7473)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Focus the extension when receiving bridge commands (RooCodeInc#7633)

* Release: v1.73.0 (RooCodeInc#7636)

* Cloud: remove extension_bridge_enabled for personal users (RooCodeInc#7638)

* Publish token usage metrics (RooCodeInc#7637)

* fix: preserve scroll position when switching tabs in settings (RooCodeInc#7587)

* fix: preserve scroll position when switching tabs in settings

* ui(settings): restore scroll synchronously to prevent flicker; dx(ui): name TabContent for clearer DevTools

---------

Co-authored-by: Daniel Riccio <[email protected]>

* feat: add Kimi K2 Turbo model configuration to moonshotModels (RooCodeInc#7593)

* feat: add Kimi K2 Turbo model configuration to moonshotModels

* feat: update Kimi K2 Turbo pricing and cache read prices

* fix: use askApproval wrapper in insert_content and search_and_replace tools (RooCodeInc#7649)

Fixes issue where isWriteProtected was incorrectly passed as the partial flag
to task.ask(), causing "Current ask promise was ignored (#1)" error.

Both tools now use the askApproval wrapper function which correctly handles
the parameter ordering, passing undefined for progressStatus and isWriteProtected
as the fourth parameter.

Fixes RooCodeInc#7648

Co-authored-by: Roo Code <[email protected]>

* Release v3.26.6 (RooCodeInc#7650)

* Changeset version bump (RooCodeInc#7651)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Delete .github/workflows/discord-pr-notify.yml

* Remove unused slack notif (RooCodeInc#7655)

* Handle zsh process substitution correctly (RooCodeInc#7658)

* Handle zsh glob qualifiers correctly (RooCodeInc#7667)

* Minor zh-TW Traditional Chinese locale typo fix (RooCodeInc#7672)

* feat: Add DeepInfra as a model provider in Roo Code (RooCodeInc#7677)

* fix: validate MCP tool exists before execution (RooCodeInc#7632)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* fix: add error transform to cryptic openAI SDK errors when API key is invalid (RooCodeInc#7586)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: OpenAI Responses API service tiers (flex/priority) — UI selector, pricing, and tests (RooCodeInc#7646)

Co-authored-by: Daniel Riccio <[email protected]>

* fix: prevent countdown timer from showing in history for answered follow-up questions (RooCodeInc#7686)

* fix: Fix the issue of Moonshot's maximum return token count being limited to 1024 (RooCodeInc#7673)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* feat: update kimi-k2-0905-preview and kimi-k2-turbo-preview (RooCodeInc#7663)

* Fix test

* Release v3.26.7 (RooCodeInc#7691)

* Delete .changeset/petite-rats-admire.md

* feat: Add Kimi K2 0905 model to Groq, Moonshot, and Fireworks providers (RooCodeInc#7693)

* Use an allowlist to keep the prompt default shell sane (RooCodeInc#7681)

* Changeset version bump (RooCodeInc#7690)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Fix: Improve WelcomeView styling and readability (RooCodeInc#7682)

* fix: improve WelcomeView styling and readability

- Reduced excessive padding from p-16 to p-6
- Removed excessive bold text throughout
- Made provider cards more compact with smaller icons (32x32px)
- Increased introduction text size from text-sm to text-base for better visibility
- Centered the main greeting title
- Improved visual hierarchy with proper text sizing and spacing
- Added subtle borders and improved color contrast

* fix: remove undefined color class from incentive text

Removed the text-vscode-warningForeground class as it wasn't defined in index.css. The incentive text now uses default color which looks good.

* feat: add Kimi K2-0905 model to Chutes provider (RooCodeInc#7701)

Co-authored-by: Roo Code <[email protected]>

* fix: handle array paths from VSCode terminal profiles (RooCodeInc#7697)

* fix: handle array paths from VSCode terminal profiles

- Updated terminal profile interfaces to support string | string[] for path property
- Added normalizeShellPath helper to safely extract first element from array paths
- Modified isShellAllowed to handle both string and array inputs
- Updated getWindowsShellFromVSCode, getMacShellFromVSCode, and getLinuxShellFromVSCode to use normalizeShellPath
- Added comprehensive tests for array path handling

Fixes RooCodeInc#7695

* feat: add validateShellPath export for robust shell validation

- Created validateShellPath as a public API for shell path validation
- Refactored internal validation logic into isShellAllowedInternal
- Added comprehensive test coverage for all edge cases
- Maintains backward compatibility with deprecated isShellAllowed
- Handles arrays, strings, null, undefined, and nested arrays gracefully

* Simplify roomote's work a little

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Edit/Delete User Message (RooCodeInc#7447)

* fix: prevent stack overflow in codebase indexing for large projects (RooCodeInc#7712)

* fix: identify mcp and slash command config path in multiple folder workspace (RooCodeInc#6904)

* fix: resolve CI e2e test ETIMEDOUT errors when downloading VS Code (RooCodeInc#7583)

* fix: Tackling Race/State condition issue by Changing the Code Design for Gemini Grounding Sources (RooCodeInc#7434)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: preserve context by retrying with full conversation on invalid previous_response_id (RooCodeInc#7714)

* chore: add changeset for v3.26.8 (RooCodeInc#7715)

* feat(checkpoints): create checkpoint when user sends a message (RooCodeInc#7713)

* feat(checkpoints): create checkpoint on user message send

* fix(checkpoints): suppress implicit user-message checkpoint row; keep current checkpoint updated without a chat row

* Fix checkpoint suppression for user messages

- Propagate suppressMessage flag through event chain properly
- Update ChatView to check checkpoint metadata for suppressMessage flag
- Ensure checkpoint messages are created but not rendered when suppressed
- Fix bug where checkpointSave(false) should have been checkpointSave(true)

* fix: only create checkpoint on user message when files have changed

- Changed allowEmpty from true to false in checkpointSave call
- Checkpoints will now only be created when there are actual file changes
- This avoids creating empty commits in the shadow git repository

* test: update checkpoint test to include suppressMessage parameter

- Fixed test expectation to match the new function signature
- saveCheckpoint now expects both allowEmpty and suppressMessage parameters

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Bump to 3.27.0 (RooCodeInc#7719)

* Changeset version bump (RooCodeInc#7716)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix: update DeepSeek pricing to new unified rates effective Sept 5, 2025 (RooCodeInc#7687)

- Updated deepseek-chat pricing: $0.56 input (cache miss), $0.07 (cache hit), $1.68 output
- Updated deepseek-reasoner pricing: same unified rates as deepseek-chat
- Both models now have identical pricing as per DeepSeek announcement
- Pricing takes effect at 16:00 UTC, Sept 5th, 2025

Fixes RooCodeInc#7685

Co-authored-by: Roo Code <[email protected]>

* feat: replace cloud waitlist ad with direct Cloud link in navigation (RooCodeInc#7742)

Co-authored-by: Roo Code <[email protected]>

* feat: show dash instead of zero for missing data on evals page (RooCodeInc#7748)

Co-authored-by: Roo Code <[email protected]>

* Feature/update vertex ai models and regions (RooCodeInc#7727)

* Add model info to eval runs table (RooCodeInc#7749)

* refactor(utils): simplify shell detection logic

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* test: update shell detection test expectation and mocks

* test: add mock cleanup in shell detection tests

* test: update shell detection tests to prioritize PowerShell 7

---------

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Josh <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: mrubens <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: Piotr Wilkin (ilintar) <[email protected]>
Co-authored-by: Christiaan Arnoldus <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mohammad Danaee nia <[email protected]>
Co-authored-by: 淡草 <[email protected]>
Co-authored-by: WangXiaolong <[email protected]>
Co-authored-by: Peter Dave Hello <[email protected]>
Co-authored-by: Thach Nguyen <[email protected]>
Co-authored-by: CellenLee <[email protected]>
Co-authored-by: NaccOll <[email protected]>
Co-authored-by: Ton Hoang Nguyen (Bill) <[email protected]>
Co-authored-by: ssweens <[email protected]>
mini2s added a commit to zgsm-ai/costrict that referenced this pull request Sep 8, 2025
* Follow symlinks in rooignore checks (RooCodeInc#7405)

* Sonic -> Grok Code Fast (RooCodeInc#7426)

* chore: add changeset for v3.26.0 (RooCodeInc#7428)

* Changeset version bump (RooCodeInc#7429)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: Add Vercel AI Gateway provider integration (RooCodeInc#7396)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>

* feat: Enable on-disk storage for Qdrant vectors and HNSW index (RooCodeInc#7182)

* fix: use anthropic protocol for token counting when using anthropic models via Vercel AI Gateway (RooCodeInc#7433)

- Added condition in getApiProtocol to return 'anthropic' for vercel-ai-gateway when modelId starts with 'anthropic/'
- Added tests for Vercel AI Gateway provider protocol detection

This ensures proper token counting for Anthropic models accessed through Vercel AI Gateway, as Anthropic and OpenAI count tokens differently (Anthropic excludes cache tokens from input count, OpenAI includes them).

* fix: remove duplicate cache display in task header (RooCodeInc#7443)

* Random chat text area cleanup (RooCodeInc#7436)

* Update @roo-code/cloud to enable roomote control for cloud agents (RooCodeInc#7446)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Always set remoteControlEnabled to true for cloud agents (RooCodeInc#7448)

* chore: add changeset for v3.26.1 (RooCodeInc#7459)

* feat: show model ID in API configuration dropdown (RooCodeInc#7423)

* feat: update tooltip component to match native VSCode tooltip shadow styling (RooCodeInc#7457)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: cte <[email protected]>

* Add support for Vercel embeddings (RooCodeInc#7445)

Co-authored-by: daniel-lxs <[email protected]>

* Remove dot before model display (RooCodeInc#7461)

* Update contributors list (RooCodeInc#7109)

Co-authored-by: mrubens <[email protected]>

* Update 3.26.1 changeset (RooCodeInc#7463)

* Changeset version bump (RooCodeInc#7460)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Add type for RooCodeEventName.TaskSpawned (RooCodeInc#7465)

* fix: hide .rooignore'd files from environment details by default (RooCodeInc#7369)

* fix: change default showRooIgnoredFiles to false to hide ignored files

- Changed default value from true to false across all files
- Updated tests to reflect the new default behavior
- This prevents ignored files from appearing in environment details

Fixes RooCodeInc#7368

* fix: update tests to match new showRooIgnoredFiles default

* fix: update test expectation to match new showRooIgnoredFiles default value

The PR changed the default value of showRooIgnoredFiles from true to false,
so the test needs to expect false instead of true when calling formatFilesList.

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: exclude browser scroll actions from repetition detection (RooCodeInc#7471)

- Modified ToolRepetitionDetector to skip repetition detection for browser_action scroll_down and scroll_up actions
- Added isBrowserScrollAction() helper method to identify scroll actions
- Added comprehensive tests for the new behavior
- Fixes issue where multiple scroll actions were incorrectly flagged as being stuck in a loop

Resolves: RooCodeInc#7470

Co-authored-by: Roo Code <[email protected]>

* Fix GPT-5 Responses API issues with condensing and image support (RooCodeInc#7067)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>

* Bump cloud to 0.25.0 (RooCodeInc#7475)

* feat: add image generation tool with OpenRouter integration (RooCodeInc#7474)

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: cte <[email protected]>

* Make the default image filename more generic (RooCodeInc#7479)

* Release v3.26.2 (RooCodeInc#7490)

* Support free imagegen (RooCodeInc#7493)

* feat: update OpenRouter API to support input/output modalities and filter image generation models (RooCodeInc#7492)

* Add padding to image model picker (RooCodeInc#7494)

* fix: prevent dirty state on initial mount in ImageGenerationSettings (RooCodeInc#7495)

* Changeset version bump (RooCodeInc#7491)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Show console logging in vitests when the --no-silent flag is set (RooCodeInc#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 <[email protected]>

* Move @roo-code/cloud to the Roo-Code repo (RooCodeInc#7503)

* Refactor the extension bridge (RooCodeInc#7515)

* Implement deferred task subscriptions (RooCodeInc#7517)

* feat: add optional input image parameter to image generation tool (RooCodeInc#7525)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: sync extension bridge settings with cloud (RooCodeInc#7535)

- Use CloudService.getUserSettings() for remoteControlEnabled instead of global state
- Update CloudService.updateUserSettings when toggling remote control
- Add BridgeOrchestrator.connectOrDisconnect handling in settings update handler
- Remove dependency on contentProxy/globalSettings for remote control state
---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* refactor: flatten image generation settings structure (RooCodeInc#7536)

* chore: add changeset for v3.26.3 (RooCodeInc#7541)

* Changeset version bump (RooCodeInc#7542)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Mode and provider profile selector (RooCodeInc#7545)

* Putting the Roo in Roo-leases (RooCodeInc#7546)

* Fix evals (RooCodeInc#7547)

* fix: special tokens should not break task processing (RooCodeInc#7540)

* docs: update PR template branding from Roo Code to Costrict

* feat: optimize memory usage for image handling in webview (RooCodeInc#7556)

* feat: optimize memory usage for image handling in webview

- Replace base64 image data with webview URIs to reduce memory footprint
- Add proper resource roots to webview for workspace file access
- Implement convertToWebviewUri method for safe file-to-URI conversion
- Update ImageViewer to handle both webview URIs and file paths separately
- Add image message type for proper image rendering in chat
- Improve error handling and display for failed image loads
- Add comprehensive tests for ImageViewer component
- Format display paths as relative for better readability

This change significantly reduces memory usage by avoiding base64 encoding
of images and instead using VSCode's webview URI system for direct file
access. Images are now loaded on-demand from disk rather than being held
in memory as base64 strings.

* fix: address PR review comments

- Use safeJsonParse instead of JSON.parse in ChatRow.tsx
- Add type definition for parsed image info
- Add more specific error types in ClineProvider.ts
- Add comprehensive JSDoc comments to ImageBlock.tsx
- Improve error handling and type safety

* fix: address MrUbens' review comments

- Remove hardcoded 'rc1' pattern in formatDisplayPath, use generic workspace detection
- Internationalize 'No image data' text using i18n system

* chore: remove useless comment

* chore(i18n): add image.noData to all locales to fix translation check

* test: update ImageViewer.spec to align with i18n key and flexible path formatting

* feat: rename Account tab to Cloud tab (RooCodeInc#7558)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add Ollama API key support for Turbo mode (RooCodeInc#7425)

* feat: add Ollama API key support for Turbo mode

- Add ollamaApiKey field to ProviderSettings schema
- Add ollamaApiKey to SECRET_STATE_KEYS for secure storage
- Update Ollama and NativeOllama providers to use API key for authentication
- Add UI field for Ollama API key (shown when custom base URL is provided)
- Add test coverage for API key functionality

This enables users to use Ollama Turbo with datacenter-grade hardware by providing an API key for authenticated Ollama instances or cloud services.

* fix: use VSCodeTextField for Ollama API key field

Remove non-existent ApiKeyField import and use standard VSCodeTextField with password type, matching other provider implementations

* Add missing translation keys for Ollama API key support

- Add providers.ollama.apiKey and providers.ollama.apiKeyHelp to all 18 language files
- Support for authenticated Ollama instances and cloud services
- Relates to PR RooCodeInc#7425

* refactor: improve type safety for Ollama client configuration

- Replace 'any' type with proper OllamaOptions (Config) type
- Import Config type from ollama package for better type checking

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Disconnect extension bridge on logout (RooCodeInc#7563)

* Disconnect extension bridge on logout

* Remove bad test

* Cleanup

* Fix claudeCode.notFound translation key (RooCodeInc#7571)

I think I saw someone post a screenshot where "errors.claudeCode.notFound" was shown untranslated.

* v3.26.4 (RooCodeInc#7579)

* Update contributors list (RooCodeInc#7462)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7580)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add configurable embedding batch size for code indexing (RooCodeInc#7464)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Shows a pill with the base Roo Code Cloud URL when not pointing to pr… (RooCodeInc#7555)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Cloud: fix provider syncing (RooCodeInc#7603)

ClineProvider creation was moved before CloudService which broke
the old way of doing things.

* fix: add cache reporting support for OpenAI-Native provider (RooCodeInc#7602)

* fix: add cache reporting support for OpenAI-Native provider

- Add normalizeUsage method to properly extract cache tokens from Responses API
- Support both detailed token shapes (input_tokens_details) and legacy fields
- Calculate cache read/write tokens with proper fallbacks
- Include reasoning tokens when available in output_tokens_details
- Ensure accurate cost calculation using uncached input tokens

This fixes the issue where caching information was not being reported
when using the OpenAI-Native provider with the Responses API.

* fix: improve cache token normalization and add comprehensive tests

- Add fallback to derive total input tokens from details when totals are missing
- Remove unused convertToOpenAiMessages import
- Add comment explaining cost calculation alignment with Gemini provider
- Add comprehensive test coverage for normalizeUsage method covering:
  - Detailed token shapes with cached/miss tokens
  - Legacy field names and SSE-only events
  - Edge cases including missing totals with details-only
  - Cost calculation with uncached input tokens

* fix: address PR review comments

- Remove incorrect fallback to missFromDetails for cache write tokens
- Fix cost calculation to pass total input tokens (calculateApiCostOpenAI handles subtraction)
- Improve readability by extracting cache detail checks to intermediate variables
- Remove redundant ?? undefined
- Update tests to reflect correct behavior (miss tokens are not cache writes)
- Add clarifying comments about cache miss vs cache write tokens

* feat: add auto-approve support for MCP access_resource tool (RooCodeInc#7606)

* Move message queue to the extension host (RooCodeInc#7604)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Send custom modes to the extension bridge (RooCodeInc#7612)

* Never give up in socket transport (RooCodeInc#7616)

* Fix socket-io client event handling (RooCodeInc#7618)

* More socket-io client fixes from PR feedback (RooCodeInc#7619)

* More socket-io client logging improvements (RooCodeInc#7620)

* Publish subtask events (RooCodeInc#7626)

* Update chutes.ts to add Qwen3 235B A22B Thinking 2507 model (RooCodeInc#7578)

Co-authored-by: Matt Rubens <[email protected]>

* chore: add changeset for v3.26.5 (RooCodeInc#7628)

* Update contributors list (RooCodeInc#7629)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7630)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add run_slash_command tool for executing slash commands (RooCodeInc#7473)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Focus the extension when receiving bridge commands (RooCodeInc#7633)

* Release: v1.73.0 (RooCodeInc#7636)

* Cloud: remove extension_bridge_enabled for personal users (RooCodeInc#7638)

* Publish token usage metrics (RooCodeInc#7637)

* fix: preserve scroll position when switching tabs in settings (RooCodeInc#7587)

* fix: preserve scroll position when switching tabs in settings

* ui(settings): restore scroll synchronously to prevent flicker; dx(ui): name TabContent for clearer DevTools

---------

Co-authored-by: Daniel Riccio <[email protected]>

* feat: add Kimi K2 Turbo model configuration to moonshotModels (RooCodeInc#7593)

* feat: add Kimi K2 Turbo model configuration to moonshotModels

* feat: update Kimi K2 Turbo pricing and cache read prices

* fix: use askApproval wrapper in insert_content and search_and_replace tools (RooCodeInc#7649)

Fixes issue where isWriteProtected was incorrectly passed as the partial flag
to task.ask(), causing "Current ask promise was ignored (#1)" error.

Both tools now use the askApproval wrapper function which correctly handles
the parameter ordering, passing undefined for progressStatus and isWriteProtected
as the fourth parameter.

Fixes RooCodeInc#7648

Co-authored-by: Roo Code <[email protected]>

* Release v3.26.6 (RooCodeInc#7650)

* Changeset version bump (RooCodeInc#7651)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Delete .github/workflows/discord-pr-notify.yml

* Remove unused slack notif (RooCodeInc#7655)

* Handle zsh process substitution correctly (RooCodeInc#7658)

* Handle zsh glob qualifiers correctly (RooCodeInc#7667)

* Minor zh-TW Traditional Chinese locale typo fix (RooCodeInc#7672)

* feat: Add DeepInfra as a model provider in Roo Code (RooCodeInc#7677)

* fix: validate MCP tool exists before execution (RooCodeInc#7632)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* fix: add error transform to cryptic openAI SDK errors when API key is invalid (RooCodeInc#7586)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: OpenAI Responses API service tiers (flex/priority) — UI selector, pricing, and tests (RooCodeInc#7646)

Co-authored-by: Daniel Riccio <[email protected]>

* fix: prevent countdown timer from showing in history for answered follow-up questions (RooCodeInc#7686)

* fix: Fix the issue of Moonshot's maximum return token count being limited to 1024 (RooCodeInc#7673)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* feat: update kimi-k2-0905-preview and kimi-k2-turbo-preview (RooCodeInc#7663)

* Fix test

* Release v3.26.7 (RooCodeInc#7691)

* Delete .changeset/petite-rats-admire.md

* feat: Add Kimi K2 0905 model to Groq, Moonshot, and Fireworks providers (RooCodeInc#7693)

* Use an allowlist to keep the prompt default shell sane (RooCodeInc#7681)

* Changeset version bump (RooCodeInc#7690)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Fix: Improve WelcomeView styling and readability (RooCodeInc#7682)

* fix: improve WelcomeView styling and readability

- Reduced excessive padding from p-16 to p-6
- Removed excessive bold text throughout
- Made provider cards more compact with smaller icons (32x32px)
- Increased introduction text size from text-sm to text-base for better visibility
- Centered the main greeting title
- Improved visual hierarchy with proper text sizing and spacing
- Added subtle borders and improved color contrast

* fix: remove undefined color class from incentive text

Removed the text-vscode-warningForeground class as it wasn't defined in index.css. The incentive text now uses default color which looks good.

* feat: add Kimi K2-0905 model to Chutes provider (RooCodeInc#7701)

Co-authored-by: Roo Code <[email protected]>

* fix: handle array paths from VSCode terminal profiles (RooCodeInc#7697)

* fix: handle array paths from VSCode terminal profiles

- Updated terminal profile interfaces to support string | string[] for path property
- Added normalizeShellPath helper to safely extract first element from array paths
- Modified isShellAllowed to handle both string and array inputs
- Updated getWindowsShellFromVSCode, getMacShellFromVSCode, and getLinuxShellFromVSCode to use normalizeShellPath
- Added comprehensive tests for array path handling

Fixes RooCodeInc#7695

* feat: add validateShellPath export for robust shell validation

- Created validateShellPath as a public API for shell path validation
- Refactored internal validation logic into isShellAllowedInternal
- Added comprehensive test coverage for all edge cases
- Maintains backward compatibility with deprecated isShellAllowed
- Handles arrays, strings, null, undefined, and nested arrays gracefully

* Simplify roomote's work a little

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Edit/Delete User Message (RooCodeInc#7447)

* fix: prevent stack overflow in codebase indexing for large projects (RooCodeInc#7712)

* fix: identify mcp and slash command config path in multiple folder workspace (RooCodeInc#6904)

* fix: resolve CI e2e test ETIMEDOUT errors when downloading VS Code (RooCodeInc#7583)

* fix: Tackling Race/State condition issue by Changing the Code Design for Gemini Grounding Sources (RooCodeInc#7434)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: preserve context by retrying with full conversation on invalid previous_response_id (RooCodeInc#7714)

* chore: add changeset for v3.26.8 (RooCodeInc#7715)

* feat(checkpoints): create checkpoint when user sends a message (RooCodeInc#7713)

* feat(checkpoints): create checkpoint on user message send

* fix(checkpoints): suppress implicit user-message checkpoint row; keep current checkpoint updated without a chat row

* Fix checkpoint suppression for user messages

- Propagate suppressMessage flag through event chain properly
- Update ChatView to check checkpoint metadata for suppressMessage flag
- Ensure checkpoint messages are created but not rendered when suppressed
- Fix bug where checkpointSave(false) should have been checkpointSave(true)

* fix: only create checkpoint on user message when files have changed

- Changed allowEmpty from true to false in checkpointSave call
- Checkpoints will now only be created when there are actual file changes
- This avoids creating empty commits in the shadow git repository

* test: update checkpoint test to include suppressMessage parameter

- Fixed test expectation to match the new function signature
- saveCheckpoint now expects both allowEmpty and suppressMessage parameters

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Bump to 3.27.0 (RooCodeInc#7719)

* Changeset version bump (RooCodeInc#7716)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix: update DeepSeek pricing to new unified rates effective Sept 5, 2025 (RooCodeInc#7687)

- Updated deepseek-chat pricing: $0.56 input (cache miss), $0.07 (cache hit), $1.68 output
- Updated deepseek-reasoner pricing: same unified rates as deepseek-chat
- Both models now have identical pricing as per DeepSeek announcement
- Pricing takes effect at 16:00 UTC, Sept 5th, 2025

Fixes RooCodeInc#7685

Co-authored-by: Roo Code <[email protected]>

* feat: replace cloud waitlist ad with direct Cloud link in navigation (RooCodeInc#7742)

Co-authored-by: Roo Code <[email protected]>

* feat: show dash instead of zero for missing data on evals page (RooCodeInc#7748)

Co-authored-by: Roo Code <[email protected]>

* Feature/update vertex ai models and regions (RooCodeInc#7727)

* Add model info to eval runs table (RooCodeInc#7749)

* chore(deps): update dependency eslint-config-prettier to v10.1.8 (RooCodeInc#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency esbuild to v0.25.9 (RooCodeInc#5455)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @changesets/cli to v2.29.6 (RooCodeInc#7376)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency nock to v14.0.10 (RooCodeInc#6465)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint-plugin-turbo to v2.5.6 (RooCodeInc#7764)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* refactor(utils): simplify shell detection logic

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* test: update shell detection test expectation and mocks

* test: add mock cleanup in shell detection tests

* test: update shell detection tests to prioritize PowerShell 7

* fix(workspace-event-monitor): increase max retries and improve retry logic

* refactor(codebase): improve error handling and workspace validation

---------

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Josh <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: mrubens <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: Piotr Wilkin (ilintar) <[email protected]>
Co-authored-by: Christiaan Arnoldus <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mohammad Danaee nia <[email protected]>
Co-authored-by: 淡草 <[email protected]>
Co-authored-by: WangXiaolong <[email protected]>
Co-authored-by: Peter Dave Hello <[email protected]>
Co-authored-by: Thach Nguyen <[email protected]>
Co-authored-by: CellenLee <[email protected]>
Co-authored-by: NaccOll <[email protected]>
Co-authored-by: Ton Hoang Nguyen (Bill) <[email protected]>
Co-authored-by: ssweens <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
mini2s added a commit to zgsm-ai/costrict that referenced this pull request Sep 9, 2025
* Follow symlinks in rooignore checks (RooCodeInc#7405)

* Sonic -> Grok Code Fast (RooCodeInc#7426)

* chore: add changeset for v3.26.0 (RooCodeInc#7428)

* Changeset version bump (RooCodeInc#7429)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: Add Vercel AI Gateway provider integration (RooCodeInc#7396)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>

* feat: Enable on-disk storage for Qdrant vectors and HNSW index (RooCodeInc#7182)

* fix: use anthropic protocol for token counting when using anthropic models via Vercel AI Gateway (RooCodeInc#7433)

- Added condition in getApiProtocol to return 'anthropic' for vercel-ai-gateway when modelId starts with 'anthropic/'
- Added tests for Vercel AI Gateway provider protocol detection

This ensures proper token counting for Anthropic models accessed through Vercel AI Gateway, as Anthropic and OpenAI count tokens differently (Anthropic excludes cache tokens from input count, OpenAI includes them).

* fix: remove duplicate cache display in task header (RooCodeInc#7443)

* Random chat text area cleanup (RooCodeInc#7436)

* Update @roo-code/cloud to enable roomote control for cloud agents (RooCodeInc#7446)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Always set remoteControlEnabled to true for cloud agents (RooCodeInc#7448)

* chore: add changeset for v3.26.1 (RooCodeInc#7459)

* feat: show model ID in API configuration dropdown (RooCodeInc#7423)

* feat: update tooltip component to match native VSCode tooltip shadow styling (RooCodeInc#7457)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: cte <[email protected]>

* Add support for Vercel embeddings (RooCodeInc#7445)

Co-authored-by: daniel-lxs <[email protected]>

* Remove dot before model display (RooCodeInc#7461)

* Update contributors list (RooCodeInc#7109)

Co-authored-by: mrubens <[email protected]>

* Update 3.26.1 changeset (RooCodeInc#7463)

* Changeset version bump (RooCodeInc#7460)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Add type for RooCodeEventName.TaskSpawned (RooCodeInc#7465)

* fix: hide .rooignore'd files from environment details by default (RooCodeInc#7369)

* fix: change default showRooIgnoredFiles to false to hide ignored files

- Changed default value from true to false across all files
- Updated tests to reflect the new default behavior
- This prevents ignored files from appearing in environment details

Fixes RooCodeInc#7368

* fix: update tests to match new showRooIgnoredFiles default

* fix: update test expectation to match new showRooIgnoredFiles default value

The PR changed the default value of showRooIgnoredFiles from true to false,
so the test needs to expect false instead of true when calling formatFilesList.

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: exclude browser scroll actions from repetition detection (RooCodeInc#7471)

- Modified ToolRepetitionDetector to skip repetition detection for browser_action scroll_down and scroll_up actions
- Added isBrowserScrollAction() helper method to identify scroll actions
- Added comprehensive tests for the new behavior
- Fixes issue where multiple scroll actions were incorrectly flagged as being stuck in a loop

Resolves: RooCodeInc#7470

Co-authored-by: Roo Code <[email protected]>

* Fix GPT-5 Responses API issues with condensing and image support (RooCodeInc#7067)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>

* Bump cloud to 0.25.0 (RooCodeInc#7475)

* feat: add image generation tool with OpenRouter integration (RooCodeInc#7474)

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: cte <[email protected]>

* Make the default image filename more generic (RooCodeInc#7479)

* Release v3.26.2 (RooCodeInc#7490)

* Support free imagegen (RooCodeInc#7493)

* feat: update OpenRouter API to support input/output modalities and filter image generation models (RooCodeInc#7492)

* Add padding to image model picker (RooCodeInc#7494)

* fix: prevent dirty state on initial mount in ImageGenerationSettings (RooCodeInc#7495)

* Changeset version bump (RooCodeInc#7491)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Show console logging in vitests when the --no-silent flag is set (RooCodeInc#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 <[email protected]>

* Move @roo-code/cloud to the Roo-Code repo (RooCodeInc#7503)

* Refactor the extension bridge (RooCodeInc#7515)

* Implement deferred task subscriptions (RooCodeInc#7517)

* feat: add optional input image parameter to image generation tool (RooCodeInc#7525)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: sync extension bridge settings with cloud (RooCodeInc#7535)

- Use CloudService.getUserSettings() for remoteControlEnabled instead of global state
- Update CloudService.updateUserSettings when toggling remote control
- Add BridgeOrchestrator.connectOrDisconnect handling in settings update handler
- Remove dependency on contentProxy/globalSettings for remote control state
---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* refactor: flatten image generation settings structure (RooCodeInc#7536)

* chore: add changeset for v3.26.3 (RooCodeInc#7541)

* Changeset version bump (RooCodeInc#7542)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Mode and provider profile selector (RooCodeInc#7545)

* Putting the Roo in Roo-leases (RooCodeInc#7546)

* Fix evals (RooCodeInc#7547)

* fix: special tokens should not break task processing (RooCodeInc#7540)

* docs: update PR template branding from Roo Code to Costrict

* feat: optimize memory usage for image handling in webview (RooCodeInc#7556)

* feat: optimize memory usage for image handling in webview

- Replace base64 image data with webview URIs to reduce memory footprint
- Add proper resource roots to webview for workspace file access
- Implement convertToWebviewUri method for safe file-to-URI conversion
- Update ImageViewer to handle both webview URIs and file paths separately
- Add image message type for proper image rendering in chat
- Improve error handling and display for failed image loads
- Add comprehensive tests for ImageViewer component
- Format display paths as relative for better readability

This change significantly reduces memory usage by avoiding base64 encoding
of images and instead using VSCode's webview URI system for direct file
access. Images are now loaded on-demand from disk rather than being held
in memory as base64 strings.

* fix: address PR review comments

- Use safeJsonParse instead of JSON.parse in ChatRow.tsx
- Add type definition for parsed image info
- Add more specific error types in ClineProvider.ts
- Add comprehensive JSDoc comments to ImageBlock.tsx
- Improve error handling and type safety

* fix: address MrUbens' review comments

- Remove hardcoded 'rc1' pattern in formatDisplayPath, use generic workspace detection
- Internationalize 'No image data' text using i18n system

* chore: remove useless comment

* chore(i18n): add image.noData to all locales to fix translation check

* test: update ImageViewer.spec to align with i18n key and flexible path formatting

* feat: rename Account tab to Cloud tab (RooCodeInc#7558)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add Ollama API key support for Turbo mode (RooCodeInc#7425)

* feat: add Ollama API key support for Turbo mode

- Add ollamaApiKey field to ProviderSettings schema
- Add ollamaApiKey to SECRET_STATE_KEYS for secure storage
- Update Ollama and NativeOllama providers to use API key for authentication
- Add UI field for Ollama API key (shown when custom base URL is provided)
- Add test coverage for API key functionality

This enables users to use Ollama Turbo with datacenter-grade hardware by providing an API key for authenticated Ollama instances or cloud services.

* fix: use VSCodeTextField for Ollama API key field

Remove non-existent ApiKeyField import and use standard VSCodeTextField with password type, matching other provider implementations

* Add missing translation keys for Ollama API key support

- Add providers.ollama.apiKey and providers.ollama.apiKeyHelp to all 18 language files
- Support for authenticated Ollama instances and cloud services
- Relates to PR RooCodeInc#7425

* refactor: improve type safety for Ollama client configuration

- Replace 'any' type with proper OllamaOptions (Config) type
- Import Config type from ollama package for better type checking

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Disconnect extension bridge on logout (RooCodeInc#7563)

* Disconnect extension bridge on logout

* Remove bad test

* Cleanup

* Fix claudeCode.notFound translation key (RooCodeInc#7571)

I think I saw someone post a screenshot where "errors.claudeCode.notFound" was shown untranslated.

* v3.26.4 (RooCodeInc#7579)

* Update contributors list (RooCodeInc#7462)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7580)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add configurable embedding batch size for code indexing (RooCodeInc#7464)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Shows a pill with the base Roo Code Cloud URL when not pointing to pr… (RooCodeInc#7555)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Cloud: fix provider syncing (RooCodeInc#7603)

ClineProvider creation was moved before CloudService which broke
the old way of doing things.

* fix: add cache reporting support for OpenAI-Native provider (RooCodeInc#7602)

* fix: add cache reporting support for OpenAI-Native provider

- Add normalizeUsage method to properly extract cache tokens from Responses API
- Support both detailed token shapes (input_tokens_details) and legacy fields
- Calculate cache read/write tokens with proper fallbacks
- Include reasoning tokens when available in output_tokens_details
- Ensure accurate cost calculation using uncached input tokens

This fixes the issue where caching information was not being reported
when using the OpenAI-Native provider with the Responses API.

* fix: improve cache token normalization and add comprehensive tests

- Add fallback to derive total input tokens from details when totals are missing
- Remove unused convertToOpenAiMessages import
- Add comment explaining cost calculation alignment with Gemini provider
- Add comprehensive test coverage for normalizeUsage method covering:
  - Detailed token shapes with cached/miss tokens
  - Legacy field names and SSE-only events
  - Edge cases including missing totals with details-only
  - Cost calculation with uncached input tokens

* fix: address PR review comments

- Remove incorrect fallback to missFromDetails for cache write tokens
- Fix cost calculation to pass total input tokens (calculateApiCostOpenAI handles subtraction)
- Improve readability by extracting cache detail checks to intermediate variables
- Remove redundant ?? undefined
- Update tests to reflect correct behavior (miss tokens are not cache writes)
- Add clarifying comments about cache miss vs cache write tokens

* feat: add auto-approve support for MCP access_resource tool (RooCodeInc#7606)

* Move message queue to the extension host (RooCodeInc#7604)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Send custom modes to the extension bridge (RooCodeInc#7612)

* Never give up in socket transport (RooCodeInc#7616)

* Fix socket-io client event handling (RooCodeInc#7618)

* More socket-io client fixes from PR feedback (RooCodeInc#7619)

* More socket-io client logging improvements (RooCodeInc#7620)

* Publish subtask events (RooCodeInc#7626)

* Update chutes.ts to add Qwen3 235B A22B Thinking 2507 model (RooCodeInc#7578)

Co-authored-by: Matt Rubens <[email protected]>

* chore: add changeset for v3.26.5 (RooCodeInc#7628)

* Update contributors list (RooCodeInc#7629)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7630)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add run_slash_command tool for executing slash commands (RooCodeInc#7473)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Focus the extension when receiving bridge commands (RooCodeInc#7633)

* Release: v1.73.0 (RooCodeInc#7636)

* Cloud: remove extension_bridge_enabled for personal users (RooCodeInc#7638)

* Publish token usage metrics (RooCodeInc#7637)

* fix: preserve scroll position when switching tabs in settings (RooCodeInc#7587)

* fix: preserve scroll position when switching tabs in settings

* ui(settings): restore scroll synchronously to prevent flicker; dx(ui): name TabContent for clearer DevTools

---------

Co-authored-by: Daniel Riccio <[email protected]>

* feat: add Kimi K2 Turbo model configuration to moonshotModels (RooCodeInc#7593)

* feat: add Kimi K2 Turbo model configuration to moonshotModels

* feat: update Kimi K2 Turbo pricing and cache read prices

* fix: use askApproval wrapper in insert_content and search_and_replace tools (RooCodeInc#7649)

Fixes issue where isWriteProtected was incorrectly passed as the partial flag
to task.ask(), causing "Current ask promise was ignored (#1)" error.

Both tools now use the askApproval wrapper function which correctly handles
the parameter ordering, passing undefined for progressStatus and isWriteProtected
as the fourth parameter.

Fixes RooCodeInc#7648

Co-authored-by: Roo Code <[email protected]>

* Release v3.26.6 (RooCodeInc#7650)

* Changeset version bump (RooCodeInc#7651)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Delete .github/workflows/discord-pr-notify.yml

* Remove unused slack notif (RooCodeInc#7655)

* Handle zsh process substitution correctly (RooCodeInc#7658)

* Handle zsh glob qualifiers correctly (RooCodeInc#7667)

* Minor zh-TW Traditional Chinese locale typo fix (RooCodeInc#7672)

* feat: Add DeepInfra as a model provider in Roo Code (RooCodeInc#7677)

* fix: validate MCP tool exists before execution (RooCodeInc#7632)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* fix: add error transform to cryptic openAI SDK errors when API key is invalid (RooCodeInc#7586)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: OpenAI Responses API service tiers (flex/priority) — UI selector, pricing, and tests (RooCodeInc#7646)

Co-authored-by: Daniel Riccio <[email protected]>

* fix: prevent countdown timer from showing in history for answered follow-up questions (RooCodeInc#7686)

* fix: Fix the issue of Moonshot's maximum return token count being limited to 1024 (RooCodeInc#7673)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* feat: update kimi-k2-0905-preview and kimi-k2-turbo-preview (RooCodeInc#7663)

* Fix test

* Release v3.26.7 (RooCodeInc#7691)

* Delete .changeset/petite-rats-admire.md

* feat: Add Kimi K2 0905 model to Groq, Moonshot, and Fireworks providers (RooCodeInc#7693)

* Use an allowlist to keep the prompt default shell sane (RooCodeInc#7681)

* Changeset version bump (RooCodeInc#7690)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Fix: Improve WelcomeView styling and readability (RooCodeInc#7682)

* fix: improve WelcomeView styling and readability

- Reduced excessive padding from p-16 to p-6
- Removed excessive bold text throughout
- Made provider cards more compact with smaller icons (32x32px)
- Increased introduction text size from text-sm to text-base for better visibility
- Centered the main greeting title
- Improved visual hierarchy with proper text sizing and spacing
- Added subtle borders and improved color contrast

* fix: remove undefined color class from incentive text

Removed the text-vscode-warningForeground class as it wasn't defined in index.css. The incentive text now uses default color which looks good.

* feat: add Kimi K2-0905 model to Chutes provider (RooCodeInc#7701)

Co-authored-by: Roo Code <[email protected]>

* fix: handle array paths from VSCode terminal profiles (RooCodeInc#7697)

* fix: handle array paths from VSCode terminal profiles

- Updated terminal profile interfaces to support string | string[] for path property
- Added normalizeShellPath helper to safely extract first element from array paths
- Modified isShellAllowed to handle both string and array inputs
- Updated getWindowsShellFromVSCode, getMacShellFromVSCode, and getLinuxShellFromVSCode to use normalizeShellPath
- Added comprehensive tests for array path handling

Fixes RooCodeInc#7695

* feat: add validateShellPath export for robust shell validation

- Created validateShellPath as a public API for shell path validation
- Refactored internal validation logic into isShellAllowedInternal
- Added comprehensive test coverage for all edge cases
- Maintains backward compatibility with deprecated isShellAllowed
- Handles arrays, strings, null, undefined, and nested arrays gracefully

* Simplify roomote's work a little

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Edit/Delete User Message (RooCodeInc#7447)

* fix: prevent stack overflow in codebase indexing for large projects (RooCodeInc#7712)

* fix: identify mcp and slash command config path in multiple folder workspace (RooCodeInc#6904)

* fix: resolve CI e2e test ETIMEDOUT errors when downloading VS Code (RooCodeInc#7583)

* fix: Tackling Race/State condition issue by Changing the Code Design for Gemini Grounding Sources (RooCodeInc#7434)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: preserve context by retrying with full conversation on invalid previous_response_id (RooCodeInc#7714)

* chore: add changeset for v3.26.8 (RooCodeInc#7715)

* feat(checkpoints): create checkpoint when user sends a message (RooCodeInc#7713)

* feat(checkpoints): create checkpoint on user message send

* fix(checkpoints): suppress implicit user-message checkpoint row; keep current checkpoint updated without a chat row

* Fix checkpoint suppression for user messages

- Propagate suppressMessage flag through event chain properly
- Update ChatView to check checkpoint metadata for suppressMessage flag
- Ensure checkpoint messages are created but not rendered when suppressed
- Fix bug where checkpointSave(false) should have been checkpointSave(true)

* fix: only create checkpoint on user message when files have changed

- Changed allowEmpty from true to false in checkpointSave call
- Checkpoints will now only be created when there are actual file changes
- This avoids creating empty commits in the shadow git repository

* test: update checkpoint test to include suppressMessage parameter

- Fixed test expectation to match the new function signature
- saveCheckpoint now expects both allowEmpty and suppressMessage parameters

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Bump to 3.27.0 (RooCodeInc#7719)

* Changeset version bump (RooCodeInc#7716)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix: update DeepSeek pricing to new unified rates effective Sept 5, 2025 (RooCodeInc#7687)

- Updated deepseek-chat pricing: $0.56 input (cache miss), $0.07 (cache hit), $1.68 output
- Updated deepseek-reasoner pricing: same unified rates as deepseek-chat
- Both models now have identical pricing as per DeepSeek announcement
- Pricing takes effect at 16:00 UTC, Sept 5th, 2025

Fixes RooCodeInc#7685

Co-authored-by: Roo Code <[email protected]>

* feat: replace cloud waitlist ad with direct Cloud link in navigation (RooCodeInc#7742)

Co-authored-by: Roo Code <[email protected]>

* feat: show dash instead of zero for missing data on evals page (RooCodeInc#7748)

Co-authored-by: Roo Code <[email protected]>

* Feature/update vertex ai models and regions (RooCodeInc#7727)

* Add model info to eval runs table (RooCodeInc#7749)

* chore(deps): update dependency eslint-config-prettier to v10.1.8 (RooCodeInc#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency esbuild to v0.25.9 (RooCodeInc#5455)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @changesets/cli to v2.29.6 (RooCodeInc#7376)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency nock to v14.0.10 (RooCodeInc#6465)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint-plugin-turbo to v2.5.6 (RooCodeInc#7764)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* refactor(utils): simplify shell detection logic

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* test: update shell detection test expectation and mocks

* test: add mock cleanup in shell detection tests

* test: update shell detection tests to prioritize PowerShell 7

* fix(workspace-event-monitor): increase max retries and improve retry logic

* refactor(codebase): improve error handling and workspace validation

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* test: change console.error to console.warn in tests

---------

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Josh <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: mrubens <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: Piotr Wilkin (ilintar) <[email protected]>
Co-authored-by: Christiaan Arnoldus <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mohammad Danaee nia <[email protected]>
Co-authored-by: 淡草 <[email protected]>
Co-authored-by: WangXiaolong <[email protected]>
Co-authored-by: Peter Dave Hello <[email protected]>
Co-authored-by: Thach Nguyen <[email protected]>
Co-authored-by: CellenLee <[email protected]>
Co-authored-by: NaccOll <[email protected]>
Co-authored-by: Ton Hoang Nguyen (Bill) <[email protected]>
Co-authored-by: ssweens <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ItsOnlyBinary <[email protected]>
mini2s added a commit to zgsm-ai/costrict that referenced this pull request Sep 10, 2025
* Follow symlinks in rooignore checks (RooCodeInc#7405)

* Sonic -> Grok Code Fast (RooCodeInc#7426)

* chore: add changeset for v3.26.0 (RooCodeInc#7428)

* Changeset version bump (RooCodeInc#7429)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: Add Vercel AI Gateway provider integration (RooCodeInc#7396)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>

* feat: Enable on-disk storage for Qdrant vectors and HNSW index (RooCodeInc#7182)

* fix: use anthropic protocol for token counting when using anthropic models via Vercel AI Gateway (RooCodeInc#7433)

- Added condition in getApiProtocol to return 'anthropic' for vercel-ai-gateway when modelId starts with 'anthropic/'
- Added tests for Vercel AI Gateway provider protocol detection

This ensures proper token counting for Anthropic models accessed through Vercel AI Gateway, as Anthropic and OpenAI count tokens differently (Anthropic excludes cache tokens from input count, OpenAI includes them).

* fix: remove duplicate cache display in task header (RooCodeInc#7443)

* Random chat text area cleanup (RooCodeInc#7436)

* Update @roo-code/cloud to enable roomote control for cloud agents (RooCodeInc#7446)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Always set remoteControlEnabled to true for cloud agents (RooCodeInc#7448)

* chore: add changeset for v3.26.1 (RooCodeInc#7459)

* feat: show model ID in API configuration dropdown (RooCodeInc#7423)

* feat: update tooltip component to match native VSCode tooltip shadow styling (RooCodeInc#7457)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: cte <[email protected]>

* Add support for Vercel embeddings (RooCodeInc#7445)

Co-authored-by: daniel-lxs <[email protected]>

* Remove dot before model display (RooCodeInc#7461)

* Update contributors list (RooCodeInc#7109)

Co-authored-by: mrubens <[email protected]>

* Update 3.26.1 changeset (RooCodeInc#7463)

* Changeset version bump (RooCodeInc#7460)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Add type for RooCodeEventName.TaskSpawned (RooCodeInc#7465)

* fix: hide .rooignore'd files from environment details by default (RooCodeInc#7369)

* fix: change default showRooIgnoredFiles to false to hide ignored files

- Changed default value from true to false across all files
- Updated tests to reflect the new default behavior
- This prevents ignored files from appearing in environment details

Fixes RooCodeInc#7368

* fix: update tests to match new showRooIgnoredFiles default

* fix: update test expectation to match new showRooIgnoredFiles default value

The PR changed the default value of showRooIgnoredFiles from true to false,
so the test needs to expect false instead of true when calling formatFilesList.

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: exclude browser scroll actions from repetition detection (RooCodeInc#7471)

- Modified ToolRepetitionDetector to skip repetition detection for browser_action scroll_down and scroll_up actions
- Added isBrowserScrollAction() helper method to identify scroll actions
- Added comprehensive tests for the new behavior
- Fixes issue where multiple scroll actions were incorrectly flagged as being stuck in a loop

Resolves: RooCodeInc#7470

Co-authored-by: Roo Code <[email protected]>

* Fix GPT-5 Responses API issues with condensing and image support (RooCodeInc#7067)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>

* Bump cloud to 0.25.0 (RooCodeInc#7475)

* feat: add image generation tool with OpenRouter integration (RooCodeInc#7474)

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: cte <[email protected]>

* Make the default image filename more generic (RooCodeInc#7479)

* Release v3.26.2 (RooCodeInc#7490)

* Support free imagegen (RooCodeInc#7493)

* feat: update OpenRouter API to support input/output modalities and filter image generation models (RooCodeInc#7492)

* Add padding to image model picker (RooCodeInc#7494)

* fix: prevent dirty state on initial mount in ImageGenerationSettings (RooCodeInc#7495)

* Changeset version bump (RooCodeInc#7491)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Show console logging in vitests when the --no-silent flag is set (RooCodeInc#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 <[email protected]>

* Move @roo-code/cloud to the Roo-Code repo (RooCodeInc#7503)

* Refactor the extension bridge (RooCodeInc#7515)

* Implement deferred task subscriptions (RooCodeInc#7517)

* feat: add optional input image parameter to image generation tool (RooCodeInc#7525)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: sync extension bridge settings with cloud (RooCodeInc#7535)

- Use CloudService.getUserSettings() for remoteControlEnabled instead of global state
- Update CloudService.updateUserSettings when toggling remote control
- Add BridgeOrchestrator.connectOrDisconnect handling in settings update handler
- Remove dependency on contentProxy/globalSettings for remote control state
---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* refactor: flatten image generation settings structure (RooCodeInc#7536)

* chore: add changeset for v3.26.3 (RooCodeInc#7541)

* Changeset version bump (RooCodeInc#7542)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Mode and provider profile selector (RooCodeInc#7545)

* Putting the Roo in Roo-leases (RooCodeInc#7546)

* Fix evals (RooCodeInc#7547)

* fix: special tokens should not break task processing (RooCodeInc#7540)

* docs: update PR template branding from Roo Code to Costrict

* feat: optimize memory usage for image handling in webview (RooCodeInc#7556)

* feat: optimize memory usage for image handling in webview

- Replace base64 image data with webview URIs to reduce memory footprint
- Add proper resource roots to webview for workspace file access
- Implement convertToWebviewUri method for safe file-to-URI conversion
- Update ImageViewer to handle both webview URIs and file paths separately
- Add image message type for proper image rendering in chat
- Improve error handling and display for failed image loads
- Add comprehensive tests for ImageViewer component
- Format display paths as relative for better readability

This change significantly reduces memory usage by avoiding base64 encoding
of images and instead using VSCode's webview URI system for direct file
access. Images are now loaded on-demand from disk rather than being held
in memory as base64 strings.

* fix: address PR review comments

- Use safeJsonParse instead of JSON.parse in ChatRow.tsx
- Add type definition for parsed image info
- Add more specific error types in ClineProvider.ts
- Add comprehensive JSDoc comments to ImageBlock.tsx
- Improve error handling and type safety

* fix: address MrUbens' review comments

- Remove hardcoded 'rc1' pattern in formatDisplayPath, use generic workspace detection
- Internationalize 'No image data' text using i18n system

* chore: remove useless comment

* chore(i18n): add image.noData to all locales to fix translation check

* test: update ImageViewer.spec to align with i18n key and flexible path formatting

* feat: rename Account tab to Cloud tab (RooCodeInc#7558)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add Ollama API key support for Turbo mode (RooCodeInc#7425)

* feat: add Ollama API key support for Turbo mode

- Add ollamaApiKey field to ProviderSettings schema
- Add ollamaApiKey to SECRET_STATE_KEYS for secure storage
- Update Ollama and NativeOllama providers to use API key for authentication
- Add UI field for Ollama API key (shown when custom base URL is provided)
- Add test coverage for API key functionality

This enables users to use Ollama Turbo with datacenter-grade hardware by providing an API key for authenticated Ollama instances or cloud services.

* fix: use VSCodeTextField for Ollama API key field

Remove non-existent ApiKeyField import and use standard VSCodeTextField with password type, matching other provider implementations

* Add missing translation keys for Ollama API key support

- Add providers.ollama.apiKey and providers.ollama.apiKeyHelp to all 18 language files
- Support for authenticated Ollama instances and cloud services
- Relates to PR RooCodeInc#7425

* refactor: improve type safety for Ollama client configuration

- Replace 'any' type with proper OllamaOptions (Config) type
- Import Config type from ollama package for better type checking

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Disconnect extension bridge on logout (RooCodeInc#7563)

* Disconnect extension bridge on logout

* Remove bad test

* Cleanup

* Fix claudeCode.notFound translation key (RooCodeInc#7571)

I think I saw someone post a screenshot where "errors.claudeCode.notFound" was shown untranslated.

* v3.26.4 (RooCodeInc#7579)

* Update contributors list (RooCodeInc#7462)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7580)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add configurable embedding batch size for code indexing (RooCodeInc#7464)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Shows a pill with the base Roo Code Cloud URL when not pointing to pr… (RooCodeInc#7555)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Cloud: fix provider syncing (RooCodeInc#7603)

ClineProvider creation was moved before CloudService which broke
the old way of doing things.

* fix: add cache reporting support for OpenAI-Native provider (RooCodeInc#7602)

* fix: add cache reporting support for OpenAI-Native provider

- Add normalizeUsage method to properly extract cache tokens from Responses API
- Support both detailed token shapes (input_tokens_details) and legacy fields
- Calculate cache read/write tokens with proper fallbacks
- Include reasoning tokens when available in output_tokens_details
- Ensure accurate cost calculation using uncached input tokens

This fixes the issue where caching information was not being reported
when using the OpenAI-Native provider with the Responses API.

* fix: improve cache token normalization and add comprehensive tests

- Add fallback to derive total input tokens from details when totals are missing
- Remove unused convertToOpenAiMessages import
- Add comment explaining cost calculation alignment with Gemini provider
- Add comprehensive test coverage for normalizeUsage method covering:
  - Detailed token shapes with cached/miss tokens
  - Legacy field names and SSE-only events
  - Edge cases including missing totals with details-only
  - Cost calculation with uncached input tokens

* fix: address PR review comments

- Remove incorrect fallback to missFromDetails for cache write tokens
- Fix cost calculation to pass total input tokens (calculateApiCostOpenAI handles subtraction)
- Improve readability by extracting cache detail checks to intermediate variables
- Remove redundant ?? undefined
- Update tests to reflect correct behavior (miss tokens are not cache writes)
- Add clarifying comments about cache miss vs cache write tokens

* feat: add auto-approve support for MCP access_resource tool (RooCodeInc#7606)

* Move message queue to the extension host (RooCodeInc#7604)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Send custom modes to the extension bridge (RooCodeInc#7612)

* Never give up in socket transport (RooCodeInc#7616)

* Fix socket-io client event handling (RooCodeInc#7618)

* More socket-io client fixes from PR feedback (RooCodeInc#7619)

* More socket-io client logging improvements (RooCodeInc#7620)

* Publish subtask events (RooCodeInc#7626)

* Update chutes.ts to add Qwen3 235B A22B Thinking 2507 model (RooCodeInc#7578)

Co-authored-by: Matt Rubens <[email protected]>

* chore: add changeset for v3.26.5 (RooCodeInc#7628)

* Update contributors list (RooCodeInc#7629)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7630)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add run_slash_command tool for executing slash commands (RooCodeInc#7473)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Focus the extension when receiving bridge commands (RooCodeInc#7633)

* Release: v1.73.0 (RooCodeInc#7636)

* Cloud: remove extension_bridge_enabled for personal users (RooCodeInc#7638)

* Publish token usage metrics (RooCodeInc#7637)

* fix: preserve scroll position when switching tabs in settings (RooCodeInc#7587)

* fix: preserve scroll position when switching tabs in settings

* ui(settings): restore scroll synchronously to prevent flicker; dx(ui): name TabContent for clearer DevTools

---------

Co-authored-by: Daniel Riccio <[email protected]>

* feat: add Kimi K2 Turbo model configuration to moonshotModels (RooCodeInc#7593)

* feat: add Kimi K2 Turbo model configuration to moonshotModels

* feat: update Kimi K2 Turbo pricing and cache read prices

* fix: use askApproval wrapper in insert_content and search_and_replace tools (RooCodeInc#7649)

Fixes issue where isWriteProtected was incorrectly passed as the partial flag
to task.ask(), causing "Current ask promise was ignored (#1)" error.

Both tools now use the askApproval wrapper function which correctly handles
the parameter ordering, passing undefined for progressStatus and isWriteProtected
as the fourth parameter.

Fixes RooCodeInc#7648

Co-authored-by: Roo Code <[email protected]>

* Release v3.26.6 (RooCodeInc#7650)

* Changeset version bump (RooCodeInc#7651)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Delete .github/workflows/discord-pr-notify.yml

* Remove unused slack notif (RooCodeInc#7655)

* Handle zsh process substitution correctly (RooCodeInc#7658)

* Handle zsh glob qualifiers correctly (RooCodeInc#7667)

* Minor zh-TW Traditional Chinese locale typo fix (RooCodeInc#7672)

* feat: Add DeepInfra as a model provider in Roo Code (RooCodeInc#7677)

* fix: validate MCP tool exists before execution (RooCodeInc#7632)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* fix: add error transform to cryptic openAI SDK errors when API key is invalid (RooCodeInc#7586)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: OpenAI Responses API service tiers (flex/priority) — UI selector, pricing, and tests (RooCodeInc#7646)

Co-authored-by: Daniel Riccio <[email protected]>

* fix: prevent countdown timer from showing in history for answered follow-up questions (RooCodeInc#7686)

* fix: Fix the issue of Moonshot's maximum return token count being limited to 1024 (RooCodeInc#7673)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* feat: update kimi-k2-0905-preview and kimi-k2-turbo-preview (RooCodeInc#7663)

* Fix test

* Release v3.26.7 (RooCodeInc#7691)

* Delete .changeset/petite-rats-admire.md

* feat: Add Kimi K2 0905 model to Groq, Moonshot, and Fireworks providers (RooCodeInc#7693)

* Use an allowlist to keep the prompt default shell sane (RooCodeInc#7681)

* Changeset version bump (RooCodeInc#7690)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Fix: Improve WelcomeView styling and readability (RooCodeInc#7682)

* fix: improve WelcomeView styling and readability

- Reduced excessive padding from p-16 to p-6
- Removed excessive bold text throughout
- Made provider cards more compact with smaller icons (32x32px)
- Increased introduction text size from text-sm to text-base for better visibility
- Centered the main greeting title
- Improved visual hierarchy with proper text sizing and spacing
- Added subtle borders and improved color contrast

* fix: remove undefined color class from incentive text

Removed the text-vscode-warningForeground class as it wasn't defined in index.css. The incentive text now uses default color which looks good.

* feat: add Kimi K2-0905 model to Chutes provider (RooCodeInc#7701)

Co-authored-by: Roo Code <[email protected]>

* fix: handle array paths from VSCode terminal profiles (RooCodeInc#7697)

* fix: handle array paths from VSCode terminal profiles

- Updated terminal profile interfaces to support string | string[] for path property
- Added normalizeShellPath helper to safely extract first element from array paths
- Modified isShellAllowed to handle both string and array inputs
- Updated getWindowsShellFromVSCode, getMacShellFromVSCode, and getLinuxShellFromVSCode to use normalizeShellPath
- Added comprehensive tests for array path handling

Fixes RooCodeInc#7695

* feat: add validateShellPath export for robust shell validation

- Created validateShellPath as a public API for shell path validation
- Refactored internal validation logic into isShellAllowedInternal
- Added comprehensive test coverage for all edge cases
- Maintains backward compatibility with deprecated isShellAllowed
- Handles arrays, strings, null, undefined, and nested arrays gracefully

* Simplify roomote's work a little

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Edit/Delete User Message (RooCodeInc#7447)

* fix: prevent stack overflow in codebase indexing for large projects (RooCodeInc#7712)

* fix: identify mcp and slash command config path in multiple folder workspace (RooCodeInc#6904)

* fix: resolve CI e2e test ETIMEDOUT errors when downloading VS Code (RooCodeInc#7583)

* fix: Tackling Race/State condition issue by Changing the Code Design for Gemini Grounding Sources (RooCodeInc#7434)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: preserve context by retrying with full conversation on invalid previous_response_id (RooCodeInc#7714)

* chore: add changeset for v3.26.8 (RooCodeInc#7715)

* feat(checkpoints): create checkpoint when user sends a message (RooCodeInc#7713)

* feat(checkpoints): create checkpoint on user message send

* fix(checkpoints): suppress implicit user-message checkpoint row; keep current checkpoint updated without a chat row

* Fix checkpoint suppression for user messages

- Propagate suppressMessage flag through event chain properly
- Update ChatView to check checkpoint metadata for suppressMessage flag
- Ensure checkpoint messages are created but not rendered when suppressed
- Fix bug where checkpointSave(false) should have been checkpointSave(true)

* fix: only create checkpoint on user message when files have changed

- Changed allowEmpty from true to false in checkpointSave call
- Checkpoints will now only be created when there are actual file changes
- This avoids creating empty commits in the shadow git repository

* test: update checkpoint test to include suppressMessage parameter

- Fixed test expectation to match the new function signature
- saveCheckpoint now expects both allowEmpty and suppressMessage parameters

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Bump to 3.27.0 (RooCodeInc#7719)

* Changeset version bump (RooCodeInc#7716)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix: update DeepSeek pricing to new unified rates effective Sept 5, 2025 (RooCodeInc#7687)

- Updated deepseek-chat pricing: $0.56 input (cache miss), $0.07 (cache hit), $1.68 output
- Updated deepseek-reasoner pricing: same unified rates as deepseek-chat
- Both models now have identical pricing as per DeepSeek announcement
- Pricing takes effect at 16:00 UTC, Sept 5th, 2025

Fixes RooCodeInc#7685

Co-authored-by: Roo Code <[email protected]>

* feat: replace cloud waitlist ad with direct Cloud link in navigation (RooCodeInc#7742)

Co-authored-by: Roo Code <[email protected]>

* feat: show dash instead of zero for missing data on evals page (RooCodeInc#7748)

Co-authored-by: Roo Code <[email protected]>

* Feature/update vertex ai models and regions (RooCodeInc#7727)

* Add model info to eval runs table (RooCodeInc#7749)

* chore(deps): update dependency eslint-config-prettier to v10.1.8 (RooCodeInc#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency esbuild to v0.25.9 (RooCodeInc#5455)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @changesets/cli to v2.29.6 (RooCodeInc#7376)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency nock to v14.0.10 (RooCodeInc#6465)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint-plugin-turbo to v2.5.6 (RooCodeInc#7764)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* refactor(utils): simplify shell detection logic

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* test: update shell detection test expectation and mocks

* test: add mock cleanup in shell detection tests

* test: update shell detection tests to prioritize PowerShell 7

* fix(workspace-event-monitor): increase max retries and improve retry logic

* refactor(codebase): improve error handling and workspace validation

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* test: change console.error to console.warn in tests

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* test: enhance vscode mock implementations and error handling

* feat(chat): replace edit button with copy functionality

---------

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Josh <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: mrubens <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: Piotr Wilkin (ilintar) <[email protected]>
Co-authored-by: Christiaan Arnoldus <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mohammad Danaee nia <[email protected]>
Co-authored-by: 淡草 <[email protected]>
Co-authored-by: WangXiaolong <[email protected]>
Co-authored-by: Peter Dave Hello <[email protected]>
Co-authored-by: Thach Nguyen <[email protected]>
Co-authored-by: CellenLee <[email protected]>
Co-authored-by: NaccOll <[email protected]>
Co-authored-by: Ton Hoang Nguyen (Bill) <[email protected]>
Co-authored-by: ssweens <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ItsOnlyBinary <[email protected]>
mini2s added a commit to zgsm-ai/costrict that referenced this pull request Sep 10, 2025
* Follow symlinks in rooignore checks (RooCodeInc#7405)

* Sonic -> Grok Code Fast (RooCodeInc#7426)

* chore: add changeset for v3.26.0 (RooCodeInc#7428)

* Changeset version bump (RooCodeInc#7429)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: Add Vercel AI Gateway provider integration (RooCodeInc#7396)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>

* feat: Enable on-disk storage for Qdrant vectors and HNSW index (RooCodeInc#7182)

* fix: use anthropic protocol for token counting when using anthropic models via Vercel AI Gateway (RooCodeInc#7433)

- Added condition in getApiProtocol to return 'anthropic' for vercel-ai-gateway when modelId starts with 'anthropic/'
- Added tests for Vercel AI Gateway provider protocol detection

This ensures proper token counting for Anthropic models accessed through Vercel AI Gateway, as Anthropic and OpenAI count tokens differently (Anthropic excludes cache tokens from input count, OpenAI includes them).

* fix: remove duplicate cache display in task header (RooCodeInc#7443)

* Random chat text area cleanup (RooCodeInc#7436)

* Update @roo-code/cloud to enable roomote control for cloud agents (RooCodeInc#7446)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Always set remoteControlEnabled to true for cloud agents (RooCodeInc#7448)

* chore: add changeset for v3.26.1 (RooCodeInc#7459)

* feat: show model ID in API configuration dropdown (RooCodeInc#7423)

* feat: update tooltip component to match native VSCode tooltip shadow styling (RooCodeInc#7457)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: cte <[email protected]>

* Add support for Vercel embeddings (RooCodeInc#7445)

Co-authored-by: daniel-lxs <[email protected]>

* Remove dot before model display (RooCodeInc#7461)

* Update contributors list (RooCodeInc#7109)

Co-authored-by: mrubens <[email protected]>

* Update 3.26.1 changeset (RooCodeInc#7463)

* Changeset version bump (RooCodeInc#7460)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Add type for RooCodeEventName.TaskSpawned (RooCodeInc#7465)

* fix: hide .rooignore'd files from environment details by default (RooCodeInc#7369)

* fix: change default showRooIgnoredFiles to false to hide ignored files

- Changed default value from true to false across all files
- Updated tests to reflect the new default behavior
- This prevents ignored files from appearing in environment details

Fixes RooCodeInc#7368

* fix: update tests to match new showRooIgnoredFiles default

* fix: update test expectation to match new showRooIgnoredFiles default value

The PR changed the default value of showRooIgnoredFiles from true to false,
so the test needs to expect false instead of true when calling formatFilesList.

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: exclude browser scroll actions from repetition detection (RooCodeInc#7471)

- Modified ToolRepetitionDetector to skip repetition detection for browser_action scroll_down and scroll_up actions
- Added isBrowserScrollAction() helper method to identify scroll actions
- Added comprehensive tests for the new behavior
- Fixes issue where multiple scroll actions were incorrectly flagged as being stuck in a loop

Resolves: RooCodeInc#7470

Co-authored-by: Roo Code <[email protected]>

* Fix GPT-5 Responses API issues with condensing and image support (RooCodeInc#7067)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>

* Bump cloud to 0.25.0 (RooCodeInc#7475)

* feat: add image generation tool with OpenRouter integration (RooCodeInc#7474)

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: cte <[email protected]>

* Make the default image filename more generic (RooCodeInc#7479)

* Release v3.26.2 (RooCodeInc#7490)

* Support free imagegen (RooCodeInc#7493)

* feat: update OpenRouter API to support input/output modalities and filter image generation models (RooCodeInc#7492)

* Add padding to image model picker (RooCodeInc#7494)

* fix: prevent dirty state on initial mount in ImageGenerationSettings (RooCodeInc#7495)

* Changeset version bump (RooCodeInc#7491)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Show console logging in vitests when the --no-silent flag is set (RooCodeInc#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 <[email protected]>

* Move @roo-code/cloud to the Roo-Code repo (RooCodeInc#7503)

* Refactor the extension bridge (RooCodeInc#7515)

* Implement deferred task subscriptions (RooCodeInc#7517)

* feat: add optional input image parameter to image generation tool (RooCodeInc#7525)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: sync extension bridge settings with cloud (RooCodeInc#7535)

- Use CloudService.getUserSettings() for remoteControlEnabled instead of global state
- Update CloudService.updateUserSettings when toggling remote control
- Add BridgeOrchestrator.connectOrDisconnect handling in settings update handler
- Remove dependency on contentProxy/globalSettings for remote control state
---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* refactor: flatten image generation settings structure (RooCodeInc#7536)

* chore: add changeset for v3.26.3 (RooCodeInc#7541)

* Changeset version bump (RooCodeInc#7542)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Mode and provider profile selector (RooCodeInc#7545)

* Putting the Roo in Roo-leases (RooCodeInc#7546)

* Fix evals (RooCodeInc#7547)

* fix: special tokens should not break task processing (RooCodeInc#7540)

* docs: update PR template branding from Roo Code to Costrict

* feat: optimize memory usage for image handling in webview (RooCodeInc#7556)

* feat: optimize memory usage for image handling in webview

- Replace base64 image data with webview URIs to reduce memory footprint
- Add proper resource roots to webview for workspace file access
- Implement convertToWebviewUri method for safe file-to-URI conversion
- Update ImageViewer to handle both webview URIs and file paths separately
- Add image message type for proper image rendering in chat
- Improve error handling and display for failed image loads
- Add comprehensive tests for ImageViewer component
- Format display paths as relative for better readability

This change significantly reduces memory usage by avoiding base64 encoding
of images and instead using VSCode's webview URI system for direct file
access. Images are now loaded on-demand from disk rather than being held
in memory as base64 strings.

* fix: address PR review comments

- Use safeJsonParse instead of JSON.parse in ChatRow.tsx
- Add type definition for parsed image info
- Add more specific error types in ClineProvider.ts
- Add comprehensive JSDoc comments to ImageBlock.tsx
- Improve error handling and type safety

* fix: address MrUbens' review comments

- Remove hardcoded 'rc1' pattern in formatDisplayPath, use generic workspace detection
- Internationalize 'No image data' text using i18n system

* chore: remove useless comment

* chore(i18n): add image.noData to all locales to fix translation check

* test: update ImageViewer.spec to align with i18n key and flexible path formatting

* feat: rename Account tab to Cloud tab (RooCodeInc#7558)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add Ollama API key support for Turbo mode (RooCodeInc#7425)

* feat: add Ollama API key support for Turbo mode

- Add ollamaApiKey field to ProviderSettings schema
- Add ollamaApiKey to SECRET_STATE_KEYS for secure storage
- Update Ollama and NativeOllama providers to use API key for authentication
- Add UI field for Ollama API key (shown when custom base URL is provided)
- Add test coverage for API key functionality

This enables users to use Ollama Turbo with datacenter-grade hardware by providing an API key for authenticated Ollama instances or cloud services.

* fix: use VSCodeTextField for Ollama API key field

Remove non-existent ApiKeyField import and use standard VSCodeTextField with password type, matching other provider implementations

* Add missing translation keys for Ollama API key support

- Add providers.ollama.apiKey and providers.ollama.apiKeyHelp to all 18 language files
- Support for authenticated Ollama instances and cloud services
- Relates to PR RooCodeInc#7425

* refactor: improve type safety for Ollama client configuration

- Replace 'any' type with proper OllamaOptions (Config) type
- Import Config type from ollama package for better type checking

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Disconnect extension bridge on logout (RooCodeInc#7563)

* Disconnect extension bridge on logout

* Remove bad test

* Cleanup

* Fix claudeCode.notFound translation key (RooCodeInc#7571)

I think I saw someone post a screenshot where "errors.claudeCode.notFound" was shown untranslated.

* v3.26.4 (RooCodeInc#7579)

* Update contributors list (RooCodeInc#7462)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7580)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add configurable embedding batch size for code indexing (RooCodeInc#7464)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Shows a pill with the base Roo Code Cloud URL when not pointing to pr… (RooCodeInc#7555)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Cloud: fix provider syncing (RooCodeInc#7603)

ClineProvider creation was moved before CloudService which broke
the old way of doing things.

* fix: add cache reporting support for OpenAI-Native provider (RooCodeInc#7602)

* fix: add cache reporting support for OpenAI-Native provider

- Add normalizeUsage method to properly extract cache tokens from Responses API
- Support both detailed token shapes (input_tokens_details) and legacy fields
- Calculate cache read/write tokens with proper fallbacks
- Include reasoning tokens when available in output_tokens_details
- Ensure accurate cost calculation using uncached input tokens

This fixes the issue where caching information was not being reported
when using the OpenAI-Native provider with the Responses API.

* fix: improve cache token normalization and add comprehensive tests

- Add fallback to derive total input tokens from details when totals are missing
- Remove unused convertToOpenAiMessages import
- Add comment explaining cost calculation alignment with Gemini provider
- Add comprehensive test coverage for normalizeUsage method covering:
  - Detailed token shapes with cached/miss tokens
  - Legacy field names and SSE-only events
  - Edge cases including missing totals with details-only
  - Cost calculation with uncached input tokens

* fix: address PR review comments

- Remove incorrect fallback to missFromDetails for cache write tokens
- Fix cost calculation to pass total input tokens (calculateApiCostOpenAI handles subtraction)
- Improve readability by extracting cache detail checks to intermediate variables
- Remove redundant ?? undefined
- Update tests to reflect correct behavior (miss tokens are not cache writes)
- Add clarifying comments about cache miss vs cache write tokens

* feat: add auto-approve support for MCP access_resource tool (RooCodeInc#7606)

* Move message queue to the extension host (RooCodeInc#7604)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Send custom modes to the extension bridge (RooCodeInc#7612)

* Never give up in socket transport (RooCodeInc#7616)

* Fix socket-io client event handling (RooCodeInc#7618)

* More socket-io client fixes from PR feedback (RooCodeInc#7619)

* More socket-io client logging improvements (RooCodeInc#7620)

* Publish subtask events (RooCodeInc#7626)

* Update chutes.ts to add Qwen3 235B A22B Thinking 2507 model (RooCodeInc#7578)

Co-authored-by: Matt Rubens <[email protected]>

* chore: add changeset for v3.26.5 (RooCodeInc#7628)

* Update contributors list (RooCodeInc#7629)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7630)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add run_slash_command tool for executing slash commands (RooCodeInc#7473)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Focus the extension when receiving bridge commands (RooCodeInc#7633)

* Release: v1.73.0 (RooCodeInc#7636)

* Cloud: remove extension_bridge_enabled for personal users (RooCodeInc#7638)

* Publish token usage metrics (RooCodeInc#7637)

* fix: preserve scroll position when switching tabs in settings (RooCodeInc#7587)

* fix: preserve scroll position when switching tabs in settings

* ui(settings): restore scroll synchronously to prevent flicker; dx(ui): name TabContent for clearer DevTools

---------

Co-authored-by: Daniel Riccio <[email protected]>

* feat: add Kimi K2 Turbo model configuration to moonshotModels (RooCodeInc#7593)

* feat: add Kimi K2 Turbo model configuration to moonshotModels

* feat: update Kimi K2 Turbo pricing and cache read prices

* fix: use askApproval wrapper in insert_content and search_and_replace tools (RooCodeInc#7649)

Fixes issue where isWriteProtected was incorrectly passed as the partial flag
to task.ask(), causing "Current ask promise was ignored (#1)" error.

Both tools now use the askApproval wrapper function which correctly handles
the parameter ordering, passing undefined for progressStatus and isWriteProtected
as the fourth parameter.

Fixes RooCodeInc#7648

Co-authored-by: Roo Code <[email protected]>

* Release v3.26.6 (RooCodeInc#7650)

* Changeset version bump (RooCodeInc#7651)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Delete .github/workflows/discord-pr-notify.yml

* Remove unused slack notif (RooCodeInc#7655)

* Handle zsh process substitution correctly (RooCodeInc#7658)

* Handle zsh glob qualifiers correctly (RooCodeInc#7667)

* Minor zh-TW Traditional Chinese locale typo fix (RooCodeInc#7672)

* feat: Add DeepInfra as a model provider in Roo Code (RooCodeInc#7677)

* fix: validate MCP tool exists before execution (RooCodeInc#7632)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* fix: add error transform to cryptic openAI SDK errors when API key is invalid (RooCodeInc#7586)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: OpenAI Responses API service tiers (flex/priority) — UI selector, pricing, and tests (RooCodeInc#7646)

Co-authored-by: Daniel Riccio <[email protected]>

* fix: prevent countdown timer from showing in history for answered follow-up questions (RooCodeInc#7686)

* fix: Fix the issue of Moonshot's maximum return token count being limited to 1024 (RooCodeInc#7673)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* feat: update kimi-k2-0905-preview and kimi-k2-turbo-preview (RooCodeInc#7663)

* Fix test

* Release v3.26.7 (RooCodeInc#7691)

* Delete .changeset/petite-rats-admire.md

* feat: Add Kimi K2 0905 model to Groq, Moonshot, and Fireworks providers (RooCodeInc#7693)

* Use an allowlist to keep the prompt default shell sane (RooCodeInc#7681)

* Changeset version bump (RooCodeInc#7690)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Fix: Improve WelcomeView styling and readability (RooCodeInc#7682)

* fix: improve WelcomeView styling and readability

- Reduced excessive padding from p-16 to p-6
- Removed excessive bold text throughout
- Made provider cards more compact with smaller icons (32x32px)
- Increased introduction text size from text-sm to text-base for better visibility
- Centered the main greeting title
- Improved visual hierarchy with proper text sizing and spacing
- Added subtle borders and improved color contrast

* fix: remove undefined color class from incentive text

Removed the text-vscode-warningForeground class as it wasn't defined in index.css. The incentive text now uses default color which looks good.

* feat: add Kimi K2-0905 model to Chutes provider (RooCodeInc#7701)

Co-authored-by: Roo Code <[email protected]>

* fix: handle array paths from VSCode terminal profiles (RooCodeInc#7697)

* fix: handle array paths from VSCode terminal profiles

- Updated terminal profile interfaces to support string | string[] for path property
- Added normalizeShellPath helper to safely extract first element from array paths
- Modified isShellAllowed to handle both string and array inputs
- Updated getWindowsShellFromVSCode, getMacShellFromVSCode, and getLinuxShellFromVSCode to use normalizeShellPath
- Added comprehensive tests for array path handling

Fixes RooCodeInc#7695

* feat: add validateShellPath export for robust shell validation

- Created validateShellPath as a public API for shell path validation
- Refactored internal validation logic into isShellAllowedInternal
- Added comprehensive test coverage for all edge cases
- Maintains backward compatibility with deprecated isShellAllowed
- Handles arrays, strings, null, undefined, and nested arrays gracefully

* Simplify roomote's work a little

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Edit/Delete User Message (RooCodeInc#7447)

* fix: prevent stack overflow in codebase indexing for large projects (RooCodeInc#7712)

* fix: identify mcp and slash command config path in multiple folder workspace (RooCodeInc#6904)

* fix: resolve CI e2e test ETIMEDOUT errors when downloading VS Code (RooCodeInc#7583)

* fix: Tackling Race/State condition issue by Changing the Code Design for Gemini Grounding Sources (RooCodeInc#7434)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: preserve context by retrying with full conversation on invalid previous_response_id (RooCodeInc#7714)

* chore: add changeset for v3.26.8 (RooCodeInc#7715)

* feat(checkpoints): create checkpoint when user sends a message (RooCodeInc#7713)

* feat(checkpoints): create checkpoint on user message send

* fix(checkpoints): suppress implicit user-message checkpoint row; keep current checkpoint updated without a chat row

* Fix checkpoint suppression for user messages

- Propagate suppressMessage flag through event chain properly
- Update ChatView to check checkpoint metadata for suppressMessage flag
- Ensure checkpoint messages are created but not rendered when suppressed
- Fix bug where checkpointSave(false) should have been checkpointSave(true)

* fix: only create checkpoint on user message when files have changed

- Changed allowEmpty from true to false in checkpointSave call
- Checkpoints will now only be created when there are actual file changes
- This avoids creating empty commits in the shadow git repository

* test: update checkpoint test to include suppressMessage parameter

- Fixed test expectation to match the new function signature
- saveCheckpoint now expects both allowEmpty and suppressMessage parameters

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Bump to 3.27.0 (RooCodeInc#7719)

* Changeset version bump (RooCodeInc#7716)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix: update DeepSeek pricing to new unified rates effective Sept 5, 2025 (RooCodeInc#7687)

- Updated deepseek-chat pricing: $0.56 input (cache miss), $0.07 (cache hit), $1.68 output
- Updated deepseek-reasoner pricing: same unified rates as deepseek-chat
- Both models now have identical pricing as per DeepSeek announcement
- Pricing takes effect at 16:00 UTC, Sept 5th, 2025

Fixes RooCodeInc#7685

Co-authored-by: Roo Code <[email protected]>

* feat: replace cloud waitlist ad with direct Cloud link in navigation (RooCodeInc#7742)

Co-authored-by: Roo Code <[email protected]>

* feat: show dash instead of zero for missing data on evals page (RooCodeInc#7748)

Co-authored-by: Roo Code <[email protected]>

* Feature/update vertex ai models and regions (RooCodeInc#7727)

* Add model info to eval runs table (RooCodeInc#7749)

* chore(deps): update dependency eslint-config-prettier to v10.1.8 (RooCodeInc#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency esbuild to v0.25.9 (RooCodeInc#5455)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @changesets/cli to v2.29.6 (RooCodeInc#7376)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency nock to v14.0.10 (RooCodeInc#6465)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint-plugin-turbo to v2.5.6 (RooCodeInc#7764)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* refactor(utils): simplify shell detection logic

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* test: update shell detection test expectation and mocks

* test: add mock cleanup in shell detection tests

* test: update shell detection tests to prioritize PowerShell 7

* fix(workspace-event-monitor): increase max retries and improve retry logic

* refactor(codebase): improve error handling and workspace validation

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* test: change console.error to console.warn in tests

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* test: enhance vscode mock implementations and error handling

* feat(chat): replace edit button with copy functionality

* refactor(core): enhance binary file detection and encoding handling

* feat(chat): add chat search functionality with highlighting

---------

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Josh <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: mrubens <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: Piotr Wilkin (ilintar) <[email protected]>
Co-authored-by: Christiaan Arnoldus <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mohammad Danaee nia <[email protected]>
Co-authored-by: 淡草 <[email protected]>
Co-authored-by: WangXiaolong <[email protected]>
Co-authored-by: Peter Dave Hello <[email protected]>
Co-authored-by: Thach Nguyen <[email protected]>
Co-authored-by: CellenLee <[email protected]>
Co-authored-by: NaccOll <[email protected]>
Co-authored-by: Ton Hoang Nguyen (Bill) <[email protected]>
Co-authored-by: ssweens <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ItsOnlyBinary <[email protected]>
mini2s added a commit to zgsm-ai/costrict that referenced this pull request Sep 11, 2025
* Follow symlinks in rooignore checks (RooCodeInc#7405)

* Sonic -> Grok Code Fast (RooCodeInc#7426)

* chore: add changeset for v3.26.0 (RooCodeInc#7428)

* Changeset version bump (RooCodeInc#7429)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: Add Vercel AI Gateway provider integration (RooCodeInc#7396)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>

* feat: Enable on-disk storage for Qdrant vectors and HNSW index (RooCodeInc#7182)

* fix: use anthropic protocol for token counting when using anthropic models via Vercel AI Gateway (RooCodeInc#7433)

- Added condition in getApiProtocol to return 'anthropic' for vercel-ai-gateway when modelId starts with 'anthropic/'
- Added tests for Vercel AI Gateway provider protocol detection

This ensures proper token counting for Anthropic models accessed through Vercel AI Gateway, as Anthropic and OpenAI count tokens differently (Anthropic excludes cache tokens from input count, OpenAI includes them).

* fix: remove duplicate cache display in task header (RooCodeInc#7443)

* Random chat text area cleanup (RooCodeInc#7436)

* Update @roo-code/cloud to enable roomote control for cloud agents (RooCodeInc#7446)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Always set remoteControlEnabled to true for cloud agents (RooCodeInc#7448)

* chore: add changeset for v3.26.1 (RooCodeInc#7459)

* feat: show model ID in API configuration dropdown (RooCodeInc#7423)

* feat: update tooltip component to match native VSCode tooltip shadow styling (RooCodeInc#7457)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: cte <[email protected]>

* Add support for Vercel embeddings (RooCodeInc#7445)

Co-authored-by: daniel-lxs <[email protected]>

* Remove dot before model display (RooCodeInc#7461)

* Update contributors list (RooCodeInc#7109)

Co-authored-by: mrubens <[email protected]>

* Update 3.26.1 changeset (RooCodeInc#7463)

* Changeset version bump (RooCodeInc#7460)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Add type for RooCodeEventName.TaskSpawned (RooCodeInc#7465)

* fix: hide .rooignore'd files from environment details by default (RooCodeInc#7369)

* fix: change default showRooIgnoredFiles to false to hide ignored files

- Changed default value from true to false across all files
- Updated tests to reflect the new default behavior
- This prevents ignored files from appearing in environment details

Fixes RooCodeInc#7368

* fix: update tests to match new showRooIgnoredFiles default

* fix: update test expectation to match new showRooIgnoredFiles default value

The PR changed the default value of showRooIgnoredFiles from true to false,
so the test needs to expect false instead of true when calling formatFilesList.

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: exclude browser scroll actions from repetition detection (RooCodeInc#7471)

- Modified ToolRepetitionDetector to skip repetition detection for browser_action scroll_down and scroll_up actions
- Added isBrowserScrollAction() helper method to identify scroll actions
- Added comprehensive tests for the new behavior
- Fixes issue where multiple scroll actions were incorrectly flagged as being stuck in a loop

Resolves: RooCodeInc#7470

Co-authored-by: Roo Code <[email protected]>

* Fix GPT-5 Responses API issues with condensing and image support (RooCodeInc#7067)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>

* Bump cloud to 0.25.0 (RooCodeInc#7475)

* feat: add image generation tool with OpenRouter integration (RooCodeInc#7474)

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: cte <[email protected]>

* Make the default image filename more generic (RooCodeInc#7479)

* Release v3.26.2 (RooCodeInc#7490)

* Support free imagegen (RooCodeInc#7493)

* feat: update OpenRouter API to support input/output modalities and filter image generation models (RooCodeInc#7492)

* Add padding to image model picker (RooCodeInc#7494)

* fix: prevent dirty state on initial mount in ImageGenerationSettings (RooCodeInc#7495)

* Changeset version bump (RooCodeInc#7491)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Show console logging in vitests when the --no-silent flag is set (RooCodeInc#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 <[email protected]>

* Move @roo-code/cloud to the Roo-Code repo (RooCodeInc#7503)

* Refactor the extension bridge (RooCodeInc#7515)

* Implement deferred task subscriptions (RooCodeInc#7517)

* feat: add optional input image parameter to image generation tool (RooCodeInc#7525)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: sync extension bridge settings with cloud (RooCodeInc#7535)

- Use CloudService.getUserSettings() for remoteControlEnabled instead of global state
- Update CloudService.updateUserSettings when toggling remote control
- Add BridgeOrchestrator.connectOrDisconnect handling in settings update handler
- Remove dependency on contentProxy/globalSettings for remote control state
---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* refactor: flatten image generation settings structure (RooCodeInc#7536)

* chore: add changeset for v3.26.3 (RooCodeInc#7541)

* Changeset version bump (RooCodeInc#7542)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Mode and provider profile selector (RooCodeInc#7545)

* Putting the Roo in Roo-leases (RooCodeInc#7546)

* Fix evals (RooCodeInc#7547)

* fix: special tokens should not break task processing (RooCodeInc#7540)

* docs: update PR template branding from Roo Code to Costrict

* feat: optimize memory usage for image handling in webview (RooCodeInc#7556)

* feat: optimize memory usage for image handling in webview

- Replace base64 image data with webview URIs to reduce memory footprint
- Add proper resource roots to webview for workspace file access
- Implement convertToWebviewUri method for safe file-to-URI conversion
- Update ImageViewer to handle both webview URIs and file paths separately
- Add image message type for proper image rendering in chat
- Improve error handling and display for failed image loads
- Add comprehensive tests for ImageViewer component
- Format display paths as relative for better readability

This change significantly reduces memory usage by avoiding base64 encoding
of images and instead using VSCode's webview URI system for direct file
access. Images are now loaded on-demand from disk rather than being held
in memory as base64 strings.

* fix: address PR review comments

- Use safeJsonParse instead of JSON.parse in ChatRow.tsx
- Add type definition for parsed image info
- Add more specific error types in ClineProvider.ts
- Add comprehensive JSDoc comments to ImageBlock.tsx
- Improve error handling and type safety

* fix: address MrUbens' review comments

- Remove hardcoded 'rc1' pattern in formatDisplayPath, use generic workspace detection
- Internationalize 'No image data' text using i18n system

* chore: remove useless comment

* chore(i18n): add image.noData to all locales to fix translation check

* test: update ImageViewer.spec to align with i18n key and flexible path formatting

* feat: rename Account tab to Cloud tab (RooCodeInc#7558)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add Ollama API key support for Turbo mode (RooCodeInc#7425)

* feat: add Ollama API key support for Turbo mode

- Add ollamaApiKey field to ProviderSettings schema
- Add ollamaApiKey to SECRET_STATE_KEYS for secure storage
- Update Ollama and NativeOllama providers to use API key for authentication
- Add UI field for Ollama API key (shown when custom base URL is provided)
- Add test coverage for API key functionality

This enables users to use Ollama Turbo with datacenter-grade hardware by providing an API key for authenticated Ollama instances or cloud services.

* fix: use VSCodeTextField for Ollama API key field

Remove non-existent ApiKeyField import and use standard VSCodeTextField with password type, matching other provider implementations

* Add missing translation keys for Ollama API key support

- Add providers.ollama.apiKey and providers.ollama.apiKeyHelp to all 18 language files
- Support for authenticated Ollama instances and cloud services
- Relates to PR RooCodeInc#7425

* refactor: improve type safety for Ollama client configuration

- Replace 'any' type with proper OllamaOptions (Config) type
- Import Config type from ollama package for better type checking

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Disconnect extension bridge on logout (RooCodeInc#7563)

* Disconnect extension bridge on logout

* Remove bad test

* Cleanup

* Fix claudeCode.notFound translation key (RooCodeInc#7571)

I think I saw someone post a screenshot where "errors.claudeCode.notFound" was shown untranslated.

* v3.26.4 (RooCodeInc#7579)

* Update contributors list (RooCodeInc#7462)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7580)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add configurable embedding batch size for code indexing (RooCodeInc#7464)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Shows a pill with the base Roo Code Cloud URL when not pointing to pr… (RooCodeInc#7555)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Cloud: fix provider syncing (RooCodeInc#7603)

ClineProvider creation was moved before CloudService which broke
the old way of doing things.

* fix: add cache reporting support for OpenAI-Native provider (RooCodeInc#7602)

* fix: add cache reporting support for OpenAI-Native provider

- Add normalizeUsage method to properly extract cache tokens from Responses API
- Support both detailed token shapes (input_tokens_details) and legacy fields
- Calculate cache read/write tokens with proper fallbacks
- Include reasoning tokens when available in output_tokens_details
- Ensure accurate cost calculation using uncached input tokens

This fixes the issue where caching information was not being reported
when using the OpenAI-Native provider with the Responses API.

* fix: improve cache token normalization and add comprehensive tests

- Add fallback to derive total input tokens from details when totals are missing
- Remove unused convertToOpenAiMessages import
- Add comment explaining cost calculation alignment with Gemini provider
- Add comprehensive test coverage for normalizeUsage method covering:
  - Detailed token shapes with cached/miss tokens
  - Legacy field names and SSE-only events
  - Edge cases including missing totals with details-only
  - Cost calculation with uncached input tokens

* fix: address PR review comments

- Remove incorrect fallback to missFromDetails for cache write tokens
- Fix cost calculation to pass total input tokens (calculateApiCostOpenAI handles subtraction)
- Improve readability by extracting cache detail checks to intermediate variables
- Remove redundant ?? undefined
- Update tests to reflect correct behavior (miss tokens are not cache writes)
- Add clarifying comments about cache miss vs cache write tokens

* feat: add auto-approve support for MCP access_resource tool (RooCodeInc#7606)

* Move message queue to the extension host (RooCodeInc#7604)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Send custom modes to the extension bridge (RooCodeInc#7612)

* Never give up in socket transport (RooCodeInc#7616)

* Fix socket-io client event handling (RooCodeInc#7618)

* More socket-io client fixes from PR feedback (RooCodeInc#7619)

* More socket-io client logging improvements (RooCodeInc#7620)

* Publish subtask events (RooCodeInc#7626)

* Update chutes.ts to add Qwen3 235B A22B Thinking 2507 model (RooCodeInc#7578)

Co-authored-by: Matt Rubens <[email protected]>

* chore: add changeset for v3.26.5 (RooCodeInc#7628)

* Update contributors list (RooCodeInc#7629)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7630)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add run_slash_command tool for executing slash commands (RooCodeInc#7473)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Focus the extension when receiving bridge commands (RooCodeInc#7633)

* Release: v1.73.0 (RooCodeInc#7636)

* Cloud: remove extension_bridge_enabled for personal users (RooCodeInc#7638)

* Publish token usage metrics (RooCodeInc#7637)

* fix: preserve scroll position when switching tabs in settings (RooCodeInc#7587)

* fix: preserve scroll position when switching tabs in settings

* ui(settings): restore scroll synchronously to prevent flicker; dx(ui): name TabContent for clearer DevTools

---------

Co-authored-by: Daniel Riccio <[email protected]>

* feat: add Kimi K2 Turbo model configuration to moonshotModels (RooCodeInc#7593)

* feat: add Kimi K2 Turbo model configuration to moonshotModels

* feat: update Kimi K2 Turbo pricing and cache read prices

* fix: use askApproval wrapper in insert_content and search_and_replace tools (RooCodeInc#7649)

Fixes issue where isWriteProtected was incorrectly passed as the partial flag
to task.ask(), causing "Current ask promise was ignored (#1)" error.

Both tools now use the askApproval wrapper function which correctly handles
the parameter ordering, passing undefined for progressStatus and isWriteProtected
as the fourth parameter.

Fixes RooCodeInc#7648

Co-authored-by: Roo Code <[email protected]>

* Release v3.26.6 (RooCodeInc#7650)

* Changeset version bump (RooCodeInc#7651)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Delete .github/workflows/discord-pr-notify.yml

* Remove unused slack notif (RooCodeInc#7655)

* Handle zsh process substitution correctly (RooCodeInc#7658)

* Handle zsh glob qualifiers correctly (RooCodeInc#7667)

* Minor zh-TW Traditional Chinese locale typo fix (RooCodeInc#7672)

* feat: Add DeepInfra as a model provider in Roo Code (RooCodeInc#7677)

* fix: validate MCP tool exists before execution (RooCodeInc#7632)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* fix: add error transform to cryptic openAI SDK errors when API key is invalid (RooCodeInc#7586)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: OpenAI Responses API service tiers (flex/priority) — UI selector, pricing, and tests (RooCodeInc#7646)

Co-authored-by: Daniel Riccio <[email protected]>

* fix: prevent countdown timer from showing in history for answered follow-up questions (RooCodeInc#7686)

* fix: Fix the issue of Moonshot's maximum return token count being limited to 1024 (RooCodeInc#7673)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* feat: update kimi-k2-0905-preview and kimi-k2-turbo-preview (RooCodeInc#7663)

* Fix test

* Release v3.26.7 (RooCodeInc#7691)

* Delete .changeset/petite-rats-admire.md

* feat: Add Kimi K2 0905 model to Groq, Moonshot, and Fireworks providers (RooCodeInc#7693)

* Use an allowlist to keep the prompt default shell sane (RooCodeInc#7681)

* Changeset version bump (RooCodeInc#7690)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Fix: Improve WelcomeView styling and readability (RooCodeInc#7682)

* fix: improve WelcomeView styling and readability

- Reduced excessive padding from p-16 to p-6
- Removed excessive bold text throughout
- Made provider cards more compact with smaller icons (32x32px)
- Increased introduction text size from text-sm to text-base for better visibility
- Centered the main greeting title
- Improved visual hierarchy with proper text sizing and spacing
- Added subtle borders and improved color contrast

* fix: remove undefined color class from incentive text

Removed the text-vscode-warningForeground class as it wasn't defined in index.css. The incentive text now uses default color which looks good.

* feat: add Kimi K2-0905 model to Chutes provider (RooCodeInc#7701)

Co-authored-by: Roo Code <[email protected]>

* fix: handle array paths from VSCode terminal profiles (RooCodeInc#7697)

* fix: handle array paths from VSCode terminal profiles

- Updated terminal profile interfaces to support string | string[] for path property
- Added normalizeShellPath helper to safely extract first element from array paths
- Modified isShellAllowed to handle both string and array inputs
- Updated getWindowsShellFromVSCode, getMacShellFromVSCode, and getLinuxShellFromVSCode to use normalizeShellPath
- Added comprehensive tests for array path handling

Fixes RooCodeInc#7695

* feat: add validateShellPath export for robust shell validation

- Created validateShellPath as a public API for shell path validation
- Refactored internal validation logic into isShellAllowedInternal
- Added comprehensive test coverage for all edge cases
- Maintains backward compatibility with deprecated isShellAllowed
- Handles arrays, strings, null, undefined, and nested arrays gracefully

* Simplify roomote's work a little

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Edit/Delete User Message (RooCodeInc#7447)

* fix: prevent stack overflow in codebase indexing for large projects (RooCodeInc#7712)

* fix: identify mcp and slash command config path in multiple folder workspace (RooCodeInc#6904)

* fix: resolve CI e2e test ETIMEDOUT errors when downloading VS Code (RooCodeInc#7583)

* fix: Tackling Race/State condition issue by Changing the Code Design for Gemini Grounding Sources (RooCodeInc#7434)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: preserve context by retrying with full conversation on invalid previous_response_id (RooCodeInc#7714)

* chore: add changeset for v3.26.8 (RooCodeInc#7715)

* feat(checkpoints): create checkpoint when user sends a message (RooCodeInc#7713)

* feat(checkpoints): create checkpoint on user message send

* fix(checkpoints): suppress implicit user-message checkpoint row; keep current checkpoint updated without a chat row

* Fix checkpoint suppression for user messages

- Propagate suppressMessage flag through event chain properly
- Update ChatView to check checkpoint metadata for suppressMessage flag
- Ensure checkpoint messages are created but not rendered when suppressed
- Fix bug where checkpointSave(false) should have been checkpointSave(true)

* fix: only create checkpoint on user message when files have changed

- Changed allowEmpty from true to false in checkpointSave call
- Checkpoints will now only be created when there are actual file changes
- This avoids creating empty commits in the shadow git repository

* test: update checkpoint test to include suppressMessage parameter

- Fixed test expectation to match the new function signature
- saveCheckpoint now expects both allowEmpty and suppressMessage parameters

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Bump to 3.27.0 (RooCodeInc#7719)

* Changeset version bump (RooCodeInc#7716)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix: update DeepSeek pricing to new unified rates effective Sept 5, 2025 (RooCodeInc#7687)

- Updated deepseek-chat pricing: $0.56 input (cache miss), $0.07 (cache hit), $1.68 output
- Updated deepseek-reasoner pricing: same unified rates as deepseek-chat
- Both models now have identical pricing as per DeepSeek announcement
- Pricing takes effect at 16:00 UTC, Sept 5th, 2025

Fixes RooCodeInc#7685

Co-authored-by: Roo Code <[email protected]>

* feat: replace cloud waitlist ad with direct Cloud link in navigation (RooCodeInc#7742)

Co-authored-by: Roo Code <[email protected]>

* feat: show dash instead of zero for missing data on evals page (RooCodeInc#7748)

Co-authored-by: Roo Code <[email protected]>

* Feature/update vertex ai models and regions (RooCodeInc#7727)

* Add model info to eval runs table (RooCodeInc#7749)

* chore(deps): update dependency eslint-config-prettier to v10.1.8 (RooCodeInc#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency esbuild to v0.25.9 (RooCodeInc#5455)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @changesets/cli to v2.29.6 (RooCodeInc#7376)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency nock to v14.0.10 (RooCodeInc#6465)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint-plugin-turbo to v2.5.6 (RooCodeInc#7764)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* refactor(utils): simplify shell detection logic

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* test: update shell detection test expectation and mocks

* test: add mock cleanup in shell detection tests

* test: update shell detection tests to prioritize PowerShell 7

* fix(workspace-event-monitor): increase max retries and improve retry logic

* refactor(codebase): improve error handling and workspace validation

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* test: change console.error to console.warn in tests

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* test: enhance vscode mock implementations and error handling

* feat(chat): replace edit button with copy functionality

* refactor(core): enhance binary file detection and encoding handling

* separate task sync roomote control (RooCodeInc#7799)

* feat: separate Task Sync and Roomote Control settings

- Add new taskSyncEnabled setting to control task content syncing
- Keep remoteControlEnabled for Roomote Control functionality
- Task Sync controls whether task content is sent to cloud
- Roomote Control controls whether cloud can send instructions back
- Roomote Control now depends on Task Sync being enabled
- Usage metrics (tokens, cost) always reported regardless of settings
- Update UI with two separate toggles and clear descriptions
- Add info text explaining usage metrics are always reported

* feat: add missing translations for Task Sync and Roomote Control settings

- Added taskSync, taskSyncDescription, remoteControlRequiresTaskSync, and usageMetricsAlwaysReported keys to all non-English cloud.json files
- Updated cloudBenefit keys to match English structure
- Ensured all languages have consistent translation keys for the new Task Sync and Roomote Control features

* Cloud: cleanup taskSyncEnabled additions

* fix: correct indentation localization files

---------

Co-authored-by: Roo Code <[email protected]>

* feat: In-extension dismissible upsells for Roo Code Cloud (RooCodeInc#7850)

* First pass at separate upsell dialog

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* feat: add DismissibleUpsell component for dismissible messages

- Created DismissibleUpsell component with variant support (banner/default)
- Added dismissedUpsells to GlobalState for persistence
- Implemented message handlers for dismissing and retrieving dismissed upsells
- Added comprehensive tests for the component
- Uses VSCode extension globalState for persistent storage

* fix: Apply PR feedback for DismissibleUpsell component

- Changed from className to separate 'id' and 'className' props for better semantics
- Added i18n support for accessibility labels (aria-label and title)
- Fixed memory leak by adding mounted flag to prevent state updates after unmount
- Fixed race condition by sending dismiss message before hiding component
- Fixed inefficient array operations in webviewMessageHandler
- Added comprehensive test coverage for edge cases including:
  - Multiple rapid dismissals
  - Component unmounting during async operations
  - Invalid/malformed message handling
  - Proper message sending before unmount
- Added null checks for message data to handle edge cases gracefully

* New Cloud upsell dialog in task share and cloud view, shared component

* Properly working DismissibleUpsell

* Working upsell for long-running tasks

* CTA in AutoApproveMenu

* Home page CTA

* Fixes the autoapprove upsell and some tests

* Visual and copy fixes

* Test fix

* Translations

* Stray className attribute

* Cloud view fixes in a left-aligned layout

* Removes unnecessary test

* Less flaky tests

* Fixes sharebutton behavior and updates associated tests

* Update webview-ui/src/i18n/locales/it/cloud.json

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Fix dismissed flicker

* Fix long task upsell

---------

Co-authored-by: Daniel <[email protected]>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* v3.28.0 (RooCodeInc#7858)

* Changeset version bump (RooCodeInc#7859)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat(chat): add chat search functionality with highlighting

* feat: show notification when the checkpoint initialization fails (RooCodeInc#7766)

Co-authored-by: daniel-lxs <[email protected]>

* Bust cache in generated image preview (RooCodeInc#7860)

Co-authored-by: Roo Code <[email protected]>

* test: disable TaskHeader upsell tests

---------

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Josh <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: mrubens <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: Piotr Wilkin (ilintar) <[email protected]>
Co-authored-by: Christiaan Arnoldus <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mohammad Danaee nia <[email protected]>
Co-authored-by: 淡草 <[email protected]>
Co-authored-by: WangXiaolong <[email protected]>
Co-authored-by: Peter Dave Hello <[email protected]>
Co-authored-by: Thach Nguyen <[email protected]>
Co-authored-by: CellenLee <[email protected]>
Co-authored-by: NaccOll <[email protected]>
Co-authored-by: Ton Hoang Nguyen (Bill) <[email protected]>
Co-authored-by: ssweens <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ItsOnlyBinary <[email protected]>
mini2s added a commit to zgsm-ai/costrict that referenced this pull request Sep 11, 2025
* Follow symlinks in rooignore checks (RooCodeInc#7405)

* Sonic -> Grok Code Fast (RooCodeInc#7426)

* chore: add changeset for v3.26.0 (RooCodeInc#7428)

* Changeset version bump (RooCodeInc#7429)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: Add Vercel AI Gateway provider integration (RooCodeInc#7396)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>

* feat: Enable on-disk storage for Qdrant vectors and HNSW index (RooCodeInc#7182)

* fix: use anthropic protocol for token counting when using anthropic models via Vercel AI Gateway (RooCodeInc#7433)

- Added condition in getApiProtocol to return 'anthropic' for vercel-ai-gateway when modelId starts with 'anthropic/'
- Added tests for Vercel AI Gateway provider protocol detection

This ensures proper token counting for Anthropic models accessed through Vercel AI Gateway, as Anthropic and OpenAI count tokens differently (Anthropic excludes cache tokens from input count, OpenAI includes them).

* fix: remove duplicate cache display in task header (RooCodeInc#7443)

* Random chat text area cleanup (RooCodeInc#7436)

* Update @roo-code/cloud to enable roomote control for cloud agents (RooCodeInc#7446)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Always set remoteControlEnabled to true for cloud agents (RooCodeInc#7448)

* chore: add changeset for v3.26.1 (RooCodeInc#7459)

* feat: show model ID in API configuration dropdown (RooCodeInc#7423)

* feat: update tooltip component to match native VSCode tooltip shadow styling (RooCodeInc#7457)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: cte <[email protected]>

* Add support for Vercel embeddings (RooCodeInc#7445)

Co-authored-by: daniel-lxs <[email protected]>

* Remove dot before model display (RooCodeInc#7461)

* Update contributors list (RooCodeInc#7109)

Co-authored-by: mrubens <[email protected]>

* Update 3.26.1 changeset (RooCodeInc#7463)

* Changeset version bump (RooCodeInc#7460)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Add type for RooCodeEventName.TaskSpawned (RooCodeInc#7465)

* fix: hide .rooignore'd files from environment details by default (RooCodeInc#7369)

* fix: change default showRooIgnoredFiles to false to hide ignored files

- Changed default value from true to false across all files
- Updated tests to reflect the new default behavior
- This prevents ignored files from appearing in environment details

Fixes RooCodeInc#7368

* fix: update tests to match new showRooIgnoredFiles default

* fix: update test expectation to match new showRooIgnoredFiles default value

The PR changed the default value of showRooIgnoredFiles from true to false,
so the test needs to expect false instead of true when calling formatFilesList.

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: exclude browser scroll actions from repetition detection (RooCodeInc#7471)

- Modified ToolRepetitionDetector to skip repetition detection for browser_action scroll_down and scroll_up actions
- Added isBrowserScrollAction() helper method to identify scroll actions
- Added comprehensive tests for the new behavior
- Fixes issue where multiple scroll actions were incorrectly flagged as being stuck in a loop

Resolves: RooCodeInc#7470

Co-authored-by: Roo Code <[email protected]>

* Fix GPT-5 Responses API issues with condensing and image support (RooCodeInc#7067)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>

* Bump cloud to 0.25.0 (RooCodeInc#7475)

* feat: add image generation tool with OpenRouter integration (RooCodeInc#7474)

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: cte <[email protected]>

* Make the default image filename more generic (RooCodeInc#7479)

* Release v3.26.2 (RooCodeInc#7490)

* Support free imagegen (RooCodeInc#7493)

* feat: update OpenRouter API to support input/output modalities and filter image generation models (RooCodeInc#7492)

* Add padding to image model picker (RooCodeInc#7494)

* fix: prevent dirty state on initial mount in ImageGenerationSettings (RooCodeInc#7495)

* Changeset version bump (RooCodeInc#7491)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Show console logging in vitests when the --no-silent flag is set (RooCodeInc#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 <[email protected]>

* Move @roo-code/cloud to the Roo-Code repo (RooCodeInc#7503)

* Refactor the extension bridge (RooCodeInc#7515)

* Implement deferred task subscriptions (RooCodeInc#7517)

* feat: add optional input image parameter to image generation tool (RooCodeInc#7525)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: sync extension bridge settings with cloud (RooCodeInc#7535)

- Use CloudService.getUserSettings() for remoteControlEnabled instead of global state
- Update CloudService.updateUserSettings when toggling remote control
- Add BridgeOrchestrator.connectOrDisconnect handling in settings update handler
- Remove dependency on contentProxy/globalSettings for remote control state
---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* refactor: flatten image generation settings structure (RooCodeInc#7536)

* chore: add changeset for v3.26.3 (RooCodeInc#7541)

* Changeset version bump (RooCodeInc#7542)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Mode and provider profile selector (RooCodeInc#7545)

* Putting the Roo in Roo-leases (RooCodeInc#7546)

* Fix evals (RooCodeInc#7547)

* fix: special tokens should not break task processing (RooCodeInc#7540)

* docs: update PR template branding from Roo Code to Costrict

* feat: optimize memory usage for image handling in webview (RooCodeInc#7556)

* feat: optimize memory usage for image handling in webview

- Replace base64 image data with webview URIs to reduce memory footprint
- Add proper resource roots to webview for workspace file access
- Implement convertToWebviewUri method for safe file-to-URI conversion
- Update ImageViewer to handle both webview URIs and file paths separately
- Add image message type for proper image rendering in chat
- Improve error handling and display for failed image loads
- Add comprehensive tests for ImageViewer component
- Format display paths as relative for better readability

This change significantly reduces memory usage by avoiding base64 encoding
of images and instead using VSCode's webview URI system for direct file
access. Images are now loaded on-demand from disk rather than being held
in memory as base64 strings.

* fix: address PR review comments

- Use safeJsonParse instead of JSON.parse in ChatRow.tsx
- Add type definition for parsed image info
- Add more specific error types in ClineProvider.ts
- Add comprehensive JSDoc comments to ImageBlock.tsx
- Improve error handling and type safety

* fix: address MrUbens' review comments

- Remove hardcoded 'rc1' pattern in formatDisplayPath, use generic workspace detection
- Internationalize 'No image data' text using i18n system

* chore: remove useless comment

* chore(i18n): add image.noData to all locales to fix translation check

* test: update ImageViewer.spec to align with i18n key and flexible path formatting

* feat: rename Account tab to Cloud tab (RooCodeInc#7558)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add Ollama API key support for Turbo mode (RooCodeInc#7425)

* feat: add Ollama API key support for Turbo mode

- Add ollamaApiKey field to ProviderSettings schema
- Add ollamaApiKey to SECRET_STATE_KEYS for secure storage
- Update Ollama and NativeOllama providers to use API key for authentication
- Add UI field for Ollama API key (shown when custom base URL is provided)
- Add test coverage for API key functionality

This enables users to use Ollama Turbo with datacenter-grade hardware by providing an API key for authenticated Ollama instances or cloud services.

* fix: use VSCodeTextField for Ollama API key field

Remove non-existent ApiKeyField import and use standard VSCodeTextField with password type, matching other provider implementations

* Add missing translation keys for Ollama API key support

- Add providers.ollama.apiKey and providers.ollama.apiKeyHelp to all 18 language files
- Support for authenticated Ollama instances and cloud services
- Relates to PR RooCodeInc#7425

* refactor: improve type safety for Ollama client configuration

- Replace 'any' type with proper OllamaOptions (Config) type
- Import Config type from ollama package for better type checking

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Disconnect extension bridge on logout (RooCodeInc#7563)

* Disconnect extension bridge on logout

* Remove bad test

* Cleanup

* Fix claudeCode.notFound translation key (RooCodeInc#7571)

I think I saw someone post a screenshot where "errors.claudeCode.notFound" was shown untranslated.

* v3.26.4 (RooCodeInc#7579)

* Update contributors list (RooCodeInc#7462)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7580)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add configurable embedding batch size for code indexing (RooCodeInc#7464)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Shows a pill with the base Roo Code Cloud URL when not pointing to pr… (RooCodeInc#7555)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Cloud: fix provider syncing (RooCodeInc#7603)

ClineProvider creation was moved before CloudService which broke
the old way of doing things.

* fix: add cache reporting support for OpenAI-Native provider (RooCodeInc#7602)

* fix: add cache reporting support for OpenAI-Native provider

- Add normalizeUsage method to properly extract cache tokens from Responses API
- Support both detailed token shapes (input_tokens_details) and legacy fields
- Calculate cache read/write tokens with proper fallbacks
- Include reasoning tokens when available in output_tokens_details
- Ensure accurate cost calculation using uncached input tokens

This fixes the issue where caching information was not being reported
when using the OpenAI-Native provider with the Responses API.

* fix: improve cache token normalization and add comprehensive tests

- Add fallback to derive total input tokens from details when totals are missing
- Remove unused convertToOpenAiMessages import
- Add comment explaining cost calculation alignment with Gemini provider
- Add comprehensive test coverage for normalizeUsage method covering:
  - Detailed token shapes with cached/miss tokens
  - Legacy field names and SSE-only events
  - Edge cases including missing totals with details-only
  - Cost calculation with uncached input tokens

* fix: address PR review comments

- Remove incorrect fallback to missFromDetails for cache write tokens
- Fix cost calculation to pass total input tokens (calculateApiCostOpenAI handles subtraction)
- Improve readability by extracting cache detail checks to intermediate variables
- Remove redundant ?? undefined
- Update tests to reflect correct behavior (miss tokens are not cache writes)
- Add clarifying comments about cache miss vs cache write tokens

* feat: add auto-approve support for MCP access_resource tool (RooCodeInc#7606)

* Move message queue to the extension host (RooCodeInc#7604)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Send custom modes to the extension bridge (RooCodeInc#7612)

* Never give up in socket transport (RooCodeInc#7616)

* Fix socket-io client event handling (RooCodeInc#7618)

* More socket-io client fixes from PR feedback (RooCodeInc#7619)

* More socket-io client logging improvements (RooCodeInc#7620)

* Publish subtask events (RooCodeInc#7626)

* Update chutes.ts to add Qwen3 235B A22B Thinking 2507 model (RooCodeInc#7578)

Co-authored-by: Matt Rubens <[email protected]>

* chore: add changeset for v3.26.5 (RooCodeInc#7628)

* Update contributors list (RooCodeInc#7629)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7630)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add run_slash_command tool for executing slash commands (RooCodeInc#7473)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Focus the extension when receiving bridge commands (RooCodeInc#7633)

* Release: v1.73.0 (RooCodeInc#7636)

* Cloud: remove extension_bridge_enabled for personal users (RooCodeInc#7638)

* Publish token usage metrics (RooCodeInc#7637)

* fix: preserve scroll position when switching tabs in settings (RooCodeInc#7587)

* fix: preserve scroll position when switching tabs in settings

* ui(settings): restore scroll synchronously to prevent flicker; dx(ui): name TabContent for clearer DevTools

---------

Co-authored-by: Daniel Riccio <[email protected]>

* feat: add Kimi K2 Turbo model configuration to moonshotModels (RooCodeInc#7593)

* feat: add Kimi K2 Turbo model configuration to moonshotModels

* feat: update Kimi K2 Turbo pricing and cache read prices

* fix: use askApproval wrapper in insert_content and search_and_replace tools (RooCodeInc#7649)

Fixes issue where isWriteProtected was incorrectly passed as the partial flag
to task.ask(), causing "Current ask promise was ignored (#1)" error.

Both tools now use the askApproval wrapper function which correctly handles
the parameter ordering, passing undefined for progressStatus and isWriteProtected
as the fourth parameter.

Fixes RooCodeInc#7648

Co-authored-by: Roo Code <[email protected]>

* Release v3.26.6 (RooCodeInc#7650)

* Changeset version bump (RooCodeInc#7651)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Delete .github/workflows/discord-pr-notify.yml

* Remove unused slack notif (RooCodeInc#7655)

* Handle zsh process substitution correctly (RooCodeInc#7658)

* Handle zsh glob qualifiers correctly (RooCodeInc#7667)

* Minor zh-TW Traditional Chinese locale typo fix (RooCodeInc#7672)

* feat: Add DeepInfra as a model provider in Roo Code (RooCodeInc#7677)

* fix: validate MCP tool exists before execution (RooCodeInc#7632)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* fix: add error transform to cryptic openAI SDK errors when API key is invalid (RooCodeInc#7586)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: OpenAI Responses API service tiers (flex/priority) — UI selector, pricing, and tests (RooCodeInc#7646)

Co-authored-by: Daniel Riccio <[email protected]>

* fix: prevent countdown timer from showing in history for answered follow-up questions (RooCodeInc#7686)

* fix: Fix the issue of Moonshot's maximum return token count being limited to 1024 (RooCodeInc#7673)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* feat: update kimi-k2-0905-preview and kimi-k2-turbo-preview (RooCodeInc#7663)

* Fix test

* Release v3.26.7 (RooCodeInc#7691)

* Delete .changeset/petite-rats-admire.md

* feat: Add Kimi K2 0905 model to Groq, Moonshot, and Fireworks providers (RooCodeInc#7693)

* Use an allowlist to keep the prompt default shell sane (RooCodeInc#7681)

* Changeset version bump (RooCodeInc#7690)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Fix: Improve WelcomeView styling and readability (RooCodeInc#7682)

* fix: improve WelcomeView styling and readability

- Reduced excessive padding from p-16 to p-6
- Removed excessive bold text throughout
- Made provider cards more compact with smaller icons (32x32px)
- Increased introduction text size from text-sm to text-base for better visibility
- Centered the main greeting title
- Improved visual hierarchy with proper text sizing and spacing
- Added subtle borders and improved color contrast

* fix: remove undefined color class from incentive text

Removed the text-vscode-warningForeground class as it wasn't defined in index.css. The incentive text now uses default color which looks good.

* feat: add Kimi K2-0905 model to Chutes provider (RooCodeInc#7701)

Co-authored-by: Roo Code <[email protected]>

* fix: handle array paths from VSCode terminal profiles (RooCodeInc#7697)

* fix: handle array paths from VSCode terminal profiles

- Updated terminal profile interfaces to support string | string[] for path property
- Added normalizeShellPath helper to safely extract first element from array paths
- Modified isShellAllowed to handle both string and array inputs
- Updated getWindowsShellFromVSCode, getMacShellFromVSCode, and getLinuxShellFromVSCode to use normalizeShellPath
- Added comprehensive tests for array path handling

Fixes RooCodeInc#7695

* feat: add validateShellPath export for robust shell validation

- Created validateShellPath as a public API for shell path validation
- Refactored internal validation logic into isShellAllowedInternal
- Added comprehensive test coverage for all edge cases
- Maintains backward compatibility with deprecated isShellAllowed
- Handles arrays, strings, null, undefined, and nested arrays gracefully

* Simplify roomote's work a little

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Edit/Delete User Message (RooCodeInc#7447)

* fix: prevent stack overflow in codebase indexing for large projects (RooCodeInc#7712)

* fix: identify mcp and slash command config path in multiple folder workspace (RooCodeInc#6904)

* fix: resolve CI e2e test ETIMEDOUT errors when downloading VS Code (RooCodeInc#7583)

* fix: Tackling Race/State condition issue by Changing the Code Design for Gemini Grounding Sources (RooCodeInc#7434)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: preserve context by retrying with full conversation on invalid previous_response_id (RooCodeInc#7714)

* chore: add changeset for v3.26.8 (RooCodeInc#7715)

* feat(checkpoints): create checkpoint when user sends a message (RooCodeInc#7713)

* feat(checkpoints): create checkpoint on user message send

* fix(checkpoints): suppress implicit user-message checkpoint row; keep current checkpoint updated without a chat row

* Fix checkpoint suppression for user messages

- Propagate suppressMessage flag through event chain properly
- Update ChatView to check checkpoint metadata for suppressMessage flag
- Ensure checkpoint messages are created but not rendered when suppressed
- Fix bug where checkpointSave(false) should have been checkpointSave(true)

* fix: only create checkpoint on user message when files have changed

- Changed allowEmpty from true to false in checkpointSave call
- Checkpoints will now only be created when there are actual file changes
- This avoids creating empty commits in the shadow git repository

* test: update checkpoint test to include suppressMessage parameter

- Fixed test expectation to match the new function signature
- saveCheckpoint now expects both allowEmpty and suppressMessage parameters

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Bump to 3.27.0 (RooCodeInc#7719)

* Changeset version bump (RooCodeInc#7716)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix: update DeepSeek pricing to new unified rates effective Sept 5, 2025 (RooCodeInc#7687)

- Updated deepseek-chat pricing: $0.56 input (cache miss), $0.07 (cache hit), $1.68 output
- Updated deepseek-reasoner pricing: same unified rates as deepseek-chat
- Both models now have identical pricing as per DeepSeek announcement
- Pricing takes effect at 16:00 UTC, Sept 5th, 2025

Fixes RooCodeInc#7685

Co-authored-by: Roo Code <[email protected]>

* feat: replace cloud waitlist ad with direct Cloud link in navigation (RooCodeInc#7742)

Co-authored-by: Roo Code <[email protected]>

* feat: show dash instead of zero for missing data on evals page (RooCodeInc#7748)

Co-authored-by: Roo Code <[email protected]>

* Feature/update vertex ai models and regions (RooCodeInc#7727)

* Add model info to eval runs table (RooCodeInc#7749)

* chore(deps): update dependency eslint-config-prettier to v10.1.8 (RooCodeInc#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency esbuild to v0.25.9 (RooCodeInc#5455)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @changesets/cli to v2.29.6 (RooCodeInc#7376)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency nock to v14.0.10 (RooCodeInc#6465)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint-plugin-turbo to v2.5.6 (RooCodeInc#7764)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* refactor(utils): simplify shell detection logic

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* test: update shell detection test expectation and mocks

* test: add mock cleanup in shell detection tests

* test: update shell detection tests to prioritize PowerShell 7

* fix(workspace-event-monitor): increase max retries and improve retry logic

* refactor(codebase): improve error handling and workspace validation

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* test: change console.error to console.warn in tests

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* test: enhance vscode mock implementations and error handling

* feat(chat): replace edit button with copy functionality

* refactor(core): enhance binary file detection and encoding handling

* separate task sync roomote control (RooCodeInc#7799)

* feat: separate Task Sync and Roomote Control settings

- Add new taskSyncEnabled setting to control task content syncing
- Keep remoteControlEnabled for Roomote Control functionality
- Task Sync controls whether task content is sent to cloud
- Roomote Control controls whether cloud can send instructions back
- Roomote Control now depends on Task Sync being enabled
- Usage metrics (tokens, cost) always reported regardless of settings
- Update UI with two separate toggles and clear descriptions
- Add info text explaining usage metrics are always reported

* feat: add missing translations for Task Sync and Roomote Control settings

- Added taskSync, taskSyncDescription, remoteControlRequiresTaskSync, and usageMetricsAlwaysReported keys to all non-English cloud.json files
- Updated cloudBenefit keys to match English structure
- Ensured all languages have consistent translation keys for the new Task Sync and Roomote Control features

* Cloud: cleanup taskSyncEnabled additions

* fix: correct indentation localization files

---------

Co-authored-by: Roo Code <[email protected]>

* feat: In-extension dismissible upsells for Roo Code Cloud (RooCodeInc#7850)

* First pass at separate upsell dialog

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* feat: add DismissibleUpsell component for dismissible messages

- Created DismissibleUpsell component with variant support (banner/default)
- Added dismissedUpsells to GlobalState for persistence
- Implemented message handlers for dismissing and retrieving dismissed upsells
- Added comprehensive tests for the component
- Uses VSCode extension globalState for persistent storage

* fix: Apply PR feedback for DismissibleUpsell component

- Changed from className to separate 'id' and 'className' props for better semantics
- Added i18n support for accessibility labels (aria-label and title)
- Fixed memory leak by adding mounted flag to prevent state updates after unmount
- Fixed race condition by sending dismiss message before hiding component
- Fixed inefficient array operations in webviewMessageHandler
- Added comprehensive test coverage for edge cases including:
  - Multiple rapid dismissals
  - Component unmounting during async operations
  - Invalid/malformed message handling
  - Proper message sending before unmount
- Added null checks for message data to handle edge cases gracefully

* New Cloud upsell dialog in task share and cloud view, shared component

* Properly working DismissibleUpsell

* Working upsell for long-running tasks

* CTA in AutoApproveMenu

* Home page CTA

* Fixes the autoapprove upsell and some tests

* Visual and copy fixes

* Test fix

* Translations

* Stray className attribute

* Cloud view fixes in a left-aligned layout

* Removes unnecessary test

* Less flaky tests

* Fixes sharebutton behavior and updates associated tests

* Update webview-ui/src/i18n/locales/it/cloud.json

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Fix dismissed flicker

* Fix long task upsell

---------

Co-authored-by: Daniel <[email protected]>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* v3.28.0 (RooCodeInc#7858)

* Changeset version bump (RooCodeInc#7859)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat(chat): add chat search functionality with highlighting

* feat: show notification when the checkpoint initialization fails (RooCodeInc#7766)

Co-authored-by: daniel-lxs <[email protected]>

* Bust cache in generated image preview (RooCodeInc#7860)

Co-authored-by: Roo Code <[email protected]>

* test: disable TaskHeader upsell tests

* test: refactor TaskHeader test file

---------

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Josh <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: mrubens <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: Piotr Wilkin (ilintar) <[email protected]>
Co-authored-by: Christiaan Arnoldus <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mohammad Danaee nia <[email protected]>
Co-authored-by: 淡草 <[email protected]>
Co-authored-by: WangXiaolong <[email protected]>
Co-authored-by: Peter Dave Hello <[email protected]>
Co-authored-by: Thach Nguyen <[email protected]>
Co-authored-by: CellenLee <[email protected]>
Co-authored-by: NaccOll <[email protected]>
Co-authored-by: Ton Hoang Nguyen (Bill) <[email protected]>
Co-authored-by: ssweens <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ItsOnlyBinary <[email protected]>
mini2s added a commit to zgsm-ai/costrict that referenced this pull request Sep 12, 2025
* Follow symlinks in rooignore checks (RooCodeInc#7405)

* Sonic -> Grok Code Fast (RooCodeInc#7426)

* chore: add changeset for v3.26.0 (RooCodeInc#7428)

* Changeset version bump (RooCodeInc#7429)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: Add Vercel AI Gateway provider integration (RooCodeInc#7396)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>

* feat: Enable on-disk storage for Qdrant vectors and HNSW index (RooCodeInc#7182)

* fix: use anthropic protocol for token counting when using anthropic models via Vercel AI Gateway (RooCodeInc#7433)

- Added condition in getApiProtocol to return 'anthropic' for vercel-ai-gateway when modelId starts with 'anthropic/'
- Added tests for Vercel AI Gateway provider protocol detection

This ensures proper token counting for Anthropic models accessed through Vercel AI Gateway, as Anthropic and OpenAI count tokens differently (Anthropic excludes cache tokens from input count, OpenAI includes them).

* fix: remove duplicate cache display in task header (RooCodeInc#7443)

* Random chat text area cleanup (RooCodeInc#7436)

* Update @roo-code/cloud to enable roomote control for cloud agents (RooCodeInc#7446)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Always set remoteControlEnabled to true for cloud agents (RooCodeInc#7448)

* chore: add changeset for v3.26.1 (RooCodeInc#7459)

* feat: show model ID in API configuration dropdown (RooCodeInc#7423)

* feat: update tooltip component to match native VSCode tooltip shadow styling (RooCodeInc#7457)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: cte <[email protected]>

* Add support for Vercel embeddings (RooCodeInc#7445)

Co-authored-by: daniel-lxs <[email protected]>

* Remove dot before model display (RooCodeInc#7461)

* Update contributors list (RooCodeInc#7109)

Co-authored-by: mrubens <[email protected]>

* Update 3.26.1 changeset (RooCodeInc#7463)

* Changeset version bump (RooCodeInc#7460)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Add type for RooCodeEventName.TaskSpawned (RooCodeInc#7465)

* fix: hide .rooignore'd files from environment details by default (RooCodeInc#7369)

* fix: change default showRooIgnoredFiles to false to hide ignored files

- Changed default value from true to false across all files
- Updated tests to reflect the new default behavior
- This prevents ignored files from appearing in environment details

Fixes RooCodeInc#7368

* fix: update tests to match new showRooIgnoredFiles default

* fix: update test expectation to match new showRooIgnoredFiles default value

The PR changed the default value of showRooIgnoredFiles from true to false,
so the test needs to expect false instead of true when calling formatFilesList.

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: exclude browser scroll actions from repetition detection (RooCodeInc#7471)

- Modified ToolRepetitionDetector to skip repetition detection for browser_action scroll_down and scroll_up actions
- Added isBrowserScrollAction() helper method to identify scroll actions
- Added comprehensive tests for the new behavior
- Fixes issue where multiple scroll actions were incorrectly flagged as being stuck in a loop

Resolves: RooCodeInc#7470

Co-authored-by: Roo Code <[email protected]>

* Fix GPT-5 Responses API issues with condensing and image support (RooCodeInc#7067)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>

* Bump cloud to 0.25.0 (RooCodeInc#7475)

* feat: add image generation tool with OpenRouter integration (RooCodeInc#7474)

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: cte <[email protected]>

* Make the default image filename more generic (RooCodeInc#7479)

* Release v3.26.2 (RooCodeInc#7490)

* Support free imagegen (RooCodeInc#7493)

* feat: update OpenRouter API to support input/output modalities and filter image generation models (RooCodeInc#7492)

* Add padding to image model picker (RooCodeInc#7494)

* fix: prevent dirty state on initial mount in ImageGenerationSettings (RooCodeInc#7495)

* Changeset version bump (RooCodeInc#7491)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Show console logging in vitests when the --no-silent flag is set (RooCodeInc#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 <[email protected]>

* Move @roo-code/cloud to the Roo-Code repo (RooCodeInc#7503)

* Refactor the extension bridge (RooCodeInc#7515)

* Implement deferred task subscriptions (RooCodeInc#7517)

* feat: add optional input image parameter to image generation tool (RooCodeInc#7525)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: sync extension bridge settings with cloud (RooCodeInc#7535)

- Use CloudService.getUserSettings() for remoteControlEnabled instead of global state
- Update CloudService.updateUserSettings when toggling remote control
- Add BridgeOrchestrator.connectOrDisconnect handling in settings update handler
- Remove dependency on contentProxy/globalSettings for remote control state
---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* refactor: flatten image generation settings structure (RooCodeInc#7536)

* chore: add changeset for v3.26.3 (RooCodeInc#7541)

* Changeset version bump (RooCodeInc#7542)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Mode and provider profile selector (RooCodeInc#7545)

* Putting the Roo in Roo-leases (RooCodeInc#7546)

* Fix evals (RooCodeInc#7547)

* fix: special tokens should not break task processing (RooCodeInc#7540)

* docs: update PR template branding from Roo Code to Costrict

* feat: optimize memory usage for image handling in webview (RooCodeInc#7556)

* feat: optimize memory usage for image handling in webview

- Replace base64 image data with webview URIs to reduce memory footprint
- Add proper resource roots to webview for workspace file access
- Implement convertToWebviewUri method for safe file-to-URI conversion
- Update ImageViewer to handle both webview URIs and file paths separately
- Add image message type for proper image rendering in chat
- Improve error handling and display for failed image loads
- Add comprehensive tests for ImageViewer component
- Format display paths as relative for better readability

This change significantly reduces memory usage by avoiding base64 encoding
of images and instead using VSCode's webview URI system for direct file
access. Images are now loaded on-demand from disk rather than being held
in memory as base64 strings.

* fix: address PR review comments

- Use safeJsonParse instead of JSON.parse in ChatRow.tsx
- Add type definition for parsed image info
- Add more specific error types in ClineProvider.ts
- Add comprehensive JSDoc comments to ImageBlock.tsx
- Improve error handling and type safety

* fix: address MrUbens' review comments

- Remove hardcoded 'rc1' pattern in formatDisplayPath, use generic workspace detection
- Internationalize 'No image data' text using i18n system

* chore: remove useless comment

* chore(i18n): add image.noData to all locales to fix translation check

* test: update ImageViewer.spec to align with i18n key and flexible path formatting

* feat: rename Account tab to Cloud tab (RooCodeInc#7558)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add Ollama API key support for Turbo mode (RooCodeInc#7425)

* feat: add Ollama API key support for Turbo mode

- Add ollamaApiKey field to ProviderSettings schema
- Add ollamaApiKey to SECRET_STATE_KEYS for secure storage
- Update Ollama and NativeOllama providers to use API key for authentication
- Add UI field for Ollama API key (shown when custom base URL is provided)
- Add test coverage for API key functionality

This enables users to use Ollama Turbo with datacenter-grade hardware by providing an API key for authenticated Ollama instances or cloud services.

* fix: use VSCodeTextField for Ollama API key field

Remove non-existent ApiKeyField import and use standard VSCodeTextField with password type, matching other provider implementations

* Add missing translation keys for Ollama API key support

- Add providers.ollama.apiKey and providers.ollama.apiKeyHelp to all 18 language files
- Support for authenticated Ollama instances and cloud services
- Relates to PR RooCodeInc#7425

* refactor: improve type safety for Ollama client configuration

- Replace 'any' type with proper OllamaOptions (Config) type
- Import Config type from ollama package for better type checking

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Disconnect extension bridge on logout (RooCodeInc#7563)

* Disconnect extension bridge on logout

* Remove bad test

* Cleanup

* Fix claudeCode.notFound translation key (RooCodeInc#7571)

I think I saw someone post a screenshot where "errors.claudeCode.notFound" was shown untranslated.

* v3.26.4 (RooCodeInc#7579)

* Update contributors list (RooCodeInc#7462)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7580)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add configurable embedding batch size for code indexing (RooCodeInc#7464)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Shows a pill with the base Roo Code Cloud URL when not pointing to pr… (RooCodeInc#7555)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Cloud: fix provider syncing (RooCodeInc#7603)

ClineProvider creation was moved before CloudService which broke
the old way of doing things.

* fix: add cache reporting support for OpenAI-Native provider (RooCodeInc#7602)

* fix: add cache reporting support for OpenAI-Native provider

- Add normalizeUsage method to properly extract cache tokens from Responses API
- Support both detailed token shapes (input_tokens_details) and legacy fields
- Calculate cache read/write tokens with proper fallbacks
- Include reasoning tokens when available in output_tokens_details
- Ensure accurate cost calculation using uncached input tokens

This fixes the issue where caching information was not being reported
when using the OpenAI-Native provider with the Responses API.

* fix: improve cache token normalization and add comprehensive tests

- Add fallback to derive total input tokens from details when totals are missing
- Remove unused convertToOpenAiMessages import
- Add comment explaining cost calculation alignment with Gemini provider
- Add comprehensive test coverage for normalizeUsage method covering:
  - Detailed token shapes with cached/miss tokens
  - Legacy field names and SSE-only events
  - Edge cases including missing totals with details-only
  - Cost calculation with uncached input tokens

* fix: address PR review comments

- Remove incorrect fallback to missFromDetails for cache write tokens
- Fix cost calculation to pass total input tokens (calculateApiCostOpenAI handles subtraction)
- Improve readability by extracting cache detail checks to intermediate variables
- Remove redundant ?? undefined
- Update tests to reflect correct behavior (miss tokens are not cache writes)
- Add clarifying comments about cache miss vs cache write tokens

* feat: add auto-approve support for MCP access_resource tool (RooCodeInc#7606)

* Move message queue to the extension host (RooCodeInc#7604)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Send custom modes to the extension bridge (RooCodeInc#7612)

* Never give up in socket transport (RooCodeInc#7616)

* Fix socket-io client event handling (RooCodeInc#7618)

* More socket-io client fixes from PR feedback (RooCodeInc#7619)

* More socket-io client logging improvements (RooCodeInc#7620)

* Publish subtask events (RooCodeInc#7626)

* Update chutes.ts to add Qwen3 235B A22B Thinking 2507 model (RooCodeInc#7578)

Co-authored-by: Matt Rubens <[email protected]>

* chore: add changeset for v3.26.5 (RooCodeInc#7628)

* Update contributors list (RooCodeInc#7629)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7630)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add run_slash_command tool for executing slash commands (RooCodeInc#7473)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Focus the extension when receiving bridge commands (RooCodeInc#7633)

* Release: v1.73.0 (RooCodeInc#7636)

* Cloud: remove extension_bridge_enabled for personal users (RooCodeInc#7638)

* Publish token usage metrics (RooCodeInc#7637)

* fix: preserve scroll position when switching tabs in settings (RooCodeInc#7587)

* fix: preserve scroll position when switching tabs in settings

* ui(settings): restore scroll synchronously to prevent flicker; dx(ui): name TabContent for clearer DevTools

---------

Co-authored-by: Daniel Riccio <[email protected]>

* feat: add Kimi K2 Turbo model configuration to moonshotModels (RooCodeInc#7593)

* feat: add Kimi K2 Turbo model configuration to moonshotModels

* feat: update Kimi K2 Turbo pricing and cache read prices

* fix: use askApproval wrapper in insert_content and search_and_replace tools (RooCodeInc#7649)

Fixes issue where isWriteProtected was incorrectly passed as the partial flag
to task.ask(), causing "Current ask promise was ignored (#1)" error.

Both tools now use the askApproval wrapper function which correctly handles
the parameter ordering, passing undefined for progressStatus and isWriteProtected
as the fourth parameter.

Fixes RooCodeInc#7648

Co-authored-by: Roo Code <[email protected]>

* Release v3.26.6 (RooCodeInc#7650)

* Changeset version bump (RooCodeInc#7651)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Delete .github/workflows/discord-pr-notify.yml

* Remove unused slack notif (RooCodeInc#7655)

* Handle zsh process substitution correctly (RooCodeInc#7658)

* Handle zsh glob qualifiers correctly (RooCodeInc#7667)

* Minor zh-TW Traditional Chinese locale typo fix (RooCodeInc#7672)

* feat: Add DeepInfra as a model provider in Roo Code (RooCodeInc#7677)

* fix: validate MCP tool exists before execution (RooCodeInc#7632)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* fix: add error transform to cryptic openAI SDK errors when API key is invalid (RooCodeInc#7586)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: OpenAI Responses API service tiers (flex/priority) — UI selector, pricing, and tests (RooCodeInc#7646)

Co-authored-by: Daniel Riccio <[email protected]>

* fix: prevent countdown timer from showing in history for answered follow-up questions (RooCodeInc#7686)

* fix: Fix the issue of Moonshot's maximum return token count being limited to 1024 (RooCodeInc#7673)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* feat: update kimi-k2-0905-preview and kimi-k2-turbo-preview (RooCodeInc#7663)

* Fix test

* Release v3.26.7 (RooCodeInc#7691)

* Delete .changeset/petite-rats-admire.md

* feat: Add Kimi K2 0905 model to Groq, Moonshot, and Fireworks providers (RooCodeInc#7693)

* Use an allowlist to keep the prompt default shell sane (RooCodeInc#7681)

* Changeset version bump (RooCodeInc#7690)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Fix: Improve WelcomeView styling and readability (RooCodeInc#7682)

* fix: improve WelcomeView styling and readability

- Reduced excessive padding from p-16 to p-6
- Removed excessive bold text throughout
- Made provider cards more compact with smaller icons (32x32px)
- Increased introduction text size from text-sm to text-base for better visibility
- Centered the main greeting title
- Improved visual hierarchy with proper text sizing and spacing
- Added subtle borders and improved color contrast

* fix: remove undefined color class from incentive text

Removed the text-vscode-warningForeground class as it wasn't defined in index.css. The incentive text now uses default color which looks good.

* feat: add Kimi K2-0905 model to Chutes provider (RooCodeInc#7701)

Co-authored-by: Roo Code <[email protected]>

* fix: handle array paths from VSCode terminal profiles (RooCodeInc#7697)

* fix: handle array paths from VSCode terminal profiles

- Updated terminal profile interfaces to support string | string[] for path property
- Added normalizeShellPath helper to safely extract first element from array paths
- Modified isShellAllowed to handle both string and array inputs
- Updated getWindowsShellFromVSCode, getMacShellFromVSCode, and getLinuxShellFromVSCode to use normalizeShellPath
- Added comprehensive tests for array path handling

Fixes RooCodeInc#7695

* feat: add validateShellPath export for robust shell validation

- Created validateShellPath as a public API for shell path validation
- Refactored internal validation logic into isShellAllowedInternal
- Added comprehensive test coverage for all edge cases
- Maintains backward compatibility with deprecated isShellAllowed
- Handles arrays, strings, null, undefined, and nested arrays gracefully

* Simplify roomote's work a little

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Edit/Delete User Message (RooCodeInc#7447)

* fix: prevent stack overflow in codebase indexing for large projects (RooCodeInc#7712)

* fix: identify mcp and slash command config path in multiple folder workspace (RooCodeInc#6904)

* fix: resolve CI e2e test ETIMEDOUT errors when downloading VS Code (RooCodeInc#7583)

* fix: Tackling Race/State condition issue by Changing the Code Design for Gemini Grounding Sources (RooCodeInc#7434)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: preserve context by retrying with full conversation on invalid previous_response_id (RooCodeInc#7714)

* chore: add changeset for v3.26.8 (RooCodeInc#7715)

* feat(checkpoints): create checkpoint when user sends a message (RooCodeInc#7713)

* feat(checkpoints): create checkpoint on user message send

* fix(checkpoints): suppress implicit user-message checkpoint row; keep current checkpoint updated without a chat row

* Fix checkpoint suppression for user messages

- Propagate suppressMessage flag through event chain properly
- Update ChatView to check checkpoint metadata for suppressMessage flag
- Ensure checkpoint messages are created but not rendered when suppressed
- Fix bug where checkpointSave(false) should have been checkpointSave(true)

* fix: only create checkpoint on user message when files have changed

- Changed allowEmpty from true to false in checkpointSave call
- Checkpoints will now only be created when there are actual file changes
- This avoids creating empty commits in the shadow git repository

* test: update checkpoint test to include suppressMessage parameter

- Fixed test expectation to match the new function signature
- saveCheckpoint now expects both allowEmpty and suppressMessage parameters

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Bump to 3.27.0 (RooCodeInc#7719)

* Changeset version bump (RooCodeInc#7716)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix: update DeepSeek pricing to new unified rates effective Sept 5, 2025 (RooCodeInc#7687)

- Updated deepseek-chat pricing: $0.56 input (cache miss), $0.07 (cache hit), $1.68 output
- Updated deepseek-reasoner pricing: same unified rates as deepseek-chat
- Both models now have identical pricing as per DeepSeek announcement
- Pricing takes effect at 16:00 UTC, Sept 5th, 2025

Fixes RooCodeInc#7685

Co-authored-by: Roo Code <[email protected]>

* feat: replace cloud waitlist ad with direct Cloud link in navigation (RooCodeInc#7742)

Co-authored-by: Roo Code <[email protected]>

* feat: show dash instead of zero for missing data on evals page (RooCodeInc#7748)

Co-authored-by: Roo Code <[email protected]>

* Feature/update vertex ai models and regions (RooCodeInc#7727)

* Add model info to eval runs table (RooCodeInc#7749)

* chore(deps): update dependency eslint-config-prettier to v10.1.8 (RooCodeInc#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency esbuild to v0.25.9 (RooCodeInc#5455)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @changesets/cli to v2.29.6 (RooCodeInc#7376)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency nock to v14.0.10 (RooCodeInc#6465)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint-plugin-turbo to v2.5.6 (RooCodeInc#7764)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* refactor(utils): simplify shell detection logic

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* test: update shell detection test expectation and mocks

* test: add mock cleanup in shell detection tests

* test: update shell detection tests to prioritize PowerShell 7

* fix(workspace-event-monitor): increase max retries and improve retry logic

* refactor(codebase): improve error handling and workspace validation

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* test: change console.error to console.warn in tests

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* test: enhance vscode mock implementations and error handling

* feat(chat): replace edit button with copy functionality

* refactor(core): enhance binary file detection and encoding handling

* separate task sync roomote control (RooCodeInc#7799)

* feat: separate Task Sync and Roomote Control settings

- Add new taskSyncEnabled setting to control task content syncing
- Keep remoteControlEnabled for Roomote Control functionality
- Task Sync controls whether task content is sent to cloud
- Roomote Control controls whether cloud can send instructions back
- Roomote Control now depends on Task Sync being enabled
- Usage metrics (tokens, cost) always reported regardless of settings
- Update UI with two separate toggles and clear descriptions
- Add info text explaining usage metrics are always reported

* feat: add missing translations for Task Sync and Roomote Control settings

- Added taskSync, taskSyncDescription, remoteControlRequiresTaskSync, and usageMetricsAlwaysReported keys to all non-English cloud.json files
- Updated cloudBenefit keys to match English structure
- Ensured all languages have consistent translation keys for the new Task Sync and Roomote Control features

* Cloud: cleanup taskSyncEnabled additions

* fix: correct indentation localization files

---------

Co-authored-by: Roo Code <[email protected]>

* feat: In-extension dismissible upsells for Roo Code Cloud (RooCodeInc#7850)

* First pass at separate upsell dialog

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* feat: add DismissibleUpsell component for dismissible messages

- Created DismissibleUpsell component with variant support (banner/default)
- Added dismissedUpsells to GlobalState for persistence
- Implemented message handlers for dismissing and retrieving dismissed upsells
- Added comprehensive tests for the component
- Uses VSCode extension globalState for persistent storage

* fix: Apply PR feedback for DismissibleUpsell component

- Changed from className to separate 'id' and 'className' props for better semantics
- Added i18n support for accessibility labels (aria-label and title)
- Fixed memory leak by adding mounted flag to prevent state updates after unmount
- Fixed race condition by sending dismiss message before hiding component
- Fixed inefficient array operations in webviewMessageHandler
- Added comprehensive test coverage for edge cases including:
  - Multiple rapid dismissals
  - Component unmounting during async operations
  - Invalid/malformed message handling
  - Proper message sending before unmount
- Added null checks for message data to handle edge cases gracefully

* New Cloud upsell dialog in task share and cloud view, shared component

* Properly working DismissibleUpsell

* Working upsell for long-running tasks

* CTA in AutoApproveMenu

* Home page CTA

* Fixes the autoapprove upsell and some tests

* Visual and copy fixes

* Test fix

* Translations

* Stray className attribute

* Cloud view fixes in a left-aligned layout

* Removes unnecessary test

* Less flaky tests

* Fixes sharebutton behavior and updates associated tests

* Update webview-ui/src/i18n/locales/it/cloud.json

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Fix dismissed flicker

* Fix long task upsell

---------

Co-authored-by: Daniel <[email protected]>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* v3.28.0 (RooCodeInc#7858)

* Changeset version bump (RooCodeInc#7859)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat(chat): add chat search functionality with highlighting

* feat: show notification when the checkpoint initialization fails (RooCodeInc#7766)

Co-authored-by: daniel-lxs <[email protected]>

* Bust cache in generated image preview (RooCodeInc#7860)

Co-authored-by: Roo Code <[email protected]>

* test: disable TaskHeader upsell tests

* test: refactor TaskHeader test file

* feat: Add cloud task button for opening tasks in Roo Code Cloud (RooCodeInc#7572)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>

* fix: center active mode in selector dropdown on open (RooCodeInc#7883)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Make Posthog telemetry the default (RooCodeInc#7909)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Fix: Preserve first message during conversation condensing (RooCodeInc#7910)

* In-app announcement for Roo Code Cloud (RooCodeInc#7914)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* chore: add changeset for v3.28.1 (RooCodeInc#7916)

* Changeset version bump (RooCodeInc#7917)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Remove Roo Code 3.25 release announcement

Removed the section about Roo Code 3.25 release notes.

* fix: restrict @-mention parsing to line-start or whitespace boundaries (RooCodeInc#7876)

Co-authored-by: Roo Code <[email protected]>

* Fix message queue re-queue loop in Task.ask() (RooCodeInc#7823)

---------

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Josh <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: mrubens <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: Piotr Wilkin (ilintar) <[email protected]>
Co-authored-by: Christiaan Arnoldus <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mohammad Danaee nia <[email protected]>
Co-authored-by: 淡草 <[email protected]>
Co-authored-by: WangXiaolong <[email protected]>
Co-authored-by: Peter Dave Hello <[email protected]>
Co-authored-by: Thach Nguyen <[email protected]>
Co-authored-by: CellenLee <[email protected]>
Co-authored-by: NaccOll <[email protected]>
Co-authored-by: Ton Hoang Nguyen (Bill) <[email protected]>
Co-authored-by: ssweens <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
mini2s added a commit to zgsm-ai/costrict that referenced this pull request Sep 13, 2025
* Follow symlinks in rooignore checks (RooCodeInc#7405)

* Sonic -> Grok Code Fast (RooCodeInc#7426)

* chore: add changeset for v3.26.0 (RooCodeInc#7428)

* Changeset version bump (RooCodeInc#7429)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: Add Vercel AI Gateway provider integration (RooCodeInc#7396)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>

* feat: Enable on-disk storage for Qdrant vectors and HNSW index (RooCodeInc#7182)

* fix: use anthropic protocol for token counting when using anthropic models via Vercel AI Gateway (RooCodeInc#7433)

- Added condition in getApiProtocol to return 'anthropic' for vercel-ai-gateway when modelId starts with 'anthropic/'
- Added tests for Vercel AI Gateway provider protocol detection

This ensures proper token counting for Anthropic models accessed through Vercel AI Gateway, as Anthropic and OpenAI count tokens differently (Anthropic excludes cache tokens from input count, OpenAI includes them).

* fix: remove duplicate cache display in task header (RooCodeInc#7443)

* Random chat text area cleanup (RooCodeInc#7436)

* Update @roo-code/cloud to enable roomote control for cloud agents (RooCodeInc#7446)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Always set remoteControlEnabled to true for cloud agents (RooCodeInc#7448)

* chore: add changeset for v3.26.1 (RooCodeInc#7459)

* feat: show model ID in API configuration dropdown (RooCodeInc#7423)

* feat: update tooltip component to match native VSCode tooltip shadow styling (RooCodeInc#7457)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: cte <[email protected]>

* Add support for Vercel embeddings (RooCodeInc#7445)

Co-authored-by: daniel-lxs <[email protected]>

* Remove dot before model display (RooCodeInc#7461)

* Update contributors list (RooCodeInc#7109)

Co-authored-by: mrubens <[email protected]>

* Update 3.26.1 changeset (RooCodeInc#7463)

* Changeset version bump (RooCodeInc#7460)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Add type for RooCodeEventName.TaskSpawned (RooCodeInc#7465)

* fix: hide .rooignore'd files from environment details by default (RooCodeInc#7369)

* fix: change default showRooIgnoredFiles to false to hide ignored files

- Changed default value from true to false across all files
- Updated tests to reflect the new default behavior
- This prevents ignored files from appearing in environment details

Fixes RooCodeInc#7368

* fix: update tests to match new showRooIgnoredFiles default

* fix: update test expectation to match new showRooIgnoredFiles default value

The PR changed the default value of showRooIgnoredFiles from true to false,
so the test needs to expect false instead of true when calling formatFilesList.

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: exclude browser scroll actions from repetition detection (RooCodeInc#7471)

- Modified ToolRepetitionDetector to skip repetition detection for browser_action scroll_down and scroll_up actions
- Added isBrowserScrollAction() helper method to identify scroll actions
- Added comprehensive tests for the new behavior
- Fixes issue where multiple scroll actions were incorrectly flagged as being stuck in a loop

Resolves: RooCodeInc#7470

Co-authored-by: Roo Code <[email protected]>

* Fix GPT-5 Responses API issues with condensing and image support (RooCodeInc#7067)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>

* Bump cloud to 0.25.0 (RooCodeInc#7475)

* feat: add image generation tool with OpenRouter integration (RooCodeInc#7474)

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: cte <[email protected]>

* Make the default image filename more generic (RooCodeInc#7479)

* Release v3.26.2 (RooCodeInc#7490)

* Support free imagegen (RooCodeInc#7493)

* feat: update OpenRouter API to support input/output modalities and filter image generation models (RooCodeInc#7492)

* Add padding to image model picker (RooCodeInc#7494)

* fix: prevent dirty state on initial mount in ImageGenerationSettings (RooCodeInc#7495)

* Changeset version bump (RooCodeInc#7491)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Show console logging in vitests when the --no-silent flag is set (RooCodeInc#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 <[email protected]>

* Move @roo-code/cloud to the Roo-Code repo (RooCodeInc#7503)

* Refactor the extension bridge (RooCodeInc#7515)

* Implement deferred task subscriptions (RooCodeInc#7517)

* feat: add optional input image parameter to image generation tool (RooCodeInc#7525)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: sync extension bridge settings with cloud (RooCodeInc#7535)

- Use CloudService.getUserSettings() for remoteControlEnabled instead of global state
- Update CloudService.updateUserSettings when toggling remote control
- Add BridgeOrchestrator.connectOrDisconnect handling in settings update handler
- Remove dependency on contentProxy/globalSettings for remote control state
---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* refactor: flatten image generation settings structure (RooCodeInc#7536)

* chore: add changeset for v3.26.3 (RooCodeInc#7541)

* Changeset version bump (RooCodeInc#7542)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Mode and provider profile selector (RooCodeInc#7545)

* Putting the Roo in Roo-leases (RooCodeInc#7546)

* Fix evals (RooCodeInc#7547)

* fix: special tokens should not break task processing (RooCodeInc#7540)

* docs: update PR template branding from Roo Code to Costrict

* feat: optimize memory usage for image handling in webview (RooCodeInc#7556)

* feat: optimize memory usage for image handling in webview

- Replace base64 image data with webview URIs to reduce memory footprint
- Add proper resource roots to webview for workspace file access
- Implement convertToWebviewUri method for safe file-to-URI conversion
- Update ImageViewer to handle both webview URIs and file paths separately
- Add image message type for proper image rendering in chat
- Improve error handling and display for failed image loads
- Add comprehensive tests for ImageViewer component
- Format display paths as relative for better readability

This change significantly reduces memory usage by avoiding base64 encoding
of images and instead using VSCode's webview URI system for direct file
access. Images are now loaded on-demand from disk rather than being held
in memory as base64 strings.

* fix: address PR review comments

- Use safeJsonParse instead of JSON.parse in ChatRow.tsx
- Add type definition for parsed image info
- Add more specific error types in ClineProvider.ts
- Add comprehensive JSDoc comments to ImageBlock.tsx
- Improve error handling and type safety

* fix: address MrUbens' review comments

- Remove hardcoded 'rc1' pattern in formatDisplayPath, use generic workspace detection
- Internationalize 'No image data' text using i18n system

* chore: remove useless comment

* chore(i18n): add image.noData to all locales to fix translation check

* test: update ImageViewer.spec to align with i18n key and flexible path formatting

* feat: rename Account tab to Cloud tab (RooCodeInc#7558)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add Ollama API key support for Turbo mode (RooCodeInc#7425)

* feat: add Ollama API key support for Turbo mode

- Add ollamaApiKey field to ProviderSettings schema
- Add ollamaApiKey to SECRET_STATE_KEYS for secure storage
- Update Ollama and NativeOllama providers to use API key for authentication
- Add UI field for Ollama API key (shown when custom base URL is provided)
- Add test coverage for API key functionality

This enables users to use Ollama Turbo with datacenter-grade hardware by providing an API key for authenticated Ollama instances or cloud services.

* fix: use VSCodeTextField for Ollama API key field

Remove non-existent ApiKeyField import and use standard VSCodeTextField with password type, matching other provider implementations

* Add missing translation keys for Ollama API key support

- Add providers.ollama.apiKey and providers.ollama.apiKeyHelp to all 18 language files
- Support for authenticated Ollama instances and cloud services
- Relates to PR RooCodeInc#7425

* refactor: improve type safety for Ollama client configuration

- Replace 'any' type with proper OllamaOptions (Config) type
- Import Config type from ollama package for better type checking

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Disconnect extension bridge on logout (RooCodeInc#7563)

* Disconnect extension bridge on logout

* Remove bad test

* Cleanup

* Fix claudeCode.notFound translation key (RooCodeInc#7571)

I think I saw someone post a screenshot where "errors.claudeCode.notFound" was shown untranslated.

* v3.26.4 (RooCodeInc#7579)

* Update contributors list (RooCodeInc#7462)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7580)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add configurable embedding batch size for code indexing (RooCodeInc#7464)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Shows a pill with the base Roo Code Cloud URL when not pointing to pr… (RooCodeInc#7555)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Cloud: fix provider syncing (RooCodeInc#7603)

ClineProvider creation was moved before CloudService which broke
the old way of doing things.

* fix: add cache reporting support for OpenAI-Native provider (RooCodeInc#7602)

* fix: add cache reporting support for OpenAI-Native provider

- Add normalizeUsage method to properly extract cache tokens from Responses API
- Support both detailed token shapes (input_tokens_details) and legacy fields
- Calculate cache read/write tokens with proper fallbacks
- Include reasoning tokens when available in output_tokens_details
- Ensure accurate cost calculation using uncached input tokens

This fixes the issue where caching information was not being reported
when using the OpenAI-Native provider with the Responses API.

* fix: improve cache token normalization and add comprehensive tests

- Add fallback to derive total input tokens from details when totals are missing
- Remove unused convertToOpenAiMessages import
- Add comment explaining cost calculation alignment with Gemini provider
- Add comprehensive test coverage for normalizeUsage method covering:
  - Detailed token shapes with cached/miss tokens
  - Legacy field names and SSE-only events
  - Edge cases including missing totals with details-only
  - Cost calculation with uncached input tokens

* fix: address PR review comments

- Remove incorrect fallback to missFromDetails for cache write tokens
- Fix cost calculation to pass total input tokens (calculateApiCostOpenAI handles subtraction)
- Improve readability by extracting cache detail checks to intermediate variables
- Remove redundant ?? undefined
- Update tests to reflect correct behavior (miss tokens are not cache writes)
- Add clarifying comments about cache miss vs cache write tokens

* feat: add auto-approve support for MCP access_resource tool (RooCodeInc#7606)

* Move message queue to the extension host (RooCodeInc#7604)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Send custom modes to the extension bridge (RooCodeInc#7612)

* Never give up in socket transport (RooCodeInc#7616)

* Fix socket-io client event handling (RooCodeInc#7618)

* More socket-io client fixes from PR feedback (RooCodeInc#7619)

* More socket-io client logging improvements (RooCodeInc#7620)

* Publish subtask events (RooCodeInc#7626)

* Update chutes.ts to add Qwen3 235B A22B Thinking 2507 model (RooCodeInc#7578)

Co-authored-by: Matt Rubens <[email protected]>

* chore: add changeset for v3.26.5 (RooCodeInc#7628)

* Update contributors list (RooCodeInc#7629)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7630)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add run_slash_command tool for executing slash commands (RooCodeInc#7473)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Focus the extension when receiving bridge commands (RooCodeInc#7633)

* Release: v1.73.0 (RooCodeInc#7636)

* Cloud: remove extension_bridge_enabled for personal users (RooCodeInc#7638)

* Publish token usage metrics (RooCodeInc#7637)

* fix: preserve scroll position when switching tabs in settings (RooCodeInc#7587)

* fix: preserve scroll position when switching tabs in settings

* ui(settings): restore scroll synchronously to prevent flicker; dx(ui): name TabContent for clearer DevTools

---------

Co-authored-by: Daniel Riccio <[email protected]>

* feat: add Kimi K2 Turbo model configuration to moonshotModels (RooCodeInc#7593)

* feat: add Kimi K2 Turbo model configuration to moonshotModels

* feat: update Kimi K2 Turbo pricing and cache read prices

* fix: use askApproval wrapper in insert_content and search_and_replace tools (RooCodeInc#7649)

Fixes issue where isWriteProtected was incorrectly passed as the partial flag
to task.ask(), causing "Current ask promise was ignored (#1)" error.

Both tools now use the askApproval wrapper function which correctly handles
the parameter ordering, passing undefined for progressStatus and isWriteProtected
as the fourth parameter.

Fixes RooCodeInc#7648

Co-authored-by: Roo Code <[email protected]>

* Release v3.26.6 (RooCodeInc#7650)

* Changeset version bump (RooCodeInc#7651)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Delete .github/workflows/discord-pr-notify.yml

* Remove unused slack notif (RooCodeInc#7655)

* Handle zsh process substitution correctly (RooCodeInc#7658)

* Handle zsh glob qualifiers correctly (RooCodeInc#7667)

* Minor zh-TW Traditional Chinese locale typo fix (RooCodeInc#7672)

* feat: Add DeepInfra as a model provider in Roo Code (RooCodeInc#7677)

* fix: validate MCP tool exists before execution (RooCodeInc#7632)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* fix: add error transform to cryptic openAI SDK errors when API key is invalid (RooCodeInc#7586)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: OpenAI Responses API service tiers (flex/priority) — UI selector, pricing, and tests (RooCodeInc#7646)

Co-authored-by: Daniel Riccio <[email protected]>

* fix: prevent countdown timer from showing in history for answered follow-up questions (RooCodeInc#7686)

* fix: Fix the issue of Moonshot's maximum return token count being limited to 1024 (RooCodeInc#7673)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* feat: update kimi-k2-0905-preview and kimi-k2-turbo-preview (RooCodeInc#7663)

* Fix test

* Release v3.26.7 (RooCodeInc#7691)

* Delete .changeset/petite-rats-admire.md

* feat: Add Kimi K2 0905 model to Groq, Moonshot, and Fireworks providers (RooCodeInc#7693)

* Use an allowlist to keep the prompt default shell sane (RooCodeInc#7681)

* Changeset version bump (RooCodeInc#7690)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Fix: Improve WelcomeView styling and readability (RooCodeInc#7682)

* fix: improve WelcomeView styling and readability

- Reduced excessive padding from p-16 to p-6
- Removed excessive bold text throughout
- Made provider cards more compact with smaller icons (32x32px)
- Increased introduction text size from text-sm to text-base for better visibility
- Centered the main greeting title
- Improved visual hierarchy with proper text sizing and spacing
- Added subtle borders and improved color contrast

* fix: remove undefined color class from incentive text

Removed the text-vscode-warningForeground class as it wasn't defined in index.css. The incentive text now uses default color which looks good.

* feat: add Kimi K2-0905 model to Chutes provider (RooCodeInc#7701)

Co-authored-by: Roo Code <[email protected]>

* fix: handle array paths from VSCode terminal profiles (RooCodeInc#7697)

* fix: handle array paths from VSCode terminal profiles

- Updated terminal profile interfaces to support string | string[] for path property
- Added normalizeShellPath helper to safely extract first element from array paths
- Modified isShellAllowed to handle both string and array inputs
- Updated getWindowsShellFromVSCode, getMacShellFromVSCode, and getLinuxShellFromVSCode to use normalizeShellPath
- Added comprehensive tests for array path handling

Fixes RooCodeInc#7695

* feat: add validateShellPath export for robust shell validation

- Created validateShellPath as a public API for shell path validation
- Refactored internal validation logic into isShellAllowedInternal
- Added comprehensive test coverage for all edge cases
- Maintains backward compatibility with deprecated isShellAllowed
- Handles arrays, strings, null, undefined, and nested arrays gracefully

* Simplify roomote's work a little

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Edit/Delete User Message (RooCodeInc#7447)

* fix: prevent stack overflow in codebase indexing for large projects (RooCodeInc#7712)

* fix: identify mcp and slash command config path in multiple folder workspace (RooCodeInc#6904)

* fix: resolve CI e2e test ETIMEDOUT errors when downloading VS Code (RooCodeInc#7583)

* fix: Tackling Race/State condition issue by Changing the Code Design for Gemini Grounding Sources (RooCodeInc#7434)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: preserve context by retrying with full conversation on invalid previous_response_id (RooCodeInc#7714)

* chore: add changeset for v3.26.8 (RooCodeInc#7715)

* feat(checkpoints): create checkpoint when user sends a message (RooCodeInc#7713)

* feat(checkpoints): create checkpoint on user message send

* fix(checkpoints): suppress implicit user-message checkpoint row; keep current checkpoint updated without a chat row

* Fix checkpoint suppression for user messages

- Propagate suppressMessage flag through event chain properly
- Update ChatView to check checkpoint metadata for suppressMessage flag
- Ensure checkpoint messages are created but not rendered when suppressed
- Fix bug where checkpointSave(false) should have been checkpointSave(true)

* fix: only create checkpoint on user message when files have changed

- Changed allowEmpty from true to false in checkpointSave call
- Checkpoints will now only be created when there are actual file changes
- This avoids creating empty commits in the shadow git repository

* test: update checkpoint test to include suppressMessage parameter

- Fixed test expectation to match the new function signature
- saveCheckpoint now expects both allowEmpty and suppressMessage parameters

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Bump to 3.27.0 (RooCodeInc#7719)

* Changeset version bump (RooCodeInc#7716)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix: update DeepSeek pricing to new unified rates effective Sept 5, 2025 (RooCodeInc#7687)

- Updated deepseek-chat pricing: $0.56 input (cache miss), $0.07 (cache hit), $1.68 output
- Updated deepseek-reasoner pricing: same unified rates as deepseek-chat
- Both models now have identical pricing as per DeepSeek announcement
- Pricing takes effect at 16:00 UTC, Sept 5th, 2025

Fixes RooCodeInc#7685

Co-authored-by: Roo Code <[email protected]>

* feat: replace cloud waitlist ad with direct Cloud link in navigation (RooCodeInc#7742)

Co-authored-by: Roo Code <[email protected]>

* feat: show dash instead of zero for missing data on evals page (RooCodeInc#7748)

Co-authored-by: Roo Code <[email protected]>

* Feature/update vertex ai models and regions (RooCodeInc#7727)

* Add model info to eval runs table (RooCodeInc#7749)

* chore(deps): update dependency eslint-config-prettier to v10.1.8 (RooCodeInc#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency esbuild to v0.25.9 (RooCodeInc#5455)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @changesets/cli to v2.29.6 (RooCodeInc#7376)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency nock to v14.0.10 (RooCodeInc#6465)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint-plugin-turbo to v2.5.6 (RooCodeInc#7764)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* refactor(utils): simplify shell detection logic

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* test: update shell detection test expectation and mocks

* test: add mock cleanup in shell detection tests

* test: update shell detection tests to prioritize PowerShell 7

* fix(workspace-event-monitor): increase max retries and improve retry logic

* refactor(codebase): improve error handling and workspace validation

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* test: change console.error to console.warn in tests

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* test: enhance vscode mock implementations and error handling

* feat(chat): replace edit button with copy functionality

* refactor(core): enhance binary file detection and encoding handling

* separate task sync roomote control (RooCodeInc#7799)

* feat: separate Task Sync and Roomote Control settings

- Add new taskSyncEnabled setting to control task content syncing
- Keep remoteControlEnabled for Roomote Control functionality
- Task Sync controls whether task content is sent to cloud
- Roomote Control controls whether cloud can send instructions back
- Roomote Control now depends on Task Sync being enabled
- Usage metrics (tokens, cost) always reported regardless of settings
- Update UI with two separate toggles and clear descriptions
- Add info text explaining usage metrics are always reported

* feat: add missing translations for Task Sync and Roomote Control settings

- Added taskSync, taskSyncDescription, remoteControlRequiresTaskSync, and usageMetricsAlwaysReported keys to all non-English cloud.json files
- Updated cloudBenefit keys to match English structure
- Ensured all languages have consistent translation keys for the new Task Sync and Roomote Control features

* Cloud: cleanup taskSyncEnabled additions

* fix: correct indentation localization files

---------

Co-authored-by: Roo Code <[email protected]>

* feat: In-extension dismissible upsells for Roo Code Cloud (RooCodeInc#7850)

* First pass at separate upsell dialog

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* feat: add DismissibleUpsell component for dismissible messages

- Created DismissibleUpsell component with variant support (banner/default)
- Added dismissedUpsells to GlobalState for persistence
- Implemented message handlers for dismissing and retrieving dismissed upsells
- Added comprehensive tests for the component
- Uses VSCode extension globalState for persistent storage

* fix: Apply PR feedback for DismissibleUpsell component

- Changed from className to separate 'id' and 'className' props for better semantics
- Added i18n support for accessibility labels (aria-label and title)
- Fixed memory leak by adding mounted flag to prevent state updates after unmount
- Fixed race condition by sending dismiss message before hiding component
- Fixed inefficient array operations in webviewMessageHandler
- Added comprehensive test coverage for edge cases including:
  - Multiple rapid dismissals
  - Component unmounting during async operations
  - Invalid/malformed message handling
  - Proper message sending before unmount
- Added null checks for message data to handle edge cases gracefully

* New Cloud upsell dialog in task share and cloud view, shared component

* Properly working DismissibleUpsell

* Working upsell for long-running tasks

* CTA in AutoApproveMenu

* Home page CTA

* Fixes the autoapprove upsell and some tests

* Visual and copy fixes

* Test fix

* Translations

* Stray className attribute

* Cloud view fixes in a left-aligned layout

* Removes unnecessary test

* Less flaky tests

* Fixes sharebutton behavior and updates associated tests

* Update webview-ui/src/i18n/locales/it/cloud.json

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Fix dismissed flicker

* Fix long task upsell

---------

Co-authored-by: Daniel <[email protected]>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* v3.28.0 (RooCodeInc#7858)

* Changeset version bump (RooCodeInc#7859)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat(chat): add chat search functionality with highlighting

* feat: show notification when the checkpoint initialization fails (RooCodeInc#7766)

Co-authored-by: daniel-lxs <[email protected]>

* Bust cache in generated image preview (RooCodeInc#7860)

Co-authored-by: Roo Code <[email protected]>

* test: disable TaskHeader upsell tests

* test: refactor TaskHeader test file

* feat: Add cloud task button for opening tasks in Roo Code Cloud (RooCodeInc#7572)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>

* fix: center active mode in selector dropdown on open (RooCodeInc#7883)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Make Posthog telemetry the default (RooCodeInc#7909)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Fix: Preserve first message during conversation condensing (RooCodeInc#7910)

* In-app announcement for Roo Code Cloud (RooCodeInc#7914)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* chore: add changeset for v3.28.1 (RooCodeInc#7916)

* Changeset version bump (RooCodeInc#7917)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Remove Roo Code 3.25 release announcement

Removed the section about Roo Code 3.25 release notes.

* fix: restrict @-mention parsing to line-start or whitespace boundaries (RooCodeInc#7876)

Co-authored-by: Roo Code <[email protected]>

* Fix message queue re-queue loop in Task.ask() (RooCodeInc#7823)

* fix: preserve original first message context during conversation condensing (RooCodeInc#7939)

* Add a little padding to the cloudview (RooCodeInc#7954)

* test: increase test timeout configuration

* test(ci): enable translation check and optimize test workflow

---------

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Josh <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: mrubens <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: Piotr Wilkin (ilintar) <[email protected]>
Co-authored-by: Christiaan Arnoldus <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mohammad Danaee nia <[email protected]>
Co-authored-by: 淡草 <[email protected]>
Co-authored-by: WangXiaolong <[email protected]>
Co-authored-by: Peter Dave Hello <[email protected]>
Co-authored-by: Thach Nguyen <[email protected]>
Co-authored-by: CellenLee <[email protected]>
Co-authored-by: NaccOll <[email protected]>
Co-authored-by: Ton Hoang Nguyen (Bill) <[email protected]>
Co-authored-by: ssweens <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
mini2s added a commit to zgsm-ai/costrict that referenced this pull request Sep 14, 2025
* Follow symlinks in rooignore checks (RooCodeInc#7405)

* Sonic -> Grok Code Fast (RooCodeInc#7426)

* chore: add changeset for v3.26.0 (RooCodeInc#7428)

* Changeset version bump (RooCodeInc#7429)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: Add Vercel AI Gateway provider integration (RooCodeInc#7396)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>

* feat: Enable on-disk storage for Qdrant vectors and HNSW index (RooCodeInc#7182)

* fix: use anthropic protocol for token counting when using anthropic models via Vercel AI Gateway (RooCodeInc#7433)

- Added condition in getApiProtocol to return 'anthropic' for vercel-ai-gateway when modelId starts with 'anthropic/'
- Added tests for Vercel AI Gateway provider protocol detection

This ensures proper token counting for Anthropic models accessed through Vercel AI Gateway, as Anthropic and OpenAI count tokens differently (Anthropic excludes cache tokens from input count, OpenAI includes them).

* fix: remove duplicate cache display in task header (RooCodeInc#7443)

* Random chat text area cleanup (RooCodeInc#7436)

* Update @roo-code/cloud to enable roomote control for cloud agents (RooCodeInc#7446)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Always set remoteControlEnabled to true for cloud agents (RooCodeInc#7448)

* chore: add changeset for v3.26.1 (RooCodeInc#7459)

* feat: show model ID in API configuration dropdown (RooCodeInc#7423)

* feat: update tooltip component to match native VSCode tooltip shadow styling (RooCodeInc#7457)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: cte <[email protected]>

* Add support for Vercel embeddings (RooCodeInc#7445)

Co-authored-by: daniel-lxs <[email protected]>

* Remove dot before model display (RooCodeInc#7461)

* Update contributors list (RooCodeInc#7109)

Co-authored-by: mrubens <[email protected]>

* Update 3.26.1 changeset (RooCodeInc#7463)

* Changeset version bump (RooCodeInc#7460)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Add type for RooCodeEventName.TaskSpawned (RooCodeInc#7465)

* fix: hide .rooignore'd files from environment details by default (RooCodeInc#7369)

* fix: change default showRooIgnoredFiles to false to hide ignored files

- Changed default value from true to false across all files
- Updated tests to reflect the new default behavior
- This prevents ignored files from appearing in environment details

Fixes RooCodeInc#7368

* fix: update tests to match new showRooIgnoredFiles default

* fix: update test expectation to match new showRooIgnoredFiles default value

The PR changed the default value of showRooIgnoredFiles from true to false,
so the test needs to expect false instead of true when calling formatFilesList.

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: exclude browser scroll actions from repetition detection (RooCodeInc#7471)

- Modified ToolRepetitionDetector to skip repetition detection for browser_action scroll_down and scroll_up actions
- Added isBrowserScrollAction() helper method to identify scroll actions
- Added comprehensive tests for the new behavior
- Fixes issue where multiple scroll actions were incorrectly flagged as being stuck in a loop

Resolves: RooCodeInc#7470

Co-authored-by: Roo Code <[email protected]>

* Fix GPT-5 Responses API issues with condensing and image support (RooCodeInc#7067)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>

* Bump cloud to 0.25.0 (RooCodeInc#7475)

* feat: add image generation tool with OpenRouter integration (RooCodeInc#7474)

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: cte <[email protected]>

* Make the default image filename more generic (RooCodeInc#7479)

* Release v3.26.2 (RooCodeInc#7490)

* Support free imagegen (RooCodeInc#7493)

* feat: update OpenRouter API to support input/output modalities and filter image generation models (RooCodeInc#7492)

* Add padding to image model picker (RooCodeInc#7494)

* fix: prevent dirty state on initial mount in ImageGenerationSettings (RooCodeInc#7495)

* Changeset version bump (RooCodeInc#7491)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Show console logging in vitests when the --no-silent flag is set (RooCodeInc#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 <[email protected]>

* Move @roo-code/cloud to the Roo-Code repo (RooCodeInc#7503)

* Refactor the extension bridge (RooCodeInc#7515)

* Implement deferred task subscriptions (RooCodeInc#7517)

* feat: add optional input image parameter to image generation tool (RooCodeInc#7525)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: sync extension bridge settings with cloud (RooCodeInc#7535)

- Use CloudService.getUserSettings() for remoteControlEnabled instead of global state
- Update CloudService.updateUserSettings when toggling remote control
- Add BridgeOrchestrator.connectOrDisconnect handling in settings update handler
- Remove dependency on contentProxy/globalSettings for remote control state
---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* refactor: flatten image generation settings structure (RooCodeInc#7536)

* chore: add changeset for v3.26.3 (RooCodeInc#7541)

* Changeset version bump (RooCodeInc#7542)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Mode and provider profile selector (RooCodeInc#7545)

* Putting the Roo in Roo-leases (RooCodeInc#7546)

* Fix evals (RooCodeInc#7547)

* fix: special tokens should not break task processing (RooCodeInc#7540)

* docs: update PR template branding from Roo Code to Costrict

* feat: optimize memory usage for image handling in webview (RooCodeInc#7556)

* feat: optimize memory usage for image handling in webview

- Replace base64 image data with webview URIs to reduce memory footprint
- Add proper resource roots to webview for workspace file access
- Implement convertToWebviewUri method for safe file-to-URI conversion
- Update ImageViewer to handle both webview URIs and file paths separately
- Add image message type for proper image rendering in chat
- Improve error handling and display for failed image loads
- Add comprehensive tests for ImageViewer component
- Format display paths as relative for better readability

This change significantly reduces memory usage by avoiding base64 encoding
of images and instead using VSCode's webview URI system for direct file
access. Images are now loaded on-demand from disk rather than being held
in memory as base64 strings.

* fix: address PR review comments

- Use safeJsonParse instead of JSON.parse in ChatRow.tsx
- Add type definition for parsed image info
- Add more specific error types in ClineProvider.ts
- Add comprehensive JSDoc comments to ImageBlock.tsx
- Improve error handling and type safety

* fix: address MrUbens' review comments

- Remove hardcoded 'rc1' pattern in formatDisplayPath, use generic workspace detection
- Internationalize 'No image data' text using i18n system

* chore: remove useless comment

* chore(i18n): add image.noData to all locales to fix translation check

* test: update ImageViewer.spec to align with i18n key and flexible path formatting

* feat: rename Account tab to Cloud tab (RooCodeInc#7558)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add Ollama API key support for Turbo mode (RooCodeInc#7425)

* feat: add Ollama API key support for Turbo mode

- Add ollamaApiKey field to ProviderSettings schema
- Add ollamaApiKey to SECRET_STATE_KEYS for secure storage
- Update Ollama and NativeOllama providers to use API key for authentication
- Add UI field for Ollama API key (shown when custom base URL is provided)
- Add test coverage for API key functionality

This enables users to use Ollama Turbo with datacenter-grade hardware by providing an API key for authenticated Ollama instances or cloud services.

* fix: use VSCodeTextField for Ollama API key field

Remove non-existent ApiKeyField import and use standard VSCodeTextField with password type, matching other provider implementations

* Add missing translation keys for Ollama API key support

- Add providers.ollama.apiKey and providers.ollama.apiKeyHelp to all 18 language files
- Support for authenticated Ollama instances and cloud services
- Relates to PR RooCodeInc#7425

* refactor: improve type safety for Ollama client configuration

- Replace 'any' type with proper OllamaOptions (Config) type
- Import Config type from ollama package for better type checking

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Disconnect extension bridge on logout (RooCodeInc#7563)

* Disconnect extension bridge on logout

* Remove bad test

* Cleanup

* Fix claudeCode.notFound translation key (RooCodeInc#7571)

I think I saw someone post a screenshot where "errors.claudeCode.notFound" was shown untranslated.

* v3.26.4 (RooCodeInc#7579)

* Update contributors list (RooCodeInc#7462)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7580)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add configurable embedding batch size for code indexing (RooCodeInc#7464)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Shows a pill with the base Roo Code Cloud URL when not pointing to pr… (RooCodeInc#7555)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Cloud: fix provider syncing (RooCodeInc#7603)

ClineProvider creation was moved before CloudService which broke
the old way of doing things.

* fix: add cache reporting support for OpenAI-Native provider (RooCodeInc#7602)

* fix: add cache reporting support for OpenAI-Native provider

- Add normalizeUsage method to properly extract cache tokens from Responses API
- Support both detailed token shapes (input_tokens_details) and legacy fields
- Calculate cache read/write tokens with proper fallbacks
- Include reasoning tokens when available in output_tokens_details
- Ensure accurate cost calculation using uncached input tokens

This fixes the issue where caching information was not being reported
when using the OpenAI-Native provider with the Responses API.

* fix: improve cache token normalization and add comprehensive tests

- Add fallback to derive total input tokens from details when totals are missing
- Remove unused convertToOpenAiMessages import
- Add comment explaining cost calculation alignment with Gemini provider
- Add comprehensive test coverage for normalizeUsage method covering:
  - Detailed token shapes with cached/miss tokens
  - Legacy field names and SSE-only events
  - Edge cases including missing totals with details-only
  - Cost calculation with uncached input tokens

* fix: address PR review comments

- Remove incorrect fallback to missFromDetails for cache write tokens
- Fix cost calculation to pass total input tokens (calculateApiCostOpenAI handles subtraction)
- Improve readability by extracting cache detail checks to intermediate variables
- Remove redundant ?? undefined
- Update tests to reflect correct behavior (miss tokens are not cache writes)
- Add clarifying comments about cache miss vs cache write tokens

* feat: add auto-approve support for MCP access_resource tool (RooCodeInc#7606)

* Move message queue to the extension host (RooCodeInc#7604)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Send custom modes to the extension bridge (RooCodeInc#7612)

* Never give up in socket transport (RooCodeInc#7616)

* Fix socket-io client event handling (RooCodeInc#7618)

* More socket-io client fixes from PR feedback (RooCodeInc#7619)

* More socket-io client logging improvements (RooCodeInc#7620)

* Publish subtask events (RooCodeInc#7626)

* Update chutes.ts to add Qwen3 235B A22B Thinking 2507 model (RooCodeInc#7578)

Co-authored-by: Matt Rubens <[email protected]>

* chore: add changeset for v3.26.5 (RooCodeInc#7628)

* Update contributors list (RooCodeInc#7629)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7630)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add run_slash_command tool for executing slash commands (RooCodeInc#7473)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Focus the extension when receiving bridge commands (RooCodeInc#7633)

* Release: v1.73.0 (RooCodeInc#7636)

* Cloud: remove extension_bridge_enabled for personal users (RooCodeInc#7638)

* Publish token usage metrics (RooCodeInc#7637)

* fix: preserve scroll position when switching tabs in settings (RooCodeInc#7587)

* fix: preserve scroll position when switching tabs in settings

* ui(settings): restore scroll synchronously to prevent flicker; dx(ui): name TabContent for clearer DevTools

---------

Co-authored-by: Daniel Riccio <[email protected]>

* feat: add Kimi K2 Turbo model configuration to moonshotModels (RooCodeInc#7593)

* feat: add Kimi K2 Turbo model configuration to moonshotModels

* feat: update Kimi K2 Turbo pricing and cache read prices

* fix: use askApproval wrapper in insert_content and search_and_replace tools (RooCodeInc#7649)

Fixes issue where isWriteProtected was incorrectly passed as the partial flag
to task.ask(), causing "Current ask promise was ignored (#1)" error.

Both tools now use the askApproval wrapper function which correctly handles
the parameter ordering, passing undefined for progressStatus and isWriteProtected
as the fourth parameter.

Fixes RooCodeInc#7648

Co-authored-by: Roo Code <[email protected]>

* Release v3.26.6 (RooCodeInc#7650)

* Changeset version bump (RooCodeInc#7651)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Delete .github/workflows/discord-pr-notify.yml

* Remove unused slack notif (RooCodeInc#7655)

* Handle zsh process substitution correctly (RooCodeInc#7658)

* Handle zsh glob qualifiers correctly (RooCodeInc#7667)

* Minor zh-TW Traditional Chinese locale typo fix (RooCodeInc#7672)

* feat: Add DeepInfra as a model provider in Roo Code (RooCodeInc#7677)

* fix: validate MCP tool exists before execution (RooCodeInc#7632)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* fix: add error transform to cryptic openAI SDK errors when API key is invalid (RooCodeInc#7586)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: OpenAI Responses API service tiers (flex/priority) — UI selector, pricing, and tests (RooCodeInc#7646)

Co-authored-by: Daniel Riccio <[email protected]>

* fix: prevent countdown timer from showing in history for answered follow-up questions (RooCodeInc#7686)

* fix: Fix the issue of Moonshot's maximum return token count being limited to 1024 (RooCodeInc#7673)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* feat: update kimi-k2-0905-preview and kimi-k2-turbo-preview (RooCodeInc#7663)

* Fix test

* Release v3.26.7 (RooCodeInc#7691)

* Delete .changeset/petite-rats-admire.md

* feat: Add Kimi K2 0905 model to Groq, Moonshot, and Fireworks providers (RooCodeInc#7693)

* Use an allowlist to keep the prompt default shell sane (RooCodeInc#7681)

* Changeset version bump (RooCodeInc#7690)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Fix: Improve WelcomeView styling and readability (RooCodeInc#7682)

* fix: improve WelcomeView styling and readability

- Reduced excessive padding from p-16 to p-6
- Removed excessive bold text throughout
- Made provider cards more compact with smaller icons (32x32px)
- Increased introduction text size from text-sm to text-base for better visibility
- Centered the main greeting title
- Improved visual hierarchy with proper text sizing and spacing
- Added subtle borders and improved color contrast

* fix: remove undefined color class from incentive text

Removed the text-vscode-warningForeground class as it wasn't defined in index.css. The incentive text now uses default color which looks good.

* feat: add Kimi K2-0905 model to Chutes provider (RooCodeInc#7701)

Co-authored-by: Roo Code <[email protected]>

* fix: handle array paths from VSCode terminal profiles (RooCodeInc#7697)

* fix: handle array paths from VSCode terminal profiles

- Updated terminal profile interfaces to support string | string[] for path property
- Added normalizeShellPath helper to safely extract first element from array paths
- Modified isShellAllowed to handle both string and array inputs
- Updated getWindowsShellFromVSCode, getMacShellFromVSCode, and getLinuxShellFromVSCode to use normalizeShellPath
- Added comprehensive tests for array path handling

Fixes RooCodeInc#7695

* feat: add validateShellPath export for robust shell validation

- Created validateShellPath as a public API for shell path validation
- Refactored internal validation logic into isShellAllowedInternal
- Added comprehensive test coverage for all edge cases
- Maintains backward compatibility with deprecated isShellAllowed
- Handles arrays, strings, null, undefined, and nested arrays gracefully

* Simplify roomote's work a little

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Edit/Delete User Message (RooCodeInc#7447)

* fix: prevent stack overflow in codebase indexing for large projects (RooCodeInc#7712)

* fix: identify mcp and slash command config path in multiple folder workspace (RooCodeInc#6904)

* fix: resolve CI e2e test ETIMEDOUT errors when downloading VS Code (RooCodeInc#7583)

* fix: Tackling Race/State condition issue by Changing the Code Design for Gemini Grounding Sources (RooCodeInc#7434)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: preserve context by retrying with full conversation on invalid previous_response_id (RooCodeInc#7714)

* chore: add changeset for v3.26.8 (RooCodeInc#7715)

* feat(checkpoints): create checkpoint when user sends a message (RooCodeInc#7713)

* feat(checkpoints): create checkpoint on user message send

* fix(checkpoints): suppress implicit user-message checkpoint row; keep current checkpoint updated without a chat row

* Fix checkpoint suppression for user messages

- Propagate suppressMessage flag through event chain properly
- Update ChatView to check checkpoint metadata for suppressMessage flag
- Ensure checkpoint messages are created but not rendered when suppressed
- Fix bug where checkpointSave(false) should have been checkpointSave(true)

* fix: only create checkpoint on user message when files have changed

- Changed allowEmpty from true to false in checkpointSave call
- Checkpoints will now only be created when there are actual file changes
- This avoids creating empty commits in the shadow git repository

* test: update checkpoint test to include suppressMessage parameter

- Fixed test expectation to match the new function signature
- saveCheckpoint now expects both allowEmpty and suppressMessage parameters

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Bump to 3.27.0 (RooCodeInc#7719)

* Changeset version bump (RooCodeInc#7716)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix: update DeepSeek pricing to new unified rates effective Sept 5, 2025 (RooCodeInc#7687)

- Updated deepseek-chat pricing: $0.56 input (cache miss), $0.07 (cache hit), $1.68 output
- Updated deepseek-reasoner pricing: same unified rates as deepseek-chat
- Both models now have identical pricing as per DeepSeek announcement
- Pricing takes effect at 16:00 UTC, Sept 5th, 2025

Fixes RooCodeInc#7685

Co-authored-by: Roo Code <[email protected]>

* feat: replace cloud waitlist ad with direct Cloud link in navigation (RooCodeInc#7742)

Co-authored-by: Roo Code <[email protected]>

* feat: show dash instead of zero for missing data on evals page (RooCodeInc#7748)

Co-authored-by: Roo Code <[email protected]>

* Feature/update vertex ai models and regions (RooCodeInc#7727)

* Add model info to eval runs table (RooCodeInc#7749)

* chore(deps): update dependency eslint-config-prettier to v10.1.8 (RooCodeInc#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency esbuild to v0.25.9 (RooCodeInc#5455)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @changesets/cli to v2.29.6 (RooCodeInc#7376)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency nock to v14.0.10 (RooCodeInc#6465)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint-plugin-turbo to v2.5.6 (RooCodeInc#7764)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* refactor(utils): simplify shell detection logic

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* test: update shell detection test expectation and mocks

* test: add mock cleanup in shell detection tests

* test: update shell detection tests to prioritize PowerShell 7

* fix(workspace-event-monitor): increase max retries and improve retry logic

* refactor(codebase): improve error handling and workspace validation

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* test: change console.error to console.warn in tests

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* test: enhance vscode mock implementations and error handling

* feat(chat): replace edit button with copy functionality

* refactor(core): enhance binary file detection and encoding handling

* separate task sync roomote control (RooCodeInc#7799)

* feat: separate Task Sync and Roomote Control settings

- Add new taskSyncEnabled setting to control task content syncing
- Keep remoteControlEnabled for Roomote Control functionality
- Task Sync controls whether task content is sent to cloud
- Roomote Control controls whether cloud can send instructions back
- Roomote Control now depends on Task Sync being enabled
- Usage metrics (tokens, cost) always reported regardless of settings
- Update UI with two separate toggles and clear descriptions
- Add info text explaining usage metrics are always reported

* feat: add missing translations for Task Sync and Roomote Control settings

- Added taskSync, taskSyncDescription, remoteControlRequiresTaskSync, and usageMetricsAlwaysReported keys to all non-English cloud.json files
- Updated cloudBenefit keys to match English structure
- Ensured all languages have consistent translation keys for the new Task Sync and Roomote Control features

* Cloud: cleanup taskSyncEnabled additions

* fix: correct indentation localization files

---------

Co-authored-by: Roo Code <[email protected]>

* feat: In-extension dismissible upsells for Roo Code Cloud (RooCodeInc#7850)

* First pass at separate upsell dialog

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* feat: add DismissibleUpsell component for dismissible messages

- Created DismissibleUpsell component with variant support (banner/default)
- Added dismissedUpsells to GlobalState for persistence
- Implemented message handlers for dismissing and retrieving dismissed upsells
- Added comprehensive tests for the component
- Uses VSCode extension globalState for persistent storage

* fix: Apply PR feedback for DismissibleUpsell component

- Changed from className to separate 'id' and 'className' props for better semantics
- Added i18n support for accessibility labels (aria-label and title)
- Fixed memory leak by adding mounted flag to prevent state updates after unmount
- Fixed race condition by sending dismiss message before hiding component
- Fixed inefficient array operations in webviewMessageHandler
- Added comprehensive test coverage for edge cases including:
  - Multiple rapid dismissals
  - Component unmounting during async operations
  - Invalid/malformed message handling
  - Proper message sending before unmount
- Added null checks for message data to handle edge cases gracefully

* New Cloud upsell dialog in task share and cloud view, shared component

* Properly working DismissibleUpsell

* Working upsell for long-running tasks

* CTA in AutoApproveMenu

* Home page CTA

* Fixes the autoapprove upsell and some tests

* Visual and copy fixes

* Test fix

* Translations

* Stray className attribute

* Cloud view fixes in a left-aligned layout

* Removes unnecessary test

* Less flaky tests

* Fixes sharebutton behavior and updates associated tests

* Update webview-ui/src/i18n/locales/it/cloud.json

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Fix dismissed flicker

* Fix long task upsell

---------

Co-authored-by: Daniel <[email protected]>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* v3.28.0 (RooCodeInc#7858)

* Changeset version bump (RooCodeInc#7859)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat(chat): add chat search functionality with highlighting

* feat: show notification when the checkpoint initialization fails (RooCodeInc#7766)

Co-authored-by: daniel-lxs <[email protected]>

* Bust cache in generated image preview (RooCodeInc#7860)

Co-authored-by: Roo Code <[email protected]>

* test: disable TaskHeader upsell tests

* test: refactor TaskHeader test file

* feat: Add cloud task button for opening tasks in Roo Code Cloud (RooCodeInc#7572)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>

* fix: center active mode in selector dropdown on open (RooCodeInc#7883)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Make Posthog telemetry the default (RooCodeInc#7909)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Fix: Preserve first message during conversation condensing (RooCodeInc#7910)

* In-app announcement for Roo Code Cloud (RooCodeInc#7914)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* chore: add changeset for v3.28.1 (RooCodeInc#7916)

* Changeset version bump (RooCodeInc#7917)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Remove Roo Code 3.25 release announcement

Removed the section about Roo Code 3.25 release notes.

* fix: restrict @-mention parsing to line-start or whitespace boundaries (RooCodeInc#7876)

Co-authored-by: Roo Code <[email protected]>

* Fix message queue re-queue loop in Task.ask() (RooCodeInc#7823)

* fix: preserve original first message context during conversation condensing (RooCodeInc#7939)

* Add a little padding to the cloudview (RooCodeInc#7954)

* test: increase test timeout configuration

* test(ci): enable translation check and optimize test workflow

* fix: make nested git repository warning persistent with path info (RooCodeInc#7885)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: include API key in Ollama /api/tags requests (RooCodeInc#7903)

Co-authored-by: Roo Code <[email protected]>

* feat: add Qwen3 Next 80B A3B models to chutes provider (RooCodeInc#7948)

* ux: Smaller and more subtle auto-approve UI (RooCodeInc#7894)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: John Richmond <[email protected]>

---------

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Josh <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: mrubens <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: Piotr Wilkin (ilintar) <[email protected]>
Co-authored-by: Christiaan Arnoldus <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mohammad Danaee nia <[email protected]>
Co-authored-by: 淡草 <[email protected]>
Co-authored-by: WangXiaolong <[email protected]>
Co-authored-by: Peter Dave Hello <[email protected]>
Co-authored-by: Thach Nguyen <[email protected]>
Co-authored-by: CellenLee <[email protected]>
Co-authored-by: NaccOll <[email protected]>
Co-authored-by: Ton Hoang Nguyen (Bill) <[email protected]>
Co-authored-by: ssweens <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
mini2s added a commit to zgsm-ai/costrict that referenced this pull request Sep 14, 2025
* Follow symlinks in rooignore checks (RooCodeInc#7405)

* Sonic -> Grok Code Fast (RooCodeInc#7426)

* chore: add changeset for v3.26.0 (RooCodeInc#7428)

* Changeset version bump (RooCodeInc#7429)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: Add Vercel AI Gateway provider integration (RooCodeInc#7396)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>

* feat: Enable on-disk storage for Qdrant vectors and HNSW index (RooCodeInc#7182)

* fix: use anthropic protocol for token counting when using anthropic models via Vercel AI Gateway (RooCodeInc#7433)

- Added condition in getApiProtocol to return 'anthropic' for vercel-ai-gateway when modelId starts with 'anthropic/'
- Added tests for Vercel AI Gateway provider protocol detection

This ensures proper token counting for Anthropic models accessed through Vercel AI Gateway, as Anthropic and OpenAI count tokens differently (Anthropic excludes cache tokens from input count, OpenAI includes them).

* fix: remove duplicate cache display in task header (RooCodeInc#7443)

* Random chat text area cleanup (RooCodeInc#7436)

* Update @roo-code/cloud to enable roomote control for cloud agents (RooCodeInc#7446)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Always set remoteControlEnabled to true for cloud agents (RooCodeInc#7448)

* chore: add changeset for v3.26.1 (RooCodeInc#7459)

* feat: show model ID in API configuration dropdown (RooCodeInc#7423)

* feat: update tooltip component to match native VSCode tooltip shadow styling (RooCodeInc#7457)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: cte <[email protected]>

* Add support for Vercel embeddings (RooCodeInc#7445)

Co-authored-by: daniel-lxs <[email protected]>

* Remove dot before model display (RooCodeInc#7461)

* Update contributors list (RooCodeInc#7109)

Co-authored-by: mrubens <[email protected]>

* Update 3.26.1 changeset (RooCodeInc#7463)

* Changeset version bump (RooCodeInc#7460)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Add type for RooCodeEventName.TaskSpawned (RooCodeInc#7465)

* fix: hide .rooignore'd files from environment details by default (RooCodeInc#7369)

* fix: change default showRooIgnoredFiles to false to hide ignored files

- Changed default value from true to false across all files
- Updated tests to reflect the new default behavior
- This prevents ignored files from appearing in environment details

Fixes RooCodeInc#7368

* fix: update tests to match new showRooIgnoredFiles default

* fix: update test expectation to match new showRooIgnoredFiles default value

The PR changed the default value of showRooIgnoredFiles from true to false,
so the test needs to expect false instead of true when calling formatFilesList.

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: exclude browser scroll actions from repetition detection (RooCodeInc#7471)

- Modified ToolRepetitionDetector to skip repetition detection for browser_action scroll_down and scroll_up actions
- Added isBrowserScrollAction() helper method to identify scroll actions
- Added comprehensive tests for the new behavior
- Fixes issue where multiple scroll actions were incorrectly flagged as being stuck in a loop

Resolves: RooCodeInc#7470

Co-authored-by: Roo Code <[email protected]>

* Fix GPT-5 Responses API issues with condensing and image support (RooCodeInc#7067)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>

* Bump cloud to 0.25.0 (RooCodeInc#7475)

* feat: add image generation tool with OpenRouter integration (RooCodeInc#7474)

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: cte <[email protected]>

* Make the default image filename more generic (RooCodeInc#7479)

* Release v3.26.2 (RooCodeInc#7490)

* Support free imagegen (RooCodeInc#7493)

* feat: update OpenRouter API to support input/output modalities and filter image generation models (RooCodeInc#7492)

* Add padding to image model picker (RooCodeInc#7494)

* fix: prevent dirty state on initial mount in ImageGenerationSettings (RooCodeInc#7495)

* Changeset version bump (RooCodeInc#7491)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Show console logging in vitests when the --no-silent flag is set (RooCodeInc#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 <[email protected]>

* Move @roo-code/cloud to the Roo-Code repo (RooCodeInc#7503)

* Refactor the extension bridge (RooCodeInc#7515)

* Implement deferred task subscriptions (RooCodeInc#7517)

* feat: add optional input image parameter to image generation tool (RooCodeInc#7525)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: sync extension bridge settings with cloud (RooCodeInc#7535)

- Use CloudService.getUserSettings() for remoteControlEnabled instead of global state
- Update CloudService.updateUserSettings when toggling remote control
- Add BridgeOrchestrator.connectOrDisconnect handling in settings update handler
- Remove dependency on contentProxy/globalSettings for remote control state
---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* refactor: flatten image generation settings structure (RooCodeInc#7536)

* chore: add changeset for v3.26.3 (RooCodeInc#7541)

* Changeset version bump (RooCodeInc#7542)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Mode and provider profile selector (RooCodeInc#7545)

* Putting the Roo in Roo-leases (RooCodeInc#7546)

* Fix evals (RooCodeInc#7547)

* fix: special tokens should not break task processing (RooCodeInc#7540)

* docs: update PR template branding from Roo Code to Costrict

* feat: optimize memory usage for image handling in webview (RooCodeInc#7556)

* feat: optimize memory usage for image handling in webview

- Replace base64 image data with webview URIs to reduce memory footprint
- Add proper resource roots to webview for workspace file access
- Implement convertToWebviewUri method for safe file-to-URI conversion
- Update ImageViewer to handle both webview URIs and file paths separately
- Add image message type for proper image rendering in chat
- Improve error handling and display for failed image loads
- Add comprehensive tests for ImageViewer component
- Format display paths as relative for better readability

This change significantly reduces memory usage by avoiding base64 encoding
of images and instead using VSCode's webview URI system for direct file
access. Images are now loaded on-demand from disk rather than being held
in memory as base64 strings.

* fix: address PR review comments

- Use safeJsonParse instead of JSON.parse in ChatRow.tsx
- Add type definition for parsed image info
- Add more specific error types in ClineProvider.ts
- Add comprehensive JSDoc comments to ImageBlock.tsx
- Improve error handling and type safety

* fix: address MrUbens' review comments

- Remove hardcoded 'rc1' pattern in formatDisplayPath, use generic workspace detection
- Internationalize 'No image data' text using i18n system

* chore: remove useless comment

* chore(i18n): add image.noData to all locales to fix translation check

* test: update ImageViewer.spec to align with i18n key and flexible path formatting

* feat: rename Account tab to Cloud tab (RooCodeInc#7558)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add Ollama API key support for Turbo mode (RooCodeInc#7425)

* feat: add Ollama API key support for Turbo mode

- Add ollamaApiKey field to ProviderSettings schema
- Add ollamaApiKey to SECRET_STATE_KEYS for secure storage
- Update Ollama and NativeOllama providers to use API key for authentication
- Add UI field for Ollama API key (shown when custom base URL is provided)
- Add test coverage for API key functionality

This enables users to use Ollama Turbo with datacenter-grade hardware by providing an API key for authenticated Ollama instances or cloud services.

* fix: use VSCodeTextField for Ollama API key field

Remove non-existent ApiKeyField import and use standard VSCodeTextField with password type, matching other provider implementations

* Add missing translation keys for Ollama API key support

- Add providers.ollama.apiKey and providers.ollama.apiKeyHelp to all 18 language files
- Support for authenticated Ollama instances and cloud services
- Relates to PR RooCodeInc#7425

* refactor: improve type safety for Ollama client configuration

- Replace 'any' type with proper OllamaOptions (Config) type
- Import Config type from ollama package for better type checking

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Disconnect extension bridge on logout (RooCodeInc#7563)

* Disconnect extension bridge on logout

* Remove bad test

* Cleanup

* Fix claudeCode.notFound translation key (RooCodeInc#7571)

I think I saw someone post a screenshot where "errors.claudeCode.notFound" was shown untranslated.

* v3.26.4 (RooCodeInc#7579)

* Update contributors list (RooCodeInc#7462)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7580)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add configurable embedding batch size for code indexing (RooCodeInc#7464)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Shows a pill with the base Roo Code Cloud URL when not pointing to pr… (RooCodeInc#7555)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Cloud: fix provider syncing (RooCodeInc#7603)

ClineProvider creation was moved before CloudService which broke
the old way of doing things.

* fix: add cache reporting support for OpenAI-Native provider (RooCodeInc#7602)

* fix: add cache reporting support for OpenAI-Native provider

- Add normalizeUsage method to properly extract cache tokens from Responses API
- Support both detailed token shapes (input_tokens_details) and legacy fields
- Calculate cache read/write tokens with proper fallbacks
- Include reasoning tokens when available in output_tokens_details
- Ensure accurate cost calculation using uncached input tokens

This fixes the issue where caching information was not being reported
when using the OpenAI-Native provider with the Responses API.

* fix: improve cache token normalization and add comprehensive tests

- Add fallback to derive total input tokens from details when totals are missing
- Remove unused convertToOpenAiMessages import
- Add comment explaining cost calculation alignment with Gemini provider
- Add comprehensive test coverage for normalizeUsage method covering:
  - Detailed token shapes with cached/miss tokens
  - Legacy field names and SSE-only events
  - Edge cases including missing totals with details-only
  - Cost calculation with uncached input tokens

* fix: address PR review comments

- Remove incorrect fallback to missFromDetails for cache write tokens
- Fix cost calculation to pass total input tokens (calculateApiCostOpenAI handles subtraction)
- Improve readability by extracting cache detail checks to intermediate variables
- Remove redundant ?? undefined
- Update tests to reflect correct behavior (miss tokens are not cache writes)
- Add clarifying comments about cache miss vs cache write tokens

* feat: add auto-approve support for MCP access_resource tool (RooCodeInc#7606)

* Move message queue to the extension host (RooCodeInc#7604)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Send custom modes to the extension bridge (RooCodeInc#7612)

* Never give up in socket transport (RooCodeInc#7616)

* Fix socket-io client event handling (RooCodeInc#7618)

* More socket-io client fixes from PR feedback (RooCodeInc#7619)

* More socket-io client logging improvements (RooCodeInc#7620)

* Publish subtask events (RooCodeInc#7626)

* Update chutes.ts to add Qwen3 235B A22B Thinking 2507 model (RooCodeInc#7578)

Co-authored-by: Matt Rubens <[email protected]>

* chore: add changeset for v3.26.5 (RooCodeInc#7628)

* Update contributors list (RooCodeInc#7629)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7630)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add run_slash_command tool for executing slash commands (RooCodeInc#7473)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Focus the extension when receiving bridge commands (RooCodeInc#7633)

* Release: v1.73.0 (RooCodeInc#7636)

* Cloud: remove extension_bridge_enabled for personal users (RooCodeInc#7638)

* Publish token usage metrics (RooCodeInc#7637)

* fix: preserve scroll position when switching tabs in settings (RooCodeInc#7587)

* fix: preserve scroll position when switching tabs in settings

* ui(settings): restore scroll synchronously to prevent flicker; dx(ui): name TabContent for clearer DevTools

---------

Co-authored-by: Daniel Riccio <[email protected]>

* feat: add Kimi K2 Turbo model configuration to moonshotModels (RooCodeInc#7593)

* feat: add Kimi K2 Turbo model configuration to moonshotModels

* feat: update Kimi K2 Turbo pricing and cache read prices

* fix: use askApproval wrapper in insert_content and search_and_replace tools (RooCodeInc#7649)

Fixes issue where isWriteProtected was incorrectly passed as the partial flag
to task.ask(), causing "Current ask promise was ignored (#1)" error.

Both tools now use the askApproval wrapper function which correctly handles
the parameter ordering, passing undefined for progressStatus and isWriteProtected
as the fourth parameter.

Fixes RooCodeInc#7648

Co-authored-by: Roo Code <[email protected]>

* Release v3.26.6 (RooCodeInc#7650)

* Changeset version bump (RooCodeInc#7651)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Delete .github/workflows/discord-pr-notify.yml

* Remove unused slack notif (RooCodeInc#7655)

* Handle zsh process substitution correctly (RooCodeInc#7658)

* Handle zsh glob qualifiers correctly (RooCodeInc#7667)

* Minor zh-TW Traditional Chinese locale typo fix (RooCodeInc#7672)

* feat: Add DeepInfra as a model provider in Roo Code (RooCodeInc#7677)

* fix: validate MCP tool exists before execution (RooCodeInc#7632)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* fix: add error transform to cryptic openAI SDK errors when API key is invalid (RooCodeInc#7586)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: OpenAI Responses API service tiers (flex/priority) — UI selector, pricing, and tests (RooCodeInc#7646)

Co-authored-by: Daniel Riccio <[email protected]>

* fix: prevent countdown timer from showing in history for answered follow-up questions (RooCodeInc#7686)

* fix: Fix the issue of Moonshot's maximum return token count being limited to 1024 (RooCodeInc#7673)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* feat: update kimi-k2-0905-preview and kimi-k2-turbo-preview (RooCodeInc#7663)

* Fix test

* Release v3.26.7 (RooCodeInc#7691)

* Delete .changeset/petite-rats-admire.md

* feat: Add Kimi K2 0905 model to Groq, Moonshot, and Fireworks providers (RooCodeInc#7693)

* Use an allowlist to keep the prompt default shell sane (RooCodeInc#7681)

* Changeset version bump (RooCodeInc#7690)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Fix: Improve WelcomeView styling and readability (RooCodeInc#7682)

* fix: improve WelcomeView styling and readability

- Reduced excessive padding from p-16 to p-6
- Removed excessive bold text throughout
- Made provider cards more compact with smaller icons (32x32px)
- Increased introduction text size from text-sm to text-base for better visibility
- Centered the main greeting title
- Improved visual hierarchy with proper text sizing and spacing
- Added subtle borders and improved color contrast

* fix: remove undefined color class from incentive text

Removed the text-vscode-warningForeground class as it wasn't defined in index.css. The incentive text now uses default color which looks good.

* feat: add Kimi K2-0905 model to Chutes provider (RooCodeInc#7701)

Co-authored-by: Roo Code <[email protected]>

* fix: handle array paths from VSCode terminal profiles (RooCodeInc#7697)

* fix: handle array paths from VSCode terminal profiles

- Updated terminal profile interfaces to support string | string[] for path property
- Added normalizeShellPath helper to safely extract first element from array paths
- Modified isShellAllowed to handle both string and array inputs
- Updated getWindowsShellFromVSCode, getMacShellFromVSCode, and getLinuxShellFromVSCode to use normalizeShellPath
- Added comprehensive tests for array path handling

Fixes RooCodeInc#7695

* feat: add validateShellPath export for robust shell validation

- Created validateShellPath as a public API for shell path validation
- Refactored internal validation logic into isShellAllowedInternal
- Added comprehensive test coverage for all edge cases
- Maintains backward compatibility with deprecated isShellAllowed
- Handles arrays, strings, null, undefined, and nested arrays gracefully

* Simplify roomote's work a little

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Edit/Delete User Message (RooCodeInc#7447)

* fix: prevent stack overflow in codebase indexing for large projects (RooCodeInc#7712)

* fix: identify mcp and slash command config path in multiple folder workspace (RooCodeInc#6904)

* fix: resolve CI e2e test ETIMEDOUT errors when downloading VS Code (RooCodeInc#7583)

* fix: Tackling Race/State condition issue by Changing the Code Design for Gemini Grounding Sources (RooCodeInc#7434)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: preserve context by retrying with full conversation on invalid previous_response_id (RooCodeInc#7714)

* chore: add changeset for v3.26.8 (RooCodeInc#7715)

* feat(checkpoints): create checkpoint when user sends a message (RooCodeInc#7713)

* feat(checkpoints): create checkpoint on user message send

* fix(checkpoints): suppress implicit user-message checkpoint row; keep current checkpoint updated without a chat row

* Fix checkpoint suppression for user messages

- Propagate suppressMessage flag through event chain properly
- Update ChatView to check checkpoint metadata for suppressMessage flag
- Ensure checkpoint messages are created but not rendered when suppressed
- Fix bug where checkpointSave(false) should have been checkpointSave(true)

* fix: only create checkpoint on user message when files have changed

- Changed allowEmpty from true to false in checkpointSave call
- Checkpoints will now only be created when there are actual file changes
- This avoids creating empty commits in the shadow git repository

* test: update checkpoint test to include suppressMessage parameter

- Fixed test expectation to match the new function signature
- saveCheckpoint now expects both allowEmpty and suppressMessage parameters

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Bump to 3.27.0 (RooCodeInc#7719)

* Changeset version bump (RooCodeInc#7716)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix: update DeepSeek pricing to new unified rates effective Sept 5, 2025 (RooCodeInc#7687)

- Updated deepseek-chat pricing: $0.56 input (cache miss), $0.07 (cache hit), $1.68 output
- Updated deepseek-reasoner pricing: same unified rates as deepseek-chat
- Both models now have identical pricing as per DeepSeek announcement
- Pricing takes effect at 16:00 UTC, Sept 5th, 2025

Fixes RooCodeInc#7685

Co-authored-by: Roo Code <[email protected]>

* feat: replace cloud waitlist ad with direct Cloud link in navigation (RooCodeInc#7742)

Co-authored-by: Roo Code <[email protected]>

* feat: show dash instead of zero for missing data on evals page (RooCodeInc#7748)

Co-authored-by: Roo Code <[email protected]>

* Feature/update vertex ai models and regions (RooCodeInc#7727)

* Add model info to eval runs table (RooCodeInc#7749)

* chore(deps): update dependency eslint-config-prettier to v10.1.8 (RooCodeInc#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency esbuild to v0.25.9 (RooCodeInc#5455)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @changesets/cli to v2.29.6 (RooCodeInc#7376)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency nock to v14.0.10 (RooCodeInc#6465)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint-plugin-turbo to v2.5.6 (RooCodeInc#7764)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* refactor(utils): simplify shell detection logic

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* test: update shell detection test expectation and mocks

* test: add mock cleanup in shell detection tests

* test: update shell detection tests to prioritize PowerShell 7

* fix(workspace-event-monitor): increase max retries and improve retry logic

* refactor(codebase): improve error handling and workspace validation

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* test: change console.error to console.warn in tests

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* test: enhance vscode mock implementations and error handling

* feat(chat): replace edit button with copy functionality

* refactor(core): enhance binary file detection and encoding handling

* separate task sync roomote control (RooCodeInc#7799)

* feat: separate Task Sync and Roomote Control settings

- Add new taskSyncEnabled setting to control task content syncing
- Keep remoteControlEnabled for Roomote Control functionality
- Task Sync controls whether task content is sent to cloud
- Roomote Control controls whether cloud can send instructions back
- Roomote Control now depends on Task Sync being enabled
- Usage metrics (tokens, cost) always reported regardless of settings
- Update UI with two separate toggles and clear descriptions
- Add info text explaining usage metrics are always reported

* feat: add missing translations for Task Sync and Roomote Control settings

- Added taskSync, taskSyncDescription, remoteControlRequiresTaskSync, and usageMetricsAlwaysReported keys to all non-English cloud.json files
- Updated cloudBenefit keys to match English structure
- Ensured all languages have consistent translation keys for the new Task Sync and Roomote Control features

* Cloud: cleanup taskSyncEnabled additions

* fix: correct indentation localization files

---------

Co-authored-by: Roo Code <[email protected]>

* feat: In-extension dismissible upsells for Roo Code Cloud (RooCodeInc#7850)

* First pass at separate upsell dialog

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* feat: add DismissibleUpsell component for dismissible messages

- Created DismissibleUpsell component with variant support (banner/default)
- Added dismissedUpsells to GlobalState for persistence
- Implemented message handlers for dismissing and retrieving dismissed upsells
- Added comprehensive tests for the component
- Uses VSCode extension globalState for persistent storage

* fix: Apply PR feedback for DismissibleUpsell component

- Changed from className to separate 'id' and 'className' props for better semantics
- Added i18n support for accessibility labels (aria-label and title)
- Fixed memory leak by adding mounted flag to prevent state updates after unmount
- Fixed race condition by sending dismiss message before hiding component
- Fixed inefficient array operations in webviewMessageHandler
- Added comprehensive test coverage for edge cases including:
  - Multiple rapid dismissals
  - Component unmounting during async operations
  - Invalid/malformed message handling
  - Proper message sending before unmount
- Added null checks for message data to handle edge cases gracefully

* New Cloud upsell dialog in task share and cloud view, shared component

* Properly working DismissibleUpsell

* Working upsell for long-running tasks

* CTA in AutoApproveMenu

* Home page CTA

* Fixes the autoapprove upsell and some tests

* Visual and copy fixes

* Test fix

* Translations

* Stray className attribute

* Cloud view fixes in a left-aligned layout

* Removes unnecessary test

* Less flaky tests

* Fixes sharebutton behavior and updates associated tests

* Update webview-ui/src/i18n/locales/it/cloud.json

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Fix dismissed flicker

* Fix long task upsell

---------

Co-authored-by: Daniel <[email protected]>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* v3.28.0 (RooCodeInc#7858)

* Changeset version bump (RooCodeInc#7859)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat(chat): add chat search functionality with highlighting

* feat: show notification when the checkpoint initialization fails (RooCodeInc#7766)

Co-authored-by: daniel-lxs <[email protected]>

* Bust cache in generated image preview (RooCodeInc#7860)

Co-authored-by: Roo Code <[email protected]>

* test: disable TaskHeader upsell tests

* test: refactor TaskHeader test file

* feat: Add cloud task button for opening tasks in Roo Code Cloud (RooCodeInc#7572)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>

* fix: center active mode in selector dropdown on open (RooCodeInc#7883)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Make Posthog telemetry the default (RooCodeInc#7909)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Fix: Preserve first message during conversation condensing (RooCodeInc#7910)

* In-app announcement for Roo Code Cloud (RooCodeInc#7914)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* chore: add changeset for v3.28.1 (RooCodeInc#7916)

* Changeset version bump (RooCodeInc#7917)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Remove Roo Code 3.25 release announcement

Removed the section about Roo Code 3.25 release notes.

* fix: restrict @-mention parsing to line-start or whitespace boundaries (RooCodeInc#7876)

Co-authored-by: Roo Code <[email protected]>

* Fix message queue re-queue loop in Task.ask() (RooCodeInc#7823)

* fix: preserve original first message context during conversation condensing (RooCodeInc#7939)

* Add a little padding to the cloudview (RooCodeInc#7954)

* test: increase test timeout configuration

* test(ci): enable translation check and optimize test workflow

* fix: make nested git repository warning persistent with path info (RooCodeInc#7885)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: include API key in Ollama /api/tags requests (RooCodeInc#7903)

Co-authored-by: Roo Code <[email protected]>

* feat: add Qwen3 Next 80B A3B models to chutes provider (RooCodeInc#7948)

* ux: Smaller and more subtle auto-approve UI (RooCodeInc#7894)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Disable Roomote Control on logout (RooCodeInc#7976)

* Remove chevrons from chat buttons (RooCodeInc#7970)

* chore: add changeset for v3.28.2 (RooCodeInc#7979)

* Changeset version bump (RooCodeInc#7980)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

---------

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Josh <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: mrubens <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: Piotr Wilkin (ilintar) <[email protected]>
Co-authored-by: Christiaan Arnoldus <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mohammad Danaee nia <[email protected]>
Co-authored-by: 淡草 <[email protected]>
Co-authored-by: WangXiaolong <[email protected]>
Co-authored-by: Peter Dave Hello <[email protected]>
Co-authored-by: Thach Nguyen <[email protected]>
Co-authored-by: CellenLee <[email protected]>
Co-authored-by: NaccOll <[email protected]>
Co-authored-by: Ton Hoang Nguyen (Bill) <[email protected]>
Co-authored-by: ssweens <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
mini2s added a commit to zgsm-ai/costrict that referenced this pull request Sep 16, 2025
* Follow symlinks in rooignore checks (RooCodeInc#7405)

* Sonic -> Grok Code Fast (RooCodeInc#7426)

* chore: add changeset for v3.26.0 (RooCodeInc#7428)

* Changeset version bump (RooCodeInc#7429)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: Add Vercel AI Gateway provider integration (RooCodeInc#7396)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>

* feat: Enable on-disk storage for Qdrant vectors and HNSW index (RooCodeInc#7182)

* fix: use anthropic protocol for token counting when using anthropic models via Vercel AI Gateway (RooCodeInc#7433)

- Added condition in getApiProtocol to return 'anthropic' for vercel-ai-gateway when modelId starts with 'anthropic/'
- Added tests for Vercel AI Gateway provider protocol detection

This ensures proper token counting for Anthropic models accessed through Vercel AI Gateway, as Anthropic and OpenAI count tokens differently (Anthropic excludes cache tokens from input count, OpenAI includes them).

* fix: remove duplicate cache display in task header (RooCodeInc#7443)

* Random chat text area cleanup (RooCodeInc#7436)

* Update @roo-code/cloud to enable roomote control for cloud agents (RooCodeInc#7446)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Always set remoteControlEnabled to true for cloud agents (RooCodeInc#7448)

* chore: add changeset for v3.26.1 (RooCodeInc#7459)

* feat: show model ID in API configuration dropdown (RooCodeInc#7423)

* feat: update tooltip component to match native VSCode tooltip shadow styling (RooCodeInc#7457)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: cte <[email protected]>

* Add support for Vercel embeddings (RooCodeInc#7445)

Co-authored-by: daniel-lxs <[email protected]>

* Remove dot before model display (RooCodeInc#7461)

* Update contributors list (RooCodeInc#7109)

Co-authored-by: mrubens <[email protected]>

* Update 3.26.1 changeset (RooCodeInc#7463)

* Changeset version bump (RooCodeInc#7460)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Add type for RooCodeEventName.TaskSpawned (RooCodeInc#7465)

* fix: hide .rooignore'd files from environment details by default (RooCodeInc#7369)

* fix: change default showRooIgnoredFiles to false to hide ignored files

- Changed default value from true to false across all files
- Updated tests to reflect the new default behavior
- This prevents ignored files from appearing in environment details

Fixes RooCodeInc#7368

* fix: update tests to match new showRooIgnoredFiles default

* fix: update test expectation to match new showRooIgnoredFiles default value

The PR changed the default value of showRooIgnoredFiles from true to false,
so the test needs to expect false instead of true when calling formatFilesList.

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: exclude browser scroll actions from repetition detection (RooCodeInc#7471)

- Modified ToolRepetitionDetector to skip repetition detection for browser_action scroll_down and scroll_up actions
- Added isBrowserScrollAction() helper method to identify scroll actions
- Added comprehensive tests for the new behavior
- Fixes issue where multiple scroll actions were incorrectly flagged as being stuck in a loop

Resolves: RooCodeInc#7470

Co-authored-by: Roo Code <[email protected]>

* Fix GPT-5 Responses API issues with condensing and image support (RooCodeInc#7067)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>

* Bump cloud to 0.25.0 (RooCodeInc#7475)

* feat: add image generation tool with OpenRouter integration (RooCodeInc#7474)

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: cte <[email protected]>

* Make the default image filename more generic (RooCodeInc#7479)

* Release v3.26.2 (RooCodeInc#7490)

* Support free imagegen (RooCodeInc#7493)

* feat: update OpenRouter API to support input/output modalities and filter image generation models (RooCodeInc#7492)

* Add padding to image model picker (RooCodeInc#7494)

* fix: prevent dirty state on initial mount in ImageGenerationSettings (RooCodeInc#7495)

* Changeset version bump (RooCodeInc#7491)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Show console logging in vitests when the --no-silent flag is set (RooCodeInc#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 <[email protected]>

* Move @roo-code/cloud to the Roo-Code repo (RooCodeInc#7503)

* Refactor the extension bridge (RooCodeInc#7515)

* Implement deferred task subscriptions (RooCodeInc#7517)

* feat: add optional input image parameter to image generation tool (RooCodeInc#7525)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: sync extension bridge settings with cloud (RooCodeInc#7535)

- Use CloudService.getUserSettings() for remoteControlEnabled instead of global state
- Update CloudService.updateUserSettings when toggling remote control
- Add BridgeOrchestrator.connectOrDisconnect handling in settings update handler
- Remove dependency on contentProxy/globalSettings for remote control state
---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* refactor: flatten image generation settings structure (RooCodeInc#7536)

* chore: add changeset for v3.26.3 (RooCodeInc#7541)

* Changeset version bump (RooCodeInc#7542)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Mode and provider profile selector (RooCodeInc#7545)

* Putting the Roo in Roo-leases (RooCodeInc#7546)

* Fix evals (RooCodeInc#7547)

* fix: special tokens should not break task processing (RooCodeInc#7540)

* docs: update PR template branding from Roo Code to Costrict

* feat: optimize memory usage for image handling in webview (RooCodeInc#7556)

* feat: optimize memory usage for image handling in webview

- Replace base64 image data with webview URIs to reduce memory footprint
- Add proper resource roots to webview for workspace file access
- Implement convertToWebviewUri method for safe file-to-URI conversion
- Update ImageViewer to handle both webview URIs and file paths separately
- Add image message type for proper image rendering in chat
- Improve error handling and display for failed image loads
- Add comprehensive tests for ImageViewer component
- Format display paths as relative for better readability

This change significantly reduces memory usage by avoiding base64 encoding
of images and instead using VSCode's webview URI system for direct file
access. Images are now loaded on-demand from disk rather than being held
in memory as base64 strings.

* fix: address PR review comments

- Use safeJsonParse instead of JSON.parse in ChatRow.tsx
- Add type definition for parsed image info
- Add more specific error types in ClineProvider.ts
- Add comprehensive JSDoc comments to ImageBlock.tsx
- Improve error handling and type safety

* fix: address MrUbens' review comments

- Remove hardcoded 'rc1' pattern in formatDisplayPath, use generic workspace detection
- Internationalize 'No image data' text using i18n system

* chore: remove useless comment

* chore(i18n): add image.noData to all locales to fix translation check

* test: update ImageViewer.spec to align with i18n key and flexible path formatting

* feat: rename Account tab to Cloud tab (RooCodeInc#7558)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add Ollama API key support for Turbo mode (RooCodeInc#7425)

* feat: add Ollama API key support for Turbo mode

- Add ollamaApiKey field to ProviderSettings schema
- Add ollamaApiKey to SECRET_STATE_KEYS for secure storage
- Update Ollama and NativeOllama providers to use API key for authentication
- Add UI field for Ollama API key (shown when custom base URL is provided)
- Add test coverage for API key functionality

This enables users to use Ollama Turbo with datacenter-grade hardware by providing an API key for authenticated Ollama instances or cloud services.

* fix: use VSCodeTextField for Ollama API key field

Remove non-existent ApiKeyField import and use standard VSCodeTextField with password type, matching other provider implementations

* Add missing translation keys for Ollama API key support

- Add providers.ollama.apiKey and providers.ollama.apiKeyHelp to all 18 language files
- Support for authenticated Ollama instances and cloud services
- Relates to PR RooCodeInc#7425

* refactor: improve type safety for Ollama client configuration

- Replace 'any' type with proper OllamaOptions (Config) type
- Import Config type from ollama package for better type checking

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Disconnect extension bridge on logout (RooCodeInc#7563)

* Disconnect extension bridge on logout

* Remove bad test

* Cleanup

* Fix claudeCode.notFound translation key (RooCodeInc#7571)

I think I saw someone post a screenshot where "errors.claudeCode.notFound" was shown untranslated.

* v3.26.4 (RooCodeInc#7579)

* Update contributors list (RooCodeInc#7462)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7580)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add configurable embedding batch size for code indexing (RooCodeInc#7464)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Shows a pill with the base Roo Code Cloud URL when not pointing to pr… (RooCodeInc#7555)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Cloud: fix provider syncing (RooCodeInc#7603)

ClineProvider creation was moved before CloudService which broke
the old way of doing things.

* fix: add cache reporting support for OpenAI-Native provider (RooCodeInc#7602)

* fix: add cache reporting support for OpenAI-Native provider

- Add normalizeUsage method to properly extract cache tokens from Responses API
- Support both detailed token shapes (input_tokens_details) and legacy fields
- Calculate cache read/write tokens with proper fallbacks
- Include reasoning tokens when available in output_tokens_details
- Ensure accurate cost calculation using uncached input tokens

This fixes the issue where caching information was not being reported
when using the OpenAI-Native provider with the Responses API.

* fix: improve cache token normalization and add comprehensive tests

- Add fallback to derive total input tokens from details when totals are missing
- Remove unused convertToOpenAiMessages import
- Add comment explaining cost calculation alignment with Gemini provider
- Add comprehensive test coverage for normalizeUsage method covering:
  - Detailed token shapes with cached/miss tokens
  - Legacy field names and SSE-only events
  - Edge cases including missing totals with details-only
  - Cost calculation with uncached input tokens

* fix: address PR review comments

- Remove incorrect fallback to missFromDetails for cache write tokens
- Fix cost calculation to pass total input tokens (calculateApiCostOpenAI handles subtraction)
- Improve readability by extracting cache detail checks to intermediate variables
- Remove redundant ?? undefined
- Update tests to reflect correct behavior (miss tokens are not cache writes)
- Add clarifying comments about cache miss vs cache write tokens

* feat: add auto-approve support for MCP access_resource tool (RooCodeInc#7606)

* Move message queue to the extension host (RooCodeInc#7604)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Send custom modes to the extension bridge (RooCodeInc#7612)

* Never give up in socket transport (RooCodeInc#7616)

* Fix socket-io client event handling (RooCodeInc#7618)

* More socket-io client fixes from PR feedback (RooCodeInc#7619)

* More socket-io client logging improvements (RooCodeInc#7620)

* Publish subtask events (RooCodeInc#7626)

* Update chutes.ts to add Qwen3 235B A22B Thinking 2507 model (RooCodeInc#7578)

Co-authored-by: Matt Rubens <[email protected]>

* chore: add changeset for v3.26.5 (RooCodeInc#7628)

* Update contributors list (RooCodeInc#7629)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7630)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add run_slash_command tool for executing slash commands (RooCodeInc#7473)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Focus the extension when receiving bridge commands (RooCodeInc#7633)

* Release: v1.73.0 (RooCodeInc#7636)

* Cloud: remove extension_bridge_enabled for personal users (RooCodeInc#7638)

* Publish token usage metrics (RooCodeInc#7637)

* fix: preserve scroll position when switching tabs in settings (RooCodeInc#7587)

* fix: preserve scroll position when switching tabs in settings

* ui(settings): restore scroll synchronously to prevent flicker; dx(ui): name TabContent for clearer DevTools

---------

Co-authored-by: Daniel Riccio <[email protected]>

* feat: add Kimi K2 Turbo model configuration to moonshotModels (RooCodeInc#7593)

* feat: add Kimi K2 Turbo model configuration to moonshotModels

* feat: update Kimi K2 Turbo pricing and cache read prices

* fix: use askApproval wrapper in insert_content and search_and_replace tools (RooCodeInc#7649)

Fixes issue where isWriteProtected was incorrectly passed as the partial flag
to task.ask(), causing "Current ask promise was ignored (#1)" error.

Both tools now use the askApproval wrapper function which correctly handles
the parameter ordering, passing undefined for progressStatus and isWriteProtected
as the fourth parameter.

Fixes RooCodeInc#7648

Co-authored-by: Roo Code <[email protected]>

* Release v3.26.6 (RooCodeInc#7650)

* Changeset version bump (RooCodeInc#7651)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Delete .github/workflows/discord-pr-notify.yml

* Remove unused slack notif (RooCodeInc#7655)

* Handle zsh process substitution correctly (RooCodeInc#7658)

* Handle zsh glob qualifiers correctly (RooCodeInc#7667)

* Minor zh-TW Traditional Chinese locale typo fix (RooCodeInc#7672)

* feat: Add DeepInfra as a model provider in Roo Code (RooCodeInc#7677)

* fix: validate MCP tool exists before execution (RooCodeInc#7632)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* fix: add error transform to cryptic openAI SDK errors when API key is invalid (RooCodeInc#7586)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: OpenAI Responses API service tiers (flex/priority) — UI selector, pricing, and tests (RooCodeInc#7646)

Co-authored-by: Daniel Riccio <[email protected]>

* fix: prevent countdown timer from showing in history for answered follow-up questions (RooCodeInc#7686)

* fix: Fix the issue of Moonshot's maximum return token count being limited to 1024 (RooCodeInc#7673)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* feat: update kimi-k2-0905-preview and kimi-k2-turbo-preview (RooCodeInc#7663)

* Fix test

* Release v3.26.7 (RooCodeInc#7691)

* Delete .changeset/petite-rats-admire.md

* feat: Add Kimi K2 0905 model to Groq, Moonshot, and Fireworks providers (RooCodeInc#7693)

* Use an allowlist to keep the prompt default shell sane (RooCodeInc#7681)

* Changeset version bump (RooCodeInc#7690)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Fix: Improve WelcomeView styling and readability (RooCodeInc#7682)

* fix: improve WelcomeView styling and readability

- Reduced excessive padding from p-16 to p-6
- Removed excessive bold text throughout
- Made provider cards more compact with smaller icons (32x32px)
- Increased introduction text size from text-sm to text-base for better visibility
- Centered the main greeting title
- Improved visual hierarchy with proper text sizing and spacing
- Added subtle borders and improved color contrast

* fix: remove undefined color class from incentive text

Removed the text-vscode-warningForeground class as it wasn't defined in index.css. The incentive text now uses default color which looks good.

* feat: add Kimi K2-0905 model to Chutes provider (RooCodeInc#7701)

Co-authored-by: Roo Code <[email protected]>

* fix: handle array paths from VSCode terminal profiles (RooCodeInc#7697)

* fix: handle array paths from VSCode terminal profiles

- Updated terminal profile interfaces to support string | string[] for path property
- Added normalizeShellPath helper to safely extract first element from array paths
- Modified isShellAllowed to handle both string and array inputs
- Updated getWindowsShellFromVSCode, getMacShellFromVSCode, and getLinuxShellFromVSCode to use normalizeShellPath
- Added comprehensive tests for array path handling

Fixes RooCodeInc#7695

* feat: add validateShellPath export for robust shell validation

- Created validateShellPath as a public API for shell path validation
- Refactored internal validation logic into isShellAllowedInternal
- Added comprehensive test coverage for all edge cases
- Maintains backward compatibility with deprecated isShellAllowed
- Handles arrays, strings, null, undefined, and nested arrays gracefully

* Simplify roomote's work a little

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Edit/Delete User Message (RooCodeInc#7447)

* fix: prevent stack overflow in codebase indexing for large projects (RooCodeInc#7712)

* fix: identify mcp and slash command config path in multiple folder workspace (RooCodeInc#6904)

* fix: resolve CI e2e test ETIMEDOUT errors when downloading VS Code (RooCodeInc#7583)

* fix: Tackling Race/State condition issue by Changing the Code Design for Gemini Grounding Sources (RooCodeInc#7434)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: preserve context by retrying with full conversation on invalid previous_response_id (RooCodeInc#7714)

* chore: add changeset for v3.26.8 (RooCodeInc#7715)

* feat(checkpoints): create checkpoint when user sends a message (RooCodeInc#7713)

* feat(checkpoints): create checkpoint on user message send

* fix(checkpoints): suppress implicit user-message checkpoint row; keep current checkpoint updated without a chat row

* Fix checkpoint suppression for user messages

- Propagate suppressMessage flag through event chain properly
- Update ChatView to check checkpoint metadata for suppressMessage flag
- Ensure checkpoint messages are created but not rendered when suppressed
- Fix bug where checkpointSave(false) should have been checkpointSave(true)

* fix: only create checkpoint on user message when files have changed

- Changed allowEmpty from true to false in checkpointSave call
- Checkpoints will now only be created when there are actual file changes
- This avoids creating empty commits in the shadow git repository

* test: update checkpoint test to include suppressMessage parameter

- Fixed test expectation to match the new function signature
- saveCheckpoint now expects both allowEmpty and suppressMessage parameters

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Bump to 3.27.0 (RooCodeInc#7719)

* Changeset version bump (RooCodeInc#7716)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix: update DeepSeek pricing to new unified rates effective Sept 5, 2025 (RooCodeInc#7687)

- Updated deepseek-chat pricing: $0.56 input (cache miss), $0.07 (cache hit), $1.68 output
- Updated deepseek-reasoner pricing: same unified rates as deepseek-chat
- Both models now have identical pricing as per DeepSeek announcement
- Pricing takes effect at 16:00 UTC, Sept 5th, 2025

Fixes RooCodeInc#7685

Co-authored-by: Roo Code <[email protected]>

* feat: replace cloud waitlist ad with direct Cloud link in navigation (RooCodeInc#7742)

Co-authored-by: Roo Code <[email protected]>

* feat: show dash instead of zero for missing data on evals page (RooCodeInc#7748)

Co-authored-by: Roo Code <[email protected]>

* Feature/update vertex ai models and regions (RooCodeInc#7727)

* Add model info to eval runs table (RooCodeInc#7749)

* chore(deps): update dependency eslint-config-prettier to v10.1.8 (RooCodeInc#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency esbuild to v0.25.9 (RooCodeInc#5455)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @changesets/cli to v2.29.6 (RooCodeInc#7376)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency nock to v14.0.10 (RooCodeInc#6465)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint-plugin-turbo to v2.5.6 (RooCodeInc#7764)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* refactor(utils): simplify shell detection logic

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* test: update shell detection test expectation and mocks

* test: add mock cleanup in shell detection tests

* test: update shell detection tests to prioritize PowerShell 7

* fix(workspace-event-monitor): increase max retries and improve retry logic

* refactor(codebase): improve error handling and workspace validation

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* test: change console.error to console.warn in tests

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* test: enhance vscode mock implementations and error handling

* feat(chat): replace edit button with copy functionality

* refactor(core): enhance binary file detection and encoding handling

* separate task sync roomote control (RooCodeInc#7799)

* feat: separate Task Sync and Roomote Control settings

- Add new taskSyncEnabled setting to control task content syncing
- Keep remoteControlEnabled for Roomote Control functionality
- Task Sync controls whether task content is sent to cloud
- Roomote Control controls whether cloud can send instructions back
- Roomote Control now depends on Task Sync being enabled
- Usage metrics (tokens, cost) always reported regardless of settings
- Update UI with two separate toggles and clear descriptions
- Add info text explaining usage metrics are always reported

* feat: add missing translations for Task Sync and Roomote Control settings

- Added taskSync, taskSyncDescription, remoteControlRequiresTaskSync, and usageMetricsAlwaysReported keys to all non-English cloud.json files
- Updated cloudBenefit keys to match English structure
- Ensured all languages have consistent translation keys for the new Task Sync and Roomote Control features

* Cloud: cleanup taskSyncEnabled additions

* fix: correct indentation localization files

---------

Co-authored-by: Roo Code <[email protected]>

* feat: In-extension dismissible upsells for Roo Code Cloud (RooCodeInc#7850)

* First pass at separate upsell dialog

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* feat: add DismissibleUpsell component for dismissible messages

- Created DismissibleUpsell component with variant support (banner/default)
- Added dismissedUpsells to GlobalState for persistence
- Implemented message handlers for dismissing and retrieving dismissed upsells
- Added comprehensive tests for the component
- Uses VSCode extension globalState for persistent storage

* fix: Apply PR feedback for DismissibleUpsell component

- Changed from className to separate 'id' and 'className' props for better semantics
- Added i18n support for accessibility labels (aria-label and title)
- Fixed memory leak by adding mounted flag to prevent state updates after unmount
- Fixed race condition by sending dismiss message before hiding component
- Fixed inefficient array operations in webviewMessageHandler
- Added comprehensive test coverage for edge cases including:
  - Multiple rapid dismissals
  - Component unmounting during async operations
  - Invalid/malformed message handling
  - Proper message sending before unmount
- Added null checks for message data to handle edge cases gracefully

* New Cloud upsell dialog in task share and cloud view, shared component

* Properly working DismissibleUpsell

* Working upsell for long-running tasks

* CTA in AutoApproveMenu

* Home page CTA

* Fixes the autoapprove upsell and some tests

* Visual and copy fixes

* Test fix

* Translations

* Stray className attribute

* Cloud view fixes in a left-aligned layout

* Removes unnecessary test

* Less flaky tests

* Fixes sharebutton behavior and updates associated tests

* Update webview-ui/src/i18n/locales/it/cloud.json

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Fix dismissed flicker

* Fix long task upsell

---------

Co-authored-by: Daniel <[email protected]>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* v3.28.0 (RooCodeInc#7858)

* Changeset version bump (RooCodeInc#7859)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat(chat): add chat search functionality with highlighting

* feat: show notification when the checkpoint initialization fails (RooCodeInc#7766)

Co-authored-by: daniel-lxs <[email protected]>

* Bust cache in generated image preview (RooCodeInc#7860)

Co-authored-by: Roo Code <[email protected]>

* test: disable TaskHeader upsell tests

* test: refactor TaskHeader test file

* feat: Add cloud task button for opening tasks in Roo Code Cloud (RooCodeInc#7572)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>

* fix: center active mode in selector dropdown on open (RooCodeInc#7883)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Make Posthog telemetry the default (RooCodeInc#7909)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Fix: Preserve first message during conversation condensing (RooCodeInc#7910)

* In-app announcement for Roo Code Cloud (RooCodeInc#7914)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* chore: add changeset for v3.28.1 (RooCodeInc#7916)

* Changeset version bump (RooCodeInc#7917)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Remove Roo Code 3.25 release announcement

Removed the section about Roo Code 3.25 release notes.

* fix: restrict @-mention parsing to line-start or whitespace boundaries (RooCodeInc#7876)

Co-authored-by: Roo Code <[email protected]>

* Fix message queue re-queue loop in Task.ask() (RooCodeInc#7823)

* fix: preserve original first message context during conversation condensing (RooCodeInc#7939)

* Add a little padding to the cloudview (RooCodeInc#7954)

* test: increase test timeout configuration

* test(ci): enable translation check and optimize test workflow

* fix: make nested git repository warning persistent with path info (RooCodeInc#7885)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: include API key in Ollama /api/tags requests (RooCodeInc#7903)

Co-authored-by: Roo Code <[email protected]>

* feat: add Qwen3 Next 80B A3B models to chutes provider (RooCodeInc#7948)

* ux: Smaller and more subtle auto-approve UI (RooCodeInc#7894)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Disable Roomote Control on logout (RooCodeInc#7976)

* Remove chevrons from chat buttons (RooCodeInc#7970)

* chore: add changeset for v3.28.2 (RooCodeInc#7979)

* Changeset version bump (RooCodeInc#7980)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* ux: Makes text area buttons appear only when there's text (RooCodeInc#7987)

* fix: corrected C# tree-sitter query (RooCodeInc#7813)

* feat: Move slash commands to Settings tab with gear icon for discoverability (RooCodeInc#7988)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mubeen Zulfiqar <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Add Z.ai coding plan support (RooCodeInc#8003)

* chore(deps): bump axios from 1.9.0 to 1.12.0 (RooCodeInc#7963)

Bumps [axios](https://github.com/axios/axios) from 1.9.0 to 1.12.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.9.0...v1.12.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.12.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix context menu is obscured when edit message. (RooCodeInc#7951)

* feat: add keyboard shortcut for "Add to Context" action (RooCodeInc#7908)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: handle ByteString conversion errors in OpenAI embedders (RooCodeInc#8008)

* CONTRIBUTING.md tweaks and issue template rewrite (RooCodeInc#8014)

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Josh <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: mrubens <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: Piotr Wilkin (ilintar) <[email protected]>
Co-authored-by: Christiaan Arnoldus <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mohammad Danaee nia <[email protected]>
Co-authored-by: 淡草 <[email protected]>
Co-authored-by: WangXiaolong <[email protected]>
Co-authored-by: Peter Dave Hello <[email protected]>
Co-authored-by: Thach Nguyen <[email protected]>
Co-authored-by: CellenLee <[email protected]>
Co-authored-by: NaccOll <[email protected]>
Co-authored-by: Ton Hoang Nguyen (Bill) <[email protected]>
Co-authored-by: ssweens <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mubeen Zulfiqar <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
mini2s added a commit to zgsm-ai/costrict that referenced this pull request Sep 16, 2025
* Follow symlinks in rooignore checks (RooCodeInc#7405)

* Sonic -> Grok Code Fast (RooCodeInc#7426)

* chore: add changeset for v3.26.0 (RooCodeInc#7428)

* Changeset version bump (RooCodeInc#7429)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: Add Vercel AI Gateway provider integration (RooCodeInc#7396)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>

* feat: Enable on-disk storage for Qdrant vectors and HNSW index (RooCodeInc#7182)

* fix: use anthropic protocol for token counting when using anthropic models via Vercel AI Gateway (RooCodeInc#7433)

- Added condition in getApiProtocol to return 'anthropic' for vercel-ai-gateway when modelId starts with 'anthropic/'
- Added tests for Vercel AI Gateway provider protocol detection

This ensures proper token counting for Anthropic models accessed through Vercel AI Gateway, as Anthropic and OpenAI count tokens differently (Anthropic excludes cache tokens from input count, OpenAI includes them).

* fix: remove duplicate cache display in task header (RooCodeInc#7443)

* Random chat text area cleanup (RooCodeInc#7436)

* Update @roo-code/cloud to enable roomote control for cloud agents (RooCodeInc#7446)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Always set remoteControlEnabled to true for cloud agents (RooCodeInc#7448)

* chore: add changeset for v3.26.1 (RooCodeInc#7459)

* feat: show model ID in API configuration dropdown (RooCodeInc#7423)

* feat: update tooltip component to match native VSCode tooltip shadow styling (RooCodeInc#7457)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: cte <[email protected]>

* Add support for Vercel embeddings (RooCodeInc#7445)

Co-authored-by: daniel-lxs <[email protected]>

* Remove dot before model display (RooCodeInc#7461)

* Update contributors list (RooCodeInc#7109)

Co-authored-by: mrubens <[email protected]>

* Update 3.26.1 changeset (RooCodeInc#7463)

* Changeset version bump (RooCodeInc#7460)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Add type for RooCodeEventName.TaskSpawned (RooCodeInc#7465)

* fix: hide .rooignore'd files from environment details by default (RooCodeInc#7369)

* fix: change default showRooIgnoredFiles to false to hide ignored files

- Changed default value from true to false across all files
- Updated tests to reflect the new default behavior
- This prevents ignored files from appearing in environment details

Fixes RooCodeInc#7368

* fix: update tests to match new showRooIgnoredFiles default

* fix: update test expectation to match new showRooIgnoredFiles default value

The PR changed the default value of showRooIgnoredFiles from true to false,
so the test needs to expect false instead of true when calling formatFilesList.

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: exclude browser scroll actions from repetition detection (RooCodeInc#7471)

- Modified ToolRepetitionDetector to skip repetition detection for browser_action scroll_down and scroll_up actions
- Added isBrowserScrollAction() helper method to identify scroll actions
- Added comprehensive tests for the new behavior
- Fixes issue where multiple scroll actions were incorrectly flagged as being stuck in a loop

Resolves: RooCodeInc#7470

Co-authored-by: Roo Code <[email protected]>

* Fix GPT-5 Responses API issues with condensing and image support (RooCodeInc#7067)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>

* Bump cloud to 0.25.0 (RooCodeInc#7475)

* feat: add image generation tool with OpenRouter integration (RooCodeInc#7474)

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: cte <[email protected]>

* Make the default image filename more generic (RooCodeInc#7479)

* Release v3.26.2 (RooCodeInc#7490)

* Support free imagegen (RooCodeInc#7493)

* feat: update OpenRouter API to support input/output modalities and filter image generation models (RooCodeInc#7492)

* Add padding to image model picker (RooCodeInc#7494)

* fix: prevent dirty state on initial mount in ImageGenerationSettings (RooCodeInc#7495)

* Changeset version bump (RooCodeInc#7491)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Show console logging in vitests when the --no-silent flag is set (RooCodeInc#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 <[email protected]>

* Move @roo-code/cloud to the Roo-Code repo (RooCodeInc#7503)

* Refactor the extension bridge (RooCodeInc#7515)

* Implement deferred task subscriptions (RooCodeInc#7517)

* feat: add optional input image parameter to image generation tool (RooCodeInc#7525)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: sync extension bridge settings with cloud (RooCodeInc#7535)

- Use CloudService.getUserSettings() for remoteControlEnabled instead of global state
- Update CloudService.updateUserSettings when toggling remote control
- Add BridgeOrchestrator.connectOrDisconnect handling in settings update handler
- Remove dependency on contentProxy/globalSettings for remote control state
---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* refactor: flatten image generation settings structure (RooCodeInc#7536)

* chore: add changeset for v3.26.3 (RooCodeInc#7541)

* Changeset version bump (RooCodeInc#7542)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Mode and provider profile selector (RooCodeInc#7545)

* Putting the Roo in Roo-leases (RooCodeInc#7546)

* Fix evals (RooCodeInc#7547)

* fix: special tokens should not break task processing (RooCodeInc#7540)

* docs: update PR template branding from Roo Code to Costrict

* feat: optimize memory usage for image handling in webview (RooCodeInc#7556)

* feat: optimize memory usage for image handling in webview

- Replace base64 image data with webview URIs to reduce memory footprint
- Add proper resource roots to webview for workspace file access
- Implement convertToWebviewUri method for safe file-to-URI conversion
- Update ImageViewer to handle both webview URIs and file paths separately
- Add image message type for proper image rendering in chat
- Improve error handling and display for failed image loads
- Add comprehensive tests for ImageViewer component
- Format display paths as relative for better readability

This change significantly reduces memory usage by avoiding base64 encoding
of images and instead using VSCode's webview URI system for direct file
access. Images are now loaded on-demand from disk rather than being held
in memory as base64 strings.

* fix: address PR review comments

- Use safeJsonParse instead of JSON.parse in ChatRow.tsx
- Add type definition for parsed image info
- Add more specific error types in ClineProvider.ts
- Add comprehensive JSDoc comments to ImageBlock.tsx
- Improve error handling and type safety

* fix: address MrUbens' review comments

- Remove hardcoded 'rc1' pattern in formatDisplayPath, use generic workspace detection
- Internationalize 'No image data' text using i18n system

* chore: remove useless comment

* chore(i18n): add image.noData to all locales to fix translation check

* test: update ImageViewer.spec to align with i18n key and flexible path formatting

* feat: rename Account tab to Cloud tab (RooCodeInc#7558)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add Ollama API key support for Turbo mode (RooCodeInc#7425)

* feat: add Ollama API key support for Turbo mode

- Add ollamaApiKey field to ProviderSettings schema
- Add ollamaApiKey to SECRET_STATE_KEYS for secure storage
- Update Ollama and NativeOllama providers to use API key for authentication
- Add UI field for Ollama API key (shown when custom base URL is provided)
- Add test coverage for API key functionality

This enables users to use Ollama Turbo with datacenter-grade hardware by providing an API key for authenticated Ollama instances or cloud services.

* fix: use VSCodeTextField for Ollama API key field

Remove non-existent ApiKeyField import and use standard VSCodeTextField with password type, matching other provider implementations

* Add missing translation keys for Ollama API key support

- Add providers.ollama.apiKey and providers.ollama.apiKeyHelp to all 18 language files
- Support for authenticated Ollama instances and cloud services
- Relates to PR RooCodeInc#7425

* refactor: improve type safety for Ollama client configuration

- Replace 'any' type with proper OllamaOptions (Config) type
- Import Config type from ollama package for better type checking

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Disconnect extension bridge on logout (RooCodeInc#7563)

* Disconnect extension bridge on logout

* Remove bad test

* Cleanup

* Fix claudeCode.notFound translation key (RooCodeInc#7571)

I think I saw someone post a screenshot where "errors.claudeCode.notFound" was shown untranslated.

* v3.26.4 (RooCodeInc#7579)

* Update contributors list (RooCodeInc#7462)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7580)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add configurable embedding batch size for code indexing (RooCodeInc#7464)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Shows a pill with the base Roo Code Cloud URL when not pointing to pr… (RooCodeInc#7555)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Cloud: fix provider syncing (RooCodeInc#7603)

ClineProvider creation was moved before CloudService which broke
the old way of doing things.

* fix: add cache reporting support for OpenAI-Native provider (RooCodeInc#7602)

* fix: add cache reporting support for OpenAI-Native provider

- Add normalizeUsage method to properly extract cache tokens from Responses API
- Support both detailed token shapes (input_tokens_details) and legacy fields
- Calculate cache read/write tokens with proper fallbacks
- Include reasoning tokens when available in output_tokens_details
- Ensure accurate cost calculation using uncached input tokens

This fixes the issue where caching information was not being reported
when using the OpenAI-Native provider with the Responses API.

* fix: improve cache token normalization and add comprehensive tests

- Add fallback to derive total input tokens from details when totals are missing
- Remove unused convertToOpenAiMessages import
- Add comment explaining cost calculation alignment with Gemini provider
- Add comprehensive test coverage for normalizeUsage method covering:
  - Detailed token shapes with cached/miss tokens
  - Legacy field names and SSE-only events
  - Edge cases including missing totals with details-only
  - Cost calculation with uncached input tokens

* fix: address PR review comments

- Remove incorrect fallback to missFromDetails for cache write tokens
- Fix cost calculation to pass total input tokens (calculateApiCostOpenAI handles subtraction)
- Improve readability by extracting cache detail checks to intermediate variables
- Remove redundant ?? undefined
- Update tests to reflect correct behavior (miss tokens are not cache writes)
- Add clarifying comments about cache miss vs cache write tokens

* feat: add auto-approve support for MCP access_resource tool (RooCodeInc#7606)

* Move message queue to the extension host (RooCodeInc#7604)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Send custom modes to the extension bridge (RooCodeInc#7612)

* Never give up in socket transport (RooCodeInc#7616)

* Fix socket-io client event handling (RooCodeInc#7618)

* More socket-io client fixes from PR feedback (RooCodeInc#7619)

* More socket-io client logging improvements (RooCodeInc#7620)

* Publish subtask events (RooCodeInc#7626)

* Update chutes.ts to add Qwen3 235B A22B Thinking 2507 model (RooCodeInc#7578)

Co-authored-by: Matt Rubens <[email protected]>

* chore: add changeset for v3.26.5 (RooCodeInc#7628)

* Update contributors list (RooCodeInc#7629)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7630)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add run_slash_command tool for executing slash commands (RooCodeInc#7473)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Focus the extension when receiving bridge commands (RooCodeInc#7633)

* Release: v1.73.0 (RooCodeInc#7636)

* Cloud: remove extension_bridge_enabled for personal users (RooCodeInc#7638)

* Publish token usage metrics (RooCodeInc#7637)

* fix: preserve scroll position when switching tabs in settings (RooCodeInc#7587)

* fix: preserve scroll position when switching tabs in settings

* ui(settings): restore scroll synchronously to prevent flicker; dx(ui): name TabContent for clearer DevTools

---------

Co-authored-by: Daniel Riccio <[email protected]>

* feat: add Kimi K2 Turbo model configuration to moonshotModels (RooCodeInc#7593)

* feat: add Kimi K2 Turbo model configuration to moonshotModels

* feat: update Kimi K2 Turbo pricing and cache read prices

* fix: use askApproval wrapper in insert_content and search_and_replace tools (RooCodeInc#7649)

Fixes issue where isWriteProtected was incorrectly passed as the partial flag
to task.ask(), causing "Current ask promise was ignored (#1)" error.

Both tools now use the askApproval wrapper function which correctly handles
the parameter ordering, passing undefined for progressStatus and isWriteProtected
as the fourth parameter.

Fixes RooCodeInc#7648

Co-authored-by: Roo Code <[email protected]>

* Release v3.26.6 (RooCodeInc#7650)

* Changeset version bump (RooCodeInc#7651)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Delete .github/workflows/discord-pr-notify.yml

* Remove unused slack notif (RooCodeInc#7655)

* Handle zsh process substitution correctly (RooCodeInc#7658)

* Handle zsh glob qualifiers correctly (RooCodeInc#7667)

* Minor zh-TW Traditional Chinese locale typo fix (RooCodeInc#7672)

* feat: Add DeepInfra as a model provider in Roo Code (RooCodeInc#7677)

* fix: validate MCP tool exists before execution (RooCodeInc#7632)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* fix: add error transform to cryptic openAI SDK errors when API key is invalid (RooCodeInc#7586)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: OpenAI Responses API service tiers (flex/priority) — UI selector, pricing, and tests (RooCodeInc#7646)

Co-authored-by: Daniel Riccio <[email protected]>

* fix: prevent countdown timer from showing in history for answered follow-up questions (RooCodeInc#7686)

* fix: Fix the issue of Moonshot's maximum return token count being limited to 1024 (RooCodeInc#7673)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* feat: update kimi-k2-0905-preview and kimi-k2-turbo-preview (RooCodeInc#7663)

* Fix test

* Release v3.26.7 (RooCodeInc#7691)

* Delete .changeset/petite-rats-admire.md

* feat: Add Kimi K2 0905 model to Groq, Moonshot, and Fireworks providers (RooCodeInc#7693)

* Use an allowlist to keep the prompt default shell sane (RooCodeInc#7681)

* Changeset version bump (RooCodeInc#7690)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Fix: Improve WelcomeView styling and readability (RooCodeInc#7682)

* fix: improve WelcomeView styling and readability

- Reduced excessive padding from p-16 to p-6
- Removed excessive bold text throughout
- Made provider cards more compact with smaller icons (32x32px)
- Increased introduction text size from text-sm to text-base for better visibility
- Centered the main greeting title
- Improved visual hierarchy with proper text sizing and spacing
- Added subtle borders and improved color contrast

* fix: remove undefined color class from incentive text

Removed the text-vscode-warningForeground class as it wasn't defined in index.css. The incentive text now uses default color which looks good.

* feat: add Kimi K2-0905 model to Chutes provider (RooCodeInc#7701)

Co-authored-by: Roo Code <[email protected]>

* fix: handle array paths from VSCode terminal profiles (RooCodeInc#7697)

* fix: handle array paths from VSCode terminal profiles

- Updated terminal profile interfaces to support string | string[] for path property
- Added normalizeShellPath helper to safely extract first element from array paths
- Modified isShellAllowed to handle both string and array inputs
- Updated getWindowsShellFromVSCode, getMacShellFromVSCode, and getLinuxShellFromVSCode to use normalizeShellPath
- Added comprehensive tests for array path handling

Fixes RooCodeInc#7695

* feat: add validateShellPath export for robust shell validation

- Created validateShellPath as a public API for shell path validation
- Refactored internal validation logic into isShellAllowedInternal
- Added comprehensive test coverage for all edge cases
- Maintains backward compatibility with deprecated isShellAllowed
- Handles arrays, strings, null, undefined, and nested arrays gracefully

* Simplify roomote's work a little

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Edit/Delete User Message (RooCodeInc#7447)

* fix: prevent stack overflow in codebase indexing for large projects (RooCodeInc#7712)

* fix: identify mcp and slash command config path in multiple folder workspace (RooCodeInc#6904)

* fix: resolve CI e2e test ETIMEDOUT errors when downloading VS Code (RooCodeInc#7583)

* fix: Tackling Race/State condition issue by Changing the Code Design for Gemini Grounding Sources (RooCodeInc#7434)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: preserve context by retrying with full conversation on invalid previous_response_id (RooCodeInc#7714)

* chore: add changeset for v3.26.8 (RooCodeInc#7715)

* feat(checkpoints): create checkpoint when user sends a message (RooCodeInc#7713)

* feat(checkpoints): create checkpoint on user message send

* fix(checkpoints): suppress implicit user-message checkpoint row; keep current checkpoint updated without a chat row

* Fix checkpoint suppression for user messages

- Propagate suppressMessage flag through event chain properly
- Update ChatView to check checkpoint metadata for suppressMessage flag
- Ensure checkpoint messages are created but not rendered when suppressed
- Fix bug where checkpointSave(false) should have been checkpointSave(true)

* fix: only create checkpoint on user message when files have changed

- Changed allowEmpty from true to false in checkpointSave call
- Checkpoints will now only be created when there are actual file changes
- This avoids creating empty commits in the shadow git repository

* test: update checkpoint test to include suppressMessage parameter

- Fixed test expectation to match the new function signature
- saveCheckpoint now expects both allowEmpty and suppressMessage parameters

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Bump to 3.27.0 (RooCodeInc#7719)

* Changeset version bump (RooCodeInc#7716)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix: update DeepSeek pricing to new unified rates effective Sept 5, 2025 (RooCodeInc#7687)

- Updated deepseek-chat pricing: $0.56 input (cache miss), $0.07 (cache hit), $1.68 output
- Updated deepseek-reasoner pricing: same unified rates as deepseek-chat
- Both models now have identical pricing as per DeepSeek announcement
- Pricing takes effect at 16:00 UTC, Sept 5th, 2025

Fixes RooCodeInc#7685

Co-authored-by: Roo Code <[email protected]>

* feat: replace cloud waitlist ad with direct Cloud link in navigation (RooCodeInc#7742)

Co-authored-by: Roo Code <[email protected]>

* feat: show dash instead of zero for missing data on evals page (RooCodeInc#7748)

Co-authored-by: Roo Code <[email protected]>

* Feature/update vertex ai models and regions (RooCodeInc#7727)

* Add model info to eval runs table (RooCodeInc#7749)

* chore(deps): update dependency eslint-config-prettier to v10.1.8 (RooCodeInc#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency esbuild to v0.25.9 (RooCodeInc#5455)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @changesets/cli to v2.29.6 (RooCodeInc#7376)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency nock to v14.0.10 (RooCodeInc#6465)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint-plugin-turbo to v2.5.6 (RooCodeInc#7764)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* refactor(utils): simplify shell detection logic

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* test: update shell detection test expectation and mocks

* test: add mock cleanup in shell detection tests

* test: update shell detection tests to prioritize PowerShell 7

* fix(workspace-event-monitor): increase max retries and improve retry logic

* refactor(codebase): improve error handling and workspace validation

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* test: change console.error to console.warn in tests

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* test: enhance vscode mock implementations and error handling

* feat(chat): replace edit button with copy functionality

* refactor(core): enhance binary file detection and encoding handling

* separate task sync roomote control (RooCodeInc#7799)

* feat: separate Task Sync and Roomote Control settings

- Add new taskSyncEnabled setting to control task content syncing
- Keep remoteControlEnabled for Roomote Control functionality
- Task Sync controls whether task content is sent to cloud
- Roomote Control controls whether cloud can send instructions back
- Roomote Control now depends on Task Sync being enabled
- Usage metrics (tokens, cost) always reported regardless of settings
- Update UI with two separate toggles and clear descriptions
- Add info text explaining usage metrics are always reported

* feat: add missing translations for Task Sync and Roomote Control settings

- Added taskSync, taskSyncDescription, remoteControlRequiresTaskSync, and usageMetricsAlwaysReported keys to all non-English cloud.json files
- Updated cloudBenefit keys to match English structure
- Ensured all languages have consistent translation keys for the new Task Sync and Roomote Control features

* Cloud: cleanup taskSyncEnabled additions

* fix: correct indentation localization files

---------

Co-authored-by: Roo Code <[email protected]>

* feat: In-extension dismissible upsells for Roo Code Cloud (RooCodeInc#7850)

* First pass at separate upsell dialog

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* feat: add DismissibleUpsell component for dismissible messages

- Created DismissibleUpsell component with variant support (banner/default)
- Added dismissedUpsells to GlobalState for persistence
- Implemented message handlers for dismissing and retrieving dismissed upsells
- Added comprehensive tests for the component
- Uses VSCode extension globalState for persistent storage

* fix: Apply PR feedback for DismissibleUpsell component

- Changed from className to separate 'id' and 'className' props for better semantics
- Added i18n support for accessibility labels (aria-label and title)
- Fixed memory leak by adding mounted flag to prevent state updates after unmount
- Fixed race condition by sending dismiss message before hiding component
- Fixed inefficient array operations in webviewMessageHandler
- Added comprehensive test coverage for edge cases including:
  - Multiple rapid dismissals
  - Component unmounting during async operations
  - Invalid/malformed message handling
  - Proper message sending before unmount
- Added null checks for message data to handle edge cases gracefully

* New Cloud upsell dialog in task share and cloud view, shared component

* Properly working DismissibleUpsell

* Working upsell for long-running tasks

* CTA in AutoApproveMenu

* Home page CTA

* Fixes the autoapprove upsell and some tests

* Visual and copy fixes

* Test fix

* Translations

* Stray className attribute

* Cloud view fixes in a left-aligned layout

* Removes unnecessary test

* Less flaky tests

* Fixes sharebutton behavior and updates associated tests

* Update webview-ui/src/i18n/locales/it/cloud.json

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Fix dismissed flicker

* Fix long task upsell

---------

Co-authored-by: Daniel <[email protected]>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* v3.28.0 (RooCodeInc#7858)

* Changeset version bump (RooCodeInc#7859)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat(chat): add chat search functionality with highlighting

* feat: show notification when the checkpoint initialization fails (RooCodeInc#7766)

Co-authored-by: daniel-lxs <[email protected]>

* Bust cache in generated image preview (RooCodeInc#7860)

Co-authored-by: Roo Code <[email protected]>

* test: disable TaskHeader upsell tests

* test: refactor TaskHeader test file

* feat: Add cloud task button for opening tasks in Roo Code Cloud (RooCodeInc#7572)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>

* fix: center active mode in selector dropdown on open (RooCodeInc#7883)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Make Posthog telemetry the default (RooCodeInc#7909)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Fix: Preserve first message during conversation condensing (RooCodeInc#7910)

* In-app announcement for Roo Code Cloud (RooCodeInc#7914)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* chore: add changeset for v3.28.1 (RooCodeInc#7916)

* Changeset version bump (RooCodeInc#7917)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Remove Roo Code 3.25 release announcement

Removed the section about Roo Code 3.25 release notes.

* fix: restrict @-mention parsing to line-start or whitespace boundaries (RooCodeInc#7876)

Co-authored-by: Roo Code <[email protected]>

* Fix message queue re-queue loop in Task.ask() (RooCodeInc#7823)

* fix: preserve original first message context during conversation condensing (RooCodeInc#7939)

* Add a little padding to the cloudview (RooCodeInc#7954)

* test: increase test timeout configuration

* test(ci): enable translation check and optimize test workflow

* fix: make nested git repository warning persistent with path info (RooCodeInc#7885)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: include API key in Ollama /api/tags requests (RooCodeInc#7903)

Co-authored-by: Roo Code <[email protected]>

* feat: add Qwen3 Next 80B A3B models to chutes provider (RooCodeInc#7948)

* ux: Smaller and more subtle auto-approve UI (RooCodeInc#7894)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Disable Roomote Control on logout (RooCodeInc#7976)

* Remove chevrons from chat buttons (RooCodeInc#7970)

* chore: add changeset for v3.28.2 (RooCodeInc#7979)

* Changeset version bump (RooCodeInc#7980)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* ux: Makes text area buttons appear only when there's text (RooCodeInc#7987)

* fix: corrected C# tree-sitter query (RooCodeInc#7813)

* feat: Move slash commands to Settings tab with gear icon for discoverability (RooCodeInc#7988)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mubeen Zulfiqar <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Add Z.ai coding plan support (RooCodeInc#8003)

* chore(deps): bump axios from 1.9.0 to 1.12.0 (RooCodeInc#7963)

Bumps [axios](https://github.com/axios/axios) from 1.9.0 to 1.12.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.9.0...v1.12.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.12.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix context menu is obscured when edit message. (RooCodeInc#7951)

* feat: add keyboard shortcut for "Add to Context" action (RooCodeInc#7908)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: handle ByteString conversion errors in OpenAI embedders (RooCodeInc#8008)

* CONTRIBUTING.md tweaks and issue template rewrite (RooCodeInc#8014)

* feat: Reposition Add Image button inside ChatTextArea (RooCodeInc#7989)

* feat: move Add Image button inside ChatTextArea

- Moved Add Image button from bottom toolbar to top-right inside text area
- Repositioned Enhance Prompt button to be above Send button (bottom-right)
- Both buttons now follow similar positioning pattern as Send button
- Maintains consistent button styling and transitions

* fix: corrected C# tree-sitter query (RooCodeInc#7813)

* feat: Move slash commands to Settings tab with gear icon for discoverability (RooCodeInc#7988)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mubeen Zulfiqar <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Add Z.ai coding plan support (RooCodeInc#8003)

* chore(deps): bump axios from 1.9.0 to 1.12.0 (RooCodeInc#7963)

Bumps [axios](https://github.com/axios/axios) from 1.9.0 to 1.12.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.9.0...v1.12.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.12.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix context menu is obscured when edit message. (RooCodeInc#7951)

* feat: add keyboard shortcut for "Add to Context" action (RooCodeInc#7908)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: handle ByteString conversion errors in OpenAI embedders (RooCodeInc#8008)

* CONTRIBUTING.md tweaks and issue template rewrite (RooCodeInc#8014)

* Visual tweaks

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Mubeen Zulfiqar <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: NaccOll <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>

* feat: add i18n support for git commits and file operations

* feat(i18n): update context menu translations in zh-CN and zh-TW locales

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Josh <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: mrubens <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: Piotr Wilkin (ilintar) <[email protected]>
Co-authored-by: Christiaan Arnoldus <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mohammad Danaee nia <[email protected]>
Co-authored-by: 淡草 <[email protected]>
Co-authored-by: WangXiaolong <[email protected]>
Co-authored-by: Peter Dave Hello <[email protected]>
Co-authored-by: Thach Nguyen <[email protected]>
Co-authored-by: CellenLee <[email protected]>
Co-authored-by: NaccOll <[email protected]>
Co-authored-by: Ton Hoang Nguyen (Bill) <[email protected]>
Co-authored-by: ssweens <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mubeen Zulfiqar <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
mini2s added a commit to zgsm-ai/costrict that referenced this pull request Sep 16, 2025
* Follow symlinks in rooignore checks (RooCodeInc#7405)

* Sonic -> Grok Code Fast (RooCodeInc#7426)

* chore: add changeset for v3.26.0 (RooCodeInc#7428)

* Changeset version bump (RooCodeInc#7429)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: Add Vercel AI Gateway provider integration (RooCodeInc#7396)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>

* feat: Enable on-disk storage for Qdrant vectors and HNSW index (RooCodeInc#7182)

* fix: use anthropic protocol for token counting when using anthropic models via Vercel AI Gateway (RooCodeInc#7433)

- Added condition in getApiProtocol to return 'anthropic' for vercel-ai-gateway when modelId starts with 'anthropic/'
- Added tests for Vercel AI Gateway provider protocol detection

This ensures proper token counting for Anthropic models accessed through Vercel AI Gateway, as Anthropic and OpenAI count tokens differently (Anthropic excludes cache tokens from input count, OpenAI includes them).

* fix: remove duplicate cache display in task header (RooCodeInc#7443)

* Random chat text area cleanup (RooCodeInc#7436)

* Update @roo-code/cloud to enable roomote control for cloud agents (RooCodeInc#7446)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Always set remoteControlEnabled to true for cloud agents (RooCodeInc#7448)

* chore: add changeset for v3.26.1 (RooCodeInc#7459)

* feat: show model ID in API configuration dropdown (RooCodeInc#7423)

* feat: update tooltip component to match native VSCode tooltip shadow styling (RooCodeInc#7457)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: cte <[email protected]>

* Add support for Vercel embeddings (RooCodeInc#7445)

Co-authored-by: daniel-lxs <[email protected]>

* Remove dot before model display (RooCodeInc#7461)

* Update contributors list (RooCodeInc#7109)

Co-authored-by: mrubens <[email protected]>

* Update 3.26.1 changeset (RooCodeInc#7463)

* Changeset version bump (RooCodeInc#7460)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Add type for RooCodeEventName.TaskSpawned (RooCodeInc#7465)

* fix: hide .rooignore'd files from environment details by default (RooCodeInc#7369)

* fix: change default showRooIgnoredFiles to false to hide ignored files

- Changed default value from true to false across all files
- Updated tests to reflect the new default behavior
- This prevents ignored files from appearing in environment details

Fixes RooCodeInc#7368

* fix: update tests to match new showRooIgnoredFiles default

* fix: update test expectation to match new showRooIgnoredFiles default value

The PR changed the default value of showRooIgnoredFiles from true to false,
so the test needs to expect false instead of true when calling formatFilesList.

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: exclude browser scroll actions from repetition detection (RooCodeInc#7471)

- Modified ToolRepetitionDetector to skip repetition detection for browser_action scroll_down and scroll_up actions
- Added isBrowserScrollAction() helper method to identify scroll actions
- Added comprehensive tests for the new behavior
- Fixes issue where multiple scroll actions were incorrectly flagged as being stuck in a loop

Resolves: RooCodeInc#7470

Co-authored-by: Roo Code <[email protected]>

* Fix GPT-5 Responses API issues with condensing and image support (RooCodeInc#7067)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>

* Bump cloud to 0.25.0 (RooCodeInc#7475)

* feat: add image generation tool with OpenRouter integration (RooCodeInc#7474)

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: cte <[email protected]>

* Make the default image filename more generic (RooCodeInc#7479)

* Release v3.26.2 (RooCodeInc#7490)

* Support free imagegen (RooCodeInc#7493)

* feat: update OpenRouter API to support input/output modalities and filter image generation models (RooCodeInc#7492)

* Add padding to image model picker (RooCodeInc#7494)

* fix: prevent dirty state on initial mount in ImageGenerationSettings (RooCodeInc#7495)

* Changeset version bump (RooCodeInc#7491)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Show console logging in vitests when the --no-silent flag is set (RooCodeInc#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 <[email protected]>

* Move @roo-code/cloud to the Roo-Code repo (RooCodeInc#7503)

* Refactor the extension bridge (RooCodeInc#7515)

* Implement deferred task subscriptions (RooCodeInc#7517)

* feat: add optional input image parameter to image generation tool (RooCodeInc#7525)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: sync extension bridge settings with cloud (RooCodeInc#7535)

- Use CloudService.getUserSettings() for remoteControlEnabled instead of global state
- Update CloudService.updateUserSettings when toggling remote control
- Add BridgeOrchestrator.connectOrDisconnect handling in settings update handler
- Remove dependency on contentProxy/globalSettings for remote control state
---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* refactor: flatten image generation settings structure (RooCodeInc#7536)

* chore: add changeset for v3.26.3 (RooCodeInc#7541)

* Changeset version bump (RooCodeInc#7542)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Mode and provider profile selector (RooCodeInc#7545)

* Putting the Roo in Roo-leases (RooCodeInc#7546)

* Fix evals (RooCodeInc#7547)

* fix: special tokens should not break task processing (RooCodeInc#7540)

* docs: update PR template branding from Roo Code to Costrict

* feat: optimize memory usage for image handling in webview (RooCodeInc#7556)

* feat: optimize memory usage for image handling in webview

- Replace base64 image data with webview URIs to reduce memory footprint
- Add proper resource roots to webview for workspace file access
- Implement convertToWebviewUri method for safe file-to-URI conversion
- Update ImageViewer to handle both webview URIs and file paths separately
- Add image message type for proper image rendering in chat
- Improve error handling and display for failed image loads
- Add comprehensive tests for ImageViewer component
- Format display paths as relative for better readability

This change significantly reduces memory usage by avoiding base64 encoding
of images and instead using VSCode's webview URI system for direct file
access. Images are now loaded on-demand from disk rather than being held
in memory as base64 strings.

* fix: address PR review comments

- Use safeJsonParse instead of JSON.parse in ChatRow.tsx
- Add type definition for parsed image info
- Add more specific error types in ClineProvider.ts
- Add comprehensive JSDoc comments to ImageBlock.tsx
- Improve error handling and type safety

* fix: address MrUbens' review comments

- Remove hardcoded 'rc1' pattern in formatDisplayPath, use generic workspace detection
- Internationalize 'No image data' text using i18n system

* chore: remove useless comment

* chore(i18n): add image.noData to all locales to fix translation check

* test: update ImageViewer.spec to align with i18n key and flexible path formatting

* feat: rename Account tab to Cloud tab (RooCodeInc#7558)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add Ollama API key support for Turbo mode (RooCodeInc#7425)

* feat: add Ollama API key support for Turbo mode

- Add ollamaApiKey field to ProviderSettings schema
- Add ollamaApiKey to SECRET_STATE_KEYS for secure storage
- Update Ollama and NativeOllama providers to use API key for authentication
- Add UI field for Ollama API key (shown when custom base URL is provided)
- Add test coverage for API key functionality

This enables users to use Ollama Turbo with datacenter-grade hardware by providing an API key for authenticated Ollama instances or cloud services.

* fix: use VSCodeTextField for Ollama API key field

Remove non-existent ApiKeyField import and use standard VSCodeTextField with password type, matching other provider implementations

* Add missing translation keys for Ollama API key support

- Add providers.ollama.apiKey and providers.ollama.apiKeyHelp to all 18 language files
- Support for authenticated Ollama instances and cloud services
- Relates to PR RooCodeInc#7425

* refactor: improve type safety for Ollama client configuration

- Replace 'any' type with proper OllamaOptions (Config) type
- Import Config type from ollama package for better type checking

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Disconnect extension bridge on logout (RooCodeInc#7563)

* Disconnect extension bridge on logout

* Remove bad test

* Cleanup

* Fix claudeCode.notFound translation key (RooCodeInc#7571)

I think I saw someone post a screenshot where "errors.claudeCode.notFound" was shown untranslated.

* v3.26.4 (RooCodeInc#7579)

* Update contributors list (RooCodeInc#7462)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7580)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add configurable embedding batch size for code indexing (RooCodeInc#7464)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Shows a pill with the base Roo Code Cloud URL when not pointing to pr… (RooCodeInc#7555)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Cloud: fix provider syncing (RooCodeInc#7603)

ClineProvider creation was moved before CloudService which broke
the old way of doing things.

* fix: add cache reporting support for OpenAI-Native provider (RooCodeInc#7602)

* fix: add cache reporting support for OpenAI-Native provider

- Add normalizeUsage method to properly extract cache tokens from Responses API
- Support both detailed token shapes (input_tokens_details) and legacy fields
- Calculate cache read/write tokens with proper fallbacks
- Include reasoning tokens when available in output_tokens_details
- Ensure accurate cost calculation using uncached input tokens

This fixes the issue where caching information was not being reported
when using the OpenAI-Native provider with the Responses API.

* fix: improve cache token normalization and add comprehensive tests

- Add fallback to derive total input tokens from details when totals are missing
- Remove unused convertToOpenAiMessages import
- Add comment explaining cost calculation alignment with Gemini provider
- Add comprehensive test coverage for normalizeUsage method covering:
  - Detailed token shapes with cached/miss tokens
  - Legacy field names and SSE-only events
  - Edge cases including missing totals with details-only
  - Cost calculation with uncached input tokens

* fix: address PR review comments

- Remove incorrect fallback to missFromDetails for cache write tokens
- Fix cost calculation to pass total input tokens (calculateApiCostOpenAI handles subtraction)
- Improve readability by extracting cache detail checks to intermediate variables
- Remove redundant ?? undefined
- Update tests to reflect correct behavior (miss tokens are not cache writes)
- Add clarifying comments about cache miss vs cache write tokens

* feat: add auto-approve support for MCP access_resource tool (RooCodeInc#7606)

* Move message queue to the extension host (RooCodeInc#7604)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Send custom modes to the extension bridge (RooCodeInc#7612)

* Never give up in socket transport (RooCodeInc#7616)

* Fix socket-io client event handling (RooCodeInc#7618)

* More socket-io client fixes from PR feedback (RooCodeInc#7619)

* More socket-io client logging improvements (RooCodeInc#7620)

* Publish subtask events (RooCodeInc#7626)

* Update chutes.ts to add Qwen3 235B A22B Thinking 2507 model (RooCodeInc#7578)

Co-authored-by: Matt Rubens <[email protected]>

* chore: add changeset for v3.26.5 (RooCodeInc#7628)

* Update contributors list (RooCodeInc#7629)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7630)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add run_slash_command tool for executing slash commands (RooCodeInc#7473)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Focus the extension when receiving bridge commands (RooCodeInc#7633)

* Release: v1.73.0 (RooCodeInc#7636)

* Cloud: remove extension_bridge_enabled for personal users (RooCodeInc#7638)

* Publish token usage metrics (RooCodeInc#7637)

* fix: preserve scroll position when switching tabs in settings (RooCodeInc#7587)

* fix: preserve scroll position when switching tabs in settings

* ui(settings): restore scroll synchronously to prevent flicker; dx(ui): name TabContent for clearer DevTools

---------

Co-authored-by: Daniel Riccio <[email protected]>

* feat: add Kimi K2 Turbo model configuration to moonshotModels (RooCodeInc#7593)

* feat: add Kimi K2 Turbo model configuration to moonshotModels

* feat: update Kimi K2 Turbo pricing and cache read prices

* fix: use askApproval wrapper in insert_content and search_and_replace tools (RooCodeInc#7649)

Fixes issue where isWriteProtected was incorrectly passed as the partial flag
to task.ask(), causing "Current ask promise was ignored (#1)" error.

Both tools now use the askApproval wrapper function which correctly handles
the parameter ordering, passing undefined for progressStatus and isWriteProtected
as the fourth parameter.

Fixes RooCodeInc#7648

Co-authored-by: Roo Code <[email protected]>

* Release v3.26.6 (RooCodeInc#7650)

* Changeset version bump (RooCodeInc#7651)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Delete .github/workflows/discord-pr-notify.yml

* Remove unused slack notif (RooCodeInc#7655)

* Handle zsh process substitution correctly (RooCodeInc#7658)

* Handle zsh glob qualifiers correctly (RooCodeInc#7667)

* Minor zh-TW Traditional Chinese locale typo fix (RooCodeInc#7672)

* feat: Add DeepInfra as a model provider in Roo Code (RooCodeInc#7677)

* fix: validate MCP tool exists before execution (RooCodeInc#7632)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* fix: add error transform to cryptic openAI SDK errors when API key is invalid (RooCodeInc#7586)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: OpenAI Responses API service tiers (flex/priority) — UI selector, pricing, and tests (RooCodeInc#7646)

Co-authored-by: Daniel Riccio <[email protected]>

* fix: prevent countdown timer from showing in history for answered follow-up questions (RooCodeInc#7686)

* fix: Fix the issue of Moonshot's maximum return token count being limited to 1024 (RooCodeInc#7673)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* feat: update kimi-k2-0905-preview and kimi-k2-turbo-preview (RooCodeInc#7663)

* Fix test

* Release v3.26.7 (RooCodeInc#7691)

* Delete .changeset/petite-rats-admire.md

* feat: Add Kimi K2 0905 model to Groq, Moonshot, and Fireworks providers (RooCodeInc#7693)

* Use an allowlist to keep the prompt default shell sane (RooCodeInc#7681)

* Changeset version bump (RooCodeInc#7690)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Fix: Improve WelcomeView styling and readability (RooCodeInc#7682)

* fix: improve WelcomeView styling and readability

- Reduced excessive padding from p-16 to p-6
- Removed excessive bold text throughout
- Made provider cards more compact with smaller icons (32x32px)
- Increased introduction text size from text-sm to text-base for better visibility
- Centered the main greeting title
- Improved visual hierarchy with proper text sizing and spacing
- Added subtle borders and improved color contrast

* fix: remove undefined color class from incentive text

Removed the text-vscode-warningForeground class as it wasn't defined in index.css. The incentive text now uses default color which looks good.

* feat: add Kimi K2-0905 model to Chutes provider (RooCodeInc#7701)

Co-authored-by: Roo Code <[email protected]>

* fix: handle array paths from VSCode terminal profiles (RooCodeInc#7697)

* fix: handle array paths from VSCode terminal profiles

- Updated terminal profile interfaces to support string | string[] for path property
- Added normalizeShellPath helper to safely extract first element from array paths
- Modified isShellAllowed to handle both string and array inputs
- Updated getWindowsShellFromVSCode, getMacShellFromVSCode, and getLinuxShellFromVSCode to use normalizeShellPath
- Added comprehensive tests for array path handling

Fixes RooCodeInc#7695

* feat: add validateShellPath export for robust shell validation

- Created validateShellPath as a public API for shell path validation
- Refactored internal validation logic into isShellAllowedInternal
- Added comprehensive test coverage for all edge cases
- Maintains backward compatibility with deprecated isShellAllowed
- Handles arrays, strings, null, undefined, and nested arrays gracefully

* Simplify roomote's work a little

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Edit/Delete User Message (RooCodeInc#7447)

* fix: prevent stack overflow in codebase indexing for large projects (RooCodeInc#7712)

* fix: identify mcp and slash command config path in multiple folder workspace (RooCodeInc#6904)

* fix: resolve CI e2e test ETIMEDOUT errors when downloading VS Code (RooCodeInc#7583)

* fix: Tackling Race/State condition issue by Changing the Code Design for Gemini Grounding Sources (RooCodeInc#7434)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: preserve context by retrying with full conversation on invalid previous_response_id (RooCodeInc#7714)

* chore: add changeset for v3.26.8 (RooCodeInc#7715)

* feat(checkpoints): create checkpoint when user sends a message (RooCodeInc#7713)

* feat(checkpoints): create checkpoint on user message send

* fix(checkpoints): suppress implicit user-message checkpoint row; keep current checkpoint updated without a chat row

* Fix checkpoint suppression for user messages

- Propagate suppressMessage flag through event chain properly
- Update ChatView to check checkpoint metadata for suppressMessage flag
- Ensure checkpoint messages are created but not rendered when suppressed
- Fix bug where checkpointSave(false) should have been checkpointSave(true)

* fix: only create checkpoint on user message when files have changed

- Changed allowEmpty from true to false in checkpointSave call
- Checkpoints will now only be created when there are actual file changes
- This avoids creating empty commits in the shadow git repository

* test: update checkpoint test to include suppressMessage parameter

- Fixed test expectation to match the new function signature
- saveCheckpoint now expects both allowEmpty and suppressMessage parameters

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Bump to 3.27.0 (RooCodeInc#7719)

* Changeset version bump (RooCodeInc#7716)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix: update DeepSeek pricing to new unified rates effective Sept 5, 2025 (RooCodeInc#7687)

- Updated deepseek-chat pricing: $0.56 input (cache miss), $0.07 (cache hit), $1.68 output
- Updated deepseek-reasoner pricing: same unified rates as deepseek-chat
- Both models now have identical pricing as per DeepSeek announcement
- Pricing takes effect at 16:00 UTC, Sept 5th, 2025

Fixes RooCodeInc#7685

Co-authored-by: Roo Code <[email protected]>

* feat: replace cloud waitlist ad with direct Cloud link in navigation (RooCodeInc#7742)

Co-authored-by: Roo Code <[email protected]>

* feat: show dash instead of zero for missing data on evals page (RooCodeInc#7748)

Co-authored-by: Roo Code <[email protected]>

* Feature/update vertex ai models and regions (RooCodeInc#7727)

* Add model info to eval runs table (RooCodeInc#7749)

* chore(deps): update dependency eslint-config-prettier to v10.1.8 (RooCodeInc#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency esbuild to v0.25.9 (RooCodeInc#5455)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @changesets/cli to v2.29.6 (RooCodeInc#7376)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency nock to v14.0.10 (RooCodeInc#6465)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint-plugin-turbo to v2.5.6 (RooCodeInc#7764)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* refactor(utils): simplify shell detection logic

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* test: update shell detection test expectation and mocks

* test: add mock cleanup in shell detection tests

* test: update shell detection tests to prioritize PowerShell 7

* fix(workspace-event-monitor): increase max retries and improve retry logic

* refactor(codebase): improve error handling and workspace validation

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* test: change console.error to console.warn in tests

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* test: enhance vscode mock implementations and error handling

* feat(chat): replace edit button with copy functionality

* refactor(core): enhance binary file detection and encoding handling

* separate task sync roomote control (RooCodeInc#7799)

* feat: separate Task Sync and Roomote Control settings

- Add new taskSyncEnabled setting to control task content syncing
- Keep remoteControlEnabled for Roomote Control functionality
- Task Sync controls whether task content is sent to cloud
- Roomote Control controls whether cloud can send instructions back
- Roomote Control now depends on Task Sync being enabled
- Usage metrics (tokens, cost) always reported regardless of settings
- Update UI with two separate toggles and clear descriptions
- Add info text explaining usage metrics are always reported

* feat: add missing translations for Task Sync and Roomote Control settings

- Added taskSync, taskSyncDescription, remoteControlRequiresTaskSync, and usageMetricsAlwaysReported keys to all non-English cloud.json files
- Updated cloudBenefit keys to match English structure
- Ensured all languages have consistent translation keys for the new Task Sync and Roomote Control features

* Cloud: cleanup taskSyncEnabled additions

* fix: correct indentation localization files

---------

Co-authored-by: Roo Code <[email protected]>

* feat: In-extension dismissible upsells for Roo Code Cloud (RooCodeInc#7850)

* First pass at separate upsell dialog

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* feat: add DismissibleUpsell component for dismissible messages

- Created DismissibleUpsell component with variant support (banner/default)
- Added dismissedUpsells to GlobalState for persistence
- Implemented message handlers for dismissing and retrieving dismissed upsells
- Added comprehensive tests for the component
- Uses VSCode extension globalState for persistent storage

* fix: Apply PR feedback for DismissibleUpsell component

- Changed from className to separate 'id' and 'className' props for better semantics
- Added i18n support for accessibility labels (aria-label and title)
- Fixed memory leak by adding mounted flag to prevent state updates after unmount
- Fixed race condition by sending dismiss message before hiding component
- Fixed inefficient array operations in webviewMessageHandler
- Added comprehensive test coverage for edge cases including:
  - Multiple rapid dismissals
  - Component unmounting during async operations
  - Invalid/malformed message handling
  - Proper message sending before unmount
- Added null checks for message data to handle edge cases gracefully

* New Cloud upsell dialog in task share and cloud view, shared component

* Properly working DismissibleUpsell

* Working upsell for long-running tasks

* CTA in AutoApproveMenu

* Home page CTA

* Fixes the autoapprove upsell and some tests

* Visual and copy fixes

* Test fix

* Translations

* Stray className attribute

* Cloud view fixes in a left-aligned layout

* Removes unnecessary test

* Less flaky tests

* Fixes sharebutton behavior and updates associated tests

* Update webview-ui/src/i18n/locales/it/cloud.json

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Fix dismissed flicker

* Fix long task upsell

---------

Co-authored-by: Daniel <[email protected]>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* v3.28.0 (RooCodeInc#7858)

* Changeset version bump (RooCodeInc#7859)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat(chat): add chat search functionality with highlighting

* feat: show notification when the checkpoint initialization fails (RooCodeInc#7766)

Co-authored-by: daniel-lxs <[email protected]>

* Bust cache in generated image preview (RooCodeInc#7860)

Co-authored-by: Roo Code <[email protected]>

* test: disable TaskHeader upsell tests

* test: refactor TaskHeader test file

* feat: Add cloud task button for opening tasks in Roo Code Cloud (RooCodeInc#7572)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>

* fix: center active mode in selector dropdown on open (RooCodeInc#7883)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Make Posthog telemetry the default (RooCodeInc#7909)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Fix: Preserve first message during conversation condensing (RooCodeInc#7910)

* In-app announcement for Roo Code Cloud (RooCodeInc#7914)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* chore: add changeset for v3.28.1 (RooCodeInc#7916)

* Changeset version bump (RooCodeInc#7917)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Remove Roo Code 3.25 release announcement

Removed the section about Roo Code 3.25 release notes.

* fix: restrict @-mention parsing to line-start or whitespace boundaries (RooCodeInc#7876)

Co-authored-by: Roo Code <[email protected]>

* Fix message queue re-queue loop in Task.ask() (RooCodeInc#7823)

* fix: preserve original first message context during conversation condensing (RooCodeInc#7939)

* Add a little padding to the cloudview (RooCodeInc#7954)

* test: increase test timeout configuration

* test(ci): enable translation check and optimize test workflow

* fix: make nested git repository warning persistent with path info (RooCodeInc#7885)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: include API key in Ollama /api/tags requests (RooCodeInc#7903)

Co-authored-by: Roo Code <[email protected]>

* feat: add Qwen3 Next 80B A3B models to chutes provider (RooCodeInc#7948)

* ux: Smaller and more subtle auto-approve UI (RooCodeInc#7894)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Disable Roomote Control on logout (RooCodeInc#7976)

* Remove chevrons from chat buttons (RooCodeInc#7970)

* chore: add changeset for v3.28.2 (RooCodeInc#7979)

* Changeset version bump (RooCodeInc#7980)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* ux: Makes text area buttons appear only when there's text (RooCodeInc#7987)

* fix: corrected C# tree-sitter query (RooCodeInc#7813)

* feat: Move slash commands to Settings tab with gear icon for discoverability (RooCodeInc#7988)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mubeen Zulfiqar <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Add Z.ai coding plan support (RooCodeInc#8003)

* chore(deps): bump axios from 1.9.0 to 1.12.0 (RooCodeInc#7963)

Bumps [axios](https://github.com/axios/axios) from 1.9.0 to 1.12.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.9.0...v1.12.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.12.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix context menu is obscured when edit message. (RooCodeInc#7951)

* feat: add keyboard shortcut for "Add to Context" action (RooCodeInc#7908)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: handle ByteString conversion errors in OpenAI embedders (RooCodeInc#8008)

* CONTRIBUTING.md tweaks and issue template rewrite (RooCodeInc#8014)

* feat: Reposition Add Image button inside ChatTextArea (RooCodeInc#7989)

* feat: move Add Image button inside ChatTextArea

- Moved Add Image button from bottom toolbar to top-right inside text area
- Repositioned Enhance Prompt button to be above Send button (bottom-right)
- Both buttons now follow similar positioning pattern as Send button
- Maintains consistent button styling and transitions

* fix: corrected C# tree-sitter query (RooCodeInc#7813)

* feat: Move slash commands to Settings tab with gear icon for discoverability (RooCodeInc#7988)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mubeen Zulfiqar <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Add Z.ai coding plan support (RooCodeInc#8003)

* chore(deps): bump axios from 1.9.0 to 1.12.0 (RooCodeInc#7963)

Bumps [axios](https://github.com/axios/axios) from 1.9.0 to 1.12.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.9.0...v1.12.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.12.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix context menu is obscured when edit message. (RooCodeInc#7951)

* feat: add keyboard shortcut for "Add to Context" action (RooCodeInc#7908)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: handle ByteString conversion errors in OpenAI embedders (RooCodeInc#8008)

* CONTRIBUTING.md tweaks and issue template rewrite (RooCodeInc#8014)

* Visual tweaks

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Mubeen Zulfiqar <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: NaccOll <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>

* feat: add i18n support for git commits and file operations

* feat(i18n): update context menu translations in zh-CN and zh-TW locales

* feat: Bring back a way to temporarily and globally pause auto-approve without losing your toggle state (RooCodeInc#8024)

* Visual improvements and code cleanup (removes duplication)

* Brings back an 'enabled' toggle for auto-approve

* fix: filter out Claude Code built-in tools (ExitPlanMode, BashOutput, KillBash) (RooCodeInc#7818)

Co-authored-by: Roo Code <[email protected]>

* fix: handle square bracket HTML entities in Gemini responses (RooCodeInc#7577)

Co-authored-by: Roo Code <[email protected]>

* feat: Replace + icon with edit icon for New Task button (RooCodeInc#7942)

Co-authored-by: Roo Code <[email protected]>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Josh <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: mrubens <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: Piotr Wilkin (ilintar) <[email protected]>
Co-authored-by: Christiaan Arnoldus <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mohammad Danaee nia <[email protected]>
Co-authored-by: 淡草 <[email protected]>
Co-authored-by: WangXiaolong <[email protected]>
Co-authored-by: Peter Dave Hello <[email protected]>
Co-authored-by: Thach Nguyen <[email protected]>
Co-authored-by: CellenLee <[email protected]>
Co-authored-by: NaccOll <[email protected]>
Co-authored-by: Ton Hoang Nguyen (Bill) <[email protected]>
Co-authored-by: ssweens <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mubeen Zulfiqar <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
mini2s added a commit to zgsm-ai/costrict that referenced this pull request Sep 17, 2025
* Follow symlinks in rooignore checks (RooCodeInc#7405)

* Sonic -> Grok Code Fast (RooCodeInc#7426)

* chore: add changeset for v3.26.0 (RooCodeInc#7428)

* Changeset version bump (RooCodeInc#7429)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: Add Vercel AI Gateway provider integration (RooCodeInc#7396)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>

* feat: Enable on-disk storage for Qdrant vectors and HNSW index (RooCodeInc#7182)

* fix: use anthropic protocol for token counting when using anthropic models via Vercel AI Gateway (RooCodeInc#7433)

- Added condition in getApiProtocol to return 'anthropic' for vercel-ai-gateway when modelId starts with 'anthropic/'
- Added tests for Vercel AI Gateway provider protocol detection

This ensures proper token counting for Anthropic models accessed through Vercel AI Gateway, as Anthropic and OpenAI count tokens differently (Anthropic excludes cache tokens from input count, OpenAI includes them).

* fix: remove duplicate cache display in task header (RooCodeInc#7443)

* Random chat text area cleanup (RooCodeInc#7436)

* Update @roo-code/cloud to enable roomote control for cloud agents (RooCodeInc#7446)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Always set remoteControlEnabled to true for cloud agents (RooCodeInc#7448)

* chore: add changeset for v3.26.1 (RooCodeInc#7459)

* feat: show model ID in API configuration dropdown (RooCodeInc#7423)

* feat: update tooltip component to match native VSCode tooltip shadow styling (RooCodeInc#7457)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: cte <[email protected]>

* Add support for Vercel embeddings (RooCodeInc#7445)

Co-authored-by: daniel-lxs <[email protected]>

* Remove dot before model display (RooCodeInc#7461)

* Update contributors list (RooCodeInc#7109)

Co-authored-by: mrubens <[email protected]>

* Update 3.26.1 changeset (RooCodeInc#7463)

* Changeset version bump (RooCodeInc#7460)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Add type for RooCodeEventName.TaskSpawned (RooCodeInc#7465)

* fix: hide .rooignore'd files from environment details by default (RooCodeInc#7369)

* fix: change default showRooIgnoredFiles to false to hide ignored files

- Changed default value from true to false across all files
- Updated tests to reflect the new default behavior
- This prevents ignored files from appearing in environment details

Fixes RooCodeInc#7368

* fix: update tests to match new showRooIgnoredFiles default

* fix: update test expectation to match new showRooIgnoredFiles default value

The PR changed the default value of showRooIgnoredFiles from true to false,
so the test needs to expect false instead of true when calling formatFilesList.

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: exclude browser scroll actions from repetition detection (RooCodeInc#7471)

- Modified ToolRepetitionDetector to skip repetition detection for browser_action scroll_down and scroll_up actions
- Added isBrowserScrollAction() helper method to identify scroll actions
- Added comprehensive tests for the new behavior
- Fixes issue where multiple scroll actions were incorrectly flagged as being stuck in a loop

Resolves: RooCodeInc#7470

Co-authored-by: Roo Code <[email protected]>

* Fix GPT-5 Responses API issues with condensing and image support (RooCodeInc#7067)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>

* Bump cloud to 0.25.0 (RooCodeInc#7475)

* feat: add image generation tool with OpenRouter integration (RooCodeInc#7474)

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: cte <[email protected]>

* Make the default image filename more generic (RooCodeInc#7479)

* Release v3.26.2 (RooCodeInc#7490)

* Support free imagegen (RooCodeInc#7493)

* feat: update OpenRouter API to support input/output modalities and filter image generation models (RooCodeInc#7492)

* Add padding to image model picker (RooCodeInc#7494)

* fix: prevent dirty state on initial mount in ImageGenerationSettings (RooCodeInc#7495)

* Changeset version bump (RooCodeInc#7491)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Show console logging in vitests when the --no-silent flag is set (RooCodeInc#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 <[email protected]>

* Move @roo-code/cloud to the Roo-Code repo (RooCodeInc#7503)

* Refactor the extension bridge (RooCodeInc#7515)

* Implement deferred task subscriptions (RooCodeInc#7517)

* feat: add optional input image parameter to image generation tool (RooCodeInc#7525)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: sync extension bridge settings with cloud (RooCodeInc#7535)

- Use CloudService.getUserSettings() for remoteControlEnabled instead of global state
- Update CloudService.updateUserSettings when toggling remote control
- Add BridgeOrchestrator.connectOrDisconnect handling in settings update handler
- Remove dependency on contentProxy/globalSettings for remote control state
---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* refactor: flatten image generation settings structure (RooCodeInc#7536)

* chore: add changeset for v3.26.3 (RooCodeInc#7541)

* Changeset version bump (RooCodeInc#7542)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Mode and provider profile selector (RooCodeInc#7545)

* Putting the Roo in Roo-leases (RooCodeInc#7546)

* Fix evals (RooCodeInc#7547)

* fix: special tokens should not break task processing (RooCodeInc#7540)

* docs: update PR template branding from Roo Code to Costrict

* feat: optimize memory usage for image handling in webview (RooCodeInc#7556)

* feat: optimize memory usage for image handling in webview

- Replace base64 image data with webview URIs to reduce memory footprint
- Add proper resource roots to webview for workspace file access
- Implement convertToWebviewUri method for safe file-to-URI conversion
- Update ImageViewer to handle both webview URIs and file paths separately
- Add image message type for proper image rendering in chat
- Improve error handling and display for failed image loads
- Add comprehensive tests for ImageViewer component
- Format display paths as relative for better readability

This change significantly reduces memory usage by avoiding base64 encoding
of images and instead using VSCode's webview URI system for direct file
access. Images are now loaded on-demand from disk rather than being held
in memory as base64 strings.

* fix: address PR review comments

- Use safeJsonParse instead of JSON.parse in ChatRow.tsx
- Add type definition for parsed image info
- Add more specific error types in ClineProvider.ts
- Add comprehensive JSDoc comments to ImageBlock.tsx
- Improve error handling and type safety

* fix: address MrUbens' review comments

- Remove hardcoded 'rc1' pattern in formatDisplayPath, use generic workspace detection
- Internationalize 'No image data' text using i18n system

* chore: remove useless comment

* chore(i18n): add image.noData to all locales to fix translation check

* test: update ImageViewer.spec to align with i18n key and flexible path formatting

* feat: rename Account tab to Cloud tab (RooCodeInc#7558)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add Ollama API key support for Turbo mode (RooCodeInc#7425)

* feat: add Ollama API key support for Turbo mode

- Add ollamaApiKey field to ProviderSettings schema
- Add ollamaApiKey to SECRET_STATE_KEYS for secure storage
- Update Ollama and NativeOllama providers to use API key for authentication
- Add UI field for Ollama API key (shown when custom base URL is provided)
- Add test coverage for API key functionality

This enables users to use Ollama Turbo with datacenter-grade hardware by providing an API key for authenticated Ollama instances or cloud services.

* fix: use VSCodeTextField for Ollama API key field

Remove non-existent ApiKeyField import and use standard VSCodeTextField with password type, matching other provider implementations

* Add missing translation keys for Ollama API key support

- Add providers.ollama.apiKey and providers.ollama.apiKeyHelp to all 18 language files
- Support for authenticated Ollama instances and cloud services
- Relates to PR RooCodeInc#7425

* refactor: improve type safety for Ollama client configuration

- Replace 'any' type with proper OllamaOptions (Config) type
- Import Config type from ollama package for better type checking

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Disconnect extension bridge on logout (RooCodeInc#7563)

* Disconnect extension bridge on logout

* Remove bad test

* Cleanup

* Fix claudeCode.notFound translation key (RooCodeInc#7571)

I think I saw someone post a screenshot where "errors.claudeCode.notFound" was shown untranslated.

* v3.26.4 (RooCodeInc#7579)

* Update contributors list (RooCodeInc#7462)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7580)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add configurable embedding batch size for code indexing (RooCodeInc#7464)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Shows a pill with the base Roo Code Cloud URL when not pointing to pr… (RooCodeInc#7555)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Cloud: fix provider syncing (RooCodeInc#7603)

ClineProvider creation was moved before CloudService which broke
the old way of doing things.

* fix: add cache reporting support for OpenAI-Native provider (RooCodeInc#7602)

* fix: add cache reporting support for OpenAI-Native provider

- Add normalizeUsage method to properly extract cache tokens from Responses API
- Support both detailed token shapes (input_tokens_details) and legacy fields
- Calculate cache read/write tokens with proper fallbacks
- Include reasoning tokens when available in output_tokens_details
- Ensure accurate cost calculation using uncached input tokens

This fixes the issue where caching information was not being reported
when using the OpenAI-Native provider with the Responses API.

* fix: improve cache token normalization and add comprehensive tests

- Add fallback to derive total input tokens from details when totals are missing
- Remove unused convertToOpenAiMessages import
- Add comment explaining cost calculation alignment with Gemini provider
- Add comprehensive test coverage for normalizeUsage method covering:
  - Detailed token shapes with cached/miss tokens
  - Legacy field names and SSE-only events
  - Edge cases including missing totals with details-only
  - Cost calculation with uncached input tokens

* fix: address PR review comments

- Remove incorrect fallback to missFromDetails for cache write tokens
- Fix cost calculation to pass total input tokens (calculateApiCostOpenAI handles subtraction)
- Improve readability by extracting cache detail checks to intermediate variables
- Remove redundant ?? undefined
- Update tests to reflect correct behavior (miss tokens are not cache writes)
- Add clarifying comments about cache miss vs cache write tokens

* feat: add auto-approve support for MCP access_resource tool (RooCodeInc#7606)

* Move message queue to the extension host (RooCodeInc#7604)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Send custom modes to the extension bridge (RooCodeInc#7612)

* Never give up in socket transport (RooCodeInc#7616)

* Fix socket-io client event handling (RooCodeInc#7618)

* More socket-io client fixes from PR feedback (RooCodeInc#7619)

* More socket-io client logging improvements (RooCodeInc#7620)

* Publish subtask events (RooCodeInc#7626)

* Update chutes.ts to add Qwen3 235B A22B Thinking 2507 model (RooCodeInc#7578)

Co-authored-by: Matt Rubens <[email protected]>

* chore: add changeset for v3.26.5 (RooCodeInc#7628)

* Update contributors list (RooCodeInc#7629)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7630)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add run_slash_command tool for executing slash commands (RooCodeInc#7473)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Focus the extension when receiving bridge commands (RooCodeInc#7633)

* Release: v1.73.0 (RooCodeInc#7636)

* Cloud: remove extension_bridge_enabled for personal users (RooCodeInc#7638)

* Publish token usage metrics (RooCodeInc#7637)

* fix: preserve scroll position when switching tabs in settings (RooCodeInc#7587)

* fix: preserve scroll position when switching tabs in settings

* ui(settings): restore scroll synchronously to prevent flicker; dx(ui): name TabContent for clearer DevTools

---------

Co-authored-by: Daniel Riccio <[email protected]>

* feat: add Kimi K2 Turbo model configuration to moonshotModels (RooCodeInc#7593)

* feat: add Kimi K2 Turbo model configuration to moonshotModels

* feat: update Kimi K2 Turbo pricing and cache read prices

* fix: use askApproval wrapper in insert_content and search_and_replace tools (RooCodeInc#7649)

Fixes issue where isWriteProtected was incorrectly passed as the partial flag
to task.ask(), causing "Current ask promise was ignored (#1)" error.

Both tools now use the askApproval wrapper function which correctly handles
the parameter ordering, passing undefined for progressStatus and isWriteProtected
as the fourth parameter.

Fixes RooCodeInc#7648

Co-authored-by: Roo Code <[email protected]>

* Release v3.26.6 (RooCodeInc#7650)

* Changeset version bump (RooCodeInc#7651)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Delete .github/workflows/discord-pr-notify.yml

* Remove unused slack notif (RooCodeInc#7655)

* Handle zsh process substitution correctly (RooCodeInc#7658)

* Handle zsh glob qualifiers correctly (RooCodeInc#7667)

* Minor zh-TW Traditional Chinese locale typo fix (RooCodeInc#7672)

* feat: Add DeepInfra as a model provider in Roo Code (RooCodeInc#7677)

* fix: validate MCP tool exists before execution (RooCodeInc#7632)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* fix: add error transform to cryptic openAI SDK errors when API key is invalid (RooCodeInc#7586)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: OpenAI Responses API service tiers (flex/priority) — UI selector, pricing, and tests (RooCodeInc#7646)

Co-authored-by: Daniel Riccio <[email protected]>

* fix: prevent countdown timer from showing in history for answered follow-up questions (RooCodeInc#7686)

* fix: Fix the issue of Moonshot's maximum return token count being limited to 1024 (RooCodeInc#7673)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* feat: update kimi-k2-0905-preview and kimi-k2-turbo-preview (RooCodeInc#7663)

* Fix test

* Release v3.26.7 (RooCodeInc#7691)

* Delete .changeset/petite-rats-admire.md

* feat: Add Kimi K2 0905 model to Groq, Moonshot, and Fireworks providers (RooCodeInc#7693)

* Use an allowlist to keep the prompt default shell sane (RooCodeInc#7681)

* Changeset version bump (RooCodeInc#7690)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Fix: Improve WelcomeView styling and readability (RooCodeInc#7682)

* fix: improve WelcomeView styling and readability

- Reduced excessive padding from p-16 to p-6
- Removed excessive bold text throughout
- Made provider cards more compact with smaller icons (32x32px)
- Increased introduction text size from text-sm to text-base for better visibility
- Centered the main greeting title
- Improved visual hierarchy with proper text sizing and spacing
- Added subtle borders and improved color contrast

* fix: remove undefined color class from incentive text

Removed the text-vscode-warningForeground class as it wasn't defined in index.css. The incentive text now uses default color which looks good.

* feat: add Kimi K2-0905 model to Chutes provider (RooCodeInc#7701)

Co-authored-by: Roo Code <[email protected]>

* fix: handle array paths from VSCode terminal profiles (RooCodeInc#7697)

* fix: handle array paths from VSCode terminal profiles

- Updated terminal profile interfaces to support string | string[] for path property
- Added normalizeShellPath helper to safely extract first element from array paths
- Modified isShellAllowed to handle both string and array inputs
- Updated getWindowsShellFromVSCode, getMacShellFromVSCode, and getLinuxShellFromVSCode to use normalizeShellPath
- Added comprehensive tests for array path handling

Fixes RooCodeInc#7695

* feat: add validateShellPath export for robust shell validation

- Created validateShellPath as a public API for shell path validation
- Refactored internal validation logic into isShellAllowedInternal
- Added comprehensive test coverage for all edge cases
- Maintains backward compatibility with deprecated isShellAllowed
- Handles arrays, strings, null, undefined, and nested arrays gracefully

* Simplify roomote's work a little

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Edit/Delete User Message (RooCodeInc#7447)

* fix: prevent stack overflow in codebase indexing for large projects (RooCodeInc#7712)

* fix: identify mcp and slash command config path in multiple folder workspace (RooCodeInc#6904)

* fix: resolve CI e2e test ETIMEDOUT errors when downloading VS Code (RooCodeInc#7583)

* fix: Tackling Race/State condition issue by Changing the Code Design for Gemini Grounding Sources (RooCodeInc#7434)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: preserve context by retrying with full conversation on invalid previous_response_id (RooCodeInc#7714)

* chore: add changeset for v3.26.8 (RooCodeInc#7715)

* feat(checkpoints): create checkpoint when user sends a message (RooCodeInc#7713)

* feat(checkpoints): create checkpoint on user message send

* fix(checkpoints): suppress implicit user-message checkpoint row; keep current checkpoint updated without a chat row

* Fix checkpoint suppression for user messages

- Propagate suppressMessage flag through event chain properly
- Update ChatView to check checkpoint metadata for suppressMessage flag
- Ensure checkpoint messages are created but not rendered when suppressed
- Fix bug where checkpointSave(false) should have been checkpointSave(true)

* fix: only create checkpoint on user message when files have changed

- Changed allowEmpty from true to false in checkpointSave call
- Checkpoints will now only be created when there are actual file changes
- This avoids creating empty commits in the shadow git repository

* test: update checkpoint test to include suppressMessage parameter

- Fixed test expectation to match the new function signature
- saveCheckpoint now expects both allowEmpty and suppressMessage parameters

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Bump to 3.27.0 (RooCodeInc#7719)

* Changeset version bump (RooCodeInc#7716)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix: update DeepSeek pricing to new unified rates effective Sept 5, 2025 (RooCodeInc#7687)

- Updated deepseek-chat pricing: $0.56 input (cache miss), $0.07 (cache hit), $1.68 output
- Updated deepseek-reasoner pricing: same unified rates as deepseek-chat
- Both models now have identical pricing as per DeepSeek announcement
- Pricing takes effect at 16:00 UTC, Sept 5th, 2025

Fixes RooCodeInc#7685

Co-authored-by: Roo Code <[email protected]>

* feat: replace cloud waitlist ad with direct Cloud link in navigation (RooCodeInc#7742)

Co-authored-by: Roo Code <[email protected]>

* feat: show dash instead of zero for missing data on evals page (RooCodeInc#7748)

Co-authored-by: Roo Code <[email protected]>

* Feature/update vertex ai models and regions (RooCodeInc#7727)

* Add model info to eval runs table (RooCodeInc#7749)

* chore(deps): update dependency eslint-config-prettier to v10.1.8 (RooCodeInc#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency esbuild to v0.25.9 (RooCodeInc#5455)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @changesets/cli to v2.29.6 (RooCodeInc#7376)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency nock to v14.0.10 (RooCodeInc#6465)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint-plugin-turbo to v2.5.6 (RooCodeInc#7764)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* refactor(utils): simplify shell detection logic

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* test: update shell detection test expectation and mocks

* test: add mock cleanup in shell detection tests

* test: update shell detection tests to prioritize PowerShell 7

* fix(workspace-event-monitor): increase max retries and improve retry logic

* refactor(codebase): improve error handling and workspace validation

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* test: change console.error to console.warn in tests

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* test: enhance vscode mock implementations and error handling

* feat(chat): replace edit button with copy functionality

* refactor(core): enhance binary file detection and encoding handling

* separate task sync roomote control (RooCodeInc#7799)

* feat: separate Task Sync and Roomote Control settings

- Add new taskSyncEnabled setting to control task content syncing
- Keep remoteControlEnabled for Roomote Control functionality
- Task Sync controls whether task content is sent to cloud
- Roomote Control controls whether cloud can send instructions back
- Roomote Control now depends on Task Sync being enabled
- Usage metrics (tokens, cost) always reported regardless of settings
- Update UI with two separate toggles and clear descriptions
- Add info text explaining usage metrics are always reported

* feat: add missing translations for Task Sync and Roomote Control settings

- Added taskSync, taskSyncDescription, remoteControlRequiresTaskSync, and usageMetricsAlwaysReported keys to all non-English cloud.json files
- Updated cloudBenefit keys to match English structure
- Ensured all languages have consistent translation keys for the new Task Sync and Roomote Control features

* Cloud: cleanup taskSyncEnabled additions

* fix: correct indentation localization files

---------

Co-authored-by: Roo Code <[email protected]>

* feat: In-extension dismissible upsells for Roo Code Cloud (RooCodeInc#7850)

* First pass at separate upsell dialog

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* feat: add DismissibleUpsell component for dismissible messages

- Created DismissibleUpsell component with variant support (banner/default)
- Added dismissedUpsells to GlobalState for persistence
- Implemented message handlers for dismissing and retrieving dismissed upsells
- Added comprehensive tests for the component
- Uses VSCode extension globalState for persistent storage

* fix: Apply PR feedback for DismissibleUpsell component

- Changed from className to separate 'id' and 'className' props for better semantics
- Added i18n support for accessibility labels (aria-label and title)
- Fixed memory leak by adding mounted flag to prevent state updates after unmount
- Fixed race condition by sending dismiss message before hiding component
- Fixed inefficient array operations in webviewMessageHandler
- Added comprehensive test coverage for edge cases including:
  - Multiple rapid dismissals
  - Component unmounting during async operations
  - Invalid/malformed message handling
  - Proper message sending before unmount
- Added null checks for message data to handle edge cases gracefully

* New Cloud upsell dialog in task share and cloud view, shared component

* Properly working DismissibleUpsell

* Working upsell for long-running tasks

* CTA in AutoApproveMenu

* Home page CTA

* Fixes the autoapprove upsell and some tests

* Visual and copy fixes

* Test fix

* Translations

* Stray className attribute

* Cloud view fixes in a left-aligned layout

* Removes unnecessary test

* Less flaky tests

* Fixes sharebutton behavior and updates associated tests

* Update webview-ui/src/i18n/locales/it/cloud.json

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Fix dismissed flicker

* Fix long task upsell

---------

Co-authored-by: Daniel <[email protected]>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* v3.28.0 (RooCodeInc#7858)

* Changeset version bump (RooCodeInc#7859)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat(chat): add chat search functionality with highlighting

* feat: show notification when the checkpoint initialization fails (RooCodeInc#7766)

Co-authored-by: daniel-lxs <[email protected]>

* Bust cache in generated image preview (RooCodeInc#7860)

Co-authored-by: Roo Code <[email protected]>

* test: disable TaskHeader upsell tests

* test: refactor TaskHeader test file

* feat: Add cloud task button for opening tasks in Roo Code Cloud (RooCodeInc#7572)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>

* fix: center active mode in selector dropdown on open (RooCodeInc#7883)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Make Posthog telemetry the default (RooCodeInc#7909)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Fix: Preserve first message during conversation condensing (RooCodeInc#7910)

* In-app announcement for Roo Code Cloud (RooCodeInc#7914)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* chore: add changeset for v3.28.1 (RooCodeInc#7916)

* Changeset version bump (RooCodeInc#7917)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Remove Roo Code 3.25 release announcement

Removed the section about Roo Code 3.25 release notes.

* fix: restrict @-mention parsing to line-start or whitespace boundaries (RooCodeInc#7876)

Co-authored-by: Roo Code <[email protected]>

* Fix message queue re-queue loop in Task.ask() (RooCodeInc#7823)

* fix: preserve original first message context during conversation condensing (RooCodeInc#7939)

* Add a little padding to the cloudview (RooCodeInc#7954)

* test: increase test timeout configuration

* test(ci): enable translation check and optimize test workflow

* fix: make nested git repository warning persistent with path info (RooCodeInc#7885)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: include API key in Ollama /api/tags requests (RooCodeInc#7903)

Co-authored-by: Roo Code <[email protected]>

* feat: add Qwen3 Next 80B A3B models to chutes provider (RooCodeInc#7948)

* ux: Smaller and more subtle auto-approve UI (RooCodeInc#7894)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Disable Roomote Control on logout (RooCodeInc#7976)

* Remove chevrons from chat buttons (RooCodeInc#7970)

* chore: add changeset for v3.28.2 (RooCodeInc#7979)

* Changeset version bump (RooCodeInc#7980)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* ux: Makes text area buttons appear only when there's text (RooCodeInc#7987)

* fix: corrected C# tree-sitter query (RooCodeInc#7813)

* feat: Move slash commands to Settings tab with gear icon for discoverability (RooCodeInc#7988)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mubeen Zulfiqar <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Add Z.ai coding plan support (RooCodeInc#8003)

* chore(deps): bump axios from 1.9.0 to 1.12.0 (RooCodeInc#7963)

Bumps [axios](https://github.com/axios/axios) from 1.9.0 to 1.12.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.9.0...v1.12.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.12.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix context menu is obscured when edit message. (RooCodeInc#7951)

* feat: add keyboard shortcut for "Add to Context" action (RooCodeInc#7908)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: handle ByteString conversion errors in OpenAI embedders (RooCodeInc#8008)

* CONTRIBUTING.md tweaks and issue template rewrite (RooCodeInc#8014)

* feat: Reposition Add Image button inside ChatTextArea (RooCodeInc#7989)

* feat: move Add Image button inside ChatTextArea

- Moved Add Image button from bottom toolbar to top-right inside text area
- Repositioned Enhance Prompt button to be above Send button (bottom-right)
- Both buttons now follow similar positioning pattern as Send button
- Maintains consistent button styling and transitions

* fix: corrected C# tree-sitter query (RooCodeInc#7813)

* feat: Move slash commands to Settings tab with gear icon for discoverability (RooCodeInc#7988)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mubeen Zulfiqar <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Add Z.ai coding plan support (RooCodeInc#8003)

* chore(deps): bump axios from 1.9.0 to 1.12.0 (RooCodeInc#7963)

Bumps [axios](https://github.com/axios/axios) from 1.9.0 to 1.12.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.9.0...v1.12.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.12.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix context menu is obscured when edit message. (RooCodeInc#7951)

* feat: add keyboard shortcut for "Add to Context" action (RooCodeInc#7908)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: handle ByteString conversion errors in OpenAI embedders (RooCodeInc#8008)

* CONTRIBUTING.md tweaks and issue template rewrite (RooCodeInc#8014)

* Visual tweaks

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Mubeen Zulfiqar <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: NaccOll <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>

* feat: add i18n support for git commits and file operations

* feat(i18n): update context menu translations in zh-CN and zh-TW locales

* feat: Bring back a way to temporarily and globally pause auto-approve without losing your toggle state (RooCodeInc#8024)

* Visual improvements and code cleanup (removes duplication)

* Brings back an 'enabled' toggle for auto-approve

* fix: filter out Claude Code built-in tools (ExitPlanMode, BashOutput, KillBash) (RooCodeInc#7818)

Co-authored-by: Roo Code <[email protected]>

* fix: handle square bracket HTML entities in Gemini responses (RooCodeInc#7577)

Co-authored-by: Roo Code <[email protected]>

* feat: Replace + icon with edit icon for New Task button (RooCodeInc#7942)

Co-authored-by: Roo Code <[email protected]>

* Merge remote-tracking branch 'upstream/main' into roo-to-main

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Josh <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: mrubens <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: Piotr Wilkin (ilintar) <[email protected]>
Co-authored-by: Christiaan Arnoldus <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mohammad Danaee nia <[email protected]>
Co-authored-by: 淡草 <[email protected]>
Co-authored-by: WangXiaolong <[email protected]>
Co-authored-by: Peter Dave Hello <[email protected]>
Co-authored-by: Thach Nguyen <[email protected]>
Co-authored-by: CellenLee <[email protected]>
Co-authored-by: NaccOll <[email protected]>
Co-authored-by: Ton Hoang Nguyen (Bill) <[email protected]>
Co-authored-by: ssweens <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mubeen Zulfiqar <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
mini2s added a commit to zgsm-ai/costrict that referenced this pull request Sep 17, 2025
* Follow symlinks in rooignore checks (RooCodeInc#7405)

* Sonic -> Grok Code Fast (RooCodeInc#7426)

* chore: add changeset for v3.26.0 (RooCodeInc#7428)

* Changeset version bump (RooCodeInc#7429)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: Add Vercel AI Gateway provider integration (RooCodeInc#7396)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>

* feat: Enable on-disk storage for Qdrant vectors and HNSW index (RooCodeInc#7182)

* fix: use anthropic protocol for token counting when using anthropic models via Vercel AI Gateway (RooCodeInc#7433)

- Added condition in getApiProtocol to return 'anthropic' for vercel-ai-gateway when modelId starts with 'anthropic/'
- Added tests for Vercel AI Gateway provider protocol detection

This ensures proper token counting for Anthropic models accessed through Vercel AI Gateway, as Anthropic and OpenAI count tokens differently (Anthropic excludes cache tokens from input count, OpenAI includes them).

* fix: remove duplicate cache display in task header (RooCodeInc#7443)

* Random chat text area cleanup (RooCodeInc#7436)

* Update @roo-code/cloud to enable roomote control for cloud agents (RooCodeInc#7446)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Always set remoteControlEnabled to true for cloud agents (RooCodeInc#7448)

* chore: add changeset for v3.26.1 (RooCodeInc#7459)

* feat: show model ID in API configuration dropdown (RooCodeInc#7423)

* feat: update tooltip component to match native VSCode tooltip shadow styling (RooCodeInc#7457)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: cte <[email protected]>

* Add support for Vercel embeddings (RooCodeInc#7445)

Co-authored-by: daniel-lxs <[email protected]>

* Remove dot before model display (RooCodeInc#7461)

* Update contributors list (RooCodeInc#7109)

Co-authored-by: mrubens <[email protected]>

* Update 3.26.1 changeset (RooCodeInc#7463)

* Changeset version bump (RooCodeInc#7460)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Add type for RooCodeEventName.TaskSpawned (RooCodeInc#7465)

* fix: hide .rooignore'd files from environment details by default (RooCodeInc#7369)

* fix: change default showRooIgnoredFiles to false to hide ignored files

- Changed default value from true to false across all files
- Updated tests to reflect the new default behavior
- This prevents ignored files from appearing in environment details

Fixes RooCodeInc#7368

* fix: update tests to match new showRooIgnoredFiles default

* fix: update test expectation to match new showRooIgnoredFiles default value

The PR changed the default value of showRooIgnoredFiles from true to false,
so the test needs to expect false instead of true when calling formatFilesList.

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: exclude browser scroll actions from repetition detection (RooCodeInc#7471)

- Modified ToolRepetitionDetector to skip repetition detection for browser_action scroll_down and scroll_up actions
- Added isBrowserScrollAction() helper method to identify scroll actions
- Added comprehensive tests for the new behavior
- Fixes issue where multiple scroll actions were incorrectly flagged as being stuck in a loop

Resolves: RooCodeInc#7470

Co-authored-by: Roo Code <[email protected]>

* Fix GPT-5 Responses API issues with condensing and image support (RooCodeInc#7067)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>

* Bump cloud to 0.25.0 (RooCodeInc#7475)

* feat: add image generation tool with OpenRouter integration (RooCodeInc#7474)

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: cte <[email protected]>

* Make the default image filename more generic (RooCodeInc#7479)

* Release v3.26.2 (RooCodeInc#7490)

* Support free imagegen (RooCodeInc#7493)

* feat: update OpenRouter API to support input/output modalities and filter image generation models (RooCodeInc#7492)

* Add padding to image model picker (RooCodeInc#7494)

* fix: prevent dirty state on initial mount in ImageGenerationSettings (RooCodeInc#7495)

* Changeset version bump (RooCodeInc#7491)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Show console logging in vitests when the --no-silent flag is set (RooCodeInc#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 <[email protected]>

* Move @roo-code/cloud to the Roo-Code repo (RooCodeInc#7503)

* Refactor the extension bridge (RooCodeInc#7515)

* Implement deferred task subscriptions (RooCodeInc#7517)

* feat: add optional input image parameter to image generation tool (RooCodeInc#7525)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: sync extension bridge settings with cloud (RooCodeInc#7535)

- Use CloudService.getUserSettings() for remoteControlEnabled instead of global state
- Update CloudService.updateUserSettings when toggling remote control
- Add BridgeOrchestrator.connectOrDisconnect handling in settings update handler
- Remove dependency on contentProxy/globalSettings for remote control state
---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* refactor: flatten image generation settings structure (RooCodeInc#7536)

* chore: add changeset for v3.26.3 (RooCodeInc#7541)

* Changeset version bump (RooCodeInc#7542)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Mode and provider profile selector (RooCodeInc#7545)

* Putting the Roo in Roo-leases (RooCodeInc#7546)

* Fix evals (RooCodeInc#7547)

* fix: special tokens should not break task processing (RooCodeInc#7540)

* docs: update PR template branding from Roo Code to Costrict

* feat: optimize memory usage for image handling in webview (RooCodeInc#7556)

* feat: optimize memory usage for image handling in webview

- Replace base64 image data with webview URIs to reduce memory footprint
- Add proper resource roots to webview for workspace file access
- Implement convertToWebviewUri method for safe file-to-URI conversion
- Update ImageViewer to handle both webview URIs and file paths separately
- Add image message type for proper image rendering in chat
- Improve error handling and display for failed image loads
- Add comprehensive tests for ImageViewer component
- Format display paths as relative for better readability

This change significantly reduces memory usage by avoiding base64 encoding
of images and instead using VSCode's webview URI system for direct file
access. Images are now loaded on-demand from disk rather than being held
in memory as base64 strings.

* fix: address PR review comments

- Use safeJsonParse instead of JSON.parse in ChatRow.tsx
- Add type definition for parsed image info
- Add more specific error types in ClineProvider.ts
- Add comprehensive JSDoc comments to ImageBlock.tsx
- Improve error handling and type safety

* fix: address MrUbens' review comments

- Remove hardcoded 'rc1' pattern in formatDisplayPath, use generic workspace detection
- Internationalize 'No image data' text using i18n system

* chore: remove useless comment

* chore(i18n): add image.noData to all locales to fix translation check

* test: update ImageViewer.spec to align with i18n key and flexible path formatting

* feat: rename Account tab to Cloud tab (RooCodeInc#7558)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add Ollama API key support for Turbo mode (RooCodeInc#7425)

* feat: add Ollama API key support for Turbo mode

- Add ollamaApiKey field to ProviderSettings schema
- Add ollamaApiKey to SECRET_STATE_KEYS for secure storage
- Update Ollama and NativeOllama providers to use API key for authentication
- Add UI field for Ollama API key (shown when custom base URL is provided)
- Add test coverage for API key functionality

This enables users to use Ollama Turbo with datacenter-grade hardware by providing an API key for authenticated Ollama instances or cloud services.

* fix: use VSCodeTextField for Ollama API key field

Remove non-existent ApiKeyField import and use standard VSCodeTextField with password type, matching other provider implementations

* Add missing translation keys for Ollama API key support

- Add providers.ollama.apiKey and providers.ollama.apiKeyHelp to all 18 language files
- Support for authenticated Ollama instances and cloud services
- Relates to PR RooCodeInc#7425

* refactor: improve type safety for Ollama client configuration

- Replace 'any' type with proper OllamaOptions (Config) type
- Import Config type from ollama package for better type checking

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Disconnect extension bridge on logout (RooCodeInc#7563)

* Disconnect extension bridge on logout

* Remove bad test

* Cleanup

* Fix claudeCode.notFound translation key (RooCodeInc#7571)

I think I saw someone post a screenshot where "errors.claudeCode.notFound" was shown untranslated.

* v3.26.4 (RooCodeInc#7579)

* Update contributors list (RooCodeInc#7462)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7580)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add configurable embedding batch size for code indexing (RooCodeInc#7464)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Shows a pill with the base Roo Code Cloud URL when not pointing to pr… (RooCodeInc#7555)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Cloud: fix provider syncing (RooCodeInc#7603)

ClineProvider creation was moved before CloudService which broke
the old way of doing things.

* fix: add cache reporting support for OpenAI-Native provider (RooCodeInc#7602)

* fix: add cache reporting support for OpenAI-Native provider

- Add normalizeUsage method to properly extract cache tokens from Responses API
- Support both detailed token shapes (input_tokens_details) and legacy fields
- Calculate cache read/write tokens with proper fallbacks
- Include reasoning tokens when available in output_tokens_details
- Ensure accurate cost calculation using uncached input tokens

This fixes the issue where caching information was not being reported
when using the OpenAI-Native provider with the Responses API.

* fix: improve cache token normalization and add comprehensive tests

- Add fallback to derive total input tokens from details when totals are missing
- Remove unused convertToOpenAiMessages import
- Add comment explaining cost calculation alignment with Gemini provider
- Add comprehensive test coverage for normalizeUsage method covering:
  - Detailed token shapes with cached/miss tokens
  - Legacy field names and SSE-only events
  - Edge cases including missing totals with details-only
  - Cost calculation with uncached input tokens

* fix: address PR review comments

- Remove incorrect fallback to missFromDetails for cache write tokens
- Fix cost calculation to pass total input tokens (calculateApiCostOpenAI handles subtraction)
- Improve readability by extracting cache detail checks to intermediate variables
- Remove redundant ?? undefined
- Update tests to reflect correct behavior (miss tokens are not cache writes)
- Add clarifying comments about cache miss vs cache write tokens

* feat: add auto-approve support for MCP access_resource tool (RooCodeInc#7606)

* Move message queue to the extension host (RooCodeInc#7604)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Send custom modes to the extension bridge (RooCodeInc#7612)

* Never give up in socket transport (RooCodeInc#7616)

* Fix socket-io client event handling (RooCodeInc#7618)

* More socket-io client fixes from PR feedback (RooCodeInc#7619)

* More socket-io client logging improvements (RooCodeInc#7620)

* Publish subtask events (RooCodeInc#7626)

* Update chutes.ts to add Qwen3 235B A22B Thinking 2507 model (RooCodeInc#7578)

Co-authored-by: Matt Rubens <[email protected]>

* chore: add changeset for v3.26.5 (RooCodeInc#7628)

* Update contributors list (RooCodeInc#7629)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7630)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add run_slash_command tool for executing slash commands (RooCodeInc#7473)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Focus the extension when receiving bridge commands (RooCodeInc#7633)

* Release: v1.73.0 (RooCodeInc#7636)

* Cloud: remove extension_bridge_enabled for personal users (RooCodeInc#7638)

* Publish token usage metrics (RooCodeInc#7637)

* fix: preserve scroll position when switching tabs in settings (RooCodeInc#7587)

* fix: preserve scroll position when switching tabs in settings

* ui(settings): restore scroll synchronously to prevent flicker; dx(ui): name TabContent for clearer DevTools

---------

Co-authored-by: Daniel Riccio <[email protected]>

* feat: add Kimi K2 Turbo model configuration to moonshotModels (RooCodeInc#7593)

* feat: add Kimi K2 Turbo model configuration to moonshotModels

* feat: update Kimi K2 Turbo pricing and cache read prices

* fix: use askApproval wrapper in insert_content and search_and_replace tools (RooCodeInc#7649)

Fixes issue where isWriteProtected was incorrectly passed as the partial flag
to task.ask(), causing "Current ask promise was ignored (#1)" error.

Both tools now use the askApproval wrapper function which correctly handles
the parameter ordering, passing undefined for progressStatus and isWriteProtected
as the fourth parameter.

Fixes RooCodeInc#7648

Co-authored-by: Roo Code <[email protected]>

* Release v3.26.6 (RooCodeInc#7650)

* Changeset version bump (RooCodeInc#7651)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Delete .github/workflows/discord-pr-notify.yml

* Remove unused slack notif (RooCodeInc#7655)

* Handle zsh process substitution correctly (RooCodeInc#7658)

* Handle zsh glob qualifiers correctly (RooCodeInc#7667)

* Minor zh-TW Traditional Chinese locale typo fix (RooCodeInc#7672)

* feat: Add DeepInfra as a model provider in Roo Code (RooCodeInc#7677)

* fix: validate MCP tool exists before execution (RooCodeInc#7632)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* fix: add error transform to cryptic openAI SDK errors when API key is invalid (RooCodeInc#7586)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: OpenAI Responses API service tiers (flex/priority) — UI selector, pricing, and tests (RooCodeInc#7646)

Co-authored-by: Daniel Riccio <[email protected]>

* fix: prevent countdown timer from showing in history for answered follow-up questions (RooCodeInc#7686)

* fix: Fix the issue of Moonshot's maximum return token count being limited to 1024 (RooCodeInc#7673)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* feat: update kimi-k2-0905-preview and kimi-k2-turbo-preview (RooCodeInc#7663)

* Fix test

* Release v3.26.7 (RooCodeInc#7691)

* Delete .changeset/petite-rats-admire.md

* feat: Add Kimi K2 0905 model to Groq, Moonshot, and Fireworks providers (RooCodeInc#7693)

* Use an allowlist to keep the prompt default shell sane (RooCodeInc#7681)

* Changeset version bump (RooCodeInc#7690)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Fix: Improve WelcomeView styling and readability (RooCodeInc#7682)

* fix: improve WelcomeView styling and readability

- Reduced excessive padding from p-16 to p-6
- Removed excessive bold text throughout
- Made provider cards more compact with smaller icons (32x32px)
- Increased introduction text size from text-sm to text-base for better visibility
- Centered the main greeting title
- Improved visual hierarchy with proper text sizing and spacing
- Added subtle borders and improved color contrast

* fix: remove undefined color class from incentive text

Removed the text-vscode-warningForeground class as it wasn't defined in index.css. The incentive text now uses default color which looks good.

* feat: add Kimi K2-0905 model to Chutes provider (RooCodeInc#7701)

Co-authored-by: Roo Code <[email protected]>

* fix: handle array paths from VSCode terminal profiles (RooCodeInc#7697)

* fix: handle array paths from VSCode terminal profiles

- Updated terminal profile interfaces to support string | string[] for path property
- Added normalizeShellPath helper to safely extract first element from array paths
- Modified isShellAllowed to handle both string and array inputs
- Updated getWindowsShellFromVSCode, getMacShellFromVSCode, and getLinuxShellFromVSCode to use normalizeShellPath
- Added comprehensive tests for array path handling

Fixes RooCodeInc#7695

* feat: add validateShellPath export for robust shell validation

- Created validateShellPath as a public API for shell path validation
- Refactored internal validation logic into isShellAllowedInternal
- Added comprehensive test coverage for all edge cases
- Maintains backward compatibility with deprecated isShellAllowed
- Handles arrays, strings, null, undefined, and nested arrays gracefully

* Simplify roomote's work a little

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Edit/Delete User Message (RooCodeInc#7447)

* fix: prevent stack overflow in codebase indexing for large projects (RooCodeInc#7712)

* fix: identify mcp and slash command config path in multiple folder workspace (RooCodeInc#6904)

* fix: resolve CI e2e test ETIMEDOUT errors when downloading VS Code (RooCodeInc#7583)

* fix: Tackling Race/State condition issue by Changing the Code Design for Gemini Grounding Sources (RooCodeInc#7434)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: preserve context by retrying with full conversation on invalid previous_response_id (RooCodeInc#7714)

* chore: add changeset for v3.26.8 (RooCodeInc#7715)

* feat(checkpoints): create checkpoint when user sends a message (RooCodeInc#7713)

* feat(checkpoints): create checkpoint on user message send

* fix(checkpoints): suppress implicit user-message checkpoint row; keep current checkpoint updated without a chat row

* Fix checkpoint suppression for user messages

- Propagate suppressMessage flag through event chain properly
- Update ChatView to check checkpoint metadata for suppressMessage flag
- Ensure checkpoint messages are created but not rendered when suppressed
- Fix bug where checkpointSave(false) should have been checkpointSave(true)

* fix: only create checkpoint on user message when files have changed

- Changed allowEmpty from true to false in checkpointSave call
- Checkpoints will now only be created when there are actual file changes
- This avoids creating empty commits in the shadow git repository

* test: update checkpoint test to include suppressMessage parameter

- Fixed test expectation to match the new function signature
- saveCheckpoint now expects both allowEmpty and suppressMessage parameters

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Bump to 3.27.0 (RooCodeInc#7719)

* Changeset version bump (RooCodeInc#7716)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix: update DeepSeek pricing to new unified rates effective Sept 5, 2025 (RooCodeInc#7687)

- Updated deepseek-chat pricing: $0.56 input (cache miss), $0.07 (cache hit), $1.68 output
- Updated deepseek-reasoner pricing: same unified rates as deepseek-chat
- Both models now have identical pricing as per DeepSeek announcement
- Pricing takes effect at 16:00 UTC, Sept 5th, 2025

Fixes RooCodeInc#7685

Co-authored-by: Roo Code <[email protected]>

* feat: replace cloud waitlist ad with direct Cloud link in navigation (RooCodeInc#7742)

Co-authored-by: Roo Code <[email protected]>

* feat: show dash instead of zero for missing data on evals page (RooCodeInc#7748)

Co-authored-by: Roo Code <[email protected]>

* Feature/update vertex ai models and regions (RooCodeInc#7727)

* Add model info to eval runs table (RooCodeInc#7749)

* chore(deps): update dependency eslint-config-prettier to v10.1.8 (RooCodeInc#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency esbuild to v0.25.9 (RooCodeInc#5455)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @changesets/cli to v2.29.6 (RooCodeInc#7376)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency nock to v14.0.10 (RooCodeInc#6465)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint-plugin-turbo to v2.5.6 (RooCodeInc#7764)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* refactor(utils): simplify shell detection logic

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* test: update shell detection test expectation and mocks

* test: add mock cleanup in shell detection tests

* test: update shell detection tests to prioritize PowerShell 7

* fix(workspace-event-monitor): increase max retries and improve retry logic

* refactor(codebase): improve error handling and workspace validation

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* test: change console.error to console.warn in tests

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* test: enhance vscode mock implementations and error handling

* feat(chat): replace edit button with copy functionality

* refactor(core): enhance binary file detection and encoding handling

* separate task sync roomote control (RooCodeInc#7799)

* feat: separate Task Sync and Roomote Control settings

- Add new taskSyncEnabled setting to control task content syncing
- Keep remoteControlEnabled for Roomote Control functionality
- Task Sync controls whether task content is sent to cloud
- Roomote Control controls whether cloud can send instructions back
- Roomote Control now depends on Task Sync being enabled
- Usage metrics (tokens, cost) always reported regardless of settings
- Update UI with two separate toggles and clear descriptions
- Add info text explaining usage metrics are always reported

* feat: add missing translations for Task Sync and Roomote Control settings

- Added taskSync, taskSyncDescription, remoteControlRequiresTaskSync, and usageMetricsAlwaysReported keys to all non-English cloud.json files
- Updated cloudBenefit keys to match English structure
- Ensured all languages have consistent translation keys for the new Task Sync and Roomote Control features

* Cloud: cleanup taskSyncEnabled additions

* fix: correct indentation localization files

---------

Co-authored-by: Roo Code <[email protected]>

* feat: In-extension dismissible upsells for Roo Code Cloud (RooCodeInc#7850)

* First pass at separate upsell dialog

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* feat: add DismissibleUpsell component for dismissible messages

- Created DismissibleUpsell component with variant support (banner/default)
- Added dismissedUpsells to GlobalState for persistence
- Implemented message handlers for dismissing and retrieving dismissed upsells
- Added comprehensive tests for the component
- Uses VSCode extension globalState for persistent storage

* fix: Apply PR feedback for DismissibleUpsell component

- Changed from className to separate 'id' and 'className' props for better semantics
- Added i18n support for accessibility labels (aria-label and title)
- Fixed memory leak by adding mounted flag to prevent state updates after unmount
- Fixed race condition by sending dismiss message before hiding component
- Fixed inefficient array operations in webviewMessageHandler
- Added comprehensive test coverage for edge cases including:
  - Multiple rapid dismissals
  - Component unmounting during async operations
  - Invalid/malformed message handling
  - Proper message sending before unmount
- Added null checks for message data to handle edge cases gracefully

* New Cloud upsell dialog in task share and cloud view, shared component

* Properly working DismissibleUpsell

* Working upsell for long-running tasks

* CTA in AutoApproveMenu

* Home page CTA

* Fixes the autoapprove upsell and some tests

* Visual and copy fixes

* Test fix

* Translations

* Stray className attribute

* Cloud view fixes in a left-aligned layout

* Removes unnecessary test

* Less flaky tests

* Fixes sharebutton behavior and updates associated tests

* Update webview-ui/src/i18n/locales/it/cloud.json

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Fix dismissed flicker

* Fix long task upsell

---------

Co-authored-by: Daniel <[email protected]>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* v3.28.0 (RooCodeInc#7858)

* Changeset version bump (RooCodeInc#7859)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat(chat): add chat search functionality with highlighting

* feat: show notification when the checkpoint initialization fails (RooCodeInc#7766)

Co-authored-by: daniel-lxs <[email protected]>

* Bust cache in generated image preview (RooCodeInc#7860)

Co-authored-by: Roo Code <[email protected]>

* test: disable TaskHeader upsell tests

* test: refactor TaskHeader test file

* feat: Add cloud task button for opening tasks in Roo Code Cloud (RooCodeInc#7572)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>

* fix: center active mode in selector dropdown on open (RooCodeInc#7883)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Make Posthog telemetry the default (RooCodeInc#7909)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Fix: Preserve first message during conversation condensing (RooCodeInc#7910)

* In-app announcement for Roo Code Cloud (RooCodeInc#7914)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* chore: add changeset for v3.28.1 (RooCodeInc#7916)

* Changeset version bump (RooCodeInc#7917)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Remove Roo Code 3.25 release announcement

Removed the section about Roo Code 3.25 release notes.

* fix: restrict @-mention parsing to line-start or whitespace boundaries (RooCodeInc#7876)

Co-authored-by: Roo Code <[email protected]>

* Fix message queue re-queue loop in Task.ask() (RooCodeInc#7823)

* fix: preserve original first message context during conversation condensing (RooCodeInc#7939)

* Add a little padding to the cloudview (RooCodeInc#7954)

* test: increase test timeout configuration

* test(ci): enable translation check and optimize test workflow

* fix: make nested git repository warning persistent with path info (RooCodeInc#7885)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: include API key in Ollama /api/tags requests (RooCodeInc#7903)

Co-authored-by: Roo Code <[email protected]>

* feat: add Qwen3 Next 80B A3B models to chutes provider (RooCodeInc#7948)

* ux: Smaller and more subtle auto-approve UI (RooCodeInc#7894)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Disable Roomote Control on logout (RooCodeInc#7976)

* Remove chevrons from chat buttons (RooCodeInc#7970)

* chore: add changeset for v3.28.2 (RooCodeInc#7979)

* Changeset version bump (RooCodeInc#7980)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* ux: Makes text area buttons appear only when there's text (RooCodeInc#7987)

* fix: corrected C# tree-sitter query (RooCodeInc#7813)

* feat: Move slash commands to Settings tab with gear icon for discoverability (RooCodeInc#7988)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mubeen Zulfiqar <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Add Z.ai coding plan support (RooCodeInc#8003)

* chore(deps): bump axios from 1.9.0 to 1.12.0 (RooCodeInc#7963)

Bumps [axios](https://github.com/axios/axios) from 1.9.0 to 1.12.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.9.0...v1.12.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.12.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix context menu is obscured when edit message. (RooCodeInc#7951)

* feat: add keyboard shortcut for "Add to Context" action (RooCodeInc#7908)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: handle ByteString conversion errors in OpenAI embedders (RooCodeInc#8008)

* CONTRIBUTING.md tweaks and issue template rewrite (RooCodeInc#8014)

* feat: Reposition Add Image button inside ChatTextArea (RooCodeInc#7989)

* feat: move Add Image button inside ChatTextArea

- Moved Add Image button from bottom toolbar to top-right inside text area
- Repositioned Enhance Prompt button to be above Send button (bottom-right)
- Both buttons now follow similar positioning pattern as Send button
- Maintains consistent button styling and transitions

* fix: corrected C# tree-sitter query (RooCodeInc#7813)

* feat: Move slash commands to Settings tab with gear icon for discoverability (RooCodeInc#7988)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mubeen Zulfiqar <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Add Z.ai coding plan support (RooCodeInc#8003)

* chore(deps): bump axios from 1.9.0 to 1.12.0 (RooCodeInc#7963)

Bumps [axios](https://github.com/axios/axios) from 1.9.0 to 1.12.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.9.0...v1.12.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.12.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix context menu is obscured when edit message. (RooCodeInc#7951)

* feat: add keyboard shortcut for "Add to Context" action (RooCodeInc#7908)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: handle ByteString conversion errors in OpenAI embedders (RooCodeInc#8008)

* CONTRIBUTING.md tweaks and issue template rewrite (RooCodeInc#8014)

* Visual tweaks

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Mubeen Zulfiqar <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: NaccOll <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>

* feat: add i18n support for git commits and file operations

* feat(i18n): update context menu translations in zh-CN and zh-TW locales

* feat: Bring back a way to temporarily and globally pause auto-approve without losing your toggle state (RooCodeInc#8024)

* Visual improvements and code cleanup (removes duplication)

* Brings back an 'enabled' toggle for auto-approve

* fix: filter out Claude Code built-in tools (ExitPlanMode, BashOutput, KillBash) (RooCodeInc#7818)

Co-authored-by: Roo Code <[email protected]>

* fix: handle square bracket HTML entities in Gemini responses (RooCodeInc#7577)

Co-authored-by: Roo Code <[email protected]>

* feat: Replace + icon with edit icon for New Task button (RooCodeInc#7942)

Co-authored-by: Roo Code <[email protected]>

* Release v3.28.3 (RooCodeInc#8025)

* Changeset version bump (RooCodeInc#8026)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: remove web-docs app (RooCodeInc#8027)

Co-authored-by: Roo Code <[email protected]>

* fix: skip flaky Windows test in custom-system-prompt.spec.ts (RooCodeInc#8023)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add GDPR-compliant cookie consent banner (RooCodeInc#8022)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Release: v1.76.0 (RooCodeInc#8030)

* Types 1.77.0 (RooCodeInc#8031)

* feat(web): update homepage headline and tagline for remote control capabilities (RooCodeInc#7911)

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* ux: Responsive Auto-Approve (RooCodeInc#8032)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Josh <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: cte <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: mrubens <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: Piotr Wilkin (ilintar) <[email protected]>
Co-authored-by: Christiaan Arnoldus <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mohammad Danaee nia <[email protected]>
Co-authored-by: 淡草 <[email protected]>
Co-authored-by: WangXiaolong <[email protected]>
Co-authored-by: Peter Dave Hello <[email protected]>
Co-authored-by: Thach Nguyen <[email protected]>
Co-authored-by: CellenLee <[email protected]>
Co-authored-by: NaccOll <[email protected]>
Co-authored-by: Ton Hoang Nguyen (Bill) <[email protected]>
Co-authored-by: ssweens <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mubeen Zulfiqar <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: James Edward Dillard <[email protected]>
mini2s added a commit to zgsm-ai/costrict that referenced this pull request Sep 18, 2025
* fix: remove duplicate cache display in task header (RooCodeInc#7443)

* Random chat text area cleanup (RooCodeInc#7436)

* Update @roo-code/cloud to enable roomote control for cloud agents (RooCodeInc#7446)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Always set remoteControlEnabled to true for cloud agents (RooCodeInc#7448)

* chore: add changeset for v3.26.1 (RooCodeInc#7459)

* feat: show model ID in API configuration dropdown (RooCodeInc#7423)

* feat: update tooltip component to match native VSCode tooltip shadow styling (RooCodeInc#7457)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: cte <[email protected]>

* Add support for Vercel embeddings (RooCodeInc#7445)

Co-authored-by: daniel-lxs <[email protected]>

* Remove dot before model display (RooCodeInc#7461)

* Update contributors list (RooCodeInc#7109)

Co-authored-by: mrubens <[email protected]>

* Update 3.26.1 changeset (RooCodeInc#7463)

* Changeset version bump (RooCodeInc#7460)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Add type for RooCodeEventName.TaskSpawned (RooCodeInc#7465)

* fix: hide .rooignore'd files from environment details by default (RooCodeInc#7369)

* fix: change default showRooIgnoredFiles to false to hide ignored files

- Changed default value from true to false across all files
- Updated tests to reflect the new default behavior
- This prevents ignored files from appearing in environment details

Fixes RooCodeInc#7368

* fix: update tests to match new showRooIgnoredFiles default

* fix: update test expectation to match new showRooIgnoredFiles default value

The PR changed the default value of showRooIgnoredFiles from true to false,
so the test needs to expect false instead of true when calling formatFilesList.

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: exclude browser scroll actions from repetition detection (RooCodeInc#7471)

- Modified ToolRepetitionDetector to skip repetition detection for browser_action scroll_down and scroll_up actions
- Added isBrowserScrollAction() helper method to identify scroll actions
- Added comprehensive tests for the new behavior
- Fixes issue where multiple scroll actions were incorrectly flagged as being stuck in a loop

Resolves: RooCodeInc#7470

Co-authored-by: Roo Code <[email protected]>

* Fix GPT-5 Responses API issues with condensing and image support (RooCodeInc#7067)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>

* Bump cloud to 0.25.0 (RooCodeInc#7475)

* feat: add image generation tool with OpenRouter integration (RooCodeInc#7474)

Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: cte <[email protected]>

* Make the default image filename more generic (RooCodeInc#7479)

* Release v3.26.2 (RooCodeInc#7490)

* Support free imagegen (RooCodeInc#7493)

* feat: update OpenRouter API to support input/output modalities and filter image generation models (RooCodeInc#7492)

* Add padding to image model picker (RooCodeInc#7494)

* fix: prevent dirty state on initial mount in ImageGenerationSettings (RooCodeInc#7495)

* Changeset version bump (RooCodeInc#7491)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Show console logging in vitests when the --no-silent flag is set (RooCodeInc#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 <[email protected]>

* Move @roo-code/cloud to the Roo-Code repo (RooCodeInc#7503)

* Refactor the extension bridge (RooCodeInc#7515)

* Implement deferred task subscriptions (RooCodeInc#7517)

* feat: add optional input image parameter to image generation tool (RooCodeInc#7525)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: sync extension bridge settings with cloud (RooCodeInc#7535)

- Use CloudService.getUserSettings() for remoteControlEnabled instead of global state
- Update CloudService.updateUserSettings when toggling remote control
- Add BridgeOrchestrator.connectOrDisconnect handling in settings update handler
- Remove dependency on contentProxy/globalSettings for remote control state
---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* refactor: flatten image generation settings structure (RooCodeInc#7536)

* chore: add changeset for v3.26.3 (RooCodeInc#7541)

* Changeset version bump (RooCodeInc#7542)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Mode and provider profile selector (RooCodeInc#7545)

* Putting the Roo in Roo-leases (RooCodeInc#7546)

* Fix evals (RooCodeInc#7547)

* fix: special tokens should not break task processing (RooCodeInc#7540)

* docs: update PR template branding from Roo Code to Costrict

* feat: optimize memory usage for image handling in webview (RooCodeInc#7556)

* feat: optimize memory usage for image handling in webview

- Replace base64 image data with webview URIs to reduce memory footprint
- Add proper resource roots to webview for workspace file access
- Implement convertToWebviewUri method for safe file-to-URI conversion
- Update ImageViewer to handle both webview URIs and file paths separately
- Add image message type for proper image rendering in chat
- Improve error handling and display for failed image loads
- Add comprehensive tests for ImageViewer component
- Format display paths as relative for better readability

This change significantly reduces memory usage by avoiding base64 encoding
of images and instead using VSCode's webview URI system for direct file
access. Images are now loaded on-demand from disk rather than being held
in memory as base64 strings.

* fix: address PR review comments

- Use safeJsonParse instead of JSON.parse in ChatRow.tsx
- Add type definition for parsed image info
- Add more specific error types in ClineProvider.ts
- Add comprehensive JSDoc comments to ImageBlock.tsx
- Improve error handling and type safety

* fix: address MrUbens' review comments

- Remove hardcoded 'rc1' pattern in formatDisplayPath, use generic workspace detection
- Internationalize 'No image data' text using i18n system

* chore: remove useless comment

* chore(i18n): add image.noData to all locales to fix translation check

* test: update ImageViewer.spec to align with i18n key and flexible path formatting

* feat: rename Account tab to Cloud tab (RooCodeInc#7558)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add Ollama API key support for Turbo mode (RooCodeInc#7425)

* feat: add Ollama API key support for Turbo mode

- Add ollamaApiKey field to ProviderSettings schema
- Add ollamaApiKey to SECRET_STATE_KEYS for secure storage
- Update Ollama and NativeOllama providers to use API key for authentication
- Add UI field for Ollama API key (shown when custom base URL is provided)
- Add test coverage for API key functionality

This enables users to use Ollama Turbo with datacenter-grade hardware by providing an API key for authenticated Ollama instances or cloud services.

* fix: use VSCodeTextField for Ollama API key field

Remove non-existent ApiKeyField import and use standard VSCodeTextField with password type, matching other provider implementations

* Add missing translation keys for Ollama API key support

- Add providers.ollama.apiKey and providers.ollama.apiKeyHelp to all 18 language files
- Support for authenticated Ollama instances and cloud services
- Relates to PR RooCodeInc#7425

* refactor: improve type safety for Ollama client configuration

- Replace 'any' type with proper OllamaOptions (Config) type
- Import Config type from ollama package for better type checking

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Disconnect extension bridge on logout (RooCodeInc#7563)

* Disconnect extension bridge on logout

* Remove bad test

* Cleanup

* Fix claudeCode.notFound translation key (RooCodeInc#7571)

I think I saw someone post a screenshot where "errors.claudeCode.notFound" was shown untranslated.

* v3.26.4 (RooCodeInc#7579)

* Update contributors list (RooCodeInc#7462)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7580)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add configurable embedding batch size for code indexing (RooCodeInc#7464)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Shows a pill with the base Roo Code Cloud URL when not pointing to pr… (RooCodeInc#7555)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Cloud: fix provider syncing (RooCodeInc#7603)

ClineProvider creation was moved before CloudService which broke
the old way of doing things.

* fix: add cache reporting support for OpenAI-Native provider (RooCodeInc#7602)

* fix: add cache reporting support for OpenAI-Native provider

- Add normalizeUsage method to properly extract cache tokens from Responses API
- Support both detailed token shapes (input_tokens_details) and legacy fields
- Calculate cache read/write tokens with proper fallbacks
- Include reasoning tokens when available in output_tokens_details
- Ensure accurate cost calculation using uncached input tokens

This fixes the issue where caching information was not being reported
when using the OpenAI-Native provider with the Responses API.

* fix: improve cache token normalization and add comprehensive tests

- Add fallback to derive total input tokens from details when totals are missing
- Remove unused convertToOpenAiMessages import
- Add comment explaining cost calculation alignment with Gemini provider
- Add comprehensive test coverage for normalizeUsage method covering:
  - Detailed token shapes with cached/miss tokens
  - Legacy field names and SSE-only events
  - Edge cases including missing totals with details-only
  - Cost calculation with uncached input tokens

* fix: address PR review comments

- Remove incorrect fallback to missFromDetails for cache write tokens
- Fix cost calculation to pass total input tokens (calculateApiCostOpenAI handles subtraction)
- Improve readability by extracting cache detail checks to intermediate variables
- Remove redundant ?? undefined
- Update tests to reflect correct behavior (miss tokens are not cache writes)
- Add clarifying comments about cache miss vs cache write tokens

* feat: add auto-approve support for MCP access_resource tool (RooCodeInc#7606)

* Move message queue to the extension host (RooCodeInc#7604)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* Send custom modes to the extension bridge (RooCodeInc#7612)

* Never give up in socket transport (RooCodeInc#7616)

* Fix socket-io client event handling (RooCodeInc#7618)

* More socket-io client fixes from PR feedback (RooCodeInc#7619)

* More socket-io client logging improvements (RooCodeInc#7620)

* Publish subtask events (RooCodeInc#7626)

* Update chutes.ts to add Qwen3 235B A22B Thinking 2507 model (RooCodeInc#7578)

Co-authored-by: Matt Rubens <[email protected]>

* chore: add changeset for v3.26.5 (RooCodeInc#7628)

* Update contributors list (RooCodeInc#7629)

Co-authored-by: mrubens <[email protected]>

* Changeset version bump (RooCodeInc#7630)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add run_slash_command tool for executing slash commands (RooCodeInc#7473)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Focus the extension when receiving bridge commands (RooCodeInc#7633)

* Release: v1.73.0 (RooCodeInc#7636)

* Cloud: remove extension_bridge_enabled for personal users (RooCodeInc#7638)

* Publish token usage metrics (RooCodeInc#7637)

* fix: preserve scroll position when switching tabs in settings (RooCodeInc#7587)

* fix: preserve scroll position when switching tabs in settings

* ui(settings): restore scroll synchronously to prevent flicker; dx(ui): name TabContent for clearer DevTools

---------

Co-authored-by: Daniel Riccio <[email protected]>

* feat: add Kimi K2 Turbo model configuration to moonshotModels (RooCodeInc#7593)

* feat: add Kimi K2 Turbo model configuration to moonshotModels

* feat: update Kimi K2 Turbo pricing and cache read prices

* fix: use askApproval wrapper in insert_content and search_and_replace tools (RooCodeInc#7649)

Fixes issue where isWriteProtected was incorrectly passed as the partial flag
to task.ask(), causing "Current ask promise was ignored (#1)" error.

Both tools now use the askApproval wrapper function which correctly handles
the parameter ordering, passing undefined for progressStatus and isWriteProtected
as the fourth parameter.

Fixes RooCodeInc#7648

Co-authored-by: Roo Code <[email protected]>

* Release v3.26.6 (RooCodeInc#7650)

* Changeset version bump (RooCodeInc#7651)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Delete .github/workflows/discord-pr-notify.yml

* Remove unused slack notif (RooCodeInc#7655)

* Handle zsh process substitution correctly (RooCodeInc#7658)

* Handle zsh glob qualifiers correctly (RooCodeInc#7667)

* Minor zh-TW Traditional Chinese locale typo fix (RooCodeInc#7672)

* feat: Add DeepInfra as a model provider in Roo Code (RooCodeInc#7677)

* fix: validate MCP tool exists before execution (RooCodeInc#7632)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* fix: add error transform to cryptic openAI SDK errors when API key is invalid (RooCodeInc#7586)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* feat: OpenAI Responses API service tiers (flex/priority) — UI selector, pricing, and tests (RooCodeInc#7646)

Co-authored-by: Daniel Riccio <[email protected]>

* fix: prevent countdown timer from showing in history for answered follow-up questions (RooCodeInc#7686)

* fix: Fix the issue of Moonshot's maximum return token count being limited to 1024 (RooCodeInc#7673)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>

* feat: update kimi-k2-0905-preview and kimi-k2-turbo-preview (RooCodeInc#7663)

* Fix test

* Release v3.26.7 (RooCodeInc#7691)

* Delete .changeset/petite-rats-admire.md

* feat: Add Kimi K2 0905 model to Groq, Moonshot, and Fireworks providers (RooCodeInc#7693)

* Use an allowlist to keep the prompt default shell sane (RooCodeInc#7681)

* Changeset version bump (RooCodeInc#7690)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Fix: Improve WelcomeView styling and readability (RooCodeInc#7682)

* fix: improve WelcomeView styling and readability

- Reduced excessive padding from p-16 to p-6
- Removed excessive bold text throughout
- Made provider cards more compact with smaller icons (32x32px)
- Increased introduction text size from text-sm to text-base for better visibility
- Centered the main greeting title
- Improved visual hierarchy with proper text sizing and spacing
- Added subtle borders and improved color contrast

* fix: remove undefined color class from incentive text

Removed the text-vscode-warningForeground class as it wasn't defined in index.css. The incentive text now uses default color which looks good.

* feat: add Kimi K2-0905 model to Chutes provider (RooCodeInc#7701)

Co-authored-by: Roo Code <[email protected]>

* fix: handle array paths from VSCode terminal profiles (RooCodeInc#7697)

* fix: handle array paths from VSCode terminal profiles

- Updated terminal profile interfaces to support string | string[] for path property
- Added normalizeShellPath helper to safely extract first element from array paths
- Modified isShellAllowed to handle both string and array inputs
- Updated getWindowsShellFromVSCode, getMacShellFromVSCode, and getLinuxShellFromVSCode to use normalizeShellPath
- Added comprehensive tests for array path handling

Fixes RooCodeInc#7695

* feat: add validateShellPath export for robust shell validation

- Created validateShellPath as a public API for shell path validation
- Refactored internal validation logic into isShellAllowedInternal
- Added comprehensive test coverage for all edge cases
- Maintains backward compatibility with deprecated isShellAllowed
- Handles arrays, strings, null, undefined, and nested arrays gracefully

* Simplify roomote's work a little

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Edit/Delete User Message (RooCodeInc#7447)

* fix: prevent stack overflow in codebase indexing for large projects (RooCodeInc#7712)

* fix: identify mcp and slash command config path in multiple folder workspace (RooCodeInc#6904)

* fix: resolve CI e2e test ETIMEDOUT errors when downloading VS Code (RooCodeInc#7583)

* fix: Tackling Race/State condition issue by Changing the Code Design for Gemini Grounding Sources (RooCodeInc#7434)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: preserve context by retrying with full conversation on invalid previous_response_id (RooCodeInc#7714)

* chore: add changeset for v3.26.8 (RooCodeInc#7715)

* feat(checkpoints): create checkpoint when user sends a message (RooCodeInc#7713)

* feat(checkpoints): create checkpoint on user message send

* fix(checkpoints): suppress implicit user-message checkpoint row; keep current checkpoint updated without a chat row

* Fix checkpoint suppression for user messages

- Propagate suppressMessage flag through event chain properly
- Update ChatView to check checkpoint metadata for suppressMessage flag
- Ensure checkpoint messages are created but not rendered when suppressed
- Fix bug where checkpointSave(false) should have been checkpointSave(true)

* fix: only create checkpoint on user message when files have changed

- Changed allowEmpty from true to false in checkpointSave call
- Checkpoints will now only be created when there are actual file changes
- This avoids creating empty commits in the shadow git repository

* test: update checkpoint test to include suppressMessage parameter

- Fixed test expectation to match the new function signature
- saveCheckpoint now expects both allowEmpty and suppressMessage parameters

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Daniel Riccio <[email protected]>

* Bump to 3.27.0 (RooCodeInc#7719)

* Changeset version bump (RooCodeInc#7716)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* fix: update DeepSeek pricing to new unified rates effective Sept 5, 2025 (RooCodeInc#7687)

- Updated deepseek-chat pricing: $0.56 input (cache miss), $0.07 (cache hit), $1.68 output
- Updated deepseek-reasoner pricing: same unified rates as deepseek-chat
- Both models now have identical pricing as per DeepSeek announcement
- Pricing takes effect at 16:00 UTC, Sept 5th, 2025

Fixes RooCodeInc#7685

Co-authored-by: Roo Code <[email protected]>

* feat: replace cloud waitlist ad with direct Cloud link in navigation (RooCodeInc#7742)

Co-authored-by: Roo Code <[email protected]>

* feat: show dash instead of zero for missing data on evals page (RooCodeInc#7748)

Co-authored-by: Roo Code <[email protected]>

* Feature/update vertex ai models and regions (RooCodeInc#7727)

* Add model info to eval runs table (RooCodeInc#7749)

* chore(deps): update dependency eslint-config-prettier to v10.1.8 (RooCodeInc#6464)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency esbuild to v0.25.9 (RooCodeInc#5455)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency @changesets/cli to v2.29.6 (RooCodeInc#7376)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency nock to v14.0.10 (RooCodeInc#6465)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update dependency eslint-plugin-turbo to v2.5.6 (RooCodeInc#7764)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* refactor(utils): simplify shell detection logic

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* test: update shell detection test expectation and mocks

* test: add mock cleanup in shell detection tests

* test: update shell detection tests to prioritize PowerShell 7

* fix(workspace-event-monitor): increase max retries and improve retry logic

* refactor(codebase): improve error handling and workspace validation

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* test: change console.error to console.warn in tests

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* test: enhance vscode mock implementations and error handling

* feat(chat): replace edit button with copy functionality

* refactor(core): enhance binary file detection and encoding handling

* separate task sync roomote control (RooCodeInc#7799)

* feat: separate Task Sync and Roomote Control settings

- Add new taskSyncEnabled setting to control task content syncing
- Keep remoteControlEnabled for Roomote Control functionality
- Task Sync controls whether task content is sent to cloud
- Roomote Control controls whether cloud can send instructions back
- Roomote Control now depends on Task Sync being enabled
- Usage metrics (tokens, cost) always reported regardless of settings
- Update UI with two separate toggles and clear descriptions
- Add info text explaining usage metrics are always reported

* feat: add missing translations for Task Sync and Roomote Control settings

- Added taskSync, taskSyncDescription, remoteControlRequiresTaskSync, and usageMetricsAlwaysReported keys to all non-English cloud.json files
- Updated cloudBenefit keys to match English structure
- Ensured all languages have consistent translation keys for the new Task Sync and Roomote Control features

* Cloud: cleanup taskSyncEnabled additions

* fix: correct indentation localization files

---------

Co-authored-by: Roo Code <[email protected]>

* feat: In-extension dismissible upsells for Roo Code Cloud (RooCodeInc#7850)

* First pass at separate upsell dialog

* Revert PR RooCodeInc#7188 - Restore temperature parameter to fix TabbyApi/ExLlamaV2 crashes (RooCodeInc#7594)

* fix: reduce CodeBlock button z-index to prevent overlap with popovers (RooCodeInc#7783)

Fixes RooCodeInc#7703 - CodeBlock language dropdown and copy button were appearing above popovers due to z-index: 100. Reduced to z-index: 40 to maintain proper layering hierarchy while keeping buttons functional.

* Make ollama models info transport work like lmstudio (RooCodeInc#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (RooCodeInc#7790)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency

- Enable click-to-edit for past messages by making message text clickable
- Add ESC key handler to cancel edit mode in ChatTextArea
- Fix padding consistency between past and queued message editors
- Adjust right padding for edit mode to accommodate cancel button

Fixes RooCodeInc#7788

* fix: adjust padding and layout for ChatTextArea in edit mode

* refactor: replace hardcoded pr-[72px] with standard Tailwind pr-20 class

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Let people paste in the auth redirect url (RooCodeInc#7805)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>

* fix: resolve chat message edit/delete duplication issues (RooCodeInc#7793)

* fix: add GIT_EDITOR env var to merge-resolver mode for non-interactive rebase (RooCodeInc#7819)

* UI: Render reasoning as plain italic (match <thinking>) (RooCodeInc#7752)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Add taskSyncEnabled to userSettingsConfigSchema (RooCodeInc#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <[email protected]>

* Release: v1.75.0 (RooCodeInc#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (RooCodeInc#7830)

Co-authored-by: Roo Code <[email protected]>

* Fix Groq context window display (RooCodeInc#7839)

* feat: add DismissibleUpsell component for dismissible messages

- Created DismissibleUpsell component with variant support (banner/default)
- Added dismissedUpsells to GlobalState for persistence
- Implemented message handlers for dismissing and retrieving dismissed upsells
- Added comprehensive tests for the component
- Uses VSCode extension globalState for persistent storage

* fix: Apply PR feedback for DismissibleUpsell component

- Changed from className to separate 'id' and 'className' props for better semantics
- Added i18n support for accessibility labels (aria-label and title)
- Fixed memory leak by adding mounted flag to prevent state updates after unmount
- Fixed race condition by sending dismiss message before hiding component
- Fixed inefficient array operations in webviewMessageHandler
- Added comprehensive test coverage for edge cases including:
  - Multiple rapid dismissals
  - Component unmounting during async operations
  - Invalid/malformed message handling
  - Proper message sending before unmount
- Added null checks for message data to handle edge cases gracefully

* New Cloud upsell dialog in task share and cloud view, shared component

* Properly working DismissibleUpsell

* Working upsell for long-running tasks

* CTA in AutoApproveMenu

* Home page CTA

* Fixes the autoapprove upsell and some tests

* Visual and copy fixes

* Test fix

* Translations

* Stray className attribute

* Cloud view fixes in a left-aligned layout

* Removes unnecessary test

* Less flaky tests

* Fixes sharebutton behavior and updates associated tests

* Update webview-ui/src/i18n/locales/it/cloud.json

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Fix dismissed flicker

* Fix long task upsell

---------

Co-authored-by: Daniel <[email protected]>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* v3.28.0 (RooCodeInc#7858)

* Changeset version bump (RooCodeInc#7859)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat(chat): add chat search functionality with highlighting

* feat: show notification when the checkpoint initialization fails (RooCodeInc#7766)

Co-authored-by: daniel-lxs <[email protected]>

* Bust cache in generated image preview (RooCodeInc#7860)

Co-authored-by: Roo Code <[email protected]>

* test: disable TaskHeader upsell tests

* test: refactor TaskHeader test file

* feat: Add cloud task button for opening tasks in Roo Code Cloud (RooCodeInc#7572)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>

* fix: center active mode in selector dropdown on open (RooCodeInc#7883)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* Make Posthog telemetry the default (RooCodeInc#7909)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Fix: Preserve first message during conversation condensing (RooCodeInc#7910)

* In-app announcement for Roo Code Cloud (RooCodeInc#7914)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* chore: add changeset for v3.28.1 (RooCodeInc#7916)

* Changeset version bump (RooCodeInc#7917)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* Remove Roo Code 3.25 release announcement

Removed the section about Roo Code 3.25 release notes.

* fix: restrict @-mention parsing to line-start or whitespace boundaries (RooCodeInc#7876)

Co-authored-by: Roo Code <[email protected]>

* Fix message queue re-queue loop in Task.ask() (RooCodeInc#7823)

* fix: preserve original first message context during conversation condensing (RooCodeInc#7939)

* Add a little padding to the cloudview (RooCodeInc#7954)

* test: increase test timeout configuration

* test(ci): enable translation check and optimize test workflow

* fix: make nested git repository warning persistent with path info (RooCodeInc#7885)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>

* fix: include API key in Ollama /api/tags requests (RooCodeInc#7903)

Co-authored-by: Roo Code <[email protected]>

* feat: add Qwen3 Next 80B A3B models to chutes provider (RooCodeInc#7948)

* ux: Smaller and more subtle auto-approve UI (RooCodeInc#7894)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: John Richmond <[email protected]>

* Disable Roomote Control on logout (RooCodeInc#7976)

* Remove chevrons from chat buttons (RooCodeInc#7970)

* chore: add changeset for v3.28.2 (RooCodeInc#7979)

* Changeset version bump (RooCodeInc#7980)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* ux: Makes text area buttons appear only when there's text (RooCodeInc#7987)

* fix: corrected C# tree-sitter query (RooCodeInc#7813)

* feat: Move slash commands to Settings tab with gear icon for discoverability (RooCodeInc#7988)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mubeen Zulfiqar <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Add Z.ai coding plan support (RooCodeInc#8003)

* chore(deps): bump axios from 1.9.0 to 1.12.0 (RooCodeInc#7963)

Bumps [axios](https://github.com/axios/axios) from 1.9.0 to 1.12.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.9.0...v1.12.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.12.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix context menu is obscured when edit message. (RooCodeInc#7951)

* feat: add keyboard shortcut for "Add to Context" action (RooCodeInc#7908)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: handle ByteString conversion errors in OpenAI embedders (RooCodeInc#8008)

* CONTRIBUTING.md tweaks and issue template rewrite (RooCodeInc#8014)

* feat: Reposition Add Image button inside ChatTextArea (RooCodeInc#7989)

* feat: move Add Image button inside ChatTextArea

- Moved Add Image button from bottom toolbar to top-right inside text area
- Repositioned Enhance Prompt button to be above Send button (bottom-right)
- Both buttons now follow similar positioning pattern as Send button
- Maintains consistent button styling and transitions

* fix: corrected C# tree-sitter query (RooCodeInc#7813)

* feat: Move slash commands to Settings tab with gear icon for discoverability (RooCodeInc#7988)

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mubeen Zulfiqar <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Add Z.ai coding plan support (RooCodeInc#8003)

* chore(deps): bump axios from 1.9.0 to 1.12.0 (RooCodeInc#7963)

Bumps [axios](https://github.com/axios/axios) from 1.9.0 to 1.12.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.9.0...v1.12.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.12.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix context menu is obscured when edit message. (RooCodeInc#7951)

* feat: add keyboard shortcut for "Add to Context" action (RooCodeInc#7908)

Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* fix: handle ByteString conversion errors in OpenAI embedders (RooCodeInc#8008)

* CONTRIBUTING.md tweaks and issue template rewrite (RooCodeInc#8014)

* Visual tweaks

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Mubeen Zulfiqar <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: NaccOll <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>

* feat: add i18n support for git commits and file operations

* feat(i18n): update context menu translations in zh-CN and zh-TW locales

* feat: Bring back a way to temporarily and globally pause auto-approve without losing your toggle state (RooCodeInc#8024)

* Visual improvements and code cleanup (removes duplication)

* Brings back an 'enabled' toggle for auto-approve

* fix: filter out Claude Code built-in tools (ExitPlanMode, BashOutput, KillBash) (RooCodeInc#7818)

Co-authored-by: Roo Code <[email protected]>

* fix: handle square bracket HTML entities in Gemini responses (RooCodeInc#7577)

Co-authored-by: Roo Code <[email protected]>

* feat: Replace + icon with edit icon for New Task button (RooCodeInc#7942)

Co-authored-by: Roo Code <[email protected]>

* Release v3.28.3 (RooCodeInc#8025)

* Changeset version bump (RooCodeInc#8026)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <[email protected]>

* feat: remove web-docs app (RooCodeInc#8027)

Co-authored-by: Roo Code <[email protected]>

* fix: skip flaky Windows test in custom-system-prompt.spec.ts (RooCodeInc#8023)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* feat: add GDPR-compliant cookie consent banner (RooCodeInc#8022)

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>

* Release: v1.76.0 (RooCodeInc#8030)

* Types 1.77.0 (RooCodeInc#8031)

* feat(web): update homepage headline and tagline for remote control capabilities (RooCodeInc#7911)

* Merge remote-tracking branch 'upstream/main' into roo-to-main

* ux: Responsive Auto-Approve (RooCodeInc#8032)

Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* feat(cloud): Add telemetry retry queue for network resilience (RooCodeInc#7597)

* feat(cloud): Add telemetry retry queue for network resilience

- Implement RetryQueue class with workspace-scoped persistence
- Queue failed telemetry events for automatic retry
- Retry events every 60 seconds with fresh auth tokens
- FIFO eviction when queue reaches 100 events
- Persist queue across VS Code restarts

This ensures telemetry data isn't lost during network failures or temporary server issues.
Migrated from RooCodeInc/Roo-Code-Cloud#744

* fix: address PR review feedback for retry queue

- Fix retry order to use consistent FIFO processing
- Add retry limit enforcement with max retries check
- Add configurable request timeout (default 30s)
- Add comprehensive tests for retryAll() method
- Add request-max-retries-exceeded event
- Fix timeout test to avoid timing issues

* fix: resolve TypeScript errors in RetryQueue tests

* fix(cloud): Address PR feedback for telemetry retry queue

- Handle HTTP error status codes (500s, 401/403, 429) as failures that trigger retry
- Remove queuing of backfill operations since they're user-initiated
- Fix race condition in concurrent retry processing with isProcessing flag
- Add specialized retry logic for 429 with Retry-After header support
- Clean up unnecessary comments
- Add comprehensive tests for new status code handling
- Add temporary debug logs with emojis for testing

* refactor: address PR feedback for telemetry retry queue

- Remove unused X-Organization-Id header from auth header provider
- Simplify enqueue() API by removing operation parameter
- Fix error retry logic: only retry 5xx, 429, and network failures
- Stop retrying 4xx client errors (400, 401, 403, 404, 422)
- Implement queue-wide pause for 429 rate limiting
- Add auth state management integration:
  - Pause queue when not in active-session
  - Clear queue on logout or user change
  - Preserve queue when same user logs back in
- Remove debug comments
- Fix ESLint no-case-declarations error with proper block scope
- Update tests for all new behaviors

* Docs: Overhaul README (RooCodeInc#8005)

* docs: overhaul README for clarity and impact

* fix: update badge links and styles in README for improved visibility

* docs(README): stronger CTAs for Discord/Reddit; restore Modes/Roles incl. cloud agents

* docs(readme): add support CTA; refine modes section; clarify custom modes wording

- add centered help/links CTA under badges: [README.md](README.md:8-10)
- expand feature list to explicitly include modes: [README.md](README.md:45)
- rename section header “Modes and Roles” → “Modes”: [README.md](README.md:52)
- update wording to “Custom Modes: build specialized modes for your team or workflow”: [README.md](README.md:60)

* docs: implement @jdilla1277 suggestions for English README

- Updated header to "Your AI-Powered Dev Team, Right in Your Editor" (removed Cline reference)
- Changed line 44 to "Generate Code from natural language descriptions and specs" for better SEO
- Removed "not the other way around" phrase from line 54
- Replaced "Cloud Agents" with "Roomote Control" on line 61

As requested by @hannesrudolph, these changes are only applied to the English README.

* docs: clarify Roomote Control description and update related links in README

* Reworked the contributor list. Made translastion corrections.

---------

Co-authored-by: Roo Code <[email protected]>

* Add organizationFeaturesSchema with roomoteControlEnabled (RooCodeInc#8085)

feat: add organizationFeaturesSchema with roomoteControlEnabled

- Add organizationFeaturesSchema with optional roomoteControlEnabled boolean
- Integrate features property into organizationSettingsSchema as optional
- Add comprehensive tests for new schema validation
- Maintain backward compatibility with existing organization settings

Co-authored-by: Roo Code <[email protected]>

* Release: v1.78.0 (RooCodeInc#8089)

chore: bump version to v1.78.0

* Get the model id property for a given provider (RooCodeInc#8009)

* Fix: Transform keybindings in nightly build to fix command+y shortcut (RooCodeInc#8070)

* fix: transform keybindings command references in nightly build

The keybindings section was not being transformed during the nightly build process, causing command+y keybinding to reference the wrong command name (roo-cline.addToContext instead of roo-code-nightly.addToContext).

- Added keybindings schema to types.ts
- Updated generatePackageJson to transform keybindings command references
- This ensures keybindings work correctly in the nightly build

* fix: only include keybindings in output when they exist

Updated generatePackageJson to conditionally add keybindings to avoid including undefined values in the generated package.json. Fixed eslint-disable comment placement.

---------

Co-authored-by: Roo Code <[email protected]>

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Matt Rubens <[email protected]>
Co-authored-by: Chris Estreich <[email protected]>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Daniel <[email protected]>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: mrubens <[email protected]>
Co-authored-by: Hannes Rudolph <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: Chris Hasson <[email protected]>
Co-authored-by: John Richmond <[email protected]>
Co-authored-by: Piotr Wilkin (ilintar) <[email protected]>
Co-authored-by: Christiaan Arnoldus <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mohammad Danaee nia <[email protected]>
Co-authored-by: 淡草 <[email protected]>
Co-authored-by: WangXiaolong <[email protected]>
Co-authored-by: Peter Dave Hello <[email protected]>
Co-authored-by: Thach Nguyen <[email protected]>
Co-authored-by: CellenLee <[email protected]>
Co-authored-by: NaccOll <[email protected]>
Co-authored-by: Ton Hoang Nguyen (Bill) <[email protected]>
Co-authored-by: ssweens <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: ItsOnlyBinary <[email protected]>
Co-authored-by: Bruno Bergher <[email protected]>
Co-authored-by: Mubeen Zulfiqar <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: James Edward Dillard <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation lgtm This PR has been approved by a maintainer PR - Needs Review size:XXL This PR changes 1000+ lines, ignoring generated files.
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

4 participants