gabriel / muse public
fix patch push dev
AI Agent gabriel · 46 days ago · Apr 26, 2026 · Diff

fix(push): fall back to cached same-remote tracking refs when live /refs unreachable

When _fetch_remote_info_safe returns None (e.g. self-signed TLS cert not in the system CA store), remote_branch_heads was empty, making candidate_have=[]. collect_object_ids then walked the entire object graph every push, sending thousands of objects instead of just the delta.

Fix: on remote_info=None, scan .muse/remotes/<remote>/ for cached tracking refs from the last successful push to this exact remote. These are same-remote refs (not cross-remote), so there is no risk of stopping the object walk early against objects the target remote has never seen. The commit_exists() guard already handles stale entries safely.

This restores the expected behaviour: a single-commit push sends the few objects in that commit, not the entire repo history. Force push is no longer required for normal push after a commit+merge cycle.

sha256:4d3e22e848dc78dd254db815463dace68828ad7caa8450825cf45f816a370ba4 sha
sha256:971d3da0afe02ffd0da99cadadf533c568f148d2f9bcbb4987cdc23db0b65f1d snapshot
← Older Oldest on dev
All commits
Newer → Latest on dev

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:4d3e22e848dc78dd254db815463dace68828ad7caa8450825cf45f816a370ba4 --body "your comment"