From cf08ae3f339bb187b000207d3e76f43cb7f412f0 Mon Sep 17 00:00:00 2001 From: Vuong Hoang Date: Thu, 24 Sep 2026 15:57:42 -0700 Subject: [PATCH] =?UTF-8?q?docs(roadmap):=20r3=20landed=20=E2=80=94=20the?= =?UTF-8?q?=20compare=20ring=20and=20stepping=20rules,=20compare=20mode=20?= =?UTF-8?q?off=20the=20parking=20lot?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The stale v1.1 line for compare pairing is corrected to the 2026-09-24 ruling (pairs are picked, never detected). persistent-memory records r3 live and unpushed, and the open race note for design-dev. --- ROADMAP.md | 7 +++++-- persistent-memory.md | 34 ++++++++++++++++++++-------------- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/ROADMAP.md b/ROADMAP.md index 1396dee..6dc1721 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -119,6 +119,8 @@ Where it already binds, and what the rule is in each case: | embed anchors in a verbatim report | **document order** — what `querySelectorAll` yields, so the author's markup decides (U3) | | the embed tail (fragments the author did not place) | **payload order**, which is the marks order `(created, id)` — one rule, whether a fragment lands at an anchor or at the end (U3) | | questions within a pick | declaration order, in the payload's `questions` LIST — carried by the format rather than by object-key insertion order (U3) | +| the compare filmstrip | **the compare ring**: the review ring (item order, media only) less any rel compare cannot open, so no strip link offers a pair that 404s (r3) | +| compare stepping | along the compare ring, modulo its length; linked moves both sides one place and keeps their distance, unlinked moves the active side only (r3) | U3's three rows are the first case where the rule binds across a language boundary: the order is decided in Python and honoured in JavaScript, and a @@ -140,7 +142,8 @@ gallery booths have a subdirectory. (section ordering among themselves, compare pairing) resolved differently: section ordering is MOOT, because U7 renders no section rail — `Item.section` still exists and is still derived, it simply has no ordered surface. Compare -pairing rode into v1.1 with compare mode itself. **U6's bench listing is +pairing was ruled 2026-09-24: pairs are PICKED, never detected from filenames, +and compare landed with r3 (rows above). **U6's bench listing is settled** — the row above. The test for any new ordered surface: *can you write the rule down in one line?* @@ -162,7 +165,7 @@ weighed against the v1 path and lost on purpose. | item | why parked | |---|---| -| ~~**Compare mode**~~ — **UNPARKED 2026-09-23, IN THIS ARC** | Parked as "the only new capability rather than a fix for a measured defect", and **that deferral was ours and the operator overruled it.** design-dev argued it belongs in this arc because the ladders and bakeoffs already need it; the operator ruled `this_arc`. Lands AFTER the Desk and the reel, as a view toggle over the same item record. Recorded so nobody re-parks it by reading an older rule. | +| ~~**Compare mode**~~ — **UNPARKED 2026-09-23, LANDED 2026-09-24 (r3)** | Parked as "the only new capability rather than a fix for a measured defect", and **that deferral was ours and the operator overruled it.** design-dev argued it belongs in this arc because the ladders and bakeoffs already need it; the operator ruled `this_arc`. Lands AFTER the Desk and the reel, as a view toggle over the same item record. Recorded so nobody re-parks it by reading an older rule. | | Virtualized / progressive grid loading | Speculative. 270 `` may be fine. **Measure the real booth before optimising it** — if it renders inside a second, this is invented work. | | Bench uptime history + graphs | The v1 need is "is it dead", which one flag answers. A time series is a different product. | | Cross-booth search | No evidence of the need in the usage data. | diff --git a/persistent-memory.md b/persistent-memory.md index ac297dc..12d1f12 100644 --- a/persistent-memory.md +++ b/persistent-memory.md @@ -19,18 +19,22 @@ loop it turned out to actually be. _As of 2026-09-24:_ -- 🔶 **WAITING ON design-dev: the r3 (compare mode) contract.** The operator - ruled r3 on 2026-09-24, in design-dev's session, as both of us recommended: - pairs are PICKED (no filename auto-pairing; design-dev measured it: 1 booth in - 26 pairs cleanly, and `sindra-h2h` gets none), and the verdict is a FLAG on - the winner. So **r3 needs nothing new from `booth_items` or marks.** The - compare URL is keyed by REL (`?a=&b=`), never by ordinal (our U1 - note, adopted). Sequencing: design-dev's SVOS phone approval page merges - FIRST (operator-approved, pending heid reviews), then the r3 contract. When - he pings, do the SEAM PASS on the r3 contract against the real module - surface. If the SVOS page lands in THIS repo, its merge still needs the - operator's word in this session. -- ✅ **LIVE AND PUSHED: origin/main = `d5ead3f`, 888 green.** Tonight landed, in +- ✅ **r3 COMPARE IS LIVE, NOT PUSHED** (operator: "merge r3 once the + mutation check is clean", 2026-09-24). Fast-forwarded to design-dev's + `f8d136a` after our own run of the gate on that exact commit: 918 passed, and + 148/148 falsifiers proved (r2b 55, r2c 36, r3 57). Service restarted at 1557 + and checked with `/healthz`, the Desk, `/openapi.json` and an empty-pair 404 + only. **origin/main is still `d5ead3f`; the push is the operator's call.** + Our seam pass on the contract caught 12 mismatches before code, the two that + mattered being duplicate `data-region` ids (a save would have made B's flag + button flag A) and 22 mutation-table rows anchored in the script that moved. + **Open, design-dev's to take or refuse:** the review route calls + `cring.index(f)` after a second resolve of `f`, so a file removed or relinked + mid-request is a `ValueError` 500 on the review page (a narrow race; compare's + `ring.index(a)` is the same shape). The accepted-not-fixed list from the heid + bug hunt is in `docs/contracts/r3_compare.contract.md`. +- ✅ **PUSHED: origin/main = `d5ead3f`, 888 green** (local main is ahead: the + 09-24 memory snapshot, r3 and its roadmap commit). On 09-23 landed, in order: r2b merge 1 (`b92b002`, reveal all + booth fog), r2b merge 2 (`cce6a20`, Desk row + dates + theme toggle), the Desk sort (`64f6488`), the blur round-trip (`6880ab3`), 768-wide thumbnails (`1d31ab0`), r2c the review @@ -69,8 +73,9 @@ _As of 2026-09-24:_ presumably the operator, as he said he would. **Do not blur, unblur or reveal them on his behalf.** The Desk still shows up to 4 images per booth. - 🛑 **NO `1.0.0` YET** (operator, 2026-09-23). The tag stays `1.0.0b1`, with - no further pre-release until the arc lands (r3 compare is still in it). ⚠ It - has looked complete twice already. + no further pre-release until the arc lands. r3 compare, the last unit we + held named in it, landed 2026-09-24; **whether that closes the arc is the + operator's call, never ours.** ⚠ It has looked complete twice already. - 🛑 **STANDING: NO ANNOUNCEMENTS out of this repo until the whole arc is done, and the operator sends that one himself.** Do not offer, draft-and-await, or raise it. @@ -80,6 +85,7 @@ _As of 2026-09-24:_ ## Recent decisions +- `[2026-09-24]` ✅ **r3 compare merged on the operator's word, gated by our own run** — fast-forward to `f8d136a` only after 918 green and 148/148 falsifiers on that exact commit, run here rather than taken from design-dev's report. The seam pass is what made the build clean: 12 contract-vs-code mismatches folded before a line was written. - `[2026-09-24]` ✅ **r3 compare ruled: pick two, flag the winner** — operator, in design-dev's session. No `booth_items` or marks work; the URL is rel-keyed. The A/same/B pairwise verdict is **PARKED (deferred)**, with our ordered-pair-of-rels note attached. Tracked in design-dev's r3 contract parked entry, althing thread `01M3952NCDRRJX5XDFSPMSP5HJ`. - `[2026-09-23]` ✅ **The Desk's "Everything else" sorts by last UPDATE, not last activity** — the operator chose the simple fix over repairing `.viewed` from the access log. READ BEFORE CHECKING THE LIVE SERVICE → `persistent-memory.d/2026-09-23-desk-sorts-by-last-update.md` - `[2026-09-23]` ✅ **The blur round-trip, and the migration that recreated the bug it fixed** — three rounds, and the third was our own 09-21 marks lesson repeated. READ BEFORE ANY DOTFILE FORMAT CHANGE → `persistent-memory.d/2026-09-23-blur-round-trip-and-the-migration-that-recreated-it.md`