Push Checkpoints v1.1 Ref to Remote · Entire

Short answer

For v1.1 to mirror v1, nothing is left. PR #1376 is a mechanical refactor — it doesn't add new mirror coverage, it consolidates the coverage that already existed. After it, every v1 (Primary) write/advance/fetch routes through one chokepoint, so the v1.1 mirror tracks v1 everywhere. What's actually "left" is the rollout that moves past mirroring — pushing v1.1, flipping v1.1 to primary, and dropping v1 — which is explicitly out of scope for this PR.

Note: #1376 is still open, not merged.

Why mirror coverage is complete

In v1.1 mode the resolver (committed_refs.go) yields Primary=v1, Read=v1.1, Mirror=v1.1, Push=[v1]. Every place that advances Primary pairs it with a mirror:

The single documented exception is promoteRemoteTrackingPrimary in resume.go:716, which advances local v1 via SafelyAdvanceLocalRef without mirroring. It's harmless in v1.1 mode because its caller checkRemoteMetadata early-returns first (resume.go:610, gated on ReadBootstrappableFromOrigin(), which is false when Read=v1.1 ≠ Primary=v1). So the un-mirrored path is unreachable when the mirror exists.

What's left (the roadmap beyond mirroring)

From the PR's own "Future rollout" table — each is a resolver-level change, and the first two reverse the mirror direction:

Phase Primary Read Mirror Push
Today ("1.1") v1 v1.1 v1.1 [v1]
Push v1.1 to remote v1 v1.1 v1.1 [v1, v1.1]
Flip primary to v1.1 v1.1 v1.1 v1 [v1.1, v1]
Drop v1 v1.1 v1.1 — [v1.1]

So the answer to "what is left for v1.1 to mirror v1" is: the mirror itself is done; the remaining milestones are about making v1.1 the source of truth rather than a passive mirror.