Implements a solution for the Vite port collision issue that allows easier development of Roo across multiple instances of VSCode in different Roo repository directories.
This may also fix crashes and strange behavior between multiple running instances that would otherwise create port conflicts. This is solved using the following automated process:
- When Vite automatically selects an alternative port, a custom plugin automatically writes the port to a '.vite-port' file in the repository root
- ClineProvider automatically reads the port from this file, falling back gracefully to port 5173 if the file doesn't exist
- No user intervention is necessary as the entire process is handled automatically
- Added detailed logging for debugging
- Added .vite-port to .gitignore
The extension now connects to the correct Vite development server port automatically, even when the default port (5173) is already in use.
Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
* feat: enhance rule file loading with .roo/rules directory support
- Introduced functions to safely read files and check for directory existence.
- Added capability to read all text files from a specified directory in alphabetical order.
- Updated `loadRuleFiles` to prioritize loading rules from a `.roo/rules/` directory, falling back to existing rule files if necessary.
- Enhanced `addCustomInstructions` to support loading mode-specific rules from a `.roo/rules-{mode}/` directory, improving flexibility in rule management.
This change improves the organization and retrieval of rule files, allowing for better modularity and maintainability.
* Updated strings and translations
* Add tests
* Revert changes to system prompt translations
* Fix path resolution
* Make instruction structure clearer
---------
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
* feat: Add support for .roorules configuration files
- Add .roorules to the list of supported rule files
- Improve mode-specific rule file handling to prioritize .roorules over .clinerules
- Update file loading logic to track which rule file was successfully loaded
- Add test cases for .roorules functionality
This change maintains backward compatibility with existing .clinerules while
introducing support for the new .roorules format as the preferred configuration
method.
* refactor: simplify rule file loading by removing unused rules
- Removed .cursorrules and .windsurfrules from the list of rule files in loadRuleFiles function.
* refactor: update loadRuleFiles to return single rule file content
- Modified loadRuleFiles function to return content from the first available rule file instead of combining multiple rule files.
- Updated tests to reflect the new behavior of loading only the .roorules file content when available, ensuring clarity in rule file handling.
* fix: update prompts for deprecated rule file references
- Updated prompts in the English locale to reflect the deprecation of .clinerules in favor of .roorules.
- Added notes in the prompts indicating that .clinerules will stop working soon, ensuring users are aware of the upcoming changes.
* Translations
* Update links
* Revert README changes
* Add missing spans around links
---------
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
- Replace Select with Command+Popover components in ApiConfigManager
- Add search functionality to filter configuration profiles
- Add clear search button and selected item indicator
- Add internationalization support for all languages
- Match UX pattern from ModelPicker component for consistency
* 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>
* Enable model switching on API failure
Bug: Cannot change model selection after API error due to UI state #1657
UI Bug: OpenRouter ran out of credits prevents user from switching models #1206
* Remove irrelevant code
make DropdownMenu scrollable with 80vh height limit
The DropdownMenu component now automatically becomes scrollable when its content
exceeds 80% of the viewport height. This enhances usability by:
- Limiting maximum height to 80vh using Tailwind's max-h-[80vh]
- Enabling vertical scrolling with overflow-y-auto
- Preserving dropdown positioning and accessibility
* feat: Add shift-click to append suggestions to text area
When a user shift-clicks a suggestion, the text is now appended to the current text area content instead of being sent immediately. This allows users to:
- Build complex prompts by combining multiple suggestions
- Edit suggestions before sending them
- Reuse parts of previous suggestions
The implementation passes the mouse event through the component chain and checks for the shift key before deciding whether to append or send the message.
* Tweak icon and internationalize
---------
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
Fix switching profiles to ensure only the selected profile is switched for all modes, and optimize certain i18n keys.
Signed-off-by: feifei <liuyansheng1121@gmail.com>
* 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>
* fix: restore file truncation backward compatibility and fix regressions
Fixes#1934
- Setting maxReadFileLine=-1 provides equivalent functionality for reading entire files
- Revert to system-controlled maxReadFileLine for file truncation, fixing regressions with:
- Overridden system prompts lacking auto_truncate parameter information
- Insufficient user control over truncation behavior
- Add 'Always read entire file' checkbox for easier access to full file reading
- Update translations across all locales with improved descriptions
- Update truncation notice to be more concise
Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
* test: add comprehensive tests for read_file maxReadFileLine settings
- Tests behavior when maxReadFileLine is -1 (reads entire file)
- Tests behavior when maxReadFileLine >= file length (reads entire file)
- Tests behavior when maxReadFileLine is 0 (shows only definitions)
- Tests behavior when maxReadFileLine < file length (truncates content)
- Verifies exact line counts in responses
- Adds helper functions for response validation
- Includes DEBUG flag for controlled logging
---------
Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
Co-authored-by: Eric Wheeler <roo-code@z.ewheeler.org>
* support project-level mcp config
* switch the toasts to English
fix test
(cherry picked from commit 26941dcaae)
* add i18n for project mcp
(cherry picked from commit 792a8225c1)
* optimize McpHub.ts
* fix merge main into head
* fix project mcp
* partial update mcp config
* fix toggleToolAlwaysAllow
* Modify mcp to support project and global of the same name
* fix ut
* remove unused mcp log
* i18n for mcp
* Revert README changes
---------
Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
* 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>
* 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>