Archilyzer · Source

archilyzer

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

commit 946e6f75f25993fc6c9d9fa9ea3dc4c091df3de0
parent b5a1b354a74db59e78ff596343ff157c303933cf
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Thu,  1 Oct 2026 22:14:28 -0400

plans: slice T1's re-review (SHIP), R1 and R2 folded in; FACTS

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

Diffstat:
Mplans/FACTS.md | 6++++--
Mplans/release-17.md | 8++++++++
2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/plans/FACTS.md b/plans/FACTS.md @@ -3888,8 +3888,10 @@ as they were measured. name missing; the link carries the file's mtime (`lutimes`), and the live-chat freshness check and the index's sub-track key (`subsMs`) `lstat` a tierable name, so the index's scan never reaches the media drive; when a tiered live chat's cues are stale the index reads - the raw through `onDrive(mediaDir)` only while the channel's media is `ok`/`in-place`, and otherwise - keeps the cues the last build held (`buildIndex.test.ts` (k): a stalled drive, nothing asked of it). + the raw only while the channel's media is `ok`/`in-place` — one `stat` probe through `onDrive(mediaDir)` + (the watchdog's budget is sized for a stat), then a direct read — and otherwise keeps the cues the last + build held, or, with none, stores `subsMs: null` so the next build retries (`buildIndex.test.ts` (k): a + stalled drive, nothing asked of it; (l): the retry). An EXDEV tier gives the copy the file's times, so `stat` and `lstat` agree. Every deleter of a video-dir entry goes through `removeMediaFile` / `removeVideoDirMedia`. - **`inspectChannelMedia`** now describes the `media` link + `mediaDir`, returns `mediaLink` and diff --git a/plans/release-17.md b/plans/release-17.md @@ -532,4 +532,12 @@ line (finding 12): tip `f3f23792` → `001e9de7`; the shas in the table above ar :391, :484, :1091), the old mover's layout reading `legacy`, nothing else red. Privacy: 0 added lines carry the user or host name. +**Re-review: SHIP**, with R1 and R2 folded in before the merge. R1 (`15acd7c7`): the index read a whole raw +live chat under the watchdog's one-stat budget, and a timeout was never retried. Ruling: it probes the +drive with one `stat` through `onDrive(mediaDir)` and then reads the raw directly, and a track that is +neither read nor kept is stored with `subsMs: null`, so the next build retries it (case (l), +mutation-checked). R2 (`ba24a313`): the classifier calls the hook's media-side temp +(`.<name>.tiering-<pid>`) scratch, and `tierVideoDir` sweeps a dead process's temp from `media/<id>/` while +the tier answers. Gates at `ba24a313`: `buildIndex.test.ts` + the tier tests 72/72; tsc clean; common 2,538 passed, 0 failed, 28 skipped (2,566). + ## Rollout