Commit graph

4485 commits

Author SHA1 Message Date
Chris Estreich
057ac3e428
Add dependsOn for watch:esbuild script (#4026) 2025-05-26 22:00:39 -07:00
Chris Estreich
b7d1c9ae4a
More elegant way to generate arrays of keys from a type with full type safety (#4025) 2025-05-26 21:27:10 -07:00
Chris Estreich
1384077495
Telemetry refactor (#4021)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-05-26 20:22:54 -07:00
KJ7LNW
1e5bf74136
fix: Correct path resolution for .vite-port file in ClineProvider (#4007)
The ClineProvider was looking for the .vite-port file in the wrong location.
Updated the path resolution to correctly point to the project root where
the Vite development server creates the file.

Fixes: #4006

Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-05-26 16:25:39 -04:00
Chris Estreich
e66136f1aa
Add a new @roo-code/types package and use it everywhere (#3912) 2025-05-26 12:06:45 -07:00
Matt Rubens
ce6cc6fa97
Adjust the read_file prompt based on whether partial reads are enabled (#3995) 2025-05-26 14:55:53 -04:00
github-actions[bot]
61a381af55
Changeset version bump (#3983)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-25 23:02:08 -04:00
github-actions[bot]
5bf46542cd
Update contributors list (#3961)
Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-05-25 22:57:37 -04:00
Matt Rubens
fd84d48400
v3.18.4 (#3984) 2025-05-25 22:56:44 -04:00
Matt Rubens
7509be8d41
Remove the hardcoded line breaks in the about (#3982) 2025-05-25 22:49:31 -04:00
Daniel
6a8fb599c1
Fix settings saving logic to ensure the saved settings are used (#3976)
* feat: Enhance configuration change handling and model dimension checks

* fix: Update embedder creation to use modelId from config

* test: Add unit tests for ServiceFactory embedder and vector store creation

* test: Add comprehensive restart detection tests for configuration changes

* feat: Implement model ID selection logic for provider changes in CodeIndexSettings

* fix: Initialize configuration on constructor to prevent false restart triggers

* fix: Enhance API key handling and restart logic in CodeIndexConfigManager

* fix: Improve handling of external settings changes and automatic indexing in webviewMessageHandler

* fix: Ensure handleExternalSettingsChange only restarts service when manager is initialized

* refactor: remove console logs

* fix: Load configuration during initialization to ensure correct state and restart requirements
2025-05-25 18:25:20 -04:00
Daniel
977fa26e01
Batch code segments when using ollama to report progress (#3968)
fix: batch code segments when using ollama
2025-05-25 17:11:01 -04:00
Daniel Trugman
78b7455a05
Add metadata to create message (#3832) 2025-05-25 16:14:40 -04:00
Ruakij
503c7585de
Fix: Wrongfully clearing input on autoApprove (#3956) 2025-05-25 09:59:58 -04:00
avtc
ad2ff932fa
Fix handling BOM when user Rejects apply_diff (#3960)
Related issue is #1483, related pull request is #1500 - but it looks like it missed the revert of proposed diff case
2025-05-25 09:14:54 -04:00
Peter Dave Hello
6ebc95d2a8
Update xaiModels and xaiDefaultModelId in src/shared/api.ts (#3957)
* Add non-beta versions of `grok-3` models to the `xaiModels` object
* Change the default `xaiDefaultModelId` from `grok-3-beta` to `grok-3`
2025-05-25 09:10:46 -04:00
ChuKhaLi
fe9137b14e
Fix: Correct spawnSync parameters for pnpm check in bootstrap.mjs (cl… (#3952) 2025-05-24 21:19:52 -07:00
github-actions[bot]
8da985849f
Update contributors list (#3838)
docs: update contributors list [skip ci]

Co-authored-by: mrubens <mrubens@users.noreply.github.com>
2025-05-24 20:02:34 -04:00
Matt Rubens
83020c74ec
Update CHANGELOG.md 2025-05-24 20:00:56 -04:00
github-actions[bot]
62d1807f19
Changeset version bump (#3894)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-24 19:56:59 -04:00
Matt Rubens
80250cdf47
v3.18.3 (#3946) 2025-05-24 19:50:25 -04:00
Chris Estreich
77a5b6c06d
Fix reasoning budget for Gemini 2.5 Flash on OpenRouter (#3945)
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-24 19:46:42 -04:00
Daniel
68b60a2749
Add unsaved settings warning to codebase indexing settings view (#3944) 2025-05-24 18:51:15 -04:00
Hannes Rudolph
a8922e0c96
Improve tool descriptions to guide proper file editing tool selection (#3943)
* Improve tool descriptions to guide proper file editing tool selection

### Problem
LLMs were frequently choosing `write_to_file` for file edits instead of more appropriate tools like `apply_diff`, `insert_content`, or `search_and_replace`. This was likely because the tool descriptions made it seem like files needed to be reconstructed rather than edited.

### Changes Made

**write_to_file tool description:**
- Clarified primary use cases: **creating new files** or **complete rewrites when intentionally required**
- Changed opening from "write full content" to "write content" to reduce emphasis on full reconstruction
- Updated parameter description to be more specific about when complete content is needed

**apply_diff tool description:**
- Enhanced description to emphasize "targeted modifications" and "precise, surgical edits"
- Clarified that multiple search/replace operations can be performed in a single call
- Removed misleading "only a single operation allowed" restriction
- Better positioned as the preferred tool for making several targeted changes efficiently

### Impact
These changes should guide LLMs toward:
- Using `write_to_file` primarily for new files or intentional complete rewrites
- Using `apply_diff` for targeted edits and modifications to existing files
- Better understanding of when each tool is most appropriate

The updated descriptions maintain necessary technical details while providing clearer guidance on tool selection without being overly prescriptive.

* Update src/core/prompts/tools/write-to-file.ts

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

* Update src/core/prompts/tools/write-to-file.ts

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

* Update src/core/prompts/tools/write-to-file.ts

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

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-24 18:35:27 -04:00
Daniel
20e7f118bc
Add handling for external settings changes (#3942) 2025-05-24 18:05:28 -04:00
Daniel
be9195c1ee
Fix: Use EMBEDDING_MODEL_PROFILES as default in the state (#3939)
fix: update codebaseIndexModels to use EMBEDDING_MODEL_PROFILES as default
2025-05-24 16:39:34 -04:00
Daniel
def222f501
Enhance error handling for collection checks on initialize (#3937) 2025-05-24 16:23:43 -04:00
Matt Rubens
b3962246d3
Fix codebase search results string (#3938) 2025-05-24 16:23:28 -04:00
Matt Rubens
2053d27d63
Default to full file reads (#3936) 2025-05-24 15:17:48 -04:00
Sam Hoang Van
e86c0a165d
fix(FileContextTracker): mark file as edited by Roo when added to context tracker (#3499) 2025-05-24 15:15:06 -04:00
Matt Rubens
6efa6746d6
Add a learn more link for indexing (#3935) 2025-05-24 15:02:37 -04:00
Matt Rubens
ca85162235
Handle partial messages in the codebase search tool (#3934) 2025-05-24 14:33:29 -04:00
Daniel
c357daf922
Fix Qdrant URL input default value (#3933) 2025-05-24 14:29:35 -04:00
Daniel
448dc2be37
Fix Qdrant initialization logic when vector size changes (#3925) 2025-05-24 13:12:13 -04:00
Matt Rubens
4abadd877b
Default to Sonnet 4 (#3928) 2025-05-24 13:06:25 -04:00
DEV×PAIN
a734aca02e
fix(mcp): fix error loading config when running MCP Server with npx and bunx (#3922) 2025-05-24 09:07:05 -07:00
Matt Rubens
b655c0d2e9
Make experimental settings more visually consistent (#3923) 2025-05-24 10:38:13 -04:00
Shariq Riaz
ff50a47b5b
feat: enable prompt caching for gemini-2.5-flash-preview-05-20 (#3907)
* feat: enable prompt caching for gemini-2.5-flash-preview-05-20

* feat: Add cache pricing for gemini-2.5-flash-preview-05-20 models
2025-05-24 07:38:45 -04:00
Noritaka Kobayashi
472943281f
refactor: simplify object assignment & use startsWith (#3891) 2025-05-23 23:48:55 -07:00
Chris Estreich
1366ba0115
Preserve model settings when selecting a specific OpenRouter provider (#3915) 2025-05-23 23:22:41 -07:00
Chris Estreich
2cfb96692d
Fix o1-pro on OpenRouter (#3914) 2025-05-23 23:11:41 -07:00
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
Hannes Rudolph
1dcb6d4a8e
Improve GitHub templates (#3905)
* Improve GitHub templates

- Make bug report outcome summary required for better issue quality
- Make logs/errors optional to reduce friction for simple bugs
- Fix CONTRIBUTING.md path in PR template (../../ instead of ../)

* Update .github/ISSUE_TEMPLATE/bug_report.yml

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

* Update .github/pull_request_template.md

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

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-05-23 19:02:28 -04:00
ronyblum
5ab78b37c0
Bedrock Prompt Caching Improvements (#3099)
Fix system prompt caching on first message
2025-05-23 17:51:47 -04:00
Chris Estreich
78bb7e0256
Convert bootstrap script to ESM (#3904) 2025-05-23 14:35:21 -07:00
Shariq Riaz
20c7453425
Remove claude-3.7-sonnet and claude-3.7-sonnet:thinking from vscodelm (#3895)
* Remove claude-3.7-sonnet and claude-3.7-sonnet:thinking from vscodelm provider in api.ts (not supported via API)

* Add static blacklist for unsupported VS Code Language Model IDs

---------

Co-authored-by: Ruakij <ruakij@ruekov.eu>
2025-05-23 17:28:42 -04:00
KJ7LNW
be19a49b20
fix: improve pnpm bootstrapping and add compile script (#3882)
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-05-23 14:20:27 -07:00
slytechnical
1791bb9053
Ability to refresh LiteLLM models list (take 2) (#3852)
* Litellm models can now be refreshed

* Fix no-case-declarations lint issue and put back missing autoCondenseContextPercent webviewMessageHandler case

* Add tests for litellm config changes

* replace hardcoded keys with constants
2025-05-23 16:19:40 -05:00
Chris Estreich
872902754a
Fix max tokens in the task header (#3893) 2025-05-23 02:32:21 -07:00
Chris Estreich
fa1e7b415c
Re-work support for reasoning models, including "hybrid" reasoning models (#3870) 2025-05-23 01:40:17 -07:00