commit d1f9970bc047b12c02b8f60173a080131aa17ba5
parent 252a133c0b0123cc77b8f70956d4363cf8ae6530
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date: Mon, 28 Sep 2026 09:24:44 -0400
plans: O1c review lows — FACTS anchors the four copy lines at hubScopeCopy.ts:64/70/76/82 and says export/app/**/*.test.ts (11 files, 98 tests) run in no suite; STATE's older copy-rulings list marked ruled; the record says "any [...] pair"
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Diffstat:
3 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/plans/FACTS.md b/plans/FACTS.md
@@ -6721,7 +6721,7 @@ S4, as shipped"; `release-10.md` "Slice L2 / L1, as shipped". Every anchor below
The count survives in the shared query client into `/ask`'s own mount (`retryOnMount`), a scope
toggle off→on, or a whole-archive Retry. A ready archive whose subs errored carries
`liveChatMissing: {retrying, error?}` (`:477`). Its scope chip shows `LIVE_CHAT_MISSING`
- (`export/app/ask/hubScopeCopy.ts:24`, a DRAFT) in `data-testid="hub-scope-live-chat"`, with a Retry
+ (`export/app/ask/hubScopeCopy.ts:76`; shipped as written, ruled 2026-09-28) in `data-testid="hub-scope-live-chat"`, with a Retry
(`Retry live chat from <title>`, `HubScope.tsx:106-115`). The Retry calls
`federation.retryLiveChat(origin)`, which refetches `["subs-manifest", origin]` exactly (`:799-802`).
`resetQueries` would zero the count; nothing in `common/` or `export/` calls it, and `gcTime` is
@@ -6731,7 +6731,7 @@ S4, as shipped"; `release-10.md` "Slice L2 / L1, as shipped". Every anchor below
`MultiSiteDataProvider` has two users: the hub's front page (`HubHome.tsx:40`, `progressive`:
settles on an empty scope, results read "No videos match", the chips say why) and `/ask`
(`AskHub.tsx:44`, not progressive: with every chip off the composer stays disabled and shows
- `NO_ARCHIVES_IN_SCOPE`, `export/app/ask/hubScopeCopy.ts:7`, `data-testid="ask-blocked"`,
+ `NO_ARCHIVES_IN_SCOPE`, `export/app/ask/hubScopeCopy.ts:64` (anchor as of `e1ef1923`), `data-testid="ask-blocked"`,
`role="status"`; the [bracketed] words render as a link to `/`). The same rule closes the instant
before the hub's list arrives. A hub with zero archives therefore reads "Loading transcripts…"
forever on `/ask` (a new low). Both surfaces take their list from `useFederatedSites()`
@@ -6751,7 +6751,7 @@ S4, as shipped"; `release-10.md` "Slice L2 / L1, as shipped". Every anchor below
`NO_ARCHIVES_IN_SCOPE` (every chip off). Before `listed`, it reads "Loading transcripts…".
- `AskScope` (`AskHub.tsx:49`) renders `ASK_SCOPE_LINE(inScope, total)` in
`data-testid="ask-scope"` once `listed` with at least one archive in scope. `null` hides it.
- - `NO_ARCHIVES_ON_HUB`, `LIVE_CHAT_MISSING` and `ASK_SCOPE_LINE` (`hubScopeCopy.ts:16/24/33`) are
+ - `NO_ARCHIVES_ON_HUB`, `LIVE_CHAT_MISSING` and `ASK_SCOPE_LINE` (`hubScopeCopy.ts:70/76/82` as of `e1ef1923`) are
DRAFTs awaiting the operator's ruling. `LinkedCopy` renders a line's one [bracketed] link to `/`.
- **RULED 2026-09-28 (O1c): the four lines ship as written, and the [bracket] link is gone.** Each
line is `` copy`…${link("…")}…` `` (a `Copy` `{before, link?, after, text}`). `copyWithLink`,
@@ -7039,8 +7039,9 @@ out. O3's facts are the section just above ("O3 — runner lows"). Anchors are a
`.text` / `.link`.
- A line with no link may be a plain string (`LIVE_CHAT_MISSING`).
- Nothing parses brackets any more.
- - `export/app/ask/*.test.ts` (this one, `citations`, `askChatStorage`) are in no suite script; run
- them with `export/node_modules/.bin/tsx --test`.
+ - `export/app/**/*.test.ts` — 11 files, 98 tests at `e1ef1923` (3 under `ask/`, 8 under `lib/`) —
+ are in no suite script: `export/package.json` has no `test` script. Run them with
+ `export/node_modules/.bin/tsx --test`. All 98 passed at O1c's review (2026-09-28).
- **`normalizeSocialSvg` themes a SINGLE-colour icon only** (`common/lib/settingsSchema.ts:1373`).
The solid colours of the root and every child outside a `<mask>` or `<clipPath>` are counted
together (spellings folded by `paintKey` `:1304`: `#FFF`, `#ffffff`, `white`, `rgb(255,255,255)`
diff --git a/plans/STATE.md b/plans/STATE.md
@@ -213,7 +213,10 @@ below this block's homepage entry).
already spawns them (it still runs release 8's build, `a9YAe_dwhuM6DiCPzIwMD`). That is safe: a
render that does not opt in is byte-identical. Its app changed only for the new-project form's
brand choice, which appears after the optional `r10-umtool.sh` rebuild and restart.
-- **Copy rulings still owed by the operator:**
+- **Copy rulings still owed by the operator:** *(RULED 2026-09-28: all four hub copy lines ship as
+ written, each now carrying its link in the line (the tagged template `copy` with `link()` replaced the
+ [bracket] regex);
+ `/ask` shows the scope line. Release 11 follow-up O1c, merged `e1ef1923`.)*
- `NO_ARCHIVES_IN_SCOPE` (`export/app/ask/hubScopeCopy.ts`). The draft is "No archives selected.
Choose some on the [hub's front page] to ask.", with the bracketed words a link to `/`. It
ships as drafted unless changed.
diff --git a/plans/release-11.md b/plans/release-11.md
@@ -1716,7 +1716,7 @@ something."
split and the old `copyText` with the new values for both constants and `ASK_SCOPE_LINE` at
(0,1), (1,1), (1,2), (2,5) and (5,5): all identical, and `LIVE_CHAT_MISSING` is the same string.
- **Why:** the operator's ruling. A reader-facing line should not depend on a bracket convention and
- a regex, and a stray `[` in future copy would have been read as a link.
+ a regex, and any `[…]` pair in future copy would have been read as a link.
- No changelog bullet: nothing a reader sees changed.
| sha | what |