Commit graph

239 commits

Author SHA1 Message Date
NaccOll
89b62845fb Use constants to replace magic values ​​and modify some i18n 2025-09-23 17:22:17 +08:00
NaccOll
a9a2e8c234 feat: add checkpoint initialization timeout settings and warnings
- Added new localization strings for checkpoint initialization timeout messages in multiple languages.
- Implemented checkpoint initialization timeout feature in settings, allowing users to configure the timeout duration (10-60 seconds).
- Updated the ShadowCheckpointService to handle long initialization times and provide appropriate warnings.
- Enhanced the chat component to display checkpoint initialization warnings based on the new timeout settings.
- Modified the CheckpointWarning component to accept custom warning messages.
- Updated tests to cover new checkpoint timeout functionality and ensure proper integration.
2025-09-16 15:30:51 +08:00
Daniel
3fe2918e67
Add Z.ai coding plan support (#8003) 2025-09-15 17:53:20 -04:00
Daniel
d09689bf9b
feat: add Qwen3 Next 80B A3B models to chutes provider (#7948) 2025-09-13 23:07:57 -04:00
Matt Rubens
33fe6fb9c6
Make Posthog telemetry the default (#7909)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-09-11 15:50:40 -04:00
Bruno Bergher
469a70fe5d
feat: In-extension dismissible upsells for Roo Code Cloud (#7850)
* First pass at separate upsell dialog

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

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

Fixes #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 (#7679)

* feat: add click-to-edit, ESC-to-cancel, and fix padding consistency for chat messages (#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 #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 <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>

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

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

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

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

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

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>

* Add taskSyncEnabled to userSettingsConfigSchema (#7827)

feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <roomote@roocode.com>

* Release: v1.75.0 (#7829)

chore: bump version to v1.75.0

* fix: prevent negative cost values and improve label visibility in evals chart (#7830)

Co-authored-by: Roo Code <roomote@roocode.com>

* Fix Groq context window display (#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 <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: ItsOnlyBinary <ItsOnlyBinary@users.noreply.github.com>
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: John Richmond <5629+jr@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-09-10 13:06:13 -07:00
John Richmond
80af39dc74
separate task sync roomote control (#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 <roomote@roocode.com>
2025-09-10 12:43:11 -07:00
John Richmond
d2e07ec8b9
Release: v1.75.0 (#7829)
chore: bump version to v1.75.0
2025-09-09 14:08:05 -07:00
roomote[bot]
de0cd99aa7
Add taskSyncEnabled to userSettingsConfigSchema (#7827)
feat: add taskSyncEnabled to userSettingsConfigSchema

Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-09 13:53:25 -07:00
ssweens
18cf33f96d
Feature/update vertex ai models and regions (#7727) 2025-09-06 22:18:55 -04:00
roomote[bot]
e8deedd91b
fix: update DeepSeek pricing to new unified rates effective Sept 5, 2025 (#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 #7685

Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-05 18:46:00 -04:00
roomote[bot]
2c8c140551
feat: add Kimi K2-0905 model to Chutes provider (#7701)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-09-05 09:22:22 -04:00
Daniel
4ad1a26492
feat: Add Kimi K2 0905 model to Groq, Moonshot, and Fireworks providers (#7693) 2025-09-04 23:57:39 -04:00
CellenLee
d9f80f175f
feat: update kimi-k2-0905-preview and kimi-k2-turbo-preview (#7663) 2025-09-04 23:27:15 -04:00
Daniel
de12ec169b
fix: prevent countdown timer from showing in history for answered follow-up questions (#7686) 2025-09-04 23:19:05 -04:00
Hannes Rudolph
571d1a4833
feat: OpenAI Responses API service tiers (flex/priority) — UI selector, pricing, and tests (#7646)
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-09-04 23:14:01 -04:00
Thach Nguyen
72502d8f1a
feat: Add DeepInfra as a model provider in Roo Code (#7677) 2025-09-04 17:28:45 -04:00
WangXiaolong
0126c5dd46
feat: add Kimi K2 Turbo model configuration to moonshotModels (#7593)
* feat: add Kimi K2 Turbo model configuration to moonshotModels

* feat: update Kimi K2 Turbo pricing and cache read prices
2025-09-03 20:11:38 -04:00
Chris Estreich
c25cfdeaef
Publish token usage metrics (#7637) 2025-09-03 13:51:27 -07:00
Matt Rubens
8dbd30af6c
Release: v1.73.0 (#7636) 2025-09-03 16:13:32 -04:00
Chris Estreich
280b75d2eb
Focus the extension when receiving bridge commands (#7633) 2025-09-03 12:23:50 -07:00
roomote[bot]
d7896924a9
feat: add run_slash_command tool for executing slash commands (#7473)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-09-03 14:14:55 -04:00
Mohammad Danaee nia
84bc7035ee
Update chutes.ts to add Qwen3 235B A22B Thinking 2507 model (#7578)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-09-03 09:27:24 -04:00
Chris Estreich
43ff486d42
Publish subtask events (#7626) 2025-09-03 04:05:54 -07:00
Chris Estreich
5196c75017
Move message queue to the extension host (#7604)
Co-authored-by: roomote[bot] <219738659+roomote[bot]@users.noreply.github.com>
2025-09-02 19:12:18 -07:00
Daniel
7e24600877
feat: add auto-approve support for MCP access_resource tool (#7606) 2025-09-02 21:49:21 -04:00
roomote[bot]
63b71d8299
feat: add Ollama API key support for Turbo mode (#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 #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 <roomote@roocode.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
2025-08-30 19:20:31 -04:00
roomote[bot]
f5e0525536
feat: rename Account tab to Cloud tab (#7558)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-08-30 18:57:00 -04:00
Daniel
fad219e001
feat: optimize memory usage for image handling in webview (#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
2025-08-30 15:57:30 -04:00
Chris Estreich
20929b0f16
Mode and provider profile selector (#7545) 2025-08-29 16:48:06 -07:00
Daniel
c3d84d295d
refactor: flatten image generation settings structure (#7536) 2025-08-29 18:35:24 -04:00
Chris Estreich
1d46bd1bbc
Implement deferred task subscriptions (#7517) 2025-08-29 02:43:06 -07:00
Chris Estreich
1e4c46fe6f
Refactor the extension bridge (#7515) 2025-08-29 00:28:38 -07:00
Chris Estreich
cd9e92fa9b
Move @roo-code/cloud to the Roo-Code repo (#7503) 2025-08-28 11:18:45 -07:00
Daniel
2092fb1a50
feat: add image generation tool with OpenRouter integration (#7474)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: cte <cestreich@gmail.com>
2025-08-28 01:57:48 -04:00
Daniel
2204457cc5
Fix GPT-5 Responses API issues with condensing and image support (#7067)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: Hannes Rudolph <hrudolph@gmail.com>
2025-08-27 23:30:43 -04:00
Matt Rubens
0f6079a3a3
Add type for RooCodeEventName.TaskSpawned (#7465) 2025-08-27 17:40:06 -04:00
Matt Rubens
1ad2129964
Add support for Vercel embeddings (#7445)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-08-27 13:30:19 -04:00
Daniel
faf5734bdc
feat: show model ID in API configuration dropdown (#7423) 2025-08-27 13:19:30 -04:00
Daniel
ff1f4f0398
fix: use anthropic protocol for token counting when using anthropic models via Vercel AI Gateway (#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).
2025-08-26 20:22:37 -04:00
Josh
934bfd0a54
feat: Add Vercel AI Gateway provider integration (#7396)
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: cte <cestreich@gmail.com>
2025-08-26 13:41:02 -07:00
Matt Rubens
572fa5080d
Sonic -> Grok Code Fast (#7426) 2025-08-26 16:17:47 -04:00
roomote[bot]
2e99d5bf1b
feat: Add Qwen Code CLI API Support with OAuth Authentication (#7380)
Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
Co-authored-by: cte <cestreich@gmail.com>
2025-08-25 10:43:48 -07:00
roomote[bot]
8367b1ac92
feat: add Deepseek v3.1 to Fireworks AI provider (#7375)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-24 18:43:06 -04:00
roomote[bot]
262033ddd0
feat: add DeepSeek V3.1 model to Chutes AI provider (#7295)
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-22 12:18:55 -07:00
Daniel
faab314a88
feat: add prompt caching support for Kimi K2 on Groq (#7324)
Ported from upstream Cline repository PR #5697
Original PR: https://github.com/cline/cline/pull/5697

- Added GroqUsage interface to handle cached token fields
- Implemented proper cost calculation with cache read discounts
- Enabled prompt caching for Kimi K2 model with 50% discount on cached tokens
- Updated tests to verify caching functionality

Co-authored-by: Cline Contributors <cline@github.com>
2025-08-22 09:40:21 -07:00
roomote[bot]
4222036c58
feat: remove assistantMessageParser experiment flag and enable for all users (#7300)
- Remove assistantMessageParser from experiment definitions in packages/types
- Remove ASSISTANT_MESSAGE_PARSER from shared experiments configuration
- Update Task.ts to always initialize and use AssistantMessageParser
- Remove conditional logic that checked for experiment flag
- Remove unused parseAssistantMessage import
- Update test files to remove assistantMessageParser references
- All tests passing successfully

Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-21 15:30:42 -07:00
roomote[bot]
9fe06db921
fix: update DeepSeek models context window to 128k (#7269)
* fix: update DeepSeek models context window to 128k

- Updated deepseek-chat and deepseek-reasoner models from 64k to 128k context window
- Updated corresponding test expectations
- Aligns with DeepSeek API documentation at https://api-docs.deepseek.com/quick_start/pricing/

Fixes #7268

* feat: update deepseek-reasoner maxTokens to 64K based on official documentation

* fix: use default maxTokens values instead of maximum for DeepSeek models

- deepseek-chat: 4096 (4K default) instead of 8192 (8K max)
- deepseek-reasoner: 32768 (32K default) instead of 65536 (64K max)
- Updated tests to match new default values
- Updated description to clarify default vs max output tokens

* fix: use maximum output tokens for both DeepSeek models

- deepseek-chat: 8192 (8K max)
- deepseek-reasoner: 65536 (64K max)
- Updated tests to match maximum values
- Updated description to reflect 64K max output

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-08-21 15:03:35 -07:00
roomote[bot]
0bc1183c71
feat: enable grounding features for Vertex AI (#6777)
* feat: enable grounding features for Vertex AI

- Add enableUrlContext and enableGrounding options to vertexSchema in provider-settings.ts
- Update Vertex.tsx UI component to include URL context and grounding checkboxes
- Add comprehensive tests for the new grounding features in Vertex.spec.tsx
- Reuse existing localization strings from Gemini provider

Fixes #6776

* fix: address review feedback - hide grounding features in welcome view and only show for Gemini models

---------

Co-authored-by: Roo Code <roomote@roocode.com>
Co-authored-by: daniel-lxs <ricciodaniel98@gmail.com>
2025-08-21 13:02:45 -07:00
Hannes Rudolph
4664955127
feat: add optional todos parameter to new_task tool with experimental setting (#6329) (#6775)
* feat: add optional todos parameter to new_task tool with experimental setting (#6329)

- Add optional todos parameter to new_task tool for hierarchical task planning
- Implement experimental setting to optionally require todos parameter
- Add clean state-based UI rendering to avoid spurious messages
- Export and reuse parseMarkdownChecklist function
- Add comprehensive test coverage for both optional and required modes
- Maintain full backward compatibility (todos optional by default)

* fix: update new_task tool example to include todos parameter

- Updated the example in tool-use.ts to show the todos parameter
- This prevents AI confusion about whether todos is a valid parameter
- The example now demonstrates the complete tool usage pattern

* fix: make new_task tool definition dynamic based on experimental setting

- Tool description now changes based on newTaskRequireTodos setting
- When disabled: shows todos as (optional)
- When enabled: shows todos as (required) with no mention of configuration
- Added tests to verify dynamic behavior
- Ensures AI models get unambiguous instructions based on current settings

* fix: add translations for newTaskRequireTodos experimental setting

- Added translations for all 17 supported languages
- Ensures consistent UI experience across all locales

* test: update snapshots for new_task tool example with todos parameter

- Updated 13 snapshot files to reflect the new tool-use example
- All tests now pass with the updated example format

* Update src/core/tools/newTaskTool.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: address PR review comments

- Replace any[] with TodoItem[] type in ExtensionStateContext.tsx for better type safety
- Remove redundant initialTodos parameter from startTask call in Task.ts (todos already set in constructor)
- Improve code clarity in newTaskTool.ts by checking provider reference early and reusing state

# Conflicts:
#	src/core/task/Task.ts
#	webview-ui/src/context/ExtensionStateContext.tsx

* fix: revert order of operations in startTask to fix integration test timeout

The change in order of operations (calling say() before postStateToWebview()) was causing the XML content file test to timeout. Reverting to the original order fixes the issue.

* fix: hide todos parameter from new_task tool prompt when experiment is disabled

- Modified getNewTaskDescription to completely omit todos parameter when experiment is off
- Updated tests to verify todos parameter is not shown at all when disabled
- Ensures tool prompt remains unchanged when experimental setting is disabled
- Maintains backward compatibility while providing cleaner prompt interface

* fix: update snapshots for new_task tool todos parameter

- Updated snapshots in add-custom-instructions.spec.ts
- Updated snapshots in system-prompt.spec.ts
- All tests now passing with the new todos parameter documentation

* feat: move newTaskRequireTodos from experimental to VSCode settings

- Added newTaskRequireTodos as a VSCode configuration property in src/package.json
- Added description in src/package.nls.json
- Updated newTaskTool.ts to read from VSCode configuration instead of experiments
- Removed NEW_TASK_REQUIRE_TODOS from experimental settings in src/shared/experiments.ts
- Removed newTaskRequireTodos from packages/types/src/experiment.ts
- Updated tests to use VSCode configuration mocking instead of experiments
- Removed references from experiments test file
- Maintains backward compatibility (defaults to false)

* fix: make new_task tool description dynamically reflect VSCode setting

- Updated new-task.ts to check args.settings instead of args.experiments
- Added newTaskRequireTodos to SystemPromptSettings interface
- Pass newTaskRequireTodos setting through Task.ts and generateSystemPrompt.ts
- Updated all related tests to use settings instead of experiments
- Fixed TypeScript errors in test files by adding newTaskRequireTodos property

This ensures the tool description correctly shows todos parameter as required/optional
based on the VSCode setting value, fixing the issue where Roo would try to use
new_task without the todos parameter when it was required.

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Merge Resolver <merge-resolver@roo-code.com>
Co-authored-by: Roo Code <roomote@roocode.com>
2025-08-21 13:02:05 -07:00