Stage-2 D1 contract item (co-frozen): a fact scan may be slow, never silent. batches() now races its FIRST pull against SCANFACTS_FIRST_BATCH_MS (10s, exported; test-overridable) — a wedged or unreadably slow store produces a loud abort naming the contract instead of a consumer hanging indistinguishably from progress (the production shape: a heal against a generations-backlogged brain wedged silently on the first segment read). Only the first pull is raced: the bound is time-to-first-batch (proof the producer is alive), not per-batch pacing, and it runs only while a pull is pending — consumer think-time between pulls never counts against the producer (pinned). Three pins: wedged-store loud failure within the bound, healthy scan untouched end-to-end, slow-consumer immunity. |
||
|---|---|---|
| .. | ||
| bounded-chains.test.ts | ||
| db-portable-graph.test.ts | ||
| fact-log.test.ts | ||
| generation-chain.test.ts | ||
| generationStore.test.ts | ||
| pending-flush-durability.test.ts | ||
| stableEqual.test.ts | ||
| whereMatcher.test.ts | ||