Expand description
Why a persisted cache was refused, shared by the extraction cache, the
graph cache, the perf table, and fallow doctor.
Why a persisted cache was not reused.
Both persistent caches (the extraction blob in fallow-extract and the
module-graph blob in fallow-graph) used to collapse every refusal into
None, so a run that paid full deserialisation cost and then reused
nothing looked exactly like a run with no cache at all. The reason is a
measurement, not an internal detail: it decides whether a user should fix a
config drift, delete a corrupt blob, or accept a legitimate cold run.
The variants split by WHO decided. Absent through RootMismatch are
decided inside a loader, before it hands a store back. ModeMismatch
through FingerprintChanged are decided by the caller after the load
succeeded, which is exactly the case that costs the most and used to say
the least.
Enumsยง
- Cache
Rejection - Why a cache load or a cache comparison refused to reuse persisted work.