diff --git a/plans/abstractions.md b/plans/abstractions.md index c69593a0..58963420 100644 --- a/plans/abstractions.md +++ b/plans/abstractions.md @@ -12,6 +12,12 @@ Anything short → _Watching_ (what's missing) or _Rejected_ (why). ## Last scan +- **Date:** 2026-06-07 (radar loop, pass 13) +- **Pass 13 — honest re-test, no gate-clearer.** Re-tested the two longest-waiting gates + against the maturing app-domain loops: **W2** (per-viewer visibility) still 2 consumers + (feed, search) — commerce/content/events/identity add no per-viewer read filter; **W3** + (pagination) still 2 (feed, search) — `content/page.sx` is an HTML wrapper, not + pagination (filename collision, noted in W3). Incremental churn only elsewhere. - **Date:** 2026-06-07 (radar loop, pass 12) - **Pass 12:** `events` shipped **transactional booking on persist** (3rd live persist consumer) using `persist/append-expect` (optimistic-concurrency CAS, lock-free capacity @@ -179,6 +185,10 @@ Anything short → _Watching_ (what's missing) or _Rejected_ (why). in the **substrate** (APL/Haskell already expose grade/sort/unique/take/drop), not a shared lib. A 1-line `take/drop` window is far below the extraction threshold. Watch; revisit only if a non-substrate subsystem needs the same windowing without take/drop. +- **Filename-collision caution (pass 13):** `content/lib/content/page.sx` is an **HTML + page wrapper** (full HTML5 doc), NOT pagination — do not count it as a 3rd pagination + consumer. `page.sx` now means two unrelated things across the fleet. Re-tested pass 13: + pagination still only feed + search (2). ### W4 · In-memory store fakes → `persist-on-sx` - Not an abstraction to extract — a migration target. Every subsystem fakes its