Archilyzer · Source

archilyzer

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

commit 598e763442185bf180afe23d9dcaa73d5d3e5524
parent f1fc799bdeb45dbdeef8c8e3958a3f78761e42a2
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Sat, 26 Sep 2026 02:13:41 -0400

plans: release 10 lows planned — L1 hub (subs retry, /ask scope, accent fallback, one card order, playwright sw.js unlink) ‖ L2 runner (soft-block backoff, boot-pass timeout, /jobs cancelReason, safeRevalidate warning); merge after the brand rollout

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

Diffstat:
Mplans/release-10.md | 71+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 71 insertions(+), 0 deletions(-)

diff --git a/plans/release-10.md b/plans/release-10.md @@ -151,6 +151,77 @@ which passed while S3 was unmerged), and every rollout script is fail-stop: no h failed build, no hub step after a failed sites run, a skipped site named, no restart on the pre-brand `BUILD_ID`. Details: `brand-and-themes.md`, S3 "Review fixes". +## Planned: the lows, L1 ‖ L2 (2026-09-26) + +These are the release-10 candidates from `STATE.md`, found on the evening of 2026-09-25. Their +details are in [`release-9.md`](release-9.md) around :219, :247–300, :459, :577–580 and :650–675. They +run as two parallel slices, alongside brand S4 (umtool + `common/bin`; see +[`brand-and-themes.md`](brand-and-themes.md)). + +``` +main (4e5630aa) ──┬──> L1 hub lows (r10/hub-lows) ──┐ + ├──> L2 runner lows (r10/runner-lows) ──┼──> reviews ──> merge after the brand rollout + └──> brand S4 (brand/media) ──┘ (or earlier, on the operator's word + a re-cut) +``` + +**Merge timing.** The operator cut editor/export 0.9.0 for the brand rollout, and the runbook +builds `main`. The lows therefore stay on their branches after review, and merge once the brand is +rolled out. If the operator asks for them sooner, export needs another cut, because its +`[Unreleased]` notes are public on `/changelog`. + +### L1 — hub lows (`r10/hub-lows`) + +1. **`retry: false` on the hub's subs query.** A member with no subs corpus is ready about 1 s late + (release 9 C2 re-read). +2. **`/ask` on the hub honours the scope chips.** Use `useHubScope().isOn` in `AskHub`. It still + waits for every archive to settle. +3. **Official sites' accents on the hub.** A shared `seriesColor` fallback for the result stripes + and chip dots, for an official site with no accent. This needs `hub-summary.json`'s order. The + rollout's accents fix the cards' stripes; this covers everything else and any site without an + accent. +4. **One order for the official instances.** The hub orders its cards alphabetically (by + `hub-sites.json`), the homepage by transcripts, so the same colours land on different rows. The + hub follows the homepage, which puts `seriesColor` and the rows in the same order. If the code + shows a reason to prefer alphabetical, say so instead. +5. **`export/playwright.config.ts` unlinks `public/sw.js` before copying it.** In a worktree that + path is a link into the primary checkout, and a worktree export e2e run overwrites the + primary's hub service worker (FACTS 2026-09-25). + +L1 owns: `export/app/components/hub/**`, the hub search/scope files, `homepage/**` (ordering only), +`export/playwright.config.ts`, and `export/CHANGELOG.md`. + +### L2 — runner lows (`r10/runner-lows`) + +6. **YouTube's soft block backs off.** "Try again later" classifies as `deleted` → per_video, so it + never backs off. Classify it as a rate/bot condition that backs off, and keep genuinely deleted + videos per_video. See the release 9 F record. +7. **The boot pass's wait on the storage pass gets a timeout.** Log it when the timeout fires, and + let the boot pass continue. +8. **`/jobs` shows `cancelReason`.** It is already in the meta and the log (release 9 B4b); draw it + on the job row / detail. +9. **The safeRevalidate warning fires per occurrence, not once per bundle.** Rate-limit or count it, + rather than printing it once per module load. + +L2 owns: `common/controller/**` and `common/jobs/**` for 6–7, the editor `/jobs` UI, and the +safeRevalidate helper. + +### Shared, and whoever merges later resolves it + +- `editor/CHANGELOG.md`. Add a NEW `## [Unreleased]` above `[0.9.0]`, and never edit `[0.9.0]`. +- This file's records. +- Neither slice touches S4's files: `common/lib/brandMedia*`, `common/bin/brand-media.ts`, + `common/bin/gen-media-glyphs.py`, `umtool/report-to-video/**`. + +### Gates, per slice + +- tsc. +- Unit tests: common, editor, `test:scripts`, mcp. +- **L1:** `next build` for editor, export (site and hub) and homepage; the full export suite, + `e2e:hub`, `e2e:2origin` and the homepage e2e. Also prove item 5: after a worktree export e2e, + the primary's `export/public/sw.js` is untouched. +- **L2:** the editor `next build`, and the editor e2e specs for `/jobs`, boot and downloads (the + full editor suite runs at integration). Unit tests for the classification (6) and the timeout (7). + ## Rollout Nothing is rolled out. The live :3001 editor still runs `0213f6c8` (the pre-brand build); the five