fix: surface git-refs checkpoint fetch failures in explain fallback

Commit

Soph2mo ago

matchCheckpointPrefixWithRemoteFallback discarded the FetchCheckpointRef error in its git-refs branch, so an unreachable remote was reported identically to a genuinely absent checkpoint ("checkpoint not found") — re-masking exactly the error class 7bbdad09c fixed at the store layer.

The fallback now returns the fetch error and callers surface it as "checkpoint <id> not found locally; fetching from remote failed: ...". A repo with no resolvable checkpoint source skips the fetch entirely (local absence is authoritative there), the commit-ref prefetch path deliberately keeps ignoring it (the downstream store read surfaces real failures with correct absent-vs-error semantics), and the v1-branch fallback keeps its historical fail-soft behavior for now.

Converts the self-healing KNOWN BUG skip in TestGitRefsClone_UnreachableRemoteMissingRefSurfacesRealError into hard regression assertions.

Co-Authored-By: Claude Fable 5 noreply@anthropic.com Claude-Session: https://claude.ai/code/session_012yi3hHGAGepwfrfjPETjGq Entire-Checkpoint: ca56eea65fe0

Checkpoints

Real Git-invoked Pre-push Hook Integration Tests

Claude Code
View session
Checkpoint 1