feat(git): VS Code-style branch sync control#3075
Conversation
Adds an ahead/behind indicator with one-click fetch/pull/push/publish/sync
next to the branch in the composer toolbar, plus the standalone RPCs behind it.
- contracts: vcs.fetch / vcs.push / vcs.sync RPCs + GitDivergedError
- server: GitVcsDriverCore.fetchCurrentBranch + syncCurrentBranch (fast-forward
pull / push / publish chosen by ahead-behind; diverged history -> typed
GitDivergedError unless mode:"rebase", which runs pull --rebase and aborts
cleanly on conflict). Standalone push reuses the stacked-action driver call so
upstream + push-remote (fork) resolution stays shared.
- client: wsRpcClient vcs.{fetch,push,sync}, action-manager ops, action hooks
- web: GitSyncControl component wired into the branch toolbar
- tests: real-git integration tests for ahead/behind/diverged/rebase/publish/fetch
Also extracts RPC_REQUIRED_SCOPE into its own module with a completeness test
asserting every WsRpcGroup method declares an auth scope, so a missing scope
fails in tests instead of at runtime.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit c365aaa. Configure here.
ApprovabilityVerdict: Needs human review This PR introduces a new feature with new UI components (GitSyncControl), new RPC endpoints (fetch/push/sync), and new git operations including rebase handling for diverged branches. New user-facing features with this scope warrant human review. You can customize Macroscope's approvability policy. Learn more. |
- Fetch toast no longer claims "Up to date" — vcs.fetch only updates remote-tracking refs, so the branch may now be ahead/behind. Title is now "Fetched" with an accurate description; the badge reflects the real state. - Branch picker is disabled while a sync action (fetch/push/pull/sync) is in flight on the same cwd, preventing a checkout/create-ref from racing the git operation. Shares SYNC_BUSY_ACTIONS with GitSyncControl. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
please add screenshots and/or videos |







No description provided.