Commit 2026-06-23 03:43 b4384330

View on Github →

fix(cache): carry cache misses across 'get' layers instead of using file existence as a proxy for 'done' (#40817) lake exe cache get! on a fork that already has a full local cache re-downloads only from master and never falls through to forks, so a corrupt fork-only .ltar is never refreshed. Between containers, the next round's file set was recomputed with filterExists (is the .ltar on disk?). Under force, that proxy is wrong: a file served only by a later container whose .ltar is already cached looks "done" after the first round, so remaining empties and the chain stops. Carry forward the files a round did not serve instead — using the set of hashes it actually fetched — independent of disk state. Follow-up to #40035.

Estimated changes