# Persistent memory — booth _Last updated: 2026-09-22_ > **Always check for `/tmp/booth-dev-handoff.md`** — if it exists and its > `Written:` stamp is under 8 hours old, read it (it carries the in-flight > handoff from the previous session), then delete it. Older than 8 hours: > stale — delete it unread. ## Repo purpose The Booth is the fleet's **operator-review surface**: agents post work by making a folder under `~/booth-data`, the operator looks at it and judges it in the browser, and the judgment gets back to the agent that posted it. It was built as a file-shuttle and is being converged, unit by unit, onto the review loop it turned out to actually be. ## Current state / in-flight _As of 2026-09-22:_ - **v1 is gated on seven units** in `ROADMAP.md`, dependency-ordered **U1 → U2 → {U3, U4, U5} → U7**, with **U6 independent**. - **U1, U2, U3, U4 and U5 are landed — the whole middle tier is closed.** U1 `ce598b3`; U2 `c7f9437` → `v0.2.0`, `5e41108` → `v0.2.1`, `026a1fc` → `v0.2.2`; U5 `c015a91` + `95beede` → `v0.3.0`; U4 `c3a97c1` → `v0.4.0`. **U3 landed 2026-09-22** — 431 tests green (410 → 431), deployed and verified live, 21/21 booth pages 200, and each of the four verbatim booths grew by exactly 46 bytes, which is `len(EMBED_SCRIPT_TAG)` — one append, nothing else. NOT PUSHED (push is the operator's call and he has not given it). - **U4 released as `v0.4.0`** (operator approved the minor on 2026-09-22). `c3a97c1` is the unit; the release commit carries the pre-existing fixes the bug-hunt panel surfaced in touched files. The tag waited for the last gate to close, per the `v0.2.0` lesson — see Tried and abandoned. - ⚠ **The 17 consuming handles are NOT being told** that `keep` no longer means "waiting on an answer" — operator decision, 2026-09-22, no broadcast. This is deliberate and it CHANGES HOW THE 2026-10-06 RE-COUNT READS: the hold rides for free, but not-pressing-`keep` has to be learned, so a flat `.forever` rate does not falsify anything. Read its entry before measuring. - **TWO UNITS LEFT TO v1, and they do not depend on each other.** U6 (benches, independent, closes the 69% link-board rot) and U7 (navigation at 270 items, which U3 just unblocked — its only dependency was {U3, U4, U5}). Which goes next is the operator's call. ⚠ Before starting U7, read `persistent-memory.d/2026-09-21-u7-section-premise-half-wrong.md`: every booth that actually needs navigation is FLAT, so half its premise is already known to be wrong. - ⚠ **U3's RELEASE TIER IS WITH THE OPERATOR.** It reads minor — the verbatim path gained a declared public API (`