Archilyzer · Source

archilyzer

Archilyzer
git clone https://archilyzer.pages.dev/source/archilyzer.git
Log | Files | Refs | README | LICENSE

commit b7f42f325b433ad0c3535b864c3aad43194d266d
parent a2ad64ea0aa38bd9877d2c8b6d0cc8eed6ebd27c
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Wed, 30 Sep 2026 16:03:36 -0400

plans: release 16 — what a search reads; slice CK's ruling (a Search in row: Transcripts, Posts, Live chat; the first two on by default)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

Diffstat:
Aplans/release-16.md | 42++++++++++++++++++++++++++++++++++++++++++
1 file changed, 42 insertions(+), 0 deletions(-)

diff --git a/plans/release-16.md b/plans/release-16.md @@ -0,0 +1,42 @@ +# Release 16 — what a search reads + +`main` at `9a259787` (releases 14 and 15 merged and rolled out). No plan file of its own: each +slice's prompt carries its ruling, and this record carries what was built. Rules: +`plans/tools/implementer-rules.md`, with the commit trailer this release's prompts give. + +**The standing choices** (not re-opened): +- **A search reads transcripts and posts unless the visitor says otherwise; live chat is read only + when asked.** Today a plain query already reads the transcript cues and the posts corpus, and + reads live chat only through a query-builder leaf whose scope is "Live chat". That stays the + default; the three become one row of toggles. +- **The toggles say what a query reads, not which records list.** "Type: Videos, Livestreams" + keeps saying which records are shown; an empty query with Transcripts off still lists videos. +- **A slice that needs another slice's file stops and says so**; it does not edit it. +- **Nothing is edited in the primary checkout**; each slice has its own worktree, and the parent + merges with `git merge --no-ff` only on a clean tree. + +## The slices + +| Slice | Branch | What | Owns | +|---|---|---|---| +| CK | `r16/search-in` | A "Search in" row — Transcripts, Posts, Live chat — on the export and hub search, Transcripts and Posts on by default | `common/components/{FiltersPanel,SearchSessionContext,SearchResults,SearchBar,exportFilterStorage}.tsx/.ts`, `common/lib/searchQuery.ts` and `common/lib/search/*` as its prompt names, `export/e2e/search-in.spec.ts` (new) and the specs its prompt names, `export/e2e/helpers.ts`; records: `plans/FACTS.md` | + +## Slice CK — the ruling (2026-09-30) + +- One row, **"Search in"**, beside the Type row of the Filters panel: **Transcripts** (on), + **Posts** (on; the Posts box moves here from the Type row, same storage key `nop`, same + accessible name), **Live chat** (off; offered only when the site's subs manifest reports live + chat, as Posts is offered only when the site ships posts). +- The row governs every query leaf whose scope is "transcripts" (the default leaf): it reads the + cues of the kinds ticked. A leaf whose scope is "Live chat" or "Posts" was asked for by name and + is not changed by the row. +- With all three off the Search button does nothing and the panel says which row to fix; the + visitor cannot commit a query that reads nothing. +- A live-chat hit inside a video's row wears the "live chat" track badge whenever the visitor could + also be seeing transcript hits — the suppression at `SearchResults.tsx` for that one track ends. +- Stored like the other toggles (the working snapshot and the profiles, `ytdlp-tb:export-filters`), + only when off the default. Share links do not carry the row this release (they do not carry + `nop` either); a `qt=` link a visitor opens reads with the visitor's own row. +- The hub's search gets the row through the shared components; nothing hub-specific. + +## Record