* fix: remove explicit cache_control for Google models in OpenRouter (#4487)
- Remove all Google models from OPEN_ROUTER_PROMPT_CACHING_MODELS set
- This resolves 3+ minute lag when using google/gemini-2.5-pro-preview
- OpenRouter still provides automatic implicit ephemeral caching for these models
- Updated tests to handle intentional exclusion of Google models from explicit caching
Fixes#4487
* refactor: simplify OpenRouter caching test logic
- Replace hardcoded exclusion list with simple Google model filter
- Keep original validation logic but make it more maintainable
- Still ensures all our caching models are supported by OpenRouter
- Still verifies we exclude all Google models from explicit caching
* cleanup: remove unused excludedModels variable
- Variable was defined but never used
- Keeps the test logic clean and focused
* refactor: only exclude google/gemini-2.5-pro-preview from caching
- More surgical approach - only exclude the specific problematic model
- Keep other Google models in caching (they work fine)
- Add comment explaining the exclusion with issue reference
- Update test to only exclude the specific model
This targets just the model causing 3+ minute lag while preserving
caching benefits for other Google models that work properly.
* feat: Add OpenAI Compatible embedder for codebase indexing
- Implement OpenAiCompatibleEmbedder with batching and retry logic
- Add configuration support for base URL and API key
- Update UI with provider selection and input fields
- Add comprehensive test coverage
- Support for all OpenAI-compatible endpoints (LiteLLM, LMStudio, Ollama, etc.)
- Add internationalization for 17 languages
* fix: Update CodeIndexSettings tests for OpenAI Compatible provider
- Fix field count expectations (4 fields including Qdrant)
- Use specific test IDs for button selection
- Fix input handling with clear() before type()
- Use toHaveBeenLastCalledWith for better assertions
- Fix status text matching with regex pattern
* fix: resolve UI test failures and ESLint errors
- Remove unused waitFor import to fix ESLint error
- Fix test expectations to match actual component behavior for input fields
- Simplify provider selection test by removing complex mock interactions
- All CodeIndexSettings tests now pass (20/20)
* feat: add custom model infrastructure for OpenAI-compatible embedder
- Add manual model ID and embedding dimension configuration
- Enable custom model input via text field in settings UI
- Add modelDimension parameter to OpenAiCompatibleEmbedder
- Update configuration management to persist dimension setting
- Prioritize manual dimension over hardcoded model profiles
- Add comprehensive test coverage for new functionality
This allows users to specify any custom embedding model and its
dimension for OpenAI-compatible providers, removing dependency
on hardcoded model profiles.
* Add missing translations for OpenAI-compatible model dimension settings in all locales
* refactor: remove unused modelDimension parameter from OpenAiCompatibleEmbedder
- Remove modelDimension property and constructor parameter from OpenAiCompatibleEmbedder class
- Update ServiceFactory to not pass dimension to embedder constructor
- Update tests to match new constructor signature
- The dimension is still used for QdrantVectorStore configuration
* chore: bot suggestion
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* chore: bot suggestion
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* refactor: rename OpenAiCompatibleEmbedder to OpenAICompatibleEmbedder for consistency
* feat: add model dimension validation for OpenAI-compatible settings
* refactor: improve default model ID retrieval logic for embedding providers
* feat: add default model ID retrieval for openai-compatible provider
* refactor: update default model ID retrieval to use shared utility function
* fix: Remove unnecessary type assertion in OpenAICompatibleEmbedder
* feat: add model dimension input for openai-compatible provider
---------
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
* Improves model info detection for custom Bedrock ARNs
Adds heuristics to better estimate model capabilities when using unknown or custom model ARNs, including context window and max tokens. Allows user overrides for key model parameters via provider settings, improving flexibility and reliability for non-standard model integrations.
Fixes#3712
* Improves JSON syntax error handling in import flow
Provides more informative error messages for JSON syntax
errors by extracting the error position and formatting it
for clarity during import. Enhances user feedback when
invalid JSON is encountered.
* Fixed failing tests
* Delete pnpm-lock.yaml
* Added Rory's cache fix from PR #3099
PR #3009 has an important fix, alerted to me by @JBBrown
It was a one liner so I pulled it in.
This brings up a question can we merge PR's in the GH UI?
* Add Claude 4 and Opus 4 to modelID's
Kept previous parameters, did not see any changes in those.
* Fixed types being moved and me breaking the merge.
* Fix merge
---------
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
* feat: Add custom VPC endpoint support for AWS Bedrock
* fix: Fix TypeScript error in Bedrock.tsx
* fix: Update VPC endpoint UI to match Cline's implementation
* Fix AWS Bedrock VPC endpoint UI implementation
- Changed checkbox label to 'Use custom VPC endpoint' to match Cline
- Fixed conditional rendering to show text field when checkbox is checked
- Ensured placeholder text appears correctly
- Maintained proper styling for consistency
* Fix AWS Bedrock VPC endpoint UI implementation to match Cline exactly
- Added state variable to track checkbox selection
- Fixed conditional rendering to show/hide text field based on checkbox state
- Maintained proper styling and placeholder text
* Fix AWS Bedrock VPC endpoint UI implementation with proper event handling
- Fixed checkbox onChange handler to accept boolean directly instead of event object
- Added unit tests to verify the behavior
- Maintained proper styling and placeholder text
* Update Bedrock VPC endpoint tests with proper test IDs
* Improve AWS Bedrock VPC endpoint text field alignment
- Removed left margin from text field to align with checkbox
- Maintained proper styling and placeholder text
* Preserve AWS Bedrock VPC endpoint URL when toggling checkbox
- Added awsBedrockEndpointEnabled field to schema
- Modified Bedrock provider to check both endpoint URL and enabled flag
- Updated UI to preserve endpoint URL when checkbox is toggled
- Maintained proper alignment with checkbox
* Implement AWS Bedrock Custom VPC Endpoint functionality
* fix: update ApiConfiguration to ProviderSettings in Bedrock tests and regenerate types
* fix: update all instances of ApiConfiguration to ProviderSettings in Bedrock tests
* Fixed broken unit test
* Add changeset for Bedrock VPC endpoint support
* informative placeholder
* Bug fixes
* Fixed failing tests
* Add example URLs to Bedrock VPC endpoint section and update tests
* Fix truncated test assertion in Bedrock.test.tsx that was breaking the UI
* Refactor mock components in Bedrock.test.tsx for improved data-testid handling
* feat(i18n): add VPC endpoint translations for AWS Bedrock settings
* test: update Bedrock component tests for internationalized strings
---------
Co-authored-by: Kevin White <kcwhite@ancestry.com>
Co-authored-by: Daniel <57051444+daniel-lxs@users.noreply.github.com>
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
* feat(read_file): enhance file reading capabilities with multi-file support and improved parameter handling
fix(read_file): change return to continue on approval rejection in readFileTool
Enhance readFileTool with improved error handling and validation
- Introduced a FileEntry interface for better type management.
- Added validation for start_line and end_line to ensure proper ranges.
- Implemented RooIgnore validation before processing files.
- Enhanced error handling with dedicated functions for file and global errors.
- Streamlined file reading logic to handle binary files, definitions-only mode, and line thresholds more effectively.
- Improved user feedback for empty files and read limits.
chore: update Jest snapshot for system prompt tool usage
Refactor read-file tool to support XML input format and multiple line ranges
- Updated the `getReadFileDescription` function to reflect new XML structure for file reading requests.
- Modified `readFileTool` to parse XML input, allowing multiple line ranges for each file.
- Removed old parsing logic that handled line ranges as separate parameters.
- Implemented validation for line ranges and ensured proper error handling for file access.
- Adjusted approval messaging to accommodate new line range format.
- Enhanced error handling to provide consistent feedback for file read errors.
update from KJ7LNW comment
feat: add maxConcurrentFileReads setting to enhance read_file tool performance
feat: enhance readFileTool with XML parsing and file processing state tracking
feat: enhance readFileTool to include user feedback handling and processing state tracking
chore: clean up read_file tool documentation by removing extra newlines
feat: update read_file tool tests to handle user feedback and approval states
feat: add tests for feedback message formatting and XML special character handling in read_file tool
Implement code changes to enhance functionality and improve performance
feat: increase max concurrent file reads and adjust slider range in settings
feat: increase default max concurrent file reads from 5 to 15 across settings and context management
fix(read_file): enhance legacy path handling and remove duplicate parameters
feat(read_file): enhance file description handling and add support for multiple files in messages
done poc for new ux
idea 1
* fix the test
* fix: normalize locale file formatting to use tabs
- Applied prettier formatting to all locale JSON files
- Fixed mixed indentation (spaces/tabs) to use consistent tabs
- Aligns with project's prettier configuration
* fix(settings): improve checkbox handling and slider configuration in ConcurrentFileReadsExperiment
* fix(read_file): enhance description to include partial reads support
* fix(read_file): update description for partial reads and improve example clarity
* fix: suggestions
* fix: translations
* test: update system prompt snapshots for multi-file read tool
* fix: remove batch permission question from readFile tool translations
---------
Co-authored-by: Daniel Riccio <ricciodaniel98@gmail.com>
* Add missing telemetry types
* Give IconButton the pointer cursor when enabled
* Change context condensing to use a Lucide icon
* Mock Lucide icons globally
- Remove AuthService callbacks, add user-info event
- Store userInfo on AuthService and fetch it when sessions go active
- Simplify CloudService callbacks to just stateChanged
- Add cloudUserInfo to state and remove authenticatedUser message
* [Condense] Skip condense and show error if the context grows
* update tests
* changeset
* nit: error should be nonempty
* update translations
* add more errors
* add more test cases
* update translations
* pipe error back from truncate code
* add condense_context_error ClineMessage
* fixes
* translations