Commit graph

186 commits

Author SHA1 Message Date
Sam Hoang Van
f06567d579
Feat/improve insert block content (#2510)
* refactor: enhance insertGroups and insertContentTool for better handling of insertion operations

* refactor: simplify insert_content tool

- Remove operations-based implementation in favor of single line insertion
- Update parameters from operations to line and content
- Simplify insertion logic and error handling
- Update tool description and documentation
- Remove XML parsing for operations
- Clean up code and improve error messages

* refactor: remove insert_content experiment and related tests

* Remove the append_to_file tool

* Improvements to chat row and instructions

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-21 16:49:27 -04:00
Sam Hoang Van
80b298492c
improve search and replace tool (#2764)
* Refactor search and replace tool

* feat(search-replace): enhance search/replace tool UI and messaging

Refactor search/replace tool message structure for better consistency
Add dedicated UI component for displaying search/replace operations
Add i18n support for search/replace operations in all supported languages
Improve partial tool handling in searchAndReplaceTool

* Remove search_and_replace experiment and related references
2025-04-21 15:25:03 -04:00
Sacha Sayan
159e4005e5
UI Glam Sesh: Makeover for TaskHeader, ChatView, HistoryPreview... (#2701)
* - UI Glam Session -> Makeover for TaskHeader, ChatView, HistoryPreview, WelcomeView
- In particular, display a "no tasks in workspace" message when no tasks are found.
- Clean up Inferface Settings (not needed now) on Settings View
- Copy updates throughout these areas.

* Apply suggestions from code review

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

* Missing translation string.

* Fix test

* Fix tests

* Improve translations / fix missing strings.

* Support xAI for evals (#2703)

* Make sure the slash commands only fire if they're the first character (#2702)

* Update contributors list (#2675)

docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>

* v3.12.3 (#2710)

* Changeset version bump (#2711)

* changeset version bump

* Updating CHANGELOG.md format

* Update CHANGELOG.md

---------

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

* Update translations

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: cte <cestreich@gmail.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: R00-B0T <110429663+R00-B0T@users.noreply.github.com>
Co-authored-by: R00-B0T <github-actions@github.com>
2025-04-17 12:54:55 -04:00
Aleksandr Kirillov
1cca4f47c7
feat: Add 'roo.acceptInput' command (#2598)
* feat: Add 'roo.acceptInput' command

* Update package.nls.json

* Update translations

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-15 23:01:45 -04:00
Chris Estreich
3b19d7a455
Await checkpoint saves (except the initial) (#2665) 2025-04-15 16:57:12 -07:00
Zhang Tony
d3c65ceac6
feature: Closable welcome message (#2541)
* draft: try to add a setting button

* Add showGreeting setting and related changes

* i18n: showGreeting

* fix chinese i18n 'dot'
2025-04-13 01:16:01 -04:00
Eric Wheeler
4ef62c6a13 feat: add ZDOTDIR handling for zsh shell integration
Creates a temporary ZDOTDIR to handle zsh shell integration properly while preserving user's zsh configuration. This ensures VSCode shell integration works correctly with zsh without modifying the user's existing setup.

- Add terminalZdotdir setting (disabled by default)
- Create temporary directory with proper security (sticky bit)
- Add automatic cleanup on terminal close
- Add translations for all supported languages

User confirmed fixes:

Fixes: #2205
Fixes: #2129

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-11 13:09:41 -07:00
Eric Wheeler
b4c67f133b feat: add terminal settings for Oh My Zsh and Powerlevel10k shell integration
Added two new terminal settings:
- terminalZshOhMy: Sets ITERM_SHELL_INTEGRATION_INSTALLED=Yes for Oh My Zsh
- terminalZshP10k: Sets POWERLEVEL9K_TERM_SHELL_INTEGRATION=true for Powerlevel10k

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-10 21:18:37 -07:00
Eric Wheeler
b020e46076 fix: clear ZSH EOL mark to prevent command output interpretation issues
Added a new configuration option 'terminalZshClearEolMark' (default: true) that
sets PROMPT_EOL_MARK='' in the terminal environment. This prevents issues with
command output interpretation when the output ends with special characters like '%'.

Added translations for all supported languages.

Fixes: #2194
Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-10 21:18:37 -07:00
Eric Wheeler
211e31b8f6 feat: add terminalPowershellCounter configuration option
Add a new configuration option that allows users to toggle the PowerShell counter workaround. This workaround adds a counter to PowerShell commands to ensure proper command execution and output capture.

The setting is disabled by default, allowing users to enable it only when needed.

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-10 21:18:37 -07:00
Eric Wheeler
4d1cfe8141 feat: add terminal.commandDelay setting
Add a new configurable setting to control command execution delays in terminals.
When set to a non-zero value, this adds a sleep delay after command execution
via PROMPT_COMMAND in bash/zsh and start-sleep in PowerShell.

The default value is 0, which disables the delay completely. This setting
replaces the previous hardcoded delay of 50ms that was added as a workaround
for VSCode bug #237208.

Fixes: #2017
Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-04-10 21:18:37 -07:00
Ross McFarland
58149a083e
Clean up global rateLimitSeconds & fully shift to provider version (#2408)
* Directly use provider rateLimitSeconds and remove uneeded default

* remove a bunch of unused rateLimitSeconds references

* rateLimitSettings field def in  GlobalSettingsRecord isn't needed for migration
2025-04-08 11:21:54 -04:00
Marco Quinten
fff8fdd3f3
feat(browserTool): Implement resize action (#2370)
* Implement resize action for browser action tool

* Update snapshots
2025-04-07 09:34:32 -04:00
Aleksandr Kirillov
88cac3c9d8
feat: add command to focus Roo Code input field (#2369)
* feat: add command to focus Roo Code input field

* fixup! feat: add command to focus Roo Code input field

* fixup! feat: add command to focus Roo Code input field
2025-04-07 07:54:49 -04:00
Matt Rubens
b0b4240c8b
Revert "feat @-mention window path style & file with space (#1924)" (#2162)
* Revert "feat @-mention window path style & file with space (#1924)"

This reverts commit c62e8f2ee2.

* Add changeset
2025-03-31 15:56:47 -05:00
Afshawn Lotfi
cbe7075f4f
In-Editor Browser Improvements (#1601)
* Browser Automation Improvements
* Added multi-tab remote Chrome support
* Added support for hover
* Properly caching remote browser host in global state
* Cleanup functions

* Updated for changes after merge

* Added www. exception for common tabs

* Update src/core/webview/ClineProvider.ts

* Revert README changes

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-29 00:46:01 -04:00
Chris Estreich
0fd399de78
Automatically generate roo-code.d.ts (including type generation via zod-to-ts) (#2024) 2025-03-27 09:38:56 -07:00
Sam Hoang Van
c62e8f2ee2
feat @-mention window path style & file with space (#1924)
* feat @-mention window path style & file with space

* Update src/core/mentions/index.ts

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-27 00:10:06 -04:00
Chris Estreich
a414c7d028
Wrangle our settings-related types and add support for settings import / export (#1997)
* Strongly type our settings use composition where possible

* Update src/core/contextProxy.ts

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

* Update src/core/contextProxy.ts

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

* Add comment, tweak function name

* Add changeset

* Clean up toolGroup types

* Comments tweak

* Remove unused type

* More type safety

* Improve import / export, add translations

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-26 16:29:01 -07:00
jwc11
55bbe88e39
feat: add pinning and sorting for API configurations dropdown (#2001)
* feat: add pinning functionality for API configurations

Added the ability to pin/unpin API configurations, enabling prioritized appearance in dropdown menus.
- modified state management to support storing pinned configurations persistently.
- Updated UI components to display and toggle pin states
- Adjusted backend handling for syncing pinned configuration states across sessions.

* refactor: add support for loading API configurations by ID

- Introduced a new method `loadConfigById` in `ConfigManager` to load API configurations using their unique ID.
- Refactored the dropdown and pin logic to work with ID
- Added tests to verify the new functionality for loading configurations by ID.

* fix: preserve existing API config ID on updates

- Ensure that the existing ID is retained when updating an API config.
- Prevents unintentional ID changes during configuration updates.

* Fix theme issues

---------

Co-authored-by: james <james@systemslogiq.com>
Co-authored-by: cte <cestreich@gmail.com>
2025-03-26 11:29:24 -07:00
Diarmid Mackenzie
f773bc3024
Remove "Enable Custom Mode Creation Through Prompts" toggle (#1980)
* Remove custom mode creation option

* Remove redundant code branch
2025-03-25 15:31:29 -04:00
Diarmid Mackenzie
ec423a715c
Fetch instructions (#1869)
* Code for new fetch_instructions tool

* Call parameter for fetch_instructions task, not text

* Additional places that fetch_instructions needs to be added.

* Pass necessary objects into create MCP server code

* Update snapshots to reflect changes to prompts

* Fixes from testing

* Move guidance on creating project modes to fetchable instructions

* i18n for new prompt

Translations suggested by Roo.

* Missing translation

* Another missing i18n update

* Missing Catalan translation

* Re-use content parameter on ClineSayTool

* Remove space from zh-TW translation

This is consistent with other translations

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

* PR review - suggested changes to prompts

* Slightly more conservative in terms of text pruning from default prompt

* Move additional detail about mode creation into fetch_instructions instructions

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-03-25 13:08:17 -04:00
Matt Rubens
1810efe496
Additional checkbox for auto-approving reads and writes outside of the workspace (#1965) 2025-03-25 01:35:33 -04:00
Sam Hoang Van
70a476e722
feat read file range (#1440)
* feat read file range

feat: add file truncation with code structure preview

Add configurable line limit for large file handling with source code structure preview. This improves performance and memory usage while maintaining code readability.

Key changes:

Add maxReadFileLine setting (default: 4500) with UI controls
Create efficient line counter utility using streams
Add parseSourceCodeDefinitionsForFile for single file parsing
Show truncation notice with code structure for large files
Add comprehensive tests for new functionality
Move file extensions to shared constant

add line number

pr comment

Return definition ranges from tree-sitter

make treesitter always add line

add line number to rg search

enhance tree siter output & fix test

update snapshot

fix test

* Add translations, tweak range

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-20 00:55:47 -04:00
Matt Rubens
f181da1454
Move context-mention file/folder search to the server (#1824) 2025-03-20 00:45:27 -04:00
Chris Estreich
a15691dc1d
Add a way to stop TTS (#1787) 2025-03-18 17:05:05 -07:00
Chris Estreich
878b3820d2
Settings tweaks: add terminal & language sections, fix whell scroll in editor tab (#1763) 2025-03-18 00:11:57 -07: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
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
cte
4b23644683 Add Cline events and roofactor subtasks slightly 2025-03-12 22:52:37 -07:00
Matt Rubens
00bf91470b Add i18n 2025-03-12 11:23:06 -04:00
Matt Rubens
baa346dc46 Remove preferredLanguage and just rely on VSCode language 2025-03-12 11:23:04 -04:00
cte
4b6def5f31 ContextProxy fix - constructor should not be async 2025-03-11 14:24:21 -07:00
Chris Estreich
b73bc39c8d
Merge pull request #1365 from KJ7LNW/roo-fix-terminal-undefined-exit-code
refactor terminal architecture to address critical issues with the current design
2025-03-11 13:59:04 -07:00
axb
621fc0e867 Revert "Merge pull request #1518 from RooVetGit/revert_tool_progress_for_now"
This reverts commit dba9116d26, reversing
changes made to 85dd1a1977.
2025-03-11 13:07:55 +08: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
Chris Estreich
90a607f111
Merge branch 'main' into cte/roo-code-api 2025-03-10 20:29:36 -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
cte
f8a592aac9 Rename ClineAPI to RooCodeAPI and improve types 2025-03-10 11:16:38 -07: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
Matt Rubens
183e47b1bd Revert "support tool progress status"
This reverts commit 80139d88d7.
2025-03-09 18:35:56 -04:00
Matt Rubens
78be1b8977 Revert "Clean up the tool progress UX"
This reverts commit 1c8071bbb3.
2025-03-09 18:35:48 -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
Matt Rubens
1c8071bbb3 Clean up the tool progress UX 2025-03-08 22:55:04 -05:00
Matt Rubens
e2bdee3366
Merge pull request #1494 from qdaxb/support_tool_progress_status
support tool progress status
2025-03-08 21:17:35 -05:00
axb
80139d88d7 support tool progress status 2025-03-09 00:21:09 +08:00