Add remote sync to the Git panel: set/edit an origin URL, then fetch, pull
(fast-forward) and push, with live ahead/behind counts against the
remote-tracking branch.
Backend:
- git_ops: remote_status (git2 ahead/behind + upstream), set_remote, and
fetch/pull/push that shell out to the system git CLI so they reuse the
user's existing credentials (SSH agent, keychain / credential helpers)
instead of reimplementing libgit2 credential callbacks. Pull is --ff-only
to avoid leaving a conflicted tree from the GUI; push uses --set-upstream.
- New commands git_remote_status/set_remote/fetch/pull/push, registered.
- Test: push to a bare local remote, then assert upstream + ahead/behind.
Frontend:
- RemoteStatus type, api wrappers, store state (remote, syncing) with
refreshRemote wired into refreshGit; pull reloads diagrams + open buffer.
- GitPanel remote section: URL, ahead/behind badges, Fetch/Pull/Push, and a
set-remote dialog.
cargo test (7 passing incl. roundtrip), svelte-check and build all green.