Archilyzer · Source

archilyzer

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

commit 7f91177c75088089fdf8556b05ca9af26d5a5c89
parent 6db33734b791dcb771046ecf0e47d56cdf37fa64
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Fri,  9 Oct 2026 23:25:12 -0400

plans: overnight 2026-10-10 — the next batch run from the primary checkout (e2e speed, B2, A6–A9, D2 + R20, the TISM pilot)

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

Diffstat:
Aplans/overnight-2026-10-10.md | 114+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 114 insertions(+), 0 deletions(-)

diff --git a/plans/overnight-2026-10-10.md b/plans/overnight-2026-10-10.md @@ -0,0 +1,114 @@ +# Overnight 2026-10-09 → 10 — the next batch, run from the primary checkout + +Operator rulings (2026-10-09, late evening; do not re-open): +- **Scope:** e2e speed S1–S3 ([e2e-speed.md](e2e-speed.md)); B2 report-to-video robustness; release 19 A6–A9; + release 21 D2, then release 20 (the data model). +- **The orchestrator runs in the primary checkout** (`~/Projects/yt-dlp-transcript-browser`, branch `main`) and + advances releases itself: after full green gates it fast-forwards `main` and runs the standard rollout. Agents + still work in their own worktrees. +- **Live pilot allowed:** the TISM pilot (release 21's "Rollout (pilot)" steps 1–3) runs on the live editor once D2 + is live. **The transcription lane stays held** — `transcribe-one` for the 3 new records is queued, not run. +- **Handoff:** a generated `MORNING.html` runbook. + +## Step 0 — take over (the orchestrator, first thing) + +1. `git merge --ff-only r19/integration` on `main` (brings release 19's rollout record and this plan; plans + only — no rebuild). +2. Read: this file, `plans/e2e-speed.md`, `plans/release-19.md` (A6–A9 rows; "Landing, as it went"), + `plans/release-20.md`, `plans/release-21.md` (D2; "Rollout (pilot)"), `plans/STATE.md`, `plans/FACTS.md` (as + needed), and memory `release-19-in-flight`, `orchestrator-in-primary`, `memory-gate-heavy-steps`, + `e2e-run-detached`, `subagents-monitor-not-poll`, `no-claude-session-links`. +3. Scratch: `$CLAUDE_JOB_DIR/tmp`. Reusable scripts from the r19 landing are in + `~/.claude/jobs/c0baff27/tmp/` (copy, don't edit in place): `detach.sh`, `e2e-progress.sh`, + `r19-light.sh`, `r19-build.sh`, `r19-e2e.sh`, `r19-privacy-counts.sh`, `link-fixture-public.sh`, + `source-audit/{fresh-check,scratch-counts,verify-live}.sh`, `r19-homepage.sh`, `live-ops.sh`. + Rollout scripts: `~/reports/release-19/scripts/r19-{build,restart,smoke,umtool}.sh` — copy to + `~/reports/release-20/scripts/` and re-guard `MERGE=` / `LIVE=` for tonight. +4. Peers: Super Jeralyzer is finishing jeralyzer-private (the co-host timeline, **private only**); when it confirms + `/reports/cohosts/`, send every peer the all-clear for the quiet window (Super Hasanalyzer, Super Jeralyzer, + Super Jasolyzer, candace owens corpus analysis, mixology, recipe content engine). The overnight work then shares + the machine through the heavy slot and the e2e queue — no further quiet window is asked for. + +## Integration branch + +`r20/integration`, from `main` after step 0. Each agent branches from it in its own worktree (`pnpm wt add +<branch> --from r20/integration`, then `link-fixture-public.sh <worktree>` — a worktree's e2e uses the committed +fixture compose `plans/tools/compose-fixture-one-youtube-channel/public`, not the primary's `export/public`). The +orchestrator merges each finished track `--no-ff` on a clean tree, re-runs the touched suites, and records. + +## Tracks (at most two Opus agents at once) + +| lane | order | track | branch | files it owns | gate | +|---|---|---|---|---|---| +| 1 | first | **E — e2e speed S1–S3** | `r20/e2e-speed` | `editor/playwright.config.ts`, `editor/package.json` scripts, `editor/e2e/helpers.ts` + `globalSetup.ts`, `scripts/queue-lock.mjs` (only if S1 needs it), a new `scripts/e2e-timings.mjs`, the four timer knobs (`common/lib/envVars.ts` + the product code each reads) | the full editor suite **through the new default** (start + stamp) and once in dev; the stamp proven stale-safe (edit a file → rebuild); timings file written; unit for the stamp | +| 1 | after E | **A — release 19 A6–A9** | `r20/a6-a9` | `editor/app/api/ops/**`, `scripts/archilyzer-ops.mjs`, `mcp/src/**`, `common/controller/` import/listing code, COMMANDS.md (regenerated) | route unit tests + `scripts/archilyzer-ops.test.mjs` + mcp tests; one `ops-api` route-test sweep; polite scraping in every listing (one stream, real gaps, back off on 429); `docs cli --check` | +| 2 | first | **B — B2 report-to-video** | `r20/b2` | `umtool/report-to-video/**` (operator granted write access 2026-10-09) | apply `$T_OLD/b2-partial/` under `$T_OLD/b2-constraints.md` (`$T_OLD=~/.claude/jobs/c0baff27/tmp`): prune only `chrome/*-frames` + `work-*` after the final mux; `--chrome-only` never rewrites an existing hard-linked segment; `--only` kept; teaser > 34 chars a warning; QR / relative-src errors; the thread/flip validators; plus `fetch-via-editor.mjs`'s 10-min timeout (wait without one, printing queue position — A5's ruling); `test:scripts` ≥ 443 report-to-video tests green. **Does not merge** until the candace owens corpus analysis session reviews it (ruled); the orchestrator sends it the branch + a summary and records the review | +| 2 | after B | **D — release 21 D2, then release 20** | `r20/d2-r20` | D2: `fetchWindowAction` and the saved-video reader (cut a window from a saved container before the network; provenance `saved-video`); R20: `recordedDate`, Twitch id normalization, verify the en-track 0-cues bug and the stats-cache key (report, fix only what the plan rules) | D2: route/action unit tests + one `ops-api` case; R20: per `release-20.md` | + +Track agents: `general-purpose`, model `opus`, briefed with this table row, the plan file of their slice, and the +rules below. They run unit tests and **at most single e2e spec files in the foreground** (Bash timeout 600000; +waiting on the queue is normal — re-run on timeout). The orchestrator runs every full suite (detached, Monitor). + +## The live pilot (after D2 is merged, gated and live) + +On the live editor, through `pnpm ops` (it reads its own token now): +1. `attach-media` dryRun for `the-incredible-salt-mine` (source per release-21.md) — expect ~166 held and matched, + 3 with media but not held, 10 `[LOST]`; record the exact counts. +2. The same without `dryRun`, plus `createRecords` for the 3. `transcribe-one` ×3 queued — they wait on the held lane. +3. MCP `fetch_clip` on a TISM cue → `cached: true`, provenance `saved-video`, no network in the job log. +Stop and record if any count is off by more than a few; do not "fix" by hand. + +## Gates before any fast-forward + +On the `r20/integration` tip: `pnpm typecheck`; `pnpm test`; `archilyzer docs env|files|cli --check`, `settings +example --check`; four builds (each `pnpm heavy`, 5 GB scope; export over the committed fixture compose; umtool +capped with the corpus linked); e2e, one at a time: the full editor suite (start mode — after E lands, the new +default), export default + report + hub, umtool full, homepage. A red is re-run alone before it counts; a red that +stays red blocks the fast-forward. Counts-only privacy greps over `main..r20/integration` (name, email local part, +guarded suffix, home paths, session links/trailers, deployment hashes, corpus data) — every count 0 in files and in +messages written tonight. + +## Fast-forward and rollout (the orchestrator) + +`git merge --ff-only r20/integration` on `main`, then: editor build + restart + smoke (copied r19 scripts, +re-guarded); umtool build + restart when umtool changed; `source publish --check`, then the homepage to production +(the live mirror re-cloned after 5 min and counted); public sites only if the release changes what they serve +(release 20's `recordedDate` may — read the diff of `export/`); live checks per deployed site. The editor restart +closes running jobs as interrupted — tell their sessions. + +## Rules (hard) + +- **No `Claude-Session` trailer or session link, anywhere.** Commits end with `Co-Authored-By: Claude Opus 5.5 (1M + context) <noreply@anthropic.com>` alone. +- Memory floor ≥ 6 GB available before any build, e2e or render; every `next build` capped (5 GB, no swap) and + through `pnpm heavy`; never two at once. e2e detached (`setsid nohup`) with a Monitor; subagents never Monitor, + sleep-loop or poll. +- Never hand-edit `transcripts/**` (writes go through `pnpm ops` / the editor); never boot a second editor against + the real corpus; never print the operator's `~/.config/archilyzer/source-*.txt` (count lines only). +- No yt-dlp or ASR by hand; polite scraping; no expired Twitch VOD re-downloads. +- Private stays private: Candace data local-only; the co-host timeline on jeralyzer-private only; no X channel on a + public site. +- Records state rulings, never reasons; each track adds "as it went" to its plan file; the orchestrator adds the + landing and the rollout. + +## Morning + +`~/reports/overnight-2026-10-10/MORNING.html` (generated, like `make-morning.py`): what landed and where (`main` +sha), each gate with its numbers, the rollout's live checks, the pilot's counts, B2's review state, what is +waiting on the operator (Phase 2 items still open: scrub rule 10 + a homepage republish; publish policies; the +docker builder; pruning the `r18-*` worktrees and merged branches; the D4b network inputs), and the e2e timings +before/after S1. + +## Queued for planning (not tonight) + +- **Reports that cite across sites** (operator request, 2026-10-09): a report may cite any channel in the corpus, + or one another site owns, without that channel joining the citing site's searchable pool — e.g. **cited-only + channels** (the cited moments and clips publish; no browse, search or transcripts) or **cross-site moment links** + into the owning site. Tonight's workaround: jeralyzer-private's pool gained `rev-says-desu` and `hasanabi` + (operator ruling); the polemics sites pad their pools with critics' channels the same way. Start from what + exists: compose's `not-in-site` refusal (ComposeReportsError) and the export's cited-only compose (the report + e2e suite's fixture). A release-23 candidate — planned in the morning, not built tonight. + +## As it went + +(The orchestrator records here.)