Scope lease-failure escalation to --force-with-lease
main·
Commit

The lease-failure marker set in gitproto is intentionally broad to catch phrasing across servers (stale info / fetch first / non-fast-forward / does not match). That's right under --force-with-lease, where the user has explicitly promised "rerun if target moved." But the same server messages can mean ordinary policy rejection on a --force-blind or non-force best-effort run, which BestEffort is allowed to downgrade to warnings.
Gate leaseFailureError on cfg.ForceWithLease so the escalation only fires when the lease contract is actually in effect. Other rejection paths follow the BestEffort warn-and-continue contract as documented.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com Entire-Checkpoint: 153a4deb52ba
Checkpoints
can you look at https://github.com/entireio/git-sync/issues/46 and then chat
Claude CodeOpus 4.7[1m]
View sessionCheckpoint 1