Archilyzer · Source

archilyzer

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

commit 80620811587ad9125755a1a429b7f2d6b6acb923
parent aded793b48103864385ee8c72a9ac12ac80dcafb
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Fri,  2 Oct 2026 01:35:55 -0400

plans: slice RL — the re-review's cheap items (R1, R3, R4, R5), R2 and the exit-code nit as follow-ups, the gates before the merge

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

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

diff --git a/plans/release-17.md b/plans/release-17.md @@ -1677,6 +1677,20 @@ Editor unit **109/109**. EDITOR e2e: test:scripts, the build and the full suite were not rerun, as ruled (the fixes touch no `scripts/` or umtool file; the new client code is covered by tsc and the e2e above). +**Re-review (SHIP) → the cheap items before the merge.** + +| finding | fix | +|---|---| +| R1 — a subtitle 429 beside another subtitle failure (`en` 429 + `live_chat` 404) still classed `rate_limit` | `9c01dea2`: `classifyDownloadFailure` drops the subtitle-429 lines before the generic rate-limit test, so the class is the other failure's (`unknown` for the 404, `network` for a 403); a real platform 429 beside them still wins | +| R3 — a manual run that asked the source nothing counted as clean | `9c01dea2`: `runYtdlpMode` counts requests (`requestCounter`, shared through every `{...opts}` copy: the listing, each per-video download, each raw spawn) and calls `onPlatformClean` only when it is above 0 — download-missing with nothing to fetch, or download-missing-subs with every video deferred, no longer lifts a due hold (`platformClean.test.ts`, 2 cases) | +| R4 — `clear-platform-hold` was not a declared kind | `9c01dea2`: declared in `jobKinds.ts` ("Clear rate-limit hold"; not drainable, not replayable, custom queue, neither `needsMedia` nor `needsText`) | +| R5 — "probe due — it waits for a pending video" on a paused lane | `8a59dce6`: a running lane whose gate is held, or idle `lane-held` / `downloads-paused` / `snoozed` / `disk-gate`, says "probe overdue — the lane is paused" | + +**Gates before the merge** (tip `8a59dce6`): tsc clean; common **2641 tests, 2613 pass, 0 fail, 28 +skipped** (main's T1 mover cases); editor unit **109/109**; capped editor build ok (compiled in 17.7 s, +62 s; the fix pass added a `"use server"` module); EDITOR e2e `pacing.spec rumble-sweep.spec +no-subs-fallback.spec rate-limit.spec` (`$T/RL-specs-merge.txt`): run 10 (`RL-e2e10.log`): **12 passed, 0 failed, 2 min**. + **Left, recorded only (follow-ups).** - The video page's own download, the re-acquire backfill and import neither record nor clear a subtitle deferral, so the page's "Left alone … until" note can be stale after a page download fetched @@ -1687,5 +1701,11 @@ umtool file; the new client code is covered by tsc and the e2e above). - umtool's own spawns (`check-availability.mjs`, `build-video.mjs` through `platformArgsForUrl`) run in a separate process and stay at the fixed pace: "every spawn" means every spawn of the editor and the CLI (N12). +- R2: a persistent per-video subtitle 403 is `network`, which escalates the backoff without deferring + the video, so one video can walk a platform into a hold (pre-RL behaviour plus the hold; a clean + manual Sync once the probe is due, or Clear hold, gets out). Follow-up: defer the video when the + only failure is a subtitle line. +- An H1 failure records `ytdlpExitCode: 0` with an `error` (the one attempt that does; the job log + line says why). ## Rollout