-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Git worktree management #10458
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Git worktree management #10458
+4,287
−16
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Contributor
All previously flagged issues have been resolved. Latest changes make
Mention @roomote in a comment to request specific changes to this pull request or fix all unresolved issues. |
879aa3a to
c4e9396
Compare
f538743 to
a711536
Compare
- Add worktrees.json translation files for all 17 locales - Add command.worktrees.title translation to all package.nls locale files
Performance: - Parallelize git commands in getAvailableBranches() using Promise.all - Add maxDisplayItems prop to SearchableSelect (default 50) to improve dropdown performance - Disable cmdk's slow built-in filtering for large option lists UX Improvements: - Add loading spinner while branches load with i18n support - Add onWheel handler to CommandList for VSCode webview scroll compatibility - Round modal input fields with rounded-full class - Apply consistent WorktreesView styling (rounded-xl, transparent borders, hover effects) Branch .worktreeinclude Check: - Add branchHasWorktreeInclude() to check if selected base branch has .worktreeinclude committed - Show warning when base branch doesn't have .worktreeinclude (not local filesystem) - Add checkBranchWorktreeInclude message type and handler Translations: - Add searchBranch, noBranchFound, loadingBranches keys to all 18 locales
The test performs 9 sequential git operations which can exceed the default 5000ms timeout on Windows CI. Increased to 30s for reliability.
daniel-lxs
added a commit
that referenced
this pull request
Jan 20, 2026
… true Matt pointed out in PR #10458 review that this behavioral change should be handled separately. This reverts to the original behavior where: - parallel_tool_calls is only sent to API when explicitly set to true - When false or undefined, the parameter is omitted entirely (allows API defaults) Updated 13 provider files and 8 test files to restore this behavior.
a711536 to
ee25d5d
Compare
- Replace polynomial regex /\/+$/ with iterative while loop to prevent ReDoS (also fixes bug where root path / was incorrectly converted to empty string) - Use execFileAsync with argument arrays instead of execAsync with string interpolation to prevent shell command injection - Add comprehensive unit tests for normalizePath and parseWorktreeOutput Fixes 8 CodeQL alerts: - 1 high severity: Polynomial regular expression - 7 medium severity: Unsafe shell command construction
- Handle both forward slashes (/) and backslashes (\) in trailing path removal - Update test for root path to use path.sep for Windows compatibility - Align implementation with existing src/utils/path.ts normalizePath Fixes Windows CI test failures for worktree-service tests.
daniel-lxs
approved these changes
Jan 20, 2026
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Enhancement
New feature or request
lgtm
This PR has been approved by a maintainer
PR - Needs Preliminary Review
size:XXL
This PR changes 1000+ lines, ignoring generated files.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #10646
Thanks to Cline / Saoud for the inspiration.
I had Opus take a peek at their WIP implementation and port it over.
I also added a
--worktreeoption to the Roo Code cli which will automatically run your task in a new worktree.Important
This pull request adds comprehensive Git worktree management to the VSCode extension, including UI components, backend handlers, and internationalization support.
worktreeAutoOpenPathto auto-open Roo Code sidebar when switching worktrees.WorktreesView,CreateWorktreeModal, andDeleteWorktreeModalcomponents for managing worktrees.SearchableSelectfor branch selection inCreateWorktreeModal.App.tsxto include a new "worktrees" tab.handleListWorktrees,handleCreateWorktree,handleDeleteWorktree,handleSwitchWorktree, and other handlers inhandlers.ts.registerCommands.tsandpackage.json.This description was created by
for b518ada. You can customize this summary. It will automatically update as commits are pushed.