Commit graph

126 commits

Author SHA1 Message Date
aheizi
7ef4841914
feat: batch clear history (#1596)
* batch clear history

* catch Task not found error

* fix deleteMultipleTasksWithIds

* add i18n for batch clear history

* add i18n for history

* debug

* remove unused logs

* fix trans

* fix trans

* Cleanup

---------

Co-authored-by: aheizi <aheiz@outlook.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-18 09:33:25 -04:00
KJ7LNW
6301e90454
Fix shell integration race condition (and other minor fixup/cleanup) (#1660)
* fix: clarify PowerShell command completion workaround

The command completion detection approach in PowerShell requires an output
string to allow duplicate commands to execute in some versions of code.
Update the string to explicitly indicate it is a Roo PowerShell workaround,
making it clear in terminal output that this is intentional behavior rather
than a side effect.

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

* cleanup: improve terminal logging and error handling

No functional changes - purely improves error handling and logging clarity.

Terminal.ts:
- Handle undefined process state in setActiveStream without throwing
- Add terminal IDs to all log messages for better traceability
- Improve error message clarity in shell integration timeout

TerminalRegistry.ts:
- Reorganize shell execution event handlers for better flow
- Log shell execution events before processing for reliable debugging
- Add detailed context to terminal not found scenarios
- Include command and execution state in error messages

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

* feat: make terminal shell integration timeout configurable

Users with long shell startup times were encountering "Shell Integration Unavailable" errors due to the hard-coded 4s timeout. The timeout is now configurable through Advanced Settings (1-60s).

Thanks @filthy for troubleshooting and @kiwina for suggesting making the timeout configurable.

Fixes #1654

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

* critical fix: race condition that prevents command completion

Terminal running state is now managed in TerminalRegistry instead of Terminal to prevent race between stream close and shell completion.

While this race may not trigger on current VSCode versions, newer releases with additional terminal fixes may expose the issue. This proactively prevents "Shell execution end event received, but process is not running" errors.

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

* fix: improve command execution path reporting

Enhance clarity of command execution context and error reporting:

- Check to see if the directory changed because of the command
- Clarify execution path message
- Add explicit message when command exits with non-zero code

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

* system instructions: clarify terminal directory operations

Clear guidance for the AI system on:
- Working directory constraints
- Path handling requirements
- Tool vs terminal directory behavior

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

* test: update snapshots for system prompt working directory instructions

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

---------

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Chris Estreich <cestreich@gmail.com>
2025-03-17 23:57:20 -07:00
Seth Miller
f16a49de87
Add text-to-speech functionality (#1412)
* Add text-to-speech functionality

* Add speed config option to text-to-speech

* Fix test case for tts speed slider

* Fix test case for tts speed slider (really)

* Disabled error message logging in tts.ts

* ignore markdown and mermaid diagrams in TTS

* add ttsEnabled and ttsSpeed to GlobalStateKey

* fix failing webview test for save button

* Translations

* Fix tests

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-18 01:47:16 -04:00
aheizi
bda929b4f6 Merge branch 'main' into support_project_mcp
# Conflicts:
#	webview-ui/src/i18n/locales/ar/mcp.json
#	webview-ui/src/i18n/locales/cs/mcp.json
#	webview-ui/src/i18n/locales/hu/mcp.json
#	webview-ui/src/i18n/locales/pt/mcp.json
#	webview-ui/src/i18n/locales/ru/mcp.json
2025-03-17 12:07:03 +08:00
Matt Rubens
79e1d11b2e Add a language picker 2025-03-16 16:49:07 -04:00
aheizi
70600d7077 Merge remote-tracking branch 'origin/main' into support_project_mcp 2025-03-15 18:40:22 +08:00
Matt Rubens
9bbbaf2288 Add a new setting to control the number of workspace files included in the system prompt 2025-03-14 12:06:56 -04:00
aheizi
4106ca4a19 support project-level mcp config 2025-03-13 21:07:24 +08:00
cte
4b23644683 Add Cline events and roofactor subtasks slightly 2025-03-12 22:52:37 -07:00
Matt Rubens
baa346dc46 Remove preferredLanguage and just rely on VSCode language 2025-03-12 11:23:04 -04:00
Eric Wheeler
070a36baa2 Revert "Smart truncation for terminal output"
This reverts commit 7eee3e0878.

Middle-out truncation is a really great feature and it should still be
implemented, however it unnecessarily interferes with #1365 because it
hooked into the low-level chunk management that comes directly from VSCE
shell integration.

The best place to hook OutputBuilder is as follows depending on the
state of terminal interaction:

1. Foreground terminals:

Cline.ts:
	 executeCommandTool(...) {
	     process.on("line", (line) => {
		    lines.push(line)
		    ...
	    }
	 }

2. For background terminals: hook in at the point that getUnretrievedOutput is consumed for active or
   inactive terminals in Cline.ts:getEnvironmentDetails()

Please note:

The Terminal classes are very sensitive to change, partially because of
the complicated way that shell integration works with VSCE, and
partially because of the way that Cline interacts with the Terminal*
class abstractions that make VSCE shell integration easier to work with.

At the point that PR#1365 is merged, it is unlikely that any Terminal*
classes will need to be modified substantially.  Generally speaking, we
should think of this is a stable interface and minimize changes.

Reverts: #1390
2025-03-10 20:54:53 -07:00
Matt Rubens
6cfc1cd4c9
Merge pull request #1528 from afshawnlotfi/chrome-remote-webtools
Chrome remote webtools
2025-03-10 21:37:20 -04:00
Afshawn Lotfi
66e3b9610c Add remote browser connection support and related state management 2025-03-10 03:41:38 +00:00
Matt Rubens
c70595b9f0
Merge pull request #1507 from hannesrudolph/optional-mode-creation
feat: Add toggle for custom mode creation
2025-03-09 18:54:49 -04:00
Afshawn Lotfi
22f51304a2 Add support for remote browser connection and settings 2025-03-09 20:11:52 +00:00
Roo Code
2a08c7c3db feat: Add toggle for custom mode creation
This commit adds a new setting to allow users to disable custom mode creation,
which can help reduce token usage in Roo's prompts.

Key changes:

Add enableCustomModeCreation setting to global state
Conditionally include custom modes documentation in prompt only when enabled
Add UI toggle in PromptsView with explanatory text
Default the setting to enabled (true) for backward compatibility
Update necessary interfaces and message handlers for the new setting
The setting is placed in PromptsView rather than SettingsView since it directly
relates to the modes functionality managed in that component.
2025-03-08 22:05:27 -07:00
Matt Rubens
e10757d6fa Iterate on subtasks UX 2025-03-08 23:46:28 -05:00
ShayBC
1456db9502 added approve finish task button and auto approve button for subtasks 2025-03-08 06:01:49 +02:00
Matt Rubens
f9d162e157 Add setting for whether to include ignored files in lists 2025-03-07 11:28:28 -05:00
Matt Rubens
50f76584bc Add telemetry and privacy policy 2025-03-07 03:03:44 -05:00
cte
7eee3e0878 Smart truncation for terminal output 2025-03-05 19:36:52 -08:00
Matt Rubens
73ac64924e Merge remote-tracking branch 'origin/main' into human-relay 2025-03-05 10:34:03 -05:00
cte
e1ccb70269 Checkpoint storage setting + settings view redesign 2025-03-04 15:18:29 -08:00
Felix NyxJae
d6ae95a227 Merge branch 'main' of github.com:NyxJae/Roo-Code into human-relay 2025-03-04 21:44:19 +08:00
cte
0bd56ad165 Checkpoints: one-branch-per-task / one-repo-per-workspace 2025-03-04 01:37:05 -08:00
Felix NyxJae
40dd7ac532 Merge branch 'main' of github.com:NyxJae/Roo-Code into human-relay 2025-03-04 11:23:04 +08:00
Matt Rubens
6b0347e0bd Add a checkbox to enable/disable the browser tool 2025-03-03 00:34:20 -05:00
Felix NyxJae
8a5f16cbf2
Merge branch 'RooVetGit:main' into human-relay 2025-02-28 17:41:05 +08:00
Felix NyxJae
38c09d09d6 fix: Fix the human relay dialog function and optimize user interaction experience 2025-02-28 10:54:25 +08:00
Felix NyxJae
3bb1d78c17 feat: Added human relay function and related message processing initial version 2025-02-27 18:08:05 +08:00
Matt Rubens
10c6f8fb67 Graduate checkpoints out of beta 2025-02-27 01:35:50 -05:00
cte
41e75bc989 Model picker fixes 2025-02-25 23:02:43 -08:00
Roo Code
7bb8edf720 Added MCP server deletion with confirmation dialog
- Added delete button with trash icon to MCP server rows
- Implemented confirmation dialog using existing Dialog component
- Added "deleteMcpServer" message type to WebviewMessage interface
- Added handler in ClineProvider to process deletion:
  - Removes server from MCP settings file
  - Closes server connection
  - Updates UI to reflect changes
- Added user feedback with success/error notifications
- Ensured consistent modal design with rest of application
2025-02-18 11:19:08 -07:00
System233
2943d655cf Fix input box revert issue and configuration loss during profile switch #955 2025-02-18 01:02:51 +08:00
Matt Rubens
7c6fe52c80 Add support for project-specific .roomodes 2025-02-13 23:14:59 -05:00
Matt Rubens
0855159f70 Setting for the max number of open tabs to include in context 2025-02-13 22:23:20 -05:00
Mamerto Fabian Jr
18fe01baf3 Add 'copySystemPrompt' functionality and refactor system prompt generation 2025-02-11 09:17:45 +08:00
sam hoang
91fe764cb8 feat: add Requesty API provider support
- Add RequestyHandler implementation for API integration
- Add RequestyModelPicker component for model selection
- Update shared types and messages for Requesty support
- Update API options to include Requesty provider
2025-02-10 20:13:43 +07:00
Vignesh Subbiah
5995923daf
Merge branch 'main' into pm/unbound-fetch-models 2025-02-08 22:11:22 +05:30
cte
121f3ab7fa Checkpoint service integration 2025-02-07 22:27:27 -08:00
Pugazhendhi
32f91b6291 Merged with main branch 2025-02-06 12:44:22 +05:30
Pugazhendhi
ea3d384e48 Fetches all models from gateway during init 2025-02-03 12:18:15 +05:30
sam hoang
f906755d90 feat: add setting to enable/disable MCP server creation
- Add enableMcpServerCreation setting to control whether MCP server creation is allowed
- Add UI toggle in settings view for this feature
- Update system prompt to conditionally include MCP server creation documentation
- Add tests for new functionality
2025-02-01 09:34:53 +07:00
Matt Rubens
9aeb498f99 Add optional rate limiting between API calls 2025-01-31 16:44:32 -05:00
sam hoang
ad552ea026 feat: implement experimental features system
- Add experiments.ts to manage experimental features
- Refactor experimental diff strategy into experiments system
- Add UI components for managing experimental features
- Add tests for experimental tools
- Update system prompts to handle experiments
2025-01-28 21:06:33 +07:00
MFPires
b3be00c050 feat: Add auto-approval for mode switching
Implements automatic approval for mode switching operations when enabled, following
existing auto-approval patterns in the codebase.

Implementation:
- Added `alwaysAllowModeSwitch` to state management
- Updated `isAutoApproved` function in ChatView to handle mode switch requests
- Added mode switch option to AutoApproveMenu with appropriate handler
- Integrated with existing auto-approval flow

Tests:
- Added three test cases in ChatView.auto-approve.test.tsx:
  1. Verifies mode switch auto-approval when enabled
  2. Verifies no auto-approval when mode switch setting is disabled
  3. Verifies no auto-approval when global auto-approval is disabled

The implementation follows existing patterns for other auto-approve features
(read, write, browser, etc.) to maintain consistency in the codebase.
2025-01-28 01:20:19 -03:00
Matt Rubens
57518e10b3 Add per-server MCP network timeout configuration 2025-01-26 22:49:21 -05:00
sam hoang
22907a0578 refactor: consolidate prompt functionality into support-prompt module
- Move code action prompts from core/prompts to shared/support-prompt
- Migrate enhance prompt functionality from modes to support-prompt
- Add UI for managing code action prompts in PromptsView
- Update types and interfaces for better prompt management
2025-01-24 00:46:19 +07:00
Matt Rubens
2b059c6d15 Fix button to open custom modes settings 2025-01-23 08:14:15 -08:00
sam hoang
d1a65f4de0 refactor: rename openAiCusModelInfo to openAiCustomModelInfo for better clarity
- Rename openAiCusModelInfo to openAiCustomModelInfo across all files for better readability
- Update related variable names and references to maintain consistency
- Affects OpenAI provider, ClineProvider, WebviewMessage, API interfaces, and UI components
2025-01-21 23:06:07 +07:00