From 0781aa5ee53c8f1fdc573646b039d4668739547a Mon Sep 17 00:00:00 2001 From: Vuong Hoang Date: Wed, 23 Sep 2026 23:08:19 -0700 Subject: [PATCH] docs: a GET of a booth page records a look, so live checks must not sweep :8090 Two sessions' post-deploy sweeps on 2026-09-23 recorded a look at every booth, which emptied "new since you looked" and collapsed the Desk's last section into reverse name order. CLAUDE.md now says how to check the live service without recording anything, and persistent-memory records the Desk ruling and the three booths it hid. --- CLAUDE.md | 9 +++++++++ persistent-memory.md | 1 + 2 files changed, 10 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index 86142b9..e0da8da 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -250,6 +250,15 @@ curl -s localhost:8090/healthz # the live service (systemd --user) systemctl --user restart booth.service # after a code change, to see it live ``` +⚠ **A GET of a booth page, its marks page or a review page RECORDS A LOOK** +(`.viewed`, and `.seen` for a review page). A post-deploy check that fetches +every booth on `:8090` tells the service the operator looked at all of them at +once: it empties "new since you looked", marks items seen on the tape, and +pushes every expiry out a day. Two sessions did exactly that on 2026-09-23. +Check the live service with requests that record nothing (`/healthz`, the Desk +at `/`, `?thumb=1` file fetches), and check pages against a COPY of the data +(`rsync` it into the scratchpad, `TestClient(create_app(copy))`). + ```sh .venv/bin/python scripts/mutation_check.py # prove the falsifiers still falsify ``` diff --git a/persistent-memory.md b/persistent-memory.md index ea0864e..ba967b0 100644 --- a/persistent-memory.md +++ b/persistent-memory.md @@ -116,6 +116,7 @@ _As of 2026-09-23:_ ## Recent decisions +- `[2026-09-23]` ✅ **The Desk's "Everything else" sorts by last UPDATE, not last activity** (operator: "last activity can just be last time the booth was updated"). The section had been reverse-alphabetical because two sessions' post-deploy GET sweeps (17:48 and 21:46) each recorded a look at every booth. That also emptied "new since you looked": 3 booths (`dfa-landing`, `ldp-polish`, `pewpew-ui-brief`) had never been opened from an operator device. The operator chose the simpler fix and declined repairing `.viewed` from the access log. READ BEFORE CHECKING THE LIVE SERVICE: see CLAUDE.md "Working in here". - `[2026-09-23]` ✅ **The four flow rulings, and what they cost the beta** — all four taking design-dev's recommendation; READ BEFORE CUTTING ANY RELEASE, because `v1.0.0b1`'s "no new features" promise no longer describes the arc and an alpha drop-back is illegal → `persistent-memory.d/2026-09-23-the-flow-rulings-and-what-they-cost-the-beta.md` - `[2026-09-23]` ✅ **Creation dates came from a syscall, after three guesses wearing a fact's clothes** — READ BEFORE REACHING FOR A PROXY; the system already recorded what looked unavailable, and one of the rejected proxies was a shape we had just finished paying for → `persistent-memory.d/2026-09-23-dates-and-the-guess-wearing-a-facts-clothes.md` - `[2026-09-23]` ⚠ **The browser suite is flaky under load — OPEN, owned by design-dev** — three tests, two real defects fixed, NEITHER proven causal; do not read a green suite as proof → `persistent-memory.d/2026-09-23-the-browser-suite-is-flaky-under-load.md`