- `readiness: ready`, `review_pending` (forks 1–12 settled 2026-09-10 by
codd-shoney under autonomy; look first at the cuts — fork 4 no
back-pressure, no cross-table shedding, no warn threshold; fork 2 the
per-table bound is rows only; forks 3/7 the default budget)
- two independent questions: RAM for all tables is one process budget in
bytes (`WO_DB_MB`; unset = the default, never "no budget"), breached by
refusal — the crossing insert traps WO_T_OOM, one stderr line names the
largest table, the budget and its source; during replay the crossing is
exit 2. Capacity of one table is `@table(max_rows: N)` with `on_full:
refuse | drop_oldest`; drop_oldest legal on `durable: false` only,
oldest = smallest live id; eviction never touches a durable table
- the default is the kernel's limit minus what the process holds at boot:
cgroup v2 memory.high/max up the ancestry, else MemAvailable, minus VmRSS
before replay — no fraction, no invented reserve; headroom is MEASURED
(A4 re-runs iteration 1's 64 MiB swap-off leg, refusal must precede kill)
- estimate = what the engine asked the allocator for, chunk-rounded; keys
tables count what is resident; observed on the WO_WAL_STATS exit line
- phases A–F, progress A1–A4 / B1–B3 / D1–D2 / F1 / P1 with owners; `.wob`
v9 carries max_rows + policy; `status: pending`, Phase A startable now
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit 579199af01581ebad3d2fa5f7e208745b210e9f9)