Commit graph

127 commits

Author SHA1 Message Date
Daniel
61e122dc34
Codebase indexing (Clean history) (#3137)
* feat: apply changes from local main

* fix: add missing types

* feat: deduplicate code blocks coming out of parser

* feat: implement a cache manager to improve cache handling

* refactor: move code index service initialization to extension and remove await from indexing process

* fix: return undefined instead of throwing if no workspace is detected

* feat: allow auto approve if it is active for read tools

* refactor: improve UI of the results and allow opening the ranges directly in the editor

* refactor: use dependency injection to improve performance

* feat: implement result filtering by directory path

* refactor: centralize path normalization logic

* refactor: remove unnecessary barrel file

* refactor: prevent restarting the service if no settings change

* fix: the indexing process should never be awaited

* refactor: cleanup unused method

* refactor: remove batch limits for ollama

* refactor(parser): simplify method signatures and improve chunking logic

- Remove redundant min/max chars parameters
- Add better handling for oversized lines
- Improve chunking logic with segment handling
- Clean up method signatures and parameter ordering

* fix(settings): make select inputs full width in CodeIndexSettings

* refactor: increase max list file limit

* feat(ui): improve codebase search result display formatting

* test: add tests for cache and config managers

* test: create unit tests for parser and scanner

* feat(parser): improve segment hash uniqueness

- Added startCharIndex to segment hash calculation in _chunkTextByLines
- Track character position when splitting oversized lines
- Ensures unique identification of segments from same line

* feat(file-watcher): add error logging and optional ignoreController injection

* fix: allow getting the state if the service is disabled

* fix: set the embedding models when cline provider is initialized

* feat: use zod to validate form

* feat(file-watcher): enhance file watcher for batched deletions and improved vector store interactions

Improve file watcher to handle file deletions in batches and optimize vector store operations.

* feat(CodeIndexSettings): move OpenAI key input to a conditional rendering block

* feat(CodeIndexSettings): update button visibility based on indexing status

* feat(file-watcher): refactor vscode mock and enhance file watcher tests

* fix(CodeIndexManager): do not await startIndexing on configuration changes

* feat(types): add codeIndexOpenAiKey and codeIndexQdrantApiKey to ProviderSettings and IpcMessage

* feat(FileWatcher): enhance file processing with batch operations and new status handling

* fix(webviewMessageHandler): handle errors during CodeIndexManager initialization

* refactor(CodeIndexManager): streamline service creation by consolidating into a single method

* feat(CodeIndex): implement minimum search score configuration and update search methods

* refactor(CodeIndexSettings): replace ApiConfiguration with ProviderSettings and update related methods

* refactor: move contants to centralized file

* refactor(constants): rename CODEBASE_INDEX_SEARCH_MIN_SCORE to SEARCH_MIN_SCORE

* feat(QdrantVectorStore): enhance search functionality with new query structure and indexing

* feat(FileWatcher): implement batch processing and retry logic for upserting points

* fix(CodeIndexSettings): rename setProviderSettingsField to setApiConfigurationField and move model label

* fix(ChatRow): remove limit from search query messages

* refactor(CodebaseSearchResult): remove unused props from component

* feat: implement batch processing for file events in FileWatcher

- Introduced a new mechanism to accumulate file events (create, change, delete) and process them in batches.
- Added debounce functionality to optimize processing frequency.
- Emitted events for batch processing start, progress updates, and completion with detailed summaries.
- Refactored existing processing logic to handle batch deletions and upserts efficiently.
- Enhanced error handling and logging for better traceability during batch operations.

* feat(CodeIndex): implement batch processing and update progress reporting

* fix: define a default url for qdrant

* feat(CodeIndexManager): add initialization check and update startIndexing logic

* feat(CodeIndexSettings): validate Qdrant URL and update settings commitment logic

* feat: refactor progress calculation and update progress bar rendering

* refactor: remove webview provider and related methods

* fix: simplify indexing status update by directly using update values

* feat: integrate .gitignore support into file processing and scanning logic

* fix: update clearCacheFile method to write an empty object instead of deleting the cache file

* Revert this

* Run prettier

* fix: add new dependencies for qdrant client and directory scanner

* feat: add codebase search functionality to localization files

* feat: add localization strings for codebase indexing settings

* feat: integrate CodeIndexSettings into ExperimentalSettings and update settings localization

* refactor: remove console logs from various components for cleaner output

* feat: enhance capabilities section and codebase search tool description

* feat: add code indexing localization for multiple languages

* fix: correct indentation for CodeIndexSettings component in ExperimentalSettings

* refactor: update unit tests to properly test current functionality

* feat: add mock implementation for p-limit and update Jest config

* feat: track file creation, change, and deletion events in accumulatedEvents

* refactor: simplify file watcher tests by removing waitForFileProcessingToFinish and using direct event accumulation

* refactor: mock ContextProxy's getValue method to return current config name in ClineProvider tests

* refactor: mock missing properties required by codebase indexing manager

---------

Co-authored-by: cte <cestreich@gmail.com>
2025-05-23 19:07:19 -06:00
Matt Rubens
edcaa15438
Fix README gif in all locales (#3837) 2025-05-22 12:08:03 -04:00
github-actions[bot]
3eb3169ad6
Update contributors list (#3781)
Co-authored-by: cte <cte@users.noreply.github.com>
2025-05-22 00:08:02 -04:00
Matt Rubens
9c740e8d66
v3.18 (#3800)
* v3.18

* Update webview-ui/src/i18n/locales/ko/chat.json

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-21 17:30:55 -04:00
github-actions[bot]
ea93cea9ac
Update contributors list (#3620)
Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-05-20 23:21:29 -04:00
Matt Rubens
7368fa9288
Moved repo to new org (#3756) 2025-05-20 16:42:18 -04:00
hatsu
b69825b95d
fix: correct Changelog link in localized README files (#3629)
The Changelog link in `locales/ja/README.md` and other localized
READMEswas pointing to a broken relative path, resulting in 404s.This
commit updates the link to use a correct relative path
(`../../CHANGELOG.md`)so that it works across all locales.
2025-05-15 06:55:29 -04:00
Matt Rubens
669b239c22
v3.17.0 (#3622) 2025-05-14 17:33:55 -04:00
github-actions[bot]
1c9669f842
Update contributors list (#3612)
Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-05-14 16:46:01 -04:00
github-actions[bot]
27cf18ca7a
Update contributors list (#3299)
Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-05-13 22:01:04 -04:00
github-actions[bot]
56bf88915d
Update contributors list (#3296)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-05-08 00:16:38 -04:00
github-actions[bot]
12552d21b8
Update contributors list (#3248)
Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-05-07 23:12:48 -04:00
github-actions[bot]
2becd52c4b
Update contributors list (#3131)
Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-05-06 14:11:02 -04:00
Matt Rubens
3ce7b3a432
Add Dutch localization files (#3231)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Thomas Brugman <thomas.brugman.teb3@gmail.com>
2025-05-06 14:09:05 -04:00
Chris Estreich
2e2c0a8f02
chore: prepare for v3.16.0 release (#3214) 2025-05-06 08:34:29 -07:00
github-actions[bot]
a1993a90cc
Update contributors list (#3058)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-05-02 10:55:49 -04:00
Chris Estreich
2fd7d13624
v3.15.0 (#3061) 2025-04-30 01:51:59 -07:00
github-actions[bot]
33a1f358cb
Update contributors list (#2972)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-29 23:35:47 -04:00
Matt Rubens
7020d1db2c
Fix ru README contributor section (#2995) 2025-04-27 22:49:16 -04:00
github-actions[bot]
d6860e1114
Update contributors list (#2946)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-25 23:53:45 -04:00
github-actions[bot]
23aa3b636b
Update contributors list (#2903)
docs: update contributors list [skip ci]

Co-authored-by: cte <cte@users.noreply.github.com>
2025-04-24 19:26:00 -04:00
asychin
7f99c0691e
feat/add-russian-lang (#2909)
* rus

* sad

* fix lang

* Add ru to translate mode instructions

* Add ru to evals types

* Add link to READMEs

* Bring back smart quotes

* Add prompt caching translations

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-24 16:03:30 -04:00
Matt Rubens
2e9b1f1824
v3.14.0 (#2902) 2025-04-24 00:44:24 -04:00
github-actions[bot]
37a8a442ac
Update contributors list (#2871)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-24 00:31:27 -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
github-actions[bot]
e403a96e66
Update contributors list (#2867)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-23 03:14:08 -04:00
github-actions[bot]
b6ea9d1465
Update contributors list (#2803)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-21 21:22:54 -04:00
github-actions[bot]
8c18727f9a
Update contributors list (#2779)
docs: update contributors list [skip ci]

Co-authored-by: cte <cte@users.noreply.github.com>
2025-04-18 21:13:43 -07:00
Chris Estreich
e74b69dfbc
v3.13 announcement (#2778)
* v3.13 announcement

* Update README.md

* Update lastShownAnnouncementId

* Tweak copy
2025-04-18 21:01:21 -07:00
github-actions[bot]
2a5d472f0d
Update contributors list (#2770)
docs: update contributors list [skip ci]

Co-authored-by: cte <cte@users.noreply.github.com>
2025-04-18 15:14:38 -07:00
github-actions[bot]
b3065d2ab3
Update contributors list (#2715)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-18 03:09:14 -04:00
github-actions[bot]
d3ba74c568
Update contributors list (#2675)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-17 10:26:50 -04:00
Matt Rubens
e2d649dc50
v3.12.0 (#2674) 2025-04-16 01:16:06 -04:00
github-actions[bot]
a3b2ebc026
Update contributors list (#2595)
docs: update contributors list [skip ci]

Co-authored-by: cte <cte@users.noreply.github.com>
2025-04-15 14:41:12 -04:00
github-actions[bot]
180f904528
Update contributors list (#2583)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-13 23:10:53 -04:00
github-actions[bot]
1c03234d64
Update contributors list (#2519)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-13 13:52:38 -04:00
github-actions[bot]
1f6da88d24
Update contributors list (#2516)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-12 00:34:38 -04:00
github-actions[bot]
aaf0567e8d
Update contributors list (#2501)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-11 17:35:40 -04:00
github-actions[bot]
b8bf634fd2
Update contributors list (#2466)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-10 23:53:03 -04:00
github-actions[bot]
8da3538744
Update contributors list (#2434)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-10 01:05:18 -04:00
github-actions[bot]
f6467ca371
Update contributors list (#2411)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-09 09:06:42 -04:00
github-actions[bot]
a4530eea5b
Update contributors list (#2402)
docs: update contributors list [skip ci]

Co-authored-by: cte <cte@users.noreply.github.com>
2025-04-08 11:40:53 -04:00
github-actions[bot]
fbb7887f8d
Update contributors list (#2338)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-07 17:38:38 -04:00
github-actions[bot]
7261efbdec
Update contributors list (#2317)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-05 18:22:40 -04:00
github-actions[bot]
39e4f498e5
Update contributors list (#2315)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-05 00:25:43 -04:00
github-actions[bot]
98b04eb8d1
Update contributors list (#2272)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-04 02:14:07 -04:00
Matt Rubens
d2f9970654
Roo Vet -> Roo Code (#2269) 2025-04-03 15:57:20 -04:00
github-actions[bot]
e7a1db83c0
Update contributors list (#2252)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-03 13:08:39 -04:00
Smartsheet-JB-Brown
919bb121d0
Jbbrown/bedrock caching (#2071)
* Bedrock prompt caching

* remove whitespace only change to src/api/providers/base-provider.ts

* remove integration test that calls bedrock

* PR prep cleanup

* test file and redundant code cleanup

* updated multi-cache-point

* optimized cache strategy

* cache logic updated. commit before trying to simplify newConversationPlacements

* simplified initial cachePoint logic

* fix the missing caching params for claude 3.7 on bedrock

* undo unintentional changes to README.md files

* fix merge bug that hid use prompt cache checkbox

* prep for PR

* remove unintended changes

* revert .gitignore change

* undo unintended changes

* Issue 1998 - Unable to use ARN. https://github.com/RooVetGit/Roo-Code/issues/1998 - Simplify region extraction from Arns. Change example of ARN use from the foundational model ARN to an inference profile ARN which is what is needed.

* small updates to error message

* more flexible support for ARNs and hardening of ARN handling

* update comment on regex use for platform indipendent cosideration

* small code comment update

* remove duplicative logic to add a region to the arn when cross-region is selected

* Update README files from main branch

* improve error handling when on-demand throughput is not avialable for a foundational model

* fix prompt router bug

* minor tweaks for simplicity

* error messgae formatting

* set new version of bedrock runtime package

* fixes: 2229 - complete prompt doesn't work and appears like a no-op

* remove commented out logger.debug blocks per PR review request

* localize new prompt cache UI inputs

* single source of truth for AWS Region information

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-04-03 13:05:29 -04:00
github-actions[bot]
71bdd72ca8
Update contributors list (#2203)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-04-02 23:27:44 -04:00