Commit graph

100 commits

Author SHA1 Message Date
Matt Rubens
c9449ca2fe Merge remote-tracking branch 'origin/main' into jbbrown/marketplace 2025-04-26 23:51:13 -04:00
Chris Estreich
cb29e9d56f
Remove ModelInfo objects from settings (#2939) 2025-04-25 15:23:25 -07:00
Smartsheet-JB-Brown
a122dc7465 fix failing tests from state management changes 2025-04-18 14:47:30 -07:00
Smartsheet-JB-Brown
6b9b2aa4de no type script or linting errors 2025-04-12 09:55:08 -07:00
Smartsheet-JB-Brown
cd5b894578 walking skeleton 2025-04-10 12:25:12 -07:00
Chris Estreich
a73fce9027
Allow processes to access the Roo Code API via a unix socket (#2232) 2025-04-02 12:42:00 -07:00
Steven T. Cramer
b9f4695d12
Fix Tests to run properly on Windows (#1963)
* fix: remove -p flag from test script to prevent git operation errors

The -p flag in npm-run-all was causing tests to run in parallel, which led to 'Cannot log after tests are done' errors with git operations. These errors don't appear when running test:extension alone.

The issue occurs because git-based tests create temporary directories and run async operations that can interfere with each other when executed in parallel. Running tests sequentially resolves this cleanly.

While it might increase total test time slightly, it ensures more reliable and consistent test results.

* refactor(terminal): improve mock streams and fix test issues

- Create shell-specific mock streams (bash, cmd, pwsh) with proper line ending handling
- Fix open handles in tests by properly managing timeouts
- Standardize stderr redirection across all shell implementations using stdio option
- Improve test reliability and output cleanliness

* fix(tests): add skipVerification option to PowerShell tests to debug Linux issues

* fix(tests): use explicit variable name in PowerShell test to fix Linux compatibility

* Refactor terminal tests to use purpose-based approach instead of command mapping

* Remove reference to non-existent test file

* fix: use printf instead of echo -e for more consistent behavior across platforms

* fix: use single quotes for PowerShell commands to preserve variables on Linux

* Update code-qa workflow to run tests on both Windows and Ubuntu

* fix: use platform-specific PowerShell command execution for Linux and Windows

* Fix toggleToolAlwaysAllow to handle path normalization for cross-platform compatibility

* Fix McpHub tests to handle normalized paths on Windows

* Suppress console.error messages in McpHub tests

* fix: make Bedrock ARN regex patterns Windows-compatible

Fixed an issue where AWS Bedrock tests were timing out on Windows but passing on Linux. The root cause was path separator handling in regex patterns used for model ID extraction from ARNs.

1. Updated model ID extraction regex to handle both forward slashes (Linux) and backslashes (Windows)
2. Modified ARN matching regex to be platform-independent
3. Ensured consistent region prefix handling for all supported regions

This change maintains functionality while ensuring cross-platform compatibility.

* fix: make WorkspaceTracker test cross-platform compatible

Fixed an issue where the WorkspaceTracker test 'should initialize with workspace files' was failing on Windows but passing on Linux. The problem was in the mock implementation of toRelativePath that only handled forward slashes.

- Updated the toRelativePath mock to use path.relative which properly handles platform-specific path separators
- Ensured all paths are converted to forward slashes for consistency in test assertions
- The fix maintains cross-platform compatibility while preserving the test's intent

* fix: make WorkspaceTracker tests cross-platform compatible

Fixed cross-platform compatibility issues in the WorkspaceTracker tests that were causing failures on Windows but passing on Linux:

1. Updated the toRelativePath mock implementation to:
   - Use path.relative which properly handles platform-specific path separators
   - Convert paths to forward slashes for consistency in test assertions

2. Enhanced the 'should not update file paths' test to be platform-agnostic by:
   - Using more flexible assertions that don't depend on specific path formats
   - Checking file path length and content rather than exact string matches
   - Properly typed the test assertions to fix TypeScript errors

These changes preserve the test intent while ensuring they run successfully across different operating systems.

* fix: make McpHub tests cross-platform compatible

Fixed cross-platform compatibility issues in the McpHub tests that were causing failures on Windows but passing on Linux:

1. Made the toggleToolAlwaysAllow tests more platform-agnostic by:
   - No longer relying on specific path formats which differ between Windows and Linux
   - Using the last write call instead of searching for a specific path string
   - Adding more robust assertions that verify structure instead of exact path matches
   - Properly handling array existence checks

2. These tests would fail on Windows because paths are formatted with backslashes instead of
   forward slashes, causing path equality checks to fail.

The changes maintain test intent while ensuring cross-platform compatibility.

* handle escaping of slash and quote

* fix: ensure consistent line endings in git fallback strategy

Fixed an issue where tests would fail on GitHub Windows runners but pass on local Windows machines due to line ending differences. The fix ensures consistent line ending handling by:

1. Normalizing CRLF to LF when reading files in the git fallback strategy
2. Disabling Git's automatic line ending conversion
3. Maintaining consistent line ending usage throughout text operations

* feat: run tests sequentially on Windows, parallel otherwise
2025-03-31 23:17:56 -05:00
Greg Taylor
5fbf563216
Add an activation command for other extensions (#2073)
Since VS Code provides no actionEvents that trigger when a specific
extension activates, extensions can't activate only once Roo is
activated and ready.

This commit introduces a new roo-cline.activationCompleted command
and fires it at the very end of extension activation. Other
extensions that use Roo's exported APIs can now activate when they
see this event.

Co-authored-by: Greg Taylor <gregtaylor@netflix.com>
2025-03-28 23:48:03 -04:00
Steven T. Cramer
8ad4fff0d2
Removed hardcoded filenames to GlobalFileNames constants. (#1904)
* Replace hardcoded custom modes filename with GlobalFileNames constant

* Remove 'cline' prefix from mcpSettings filename

* Use GlobalFileNames.customModes in modes.ts

* replace two more `cline_mcp_settings` with `mcp_settings` in tests.

* feat: add settings file migration for new file naming convention

- Implement migrateSettings function to rename legacy settings files to new format
- Migrate cline_custom_modes.json to new custom modes filename
- Migrate cline_mcp_settings.json to new MCP settings filename
- Add TODO to remove migration code in September 2025 (6 months after implementation)
- Make activate function async to support migration on startup

* Add associated changeset

* removed unused import

* refactor: move migrateSettings to dedicated utility file

- Extract migrateSettings function from extension.ts to src/utils/migrateSettings.ts
- Update extension.ts to import and use the extracted function
- Update tests to use the real implementation
- Improve dependency injection by passing outputChannel as parameter
- Enhance maintainability by isolating temporary migration code (to be removed Sept 2025)

* Update src/extension.ts

---------

Co-authored-by: Matt Rubens <mrubens@users.noreply.github.com>
2025-03-24 13:32:44 -04:00
Matt Rubens
4a0c0b1116
Revert "Merge pull request #1682 from GitlyHallows/bug/old-task-deletion" (#1837)
This reverts commit bfd60097d0, reversing
changes made to 7459ac5dac.
2025-03-20 09:08:36 -04:00
Matt Rubens
38655825d4
Extension-side internationalization (#1757)
* Extension-side internationalization

* Update script

* Cleaner esbuild

* Turn off debugging

* PR feedback

* Update src/i18n/locales/en/common.json

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

* Update src/i18n/locales/ca/common.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-03-18 10:39:21 -04:00
Chris Estreich
878b3820d2
Settings tweaks: add terminal & language sections, fix whell scroll in editor tab (#1763) 2025-03-18 00:11:57 -07:00
GitlyHallows
2a2e467ba4 1. Added validation for task history and added option for user to remove/keep task in history 2025-03-16 00:07:21 +00:00
cte
4b23644683 Add Cline events and roofactor subtasks slightly 2025-03-12 22:52:37 -07:00
Eric Wheeler
1973f87c6b fix: prevent duplicate terminal handler registration
Move terminal shell execution handlers from TerminalManager to TerminalRegistry to
permanently solve duplicate handler registration issue. Previously handlers were
registered per-task, now they are registered once at extension startup:

- Initialize handlers when extension loads
- Add safety check to prevent multiple initializations by throwing an
  error if initialize() is called more than once.
- Add cleanup on extension deactivation
- Remove handler registration from TerminalManager

Fixes: #1364
Signed-off-by: Eric Wheeler <roo-code@z.ewheeler.org>
2025-03-10 20:55:05 -07:00
Eric Wheeler
13c75a19d1 Revert "Disable terminal actions for now"
This reverts commit 93a394dd93 which has
been fixed by PR #1365.

Fixes: #1380
2025-03-10 20:53:39 -07:00
Eric Wheeler
75de043ded Revert "Remove terminal actions"
This reverts commit 75dcc2ffcf which has
been fixed by PR #1365.

Fixes: #1380
2025-03-10 20:53:36 -07:00
Chris Estreich
90a607f111
Merge branch 'main' into cte/roo-code-api 2025-03-10 20:29:36 -07:00
cte
f8a592aac9 Rename ClineAPI to RooCodeAPI and improve types 2025-03-10 11:16:38 -07:00
cte
5a3c20764a Follow the established pattern for command registration 2025-03-10 11:12:11 -07:00
Matt Rubens
50f76584bc Add telemetry and privacy policy 2025-03-07 03:03:44 -05:00
Matt Rubens
e4fb0081b1 Update commands to roo-cline to be consistent with others 2025-03-05 10:39:36 -05:00
Matt Rubens
73ac64924e Merge remote-tracking branch 'origin/main' into human-relay 2025-03-05 10:34:03 -05:00
cte
75dcc2ffcf Remove terminal actions 2025-03-04 15:38:14 -08:00
cte
93a394dd93 Disable terminal actions for now 2025-03-04 15:32:32 -08:00
Felix NyxJae
38c09d09d6 fix: Fix the human relay dialog function and optimize user interaction experience 2025-02-28 10:54:25 +08:00
Felix NyxJae
3bb1d78c17 feat: Added human relay function and related message processing initial version 2025-02-27 18:08:05 +08:00
MuriloFP
b2b5e1ffa6 fix: Implement singleton pattern for MCP server management to prevent multiple instances
Problem:
- Multiple instances of the Roo Code application were launching separate MCP server instances
- This led to unnecessary resource consumption and potential conflicts between instances

Solution:
1. Created new McpServerManager singleton class to manage MCP server instances:
   - Static getInstance() method ensures only one McpHub instance exists
   - Tracks registered ClineProvider instances
   - Handles cleanup on extension deactivation

2. Modified ClineProvider class:
   - Changed mcpHub from private to protected
   - Added getMcpHub() public getter method
   - Updated initialization to use McpServerManager
   - Added unregister logic in dispose()

3. Updated extension.ts to handle cleanup:
   - Added McpServerManager cleanup in deactivate()

Technical Implementation:
- Uses WeakRef for provider tracking to allow proper garbage collection
- Maintains global state to track instance IDs
- Implements proper cleanup of resources on disposal
- Ensures backward compatibility with existing code

This change significantly improves resource usage and prevents potential conflicts
between multiple instances of the application while maintaining all existing
functionality.
2025-02-07 15:51:30 -03:00
sam hoang
0ceb370008 feat: add terminal integration commands
- Add terminal context menu commands for:
  - Adding terminal content to context
  - Fixing failed commands
  - Explaining commands
- Implement terminal content selection and retrieval
- Add support prompts for terminal actions
- Register terminal action handlers
2025-02-06 10:27:12 +07:00
cte
aa806fdc17 Extension activation cleanup 2025-01-31 21:23:07 -08:00
sam hoang
2e56149620 feat: add 'Add To Context' code action
- Add new command registration and menu item
- Add new code action type and command ID
- Add support prompt config for adding code to context
- Add message handling in webview for setting chat box content
- Add logic to append selected code to existing chat input
2025-01-30 17:23:12 +07:00
sam hoang
35a7e433f2 refactor: centralize editor utilities and unify command handling
- Create EditorUtils class to centralize shared editor functionality
- Remove duplicated code between CodeActionProvider and command handlers
- Improve command handling to work consistently for both code actions and direct commands
- Add better type safety and error handling for editor operations
2025-01-30 16:26:44 +07:00
Matt Rubens
61fb096f96 Add new/existing task for all three actions 2025-01-27 09:40:04 -05:00
sam hoang
85c49d8eff feat(code-actions): add "Fix Code in Current Task" action
Adds ability to fix code within the context of an active task instead of starting a new one. This allows for more efficient workflow when already working with Roo.

Add new FIX_IN_CURRENT_TASK code action and command
Enhance ClineProvider to support context-aware code fixing
Update tests to verify new action functionality
2025-01-27 14:24:26 +07:00
sam hoang
a7ae6c46d1 feat: user prompt in code action 2025-01-24 22:19:10 +07:00
Matt Rubens
3257dffa56 Review feedback 2025-01-23 15:56:24 -08:00
sam hoang
149e86ed0a fix comment on pr 2025-01-24 00:51:35 +07:00
sam hoang
22907a0578 refactor: consolidate prompt functionality into support-prompt module
- Move code action prompts from core/prompts to shared/support-prompt
- Migrate enhance prompt functionality from modes to support-prompt
- Add UI for managing code action prompts in PromptsView
- Update types and interfaces for better prompt management
2025-01-24 00:46:19 +07:00
sam hoang
7845791720 feat(code-actions): add user input and customizable templates
Add ability to provide custom input when using code actions
Make code action templates customizable and resettable
Refactor code action handling for better maintainability
Add state management for utility prompts
2025-01-24 00:46:19 +07:00
sam hoang
1b26f91ea7 refactor(code-actions): implement parameter object pattern for prompt generation
- Extract prompt templates into constants
- Add createPrompt utility for template string handling
- Consolidate code action handling in ClineProvider
- Update tests to use new parameter object pattern
2025-01-24 00:46:19 +07:00
sam hoang
02a8eb96f1 feat: integrate code actions into extension activation 2025-01-24 00:46:19 +07:00
Matt Rubens
b8e0aa0cde Custom modes 2025-01-21 09:39:54 -05:00
Matt Rubens
431ff57435
Merge pull request #405 from vincentsong/feature/vscode-debug
feat: Added VS Code debugging support with webview build and changed output channel from 'Cline' to 'Roo-Cline'
2025-01-18 10:27:42 -05:00
vincentsong
95b6326ca0 feat: Added VS Code debugging support with webview build 2025-01-18 09:41:54 +11:00
Matt Rubens
60a0a824b9 Prettier backfill 2025-01-17 14:11:28 -05:00
Frank
a102ba520b feat: add pkce 2025-01-15 08:20:20 +11:00
Matt Rubens
75e308b033 Add a screen for custom prompts 2025-01-13 22:45:14 -05:00
Matt Rubens
be3d8a6166
Incorporate MCP changes (#93)
Co-authored-by: Saoud Rizwan <7799382+saoudrizwan@users.noreply.github.com>
2024-12-12 23:16:39 -05:00
lloydchang
b9c274add2
feat(extension.ts): use rocket icon (#34) 2024-12-01 17:31:58 -05:00
Matt Rubens
6b8f9f7a45
Expose a list of allowed auto-execute commands (#31) 2024-12-01 15:34:36 -05:00