Field notes from the cave

ADR-0010: Write/upload admission — EVICT vs BLOCK on disk exhaustion

Status: Accepted (2026-06-09), revised 2026-07-20.

Context

ADR-0003 makes the default a best-effort cache that evicts to admit. Some producers should be allowed to reclaim disk objects when their own admission hits ENOSPC; others, such as startup source loading, should report that the content did not fit. This is a decision for one write attempt, not a persistent classification of the stored object.

Decision

Every begin_store/store admission carries one write mode. StoreHandle captures it for the entire write, including any late streaming retry, so EVICT and BLOCK admissions can safely coexist in one TierManager. Memcache passes its configured mode (default EVICT); the startup --source loader explicitly passes the configured HTTP write mode (default BLOCK). The HTTP serving surface is read-only.

Cross-cutting rules (both modes)

Consequences

The operational flow and concurrency caveats are summarized in Full-filesystem writes.