Commit graph

960 commits

Author SHA1 Message Date
KJ7LNW
305185cd88
feat: clickable code references in model responses navigate to source lines (#3087)
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-05-05 14:33:18 -04:00
Aljosa Asanovic
01fec4c1db
fix: migrate and persist modeApiConfigs for per-mode API profiles (#3071) 2025-05-05 11:11:57 -07:00
Chris Estreich
bf38b830b8
Tidy up the Cline class a bit (#3100)
* Tidy up the Cline class a bit

* Clean up more comments
2025-05-05 09:11:47 -07:00
Matt Rubens
756c0a0014
Fix issues with subtasks attempting completion along with commands (#3156) 2025-05-03 23:57:19 -07:00
Matt Rubens
8641b215c6
Add isSubtask to telemetry (#3141) 2025-05-02 23:16:21 -04:00
Chris Estreich
dd3cd7fd7d
More robust process killing (#3136) 2025-05-02 18:15:22 -07:00
Chris Estreich
a2dcc1869d
Improve performance of CustomModesManager (#3123) 2025-05-02 14:52:08 -07:00
Chris Estreich
19ef52bd85
More command execution improvements (#3124) 2025-05-02 14:51:53 -07:00
Chris Estreich
2e66081921
Terminal performance improvements (#3119) 2025-05-02 02:38:40 -07:00
Matt Rubens
a356d70669
Customizable headers for the OpenAI-compatible provider (#3056)
* Customizable headers for the OpenAI-compatible provider

* PR feedback

* Fix migration

* Update webview-ui/src/components/settings/ApiOptions.tsx

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

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-05-01 23:30:57 -04:00
Matt Rubens
6e86f04a74
Make retries respect the global auto approve checkbox (#3067) 2025-04-30 11:31:10 -04:00
Chris Estreich
2fd7d13624
v3.15.0 (#3061) 2025-04-30 01:51:59 -07:00
Chris Estreich
1d7569b14c
Improve command execution component (#3057) 2025-04-29 23:56:59 -07:00
Chris Estreich
7863303aac
Fall back to execa if VSCode terminal integration fails (#3049) 2025-04-29 21:10:41 -07:00
John Richmond
34d7dcf8c3
Support mentioning filenames with spaces (#3044)
* Support mentioning filenames with spaces

Allows spaces to be escaped in mentions with \. Does not attempt more
comprehensive escape handling. (IMO a more structured representation or
moving to something like @[something complex] is probably a better long
term approach, but the scope of that seems problematic.

Adapted from 8955d45708.

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

* Older array creation to make check-types happier

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-29 22:27:16 -04:00
Duong M. CUONG
97f0dd4cfa
feat: persist workspacePath to each task for improved task management (#2999) 2025-04-29 11:57:59 -04:00
Chris Estreich
8df1ee0252
Set busy flag on ExecaTerminal so it reports in env details when backgrounded (#3031)
* Set busy flag on ExecaTerminal so it reports in env details when backgrounded

* Revert this
2025-04-29 08:55:52 -07:00
Chris Estreich
d07e60575b
Simplify Roo Code's quick actions (#3024)
* Quick fix actions

* Remove unused keys

* Simplify more stuff

* Bring back "Explain Code"

* Bring "Improve Code" back

* Add back "Improve"

* This is too flakey for now
2025-04-29 08:07:24 -07:00
Chris Estreich
65958d81b9
Overhaul CodeBlock rendering (#3019) 2025-04-28 17:10:57 -07:00
Julio Navarro
04fa72eebe
Feat: Add a new button to import settings on the welcome screen (#2811) 2025-04-28 16:07:35 -07:00
Ash R
a3d8c0e3f6
feat: vertex/gemini prompt caching (#2996) 2025-04-28 15:11:35 -07:00
Chris Estreich
2e1d949e65
Add support for multiple command execution strategies (#2820) 2025-04-28 08:55:07 -07:00
Chris Estreich
1924e10e72
Fix all linter errors (and fix the lint scripts too) (#2958) 2025-04-26 09:45:26 -07:00
Julio Navarro
418791a743
Fix: custom modes export import (#2810)
* Enhance export method in ContextProxy to filter out project custom modes, ensuring only global settings are included in the export.

* Fix issue of customModes not being imported when importing settings.

The problem was that the Custom modes are managed by the CustomModesManager, not by the context proxy.

* * Fix tests

* Update webviewMessageHandler to provide customModeManager to importSettings
2025-04-26 08:46:05 -04:00
Sacha Sayan
83133c6e6d
UI top down homescreen (#2951)
* isotrUpdate welcome screen UI components and fix unused variable

* Save collapsibility.

* Add persistence, locales.

* Top layout, expanded tips.

* Minimal 'tasks' language.

* Adjust announcement positioning/dimensions.

* Fix tests, defaults.

* Fix translations.

* Compromise-compromise.

* Final tweaks.

* More tweaks.

* More tweaks.

* Issues fix.

* Update translations, remove debug.

* Fix transparency issue.

---------

Co-authored-by: hannesrudolph <hrudolph@gmail.com>
2025-04-25 22:39:11 -04:00
Chris Estreich
cb29e9d56f
Remove ModelInfo objects from settings (#2939) 2025-04-25 15:23:25 -07:00
Chris Estreich
06db547308
Use a WASM-based tiktoken implementation (#2859)
* Use a WASM-based tiktoken implementation

* Clean up imports
2025-04-25 10:32:35 -07:00
Chris Estreich
b75379bed3
Improve OpenRouter model fetching (#2922) 2025-04-24 12:29:36 -07:00
Matt Rubens
2e9b1f1824
v3.14.0 (#2902) 2025-04-24 00:44:24 -04:00
Yikai Liao
b5ffaf1ba2
Fix Terminal Carriage Return Handling for Correct Progress Bar Display (#2562)
* fix(terminal): Ensure correct handling of carriage returns for progress bars

This commit refines the tests for `TerminalProcess` to ensure the correct interpretation of terminal output containing carriage returns (`\\r`), which is essential for properly handling dynamic elements like progress bars (e.g., `tqdm`).

- Validated the `processCarriageReturns` method's behavior in simulating terminal line overwrites caused by `\\r`.
- Corrected the expectation in the `handles carriage returns in mixed content` test to accurately reflect the method's output (final line content + preserved escape sequences), confirming the logic works as intended for progress-bar-like updates.
- Fixed a minor Jest `toBe` syntax error in a related test case.
- Suppressed an expected `console.warn` in the non-shell-integration test for cleaner logs.

By ensuring `processCarriageReturns` is correctly tested, we increase confidence that the component responsible for pre-processing terminal output handles progress bars appropriately before the output is potentially used elsewhere (e.g., sent to an LLM).

* fix(test): Make TerminalProcess integration test reliable

This commit fixes the flaky test case `integrates with getUnretrievedOutput to handle progress bars` in `TerminalProcess.test.ts`.

The test previously failed intermittently due to:
1.  Relying on a fixed `setTimeout` duration to wait for asynchronous stream processing, which created a race condition.
2.  Incorrectly assuming that `await terminalProcess.run(...)` would return the final output directly via its resolved value.

The fix addresses these issues by:
-   Removing the unreliable intermediate check based on `setTimeout`.
-   Modifying the test to correctly obtain the final output by listening for the `completed` event emitted by `TerminalProcess`, which is the intended way to receive the result.

This ensures the test accurately reflects the behavior of `TerminalProcess` and is no longer prone to timing-related failures.

* Add changeset for terminal carriage return fix

* Implement terminal compress progress bar feature

This commit introduces a new feature to compress terminal output by processing carriage returns. The `processCarriageReturns` function has been integrated into the `Terminal` class to handle progress bar updates effectively, ensuring only the final state is displayed.

Additionally, the `terminalCompressProgressBar` setting has been added to the global settings schema, allowing users to enable or disable this feature.

Tests have been updated to validate the new functionality and ensure correct behavior in various scenarios.

A Benchmark is also added to test the performance.

Not that there is still no i18n support for this.

* Add i18n support for compressProgressBar setting in multiple languages

* Optimize processCarriageReturns function for performance and multi-byte character handling

This commit enhances the `processCarriageReturns` function by implementing in-place string operations to improve performance, especially with large outputs. Key features include:
- Line-by-line processing to maximize chunk handling.
- Use of string indexes and substring operations instead of arrays.
- Single-pass traversal of input for efficiency.
- Special handling for multi-byte characters to prevent corruption during overwrites.

Additionally, tests have been updated to validate the new functionality, ensuring correct behavior with various character sets, including emojis and non-ASCII text.

Highly Density CR case is added to Benchmark

* slight performance improvement by caching several variable

* Optimize multi-byte character handling in processCarriageReturns

Refactor the logic within the `processCarriageReturns` function to simplify the detection of partially overwritten multi-byte characters (e.g., emojis).

Removed redundant checks and clarified the conditions for identifying potential character corruption during carriage return processing. This improves code readability and maintainability while preserving the original functionality of replacing potentially corrupted characters with a space.

Also enforced consistent use of semicolons for improved code style.

* docs: standardize carriage return (\r) and line feed (\n) terminology
Improve code clarity by consistently adding escape sequence notation to all
references of carriage returns and line feeds throughout documentation and tests.
This makes the code more readable and avoids ambiguity when discussing these special characters.

* feat: Improve terminal output processing clarity and settings UI

- Add detailed comments to `processCarriageReturns` explaining line feed handling.
- Relocate `terminalCompressProgressBar` setting below `terminalOutputLineLimit` for better context in UI.

* Fix: Compress Progress Bar Setting Checkbox

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-24 00:22:47 -04:00
axb
3b65023d0b
feat(diff): improve progress indicator for apply_diff tool (#2758)
Add animated dots to progress indicator based on content length
Optimize when progress updates are shown (every 10 characters)
Move searchBlockCount calculation inside conditional blocks
Skip unnecessary ask operations when toolProgressStatus is empty
2025-04-24 00:12:07 -04:00
Hannes Rudolph
c228e638b9
Update insert_content tool description for clarity and detail (#2892) 2025-04-23 17:43:36 -04:00
Hannes Rudolph
41db2cad43
Update search_and_replace tool description for clarity and detail (#2891) 2025-04-23 17:42:59 -04:00
Chris Estreich
2c40224f6f
Fix task size cache TTL (#2887) 2025-04-23 12:20:13 -07:00
Chris Estreich
72962b3c76
Split api and chat message persistence into a separate module (#2866) 2025-04-23 12:09:24 -07:00
Chris Estreich
230e953e5d
Throttle calls to calculate task folder size (#2885) 2025-04-23 11:42:22 -07:00
Chris Estreich
a08461a655
Gemini prompt caching (#2827) 2025-04-23 11:35:50 -07:00
Daniel
970ccd7879
feat: add other useful variables to the custom system prompt (#2879) 2025-04-23 13:21:32 -04:00
Daniel
0f64849542
feat: allow variable interpolation into the custom system prompt (#2863)
* feat: allow variable interpolation into the custom system prompt

* fix: allow the test to pass on windows by using the path module
2025-04-23 01:09:14 -04:00
System233
c6f91a3b2f
Fix error message not showing after canceling API request (#2845) 2025-04-22 15:40:33 -04:00
Dicha Zelianivan Arkana
1a376c262e
[DRAFT] feat(menu): use material icons for files and folders (#2739)
feat(menu): use material icons for files and folders
2025-04-22 15:39:45 -04:00
System233
0d561f8a27
Fix redundant 'TASK RESUMPTION' prompts (#2842) 2025-04-22 10:12:29 -04:00
System233
8ac911244c
Fix user feedback not being added to conversation history in API error state (#2844)
Fix user feedback not being added to conversation history in the API error state
2025-04-22 10:10:34 -04:00
Matt Rubens
3e2d20f37c
Search and replace fixes (#2830)
* Allow replacing with an empty string

* Visual cleanup
2025-04-21 22:57:58 -04:00
Matt Rubens
8b5d48013e
Fix MCP hub lookup during view transition (#2829) 2025-04-21 22:39:39 -04:00
Matt Rubens
ff5430a95c
Try adding better errors for write_to_file truncated output (#2821) 2025-04-21 21:18:25 -04:00
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
Chris Estreich
61e23cccb6
Record tool use errors encountered during eval runs (#2816) 2025-04-21 11:04:35 -07:00
Matt Rubens
a244a9dc21
Fix a bad search/replace when moving tools into their own files (#2815) 2025-04-21 13:54:02 -04:00