Lazy-fetch source closure before materialized fallback
main·
Commit

needsLocalSourceClosure approximates which scenarios require the local store, but it can't perfectly mirror CanIncrementalRelay — for instance, when target capabilities are unknown the relay rejects even though the plans look skip/create-only. In that case the materialized fallback ran against an empty in-memory store and silently produced an insufficient pack.
Track whether the closure has been fetched and refetch on demand before materialized runs. Pure-relay paths still skip the upfront fetch (no double-trip), and the fallback regains the store it needs.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com Entire-Checkpoint: 62b6e35685a0
Checkpoints
Checkpoint 1