| 2026-10-10 07:10 | Merge r20/whisper-fix (Clear failure list keeps its log after the list empties) into r20/integration | I Mean I'm Just Saying | 3 | +26 | -5 |
| 2026-10-10 07:10 | plans: release 20 — the whisper red, as it went (Clear failure list unmounted its own log) | I Mean I'm Just Saying | 2 | +13 | -0 |
| 2026-10-10 07:10 | channels: "Clear failure list" keeps its log after the list empties | I Mean I'm Just Saying | 1 | +13 | -5 |
| 2026-10-10 07:01 | Merge main (cf162d7c: umtool song asr-via-ops batching) into r20/integration | I Mean I'm Just Saying | 1 | +85 | -51 |
| 2026-10-10 07:01 | Merge r20/a6-a9 (release 19 A6–A9: archive.org imports and remote listings, cues without an index, publish edges, MCP archival writes) into r20/integration | I Mean I'm Just Saying | 45 | +3768 | -225 |
| 2026-10-10 06:59 | plans: release 19 A6–A9, as shipped (Track A of the overnight batch) | I Mean I'm Just Saying | 2 | +116 | -0 |
| 2026-10-10 06:50 | mcp: archival tools through the editor — get_job, enqueue, channel_coverage, notes (release 19 A9) | I Mean I'm Just Saying | 16 | +1185 | -15 |
| 2026-10-10 06:39 | Merge r20/integration (release 20 D1 recorded dates) into r20/a6-a9 | I Mean I'm Just Saying | 19 | +712 | -1 |
| 2026-10-10 06:39 | publish: the ops build verb takes allowMissingMedia; `publish build <id> --out <dir>` (release 19 A8) | I Mean I'm Just Saying | 10 | +272 | -12 |
| 2026-10-10 06:33 | ops: cues without an index — build-cues, get transcript, and the MCP's get_transcript falls back to the editor (release 19 A7) | I Mean I'm Just Saying | 16 | +805 | -42 |
| 2026-10-10 06:24 | ops: a help paragraph for each of the twelve actions that had none | I Mean I'm Just Saying | 2 | +78 | -12 |
| 2026-10-10 06:22 | ops: archive.org imports take many items or a search; Odysee/BitChute remote listings (release 19 A6) | I Mean I'm Just Saying | 14 | +1326 | -158 |
| 2026-10-10 06:05 | Merge r20/d2-r20 part 2 (release 20 D3 verified closed, D1 recorded dates; D2 Twitch ids held on r20/twitch-ids) into r20/integration | I Mean I'm Just Saying | 19 | +712 | -1 |
| 2026-10-10 06:05 | plans: release 20 D2 held for an operator ruling — the two options, the readers that miss the join; changelog and STATE corrected | I Mean I'm Just Saying | 3 | +27 | -19 |
| 2026-10-10 06:02 | Merge r20/e2e-speed (e2e speed S1–S3: start mode by default with a build stamp, a timing record per run, the slow timers behind test knobs) into r20/integration | I Mean I'm Just Saying | 27 | +1399 | -59 |
| 2026-10-10 06:01 | common: revert release 20 D2 — held for an operator ruling (it changes published Twitch URLs); kept on r20/twitch-ids | I Mean I'm Just Saying | 7 | +5 | -292 |
| 2026-10-10 06:00 | plans: e2e speed S1–S3, as shipped (Track E) | I Mean I'm Just Saying | 3 | +97 | -1 |
| 2026-10-10 05:59 | plans: release 20 D3, D1 and D2, as shipped (the caption-track bug closed, recorded dates, one Twitch id) | I Mean I'm Just Saying | 2 | +88 | -0 |
| 2026-10-10 05:56 | umtool song: asr-via-ops batches every window into one ops transcribe job | I Mean I'm Just Saying | 1 | +85 | -51 |
| 2026-10-10 05:45 | e2e: the editor config names the stamp script's dist dir it mirrors | I Mean I'm Just Saying | 1 | +1 | -0 |
| 2026-10-10 05:31 | e2e: the four slow timers on a test clock (e2e speed S3) | I Mean I'm Just Saying | 13 | +146 | -27 |
| 2026-10-10 05:11 | common: release 20 D2 — one Twitch id: records carry the canonical <n> their directory does, not the native v<n> | I Mean I'm Just Saying | 7 | +292 | -5 |
| 2026-10-10 05:02 | common: release 20 D1 — recorded dates for VOD-mirror channels, read off the title by a per-channel rule | I Mean I'm Just Saying | 14 | +553 | -1 |
| 2026-10-10 05:01 | e2e: a timing record per run, and per-spec deltas against the branch's last (e2e speed S2) | I Mean I'm Just Saying | 9 | +450 | -7 |
| 2026-10-10 04:46 | common: release 20 D3 — the en → 0 cues caption bug is closed; an index test for the fall-through, recorded in FACTS and STATE | I Mean I'm Just Saying | 3 | +63 | -0 |
| 2026-10-10 04:43 | Merge r20/d2-r20 part 1 (release 21 D2: clip windows cut from a saved container) into r20/integration | I Mean I'm Just Saying | 14 | +1045 | -4 |
| 2026-10-10 04:43 | plans: release 21 D2, as shipped (the saved-container tier for clip windows) | I Mean I'm Just Saying | 2 | +63 | -0 |
| 2026-10-10 04:42 | channels: release 21 D2 — a clip window of a saved video is cut from its container, not fetched | I Mean I'm Just Saying | 12 | +982 | -4 |
| 2026-10-10 04:13 | e2e: start mode by default, with a build stamp that cannot be stale (e2e speed S1) | I Mean I'm Just Saying | 11 | +705 | -24 |
| 2026-10-10 03:25 | plans: overnight 2026-10-10 — the next batch run from the primary checkout (e2e speed, B2, A6–A9, D2 + R20, the TISM pilot) | I Mean I'm Just Saying | 1 | +114 | -0 |
| 2026-10-10 02:05 | plans: release 19's rollout (editor, umtool, source mirror + homepage; sites unchanged) | I Mean I'm Just Saying | 1 | +17 | -0 |
| 2026-10-10 01:15 | plans: release 19's privacy line names no deployment hash | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-10-10 01:15 | plans: releases 19 and 21 — the landing's final gates (report 46/46, umtool 21/21 after release 22's fix round) | I Mean I'm Just Saying | 2 | +9 | -3 |
| 2026-10-10 01:15 | reports: near the end, the place the URL names is the part being read while it is on screen | I Mean I'm Just Saying | 5 | +41 | -8 |
| 2026-10-10 01:11 | Merge r19/shapes-fix (release 22's fix round: the sticky view switch, the part being read, umtool's slide URLs, two spec races) into r19/integration | I Mean I'm Just Saying | 11 | +128 | -36 |
| 2026-10-10 01:11 | plans: release 22's fix round — the sticky switch, each first-run failure's cause and fix, final counts | I Mean I'm Just Saying | 1 | +28 | -0 |
| 2026-10-10 01:09 | reports: the part being read is the last place at the top of the reading area (under the sticky bars), not above the top third | I Mean I'm Just Saying | 3 | +18 | -10 |
| 2026-10-10 01:07 | plans: release 19's landing as it went (gates, the two fixes, start-mode e2e 24 min); e2e-speed planned | I Mean I'm Just Saying | 2 | +133 | -0 |
| 2026-10-10 00:55 | reports: the view switch is sticky — under the site's header on the export site, atop the reading column in umtool | I Mean I'm Just Saying | 8 | +69 | -26 |
| 2026-10-10 00:54 | umtool e2e: the evidence walk's first j waits for the keys to be live (a press before hydration was lost) | I Mean I'm Just Saying | 1 | +7 | -2 |
| 2026-10-10 00:54 | umtool: a slides URL that names a place becomes that place's slide (#s-<n>), as on the export site | I Mean I'm Just Saying | 1 | +10 | -2 |
| 2026-10-10 00:46 | export: the phone overview spec reads both boxes in one frame (the focused pair smooth-scrolls between two reads) | I Mean I'm Just Saying | 1 | +8 | -2 |
| 2026-10-10 00:31 | r19 gates: the X fakes read --post-range; the slides parity test lives beside Slide.tsx | I Mean I'm Just Saying | 5 | +153 | -153 |
| 2026-10-09 23:43 | social: an X fetch's limit caps posts (--post-range), not files — --range never stopped a metadata-only walk | I Mean I'm Just Saying | 4 | +11 | -5 |
| 2026-10-09 22:41 | Merge reports/timeline-feeds (a living report's dated entries: the Timeline region, a slide per entry, RSS + JSON feeds) into r19/integration | I Mean I'm Just Saying | 43 | +1628 | -114 |
| 2026-10-09 22:37 | export: the report fixture keeps a timeline; timeline.spec; serve-out applies _headers | I Mean I'm Just Saying | 10 | +300 | -40 |
| 2026-10-09 22:11 | export: the timeline's page test, and a changelog line | I Mean I'm Just Saying | 2 | +39 | -0 |
| 2026-10-09 21:53 | mcp: get_report reads a report's timeline, newest first; `section` may name an entry | I Mean I'm Just Saying | 3 | +64 | -7 |
| 2026-10-09 21:53 | export: a report's Timeline, and Subscribe: RSS · JSON when it has feeds | I Mean I'm Just Saying | 3 | +91 | -6 |
| 2026-10-09 21:53 | report: a timeline's feeds — feed.xml (RSS 2.0) and feed.json (JSON Feed 1.1) | I Mean I'm Just Saying | 8 | +460 | -6 |
| 2026-10-09 21:53 | report: a timeline — dated entries, newest first, in the view, the slides and the exports | I Mean I'm Just Saying | 18 | +676 | -57 |
| 2026-10-09 21:49 | plans: release 18 — the rollout as it went | I Mean I'm Just Saying | 1 | +13 | -0 |
| 2026-10-09 21:13 | Merge hotfix/no-session-ids (release 15's rollout line trimmed) | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-10-09 21:13 | plans: release 15's rollout line trimmed | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-10-09 18:53 | docs: COMMANDS.md regenerated for tracks A, D and E | I Mean I'm Just Saying | 1 | +53 | -5 |
| 2026-10-09 18:52 | Merge track E (release 22 E1–E6: slide fields, the slides view and isometric overview, umtool's switch, slides exports) into r19/integration | I Mean I'm Just Saying | 48 | +5344 | -93 |
| 2026-10-09 18:52 | Merge track D (release 21 D1 attach-media, D3 playable copies + torrents, D4b the last-resort seeder) into r19/integration | I Mean I'm Just Saying | 49 | +6749 | -19 |
| 2026-10-09 18:52 | Merge track A (release 19 A1–A5: ops finds its token, jobs over ops, read side + gated auto-queue control, archival writes, fetch-window queue + dedupe) into r19/integration | I Mean I'm Just Saying | 66 | +4195 | -990 |
| 2026-10-09 18:52 | Merge hotfix/no-session-ids (the rule above the generated block) | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-10-09 18:52 | agents: the session-link rule sits above the generated Next.js block | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-10-09 18:52 | Merge hotfix/no-session-ids (session trailers and links never ship) into r19/integration | I Mean I'm Just Saying | 19 | +1832 | -42 |
| 2026-10-09 18:49 | Merge r19/integration (the release 22 overview ruling) into Track E | I Mean I'm Just Saying | 0 | +0 | -0 |
| 2026-10-09 18:49 | plans: release 22 — Track E as shipped (E1–E5), the overview ruling confirmed; export changelog; PUBLISH.md's exports name the slides | I Mean I'm Just Saying | 3 | +121 | -5 |
| 2026-10-09 18:47 | common, export: slides.html and slides.pdf join a report's exports (release 22 E5) | I Mean I'm Just Saying | 16 | +737 | -31 |
| 2026-10-09 18:43 | umtool: an article read as slides and in the overview, beside its notes; the source tab lints its slides (release 22 E4) | I Mean I'm Just Saying | 7 | +364 | -5 |
| 2026-10-09 18:42 | common, export: the isometric overview — each part of the article beside its slide (release 22 E3) | I Mean I'm Just Saying | 5 | +453 | -15 |
| 2026-10-09 18:42 | common, export: the article as slides — the shared slides, the view switch, the reader (release 22 E2) | I Mean I'm Just Saying | 14 | +2577 | -38 |
| 2026-10-09 18:16 | source: Claude session trailers and links never ship — built-in rules strip them from the mirror's whole history, the audit refuses any left; AGENTS.md says never add them | I Mean I'm Just Saying | 7 | +97 | -12 |
| 2026-10-09 18:07 | plans: release 21 Track D record — D1 attach-media, D3 prepare-playable, D4b the seeder of last resort, as shipped, with the gates and what is owed to the rollout | I Mean I'm Just Saying | 1 | +142 | -0 |
| 2026-10-09 18:06 | common: attachMediaPlan test titles and ids are synthetic throughout | I Mean I'm Just Saying | 1 | +2 | -2 |
| 2026-10-09 18:06 | common: each prepare-playable remux takes the heavy slot (queue-lock --heavy, per video); COMMANDS.md regenerated with the media attach, media playable, seed and tracker rows and the two ops actions | I Mean I'm Just Saying | 4 | +40 | -3 |
| 2026-10-09 18:06 | common: report slides — the slide fields, their rules, and buildReportSlides (release 22 E1) | I Mean I'm Just Saying | 12 | +1109 | -16 |
| 2026-10-09 18:04 | plans: release 19 Track A records — A1 to A5 as shipped, with the gates | I Mean I'm Just Saying | 1 | +154 | -0 |
| 2026-10-09 18:04 | Merge worktree-mk-game-hooks (MK um-song hooks from the original arcade samples; song data under ~/reports; sources linked from the saved-video store) | I Mean I'm Just Saying | 13 | +1735 | -30 |
| 2026-10-09 18:02 | Merge r19/integration into Track D (tracks B and C: the docs cli and COMMANDS.md, the heavy slot, reports check/verify-quotes/attach-video, release 22's plan) before the Track D records; the changelog keeps both sides, Track D first | I Mean I'm Just Saying | 64 | +4005 | -505 |
| 2026-10-09 18:01 | common: the home seeder of last resort — archilyzer seed (WebTorrent 3, TCP + WebRTC through node-datachannel) seeds a torrent only while no other seeder has it; archilyzer tracker; settings.seeder; the docker profile seeder behind a WireGuard namespace; doctor compares egress | I Mean I'm Just Saying | 22 | +2712 | -15 |
| 2026-10-09 17:53 | plans: release 22 — the isometric overview is the operator's meaning (confirmed) | I Mean I'm Just Saying | 1 | +2 | -2 |
| 2026-10-09 17:50 | plans: release 22 planned — one article, two shapes: slides from the same report.json, a reader switch, the isometric overview, slides exports | I Mean I'm Just Saying | 2 | +119 | -1 |
| 2026-10-09 17:46 | docs: COMMANDS.md regenerated for track B's reports and heavy rows | I Mean I'm Just Saying | 1 | +3 | -0 |
| 2026-10-09 17:31 | plans: release 18 — As it went: Wave 0, main merged in again, the gates and the full suite on a837bf85 | I Mean I'm Just Saying | 1 | +16 | -0 |
| 2026-10-09 17:30 | common: stageRun test cancels once the lock wait is announced, not after a fixed 50 ms (raced the announcement under load) | I Mean I'm Just Saying | 1 | +10 | -2 |
| 2026-10-09 17:30 | Merge track B (B6 test economy, B1 the heavy slot, B4 ops transcribe timing + priority, B3 reports check/verify-quotes/attach-video, B5 umtool debts) into r19/integration | I Mean I'm Just Saying | 50 | +2943 | -485 |
| 2026-10-09 17:26 | plans: release 19 Track B records — B6, B1, B4, B3, B5 as shipped, the gates, and B2 not shipped (writes to report-to-video refused) | I Mean I'm Just Saying | 1 | +122 | -0 |
| 2026-10-09 17:24 | common: prepare-playable — each saved container remuxed losslessly into a browser-playable mp4 (+faststart) or webm, one single-file torrent per copy, sha-keyed so a re-run is a no-op | I Mean I'm Just Saying | 16 | +1500 | -1 |
| 2026-10-09 17:13 | Merge track C (C2 OPERATING.md + docs cli, C4 homepage docs, C5 FACTS, the track's record) into r19/integration | I Mean I'm Just Saying | 13 | +914 | -17 |
| 2026-10-09 17:08 | Merge r19/integration into Track B (the release 19-21 plans, track C's doc fixes, the jobKinds test fix) before the Track B records | I Mean I'm Just Saying | 13 | +504 | -16 |
| 2026-10-09 17:08 | umtool: the two-section Note spec waits for its mark before reading notes.json; the edit-guard test takes its kind from the registry | I Mean I'm Just Saying | 4 | +10 | -4 |
| 2026-10-09 17:08 | common: attach-media — a channel's held videos get their media from a local archive (directory, zip read in place, 7z) into the saved-video store, with local-archive provenance | I Mean I'm Just Saying | 19 | +2356 | -1 |
| 2026-10-09 16:46 | editor: the ops route tests' corpus helper opts its fixture paths out of tracing | I Mean I'm Just Saying | 1 | +18 | -18 |
| 2026-10-09 16:45 | plans: release 19's Track C record (C1-C5, as shipped) | I Mean I'm Just Saying | 1 | +37 | -0 |
| 2026-10-09 16:40 | Merge r19/integration into track C (release 21's plan, the jobKinds test fix) before the record commit | I Mean I'm Just Saying | 3 | +186 | -4 |
| 2026-10-09 16:40 | homepage: the Running an archive doc says how to run one from a shell or an agent | I Mean I'm Just Saying | 2 | +29 | -0 |
| 2026-10-09 16:39 | plans: release 21 planned — playable archives (local media for held videos, clip windows cut locally, per-video torrents, a home seeder of last resort behind a VPN; pilot TISM on jeralyzer-private) | I Mean I'm Just Saying | 2 | +181 | -1 |
| 2026-10-09 16:12 | umtool: its own e2e ports per worktree, a hermetic mix.spec, `umtool window` notes its edits, two-block Note, SITES_DIR from the CLI's checkout, /sites is "articles" | I Mean I'm Just Saying | 20 | +446 | -64 |
| 2026-10-09 16:09 | Merge branch 'r19/integration' into worktree-agent-a103bef2ee4055362 | I Mean I'm Just Saying | 12 | +324 | -16 |
| 2026-10-09 16:09 | editor: clip windows get their own queue per platform and are never queued twice | I Mean I'm Just Saying | 12 | +364 | -24 |
| 2026-10-09 16:03 | reports: `reports check`, `reports verify-quotes` and `reports attach-video` on the CLI | I Mean I'm Just Saying | 7 | +962 | -13 |
| 2026-10-09 16:01 | ops: archival writes — settings, publish lane, platform holds, workers, one video, cleanup, relocate dryRun; archilyzer storage report | I Mean I'm Just Saying | 17 | +922 | -37 |
| 2026-10-09 15:56 | transcribe-file: durationMs is the engine's time (waitedMs the queue); a short file waits in the urgent tier | I Mean I'm Just Saying | 5 | +144 | -8 |
| 2026-10-09 15:52 | ops: the read side — settings, storage, sites, workers, lanes, scheduler, cleanup; the lane control route needs the token | I Mean I'm Just Saying | 23 | +507 | -11 |
| 2026-10-09 15:50 | scripts: the heavy slot — one heavy job machine-wide, above a 6 GB memory floor (`pnpm heavy`) | I Mean I'm Just Saying | 11 | +731 | -75 |
| 2026-10-09 15:48 | editor: ops-api.spec's request/response tests become route unit tests | I Mean I'm Just Saying | 13 | +946 | -823 |
| 2026-10-09 15:45 | tests: move pure and route-handler e2e to unit tests; root pnpm test and pnpm typecheck | I Mean I'm Just Saying | 10 | +532 | -325 |
| 2026-10-09 15:42 | ops: the /jobs list and its row buttons over pnpm ops | I Mean I'm Just Saying | 8 | +536 | -8 |
| 2026-10-09 15:42 | plans: FACTS for main's October work outside release 18; release 19 moves the ops route tests to A2b and B2 after B5 | I Mean I'm Just Saying | 2 | +118 | -7 |
| 2026-10-09 15:41 | docs: OPERATING.md, the agent's guide to running an archive, over a generated COMMANDS.md (archilyzer docs cli) | I Mean I'm Just Saying | 9 | +730 | -10 |
| 2026-10-09 15:40 | ops: pnpm ops reads its token from editor/.env; --wait asks /api/ops/job/<id> | I Mean I'm Just Saying | 8 | +769 | -90 |
| 2026-10-09 15:28 | Merge track C (C1 plans hygiene, C3 doc fixes) into r19/integration | I Mean I'm Just Saying | 11 | +319 | -13 |
| 2026-10-09 15:20 | docs: the MCP README lists list_tags; the README's docs table names AGENTS and the generated key references | I Mean I'm Just Saying | 2 | +7 | -0 |
| 2026-10-09 15:19 | plans: releases 19 and 20 planned, PLAN.md indexes releases 17-22, STATE as of 2026-10-09, the October merges recorded | I Mean I'm Just Saying | 9 | +312 | -13 |
| 2026-10-09 15:15 | common: jobKinds test — fetch-windows is drainable but not an ingest kind (it writes only the clip cache the index never reads) | I Mean I'm Just Saying | 1 | +5 | -3 |
| 2026-10-09 15:11 | Merge main into r18/integration (umtool articles + notes, ops transcribe with word timings, fetch-windows, metadata refresh, channel create/rename/delete over ops); the changelogs keep both sides, r18 first | I Mean I'm Just Saying | 204 | +17456 | -394 |
| 2026-10-09 14:19 | Merge umtool/articles (every site's articles + media in umtool, operator notes an agent reads back, a better video editor) | I Mean I'm Just Saying | 101 | +9264 | -74 |
| 2026-10-09 14:17 | umtool: articles and the notes inbox declare kinds on the registry, never by id | I Mean I'm Just Saying | 4 | +11 | -4 |
| 2026-10-09 13:57 | Merge main into umtool/articles | I Mean I'm Just Saying | 30 | +1641 | -111 |
| 2026-10-09 13:29 | Merge ops-transcribe-words (pnpm ops transcribe returns word timings with "words": true) | I Mean I'm Just Saying | 8 | +137 | -1 |
| 2026-10-09 05:15 | Merge umtool/threads-polish (dim dots ahead; outcomes wait for the rail) | I Mean I'm Just Saying | 2 | +21 | -7 |
| 2026-10-09 05:15 | threads: a card shows its clips as dim dots ahead, and an outcome waits for the rail to come back | I Mean I'm Just Saying | 2 | +21 | -7 |
| 2026-10-09 04:05 | Merge umtool/headless-no-display (the renderer runs without a display) | I Mean I'm Just Saying | 2 | +20 | -2 |
| 2026-10-09 04:05 | compose-chrome: the renderer runs without DISPLAY or WAYLAND_DISPLAY | I Mean I'm Just Saying | 2 | +20 | -2 |
| 2026-10-09 03:58 | umtool: integration fixes, and the docs for timed notes, the guard and structural edits | I Mean I'm Just Saying | 5 | +78 | -6 |
| 2026-10-09 03:55 | Merge umtool/report-video-threads (thread rail, flips panel, panning screenshots, the date always shows) | I Mean I'm Just Saying | 13 | +1443 | -26 |
| 2026-10-09 03:47 | umtool: the article video takes timed notes; "Add to video" from a citation | I Mean I'm Just Saying | 9 | +267 | -21 |
| 2026-10-09 03:43 | Merge umtool/articles-b (Track B: timed notes, row notes, generated guard, take notes, structural edits) | I Mean I'm Just Saying | 37 | +3028 | -46 |
| 2026-10-09 03:42 | Merge umtool/articles-a (Track A: /sites, article reader, notes, evidence, workspace files) | I Mean I'm Just Saying | 33 | +3503 | -8 |
| 2026-10-09 03:35 | umtool e2e: the article specs compile their routes before the first test | I Mean I'm Just Saying | 4 | +38 | -0 |
| 2026-10-09 03:32 | umtool: a teaser being edited is not reset by the reload a save sets off | I Mean I'm Just Saying | 1 | +18 | -8 |
| 2026-10-09 03:19 | report-to-video README: the thread rail, the flips panel, panning screenshots, a source line that keeps its date | I Mean I'm Just Saying | 1 | +63 | -3 |
| 2026-10-09 03:18 | umtool: notes capability on the kind registry; the timeline's token race | I Mean I'm Just Saying | 6 | +30 | -8 |
| 2026-10-09 03:16 | umtool song: asr-via-ops -- word timings around each note, through pnpm ops transcribe | I Mean I'm Just Saying | 1 | +108 | -0 |
| 2026-10-09 03:13 | umtool song: link-sources replaces fetch-sources -- the editor's persist-videos fetches, this links | I Mean I'm Just Saying | 2 | +113 | -139 |
| 2026-10-09 03:10 | umtool: an article's records resolve once each, in parallel | I Mean I'm Just Saying | 1 | +27 | -14 |
| 2026-10-09 03:08 | ops transcribe: "words": true returns the engine's word timings | I Mean I'm Just Saying | 8 | +137 | -1 |
| 2026-10-09 02:58 | umtool: docs/sites.md | I Mean I'm Just Saying | 1 | +85 | -0 |
| 2026-10-09 02:57 | umtool: the article reader -- anchored notes, evidence, the evidence walk | I Mean I'm Just Saying | 12 | +1770 | -0 |
| 2026-10-09 02:54 | Merge branch 'main' into worktree-mk-game-hooks | I Mean I'm Just Saying | 951 | +142737 | -6158 |
| 2026-10-09 02:54 | umtool song: MK hooks from the original arcade samples; song data under ~/reports | I Mean I'm Just Saying | 12 | +1653 | -30 |
| 2026-10-09 02:52 | Merge editor/no-lead-paragraphs (page titles lose their lead paragraphs; /channels' header wraps instead of squeezing) | I Mean I'm Just Saying | 10 | +27 | -82 |
| 2026-10-09 02:52 | umtool: e2e for timed notes, edit notes and timeline edits | I Mean I'm Just Saying | 4 | +353 | -1 |
| 2026-10-09 02:51 | Merge branch 'main' into editor/no-lead-paragraphs | I Mean I'm Just Saying | 13 | +1353 | -20 |
| 2026-10-09 02:48 | umtool: timeline editor, structure editors, generated-manifest banner, row notes | I Mean I'm Just Saying | 9 | +653 | -18 |
| 2026-10-09 02:44 | report-to-video: a flips panel -- THEN and NOW, back to back | I Mean I'm Just Saying | 6 | +542 | -12 |
| 2026-10-09 02:43 | umtool: timed notes, take notes, notes components | I Mean I'm Just Saying | 10 | +612 | -5 |
| 2026-10-09 02:42 | umtool: /sites -- every site's articles, site pages, media and workspace files | I Mean I'm Just Saying | 19 | +1597 | -8 |
| 2026-10-09 02:40 | umtool: edit notes on generated manifests, the moment resolver, the timeline route | I Mean I'm Just Saying | 18 | +755 | -88 |
| 2026-10-09 02:37 | report-to-video: the date always shows, tall posts pan, and a thread rail | I Mean I'm Just Saying | 9 | +850 | -23 |
| 2026-10-09 02:36 | umtool: structural manifest writers (move, remove, duplicate, insert, teaser, posts, fact-check, undo) | I Mean I'm Just Saying | 5 | +690 | -1 |
| 2026-10-09 02:33 | docs: operator notes (umtool/docs/notes.md, AGENTS.md, REPORT.md) | I Mean I'm Just Saying | 5 | +133 | -2 |
| 2026-10-09 02:32 | common: a report's notes.json is never published, exported or committed to history | I Mean I'm Just Saying | 1 | +28 | -0 |
| 2026-10-09 02:31 | umtool S7: `umtool notes` CLI, agent digest, /api/notes/context | I Mean I'm Just Saying | 5 | +489 | -0 |
| 2026-10-09 02:27 | umtool S0: /api/notes, useNotes, e2e SITES_DIR fixture | I Mean I'm Just Saying | 8 | +214 | -4 |
| 2026-10-09 02:26 | umtool S0: notes store, SITES_DIR, corpus-notes predicate, source discovery | I Mean I'm Just Saying | 14 | +1553 | -23 |
| 2026-10-09 00:30 | Merge ops-transcribe (transcribe one local file through the editor's workers) | I Mean I'm Just Saying | 13 | +1353 | -20 |
| 2026-10-09 00:30 | ops transcribe: test the route's token, keys and refusals | I Mean I'm Just Saying | 1 | +86 | -0 |
| 2026-10-09 00:28 | ops: transcribe one local file through the editor's workers | I Mean I'm Just Saying | 12 | +1267 | -20 |
| 2026-10-08 15:51 | editor: page titles lose their lead paragraphs; /channels' header wraps instead of squeezing | I Mean I'm Just Saying | 10 | +27 | -82 |
| 2026-10-08 03:33 | Merge citations/bracketed-labels (a cite label may hold an editorial [insertion]) | I Mean I'm Just Saying | 6 | +23 | -5 |
| 2026-10-08 03:33 | citations: a cite label may hold an editorial [insertion] | I Mean I'm Just Saying | 6 | +23 | -5 |
| 2026-10-08 01:10 | Merge reports/report-video (a report can carry a video) | I Mean I'm Just Saying | 11 | +126 | -4 |
| 2026-10-08 01:09 | reports: a report can carry a video, played under its header | I Mean I'm Just Saying | 11 | +126 | -4 |
| 2026-10-08 00:39 | Merge fetch-windows-rumble-gap (Rumble windows 120 s apart, across runs) | I Mean I'm Just Saying | 3 | +92 | -22 |
| 2026-10-08 00:39 | fetch-windows: Rumble windows 120 s apart, across runs, paced by the URL | I Mean I'm Just Saying | 3 | +92 | -22 |
| 2026-10-08 00:31 | Merge fetch-window-rumble-picky-first (one Rumble page load per window) | I Mean I'm Just Saying | 3 | +56 | -11 |
| 2026-10-08 00:31 | fetch-window: a rumble.com window sends -extension_picky 0 on the first try | I Mean I'm Just Saying | 3 | +56 | -11 |
| 2026-10-08 00:22 | Merge fetch-window-url-platform-args (a window's URL picks its platform args) | I Mean I'm Just Saying | 3 | +34 | -2 |
| 2026-10-08 00:22 | fetch-window: a video's own URL picks its platform args, not its channel's | I Mean I'm Just Saying | 3 | +34 | -2 |
| 2026-10-07 21:56 | Merge fetch-windows-platform-queue (a window's own URL picks its queue) | I Mean I'm Just Saying | 2 | +17 | -9 |
| 2026-10-07 21:56 | fetch-windows: a window's own URL picks its queue, not its channel's | I Mean I'm Just Saying | 2 | +17 | -9 |
| 2026-10-07 21:51 | Merge fetch-windows (a paced batch of clip windows, one job per platform) | I Mean I'm Just Saying | 27 | +2207 | -49 |
| 2026-10-07 21:50 | fetch-window e2e: the batch case waits out the clip-window gap | I Mean I'm Just Saying | 1 | +4 | -2 |
| 2026-10-07 21:46 | fetch-windows: /jobs row names who asked, for what, and how many windows | I Mean I'm Just Saying | 2 | +37 | -1 |
| 2026-10-07 21:44 | fetch-windows: a paced batch of clip windows, one job per platform | I Mean I'm Just Saying | 25 | +2167 | -47 |
| 2026-10-07 18:44 | Merge fetch-window-rumble-hls (editor clip windows from Rumble retry with -extension_picky 0) | I Mean I'm Just Saying | 2 | +127 | -5 |
| 2026-10-07 18:44 | fetch-window: retry a Rumble window once with -extension_picky 0 | I Mean I'm Just Saying | 2 | +127 | -5 |
| 2026-10-07 17:17 | Merge kf-capture-live-media (forum capture downloads the media a post's page holds now) | I Mean I'm Just Saying | 2 | +65 | -7 |
| 2026-10-07 17:17 | capture: a forum post's media is what its page holds now, beside the archive's | I Mean I'm Just Saying | 2 | +65 | -7 |
| 2026-10-07 17:13 | Merge x-older-from (older X walk can start at a date; Kiwi Farms player uploads are video media) | I Mean I'm Just Saying | 10 | +135 | -15 |
| 2026-10-07 17:13 | posts: older X walk can start at a date; Kiwi Farms player uploads are video media | I Mean I'm Just Saying | 10 | +135 | -15 |
| 2026-10-07 16:06 | Merge feat/teaser-lead (a teaser line can carry a small tier above it) | I Mean I'm Just Saying | 4 | +56 | -7 |
| 2026-10-07 16:06 | report-to-video: a teaser line can carry a small tier above it (lead) | I Mean I'm Just Saying | 4 | +56 | -7 |
| 2026-10-07 15:01 | Merge feat/teaser-together (a teaser line's second tier pops with it, on one hit) | I Mean I'm Just Saying | 3 | +56 | -12 |
| 2026-10-07 15:01 | report-to-video: a teaser line's second tier can pop with it, on one hit (together) | I Mean I'm Just Saying | 3 | +56 | -12 |
| 2026-10-07 14:48 | Merge feat/teaser-replace (teaser rows that change in place, per-line role and hold) | I Mean I'm Just Saying | 4 | +202 | -21 |
| 2026-10-07 14:48 | report-to-video: teaser rows that say several things in turn (replace), a line's own role, hold | I Mean I'm Just Saying | 4 | +202 | -21 |
| 2026-10-07 03:19 | Merge feat/umtool-takes (umtool: alternative renders of part of a cut, side by side, judged) | I Mean I'm Just Saying | 13 | +1234 | -0 |
| 2026-10-07 03:18 | umtool: takes -- alternative renders of part of a cut, side by side, judged | I Mean I'm Just Saying | 13 | +1234 | -0 |
| 2026-10-07 02:20 | Merge feat/channel-management-ops (rename/delete a social channel from its page; create/rename/delete/sites over ops) | I Mean I'm Just Saying | 14 | +824 | -70 |
| 2026-10-07 02:20 | channels: rename and delete a social channel from its page; channel lifecycle over ops | I Mean I'm Just Saying | 14 | +824 | -70 |
| 2026-10-07 00:44 | plans: release 18 — As it went: the Eva tags' scope and the re-gate after main moved again | I Mean I'm Just Saying | 1 | +6 | -0 |
| 2026-10-07 00:36 | Merge main into r18/integration (refresh one video's metadata, posts read their slug from the directory, in-page report links); the changelog keeps both sides | I Mean I'm Just Saying | 24 | +1448 | -10 |
| 2026-10-07 00:36 | Merge tags/site-scope (a curated tag can exist on some sites only: the Eva tags on Anilyzer alone) | I Mean I'm Just Saying | 12 | +313 | -10 |
| 2026-10-07 00:36 | e2e: the /tags Sites box saves sites (sorted, deduplicated) and reads it back; plans: STATE owes the Eva tags' data change | I Mean I'm Just Saying | 2 | +16 | -0 |
| 2026-10-07 00:30 | tags: a curated tag can exist on some sites only (sites) — derived only on those sites' channels, dropped from every other site's summaries, counts and /tags.json | I Mean I'm Just Saying | 10 | +297 | -10 |
| 2026-10-06 23:48 | Merge reports/in-page-links (a #<id> link in report markdown stays in the tab) | I Mean I'm Just Saying | 2 | +13 | -1 |
| 2026-10-06 23:48 | reports: a #<id> link in report markdown stays in the tab | I Mean I'm Just Saying | 2 | +13 | -1 |
| 2026-10-06 22:56 | Merge feat/refresh-video-metadata (refresh one video's metadata from the video page and over ops) | I Mean I'm Just Saying | 20 | +1396 | -8 |
| 2026-10-06 22:22 | metadata: a refresh refuses a video with no data/<id>/ rather than create one | I Mean I'm Just Saying | 9 | +99 | -81 |
| 2026-10-06 22:16 | metadata: refresh one video's metadata from the video page and over ops | I Mean I'm Just Saying | 21 | +1384 | -14 |
| 2026-10-06 20:39 | Merge fix/post-slug-from-dir (a renamed social channel's posts read as their new slug) | I Mean I'm Just Saying | 3 | +39 | -1 |
| 2026-10-06 20:39 | posts: a post's channel and slug come from the directory it is read from | I Mean I'm Just Saying | 3 | +39 | -1 |
| 2026-10-06 18:37 | plans: release 18 — Rollout, As it went: step 4's final gates (the whole editor suite 715/3/12, the three alone 3/0), step 5 owed | I Mean I'm Just Saying | 1 | +22 | -0 |
| 2026-10-06 18:37 | editor: the site picker stamps data-hydrated, and site-scope.spec's charts test waits for it (a pick before hydration was lost: two long-run failures) | I Mean I'm Just Saying | 2 | +11 | -1 |
| 2026-10-06 17:34 | Merge r18/records (slice S6: the records) | I Mean I'm Just Saying | 16 | +929 | -228 |
| 2026-10-06 17:34 | docs: release 18's records — PUBLISH.md around the stages, AGENTS.md's runtime container, FACTS' The publish stages (+17 superseded markers), STATE's Now, the generated docs from their sources, the changelogs folded; plans: S6 as shipped, open questions settled, rulings, carried-over follow-ups | I Mean I'm Just Saying | 16 | +929 | -228 |
| 2026-10-06 17:28 | Merge r18/surfaces (slice S4: the /sites Publish panel, /operations/publish, POST|GET /api/ops/publish and the eight aliases, pnpm ops publish, the site form's publish policy, the run-wide Cancel; the index judged by its settings signature) | I Mean I'm Just Saying | 83 | +3645 | -2842 |
| 2026-10-06 17:28 | plans: release 18 — slice S4, as shipped (the publish surfaces), and the index's settings signature in What makes the index stale | I Mean I'm Just Saying | 1 | +152 | -0 |
| 2026-10-06 17:14 | publish: the S4 review's fixes — a console's Cancel is its run's; another run's job is never this run's; the docker build updates a stale index first; the ops and CLI edges | I Mean I'm Just Saying | 30 | +244 | -116 |
| 2026-10-06 17:01 | e2e: setup and teardown drop an export/out link into test-transcripts (a build stage's, left dangling by resetData, failed a bare export next build) | I Mean I'm Just Saying | 3 | +29 | -0 |
| 2026-10-06 16:54 | e2e: the alerts are filtered past Next's route announcer; the job page's first compile gets 30 s; changelog: the surfaces fold into Publishing is stages and The publish lane | I Mean I'm Just Saying | 4 | +12 | -8 |
| 2026-10-06 16:43 | e2e: publish.spec and publish-lane.spec; ops-api, jobs and duplicate-shorts on the publish stages | I Mean I'm Just Saying | 6 | +596 | -108 |
| 2026-10-06 16:38 | e2e: the publish stages' seams — EXPORT_NEXT_BIN (a fake next build), the fake wrangler's mode sidecar, ARCHILYZER_BRANCH=main; specs for the moved labels | I Mean I'm Just Saying | 13 | +267 | -131 |
| 2026-10-06 16:36 | publish: build.ts loses the pre-stage entry points (buildSite, deploySite, buildAll, deployHub, deployHomepage, the docker all-phases) | I Mean I'm Just Saying | 6 | +37 | -827 |
| 2026-10-06 16:31 | ops: pnpm ops publish (a verb in the body) and pnpm ops get publish; the eight build/deploy actions named as its aliases | I Mean I'm Just Saying | 2 | +49 | -8 |
| 2026-10-06 16:30 | cli: deploy hub / deploy homepage are aliases of publish hub|homepage --deploy-only (through the deploy stage) | I Mean I'm Just Saying | 3 | +68 | -48 |
| 2026-10-06 16:29 | editor: /operations/publish (the lane's runner, hold, settings and plan) and a site's publish policy on its form | I Mean I'm Just Saying | 8 | +491 | -0 |
| 2026-10-06 16:26 | editor: the /sites Publish panel, the site Publish tab and the ops API as publish stages | I Mean I'm Just Saying | 28 | +1550 | -1599 |
| 2026-10-06 16:18 | publish: the deploy stage's request checks are resolveDeployRequest (asked before a job exists by the surfaces); a stage ends "Done" | I Mean I'm Just Saying | 2 | +63 | -24 |
| 2026-10-06 16:15 | publish: the index is judged by the settings it reads (a signature in the stamp), not the settings file's mtime | I Mean I'm Just Saying | 9 | +120 | -6 |
| 2026-10-06 16:13 | editor: the chore-card pin leaves the transcript reader out (it lives in ./cards, and is read, never run) | I Mean I'm Just Saying | 1 | +7 | -1 |
| 2026-10-06 16:08 | Merge main into r18/integration (multi-track captions, en-track fallback, Wayback, Odysee/BitChute spacing); the changelog keeps both sides, release 18's bullets first | I Mean I'm Just Saying | 76 | +4230 | -176 |
| 2026-10-06 15:50 | Merge sources/odysee-gap (a one-off Odysee or BitChute import waits a floor after the last one there; the BitChute import spec's refresh race) | I Mean I'm Just Saying | 8 | +264 | -18 |
| 2026-10-06 15:50 | e2e: a second BitChute import is clicked until refused, and BitChute is asked once | I Mean I'm Just Saying | 1 | +19 | -6 |
| 2026-10-06 15:41 | Merge r18/publish-lane (slice S3: the publish status view and planner, stage enqueueing with on-disk preconditions, the publish lane runner, settings.publish and site publish policy, publish-* job kinds, publish status/now) | I Mean I'm Just Saying | 38 | +4392 | -16 |
| 2026-10-06 15:40 | plans: release 18 — slice S3, as shipped (the publish status, the stage queue, the publish lane); the changelog's Publish lane and One index for every site | I Mean I'm Just Saying | 2 | +154 | -0 |
| 2026-10-06 15:30 | Merge transcripts/multi-track (every English track searchable; the reader and MCP choose a track; alternates only where words differ) | I Mean I'm Just Saying | 36 | +1525 | -50 |
| 2026-10-06 15:29 | imports: a one-off Odysee or BitChute import waits a floor after the last one there | I Mean I'm Just Saying | 7 | +245 | -12 |
| 2026-10-06 15:27 | cli: archilyzer publish status [--json] and publish now | I Mean I'm Just Saying | 3 | +217 | -2 |
| 2026-10-06 15:27 | editor: the publish lane's runner starts at boot (below the idle gate); Retry re-enqueues a publish stage from its spec | I Mean I'm Just Saying | 2 | +33 | -0 |
| 2026-10-06 15:27 | publish: readPublishStatus, enqueueStage / enqueuePublishRun, and the publish lane's runner | I Mean I'm Just Saying | 7 | +1715 | -0 |
| 2026-10-06 15:21 | tracks: labels for tracks YouTube named, and en-<region>-orig | I Mean I'm Just Saying | 4 | +49 | -16 |
| 2026-10-06 15:14 | Merge branch 'r18/integration' into r18/publish-lane | I Mean I'm Just Saying | 34 | +4892 | -452 |
| 2026-10-06 15:14 | publish: the publish status and the publish plan — one pure builder every surface and the lane read | I Mean I'm Just Saying | 3 | +1460 | -0 |
| 2026-10-06 15:13 | settings: settings.publish (the publish lane) and site.json publish.auto; the publish pipeline lane and its pause gate | I Mean I'm Just Saying | 15 | +459 | -11 |
| 2026-10-06 15:13 | jobs: the seven publish-* stage kinds, the auto-publish runner, label-only entries for the kinds release 18 stops creating; publish stages read "run <id> · <target>" on /jobs and are never re-queued at boot | I Mean I'm Just Saying | 6 | +354 | -3 |
| 2026-10-06 14:55 | Merge r18/deploy-hardening (slice S2, cleanup: a symlink-safe local-deploy destination guard, exit 3 for every precondition, malformed-token Cloudflare codes in the auth classifier) | I Mean I'm Just Saying | 7 | +160 | -65 |
| 2026-10-06 14:55 | plans: release 18 — S2's last cleanup (the malformed-token codes) and the gates after merging S5 complete | I Mean I'm Just Saying | 1 | +4 | -0 |
| 2026-10-06 14:54 | common: a malformed Cloudflare token reads as REFUSED too (codes 6003, 6111) | I Mean I'm Just Saying | 2 | +14 | -2 |
| 2026-10-06 14:51 | Merge r18/integration (S5 complete) into r18/deploy-hardening | I Mean I'm Just Saying | 6 | +168 | -30 |
| 2026-10-06 14:51 | plans: release 18 — S2's round-2 cleanups; the changelog drops the hub-regression bullet (in no release) and names the private-only channels | I Mean I'm Just Saying | 2 | +19 | -5 |
| 2026-10-06 14:51 | Merge r18/docker-publish (slice S5, third round: the doctor's wrangler and cloudflare-auth checks through the deploy's own helpers; the container smoke with the pinned wrangler) | I Mean I'm Just Saying | 6 | +168 | -30 |
| 2026-10-06 14:51 | publish: the local deploy's destination guard resolves symlinks and refuses export/, the builds and the corpus; deploy exit codes agree with needs() | I Mean I'm Just Saying | 3 | +123 | -58 |
| 2026-10-06 14:50 | plans: S5 third round — the wrangler check, cloudflare-auth through the preflight, the deploy refusals in the container; the doctor's changelog bullet | I Mean I'm Just Saying | 2 | +43 | -4 |
| 2026-10-06 14:40 | doctor: the wrangler a deploy spawns, run for its major; cloudflare-auth through the deploy's own preflight | I Mean I'm Just Saying | 4 | +125 | -26 |
| 2026-10-06 14:36 | Merge r18/deploy-hardening (slice S2: pinned wrangler with --branch, credential preflight and auth classifier, the deploy stage with live check and deployed.json, X tombstones + no-store headers, the fake wrangler; the hub bundle check refuses report data, not the app's own routes) | I Mean I'm Just Saying | 31 | +4347 | -400 |
| 2026-10-06 14:35 | plans: release 18 — S2's wiring round (the merges, the deploy stages wired, the hub blocker); the changelog's hub bullet | I Mean I'm Just Saying | 2 | +55 | -0 |
| 2026-10-06 14:17 | offline index reads alternate tracks; one canHoldAltTracks | I Mean I'm Just Saying | 5 | +40 | -14 |
| 2026-10-06 14:11 | Merge r18/integration (S5 second half) into r18/deploy-hardening | I Mean I'm Just Saying | 5 | +286 | -15 |
| 2026-10-06 14:08 | Merge r18/docker-publish (slice S5, second half: publish-lock and index-stamp doctor checks, node graded against wrangler's floor, one imageBuildFacts; the container smoke — index, build, local deploy, source publish --check) | I Mean I'm Just Saying | 5 | +287 | -27 |
| 2026-10-06 14:07 | plans: S5 second half — publish-lock, index-stamp, built.json bytes, node vs wrangler; the publish-stage and source --check smoke in the container; the doctor's changelog bullet | I Mean I'm Just Saying | 2 | +40 | -2 |
| 2026-10-06 14:03 | common: a hub bundle is refused for report DATA, not for the export app's own reports/ and m/ routes | I Mean I'm Just Saying | 2 | +136 | -4 |
| 2026-10-06 14:03 | publish: the deploy stages are runDeployStage; S1's stamp types and readers | I Mean I'm Just Saying | 7 | +141 | -313 |
| 2026-10-06 14:00 | docs + export e2e: alternate tracks | I Mean I'm Just Saying | 6 | +101 | -2 |
| 2026-10-06 13:58 | doctor: publish-lock, index-stamp, export-builds from built.json bytes, and node against the pinned wrangler's floor | I Mean I'm Just Saying | 3 | +247 | -25 |
| 2026-10-06 13:57 | Merge r18/integration (S1 stage core, S5 image half) into r18/deploy-hardening | I Mean I'm Just Saying | 42 | +6222 | -216 |
| 2026-10-06 13:55 | editor: the video page reads its transcript, with the track switcher | I Mean I'm Just Saying | 4 | +167 | -0 |
| 2026-10-06 13:55 | mcp: search reads every English track; get_transcript takes an optional track | I Mean I'm Just Saying | 4 | +200 | -14 |
| 2026-10-06 13:55 | search + viewer: every English track is searched, and the reader switches tracks | I Mean I'm Just Saying | 10 | +174 | -16 |
| 2026-10-06 13:51 | index: alternate English tracks ride on the transcript record where their words differ | I Mean I'm Just Saying | 9 | +822 | -16 |
| 2026-10-06 13:51 | Merge r18/stage-core (slice S1: the stage contract — stamps, the publish lock, per-target bundles, update-index/build/deploy stage bodies, the publish CLI rows and aliases) | I Mean I'm Just Saying | 24 | +4803 | -103 |
| 2026-10-06 13:50 | plans: release 18 — slice S1 review fixes (the table, the re-gates); the changelog says deploy all's skips and the no-branch refusal | I Mean I'm Just Saying | 2 | +47 | -16 |
| 2026-10-06 13:45 | publish: deploy all skips only private and project-less sites, fails on every other refusal; an interrupted install is restored first; built.json goes before the swap; a second signal kills the child groups (review MEDIUM 3 + LOWs) | I Mean I'm Just Saying | 8 | +200 | -14 |
| 2026-10-06 13:42 | publish: a run's no-op build no longer holds its deploy; built.checkedAt; production refuses a null branch; ARCHILYZER_BRANCH/COMMIT win over git (review MEDIUM 1, a LOW, the S4 seam) | I Mean I'm Just Saying | 5 | +148 | -19 |
| 2026-10-06 13:39 | publish: the lock's host is ARCHILYZER_HOST_ID (else the hostname); a pid whose process started after the lock was taken is not its holder; a foreign host's lock says how to clear it (review MEDIUM 2) | I Mean I'm Just Saying | 3 | +100 | -10 |
| 2026-10-06 13:36 | publish: inputSig covers what the export build renders — the resolved social links, the hub url, buildArchives and the footer's sibling sites (review HIGH) | I Mean I'm Just Saying | 3 | +85 | -11 |
| 2026-10-06 13:34 | Merge r18/docker-publish (slice S5: a fixed host id for the publish lock; SETUP.md names Node 22 for deploying) | I Mean I'm Just Saying | 6 | +26 | -3 |
| 2026-10-06 13:33 | plans: S5 review fixes — the editor's publish-lock identity; SETUP's Node line | I Mean I'm Just Saying | 1 | +4 | -1 |
| 2026-10-06 13:33 | docs: SETUP — Node 22: deploying runs the pinned wrangler, which refuses anything older | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-10-06 13:33 | docker: the editor's publish-lock identity is fixed (ARCHILYZER_HOST_ID=archilyzer-editor) — a container's hostname changes on every recreate | I Mean I'm Just Saying | 4 | +21 | -1 |
| 2026-10-06 13:32 | plans: release 18 — S2 review fixes recorded; deviations from the plan; the hub wording in the changelog | I Mean I'm Just Saying | 2 | +80 | -17 |
| 2026-10-06 13:30 | Merge r18/docker-publish (slice S5: the image runs Node 22 in the build stage and every runtime — the pinned wrangler's floor) | I Mean I'm Just Saying | 5 | +74 | -9 |
| 2026-10-06 13:29 | plans, docs: S5 — Node 22 in the review-fixes record (v22.23.3 in the container, native modules load); RUNNING_IN_DOCKER names it | I Mean I'm Just Saying | 2 | +12 | -2 |
| 2026-10-06 13:29 | Merge transcripts/en-track-fallback (one caption-track rule: en-orig first, empty tracks fall through; cue-block VTTs parse; one-shot index re-read) | I Mean I'm Just Saying | 24 | +1121 | -107 |
| 2026-10-06 13:28 | common: review fixes — the hub never names a private-only X channel; deploy targets pinned; usage exit 2; Cancel reaches the live check | I Mean I'm Just Saying | 8 | +374 | -73 |
| 2026-10-06 13:23 | docker: the image runs Node 22 everywhere — the pinned wrangler's engines floor; one major for the build stage and every runtime | I Mean I'm Just Saying | 3 | +62 | -7 |
| 2026-10-06 13:19 | captions: an unversioned cues.json is stale only where the rule reads other words | I Mean I'm Just Saying | 6 | +81 | -32 |
| 2026-10-06 13:17 | plans: release 18 — slice S1 (stage core) as shipped; the editor changelog | I Mean I'm Just Saying | 2 | +161 | -0 |
| 2026-10-06 13:11 | Merge sources/wayback (Wayback captures named by what they copy; wayback.json provenance; wayback refresh; archived-copy links) | I Mean I'm Just Saying | 22 | +1330 | -11 |
| 2026-10-06 13:10 | plans: release 18 — slice S2 (deploy hardening) as shipped; the editor changelog | I Mean I'm Just Saying | 2 | +196 | -0 |
| 2026-10-06 13:07 | wayback refresh: a lane pick whose outcome sidecar is newer has finished | I Mean I'm Just Saying | 2 | +27 | -5 |
| 2026-10-06 13:06 | Merge r18/docker-publish (slice S5, image half: the runtime image publishes — python/pipx/git-filter-repo, yt-dlp substitution, build stamps, doctor checks, compose overlays) | I Mean I'm Just Saying | 18 | +1332 | -91 |
| 2026-10-06 13:06 | plans: release 18 — S5 review fixes; only the runtime target was built (vulkan, cuda left for the rollout); the second half's added items | I Mean I'm Just Saying | 1 | +29 | -1 |
| 2026-10-06 13:04 | wayback: the video page and a citation say a record is an archived copy | I Mean I'm Just Saying | 7 | +135 | -4 |
| 2026-10-06 13:04 | wayback refresh: an auto-queue lane's newest picks of the channel are held too | I Mean I'm Just Saying | 2 | +38 | -5 |
| 2026-10-06 13:01 | wayback refresh: bring imported Wayback copies up to the rules, offline | I Mean I'm Just Saying | 7 | +657 | -1 |
| 2026-10-06 12:57 | common: the homepage's local deploy is ARCHILYZER_HOMEPAGE_OUT; the preflight is a token or a wrangler login; a stale posts manifest goes | I Mean I'm Just Saying | 8 | +95 | -40 |
| 2026-10-06 12:57 | gitignore: export/out, now a symlink to the bundle built last (a directory pattern does not match a link) | I Mean I'm Just Saying | 1 | +3 | -0 |
| 2026-10-06 12:56 | docs: RUNNING_IN_DOCKER — the image has no gitleaks or stagit, so a container's source publish skips the secret scan (with its warning) and the history pages | I Mean I'm Just Saying | 1 | +7 | -1 |
| 2026-10-06 12:56 | doctor: YTDLP_AUTO_UPDATE is read with the entrypoint's exact-match rule (1, true, yes, on as written); RUNNING_IN_DOCKER says so | I Mean I'm Just Saying | 3 | +11 | -2 |
| 2026-10-06 12:55 | docker: the source overlay's mount is long-form with create_host_path: false — a missing host .git fails `up` instead of becoming an empty root-owned dir | I Mean I'm Just Saying | 1 | +11 | -2 |
| 2026-10-06 12:51 | wayback: a capture is named by what it is a copy of, and says so | I Mean I'm Just Saying | 8 | +483 | -6 |
| 2026-10-06 12:50 | publish: stamps fall back to the image's ARCHILYZER_COMMIT/BRANCH without a .git; deploy-homepage --to local writes ARCHILYZER_HOMEPAGE_OUT | I Mean I'm Just Saying | 3 | +42 | -12 |
| 2026-10-06 12:49 | docs: the caption-track rule — changelogs, README, PUBLISH | I Mean I'm Just Saying | 4 | +11 | -3 |
| 2026-10-06 12:48 | editor: Set as transcript pins the pick, so it beats en-orig | I Mean I'm Just Saying | 3 | +14 | -8 |
| 2026-10-06 12:47 | index: a one-shot caption-track pass re-reads exactly the records the rule reaches | I Mean I'm Just Saying | 2 | +266 | -7 |
| 2026-10-06 12:47 | captions: one caption-track rule — en-orig first, then the first track with cues | I Mean I'm Just Saying | 11 | +629 | -86 |
| 2026-10-06 12:47 | vtt: read cue-block captions — a VTT with no word timing is no longer zero cues | I Mean I'm Just Saying | 4 | +154 | -5 |
| 2026-10-06 12:46 | plans: release 18 — slice S5 (image half) as shipped; the editor changelog | I Mean I'm Just Saying | 2 | +142 | -0 |
| 2026-10-06 12:41 | publish: tests for the stage core — needs() per row, argv both ways, the bundle install (EXDEV), inputSig, the stages over a scratch corpus, tree-kill, the CLI rows and aliases | I Mean I'm Just Saying | 6 | +1097 | -0 |
| 2026-10-06 12:34 | publish: the seven stages, their runner and the CLI rows (stage, publish index|build|deploy|hub|homepage) | I Mean I'm Just Saying | 6 | +1828 | -45 |
| 2026-10-06 12:34 | publish: per-target bundles — build into export/out, install as <exportBuildsDir>/<id>/out, link export/out to it | I Mean I'm Just Saying | 2 | +280 | -12 |
| 2026-10-06 12:33 | docs: RUNNING_IN_DOCKER — publishing runs in the container (exec, not run --rm), Cloudflare from .env, the homepage and its /source mount, substituting yt-dlp, the two runners, a Windows checklist | I Mean I'm Just Saying | 1 | +187 | -22 |
| 2026-10-06 12:33 | docker: the entrypoint makes ARCHILYZER_CONFIG_DIR (700, empty) on the first boot, so `docker compose cp` has somewhere to put the rules | I Mean I'm Just Saying | 1 | +7 | -0 |
| 2026-10-06 12:27 | common: the deploy stage (runDeployStage) and the live check; the e2e fake wrangler | I Mean I'm Just Saying | 10 | +1634 | -7 |
| 2026-10-06 12:25 | docker: .env.example names the publish credentials, the yt-dlp substitution and the source mirror's mount | I Mean I'm Just Saying | 1 | +70 | -1 |
| 2026-10-06 12:24 | doctor: which yt-dlp, the publish credentials (set or not), room for the bundles, the source repository and the config dir | I Mean I'm Just Saying | 4 | +466 | -3 |
| 2026-10-06 12:24 | docker: the runtime image publishes — python, pipx and a pinned git-filter-repo; a yt-dlp substitution hook; build stamps | I Mean I'm Just Saying | 10 | +355 | -61 |
| 2026-10-06 12:24 | publish: source publish reads ARCHILYZER_SOURCE_REPO before looking for a checkout | I Mean I'm Just Saying | 2 | +52 | -3 |
| 2026-10-06 12:20 | common: withdrawn X posts ship tombstones, served no-store (site and hub) | I Mean I'm Just Saying | 10 | +750 | -11 |
| 2026-10-06 12:18 | publish: the stamp files and the publish lock (release 18 stage core) | I Mean I'm Just Saying | 5 | +839 | -0 |
| 2026-10-06 12:14 | common: wrangler pinned (4.147.0, common devDependency); every deploy names its branch | I Mean I'm Just Saying | 7 | +1200 | -237 |
| 2026-10-06 12:14 | common: dirSignature moves to lib/dirSignature.ts, unchanged (compose imports it) | I Mean I'm Just Saying | 2 | +55 | -46 |
| 2026-10-06 12:01 | plans: release 18 — publishing as queueable stages (the plan, record file) | I Mean I'm Just Saying | 1 | +358 | -0 |
| 2026-10-06 11:37 | Merge sources/bitchute (BitChute as a platform: detection, polite import and pacing, native player, relabel pass) | I Mean I'm Just Saying | 34 | +896 | -40 |
| 2026-10-06 11:37 | import: a BitChute or archive.org URL runs on its platform's queue from the channel page too; e2e for a BitChute import | I Mean I'm Just Saying | 4 | +76 | -8 |
| 2026-10-06 11:29 | docs: BitChute — README section, CHANNEL.md platform list, MCP README, changelogs | I Mean I'm Just Saying | 6 | +28 | -3 |
| 2026-10-06 11:29 | index: a record labelled before its platform was known is relabelled — once, from LMDB, no schema bump | I Mean I'm Just Saying | 4 | +274 | -4 |
| 2026-10-06 11:24 | sources: import a BitChute video politely; play its file; BitChute in the channel form and the duplicates page | I Mean I'm Just Saying | 6 | +212 | -13 |
| 2026-10-06 11:22 | sources: BitChute is a platform (bitchute) — detection, ids, the extractor's label, the playable file, polite pacing | I Mean I'm Just Saying | 17 | +311 | -17 |
| 2026-10-06 06:22 | Merge sources/archive-org-dir-dates (file records dated by name or folder) | I Mean I'm Just Saying | 5 | +36 | -5 |
| 2026-10-06 06:22 | archive.org: a file record is dated by its name, else its folder (one folder per upload) | I Mean I'm Just Saying | 5 | +36 | -5 |
| 2026-10-05 23:19 | Merge sources/archive-org-titles (archive.org file records: clean titles and upload dates from the file name; archive-org refresh) | I Mean I'm Just Saying | 10 | +551 | -6 |
| 2026-10-05 23:18 | archive.org: a name-only mirror is dated by its file name's YYYYMMDD; refresh-titles becomes refresh | I Mean I'm Just Saying | 13 | +430 | -311 |
| 2026-10-05 23:12 | archive.org: one file of a multi-file item is titled from its file name; refresh-titles CLI | I Mean I'm Just Saying | 10 | +431 | -5 |
| 2026-10-05 22:59 | Merge media/clip-past-end (prepare and compose share the clamped cited span) | I Mean I'm Just Saying | 3 | +24 | -16 |
| 2026-10-05 22:59 | reports: prepare and compose share one cited span (clamped to the recording's end), so a clip cut at the end is not stale | I Mean I'm Just Saying | 3 | +24 | -16 |
| 2026-10-05 22:51 | Merge media/clip-past-end (report evidence clips stop at the recording's end) | I Mean I'm Just Saying | 4 | +32 | -1 |
| 2026-10-05 22:51 | reports: a cited moment's clip stops at the recording's end when its padding runs past it | I Mean I'm Just Saying | 4 | +32 | -1 |
| 2026-10-05 21:46 | Merge posts/forum-mirror-hosts | I Mean I'm Just Saying | 5 | +42 | -4 |
| 2026-10-05 21:43 | Merge report/header-card | I Mean I'm Just Saying | 24 | +289 | -297 |
| 2026-10-05 21:43 | posts: a forum's mirror domains are one forum — a page saved from kiwifarms.net imports into a kiwifarms.st channel | I Mean I'm Just Saying | 5 | +42 | -4 |
| 2026-10-05 21:41 | docs: unreleased records describe the report, export, history, forum and archive.org work as it is | I Mean I'm Just Saying | 5 | +42 | -43 |
| 2026-10-05 21:41 | reports: two-line name, depth-only tier markers, the claim's sentence alone, the added mark under its number | I Mean I'm Just Saying | 19 | +231 | -249 |
| 2026-10-05 21:26 | reports: the subject card's author, publisher and date each stay whole on a narrow screen | I Mean I'm Just Saying | 4 | +17 | -6 |
| 2026-10-05 20:47 | Merge report/header-card (report header: our heading, one date/revision line, the reviewed document as a citation card) | I Mean I'm Just Saying | 18 | +279 | -284 |
| 2026-10-05 20:47 | reports: the header is the name, one date line, and the document as a card | I Mean I'm Just Saying | 18 | +279 | -284 |
| 2026-10-05 20:07 | Merge sources/archive-org-torrent (archive.org files over BitTorrent via aria2c, seeded; verified direct-download fallback; no yt-dlp for archive.org) | I Mean I'm Just Saying | 32 | +2952 | -264 |
| 2026-10-05 20:06 | sources: aria2c hash-checks only a resumed torrent; its DHT notice is never the failure | I Mean I'm Just Saying | 3 | +20 | -4 |
| 2026-10-05 20:02 | docs: archive.org over BitTorrent — README (aria2c, seeding defaults, the fallback), changelog | I Mean I'm Just Saying | 2 | +25 | -4 |
| 2026-10-05 20:02 | sources: archive.org import comments name the torrent path, not yt-dlp | I Mean I'm Just Saying | 2 | +13 | -8 |
| 2026-10-05 20:00 | sources: tests for the archive.org torrent ladder | I Mean I'm Just Saying | 7 | +985 | -3 |
| 2026-10-05 19:55 | sources: archive.org files over BitTorrent when possible, else a direct download — no yt-dlp | I Mean I'm Just Saying | 23 | +1916 | -252 |
| 2026-10-05 19:49 | Merge report/history (per-report revision history: a bare git repo per report, history page + history.json, dumb-HTTP clone, revision footer) | I Mean I'm Just Saying | 27 | +2171 | -57 |
| 2026-10-05 19:45 | reports: the fixture site has two revisions; e2e checks the revision line, the history page and a git clone; Reports tab shows the revision; docs | I Mean I'm Just Saying | 15 | +449 | -42 |
| 2026-10-05 19:38 | reports: compose publishes each report's history (history.json + a dumb-HTTP clone); the history page; the report's revision line | I Mean I'm Just Saying | 11 | +466 | -30 |
| 2026-10-05 19:33 | reports: per-report revision history — a bare git store beside report.json, a revision per changed export | I Mean I'm Just Saying | 6 | +1285 | -14 |
| 2026-10-05 19:32 | Merge sources/archive-org (archive.org items and files as a video/audio source: polite import, provenance, file player, archive.org + torrent links on citations) | I Mean I'm Just Saying | 46 | +2936 | -26 |
| 2026-10-05 19:26 | sources: an archive.org import asks nothing while archive.org is held or cooling down; a rate limit backs the platform off | I Mean I'm Just Saying | 3 | +28 | -0 |
| 2026-10-05 19:22 | Merge report/exports (per-report HTML, PDF, Markdown and evidence-pack exports; reports-export job; shared publish size limit) | I Mean I'm Just Saying | 42 | +2999 | -77 |
| 2026-10-05 19:20 | sources: the provenance sidecar is the prefetch's own file; a test that the step runs only after a prefetch that succeeded | I Mean I'm Just Saying | 2 | +83 | -0 |
| 2026-10-05 19:18 | Merge posts/forum-threads (XenForo threads as a posts source: paced fetch, saved-page import, forum session Connect, post capture) | I Mean I'm Just Saying | 52 | +4455 | -174 |
| 2026-10-05 19:15 | docs: archive.org items — README section with operator steps, CHANNEL.md platform list, changelogs | I Mean I'm Just Saying | 6 | +42 | -3 |
| 2026-10-05 19:14 | sources: import from archive.org in the editor; play the file; citations link archive.org and the torrent | I Mean I'm Just Saying | 16 | +471 | -12 |
| 2026-10-05 19:10 | reports: the exports mirror the report page — tiers, flags, evidence by origin, the source rail | I Mean I'm Just Saying | 4 | +329 | -125 |
| 2026-10-05 19:10 | Merge main (report/polish) into report/exports | I Mean I'm Just Saying | 22 | +922 | -103 |
| 2026-10-05 19:07 | posts: a forum walk with a cursor catches up from the last page first; pages over ops; e2e | I Mean I'm Just Saying | 6 | +177 | -38 |
| 2026-10-05 19:05 | sources: archive.org items are a platform (archiveorg) — ids, detection, provenance sidecar, polite client, import controller | I Mean I'm Just Saying | 23 | +2312 | -11 |
| 2026-10-05 19:04 | Merge report/polish (claim flag; series line; byline + our attribution; source rail; citation origin; three reading tiers) | I Mean I'm Just Saying | 22 | +915 | -102 |
| 2026-10-05 18:59 | editor, mcp, docs: forum-thread channels — create, fetch latest pages, Connect, import | I Mean I'm Just Saying | 17 | +375 | -20 |
| 2026-10-05 18:55 | posts: forum threads (XenForo) as a posts source — parser, paced walk, import, capture | I Mean I'm Just Saying | 31 | +3934 | -147 |
| 2026-10-05 18:13 | reports: a fact-check reads in three tiers — the quick take, what the check found, every claim | I Mean I'm Just Saying | 12 | +390 | -51 |
| 2026-10-05 18:03 | reports: a citation's origin — what the report added comes first and marked, what the subject gave folds away | I Mean I'm Just Saying | 14 | +175 | -17 |
| 2026-10-05 18:03 | docs: report exports — plans/report-sites.md "Exports", PUBLISH.md, changelogs | I Mean I'm Just Saying | 4 | +54 | -2 |
| 2026-10-05 18:02 | reports: the reports-export job, the Reports tab's Exports, and the downloads line | I Mean I'm Just Saying | 22 | +577 | -45 |
| 2026-10-05 17:59 | reports: the reviewed document's sentences sit on a rail in its colour instead of linking up to its box | I Mean I'm Just Saying | 11 | +86 | -15 |
| 2026-10-05 17:59 | reports: tests for the exports — renderers, the host step, compose's publish gate | I Mean I'm Just Saying | 4 | +349 | -2 |
| 2026-10-05 17:56 | reports: export a report as files (report.html, report.pdf, report.md, evidence-pack.zip) | I Mean I'm Just Saying | 14 | +1814 | -33 |
| 2026-10-05 17:55 | reports: the title carries the reviewed document's byline; ours ("Fact-check by <site>") sits under it | I Mean I'm Just Saying | 10 | +172 | -22 |
| 2026-10-05 17:47 | reports: a series is its own line above the title (still inside the heading) | I Mean I'm Just Saying | 6 | +16 | -12 |
| 2026-10-05 17:46 | reports: a claim may carry a flag (a quiet accent pill on its card); a one-report site's home tab names the report | I Mean I'm Just Saying | 16 | +99 | -8 |
| 2026-10-05 17:24 | Merge report/series (report series tag; no index of one; lean index cards) | I Mean I'm Just Saying | 17 | +107 | -36 |
| 2026-10-05 17:24 | reports: an optional series leads the title in the accent (one line: <series>: <title>); one report = no index (/reports/ forwards home); index entries drop counts and tally; HOST declared | I Mean I'm Just Saying | 17 | +107 | -36 |
| 2026-10-05 17:05 | Merge export/single-report (one report = the home page; index without a duplicate title) | I Mean I'm Just Saying | 8 | +71 | -33 |
| 2026-10-05 17:05 | export: a report-only site with one report opens on it (no nav links); the multi-report home drops its duplicate title; shell pages link home | I Mean I'm Just Saying | 8 | +71 | -33 |
| 2026-10-05 16:47 | export: serve-out binds HOST when set (a private site can stay on this machine) | I Mean I'm Just Saying | 1 | +4 | -1 |
| 2026-10-05 16:32 | Merge site/search-toggle (site.json search switch replaces publish; search off = report-only; export start serves moment dirs) | I Mean I'm Just Saying | 36 | +326 | -273 |
| 2026-10-05 16:32 | changelogs: the unreleased report-site bullets describe the search switch, not publish | I Mean I'm Just Saying | 2 | +2 | -3 |
| 2026-10-05 16:24 | docs: the search switch and serve-out in PUBLISH.md, the report-sites ruling, changelogs | I Mean I'm Just Saying | 4 | +17 | -8 |
| 2026-10-05 16:24 | export: `start` serves out/ with scripts/serve-out.mjs (moment dirs served, not listed) | I Mean I'm Just Saying | 6 | +123 | -108 |
| 2026-10-05 16:23 | site.json: a per-site `search` switch replaces `publish`; report-only is search off | I Mean I'm Just Saying | 26 | +185 | -155 |
| 2026-10-05 15:58 | Merge umtool/post-card-marks (post cards: accent, logo, flag) | I Mean I'm Just Saying | 5 | +95 | -20 |
| 2026-10-05 15:58 | umtool: a post card's own marks -- accent (rail, rim, flag colour), logo (top corner, above the QR) and flag (a short label above its words or picture) | I Mean I'm Just Saying | 5 | +95 | -20 |
| 2026-10-05 14:17 | Merge umtool/deck-overlap (posts ride the whole clip, shotMaxHeight, web platform, per-post variant; snapLead/snapTail) | I Mean I'm Just Saying | 8 | +157 | -20 |
| 2026-10-05 14:17 | umtool: posts can ride the whole clip (posts.at "start"), shotMaxHeight, a "web" platform and per-post variant; snapLead/snapTail keep a pause's breath at the cut | I Mean I'm Just Saying | 8 | +157 | -20 |
| 2026-10-05 11:23 | e2e: export-search's filter checkboxes are located by exact name (a result titled with a filter's word has its own checkbox) | I Mean I'm Just Saying | 1 | +17 | -17 |
| 2026-10-05 09:57 | plans: report sites built (R0–R8) | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-10-05 09:31 | Merge report-r8-e2e (cited report-site e2e: 19 specs against a real static build of a fixture site, the out/ audit on that build; pnpm --filter export run e2e:report) | I Mean I'm Just Saying | 26 | +733 | -15 |
| 2026-10-05 09:28 | export: the cited report-site suite — the report index as home, the report (verdicts, tally, still, numbered cites with hover/focus previews, Escape, reference anchors, downloads), the three moment kinds with media that 200s, the reports-only shell pages; every page held to no corpus request and no missing file; the audit against the real out/ | I Mean I'm Just Saying | 8 | +464 | -7 |
| 2026-10-05 09:26 | Merge feed-metadata-backfill (archilyzer feeds backfill-metadata: a podcast feed's titles, dates and descriptions onto feed-imported records, through a history-recorded metadata writer; job kind + ops route) | I Mean I'm Just Saying | 18 | +1618 | -2 |
| 2026-10-05 09:25 | records: the feed backfill's [Unreleased] bullet at the end of the section | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-10-05 09:25 | feed metadata backfill: archilyzer feeds backfill-metadata, POST /api/ops/feed-metadata, pnpm ops feed-metadata; [Unreleased] bullet | I Mean I'm Just Saying | 7 | +142 | -0 |
| 2026-10-05 09:24 | Merge report-r5-consumers (readers read a cited corpus as empty and name its reports; MCP list_reports/get_report; a cited site is never listed by the hub or homepage) | I Mean I'm Just Saying | 25 | +1124 | -15 |
| 2026-10-05 09:23 | export: the fixture report cites its source inline once (a source citation's preview has a marker to open from) | I Mean I'm Just Saying | 2 | +2 | -2 |
| 2026-10-05 09:23 | records: [Unreleased] bullets (export, homepage, editor), PUBLISH.md on how the family and the contract's readers treat a cited site, the plan's compose notes | I Mean I'm Just Saying | 5 | +15 | -2 |
| 2026-10-05 09:22 | export: a stage for the cited fixture site — copies export/app and its config beside a public/ of the fixture's views, media and compose's own contract files, builds it for real outside export/, audits the out/; the e2e:report suite's config and port | I Mean I'm Just Saying | 10 | +250 | -2 |
| 2026-10-05 09:22 | umtool cues: a cited report site is named as such (it publishes no transcripts), not reported as a missing channel | I Mean I'm Just Saying | 2 | +21 | -0 |
| 2026-10-05 09:22 | common: backfill a podcast channel's record metadata from its RSS feed | I Mean I'm Just Saying | 8 | +1065 | -2 |
| 2026-10-05 09:22 | hub and homepage: a cited report site is never listed (isListedSite) — no hub member, no homepage card, total or channel-sites entry, no footer link; a full site with reports is listed as before; SITE.md regenerated | I Mean I'm Just Saying | 9 | +97 | -10 |
| 2026-10-05 09:21 | mcp: list_reports and get_report read a site's cited reports; list_channels, list_sources and resolve_source say "cited-only site: N report(s)" rather than an empty corpus | I Mean I'm Just Saying | 6 | +588 | -2 |
| 2026-10-05 09:18 | export: the fixture's audio moment names its clip as compose does (.m4a) | I Mean I'm Just Saying | 4 | +5 | -3 |
| 2026-10-05 09:18 | common: a small RSS feed reader (items: title, pubDate, enclosure, guid, itunes:duration, description) with a fixture feed | I Mean I'm Just Saying | 3 | +411 | -0 |
| 2026-10-05 09:17 | archive readers: a cited corpus (spec 5) reads as an empty corpus and names its reports — scope(), reports(), reportPage() on the local and remote readers; a cited local dir never falls back to a transcripts/ listing | I Mean I'm Just Saying | 3 | +403 | -1 |
| 2026-10-05 09:17 | export: the fixture report site carries a post's shot and its two evidence clips (committed, a few KB of test pattern and tone) | I Mean I'm Just Saying | 8 | +17 | -6 |
| 2026-10-05 08:41 | Merge report-r4b-page-size (a report page holds each source once, archive links once (collapsed) plus per-claim matches, one shared citation map for inline previews; a size test) | I Mean I'm Just Saying | 15 | +580 | -223 |
| 2026-10-05 08:40 | report pages: a document once — sources map, source citations by id, archive links collapsed under the document and matched per claim; one citation map per page for the inline markers; a size test on a 400-citation report | I Mean I'm Just Saying | 15 | +580 | -223 |
| 2026-10-05 07:56 | common: a report quote is checked against every transcript of the record, and its moment shows the one that matched (a served en track can be a rewrite) | I Mean I'm Just Saying | 2 | +41 | -7 |
| 2026-10-05 07:39 | Merge report-r3-compose (compose writes reports + moments with computed quote verification; a cited site prunes the corpus and always emits site.json/corpus.json (spec 5); the cited out/ allowlist audit guards build and deploy) | I Mean I'm Just Saying | 22 | +2095 | -37 |
| 2026-10-05 07:34 | records: PUBLISH.md on composing reports and the cited scope; [Unreleased] bullets | I Mean I'm Just Saying | 3 | +29 | -1 |
| 2026-10-05 07:33 | common: tests — compose over a temp corpus (exact files, prune, contract, verification, drift, missing and stale media, full-site colocation), the cited audit, the build env | I Mean I'm Just Saying | 3 | +695 | -0 |
| 2026-10-05 07:30 | common: compose's reports stage (publish/composeReports.ts) — resolve, verify and write a site's reports, moments, cited media and stills; a cited site composes only them, pruning the corpus; --allow-missing-media | I Mean I'm Just Saying | 6 | +889 | -14 |
| 2026-10-05 07:30 | common: the cited out/ allowlist audit — builtSiteProblem and builtBundleProblem refuse a cited build holding anything but reports, moments, cited media and the shell; a full build of a site now cited is refused; build site fails on either; the hub drops reports/m/media | I Mean I'm Just Saying | 3 | +215 | -10 |
| 2026-10-05 07:30 | common: corpus spec 5 — corpus.json announces reports, a cited site says site.scope cited with its audience; llms.txt lists reports, and a cited site gets its own variant | I Mean I'm Just Saying | 5 | +121 | -12 |
| 2026-10-05 07:23 | common: quote verification (lib/citations/verify.ts) — token recall of a quote against its cue window or its post, one method string, a drift threshold | I Mean I'm Just Saying | 2 | +146 | -0 |
| 2026-10-05 07:38 | Merge report-r6-converters (sweep markdown, /ask answers and report-to-video manifests convert into the report/citation model; reports convert back to a starter manifest; archilyzer reports convert / to-manifest) | I Mean I'm Just Saying | 17 | +2681 | -65 |
| 2026-10-05 07:38 | records: REPORT.md on making a report from what exists; PUBLISH.md row; report-to-video README on converting and an image's quote; an [Unreleased] bullet | I Mean I'm Just Saying | 5 | +35 | -0 |
| 2026-10-05 07:35 | common: tests for the converters' disk callbacks and the reports convert / to-manifest CLI | I Mean I'm Just Saying | 1 | +212 | -0 |
| 2026-10-05 07:34 | common: converter tests — links, spans from cues, the markdown engine, /sweep, /ask, manifest both ways and the round trips | I Mean I'm Just Saying | 2 | +619 | -1 |
| 2026-10-05 07:32 | common: report converters — /sweep markdown, /ask answers and report-to-video manifests into report.json, and a report into a starter manifest; archilyzer reports convert / to-manifest | I Mean I'm Just Saying | 7 | +1711 | -0 |
| 2026-10-05 07:30 | Merge report-r7-editor-tab (the editor's Reports tab: reports + drafts with problems, publish/unpublish/reorder via a locked patchSite, Prepare evidence media) | I Mean I'm Just Saying | 14 | +1058 | -9 |
| 2026-10-05 07:27 | editor changelog: the Reports tab | I Mean I'm Just Saying | 1 | +1 | -0 |
| 2026-10-05 07:27 | editor: a site's Reports tab — reports and drafts with their problems, publish/unpublish/reorder, Prepare evidence media | I Mean I'm Just Saying | 11 | +997 | -7 |
| 2026-10-05 07:27 | site: patchSite, a locked read-modify-write of some keys of site.json | I Mean I'm Just Saying | 2 | +60 | -2 |
| 2026-10-05 07:25 | common: sentence widening moves to lib/cueWiden.mjs; resolve-windows re-exports it | I Mean I'm Just Saying | 3 | +105 | -65 |
| 2026-10-05 07:16 | Merge report-r4-pages (report + moment pages, shared citation components: inline cites with previews, kind-aware cards, reference lists, verification badges, verdict chips; the cited site's shell) | I Mean I'm Just Saying | 41 | +3535 | -32 |
| 2026-10-05 07:16 | export: a moment's back-link to a report's summary says Summary | I Mean I'm Just Saying | 2 | +2 | -1 |
| 2026-10-05 07:13 | Merge report-r2-media (evidence media for report sites: one source lookup in common, the 720p evidence cutter, cited-only post captures, archilyzer reports prepare + job + ops route) | I Mean I'm Just Saying | 23 | +2233 | -258 |
| 2026-10-05 07:13 | report views carry a claim's title and a source's note; the report page heads a claim with its title and quotes the claim under it; the fixture uses both | I Mean I'm Just Saying | 6 | +22 | -5 |
| 2026-10-05 07:11 | export: a cited home never loads the transcripts module; lint fixes; an [Unreleased] bullet for report and moment pages | I Mean I'm Just Saying | 5 | +12 | -4 |
| 2026-10-05 07:11 | common: component tests pass children as props; VerdictChip tests | I Mean I'm Just Saying | 2 | +43 | -6 |
| 2026-10-05 07:01 | export: /reports/, /reports/<id>/ and /m/<key>/ from the views; Reports header link; a cited site's shell (report index home, no search, ask, downloads or duplicates); fixture report site | I Mean I'm Just Saying | 29 | +1801 | -27 |
| 2026-10-05 07:01 | common: shared citation components — InlineCite with preview, CitationCard, ReferenceList, VerificationBadge, CitedMarkdown; VerdictChip and VerdictTally | I Mean I'm Just Saying | 8 | +881 | -4 |
| 2026-10-05 07:01 | common: report and moment page views (lib/report/views.ts) — the JSON compose writes and the export pages read; buildReportPageView, paths, placeholders | I Mean I'm Just Saying | 2 | +789 | -0 |
| 2026-10-05 07:11 | records: PUBLISH.md on reports prepare; an [Unreleased] bullet | I Mean I'm Just Saying | 2 | +13 | -0 |
| 2026-10-05 07:11 | editor: the reports-prepare job kind (needsMedia, its own queue, replayable), POST /api/ops/reports-prepare and pnpm ops reports-prepare | I Mean I'm Just Saying | 8 | +169 | -0 |
| 2026-10-05 07:11 | common: archilyzer reports prepare <site> — every cited moment's clip or capture into .export-index/sites/<site>/report-media/, an index.json manifest and every problem listed | I Mean I'm Just Saying | 4 | +640 | -0 |
| 2026-10-05 07:11 | common: publish/citedPostCaptures.ts copies only the cited posts' captures; the posts-media guard allows exactly that module | I Mean I'm Just Saying | 3 | +297 | -7 |
| 2026-10-05 07:11 | common: the evidence cutter (lib/evidenceClip-server.ts): a cited span's media from the corpus tiers, cut accurately to 720p or .m4a, cached by source identity + span + profile, refused over 24 MiB | I Mean I'm Just Saying | 2 | +661 | -0 |
| 2026-10-05 06:50 | common: the corpus half of the local-source lookup (lib/evidenceClip.mjs); report-to-video's sources.mjs and cutArgs take it from there | I Mean I'm Just Saying | 4 | +453 | -251 |
| 2026-10-05 06:50 | common: a report claim may carry a short title; a source may carry a note | I Mean I'm Just Saying | 4 | +6 | -0 |
| 2026-10-05 06:39 | common: a site's report ids use the report document's id rule — one definition | I Mean I'm Just Saying | 1 | +5 | -3 |
| 2026-10-05 06:36 | Merge report-r0-schema (the citation model in common/lib/citations and the report document in common/lib/report: schemas, validation, moment keys, inline cites, cited-in index, one verdict vocabulary; CITATIONS.md + REPORT.md) | I Mean I'm Just Saying | 23 | +2379 | -36 |
| 2026-10-05 06:33 | records: an [Unreleased] bullet for the report document and the citation model | I Mean I'm Just Saying | 1 | +1 | -0 |
| 2026-10-05 06:28 | common: the report document (lib/report/): schema, validation, reading order, cited-in index; REPORT.md + CITATIONS.md generated | I Mean I'm Just Saying | 12 | +1155 | -6 |
| 2026-10-05 06:18 | common: the citation model (lib/citations/): schema, validation, moment keys, inline cites | I Mean I'm Just Saying | 5 | +1072 | -0 |
| 2026-10-05 06:17 | common: the verdict vocabulary moves to common/lib/report/verdicts.mjs; factcheck.mjs takes it from there | I Mean I'm Just Saying | 5 | +151 | -30 |
| 2026-10-05 06:16 | Merge report-r1-site-keys (site.json publish: full | cited and an ordered reports list; the site form's Publish control) | I Mean I'm Just Saying | 8 | +259 | -0 |
| 2026-10-05 06:14 | editor: the site form's Publish control and a read-only Reports list; the save keeps the stored reports; an [Unreleased] bullet | I Mean I'm Just Saying | 5 | +131 | -0 |
| 2026-10-05 06:11 | common: site.json `publish` ("full" | "cited") and `reports` (ordered report ids); SITE.md regenerated | I Mean I'm Just Saying | 3 | +128 | -0 |
| 2026-10-05 06:10 | plans: report sites in progress | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-10-05 06:10 | plans: report sites — the citation system is the core (one model, inline syntax, shared components, back-links, round trip) | I Mean I'm Just Saying | 1 | +23 | -3 |
| 2026-10-05 06:09 | plans: report sites — a site's reports, cited-only publishing and moment pages | I Mean I'm Just Saying | 1 | +156 | -0 |
| 2026-10-05 05:50 | Merge chunked-xfade (report-to-video assembles a long cut in crossfaded batches, then joins them: bounded memory, same frames) | I Mean I'm Just Saying | 4 | +440 | -16 |
| 2026-10-05 05:48 | records: report-to-video README on the batched crossfade (render.xfadeBatch, REPORT_VIDEO_XFADE_BATCH, xfade-batches/); an [Unreleased] bullet | I Mean I'm Just Saying | 2 | +24 | -3 |
| 2026-10-05 05:48 | report-to-video: a long cut is crossfaded in batches, then the batch files are crossfaded together | I Mean I'm Just Saying | 2 | +416 | -13 |
| 2026-10-05 05:16 | Merge fix/scan-excludes-members-only (a metadata-scan members-only or private verdict keeps a video out of the auto-download queue) | I Mean I'm Just Saying | 3 | +88 | -1 |
| 2026-10-05 05:16 | common: a metadata-scan members-only or private verdict keeps a video out of the download queue | I Mean I'm Just Saying | 3 | +88 | -1 |
| 2026-10-05 02:10 | Merge x-empty-account-drain (X fetches: an older walk refuses an account that shows no posts unless forced, stops after two empty windows when nothing is archived; Drain stops a fetch at the next resume point) | I Mean I'm Just Saying | 17 | +620 | -27 |
| 2026-10-05 02:09 | editor: fetch-posts takes force (route, action, replay, pnpm ops usage) and passes the job's drain; an empty-account older walk is refused before any job; a route test; the [Unreleased] bullet | I Mean I'm Just Saying | 7 | +113 | -8 |
| 2026-10-05 02:07 | common: tests for the empty-account refusal (+force), the two-empty-window stop, the year rule with posts found, and drain mid-page, mid-wait, mid-window and in the gap | I Mean I'm Just Saying | 4 | +357 | -6 |
| 2026-10-05 02:04 | common: fetchPosts refuses an older walk over an account that shows no posts unless forced; takes the job's drain; the CLI takes --force | I Mean I'm Just Saying | 3 | +50 | -4 |
| 2026-10-05 02:04 | common: X fetches honour Drain at a resume point; an older walk over an empty archive that finds nothing stops after two empty windows | I Mean I'm Just Saying | 3 | +100 | -9 |
| 2026-10-05 00:14 | Merge x-article-capture (capture-posts also reads the X Article a post links to: article.json/md/png/html and its images beside the post's capture) | I Mean I'm Just Saying | 23 | +2098 | -46 |
| 2026-10-05 00:13 | editor: capture-posts takes articles (default true) through the route, action, replay and pnpm ops; a route test; the [Unreleased] bullet | I Mean I'm Just Saying | 7 | +97 | -9 |
| 2026-10-05 00:13 | common: the post viewer's capture panel shows the article's title and a link to article.md | I Mean I'm Just Saying | 3 | +40 | -7 |
| 2026-10-05 00:13 | common: tests for the X Article capture and its place in the run; the post dir exists before the images land | I Mean I'm Just Saying | 2 | +474 | -1 |
| 2026-10-05 00:09 | common: capture-posts opens the X Article a post links to (articles, default on) and saves it beside the post | I Mean I'm Just Saying | 9 | +736 | -30 |
| 2026-10-05 00:09 | common: read an X Article's HTML into blocks and markdown; find a post's article link | I Mean I'm Just Saying | 3 | +752 | -0 |
| 2026-10-04 22:56 | common: a merged persist records its height (the format print falls back to the selected video stream) | I Mean I'm Just Saying | 1 | +9 | -4 |
| 2026-10-04 22:43 | Merge render-no-network-strict (--no-network refuses a clip whose picture is missing even when its sound is on disk; --audio-fallback plays it under a poster) | I Mean I'm Just Saying | 6 | +294 | -82 |
| 2026-10-04 22:38 | report-to-video: an encode test for --audio-fallback; README and the [Unreleased] bullet on --no-network's picture rule | I Mean I'm Just Saying | 3 | +116 | -9 |
| 2026-10-04 22:34 | report-to-video: --no-network refuses a clip whose picture is missing even when its sound is on disk; --audio-fallback plays it under a poster | I Mean I'm Just Saying | 3 | +178 | -73 |
| 2026-10-04 21:25 | Merge shoot-page-crop (shoot-page --crop mark: the quote's lines plus whole context lines, not the whole block) | I Mean I'm Just Saying | 4 | +209 | -29 |
| 2026-10-04 21:24 | report-to-video: shoot-page's mark crop in the README and the changelog bullet | I Mean I'm Just Saying | 2 | +14 | -3 |
| 2026-10-04 21:24 | report-to-video: shoot-page --crop mark — the quote's lines and whole context lines, not the block | I Mean I'm Just Saying | 2 | +195 | -26 |
| 2026-10-04 21:20 | Merge render-audio-src (report-to-video: an audio-only source tier with a poster frame where there is no picture; clips with their own src/cues relative to the manifest) | I Mean I'm Just Saying | 14 | +1162 | -78 |
| 2026-10-04 21:16 | report-to-video: a src clip's log line ends at the file's end; the audio tier's notes say "many", not "every" | I Mean I'm Just Saying | 3 | +6 | -5 |
| 2026-10-04 21:16 | report-to-video: check-availability skips a clip with its own src | I Mean I'm Just Saying | 1 | +3 | -1 |
| 2026-10-04 21:14 | records: report-to-video README on the audio tier, the poster and src/cues clips; an [Unreleased] bullet | I Mean I'm Just Saying | 4 | +74 | -5 |
| 2026-10-04 21:13 | report-to-video: tests for src/cues and the audio poster; the poster's waveform is bounded and drawn at full colour | I Mean I'm Just Saying | 3 | +334 | -2 |
| 2026-10-04 20:54 | report-to-video: an audio tier, a poster where a source has no picture, and clips with their own src/cues | I Mean I'm Just Saying | 8 | +752 | -72 |
| 2026-10-04 20:38 | Merge render-local-sources (report-to-video resolves clip media from disk first: raw cache, corpus clip windows, saved-video container; --no-network lists every clip that would need a fetch and refuses) | I Mean I'm Just Saying | 10 | +1100 | -198 |
| 2026-10-04 20:38 | report-to-video: shoot-page's cwd-derived paths opt out of the build trace | I Mean I'm Just Saying | 1 | +5 | -5 |
| 2026-10-04 20:36 | editor: a retried clip-window fetch keeps its maxHeight | I Mean I'm Just Saying | 2 | +2 | -0 |
| 2026-10-04 20:36 | records: report-to-video README on where a clip's source comes from and --no-network; an [Unreleased] bullet | I Mean I'm Just Saying | 2 | +45 | -2 |
| 2026-10-04 20:32 | report-to-video: tests for the local-source tiers, --no-network and the bench's agreement with them | I Mean I'm Just Saying | 3 | +470 | -9 |
| 2026-10-04 20:30 | report-to-video: sources.mjs resolves a clip's media from disk before any fetch | I Mean I'm Just Saying | 6 | +594 | -196 |
| 2026-10-04 20:34 | Merge persist-videos-batch (pnpm ops persist-videos: persist an explicit list of videos at a chosen quality, one paced, disk- and memory-gated job per channel, dry-run buckets, above-height replace) | I Mean I'm Just Saying | 16 | +1534 | -12 |
| 2026-10-04 20:34 | editor: POST /api/ops/persist-videos and pnpm ops persist-videos | I Mean I'm Just Saying | 8 | +279 | -1 |
| 2026-10-04 20:34 | editor: persist-videos job kind, per-channel action, replay | I Mean I'm Just Saying | 6 | +214 | -13 |
| 2026-10-04 20:34 | Merge fetch-max-height (fetch_clip / fetch-window / fetch-via-editor take maxHeight: ≤720 whole-source fetches save video_720, windows cap at it; cached hits report their height) | I Mean I'm Just Saying | 22 | +693 | -19 |
| 2026-10-04 20:31 | changelog: fetch maxHeight | I Mean I'm Just Saying | 1 | +1 | -0 |
| 2026-10-04 20:31 | umtool: fetch-via-editor --max-height; a whole-source fetch asks at the manifest's maxHeightSource | I Mean I'm Just Saying | 5 | +196 | -6 |
| 2026-10-04 20:29 | Merge shoot-page (report-to-video shoot-page: a highlighted sentence from a saved page as a PNG, offline, batch mode with listed misses) | I Mean I'm Just Saying | 5 | +896 | -1 |
| 2026-10-04 20:28 | mcp: fetch_clip takes an optional maxHeight and reports a file's height | I Mean I'm Just Saying | 6 | +199 | -11 |
| 2026-10-04 20:27 | report-to-video: shoot-page is a bin and an export; README section and changelog bullet | I Mean I'm Just Saying | 4 | +60 | -1 |
| 2026-10-04 20:26 | report-to-video: shoot-page walks the DOM by hand, keeps marks layout-neutral, isolates the block | I Mean I'm Just Saying | 2 | +86 | -22 |
| 2026-10-04 20:26 | editor: fetch-window takes an optional maxHeight; a cached hit reports its height | I Mean I'm Just Saying | 10 | +297 | -2 |
| 2026-10-04 20:25 | common: persistVideos — persist an explicit list of videos to the store | I Mean I'm Just Saying | 3 | +1043 | -0 |
| 2026-10-04 20:22 | Merge deck-factcheck (report-to-video fact-check chrome: per-entry claim {id, verdict}, verdict stamp + rolling tally on the deck, deck.qr.links original, posts[].shot; umtool On-screen learns claim) | I Mean I'm Just Saying | 27 | +1939 | -111 |
| 2026-10-04 20:21 | report-to-video: shoot-page — a highlighted sentence from a saved page, as a PNG | I Mean I'm Just Saying | 2 | +772 | -0 |
| 2026-10-04 20:21 | umtool: the On-screen settings form gains qr.links (site | original), a deck save carries render.chrome.factcheck through instead of dropping it, and the deck's JSDoc types its new options (deckLayout's tally, deckQrUrl's links/meta, stampGeometry's feed) | I Mean I'm Just Saying | 2 | +14 | -1 |
| 2026-10-04 20:17 | Merge video-720-preset (video_720 download preset: ≤720p H.264 with 480 and any-codec rungs; sourceVideoQuality setting global + per channel; persists honour it and record the format they took) | I Mean I'm Just Saying | 30 | +939 | -49 |
| 2026-10-04 20:17 | common: video_720 tries split pairs before single-file rungs | I Mean I'm Just Saying | 2 | +41 | -18 |
| 2026-10-04 20:16 | Merge x-post-capture (X post capture: a screenshot and the attached media per post id, capture-posts job + ops route, PostModal shows a capture behind an editor-only prop) | I Mean I'm Just Saying | 21 | +2245 | -26 |
| 2026-10-04 20:15 | common: PostModal shows a post's capture behind an editor-only prop | I Mean I'm Just Saying | 2 | +151 | -3 |
| 2026-10-04 20:15 | editor: capture-posts — server action, ops route, replay, pnpm ops | I Mean I'm Just Saying | 8 | +217 | -0 |
| 2026-10-04 20:13 | common: video_720 gains codec-agnostic rungs at or under 720p before the last resort | I Mean I'm Just Saying | 4 | +15 | -6 |
| 2026-10-04 20:13 | records: fact-check chrome -- the README's `claim` and `render.chrome.factcheck` (the stamp, the tally, the schedule's `factcheck`, the stamp region), `qr.links`, `posts[].shot`; report-video.md's On-screen claim column; an [Unreleased] bullet | I Mean I'm Just Saying | 3 | +86 | -5 |
| 2026-10-04 20:11 | common: capturePosts controller and the capture-posts job kind | I Mean I'm Just Saying | 3 | +364 | -0 |
| 2026-10-04 20:11 | common: X post capture — a screenshot and the attached media per post id | I Mean I'm Just Saying | 8 | +1513 | -23 |
| 2026-10-04 20:11 | umtool: the On-screen table and its preview learn the fact-check claim -- a row carries `claim: {id, verdict}` beside its text (splitOnscreenRow; updateOnscreen sets or removes it and refuses the batch on validateClaims), the GET rows round-trip it, the draft's claims restamp the preview over the build's segments, the stamps compose into stamp-preview/ and lie over the footage, the deck's layout makes room for the tally, and deckMetas carries webpageUrl for qr.links "original"; tests for the claim, the tally, the stamps, the QR's original links and post screenshots | I Mean I'm Just Saying | 15 | +929 | -57 |
| 2026-10-04 20:09 | editor: Persist source video quality select; source video quality in settings and channel forms | I Mean I'm Just Saying | 11 | +177 | -14 |
| 2026-10-04 20:09 | common: persists honour persistFormatPreset and record the format taken | I Mean I'm Just Saying | 8 | +479 | -11 |
| 2026-10-04 20:09 | common: sourceVideoQuality setting and per-channel override | I Mean I'm Just Saying | 8 | +51 | -3 |
| 2026-10-04 20:09 | common: video_720 download preset; clipFormatSelector moves to downloadFormat; source-video quality resolver | I Mean I'm Just Saying | 3 | +200 | -21 |
| 2026-10-04 20:04 | report-to-video: fact-check chrome -- a per-entry `claim: {id, verdict}` (CORROBORATED, PARTLY, CONTRADICTED, NOT_FOUND, UNTESTABLE), validated with one verdict per claim id; `render.chrome.factcheck` (verdict labels and colours, stamp seconds and position, tally show and position) validated in validateChrome; a verdict stamp over the footage on the last segment of each claim (chrome-stamp.mjs, the `stamp` region, laid last over the cut); a tally in the deck whose counts step as each stamp lands; `deck.qr.links: "original"` (the record's page, YouTube at the second); optional `posts[].shot` drawn in place of a post's text card | I Mean I'm Just Saying | 9 | +910 | -48 |
| 2026-10-03 19:48 | Merge x-polite-pacing (X reads: random 4–10 s between requests, rate limits waited out; older-posts windows a random 45–120 s apart) | I Mean I'm Just Saying | 4 | +60 | -6 |
| 2026-10-03 19:48 | common: X reads wait a random 4–10 s per request; older-posts windows a random 45–120 s apart | I Mean I'm Just Saying | 4 | +60 | -6 |
| 2026-10-03 17:37 | Merge x-search-backfill (X posts older than the timeline reaches: a search walk in three-month windows from the oldest archived post, resumable via max_id, its own state beside the timeline cursor; Fetch older posts button, fetch-posts ops route, --older/--floor) | I Mean I'm Just Saying | 23 | +1793 | -41 |
| 2026-10-03 17:33 | editor: Fetch older posts — button, action param, ops route, replay | I Mean I'm Just Saying | 15 | +265 | -9 |
| 2026-10-03 17:29 | common: tests for the older-posts backfill | I Mean I'm Just Saying | 3 | +612 | -0 |
| 2026-10-03 17:25 | common: X older-posts backfill through search windows | I Mean I'm Just Saying | 5 | +916 | -32 |
| 2026-10-03 17:20 | Merge mcp-date-args (a search date bound is normalised from YYYY-MM-DD etc., or refused with an error; never silently dropped) | I Mean I'm Just Saying | 4 | +82 | -18 |
| 2026-10-03 17:20 | mcp: a search date bound is normalised, or refused — never silently dropped | I Mean I'm Just Saying | 4 | +82 | -18 |
| 2026-10-02 23:19 | Merge ops-transcribe-bucket (pnpm ops transcribe-bucket: the channel page's Transcribe-downloaded button over HTTP, with an optional ids subset of the bucket; retry-bucket skips audio already on disk) | I Mean I'm Just Saying | 4 | +79 | -1 |
| 2026-10-02 23:19 | ops: transcribe-bucket, the channel page's "Transcribe N downloaded" over HTTP | I Mean I'm Just Saying | 4 | +79 | -1 |
| 2026-10-02 22:54 | gerge branch 'ops-retry-bucket-ids' | I Mean I'm Just Saying | 6 | +117 | -5 |
| 2026-10-02 21:59 | ops: retry-bucket takes "ids", a subset of the named bucket | I Mean I'm Just Saying | 6 | +117 | -5 |
| 2026-10-02 21:54 | common: an X post from gallery-dl carries its reply and repost flags | I Mean I'm Just Saying | 3 | +135 | -9 |
| 2026-10-02 21:04 | Merge deck/post-links (report-to-video: a post's QR links its archive page by default, one-row posts feed header, no empty feed plate, the teaser's tail hangs off a centred last line; MCP get_post names the archive page; reviewed SHIP) | I Mean I'm Just Saying | 21 | +1205 | -113 |
| 2026-10-02 21:03 | records: the tail review -- SHIP, M1 (every teaser page re-renders once) accepted, the LOWs left; the README's tail-wait wording and the ferret numbers with its dip | I Mean I'm Just Saying | 2 | +21 | -6 |
| 2026-10-02 19:20 | common: an X post fetch keeps what it read when cancelled, timed out or failed, and resumes from gallery-dl's cursor | I Mean I'm Just Saying | 6 | +722 | -82 |
| 2026-10-02 18:26 | plans: STATE — the auto-subs purge applies to 24 HasanAbiVODs3 videos and none of omnibased; the 7.6 GB was every en-orig track, not the purgeable ones | I Mean I'm Just Saying | 1 | +3 | -2 |
| 2026-10-02 18:23 | plans: release 17 — the saved-video store's marker cleared by the operator; the store is in place, its move waits on the platter | I Mean I'm Just Saying | 2 | +7 | -8 |
| 2026-10-02 16:57 | plans: release 17 — the big three migrated (12:19–12:34, 860 s, /home 77→43 GB); the saved-video store move deferred (the platter writes at ~5 MB/s), its marker left for the operator | I Mean I'm Just Saying | 2 | +36 | -6 |
| 2026-10-02 15:06 | plans: "Teaser tail and feed plate" -- the tail hung off a centred last line, tailWait, the feed without its empty plate, the ferret timings and the measured centre | I Mean I'm Just Saying | 1 | +16 | -0 |
| 2026-10-02 15:04 | report-to-video: the feed column has no empty plate -- before the first post it is its header over its ground (the element, its rule, its init and the first post's cue are gone, with FEED_MOTION.emptyOut); the README documents tailWait and the centred last line, and the feed's and the teaser's [Unreleased] bullets say so | I Mean I'm Just Saying | 4 | +33 | -25 |
| 2026-10-02 15:03 | report-to-video: the teaser's tail hangs off its row -- the last line is centred by its own words, the tail in a zero-width box at its gap, and both the validator and the page's fit count the tail on both sides of the centre (the ferret page re-pinned); `tailWait` (0.3-6 s, only with a tail) sets the seconds from the last hit to the tail, the swell and the card's length following it, and without it the beat's wait stands | I Mean I'm Just Saying | 3 | +116 | -19 |
| 2026-10-02 14:21 | records: post links after review -- the README says what a stalled archive costs (one timeout per URL per build; the preview's 10 s bound), that hidden posts are not looked up and that null is unset; plans/deck-posts.md gains the failure memo, the shared cache and the two known limits (siteOrigin only; corpus-order tie-break) | I Mean I'm Just Saying | 2 | +49 | -13 |
| 2026-10-02 14:21 | report-to-video: post links after review -- one failure memo (url -> {err, at, refresh}) read by both resolver passes, expiring after refreshAfterMs (never in a build, ten minutes in umtool's server) and cleared by a success, so an archive that stalls costs one timeout per URL, not per post; resolvePostLinks skips hidden posts and cuts without the deck, takes a deadline (the preview's is 10 s), and its no-origin note says to set provenance.siteOrigin; null is unset for siteChannel/siteUrl/postId; createJsonCache shares an in-flight fetch; cues.mjs notes the shared, refreshed corpus.json; the preview links the posts as the draft leaves them | I Mean I'm Just Saying | 6 | +238 | -42 |
| 2026-10-02 14:07 | records: post links -- the README's "Where a post's QR links" (posts.links, siteChannel/siteUrl/postId, the resolver, notes, the preview), an [Unreleased] bullet, and "Post links, as built" in plans/deck-posts.md | I Mean I'm Just Saying | 3 | +100 | -4 |
| 2026-10-02 14:05 | mcp: get_post names the post's archive page (`- archive: <origin>/?v=<channel>%2F<id>&vm=post`) when the source has a viewer origin -- the channel's member site on a hub, the site's own otherwise; viewerPostUrl in common/lib/momentUrl.ts | I Mean I'm Just Saying | 4 | +72 | -3 |
| 2026-10-02 14:05 | report-to-video: a post's QR links its page on the archive by default -- postQrUrl in deck.mjs (siteUrl, else siteOrigin + siteChannel + the post's id, else its own url), posts.links "archive" | "original", optional siteChannel/siteUrl/postId on a post; post-links.mjs finds the archive channel that keeps each post (corpus.json -> posts manifests' slugToPage, handle-matching channels first, cues.mjs's JSON cache, one fresh re-read on a miss) just before the build writes its schedule, in memory only, a note per post, the original on any miss or failure; umtool's preview links through the same resolver; the e2e post fixtures pin siteChannel | I Mean I'm Just Saying | 10 | +599 | -30 |
| 2026-10-02 13:47 | report-to-video: the posts feed's header is one row -- the platform and who posted -- with no running count and no caption, and the empty plate says only "No posts yet"; the 30 px the header gave back go to the stack | I Mean I'm Just Saying | 3 | +16 | -26 |
| 2026-10-02 07:16 | plans: release 17 — the rollout as it went: the builds, the restarts, the ten-channel migration and the stop, the live proof | I Mean I'm Just Saying | 1 | +16 | -0 |
| 2026-10-02 07:15 | plans: STATE — release 17 complete and live; the migration's ten channels and the three held; what the operator owes | I Mean I'm Just Saying | 1 | +26 | -1 |
| 2026-10-02 06:32 | plans: release 17 — T3's re-review: what the reclaim twin check accepts | I Mean I'm Just Saying | 1 | +2 | -0 |
| 2026-10-02 06:30 | plans: release 17 — the Rollout steps (editor, umtool, the migration, X posts private, records) | I Mean I'm Just Saying | 1 | +11 | -0 |
| 2026-10-02 06:30 | Merge r17/media-tier-migrate (release 17 slice T3) — archilyzer storage migrate-tier <slug>|--all: the one-off migration of a whole-data/ channel to the media tier (editor stopped; copy of text, clips and scratch to the SSD from a classifier list, verified twice; relative links carrying the file's mtime; the platter's data renamed media; resumable from each step; --all smallest first with a stop before the three big-text channels; --reclaim later, guarded by a note and a twin check); AGENTS.md's seventh non-optional thing; FACTS, CHANNEL.md, ENVIRONMENT.md; reviewed SHIP | I Mean I'm Just Saying | 13 | +2210 | -25 |
| 2026-10-02 06:28 | plans: slice T3's review — L1-L4 and the NITs to their commits, the operator notes (purge after the migration; the Syncthing folder), the gates after the fixes; the changelog bullet and FACTS follow | I Mean I'm Just Saying | 3 | +55 | -13 |
| 2026-10-02 06:26 | docs: review NITs — the corpus table names the media link; ARCHILYZER_EDITOR_URL is read by migrate-tier; dataDir's doc names the re-point (ENVIRONMENT.md, CHANNEL.md regenerated) | I Mean I'm Just Saying | 5 | +5 | -5 |
| 2026-10-02 06:26 | common: review L1, L2, L4 — reclaim only what this tool migrated, only with a twin on the corpus disk; dead temps stay on the platter | I Mean I'm Just Saying | 2 | +222 | -43 |
| 2026-10-02 06:26 | common: review L4 — a Syncthing temp (.syncthing.<name>.tmp) is scratch | I Mean I'm Just Saying | 2 | +4 | -0 |
| 2026-10-02 06:14 | plans: slice T3's record — the migration as shipped, its gates; FACTS "A channel's media is tiered" | I Mean I'm Just Saying | 2 | +189 | -0 |
| 2026-10-02 06:13 | docs: AGENTS.md's media section for the tier (seven things), and the migrate-tier changelog bullet | I Mean I'm Just Saying | 2 | +39 | -20 |
| 2026-10-02 06:10 | common: archilyzer storage migrate-tier — the one-off migration off the retired whole-directory layout | I Mean I'm Just Saying | 3 | +1752 | -0 |
| 2026-10-02 05:56 | Merge r17/media-tier-mover (release 17 slice T2) — the mover works on channels/<slug>/media: a move out tiers a classic channel's big files first, copies, mirrors toward the copy only, verifies, parks and leaves one absolute link with config.mediaDir; a move back ends with a real media/ and no per-file link changes either way; every marker carries scope; a legacy channel and a tier-migration marker are refused with the migrate-tier sentence; re-point, rename, delete, the storage watch and /storage key on mediaDir (a legacy channel re-points the retired way); the Storage panel shows media and text paths and bytes, the badge says Media layout retired, the video pages list tiered links and the file route answers 503 with retry-after for a relocated drive that is away; reviewed SHIP | I Mean I'm Just Saying | 50 | +2690 | -863 |
| 2026-10-02 05:56 | plans: slice T2's re-review — R1, the mixed rollback cases and the gates at the tip | I Mean I'm Just Saying | 1 | +11 | -0 |
| 2026-10-02 05:51 | common: re-review — a mixed location's re-point rolls back as one | I Mean I'm Just Saying | 1 | +40 | -0 |
| 2026-10-02 05:51 | editor: re-review R1 — the text stall is asked first, and a legacy channel is not lstat'd | I Mean I'm Just Saying | 2 | +32 | -13 |
| 2026-10-02 05:46 | plans: slice T2's review — H1, L2-L4, N5-N9 to their commits, the merge of main 9ee7f1ee and the gates after it | I Mean I'm Just Saying | 3 | +57 | -15 |
| 2026-10-02 05:40 | Merge main (9ee7f1ee: RL) into r17/media-tier-mover | I Mean I'm Just Saying | 50 | +3624 | -97 |
| 2026-10-02 05:37 | plans: a commit's Co-Authored-By names the model that wrote it (the rules file and the release 17 record) | I Mean I'm Just Saying | 2 | +7 | -3 |
| 2026-10-02 05:37 | Merge r17/rate-limit-adapts (release 17 slice RL) — a subtitle 429 no longer fails a download: the media lands and the subtitles are deferred per video (6 h, a week from the third strike) without touching the platform; the request pace adapts per platform (doubles on a rate limit up to a cap, eases on clean units and one step per hour) and feeds every yt-dlp call and the lane's gap, which now honours sleepBetweenDownloadsSeconds; repeated failures at the cooldown cap become a hold with an hourly probe, a clean manual run or Clear hold lifts it; shown on the lane page, the video page and doctor; a pacing settings block; reviewed SHIP | I Mean I'm Just Saying | 49 | +3617 | -94 |
| 2026-10-02 05:35 | 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 | I Mean I'm Just Saying | 1 | +20 | -0 |
| 2026-10-02 05:30 | common, editor: review N6 — legacy channels on the corpus row are to migrate, not unmeasured | I Mean I'm Just Saying | 3 | +47 | -5 |
| 2026-10-02 05:30 | editor: review N7, N8 — the drive is chosen by the link, and a 503 means a drive | I Mean I'm Just Saying | 3 | +43 | -30 |
| 2026-10-02 05:30 | common: review L4 — the live-chat archive counts what it left out | I Mean I'm Just Saying | 1 | +16 | -2 |
| 2026-10-02 05:30 | common, editor: review L3, N9, N5 — a tier migration's marker is never cleared or previewed past; identity before tiering | I Mean I'm Just Saying | 3 | +32 | -12 |
| 2026-10-02 05:30 | common: review L2 — a legacy channel's rename is refused, naming migrate-tier | I Mean I'm Just Saying | 2 | +38 | -2 |
| 2026-10-02 05:30 | editor: a held platform on a paused lane says the lane is paused (re-review R5) | I Mean I'm Just Saying | 1 | +19 | -1 |
| 2026-10-02 05:30 | common: a subtitle 429 beside another subtitle failure takes that failure's class; a run that asked nothing is not clean; clear-platform-hold is a declared kind (re-review R1, R3, R4) | I Mean I'm Just Saying | 5 | +108 | -2 |
| 2026-10-02 05:28 | common: review H1 — a re-point carries a legacy channel the retired way | I Mean I'm Just Saying | 2 | +151 | -40 |
| 2026-10-02 05:23 | plans: slice RL — the review (H1, H2, L1–L5, N9, N10 → commits), the rollout line, FACTS, the re-gate | I Mean I'm Just Saying | 1 | +47 | -3 |
| 2026-10-02 05:19 | plans: slice T2 — the mover over media/ and the surfaces, as shipped | I Mean I'm Just Saying | 3 | +218 | -0 |
| 2026-10-02 05:15 | editor: Clear hold's sentence outlives the strip it empties (review H2) | I Mean I'm Just Saying | 2 | +25 | -11 |
| 2026-10-02 05:09 | Merge main (d74c2848: U2, deck finale) into r17/media-tier-mover | I Mean I'm Just Saying | 46 | +5513 | -319 |
| 2026-10-02 05:09 | editor: the held list keeps an overdue hold and says why, a Clear hold button, neutral subtitle wording; e2e for both (review H2, N10) | I Mean I'm Just Saying | 5 | +189 | -15 |
| 2026-10-02 05:09 | common: a hold cannot outlive its lane — refused only before its probe, lifted by a clean manual run; the pace eases hourly (review H2, L1, L2, L3, L5) | I Mean I'm Just Saying | 16 | +388 | -53 |
| 2026-10-02 05:09 | common: only a subtitle 429 takes the media path; any other subtitle failure is a failed attempt, as before (review H1, N9) | I Mean I'm Just Saying | 4 | +90 | -8 |
| 2026-10-02 05:09 | common, editor: the re-point names migrate-tier for a legacy channel; the reconcile spec's changed file differs in length | I Mean I'm Just Saying | 3 | +38 | -1 |
| 2026-10-02 05:00 | editor: the directory loader's comment names no corpus walker | I Mean I'm Just Saying | 1 | +2 | -2 |
| 2026-10-02 04:56 | editor: e2e rebased on the media tier | I Mean I'm Just Saying | 3 | +390 | -110 |
| 2026-10-02 04:51 | common, editor: a move is held by the channel's media writers only | I Mean I'm Just Saying | 10 | +111 | -23 |
| 2026-10-02 04:47 | common: the live-chat archive reads no raw replay while the media is away | I Mean I'm Just Saying | 1 | +40 | -8 |
| 2026-10-02 04:47 | editor: the media tier on the Storage panel, the video pages and the file route | I Mean I'm Just Saying | 14 | +318 | -127 |
| 2026-10-02 04:47 | plans: slice RL, as shipped — the record, the gates, the deviations, the open question | I Mean I'm Just Saying | 1 | +165 | -0 |
| 2026-10-02 04:41 | Merge main (d74c2848: U2) into r17/rate-limit-adapts — clean; U2 touches umtool, the changelog and the plans only | I Mean I'm Just Saying | 46 | +5513 | -319 |
| 2026-10-02 04:39 | common: the mover over media/ — a move carries channels/<slug>/media, never data/ | I Mean I'm Just Saying | 25 | +1233 | -600 |
| 2026-10-02 04:37 | Merge r17/umtool-deliverables (release 17 slice U2) — umtool's deliverables move per project by a switch: the manifest's storage.deliverables (local|media, one writer), deliverableDir for clips/ and share-*/ (links into the media mirror under media; a dangling link or a cut move's leftover refuses), umtool storage deliverables and a bench Move deliverables job, umtool check reports an unreachable or mismatched storage, the busy scan sees the app's own cuts and share batches; reviewed SHIP | I Mean I'm Just Saying | 21 | +1847 | -92 |
| 2026-10-02 04:35 | plans: slice U2 — the merge of main 5c877a7f and the gates after it | I Mean I'm Just Saying | 1 | +12 | -1 |
| 2026-10-02 04:28 | Merge main (5c877a7f) into r17/umtool-deliverables | I Mean I'm Just Saying | 112 | +8947 | -1046 |
| 2026-10-02 04:27 | plans: slice U2's review (H1, N1, N2; L1 a follow-up), the corrected busy-scan claim, and the gates after the fixes | I Mean I'm Just Saying | 2 | +28 | -6 |
| 2026-10-02 04:27 | Merge deck/finale-dip — the on-screen deck's posts feed layout (a persistent posts column beside reframed footage, a framing record in cut.json), the teaser's beat and its dip to black with a riser into the first hit, the review fix pass and the frame-grid fix; a manifest without the vocabulary builds byte-identically; reviewed SHIP | I Mean I'm Just Saying | 28 | +3663 | -225 |
| 2026-10-02 04:26 | plans: the handoff -- the frame-grid fix, main merged in, the gates at the merge, the ferret cut's first use of feed + beat + dip | I Mean I'm Just Saying | 1 | +22 | -0 |
| 2026-10-02 04:22 | Merge main (de5b77d5: D0, T1) into r17/rate-limit-adapts — both changelog sides kept | I Mean I'm Just Saying | 85 | +5282 | -820 |
| 2026-10-02 04:20 | plans: release 17 — the record names the refused suffix by description, not by its text | I Mean I'm Just Saying | 1 | +3 | -2 |
| 2026-10-02 04:19 | Merge r17/media-tier-model (release 17 slice T1) — the media tier's classifier, hook and guards: files classified by name (media/text/scratch), every media finalisation tiers audio and the raw live chat into channels/<slug>/media through relative links and every deleter follows the link; config mediaDir, the retired whole-data/ layout reads legacy and is held; a text guard for the index, stats, snapshot, normalize and shards so the media tier never holds them; lanes by tier; channelWriters mediaOnly; the cues twin; reviewed SHIP | I Mean I'm Just Saying | 63 | +3463 | -637 |
| 2026-10-02 04:18 | plans: slice T1 — the merge of main 1aac4984 and its re-gates | I Mean I'm Just Saying | 1 | +12 | -0 |
| 2026-10-02 04:17 | umtool: review N2 — deliverables.spec asserts the route's 409 for a move while the cut runs | I Mean I'm Just Saying | 1 | +5 | -1 |
| 2026-10-02 04:17 | umtool: review H1, N1 — the busy scan sees a cut or batch by --project; check flags a media link under no key | I Mean I'm Just Saying | 6 | +262 | -74 |
| 2026-10-02 04:11 | Merge branch 'main' into deck/finale-dip | I Mean I'm Just Saying | 86 | +5517 | -246 |
| 2026-10-02 04:09 | editor: the video page's subtitle-deferral line reads a GET route, not a server action | I Mean I'm Just Saying | 3 | +34 | -18 |
| 2026-10-02 04:09 | plans: slice U2's record (the deliverables switch) and FACTS "umtool's deliverables switch" | I Mean I'm Just Saying | 2 | +161 | -0 |
| 2026-10-02 04:01 | Merge main (1aac4984: D0 on U1, export 0.11.1, XP) into r17/media-tier-model | I Mean I'm Just Saying | 123 | +11546 | -523 |
| 2026-10-02 03:54 | Merge r17/dashboard-answers (release 17 slice D0) — the dashboard answers while a report regenerates: the snapshot walk yields between chunks and regenerations run one at a time with one queued successor, the auto-queue status poll shares one memo keyed on the settings it reads, boot closes the running job metas a dead process left behind, Refresh report waits at most 15 s then names its job and queue position, the ops forms return job ids at once; reviewed SHIP | I Mean I'm Just Saying | 27 | +1819 | -183 |
| 2026-10-02 03:54 | plans: slice D0 — the merge of main 3ead8acf and its re-gates | I Mean I'm Just Saying | 1 | +6 | -0 |
| 2026-10-02 03:49 | umtool: deliverables.spec — a batch's count includes the ids its LIST.md says were already shared | I Mean I'm Just Saying | 1 | +4 | -2 |
| 2026-10-02 03:36 | Merge main (3ead8acf: U1, XP) into r17/rate-limit-adapts — both changelog sides, both rulings and slice rows kept | I Mean I'm Just Saying | 61 | +3698 | -63 |
| 2026-10-02 03:33 | plans: slice RL — the ruling, the FACTS entry, the dated note on the 2026-09-25 postmortem, the changelog bullets | I Mean I'm Just Saying | 4 | +110 | -0 |
| 2026-10-02 03:27 | Merge main (3ead8acf: U1 umtool media root, export 0.11.1, XP X posts private) into r17/dashboard-answers | I Mean I'm Just Saying | 98 | +9727 | -340 |
| 2026-10-02 03:22 | plans: slice D0's re-review — the bounded Refresh report, ops answering with job ids, run 4's count corrected, run 6; the changelog says what a long wait shows | I Mean I'm Just Saying | 2 | +17 | -3 |
| 2026-10-02 03:18 | Merge main into r17/umtool-deliverables | I Mean I'm Just Saying | 37 | +1843 | -40 |
| 2026-10-02 03:18 | umtool: Move deliverables on the bench; deliverables.spec; docs and changelog | I Mean I'm Just Saying | 9 | +492 | -8 |
| 2026-10-02 03:18 | editor: e2e for the subtitle deferral, the hold and the clean probe; the fake's dl429 obeys --ignore-errors | I Mean I'm Just Saying | 7 | +394 | -68 |
| 2026-10-02 03:15 | editor: both ops refresh-report forms answer once queued, with the ids --wait follows (D0 re-review R1) | I Mean I'm Just Saying | 3 | +87 | -45 |
| 2026-10-02 03:15 | editor: Refresh report answers within 15 s with an error or where its job is; Update all reports answers once queued (D0 re-review R1, R2) | I Mean I'm Just Saying | 3 | +89 | -71 |
| 2026-10-02 03:15 | common: requestRefreshReport, a bounded waitForRefreshReport and its notice (D0 re-review R1, R2, R3) | I Mean I'm Just Saying | 2 | +189 | -9 |
| 2026-10-02 03:12 | Merge r17/x-posts-private (release 17 slice XP) — X posts are private: social.x.visibility (public|private) on /settings, a site's audience (public|private; a private site is never deployed and never listed), one predicate for the index build and compose so X-platform channels' posts are built only into private sites while private; the hub build clears every per-site entry from the shared public dir and Deploy hub refuses a bundle still carrying a site's data; compose no longer trusts another site's cache; reviewed SHIP | I Mean I'm Just Saying | 36 | +1842 | -39 |
| 2026-10-02 03:12 | editor: the lane page shows holds, the pace and deferred subtitles; held platforms refuse manual fetches; doctor reports pacing | I Mean I'm Just Saying | 10 | +377 | -11 |
| 2026-10-02 03:11 | umtool: the deliverables switch — storage.deliverables, deliverableDir, umtool storage deliverables | I Mean I'm Just Saying | 9 | +935 | -52 |
| 2026-10-02 03:11 | plans: slice XP — the merge of main (U1) and its re-gate | I Mean I'm Just Saying | 1 | +3 | -1 |
| 2026-10-02 03:08 | Release export 0.11.1 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-10-02 03:07 | Merge main (e049b235, slice U1) into r17/x-posts-private — both records kept under ## Record (U1's section before XP's), both changelog sides kept | I Mean I'm Just Saying | 26 | +1855 | -23 |
| 2026-10-02 03:06 | common: a subtitle 429 never fails a download, and the pace adapts per platform | I Mean I'm Just Saying | 26 | +1810 | -63 |
| 2026-10-02 03:03 | plans: slice XP — the review, its fixes, the rollout steps (the hub rebuild, old Pages deployments) and the gates after it | I Mean I'm Just Saying | 2 | +90 | -2 |
| 2026-10-02 03:02 | plans: slice D0's review and its fixes — the memo keyed by settings, one queued successor, Refresh report on the queue, the yield pinned, the rollout note; e2e runs 3–5; the changelog bullets follow | I Mean I'm Just Saying | 2 | +51 | -3 |
| 2026-10-02 02:56 | Merge r17/umtool-media-root (release 17 slice U1) — umtool's render scratch goes to a media root: UMTOOL_MEDIA_DIR makes a project's out/ a link into it (made by the first writer; never the root itself; a dangling link refuses), the cache moves to the user cache dir, umtool storage move-out|move-back move existing out/ trees with a copy-mirror-verify-swap mover, doctor reports the roots, the walk never descends an unmounted drive; reviewed SHIP after fixes | I Mean I'm Just Saying | 26 | +1855 | -23 |
| 2026-10-02 02:55 | plans: slice U1's re-review (R1, R2, N6) and the gates after them | I Mean I'm Just Saying | 1 | +6 | -0 |
| 2026-10-02 02:55 | umtool: re-review — a real out/ beside a leftover says what to do by hand; stat a linked project; leftover skips only for the moved names | I Mean I'm Just Saying | 4 | +38 | -9 |
| 2026-10-02 02:50 | plans: slice U1's review (SHIP AFTER FIXES), its fixes and the gates after them | I Mean I'm Just Saying | 1 | +34 | -0 |
| 2026-10-02 02:43 | report-to-video: every chrome page states pageDuration -- its whole frames floored to 4 decimals -- so HyperFrames' ceil(duration x fps) is the build's frame count; a cut of 434 frames (schedule 14.467 s) rendered 435 deck frames and the build refused it. A duration on the grid (14.4, 7.9, 356.7) is written as before; tests | I Mean I'm Just Saying | 6 | +53 | -12 |
| 2026-10-02 02:14 | plans: slice T1's re-review (SHIP), R1 and R2 folded in; FACTS | I Mean I'm Just Saying | 2 | +12 | -2 |
| 2026-10-02 02:10 | common: the hook's media-side temp is scratch and a dead process's is swept (re-review R2) | I Mean I'm Just Saying | 4 | +28 | -1 |
| 2026-10-02 02:10 | common: the index probes the media drive through the watchdog and reads a tiered raw live chat directly; a track neither read nor kept is retried (re-review R1) | I Mean I'm Just Saying | 2 | +47 | -6 |
| 2026-10-02 02:04 | plans: slice T1's review, its fixes and the gates after them | I Mean I'm Just Saying | 1 | +43 | -13 |
| 2026-10-02 01:53 | editor(e2e): the report's own refresh-report job is not the bulk delete's; dashboard-answers warms the ops route first | I Mean I'm Just Saying | 2 | +17 | -1 |
| 2026-10-02 01:27 | plans: "Fix pass after the review" under "Dip F2, as built" -- the review's LOWs to their commits, L8 left, the gates; the F1 regex item points at its fix | I Mean I'm Just Saying | 1 | +25 | -1 |
| 2026-10-02 01:24 | docs: quirk -- the framing record does not cover overCards toggles on full-frame cards (a full-frame card writes no record, so --chrome-only reads it as the deck's box), and scroll, chart and ledger segments are never framed, so under the feed with overCards "show" the column covers their right third | I Mean I'm Just Saying | 1 | +12 | -0 |
| 2026-10-02 01:24 | umtool: the posts layout hint says what switching it takes -- a full build reframes the footage (cached windows reused) and re-render on-screen is refused until one has run -- instead of implying the segments are rebuilt on their own (no e2e spec asserts the hint's text) | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-10-02 01:23 | docs: a feed post ticks in at its clip's start + D on every clip, the first included, which has no dissolve into it -- the JSDoc, the page module's header, the README, the [Unreleased] bullet and the plan say what postSchedule does (no schedule changes) | I Mean I'm Just Saying | 5 | +10 | -7 |
| 2026-10-02 01:23 | report-to-video: verify-build counts a dipped teaser's frames at the transition it was built at -- the teaser's record now names it (`transition` in <id>.teaser.json), verify-build takes --no-xfade for older records without a schedule, and umtool's driver passes --no-xfade to the verify step whenever the build had it; tests for the verify and the driver's argv; the README says so | I Mean I'm Just Saying | 6 | +69 | -12 |
| 2026-10-02 01:21 | report-to-video: a dip's black is whole frames at the cut's fps (dipOf snaps it to the nearest frame, keeping a value that already is one as given, 0.6 at 30 fps byte-identical), and the lead, the teaser's length, motion, hits and page, the schedule's dip and the joined cut's black all take the render's fps; tests that the lead, the page, the frame count and dipWindows' until agree; the README and the [Unreleased] bullet say so | I Mean I'm Just Saying | 8 | +91 | -26 |
| 2026-10-02 01:17 | report-to-video: --chrome-only and --chrome-preview check that the segments are on disk and framed for the cut's layout before any teaser is rendered (a teaser's own segment is built after the refusals, so it is not required beforehand); a test drives buildVideo over deck-framed segments under a feed and asserts the refusal leaves the renderer unrun | I Mean I'm Just Saying | 2 | +49 | -11 |
| 2026-10-02 01:16 | umtool: isMediaLink's parameter type names the dirent's name (tsc) | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-10-02 01:16 | report-to-video: the popup page's clamp writes \\s in its template, so the composed page trims trailing whitespace with /\s+$/ instead of stripping trailing letters s off a clamped quoted paragraph; a test reads the regex off a composed page; the quirk says both pages write \\s (the popup's page hash changes, so cached popup windows re-render once) | I Mean I'm Just Saying | 3 | +19 | -5 |
| 2026-10-02 01:11 | umtool: e2e never takes the shell's media root; doctor ok = exit status; move skips a building project | I Mean I'm Just Saying | 10 | +84 | -8 |
| 2026-10-02 01:11 | umtool: storage review fixes — own-mirror-only delete, leftover guard, no ghost mirror | I Mean I'm Just Saying | 2 | +174 | -19 |
| 2026-10-02 01:10 | plans, editor: FACTS and the changelog bullet say what the index does with a tiered live chat; the bullet needs a rebuild and restart (review L11) | I Mean I'm Just Saying | 2 | +9 | -3 |
| 2026-10-02 01:10 | common, editor: the export build tiers nothing; a shard save sweeps nothing; a video delete is refused while its media is unreachable (review L4, L6, N9, N10) | I Mean I'm Just Saying | 5 | +45 | -7 |
| 2026-10-02 01:10 | common: the tier places bytes by hard link or timed copy before one rename; derefs any id; strays healed; no slot for an in-place media/ (review H1, L2, L3, L5, N8) | I Mean I'm Just Saying | 2 | +122 | -35 |
| 2026-10-02 01:10 | common: the index scan lstats a tierable sub track and reads a tiered raw live chat only through the watchdog (review H1) | I Mean I'm Just Saying | 2 | +138 | -9 |
| 2026-10-02 01:05 | editor: changelog — the compose-cache fix, the hub's data, and the restart and redeploy notes (review LOW 5) | I Mean I'm Just Saying | 1 | +4 | -2 |
| 2026-10-02 01:05 | common: a compose over a stale index lists no withheld channel in the served posts and summaries manifests; buildHub and the deploy-all comments say what runs first (review LOW 3, NIT 7) | I Mean I'm Just Saying | 3 | +71 | -6 |
| 2026-10-02 01:05 | common: the hub carries no site's data — compose-hub clears every per-site entry from public/ and ships the global aliases; builtHubProblem refuses a hub bundle that still carries a site's data trees (review HIGH 1) | I Mean I'm Just Saying | 4 | +114 | -0 |
| 2026-10-02 00:59 | common, editor(e2e): a unit test pins the yield; the e2e budget is capped at 15 s (D0 review L5) | I Mean I'm Just Saying | 3 | +54 | -4 |
| 2026-10-02 00:59 | editor: the per-channel Refresh report runs on the refresh-report queue (D0 review L3) | I Mean I'm Just Saying | 2 | +45 | -14 |
| 2026-10-02 00:59 | common: a running regeneration gets one queued successor; REFRESH_REPORT_QUEUE in queueKeys (D0 review L2, N7) | I Mean I'm Just Saying | 3 | +82 | -23 |
| 2026-10-02 00:59 | common, editor: the status memo is keyed by the settings its fold reads (D0 review H1, N8, N9) | I Mean I'm Just Saying | 5 | +85 | -45 |
| 2026-10-02 00:58 | docs: the teaser's dip -- the [Unreleased] entry, two quirks (geq's cost at 1080p against fade to black; -ac 1 reading a stereo ceiling at -3 dB), and "Dip F2, as built" | I Mean I'm Just Saying | 3 | +98 | -0 |
| 2026-10-02 00:56 | plans: slice U1, as shipped — umtool's render scratch goes to a media root | I Mean I'm Just Saying | 1 | +175 | -0 |
| 2026-10-02 00:53 | report-to-video: the join into a dipped teaser holds the outgoing segment through the overlap (xfade custom expr A, acrossfade nofade both sides) -- a dissolve blended the footage with the teaser's black lead and darkened it faster than the deck and feed over it; tests that footage and overlays fade in step | I Mean I'm Just Saying | 3 | +35 | -6 |
| 2026-10-02 00:51 | plans: slice XP, as shipped — X posts are private; the ruling, the slices row, FACTS, the editor changelog | I Mean I'm Just Saying | 3 | +208 | -1 |
| 2026-10-02 00:50 | plans: slice T1 as shipped — the classifier, the media link and the two guards; FACTS; the editor changelog | I Mean I'm Just Saying | 3 | +222 | -0 |
| 2026-10-02 00:46 | common, umtool: a scope-less marker aimed at <root>/<slug>/data holds the text; the hook writes nothing under a marker | I Mean I'm Just Saying | 6 | +70 | -6 |
| 2026-10-02 00:46 | report-to-video: the dip's picture is ffmpeg's fade out to black (yuv420p native, slice-threaded, about 25x faster than geq at 1080p), the geq blend kept for a preview window that starts inside the fade; the README's dip section | I Mean I'm Just Saying | 3 | +106 | -21 |
| 2026-10-02 00:44 | common: compose re-composes only a site's own stages after another site's compose; the per-channel trees keep their signatures | I Mean I'm Just Saying | 1 | +9 | -4 |
| 2026-10-02 00:44 | plans: slice D0's record — the dashboard answers while a snapshot regenerates, as shipped; the editor changelog | I Mean I'm Just Saying | 2 | +155 | -0 |
| 2026-10-02 00:41 | report-to-video: the dip's riser at gain 0.22, about 6 dB under the first hit (the teaser measures -19.7 LUFS, peak -6.0 dBFS); dip.test.mjs -- validation, the lead and card arithmetic, the hits and riser, the schedule's instant hide, the page out of black, the graphs with and without a dip, and real ffmpeg runs: a dipped crossfade and hard cut are black across the whole frame (stand-in deck and feed included) and silent from the clip's last frame through the black, and frame-identical before the fade | I Mean I'm Just Saying | 2 | +517 | -1 |
| 2026-10-02 00:29 | report-to-video: the dip in the joined cut -- the segment before a dipped teaser fades its sound on its join; the whole finished frame (footage, deck, feed, posts, rail) eases to black over its last fade seconds and holds black through the dissolve and the black, by geq after every overlay, in each concat path; the teaser segment and its page take the cut's transition; a cut without a dip writes the graphs it did | I Mean I'm Just Saying | 1 | +192 | -67 |
| 2026-10-02 00:29 | report-to-video: a teaser's dip -- `dip: { fade, black }` validated (only a teaser, not the first entry, fade 0.3-4 s, black 0-3 s); its lead is the dissolve plus the black, its card and lines start after it, its hits carry a riser into the first impact; the schedule names the dip and the deck and feed hide in an instant on the dipped segment's last frame; the page opens out of black (bars closed, a veil lifting around the first impact) | I Mean I'm Just Saying | 4 | +234 | -43 |
| 2026-10-02 00:13 | Merge branch 'deck/teaser-v1' into deck/finale-dip | I Mean I'm Just Saying | 10 | +304 | -49 |
| 2026-10-02 00:13 | Merge branch 'deck/feed-f1' into deck/finale-dip | I Mean I'm Just Saying | 18 | +1926 | -63 |
| 2026-10-01 22:18 | docs: the posts feed -- README, quirks, the [Unreleased] entry and "Feed F1, as built" | I Mean I'm Just Saying | 4 | +186 | -1 |
| 2026-10-01 21:48 | report-to-video: framingProblems builds its sentence without a template nested in a template's ${} -- the build-trace check's scanner read the rest of build-video as one call reaching the CLI guard's import.meta.url | I Mean I'm Just Saying | 1 | +6 | -2 |
| 2026-10-01 21:39 | editor(e2e): dashboard-answers — two 600-video channels regenerated one after the other, the budget floored on the idle page time | I Mean I'm Just Saying | 1 | +98 | -41 |
| 2026-10-01 21:39 | common: compose never ships a posts tree the index build withheld, and trusts its cache only over its own site's last compose | I Mean I'm Just Saying | 2 | +74 | -4 |
| 2026-10-01 21:26 | common, umtool: the lanes by tier, normalize-live-chat's media guard, the cues twin as a text guard | I Mean I'm Just Saying | 8 | +516 | -134 |
| 2026-10-01 21:19 | editor(e2e), export(e2e): where X posts appear persists beside the login source; a private site saves and every deploy refuses it; a public site built with X private has no Posts box | I Mean I'm Just Saying | 3 | +193 | -0 |
| 2026-10-01 21:19 | editor: Where X posts appear on /settings, a site's Audience, and the deploy actions refuse a private site | I Mean I'm Just Saying | 8 | +198 | -6 |
| 2026-10-01 21:19 | common: X posts are private — social.x.visibility, a site's audience, one predicate for both builds, and the deploy refusal | I Mean I'm Just Saying | 19 | +889 | -24 |
| 2026-10-01 21:15 | common, editor: every media finalisation tiers, every deleter derefs | I Mean I'm Just Saying | 14 | +133 | -19 |
| 2026-10-01 21:15 | common: the media tier's model — mediaDir, legacy, the text guard, lanes and builds by tier | I Mean I'm Just Saying | 36 | +1339 | -479 |
| 2026-10-01 21:06 | report-to-video: the feed opens the room before a post comes in over it -- the push is front-loaded (0.4 s) and the entrance waits 0.22 s, so a new card never overlaps the ones it moves | I Mean I'm Just Saying | 1 | +6 | -5 |
| 2026-10-01 20:59 | umtool: the posts layout switch (popup | feed); the preview lays the feed over the whole cut and frames the footage in the feed's box | I Mean I'm Just Saying | 8 | +550 | -20 |
| 2026-10-01 20:58 | editor(e2e): dashboard-answers.spec — / and /jobs answer while a 2,000-video report regenerates; a ghost running meta is closed as interrupted and does not block a move | I Mean I'm Just Saying | 2 | +301 | -0 |
| 2026-10-01 20:58 | report-to-video: posts.layout "feed" -- the posts as a column beside the footage for the whole cut, ticking in at each clip's start, never held | I Mean I'm Just Saying | 6 | +1185 | -42 |
| 2026-10-01 20:57 | umtool: docs and changelog for the media root and the cache's new place | I Mean I'm Just Saying | 3 | +35 | -2 |
| 2026-10-01 20:52 | umtool: storage tests; e2e cache in the fixture; a storage spec over a media root | I Mean I'm Just Saying | 9 | +602 | -7 |
| 2026-10-01 20:51 | common, editor: boot closes the running metas a dead process left behind | I Mean I'm Just Saying | 6 | +315 | -11 |
| 2026-10-01 20:51 | common, editor: the auto-queue status poll shares one fold of the snapshots | I Mean I'm Just Saying | 4 | +205 | -5 |
| 2026-10-01 20:51 | common: a report regeneration yields to the event loop, and runs one at a time | I Mean I'm Just Saying | 4 | +218 | -103 |
| 2026-10-01 20:51 | plans: Teaser V1, as built — the beat, nothing squeezed, the gates and the four variants | I Mean I'm Just Saying | 1 | +51 | -0 |
| 2026-10-01 20:46 | Merge main (a210dace, the deck/posts-room branch) into r17/umtool-media-root | I Mean I'm Just Saying | 43 | +6029 | -277 |
| 2026-10-01 20:41 | umtool: out/ through ensureOutDir; storage movers; doctor roots; storage CLI | I Mean I'm Just Saying | 11 | +677 | -13 |
| 2026-10-01 20:41 | umtool: MEDIA_ROOT beside REPORTS_ROOT; CACHE_DIR moves to the user cache | I Mean I'm Just Saying | 2 | +69 | -4 |
| 2026-10-01 20:39 | docs: a teaser's `beat`, its proportions, and the length a teaser without `seconds` gets | I Mean I'm Just Saying | 3 | +26 | -9 |
| 2026-10-01 20:33 | Merge deck/posts-room — room for posts (4 s per post, whole-frame hold, footage aside), per-clip muteFrom and render.endFade, the QR host label fitted, the teaser timeline entry, the clip bench playing bounded ranges through Web Audio with a mute mark (GET /api/report/audio), and the A/V sync fix (xfadeGraph pins each input's sound to its picture's length); reviewed SHIP | I Mean I'm Just Saying | 43 | +6029 | -277 |
| 2026-10-01 20:33 | report-to-video: a teaser's `beat` sets the seconds between its pops; nothing is squeezed to fit | I Mean I'm Just Saying | 7 | +228 | -41 |
| 2026-10-01 20:32 | Merge main (9babe0ee) into deck/posts-room — the join before the room, finale, teaser and bench land | I Mean I'm Just Saying | 3 | +337 | -7 |
| 2026-10-01 20:32 | common: the media tier's classifier and its hook (mediaTier.ts, mediaTier-server.ts) | I Mean I'm Just Saying | 4 | +804 | -0 |
| 2026-10-01 20:32 | docs: the bench's changelog bullet says a mark within 0.02 s of a moved edge is clamped onto it, not refused | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-10-01 20:30 | plans: the fix pass after the finale review — FIX-A, FIX-B, LOW-1 to LOW-7, the gates | I Mean I'm Just Saying | 1 | +42 | -0 |
| 2026-10-01 20:22 | plans: release 17 — the media tier (plan + record file); step 0a done | I Mean I'm Just Saying | 1 | +326 | -0 |
| 2026-10-01 20:22 | docs: the records agree with the A/V pin and the end fade; the acrossfade-vs-xfade drift is a quirk; the teaser measures −19.7 LUFS | I Mean I'm Just Saying | 4 | +28 | -11 |
| 2026-10-01 20:21 | report-to-video: a teaser row longer than fits the frame at its role's floor is refused (title 34, kicker 56, overline 64, second tier 66) | I Mean I'm Just Saying | 3 | +66 | -2 |
| 2026-10-01 20:17 | report-to-video: the teaser segment's key carries the encode's parameters, so a crf, preset or audio change re-encodes it with the clips | I Mean I'm Just Saying | 3 | +25 | -12 |
| 2026-10-01 20:16 | report-to-video: a muteFrom past the cut's end is noted as not heard, not as muted from there | I Mean I'm Just Saying | 3 | +41 | -5 |
| 2026-10-01 20:16 | umtool: a window save clamps a mute mark within 0.02 s of the moved edge onto it and stores it, so the build accepts every manifest updateClip saved | I Mean I'm Just Saying | 2 | +29 | -1 |
| 2026-10-01 20:15 | umtool: the bench's audio decode runs the build's FFMPEG_BIN and is killed when its request is aborted | I Mean I'm Just Saying | 1 | +8 | -3 |
| 2026-10-01 20:15 | umtool: the clip bench takes MUTE_FADE from a dependency-free mute.mjs, so deck.mjs stays out of its client bundle | I Mean I'm Just Saying | 4 | +14 | -4 |
| 2026-10-01 20:12 | plans: the clip bench's exact playback and mute mark (slice B1), as built; one [Unreleased] bullet | I Mean I'm Just Saying | 2 | +29 | -0 |
| 2026-10-01 20:11 | report-to-video: an end fade longer than the last segment is the segment, so its last frame is bg | I Mean I'm Just Saying | 3 | +60 | -4 |
| 2026-10-01 19:48 | Merge deck/teaser-t1 (slice T1) — the teaser timeline entry: a full-frame season-teaser card rendered by HyperFrames (lines popping top to bottom, a two-tier title, the tail fading in after), synthesized trailer hits on each pop from the same cue times, cached by content; umtool shows it as a card row; reviewed by contact sheet | I Mean I'm Just Saying | 15 | +1362 | -23 |
| 2026-10-01 19:47 | plans: the teaser (T1), as built — the line shape, hits, --chrome-only building teasers, the gates | I Mean I'm Just Saying | 1 | +61 | -0 |
| 2026-10-01 19:43 | docs: the teaser entry — README section, four quirks, one [Unreleased] bullet | I Mean I'm Just Saying | 3 | +114 | -1 |
| 2026-10-01 19:34 | umtool: a teaser entry is a card row named by its lines; the teaser's supporting lines a size up | I Mean I'm Just Saying | 5 | +24 | -8 |
| 2026-10-01 19:19 | umtool e2e: the posts and mute specs follow whole-frame holds and the build's mute fade | I Mean I'm Just Saying | 2 | +38 | -30 |
| 2026-10-01 19:19 | report-to-video: a `teaser` entry — a full-frame season-teaser card drawn from the manifest's words, with a trailer hit under each pop | I Mean I'm Just Saying | 7 | +1168 | -19 |
| 2026-10-01 19:01 | umtool: the bench's mute preview is the build's — one MUTE_FADE (0.04 s, from deck.mjs), a ramp that ends at the mark | I Mean I'm Just Saying | 2 | +18 | -8 |
| 2026-10-01 19:00 | Merge deck/bench-b1 (slice B1) — the clip bench plays every bounded range through Web Audio from a server-side ffmpeg decode (stops on the scheduled end: 0 of 20 trials off, was ~230 ms over), the mute mark (m / pick on waveform / nudge / clear) saved through the window route, updateClip muteFrom; e2e 97/97; reviewed | I Mean I'm Just Saying | 10 | +1574 | -52 |
| 2026-10-01 18:50 | umtool: the following picture is pulled back to the sound, and its own pause no longer moves the playhead | I Mean I'm Just Saying | 1 | +22 | -1 |
| 2026-10-01 18:46 | umtool: the bench's audio-clock playhead paints at 30 Hz, and the exact-stop spec checks the start against the schedule | I Mean I'm Just Saying | 2 | +22 | -7 |
| 2026-10-01 18:41 | plans: the crossfade drift is fixed (d8fc333d), not left | I Mean I'm Just Saying | 1 | +6 | -8 |
| 2026-10-01 18:41 | report-to-video: the crossfade concat pins every clip's sound to its picture's length | I Mean I'm Just Saying | 6 | +127 | -13 |
| 2026-10-01 18:38 | Merge deck/finale-b2 (slice B2) — the room review's fixes (the move after the hold, the freeze check's window, whole-frame holds), per-clip muteFrom and render.endFade applied where the cut is joined (the <id>.cut.json record for the segment's real start), the QR host label fitted to the code's height; ferret scratch QR 17/17 + 7/7, silence from the mute point; reviewed | I Mean I'm Just Saying | 11 | +999 | -56 |
| 2026-10-01 18:35 | plans: finale B2 as built — the review fixes, muteFrom, render.endFade, the fitted QR host label, the gates | I Mean I'm Just Saying | 1 | +64 | -0 |
| 2026-10-01 18:31 | umtool: the clip bench plays every bounded range from decoded audio, and sets a clip's mute mark | I Mean I'm Just Saying | 3 | +979 | -52 |
| 2026-10-01 18:28 | umtool: a clip's muteFrom is written by updateClip, and a window's sound is served decoded | I Mean I'm Just Saying | 7 | +559 | -0 |
| 2026-10-01 18:21 | umtool: README, quirks and the changelog for muteFrom, render.endFade and the fitted QR host label | I Mean I'm Just Saying | 3 | +76 | -1 |
| 2026-10-01 18:18 | umtool: a clip's muteFrom and render.endFade, made where the cut is joined; the QR's host label runs the code's full height | I Mean I'm Just Saying | 5 | +673 | -26 |
| 2026-10-01 18:08 | umtool: the footage move runs after the hold, the freeze check samples only still picture, holds are whole frames | I Mean I'm Just Saying | 7 | +187 | -30 |
| 2026-10-01 17:47 | umtool: an export with no chapters.ffmeta reads a deck cut's offsets from its schedule.json, holds included | I Mean I'm Just Saying | 1 | +16 | -1 |
| 2026-10-01 17:47 | Merge deck/room-r1 (room slice R1) — the hold (tpad clone + apad) and the footage move (perspective, smoothstep, fillborders to bg) on the carrying clip's input where the cut is joined, every length under the deck from the schedule, the hard-cut record carrying holds and moves, verify-build's freeze check; cards that slide in from the frame's edge with an accent flare, rail and platform pill; ferret scratch 360.2 s, QR 7/7 + 17/17; reviewed by contact sheet | I Mean I'm Just Saying | 9 | +915 | -110 |
| 2026-10-01 17:46 | plans: room for posts R1 as built — the move by perspective, 24 px cards, the gates | I Mean I'm Just Saying | 1 | +56 | -0 |
| 2026-10-01 17:33 | report-to-video: docs for room for posts — the hold, the move, 4 s each, the cards | I Mean I'm Just Saying | 3 | +89 | -12 |
| 2026-10-01 17:32 | Merge deck/room-r2 (room slice R2) — umtool: posts.hold and the make-room switch in the settings form (shift:false round-trips), the preview schedule re-holding a built schedule from the manifest now, the backdrop moving with the footage inside a window, held tails on the segment bar; e2e 94/94; reviewed by screenshots | I Mean I'm Just Saying | 8 | +601 | -57 |
| 2026-10-01 17:23 | report-to-video: posts read as an interruption — cards slide in from the frame's edge, flare and settle, with an accent rail and a platform pill | I Mean I'm Just Saying | 2 | +81 | -39 |
| 2026-10-01 17:23 | report-to-video: room for posts in the build — the hold and the footage move are joined on the carrying clip's input | I Mean I'm Just Saying | 3 | +689 | -59 |
| 2026-10-01 17:21 | umtool e2e: the posts spec's timings at the fixture's 0.2 s crossfade | I Mean I'm Just Saying | 1 | +24 | -21 |
| 2026-10-01 17:10 | umtool e2e: the posts preview at the 4 s default with holds and the footage moving aside; make room off persists shift: false | I Mean I'm Just Saying | 1 | +191 | -13 |
| 2026-10-01 17:10 | umtool: room for posts in the On-screen section — hold and make-room settings, the held schedule, the footage moving aside in the preview | I Mean I'm Just Saying | 7 | +407 | -44 |
| 2026-10-01 16:59 | plans: release 16 complete and live on :3001 — FK, RM, XL; STATE | I Mean I'm Just Saying | 2 | +11 | -7 |
| 2026-10-01 16:59 | report-to-video: room for posts — the contract and the core (4 s each, a hold on the carrying clip, the footage moves aside) | I Mean I'm Just Saying | 4 | +170 | -16 |
| 2026-10-01 16:53 | Merge r16/x-login (release 16 slice XL) — connecting an X account works: the Connect window is the operator's own browser without automation signals, and the fetchers can use the operator's browser login directly (social.x.cookieSource, gallery-dl's container semantics, a Check that says what gallery-dl will see); the refresh never replaces a logged-in jar with an empty one; reviewed SHIP | I Mean I'm Just Saying | 31 | +2991 | -88 |
| 2026-10-01 16:53 | plans: slice XL's re-review (SHIP), the merge of main with slice RM, the gates after it | I Mean I'm Just Saying | 1 | +17 | -1 |
| 2026-10-01 16:49 | Merge main (c9776bb5, slice RM) into r16/x-login | I Mean I'm Just Saying | 30 | +2923 | -173 |
| 2026-10-01 16:46 | Merge r16/move-holds-writers (release 16 slice RM) — a media move refuses to start over a running job (naming it), holds the channel's writers while its marker stands, mirrors its copy before verifying (the --delete direction guarded against the live media, every removal logged), and the Storage panel offers Reconcile and resume; the writer that got past the guard on 2026-09-30 was a Transcribe all batch whose per-video guard ran only at enqueue — a queued media job now re-checks when it starts; a cancelled job counts as a writer until it has stopped; reviewed SHIP | I Mean I'm Just Saying | 30 | +2923 | -173 |
| 2026-10-01 16:39 | plans: slice RM — the review (SHIP AFTER FIXES), its fixes, the guard as it now is, the merge of main, the gates after them | I Mean I'm Just Saying | 2 | +92 | -32 |
| 2026-10-01 16:32 | plans: slice XL's review — the fixes in the record and FACTS (gallery-dl's containers, the WAL-only line, x.com-only logins, the refresh that keeps a logged-in jar, the --test-type wording), L2 and I2–I5 found and left, the operator's step 0, the gates after it | I Mean I'm Just Saying | 2 | +131 | -33 |
| 2026-10-01 16:26 | Merge main (0512803e, plans only: slice XL's ruling) into r16/move-holds-writers | I Mean I'm Just Saying | 1 | +25 | -0 |
| 2026-10-01 16:25 | editor: changelog — the review fixes in RM's bullet; a made-up video id in its example | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-10-01 16:25 | common, editor: review fixes — the --delete guard checks the live media the caller names; every removal logged; a cancelled job counts until it has stopped; Reconcile past the copy phase says "resumed" | I Mean I'm Just Saying | 11 | +378 | -65 |
| 2026-10-01 16:22 | common: slice XL review fixes — the browser login is read as gallery-dl reads it, the Check says what gallery-dl cannot see yet, and a refresh never replaces a logged-in jar with an empty one | I Mean I'm Just Saying | 8 | +604 | -120 |
| 2026-10-01 16:02 | plans: slice RM, as shipped — a move holds the channel's writers and mirrors its copy; which writer got past the guard on 2026-09-30; FACTS; the editor changelog | I Mean I'm Just Saying | 3 | +254 | -1 |
| 2026-10-01 16:01 | plans: slice XL's e2e run — 46 passed | I Mean I'm Just Saying | 1 | +6 | -5 |
| 2026-10-01 15:35 | plans: slice XL as shipped — the Connect window without automation signals, the browser-login source, what was measured; FACTS; the editor changelog | I Mean I'm Just Saying | 3 | +235 | -1 |
| 2026-10-01 15:27 | editor: the X account session shows the login source in use, checks whether an X login is visible in it, and lets the operator choose it | I Mean I'm Just Saying | 4 | +305 | -39 |
| 2026-10-01 15:27 | common: X login — the Connect window is the operator's own browser without the automation signals, and the X fetchers can use the operator's browser login (social.x.cookieSource) | I Mean I'm Just Saying | 23 | +1840 | -36 |
| 2026-10-01 15:00 | plans: release 16 slice XL — connecting an X account works: the operator's own browser without automation signals, and the fetchers can use the operator's browser login directly | I Mean I'm Just Saying | 1 | +25 | -0 |
| 2026-10-01 14:53 | editor(e2e): channel-storage — a move refused at its start over a running job, the hold on the rack and the Storage panel, a resume over a stale scratch dir, Reconcile and resume | I Mean I'm Just Saying | 2 | +245 | -1 |
| 2026-10-01 14:49 | editor: the Storage panel and the rack show a channel's media hold; Reconcile and resume; the busy sentence names the writer | I Mean I'm Just Saying | 9 | +161 | -28 |
| 2026-10-01 14:49 | common: a media move refuses to start over a writer, holds the channel's writers while its marker stands, and mirrors its copy before verifying | I Mean I'm Just Saying | 15 | +1889 | -142 |
| 2026-10-01 14:29 | plans: slice RM — the remediation: a failed verification lists the differences by kind and the Storage panel offers Reconcile and resume | I Mean I'm Just Saying | 1 | +7 | -0 |
| 2026-10-01 14:19 | plans: release 16 slice RM — a media move refuses to start over a running job, holds the channel's writers, and mirrors its copy before verifying | I Mean I'm Just Saying | 1 | +21 | -0 |
| 2026-10-01 07:18 | plans: slice FK live on :3001; the posts deck merged and umtool rebuilt; what the operator still owes | I Mean I'm Just Saying | 2 | +9 | -3 |
| 2026-10-01 07:14 | Merge r16/forms-keep-input (release 16 slice FK) — a form that fails keeps what was typed: every refusing action returns the submitted values, the shared field helpers seed from them, controlled choices are put back after React's reset, selects re-seed on success; all fifteen forms and the four structured widgets; reviewed SHIP | I Mean I'm Just Saying | 38 | +2040 | -297 |
| 2026-10-01 07:14 | plans: slice FK — the review (SHIP; L1 fixed in 8b68b475, I1–I3 recorded), brought to main 27f7d3a7, the gates after both | I Mean I'm Just Saying | 1 | +33 | -1 |
| 2026-10-01 07:05 | Merge branch 'main' into r16/forms-keep-input | I Mean I'm Just Saying | 28 | +3207 | -83 |
| 2026-10-01 07:05 | plans: slice FK review — L1's bullet, I1 (the digest boxes give way to another tab's save), I2 (a controlled select resets to its server-rendered or first option), I3 (a blank select for a value no option has) | I Mean I'm Just Saying | 2 | +17 | -6 |
| 2026-10-01 07:05 | editor: ChannelForm create's On create boxes seed only from a refused submit of their own kind (review L1) | I Mean I'm Just Saying | 3 | +73 | -10 |
| 2026-10-01 06:49 | plans: release 16 slice FK, as shipped — a form that fails keeps what was typed; FACTS (the reset, which elements survive it, the values contract, the checkbox rule); the editor changelog | I Mean I'm Just Saying | 3 | +199 | -1 |
| 2026-10-01 06:00 | editor: ControlledCheck/ControlledSelect put the value back after the reset only — never at mount | I Mean I'm Just Saying | 1 | +42 | -23 |
| 2026-10-01 05:46 | editor(e2e): forms-keep-input reads a controlled element once, as the refusal shows | I Mean I'm Just Saying | 1 | +50 | -24 |
| 2026-10-01 05:39 | Merge deck/posts — posts on the report-video on-screen deck (umtool; plans/deck-posts.md); reviewed SHIP by its own session's read-only review, merged by the session holding main | I Mean I'm Just Saying | 26 | +3196 | -73 |
| 2026-10-01 05:39 | Merge main (7fa7dc21) into deck/posts — the join before posts land | I Mean I'm Just Saying | 2 | +35 | -10 |
| 2026-10-01 05:37 | report-to-video: a deck that switches posts off is not held to the posts column's fit; embedFn's note sits above embedFn | I Mean I'm Just Saying | 3 | +18 | -15 |
| 2026-10-01 05:36 | plans: posts on the deck — the review's verdict, its fixes in c0bb74dd and their gates | I Mean I'm Just Saying | 1 | +6 | -0 |
| 2026-10-01 05:31 | plans: releases 13–16 and the deck are in production (2026-10-01 01:31); STATE's Live line | I Mean I'm Just Saying | 2 | +11 | -10 |
| 2026-10-01 05:29 | report-to-video: the posts page names its planner itself, a deck without posts is never refused for the column, and qrencode takes -- before a URL | I Mean I'm Just Saying | 11 | +85 | -22 |
| 2026-10-01 05:27 | editor(e2e): forms-keep-input — a refused submit keeps what was typed, one case per form the slice changed | I Mean I'm Just Saying | 1 | +719 | -0 |
| 2026-10-01 05:21 | editor: the shared widgets' controlled checkboxes and selects survive the reset too — DurationField, SocialLinksField, SiteMembershipsSection, WorkersField | I Mean I'm Just Saying | 4 | +30 | -12 |
| 2026-10-01 05:21 | editor: every other action form keeps what was typed — the operation settings, sync, drive timing, hub, cut release, saved videos, channels, video dir | I Mean I'm Just Saying | 22 | +395 | -187 |
| 2026-10-01 05:19 | plans: posts on the deck, as shipped — the slice table, as built, the gates, what was left, the rollout | I Mean I'm Just Saying | 1 | +52 | -0 |
| 2026-10-01 05:19 | umtool e2e: the posts preview asserts real cards — every window composes and the overlay reports posts:ready (the pending branch for a missing region is gone) | I Mean I'm Just Saying | 1 | +7 | -12 |
| 2026-10-01 05:14 | editor: a form that fails keeps what was typed — formState's values contract, one Field, SiteForm and SettingsForm | I Mean I'm Just Saying | 8 | +546 | -97 |
| 2026-10-01 05:12 | Merge deck/posts-p1 (posts slice P1) — chrome-posts.mjs (cards: date, handle, words clamped, QR; stacked top-down, oldest slide out on overflow, leave in the transition), composeChrome region posts per window with its own cache, snapWindow in deck.mjs, the build passing posts to the schedule and overlaying each window at its from (crossfade, applyChrome, --chrome-only, --chrome-preview), verify-build window checks; ferret scratch QR 7/7; reviewed by contact sheet | I Mean I'm Just Saying | 9 | +1144 | -33 |
| 2026-10-01 05:03 | report-to-video: posts on the deck — README, quirks and changelog | I Mean I'm Just Saying | 3 | +130 | -1 |
| 2026-10-01 05:03 | report-to-video: snapWindow lives in deck.mjs; posts leave front-loaded | I Mean I'm Just Saying | 3 | +25 | -22 |
| 2026-10-01 04:55 | plans: release 16 slice FK — a form that fails keeps what was typed: actions return the submitted values with the error, the field helpers seed from them; the fifteen forms named | I Mean I'm Just Saying | 1 | +24 | -0 |
| 2026-10-01 04:49 | Merge deck/posts-p2 (posts slice P2) — umtool: updatePosts, the posts rows on GET /api/report/onscreen, PUT /api/report/posts, the preview composing posts windows, the files route serving them, the Posts table (auto clip, override, hide) and the deck.posts settings group; e2e 93/93; reviewed | I Mean I'm Just Saying | 14 | +1547 | -36 |
| 2026-10-01 04:49 | umtool: e2e for posts on the deck — onscreen-posts.spec.ts and its fixture | I Mean I'm Just Saying | 2 | +301 | -1 |
| 2026-10-01 04:47 | report-to-video: posts on the deck — the posts region and its overlay | I Mean I'm Just Saying | 5 | +1011 | -32 |
| 2026-10-01 04:43 | umtool: the On-screen section's Posts table, and the posts region in the live preview | I Mean I'm Just Saying | 2 | +464 | -12 |
| 2026-10-01 04:40 | umtool: posts on the deck — updatePosts, the posts rows, and the posts region's preview windows | I Mean I'm Just Saying | 10 | +782 | -23 |
| 2026-10-01 04:29 | report-to-video: posts on the deck — the contract and the pure core | I Mean I'm Just Saying | 3 | +383 | -1 |
| 2026-10-01 04:01 | plans: STATE at 2026-10-01 — main 56547e1a (releases 13, 14, 15, 16 and the on-screen deck); what is live, what the operator owes, the settings and rules changed | I Mean I'm Just Saying | 1 | +24 | -14 |
| 2026-10-01 04:00 | Merge deck/integration — report-to-video's on-screen deck (umtool; plans/onscreen-deck.md); test:scripts covers umtool/lib/report; reviewed SHIP by its own session's read-only review, merged by the session holding main | I Mean I'm Just Saying | 49 | +7481 | -158 |
| 2026-10-01 03:58 | plans: the on-screen deck, as shipped — the review fixes' row, the gates on 60b908a5, the review's verdict and its lows | I Mean I'm Just Saying | 1 | +17 | -1 |
| 2026-10-01 03:53 | report-to-video: the deck reuses a cached hard-cut concat only for the same segments in the same order; chapters take onscreen.title only under the deck | I Mean I'm Just Saying | 2 | +70 | -29 |
| 2026-10-01 03:44 | plans: the on-screen deck, as shipped — the slice table, gates on 663e13ff, what was found and left, the rollout; two [Unreleased] changelog bullets (the deck; a hard-cut cut with a relative --out) | I Mean I'm Just Saying | 2 | +53 | -0 |
| 2026-10-01 03:34 | Merge deck/s6-e2e (deck slice S6) — onscreen.spec.ts with deck fixtures and a HyperFrames stub (mixed RGB/RGBA frames); the On-screen table's reload after a 409 keeps only real edits; timeline-row locators scoped past the new table rows; 87/87 twice; reviewed | I Mean I'm Just Saying | 8 | +664 | -16 |
| 2026-10-01 03:30 | Merge main (b7d31d9a) into deck/integration — the join before the deck lands | I Mean I'm Just Saying | 22 | +655 | -59 |
| 2026-10-01 03:24 | Merge deck/s7-docs (deck slice S7) — README render.chrome/onscreen reference and the deck section, report-video/build/clip-bench docs, three quirks (reinit_filter + rgba, absolute concat list, strict deck fonts), the plan's As built; reviewed | I Mean I'm Just Saying | 6 | +367 | -7 |
| 2026-10-01 03:22 | deck S6: onscreen.spec.ts, two deck fixtures and a HyperFrames stub | I Mean I'm Just Saying | 4 | +635 | -4 |
| 2026-10-01 03:22 | umtool e2e: timeline-row locators name the timeline, not every [data-entry] | I Mean I'm Just Saying | 3 | +16 | -11 |
| 2026-10-01 03:21 | deck S6: the On-screen table's reload after a 409 keeps only real edits | I Mean I'm Just Saying | 1 | +13 | -1 |
| 2026-10-01 03:19 | deck S7: docs for the on-screen deck | I Mean I'm Just Saying | 6 | +367 | -7 |
| 2026-10-01 03:09 | Merge deck/s3-build (deck slice S3) — one build command composes, renders (cached) and overlays the deck; transition 0 through applyChrome; --chrome-only, --no-chrome, --chrome-preview; -reinit_filter 0 + format=rgba on the deck input; verify-build deck checks; the hard-cut concat list names segments absolutely; ferret scratch gates 17/17 QR, chapters equal, round trip deck-only; reviewed by contact sheet | I Mean I'm Just Saying | 3 | +506 | -11 |
| 2026-10-01 03:07 | plans: release 13's Rollout — W3, W1, W2 brought to main on 2026-09-30 after releases 14–16, one rollout with 16; the rules' homepage unit count | I Mean I'm Just Saying | 2 | +15 | -1 |
| 2026-10-01 03:07 | Merge r13/lows-export (release 13 slice W2, brought to main 2026-09-30) — the export and docs lows: ChartView's sixth series reaches --chart-6; an export unit test script; the 2origin stage guard; no-data.spec skips on more than one worker; every MCP example registers archilyzer and runs pnpm --silent -C … archilyzer mcp, applied to the homepage's AI and MCP doc as the one place; the Use-with-AI page work superseded by release 16 DX; reviewed SHIP on 2026-09-28, the merge reviewed SHIP today | I Mean I'm Just Saying | 22 | +635 | -59 |
| 2026-10-01 02:56 | plans: implementer-rules — the homepage build gate is build:nodata, never run build (its prebuild indexes whatever transcripts/ is visible); the corpus link is for next build only | I Mean I'm Just Saying | 1 | +6 | -0 |
| 2026-10-01 02:54 | plans: release 13 — W2's brought-to-main record: run 3's chart failure stated as inferred, and the runs it passed in; found and left in the merge | I Mean I'm Just Saying | 1 | +11 | -1 |
| 2026-10-01 02:53 | plans: release 13 — slice W2 brought to main, the e2e runs: homepage 106/106, no-data skips at --workers=2, the hub 39/39, 2origin 3/3 with one hub build; the export suite under load average 33–42 (238 + 11 failed + 22 not run, then the failing files 90/91, then search-duplicates 10/12, 12/12 with main's ChartView, 12/12 again), every test passing at least once | I Mean I'm Just Saying | 1 | +23 | -2 |
| 2026-10-01 02:33 | report-to-video: the hard-cut concat list names segments by absolute path | I Mean I'm Just Saying | 1 | +5 | -1 |
| 2026-10-01 02:17 | Merge deck/s5-umtool-ui (deck slice S5) — the On-screen section on the report page (switch, settings, title/subtitle table with auto placeholders and a maxChars counter, live composition preview with scrubber, true still, re-render on-screen, the built video) and on-screen fields with a live deck preview on the clip bench; reviewed by screenshots | I Mean I'm Just Saying | 4 | +1603 | -2 |
| 2026-10-01 02:15 | deck S5: On-screen section — errors beside the settings, switch follows the click, folded table when off | I Mean I'm Just Saying | 1 | +164 | -126 |
| 2026-10-01 02:03 | deck S5: on-screen title and subtitle on the clip bench | I Mean I'm Just Saying | 2 | +286 | -2 |
| 2026-10-01 01:59 | deck S5: the On-screen section on the report page | I Mean I'm Just Saying | 2 | +1279 | -0 |
| 2026-10-01 01:51 | deck S3: one command composes, renders and overlays the deck; hard cuts get applyChrome; --chrome-only, --no-chrome, --chrome-preview | I Mean I'm Just Saying | 3 | +501 | -10 |
| 2026-10-01 01:41 | Merge deck/s1-pipeline (deck slice S1) — every segment framed into the deck's footage box (clip, image, shown cards), header/corner QR/footer skipped under the deck, reservedFooterHeight and chromeRegions deck branches, assertChrome at build start, writeChromeSchedule, chapters prefer onscreen.title; byte-identical without render.chrome (c07, t00 md5); reviewed | I Mean I'm Just Saying | 3 | +295 | -24 |
| 2026-10-01 01:39 | Merge deck/s2-composition (deck slice S2) — chrome-deck.mjs (the deck composition: lifted panel, pip track with per-clip fill, title wipe + blade, trailing subtitle, flipping QR, card slides), compose-chrome port (region dispatch, --still, windows, workers, vendored GSAP, pinned renderer, render cache, qrPng); deckLayout tuned; reviewed by stills | I Mean I'm Just Saying | 5 | +1215 | -46 |
| 2026-10-01 01:36 | deck S2: the chart band keeps its font url when the copy fails, as it shipped | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-10-01 01:35 | deck S2: tests for the deck composition; an absolute out dir for the still | I Mean I'm Just Saying | 2 | +311 | -1 |
| 2026-10-01 01:31 | plans: release 13 — slice W2 brought to main: the merge of acd83ceb (the Use-with-AI page yields to release 16 DX; README, mcp/README, ChartView, both changelogs and the Record kept both sides), the homepage doc in W2's command form, re-gates; fix round Q1 superseded; a stray index build through the corpus link, what it wrote and what it left | I Mean I'm Just Saying | 1 | +125 | -2 |
| 2026-10-01 01:24 | deck S2: the deck composition and the compose-chrome port | I Mean I'm Just Saying | 4 | +905 | -46 |
| 2026-10-01 01:20 | Merge deck/s4-umtool-api (deck slice S4) — umtool writers (updateOnscreen, updateChrome, updateClip onscreen), the chrome/onscreen/preview/files/still/video routes, rangeResponse shared with the segment route, buildSteps chromeOnly; reviewed | I Mean I'm Just Saying | 18 | +1631 | -45 |
| 2026-10-01 01:17 | deck S4: the on-screen routes — chrome, onscreen, preview, files, still, video | I Mean I'm Just Saying | 8 | +783 | -0 |
| 2026-10-01 01:17 | deck S4: buildSteps' chromeOnly → --chrome-only, "re-render on-screen" | I Mean I'm Just Saying | 3 | +59 | -9 |
| 2026-10-01 01:17 | deck S4: rangeResponse() shared by the segment route; the deck's serve helpers | I Mean I'm Just Saying | 3 | +357 | -35 |
| 2026-10-01 01:17 | deck S4: the on-screen writers — updateOnscreen, updateChrome, updateClip's onscreen | I Mean I'm Just Saying | 4 | +432 | -1 |
| 2026-10-01 01:13 | deck S1: write the deck's schedule; chapters prefer the on-screen title | I Mean I'm Just Saying | 2 | +156 | -3 |
| 2026-10-01 01:13 | deck S1: frame every segment into the deck's footage box | I Mean I'm Just Saying | 2 | +139 | -21 |
| 2026-10-01 01:04 | deck S0: export ./deck from umtool-report-to-video | I Mean I'm Just Saying | 1 | +1 | -0 |
| 2026-10-01 01:03 | deck S0: the on-screen deck's contract and pure core | I Mean I'm Just Saying | 5 | +1094 | -12 |
| 2026-10-01 01:01 | docs: the homepage's Ten-minute setup runs `pnpm --silent -C "$PWD" archilyzer mcp` | I Mean I'm Just Saying | 5 | +35 | -7 |
| 2026-10-01 00:59 | Merge main (acd83ceb, release 13 W3 and W1 brought to main) into r13/lows-export | I Mean I'm Just Saying | 362 | +35454 | -6916 |
| 2026-10-01 00:53 | Merge r13/lows-editor (release 13 slice W1, brought to main 2026-09-30) — the editor lows: Diagnostics cards keep their retry log when a retry empties the bucket; the transcript-source flake; /sites' built-when refreshes when a homepage build ends; /jobs labels for the hub and homepage kinds; a queued cancel writes its final sidecar status; doctor's worker engine binary from paths; an editor test script; reviewed SHIP on 2026-09-28, the merge reviewed SHIP today | I Mean I'm Just Saying | 19 | +1131 | -48 |
| 2026-10-01 00:47 | plans: slice W1's second join — main at b36ccebb (W3) merged at ac54353b, the changelog and the Record kept both sides (W3's then W1's), doctor merged clean; re-gates (tsc, doctor 19, common 2,402, editor unit 101) | I Mean I'm Just Saying | 1 | +26 | -3 |
| 2026-10-01 00:45 | Merge main (b36ccebb, release 13 slice W3) into r13/lows-editor — the second join | I Mean I'm Just Saying | 13 | +1489 | -45 |
| 2026-10-01 00:42 | Merge r13/build-image (release 13 slice W3, brought to main 2026-09-30) — the per-site build image on Node 22.23.2 and pnpm 11.26.0 with an allow-list context, its comments saying the network is on; archilyzer doctor checks the build image's presence and age; the container Build all works; every site deploy checks its bundle; reviewed SHIP on 2026-09-28, the merge reviewed SHIP today | I Mean I'm Just Saying | 13 | +1491 | -45 |
| 2026-10-01 00:39 | plans: slice W1 brought to main — the merge of bbf1daf8 (one conflict, the editor changelog's [Unreleased] above [0.11.0]; doctor, HomepageBuildButtons, package.json and FACTS kept both sides); re-gates (tsc, common 2,387, editor unit 101 three ways, test:scripts 194+2, mcp 271, the capped editor build, e2e 73+1 then 72/72) | I Mean I'm Just Saying | 1 | +67 | -0 |
| 2026-10-01 00:36 | plans: release 13 slice W3's record names the merge by its reworded sha (d9a43d20, the same tree as f7a047ee) | I Mean I'm Just Saying | 1 | +4 | -1 |
| 2026-10-01 00:35 | plans: release 13 slice W3 brought to main — the merge's four conflicts and how each kept both sides, what moved under the slice, the re-gate (the build image built for real, 1.66 GB in 69 s cold; common 2,396; the capped editor build; e2e 40/40) | I Mean I'm Just Saying | 1 | +85 | -0 |
| 2026-10-01 00:18 | Merge main (bbf1daf8, releases 14–16 and the 0.11.0 cut) into r13/build-image | I Mean I'm Just Saying | 298 | +31818 | -2533 |
| 2026-10-01 00:18 | Merge main (bbf1daf8) into r13/lows-editor — release 13 slice W1 brought to today's main | I Mean I'm Just Saying | 341 | +32834 | -6763 |
| 2026-09-30 23:53 | plans: release 16's Rollout and STATE — CK and DX merged and built through the previews; the production deploys and umtool's restart are the operator's | I Mean I'm Just Saying | 2 | +38 | -14 |
| 2026-09-30 23:42 | Merge r16/research-setup (release 16 slice DX) — the research-only setup told in one place: a Ten-minute setup on the homepage's AI and MCP doc (clone or tarball, pnpm install, claude mcp add archilyzer, claude, /ask); the sites' and the hub's Use-with-AI page is removed and its header, footer, Ask AI, corpus.json and llms.txt links point at the doc; the READMEs register archilyzer; reviewed SHIP | I Mean I'm Just Saying | 24 | +521 | -206 |
| 2026-09-30 23:42 | plans: slice DX after the review — FACTS says which README carries what (L1), the record's base (L4), the slices table's DX row as amended; the review's findings; STATE's two follow-ups | I Mean I'm Just Saying | 3 | +46 | -8 |
| 2026-09-30 23:38 | homepage: the AI and MCP doc names fetch_clip as the one exception to "it only reads" (review L2) | I Mean I'm Just Saying | 1 | +2 | -0 |
| 2026-09-30 23:38 | common: corpus.test pins useWithAi to AI_DOC_URL (site and hub) and llms.txt's two Ask AI lines (review L3) | I Mean I'm Just Saying | 1 | +32 | -1 |
| 2026-09-30 23:22 | plans: slice DX, as shipped — the setup on the homepage's AI and MCP doc, the sites' Use with AI page removed and its links pointed there; FACTS; the changelogs | I Mean I'm Just Saying | 4 | +151 | -0 |
| 2026-09-30 23:07 | docs: mcp/README's two examples name the checkout /ABS/PATH/TO/archilyzer, the directory the clone makes | I Mean I'm Just Saying | 1 | +2 | -2 |
| 2026-09-30 23:04 | export(e2e): responsive expects /changelog/ to overflow a phone until its long inline code wraps; homepage(e2e): the name's reason checked on its list item | I Mean I'm Just Saying | 2 | +10 | -3 |
| 2026-09-30 22:57 | docs: README §4's quickstart starts from the source, as the homepage doc's setup does | I Mean I'm Just Saying | 1 | +2 | -1 |
| 2026-09-30 22:57 | homepage: the AI and MCP doc's Ten-minute setup — clone, pnpm install, claude mcp add archilyzer against the Jeralyzer, claude, /ask | I Mean I'm Just Saying | 3 | +70 | -2 |
| 2026-09-30 22:57 | export: the Use with AI page is removed; the header's, the menu's, the footer's and Ask AI's Use with AI go to the homepage's AI and MCP doc | I Mean I'm Just Saying | 9 | +184 | -41 |
| 2026-09-30 22:57 | common: AI_DOC_URL — corpus.json's useWithAi and llms.txt's Use with AI name the homepage's AI and MCP doc; the sitemap drops /use-with-ai | I Mean I'm Just Saying | 5 | +23 | -150 |
| 2026-09-30 22:38 | docs: mcp/README registers archilyzer in both examples; README §1 registers from the repo root with "$PWD" | I Mean I'm Just Saying | 2 | +8 | -7 |
| 2026-09-30 22:44 | plans: release 16 slice DX — the ruling as amended: the setup lives on the homepage's AI and MCP doc alone; the sites' Use-with-AI page is removed and its links point there; the READMEs stay their own copies | I Mean I'm Just Saying | 1 | +18 | -10 |
| 2026-09-30 22:34 | Merge r16/search-in (release 16 slice CK) — a Search in row on the export and hub search: Transcripts, Posts, Live chat, the first two on by default; the row governs the default leaf (a leaf asked for by name is not changed), all three off refuses the Search, chat hits wear their badge, the toggles persist with the working filters and profiles; a layer with nothing to read now finishes at once (also a hang main had); reviewed SHIP | I Mean I'm Just Saying | 22 | +2007 | -87 |
| 2026-09-30 22:33 | plans: slice CK re-review — R-L1 landed, the mechanism sentence, R-L2 R-I2 R-I1 under "Found and left", the Load-more follow-up in STATE | I Mean I'm Just Saying | 2 | +44 | -4 |
| 2026-09-30 22:29 | common: a cached or empty leaf reports its progress over the scope it read, so "searched N/M" only climbs (re-review R-L1) | I Mean I'm Just Saying | 2 | +41 | -11 |
| 2026-09-30 22:27 | plans: release 16 slice DX — the research-only setup told in one block on the homepage's AI doc and every site's Use-with-AI page; the server is registered as archilyzer everywhere | I Mean I'm Just Saying | 1 | +14 | -0 |
| 2026-09-30 22:18 | plans: slice CK after the review — the rulings, the fixes and the gates; the standing choice says what main did; FACTS; the changelog | I Mean I'm Just Saying | 3 | +137 | -38 |
| 2026-09-30 22:01 | common: the Search in refusal line is a polite live region, not a second role="status" | I Mean I'm Just Saying | 2 | +8 | -4 |
| 2026-09-30 21:44 | export(e2e): search-in after the review — a "Posts" leaf with Posts unticked, a tag chip finishes, no video type kept, the refusal described | I Mean I'm Just Saying | 2 | +70 | -7 |
| 2026-09-30 21:44 | common: Search in after the review — a "Posts" leaf is not the row's, no posts copy under a tag filter, the decision waits for the manifests, the refusal is described and the saves disabled | I Mean I'm Just Saying | 7 | +137 | -38 |
| 2026-09-30 21:44 | common: an empty scope settles — the streaming drivers finalize when no worker starts, and runLeaf answers an empty scope at once (review M1) | I Mean I'm Just Saying | 3 | +166 | -1 |
| 2026-09-30 21:23 | plans: slice CK — the record's commit table carries the plans commit and the merge of the 0.11.0 cut | I Mean I'm Just Saying | 1 | +3 | -1 |
| 2026-09-30 21:23 | Merge main (the 0.11.0 cut) into r16/search-in — the Search in bullet under a fresh [Unreleased] | I Mean I'm Just Saying | 2 | +3 | -1 |
| 2026-09-30 21:22 | plans: slice CK, as shipped — a search reads what the visitor ticked; FACTS "Search in"; the export changelog | I Mean I'm Just Saying | 3 | +248 | -0 |
| 2026-09-30 21:13 | Release export 0.11.0 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-30 21:13 | Release editor 0.11.0 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-30 20:59 | export(e2e): search-in.spec — the Search in row; the fixture's posts get words of their own | I Mean I'm Just Saying | 4 | +294 | -17 |
| 2026-09-30 20:21 | common: the Search in row — Transcripts, Posts, Live chat — on the export and hub search | I Mean I'm Just Saying | 5 | +256 | -48 |
| 2026-09-30 20:21 | common: the filter snapshot stores notr (Transcripts unticked) and lc (Live chat ticked) | I Mean I'm Just Saying | 2 | +99 | -3 |
| 2026-09-30 20:21 | common: applySearchIn — a "transcripts" leaf reads the kinds the Search in row ticks | I Mean I'm Just Saying | 4 | +587 | -0 |
| 2026-09-30 20:03 | 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) | I Mean I'm Just Saying | 1 | +42 | -0 |
| 2026-09-30 14:18 | plans: release 15's Rollout and STATE carry DT and SG — six slices, the homepage owed again for the history, the timings tuned on /storage | I Mean I'm Just Saying | 2 | +14 | -9 |
| 2026-09-30 14:18 | Merge r15/stagit (release 15 slice SG) — the source's history and diffs on the homepage: stagit renders the audited mirror into /source/git/ (log, refs, one page per commit with its diff, Atom feed; the Files page links into the raw tree), inside the source gate and the deploy check, noindex like the tree, capped at 10,000 commits, cached under ~/.cache/archilyzer; without the binary the publish says so and goes on; doctor reports stagit, its cache and the drive-health timings; reviewed SHIP | I Mean I'm Just Saying | 33 | +3453 | -286 |
| 2026-09-30 14:17 | plans: slice SG — the re-review's row: a withdrawal never fails over the render cache | I Mean I'm Just Saying | 1 | +1 | -0 |
| 2026-09-30 14:17 | common: a withdrawal never fails over the render cache — a cache it cannot remove is one masked line, and the refusal's exit 1 and the withdrawn source stand (re-review); test with a read-only cache dir | I Mean I'm Just Saying | 2 | +48 | -2 |
| 2026-09-30 14:13 | plans: slice SG — the review (SHIP AFTER FIXES) and its fixes: M1 ruled noindex, L1–L6 and L8 to their commits, the corrections (the cache path, `total`, "every other link resolves"); the re-gates (common 2,347, the three source specs 12/12, publish and --check, every tree and commit link resolving, the capped editor and homepage builds with the corpus linked); FACTS for the unlinking, the stale lock, the unusable cache and noindex | I Mean I'm Just Saying | 2 | +86 | -27 |
| 2026-09-30 14:12 | docs: PUBLISH.md — /source/git/* is noindex like the raw tree; a link to what is not published is text; stagit's -c walk stops at the last head in commit-date order, so a merge of older commits renders every page again (about 8 s), and which timing is stagit's and which the step's; a stale lock is replaced, an unusable cache is rendered without | I Mean I'm Just Saying | 1 | +20 | -7 |
| 2026-09-30 14:07 | common: SG review fixes — every history log line is masked (L1); a render cache that cannot be made or written (EACCES, EROFS, ENOSPC on the dir, the lock or the key) is one line and a render without it, never a failed build (L2); the retry after stagit's -c misses a merge of older commits says so (L3); the post-pass drops the href of a link to a file main no longer has, or to a commit with no page (the parent past the cap), keeping the text and the #h target (L4); `source publish`'s usage names the history (L5); a test for the file-count drop, through a historyFileLimit seam (L6); a lock is stale when its pid is not running or it is over an hour old, and is replaced with one line (L8) | I Mean I'm Just Saying | 5 | +361 | -49 |
| 2026-09-30 14:07 | homepage: /source/git/* is X-Robots-Tag: noindex, like the raw tree (review M1, ruled); pinned in headers.test.ts, with the pages' own types kept | I Mean I'm Just Saying | 2 | +20 | -0 |
| 2026-09-30 13:43 | plans: slice SG — the parent's four rulings applied (the cap at the newest 10,000 commits by stagit -l, read in stagit.c and measured; the render cache in the XDG cache dir; the diff tokens and the themeConfig re-export stand), the merge of main with slice DT and doctor's drive-health line; the re-gates (common 2,341, the three source specs 12/12, source publish and --check); FACTS for the cap, the cache and doctor, anchors refreshed | I Mean I'm Just Saying | 2 | +104 | -36 |
| 2026-09-30 13:39 | common: doctor applies the drive-health timings (settings.storage.health) before it inspects any drive, as the index and stats bins do, and says which are in force on a "drive health" line (slice DT's Found and left) | I Mean I'm Just Saying | 2 | +45 | -9 |
| 2026-09-30 13:37 | Merge main (release 15 slice DT) into r15/stagit — release-15.md keeps IG, UT, DS, SS, DT, then SG before the Rollout, and both slices-table rows; the editor changelog keeps DT's bullet, then SG's | I Mean I'm Just Saying | 39 | +1660 | -187 |
| 2026-09-30 13:34 | changelog: the history's cap and the render cache's place, in the editor and homepage [Unreleased] bullets | I Mean I'm Just Saying | 2 | +2 | -2 |
| 2026-09-30 13:34 | docs: PUBLISH.md — the history's cap (the newest 10,000 commits: -l, the log's commits' pages only, "the latest N of M"), the render cache in ${XDG_CACHE_HOME:-~/.cache}/archilyzer/source-history, doctor's cache line | I Mean I'm Just Saying | 1 | +33 | -20 |
| 2026-09-30 13:34 | homepage: past the cap the History block says "the latest N of M commits"; the fixture publish can be capped, and source.spec checks that the log lists exactly the commits with a page | I Mean I'm Just Saying | 5 | +34 | -6 |
| 2026-09-30 13:34 | common: doctor's stagit line ends with the render cache — "cache: <path>, <size>" (stat'd; "none yet" when it is not there) | I Mean I'm Just Saying | 2 | +32 | -7 |
| 2026-09-30 13:34 | common: the history is capped by commit count — past SOURCE_HISTORY_MAX_COMMITS (10,000) stagit runs with -l, whose log keeps the newest and says how many more; stagit refuses -c with -l and still writes a page for every commit, so the pages published are exactly the log's commits (loggedCommits), under the cap too; the manifest's history gains `total` (the latest N of M); the 15,000-file drop stays as the last resort. The render cache moves to ${XDG_CACHE_HOME:-~/.cache}/archilyzer/source-history (getPaths().sourceHistoryCacheDir, XDG_CACHE_HOME declared), made with a recursive mkdir, never inside the checkout or the public dir (historyCacheFor renders without it there, and says so); its pages are kept by key, its log lines only when they end at an ancestor. The fake stagit is one fixture (__fixtures__/fakeStagit.ts) with -c and -l as stagit.c has them | I Mean I'm Just Saying | 10 | +446 | -173 |
| 2026-09-30 13:27 | Merge r15/drive-timings (release 15 slice DT) — the drive-health timings are settings.storage.health (the watchdog budget, the pass interval, the probe timeout, the clean passes that clear a stall, the calls in flight per drive, at most 8), edited in a Drive health timing block on /storage, applied at once on save; reviewed SHIP | I Mean I'm Just Saying | 39 | +1660 | -187 |
| 2026-09-30 13:26 | plans: slice DT after review — the parent's rulings (the half-interval floor stays; a lowered cap is reached as calls return; doctor's line is slice SG's); the review's findings to their commits; the cap at most 8 in the record and FACTS; the re-gates | I Mean I'm Just Saying | 2 | +57 | -25 |
| 2026-09-30 13:24 | editor: review L2 — a storage patch of the locations keeps storage.health (and savedVideosLocationId): one saveSettings merge case | I Mean I'm Just Saying | 1 | +22 | -0 |
| 2026-09-30 13:24 | common: review L4 — a timeout on no known location names the budget the call ran against, not the one in force when it throws. Test | I Mean I'm Just Saying | 2 | +19 | -1 |
| 2026-09-30 13:22 | plans: slice SG, as shipped — the source's history and diffs at /source/git/, rendered by stagit (519cae2f): the step, the post-pass, the stylesheet, the gate, the key, the cache, the no-stagit path, the History block; the gates (common 2,318, homepage e2e 11 + the full 103, the proof build: 1,872 commits in 1,878 files, 141.3 MB, the largest 5.0 MB, the user name and hostname 0), what was found and left (the file limit about three months away), the decisions; the SG row; FACTS "The source's history (stagit)" | I Mean I'm Just Saying | 2 | +249 | -0 |
| 2026-09-30 13:21 | common: review M1 — inFlightPerLocation is at most 8, half the editor's 16 file-access threads, so one drive that stops answering cannot hold every one; the hint, SETTINGS.md and the tests | I Mean I'm Just Saying | 4 | +16 | -11 |
| 2026-09-30 13:20 | docs: PUBLISH.md's source-mirror section gains the history pages — the table row, the install line for stagit, what the step does with it (the allowlist, the post-pass, the gate, the manifest block, the render cache), its size at 1,872 commits and the file limit ahead; the withdrawal and the deploy check name the history; the homepage's Install and FAQ mention it; the editor and homepage [Unreleased] bullets | I Mean I'm Just Saying | 5 | +86 | -12 |
| 2026-09-30 13:14 | homepage: the History block's head is the short sha, linking to its commit page; the history pages' clone line wraps at phone width | I Mean I'm Just Saying | 4 | +17 | -5 |
| 2026-09-30 13:08 | plans: slice DT as shipped — the drive-health timings are settings.storage.health, edited on /storage; the slices row; FACTS' storage health gate names the setting and its accessor; the changelog | I Mean I'm Just Saying | 3 | +236 | -38 |
| 2026-09-30 13:07 | homepage: /source/ gains a History block — the commit count and head from the manifest, links to the log, the refs and the Atom feed — shown only when the manifest has a history and its log page is here; the e2e reads a fixture publish (E2E_SOURCE_PUBLIC_DIR, never in a production build) to show the page with and without one, and source.spec walks the real pages: the site's line, the theme by stored choice and by the OS, a commit, the Files index into the raw tree, the feed untouched | I Mean I'm Just Saying | 10 | +316 | -12 |
| 2026-09-30 13:07 | common: `archilyzer doctor` reports stagit beside git-filter-repo — its path, or not found with the install line; a STAGIT_BIN that names nothing is a warning, never a failure | I Mean I'm Just Saying | 2 | +41 | -9 |
| 2026-09-30 13:07 | common: the source's history pages — `source publish` renders the scrubbed mirror with stagit into /source/git/ (log, a page per commit with its diff, refs, files, two Atom feeds) after the object audit and before the file audit; an allowlist of stagit's output, never its per-file pages (every file/ link now points into the raw tree); a post-pass adds the homepage's pre-paint theme script and one line back to /source/ to every page, never the feeds; style.css from tokens.css; the manifest's history block, stagit and the pages' digest in the skip key, the deploy check names history pages that are not the audited ones; a render cache under the scratch root (stagit -c), keyed, ancestry-checked, one holder at a time; without stagit, one line and no history, never a failed build; STAGIT_BIN; step version 4 | I Mean I'm Just Saying | 9 | +1618 | -31 |
| 2026-09-30 13:07 | common: the theme config moves to lib/ (the source publish reads the pre-paint script, and the publish layer may not import components/); components/themeConfig re-exports it; HOMEPAGE_DEFAULT_BASE is the one name for the homepage's dark default, which its layout passes to ThemeScript and ThemeProvider | I Mean I'm Just Saying | 3 | +224 | -209 |
| 2026-09-30 13:05 | common: the cap's hint says to keep it well under the editor's 16 file-access threads — a drive that stops answering holds that many of them | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-30 13:00 | editor(e2e): storage-locations — the drive health timing saves to settings.json, reads back on reload, refuses a value out of range, and an emptied field writes nothing | I Mean I'm Just Saying | 1 | +82 | -0 |
| 2026-09-30 13:00 | editor: /storage's Drive health timing — five fields for settings.storage.health, saved through the one writer and applied at once; the surfaces say the setting, not the constant | I Mean I'm Just Saying | 13 | +409 | -24 |
| 2026-09-30 13:00 | common: the drive-health timings are settings — settings.storage.health (budgetMs, passIntervalMs, probeTimeoutMs, clearAfterCleanPasses, inFlightPerLocation), today's constants as the defaults | I Mean I'm Just Saying | 21 | +855 | -124 |
| 2026-09-30 05:15 | plans: releases 14 and 15 merged — release 15's Rollout (the homepage live from 2ad584c0, the runbook, the order, what the reviews left for the operator); the two SS decisions ruled; STATE; the implementer rules' corpus link is ln -sT | I Mean I'm Just Saying | 3 | +71 | -4 |
| 2026-09-30 05:13 | Merge r15/site-scope (release 15 slice SS) — the editor's active site is a cookie, read once by the root layout and supplied through a provider: the picker shows the stored site on its first paint and never rewrites the URL, Dashboard and Channels open in it at once, a ?site= link wins for that request, the editor's own navigation no longer appends ?site=, a pick in one tab reaches the others, the new-channel form starts on the active site; one-time migration from localStorage; reviewed SHIP | I Mean I'm Just Saying | 18 | +1242 | -141 |
| 2026-09-30 05:06 | plans: slice SS after the merge of main — L5 to its commits, the new-channel pre-check, the re-gates | I Mean I'm Just Saying | 3 | +37 | -21 |
| 2026-09-30 04:56 | editor(e2e): site-scope — a new channel starts checked on the stored site, or a ?site= link's, and a cleared box stays cleared | I Mean I'm Just Saying | 1 | +48 | -0 |
| 2026-09-30 04:56 | editor: a new channel starts checked on the active site, from the provider; the stale ?site= comments (review L5) | I Mean I'm Just Saying | 4 | +50 | -49 |
| 2026-09-30 04:52 | Merge main (release 15 DS, CF, UT; release 14 S1, HS) into r15/site-scope — release-15.md kept main's sections whole (IG, UT, DS) and put SS's after them, before the Rollout, with SS's row after UT's in the slices table; FACTS and the editor changelog merged cleanly | I Mean I'm Just Saying | 68 | +5974 | -368 |
| 2026-09-30 04:50 | plans: SS record — two lines reflowed | I Mean I'm Just Saying | 1 | +6 | -6 |
| 2026-09-30 04:50 | plans: slice SS after the review — M1, L1 and L2 to their commits; L3, L4 and L6 recorded; the rulings | I Mean I'm Just Saying | 3 | +88 | -18 |
| 2026-09-30 04:49 | Merge r15/drive-stall (release 15 slice DS) — a drive that stops answering no longer stops the editor: per-location health in memory from the block device's counters (child stat as the fallback) and a 3 s watchdog on every gated call, at most four calls in flight per drive, a slow drive told apart from a stalled one, the pages and polls answer without touching a stalled drive, the index and stats builds hold it, /storage and the rack say not answering since when, auto-pause carries the cause; UV_THREADPOOL_SIZE=16; reviewed SHIP | I Mean I'm Just Saying | 50 | +4587 | -248 |
| 2026-09-30 04:49 | editor: the layout's picker comment says every page renders per request (review L1) | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-30 04:49 | editor(e2e): site-scope — a site picked in another tab, and no ?site= once a page settles (review M1, L2) | I Mean I'm Just Saying | 1 | +57 | -1 |
| 2026-09-30 04:49 | editor: a site picked in one tab reaches the editor's other tabs (review M1) | I Mean I'm Just Saying | 2 | +49 | -6 |
| 2026-09-30 04:46 | plans: slice DS — the overdue refusal's slow-or-stalled test as a decision row (it replaces the Found-and-left note), in the mechanism, the Review table and the commit table; FACTS on it and refreshed anchors; re-gates (tsc; common 2,301; e2e storage + channels 38/38) | I Mean I'm Just Saying | 2 | +27 | -20 |
| 2026-09-30 04:42 | common: the overdue refusal tells slow from stalled by the counters, as a timeout does | I Mean I'm Just Saying | 2 | +86 | -8 |
| 2026-09-30 04:38 | plans: slice DS after the re-review — M4 (the slot wait's deadline follows progress) and L11 to their commits; the limit statement says a drive slower than the budget per unit is treated as not answering and that queue depth no longer is; FACTS on the queue's deadline and refreshed anchors; re-gates (tsc; common 2,299; editor unit 87; e2e storage + channels 38/38) | I Mean I'm Just Saying | 2 | +46 | -22 |
| 2026-09-30 04:34 | common: re-review M4 — a wait for a slot is refused only when nothing on the drive has answered for the budget, not for the queue's depth | I Mean I'm Just Saying | 3 | +142 | -20 |
| 2026-09-30 04:34 | editor: re-review L11 — the health pass's block sits above the storage boot probe's comment, which no longer calls itself the only thing an idle boot runs | I Mean I'm Just Saying | 1 | +15 | -15 |
| 2026-09-30 04:23 | plans: slice DS after the review — each finding to its commit (M1–M3, L1–L10) in a Review table; the mechanism as built (the queue's deadline and overdue count, slot keys, slow-not-stalled, the health pass above the idle gate, the snapshot walk through onDrive); the stated limit said as it is; the hand-typed-root limit and the spin-down question; re-gates on the merged tree (common 2,295, editor unit 87, test:scripts 194+2, docs clean, editor build 63 s / 1,641,444 KB, e2e 73/73); FACTS "The storage health gate" rewritten; the changelog | I Mean I'm Just Saying | 3 | +203 | -113 |
| 2026-09-30 04:19 | plans: slice SS as shipped — the editor's site scope is a cookie | I Mean I'm Just Saying | 3 | +236 | -0 |
| 2026-09-30 03:39 | editor: the picker drops a held choice once the URL moves | I Mean I'm Just Saying | 2 | +20 | -1 |
| 2026-09-30 03:37 | Merge main (2ad584c0: release 14 HS, S1 and CF, release 15 UT) into r15/drive-stall | I Mean I'm Just Saying | 53 | +2840 | -216 |
| 2026-09-30 03:36 | editor: review L1, L3 — the channel page's statfs of the drive goes through the watchdog; the comments name the detectors as they are | I Mean I'm Just Saying | 5 | +31 | -10 |
| 2026-09-30 03:36 | common: review M3 — the snapshot walk of a relocated channel goes through the watchdog | I Mean I'm Just Saying | 3 | +66 | -11 |
| 2026-09-30 03:36 | common, editor: review M2, L4, L9 — the health pass is armed above the idle gate; an auto-pause says whether the drive is not there or not answering | I Mean I'm Just Saying | 5 | +178 | -50 |
| 2026-09-30 03:36 | common: review M1, M2 (keys), L2, L5, L6, L7, L8, L10 — onDrive's queue has a deadline and a stall refuses it; the counters count every completion and ask findmnt only when they must | I Mean I'm Just Saying | 5 | +507 | -152 |
| 2026-09-30 03:20 | editor: next.config's retired-satellite comment — the picker no longer reconciles a ?site= on a site's tab | I Mean I'm Just Saying | 1 | +2 | -1 |
| 2026-09-30 03:07 | Merge r14/chart-fold (release 14 slice CF) — the homepage growth chart draws the instances under 5 % of the total together as one Other band on top, in a dedicated neutral (--chart-other) that clears the colour-blind floor on both grounds; a lone small instance is not folded; the legend shows the kept instances and Other, the hover titles and the year table still name every instance; reviewed SHIP | I Mean I'm Just Saying | 11 | +788 | -63 |
| 2026-09-30 03:05 | plans: slice DS after the parent's rulings — two detectors (the block device's counters every 15 s, a 3 s watchdog on every gated call with four calls per location), the marker before the gate, every memo decider listed, the ports test folded; gates (common 2,280, editor unit 87, test:scripts 191+1, docs clean, e2e storage + channels 38/38); FACTS "The storage health gate" rewritten; the changelog | I Mean I'm Just Saying | 3 | +233 | -156 |
| 2026-09-30 03:03 | Merge r15/umtool-trace (release 15 slice UT) — umtool's build no longer traces its whole folder: one way to name a cache file, outputFileTracingExcludes for the dot-directories, a post-build .nft.json check that skips a stale build, the trace guard reads the modules a route imports and the open and write calls; under(first, ...rest); FACTS corrected; reviewed SHIP | I Mean I'm Just Saying | 11 | +599 | -57 |
| 2026-09-30 03:02 | plans: slice CF — the fold spec's fills read OTHER_COLOR (`--chart-other`) in the record | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-30 03:02 | plans: slice CF — the post-merge gates (tsc; common 2,229; homepage unit 20; the three chart specs 22/22) and the commit table | I Mean I'm Just Saying | 1 | +14 | -4 |
| 2026-09-30 03:02 | editor(e2e): site-scope — the picker's first paint, a ?site= link's scope, and the localStorage migration | I Mean I'm Just Saying | 1 | +208 | -6 |
| 2026-09-30 03:02 | editor: the provider's two effects write the cookie without an optimistic state change | I Mean I'm Just Saying | 1 | +28 | -5 |
| 2026-09-30 03:01 | plans: UT's gates after the review and the merge of main — tsc; common 2,229; test:scripts 195 + 1 skipped (196); the capped umtool build passes the post-build check, and the same build with its BUILD_ID set back skips it, saying why | I Mean I'm Just Saying | 1 | +17 | -1 |
| 2026-09-30 02:59 | common: the health pass reads the block device's request counters; a child stat only when no device can be named | I Mean I'm Just Saying | 6 | +569 | -31 |
| 2026-09-30 02:58 | Merge main (eec2f36d, release 14 slice S1) into r14/chart-fold | I Mean I'm Just Saying | 15 | +629 | -46 |
| 2026-09-30 02:54 | plans: slice CF after the review — `--chart-other` and its numbers in the record (the sweep sentence withdrawn), the Review table, the CF row lists tokens.css and FACTS, Found and left and Decisions updated; FACTS; the homepage changelog | I Mean I'm Just Saying | 3 | +75 | -38 |
| 2026-09-30 02:53 | Merge main (eec2f36d, release 14 HS and S1) into r15/umtool-trace | I Mean I'm Just Saying | 37 | +1457 | -100 |
| 2026-09-30 02:53 | plans: UT's review (SHIP AFTER FIXES) to its commits — M1 (a stale umtool build skips the post-build check; the changelog, FACTS and "Found and left" say so; the rollout rebuilds umtool in the primary, then runs test:scripts), L1, L2 (with the excludes the check sees only a name they miss), L3 ("left 31 / 49 of the 68 clean"), L4 (next-server.js:620); the rulings on the three questions | I Mean I'm Just Saying | 3 | +89 | -33 |
| 2026-09-30 02:52 | homepage: e2e reads the Vermilion site's rust off its /stats/ line (review L2) | I Mean I'm Just Saying | 1 | +29 | -5 |
| 2026-09-30 02:52 | common, homepage: Other wears its own token, `--chart-other` (review M1) | I Mean I'm Just Saying | 5 | +45 | -21 |
| 2026-09-30 02:52 | umtool: review L3 — the ignoreIssue comment says "left 31 / 49 of the 68 routes clean" (two were clean before) | I Mean I'm Just Saying | 1 | +8 | -8 |
| 2026-09-30 02:52 | scripts: review L1 + L2 + L3 — only the build's own cache/ and dev/ are left unread (a test pins it); the post-build check's comment says that with the excludes in place it sees such a pattern only through a name they miss; "left 31 of the 68 routes clean" | I Mean I'm Just Saying | 1 | +35 | -10 |
| 2026-09-30 02:52 | editor: the pages' reads of a relocated channel's drive go through the watchdog | I Mean I'm Just Saying | 6 | +219 | -88 |
| 2026-09-30 02:52 | common: the relocation marker is read before the stall gate; a 3 s watchdog on every gated call, and at most four calls in flight per location | I Mean I'm Just Saying | 11 | +860 | -161 |
| 2026-09-30 02:51 | scripts: review M1 — the post-build check skips a umtool build older than next.config.ts or any module it scans for umtool, saying when it was built and what changed since | I Mean I'm Just Saying | 1 | +14 | -1 |
| 2026-09-30 02:45 | editor: the active site is a cookie, read once by the root layout and supplied through SiteScopeProvider | I Mean I'm Just Saying | 9 | +470 | -84 |
| 2026-09-30 02:38 | plans: slice DS as shipped — the storage health probe and its gate, the memo, the thread pool; gates (common 2,256, editor unit 87, test:scripts 191+1, mcp 271, docs clean, editor build 104 s / 1,643,860 KB, e2e 124+3 flaky / 70+1 flaky / 24); found and left (the root's inode cache, the ungated clicks, jobs in flight); FACTS "The storage health gate"; the editor changelog | I Mean I'm Just Saying | 3 | +240 | -1 |
| 2026-09-30 02:43 | editor: the saved-video inventory and the Cleanup stage do not read a stalled drive | I Mean I'm Just Saying | 4 | +72 | -3 |
| 2026-09-30 02:01 | editor: UV_THREADPOOL_SIZE=16 for the editor's `start` and the container | I Mean I'm Just Saying | 5 | +15 | -1 |
| 2026-09-30 02:35 | plans: slice CF, as shipped — the growth chart's Other band; the slices table, Order and Rollout carry CF; FACTS; the homepage changelog | I Mean I'm Just Saying | 3 | +208 | -5 |
| 2026-09-30 02:33 | plans: slice UT as shipped — the bisect to the clip-audio route's join (the ternary in its template), cacheFile, the excludes measured alone, the ignoreIssue kept with its measured reason, the guard's post-build check and relative-import scan set; FACTS corrected (the opt-out is not documented for path or fs calls, an fs call on an opted-out join is not covered, an env or home-directory value is a dynamic part, a pattern walk does not enter symlinks); the editor changelog | I Mean I'm Just Saying | 3 | +246 | -13 |
| 2026-09-30 02:21 | scripts: the trace guard reads umtool's last build back, follows relative imports, and checks opens and writes | I Mean I'm Just Saying | 1 | +180 | -18 |
| 2026-09-30 02:12 | common: paths.ts under(first, ...rest) — the opt-out sits before a named first argument, not a spread (release 14 review L3) | I Mean I'm Just Saying | 1 | +4 | -3 |
| 2026-09-30 02:12 | umtool: outputFileTracingExcludes keeps the e2e fixture, .next-e2e and env files out of every route's trace; the ignoreIssue stays, with its measured reason | I Mean I'm Just Saying | 1 | +25 | -7 |
| 2026-09-30 02:24 | umtool: cache files are named through cacheFile — the clip-audio route's join stops tracing umtool's dot-directories | I Mean I'm Just Saying | 5 | +34 | -16 |
| 2026-09-30 02:20 | Merge r14/first-search (release 14 slice S1) — the search page, and the hub's, shows a clear screen until the first Search: the bar, the intro, the hint and the footer; a link carrying a query or a filter runs on load; a stored query stays held; reviewed SHIP | I Mean I'm Just Saying | 15 | +625 | -43 |
| 2026-09-30 02:03 | homepage: e2e for the growth chart's Other band | I Mean I'm Just Saying | 3 | +144 | -18 |
| 2026-09-30 02:01 | editor: a drive that is not answering is said so, and its pages read nothing from it | I Mean I'm Just Saying | 15 | +246 | -4 |
| 2026-09-30 02:00 | homepage: the growth chart folds sites under 5 % of its total into one Other band on top | I Mean I'm Just Saying | 4 | +339 | -39 |
| 2026-09-30 01:57 | Merge main (release 15 IG, release 14 HS) into r14/first-search — the two record conflicts kept both sides: the export changelog's [Unreleased] carries HS's bullet then S1's; release-14.md carries the HS and S1 rows, HS's "as shipped" section then S1's before the Rollout, and HS's Rollout edits with S1's live checks after them | I Mean I'm Just Saying | 32 | +2070 | -111 |
| 2026-09-30 01:52 | common: a stalled drive is asked out of process and then not asked in-process | I Mean I'm Just Saying | 21 | +1486 | -36 |
| 2026-09-30 01:52 | plans: S1's review fixes recorded — the rulings apart from the parent's directions and my decisions (L3); two page-life flags and the second-mount tests (M1); L2 left; the review table and the re-gates; the S1 row of the slices table and three S1 live checks in the Rollout (L4); the plan's as-built note and the export changelog say a stored query stays held under a filter link | I Mean I'm Just Saying | 3 | +86 | -21 |
| 2026-09-30 01:47 | Merge r14/hidden-sites (release 14 slice HS) — hidden sites: site.json `listed` (default true, only false written); an unlisted site builds and deploys and is listed nowhere public — homepage cards, chart, stats and totals, channel-sites.json, the pooled stats, the hub's members, corpus.json and llms.txt, every sibling's footer; a shared channel is credited to the listed site; one checkbox in the site form; reviewed SHIP | I Mean I'm Just Saying | 24 | +832 | -57 |
| 2026-09-30 01:46 | plans: slice HS after the review — the commit table (rewritten trailers, the review fixes, the merge of main), the review's findings to their commits, the post-merge gates (tsc; common 2,229; the unlisted-site spec 3/3) | I Mean I'm Just Saying | 1 | +54 | -23 |
| 2026-09-30 01:39 | export: restore-no-refire covers a second mount — a tg= link, then another page and Back, and a ch= link, then the header's Search link, each leave the stored query held with no shard fetched (review M1) | I Mean I'm Just Saying | 1 | +73 | -2 |
| 2026-09-30 01:39 | common: a filter-only link no longer releases a stored query — two page-life flags, one job each: ranThisPageLife keeps release 8's hold rule (a commit, a profile load, an active URL query), askedThisPageLife drives the clear screen (a run, or a link that carries a query or a filter); the held-query comment says the clear screen (review M1, L1) | I Mean I'm Just Saying | 1 | +33 | -21 |
| 2026-09-30 01:37 | Merge main (bac70970, release 15 IG) into r14/hidden-sites | I Mean I'm Just Saying | 11 | +1238 | -54 |
| 2026-09-30 01:37 | plans: FACTS' naming hazards gain `listed`/`unlisted` (a video's visibility, the hub's loaded list, a site the family lists); release 14's slices table and Order carry HS; the Rollout names HS, counts public LISTED sites at the hub check, and checks the new box (review L4, L6) | I Mean I'm Just Saying | 2 | +23 | -8 |
| 2026-09-30 01:37 | common: a shared channel stays the listed site's when the unlisted site's id sorts first (review L3) | I Mean I'm Just Saying | 1 | +16 | -0 |
| 2026-09-30 01:37 | homepage: the fixture's second list unlists every site in it (buildFixtureInputs sets `listed: false`); the unlisted-site spec also proves the site is in the builder's input and that, listed, it would change the summary (review L1, L2) | I Mean I'm Just Saying | 2 | +46 | -12 |
| 2026-09-30 01:21 | Merge r15/index-hold (release 15 slice IG) — the index build holds a channel whose media cannot be read instead of emptying it: not rescanned, its records and shared pages kept, its availability states carried; a full rebuild with one held refuses unless ARCHILYZER_INDEX_ALLOW_HELD=1; heldChannels in the result and the log; the hold's words shared with the stats build; reviewed SHIP | I Mean I'm Just Saying | 11 | +1238 | -54 |
| 2026-09-30 01:18 | plans: slice HS as shipped — hidden sites (`listed: false`): the record, the proof through the real builds (0 occurrences of the unlisted fixture in the homepage and hub outs), the gates; the three changelogs | I Mean I'm Just Saying | 4 | +189 | -0 |
| 2026-09-30 01:18 | plans: slice S1 as shipped — the record (rulings, step 0 settled: the hub renders SearchResults, Back restores the listing, measured; the tests; gates; decisions the operator could overturn); the plan's S1 as built; the export changelog | I Mean I'm Just Saying | 3 | +143 | -0 |
| 2026-09-30 01:18 | plans: IG's review (SHIP AFTER FIXES) to its commits — M1 case (i), L3/L5 wording; FACTS L1 (a stats-only run between a drive's return and the next index build counts a held video as not indexable, healed by that build) and L2 (the processing-phase gap loses subs and digests too, until any tracked mtime moves), anchors refreshed; the changelog says where the override is set; common 2,220 | I Mean I'm Just Saying | 3 | +79 | -36 |
| 2026-09-30 01:16 | common(test): review M1 — case (i): the drive is lost mid-walk (after the scan's first metadata stat); the second look holds the channel, 0 removed, records and pages unchanged (without that look, 3 of 4 removed) | I Mean I'm Just Saying | 1 | +51 | -0 |
| 2026-09-30 01:16 | common: review L3 + L5 — one unreadable video directory is logged as "a video in its data directory could not be read", apart from an unreadable data/; the full-rebuild refusal says where ARCHILYZER_INDEX_ALLOW_HELD is set (the command's own environment, or the editor's, which takes a restart) | I Mean I'm Just Saying | 2 | +19 | -4 |
| 2026-09-30 01:01 | plans: slice IG as shipped — the index build's hold, who reports it, the tests against the old code, gates (common 2,219, editor unit 87, test:scripts 191+1, mcp 271, docs clean, editor build 64 s / 1,642 MB, e2e 35/35 in 3.6 min); FACTS "The index build's hold"; the STATE follow-up closed; the editor changelog | I Mean I'm Just Saying | 5 | +231 | -14 |
| 2026-09-30 00:54 | export: e2e for the clear screen — first-search.spec (no results on load, the footer whole on the first screen at 1280×800 and 390×844, Enter and the button show every video, a filter change alone shows nothing, / → /ask → / and Back keep the listing, a reload clears it, qt= and filter-only links show results on load, a restored query shows the clear screen and the filled form); one showAll helper, pressed where specs read the listing at load (export and hub) | I Mean I'm Just Saying | 9 | +271 | -16 |
| 2026-09-30 00:52 | common: a clear screen until the first Search — the results area renders nothing until the visitor asks in this page life (a Search, Enter, a Filters Apply, a profile load, or a link that carries a query or a filter); the bar's "Press Enter or click Search to apply" line shows meanwhile; ranThisPageLife feeds a reactive searchedThisPageLife, and the dead searchExecuted state is deleted | I Mean I'm Just Saying | 3 | +57 | -21 |
| 2026-09-30 00:51 | common: the index build holds a channel whose media cannot be read instead of emptying it — not rescanned, its records and shared pages kept, its availability states carried; a full rebuild with one held refuses unless ARCHILYZER_INDEX_ALLOW_HELD=1; heldChannels in the result and the log; new buildIndex.test.ts | I Mean I'm Just Saying | 4 | +800 | -16 |
| 2026-09-30 00:51 | common: the hold's words move to lib/channelMediaHold.ts — which statuses hold, why (no path), and the ways out a refusal names — so the index build can share them; the stats build's messages are unchanged | I Mean I'm Just Saying | 2 | +70 | -25 |
| 2026-09-30 00:50 | homepage: the e2e fixture carries a seventh, unlisted site (its own two channels, and the first site's first channel shared); a spec proves the summary, `/` and `/stats/` name it nowhere and count none of its own channels | I Mean I'm Just Saying | 2 | +83 | -7 |
| 2026-09-30 00:47 | sites: one checkbox, "List on the Archilyzer homepage and hub", on by default; saveSiteAction carries the opt-out into the Site it rebuilds, so a save of any other field keeps it | I Mean I'm Just Saying | 4 | +78 | -0 |
| 2026-09-30 00:46 | common: the hub does not list an unlisted site — not in hub-sites.json, so not a member, not in federated search, the hub's corpus.json or llms.txt | I Mean I'm Just Saying | 2 | +48 | -4 |
| 2026-09-30 00:46 | common: the homepage summary, channel-sites.json and the pooled stats leave out an unlisted site and the channels only it exposes; summary v6 | I Mean I'm Just Saying | 7 | +222 | -35 |
| 2026-09-30 00:46 | common: site.json `listed` — a per-site opt-out, absent = listed, only false written; one predicate, isListedSite; the footer never links an unlisted sibling | I Mean I'm Just Saying | 4 | +108 | -3 |
| 2026-09-30 00:43 | plans: release 15's record — storage and build hardening: three slices (IG the index build's hold, DS a stalled drive, UT umtool's trace) | I Mean I'm Just Saying | 1 | +29 | -0 |
| 2026-09-29 04:48 | Merge r14/two-grounds-headers (release 14 slices T1, H1, H2) — two grounds, Light and Dark, and each site wears its own accent; the export and hub headers carry the social row and the theme toggle, link to the official instances, Changelog in the footer; on a narrow screen the header keeps the name and shows only the links marked for it; stacked bars take the surface gap, stacked areas keep their edge; reviewed SHIP | I Mean I'm Just Saying | 110 | +3962 | -1591 |
| 2026-09-29 04:47 | plans: found and left — on the homepage with a page-set root size, the nav joins the bar at md and the bar overflows from 768 px | I Mean I'm Just Saying | 1 | +6 | -0 |
| 2026-09-29 04:47 | plans: the narrow header re-measured after the gap ruling (every real title in full at 360 px under touch); the re-review's findings to their commits; N4 ruled as built; the Rollout marks the link before any build (N3); STATE; the plan; the changelogs | I Mean I'm Just Saying | 5 | +112 | -40 |
| 2026-09-29 04:36 | homepage, export: the narrow/wide switch is 32.5rem, so it moves with the reader's text size; the homepage keys the wordmark's fit by the wide row's count from the switch (re-review N5) | I Mean I'm Just Saying | 4 | +181 | -33 |
| 2026-09-29 04:29 | export, common: the wordmark's reservation is a minimum width, so text that renders wider than the display face's metrics widens its box instead of clipping (re-review N2) | I Mean I'm Just Saying | 3 | +49 | -11 |
| 2026-09-29 04:27 | export: below 520 px the header bar's two gaps are 8 px, so every real site title shows in full at 360 px with one marked link under touch (re-review N1) | I Mean I'm Just Saying | 3 | +91 | -45 |
| 2026-09-29 04:13 | plans: r14/two-grounds-headers after its review — each finding to its commit, the narrow-header ruling's record and measured table, the Rollout; the plan; STATE | I Mean I'm Just Saying | 3 | +255 | -11 |
| 2026-09-29 03:47 | common, homepage, export, editor: on a narrow screen the header keeps the name and shows only the links marked for it | I Mean I'm Just Saying | 20 | +445 | -153 |
| 2026-09-29 03:12 | export, common: stale reader-accent text; a named-accent site in the export suite (review L5, L10) | I Mean I'm Just Saying | 6 | +58 | -9 |
| 2026-09-29 03:12 | export, common: the brand shrinks first at lg; the wordmark's width is reserved from the display face; the footer's row wraps; the header at 200 % text (review L1, L2, L6, L9) | I Mean I'm Just Saying | 9 | +415 | -7 |
| 2026-09-29 02:59 | editor, common: the hub URL texts say what the setting does now, not a Hub link (review M2) | I Mean I'm Just Saying | 7 | +7 | -6 |
| 2026-09-29 02:58 | homepage: the growth chart measures a band's thickness at right angles to the edge before it takes a gap (review M1) | I Mean I'm Just Saying | 5 | +365 | -86 |
| 2026-09-29 02:58 | common, export: stacked areas keep their series-coloured edge; the surface gap stays on stacked bars only (review H1) | I Mean I'm Just Saying | 6 | +225 | -36 |
| 2026-09-29 02:09 | plans: r14/two-grounds-headers as shipped — the final review's Lows, the chart's gap, T1, H1/H2; the plan as built; STATE; FACTS' guard entry | I Mean I'm Just Saying | 6 | +392 | -52 |
| 2026-09-29 01:47 | export: the footer's dot shows only after a downloads link; the social row keeps the shared row's inset | I Mean I'm Just Saying | 2 | +9 | -5 |
| 2026-09-29 01:40 | export: the header carries the social row and the theme toggle as one group, links to the official instances in place of the sites menu and the hub link; Changelog to the footer (release 14 slices H1, H2) | I Mean I'm Just Saying | 9 | +418 | -174 |
| 2026-09-29 01:40 | homepage, common: Official Instances has an anchor, /#instances, and INSTANCES_URL names it (release 14 slice H1, the planned H3 folded in) | I Mean I'm Just Saying | 6 | +32 | -143 |
| 2026-09-29 01:24 | common, export, editor, homepage: two grounds, Light and Dark; each site wears its own accent (release 14 slice T1) | I Mean I'm Just Saying | 56 | +548 | -764 |
| 2026-09-29 01:09 | homepage, common: chart bands are parted by a 2 px gap in the surface's colour; the foreground separator lines are withdrawn | I Mean I'm Just Saying | 11 | +201 | -60 |
| 2026-09-29 00:49 | common, homepage, export, scripts: every cwd-derived path op the three Next apps bundle opts out of Turbopack's tracing; the guard covers them (final review F8) | I Mean I'm Just Saying | 9 | +213 | -74 |
| 2026-09-29 00:49 | common: the how-to-export hint only on a drawing program's leftovers; stale text (final review F3, F4) | I Mean I'm Just Saying | 7 | +48 | -20 |
| 2026-09-29 00:49 | homepage: the social row's scroll box and the compact nav are not tab stops of their own; the toggle's no-flash test records every accent change (final review F1, F5) | I Mean I'm Just Saying | 5 | +36 | -6 |
| 2026-09-29 00:33 | Merge homepage/social-visible (release 14 slice HP) — the homepage shows the social links in its header at every width, with the theme toggle as one group; Changelog in the footer; the instance cards name each site with its wordmark; the chart's separators contrast with the ground; social icons are config, checked by an allowlist on save and again at render; reviewed SHIP | I Mean I'm Just Saying | 63 | +3887 | -484 |
| 2026-09-29 00:14 | plans: slice HP's record after the re-review — the chart, the narrow header, the toggle, R1–R10, the gates; the plan's H1, H2 and T1; STATE; the changelogs as the end state | I Mean I'm Just Saying | 6 | +293 | -186 |
| 2026-09-29 00:13 | Merge main (88db32b9, slice Q's umtool build trace) into homepage/social-visible | I Mean I'm Just Saying | 13 | +372 | -24 |
| 2026-09-29 00:10 | plans: the rollout smoke check reads the deferred list's real field — entries carry `untilMs`; the check asked for `until`, so it passed only when the list was empty | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-29 00:05 | Merge fix/umtool-build-trace — umtool's production build no longer walks the corpus: every path joined from the working directory in a module the app imports opts out of Turbopack's asset tracing (slice Q, found after rollout); a guard in test:scripts; the build gate runs with the corpus visible under a memory cap | I Mean I'm Just Saying | 12 | +371 | -23 |
| 2026-09-29 00:04 | plans: slice Q, found after rollout — the umtool build walked the corpus; the hazard in FACTS, the capped corpus-visible build gate | I Mean I'm Just Saying | 4 | +143 | -0 |
| 2026-09-28 23:59 | scripts: a guard — no umtool app module joins a cwd-derived path without turbopackIgnore | I Mean I'm Just Saying | 1 | +195 | -0 |
| 2026-09-28 23:59 | umtool: cwd-derived paths opt out of Turbopack's asset tracing | I Mean I'm Just Saying | 7 | +33 | -23 |
| 2026-09-28 23:54 | Merge main (2e614464, the stats fix) into homepage/social-visible | I Mean I'm Just Saying | 16 | +1466 | -43 |
| 2026-09-28 23:52 | common, export, homepage: each social key clips its icon's paint and a refused icon's label is bounded; e2e proves the parser invariant and that nothing is fetched (re-review R1, R2, R4, R7) | I Mean I'm Just Saying | 5 | +67 | -13 |
| 2026-09-28 23:52 | common, editor: a stored icon the checker now refuses no longer blocks an unrelated save; doctor names it (re-review R3) | I Mean I'm Just Saying | 11 | +269 | -60 |
| 2026-09-28 23:50 | common: the icon checker drops title and desc, refuses anything that loads from elsewhere, allows presentation styles only, and names how to export an acceptable file (re-review R1, R2, R5, R6, R8, R9) | I Mean I'm Just Saying | 6 | +365 | -36 |
| 2026-09-28 23:32 | homepage: one toggle that cycles the base in place of the Options dialog; the homepage's accent is pinned | I Mean I'm Just Saying | 14 | +243 | -332 |
| 2026-09-28 23:25 | homepage: on a very small screen the header keeps its mark and drops the word; the social links scroll only when they still cannot fit | I Mean I'm Just Saying | 3 | +226 | -78 |
| 2026-09-28 23:12 | Merge fix/stats-cache-key — a video's stats follow its transcript: the stats cache is keyed on the index's record of each video as well as its metadata, a transcript always has a date, and a site's card counts every transcript; a stats build refuses while a channel's media is unreachable and refuses to clear a cache written by a newer build; reviewed SHIP; the recount is the operator's (plans/stats-cache-key.md) | I Mean I'm Just Saying | 16 | +1466 | -43 |
| 2026-09-28 23:11 | plans: stats cache key — the re-review's touch-ups to the rollout, FACTS and STATE | I Mean I'm Just Saying | 3 | +127 | -55 |
| 2026-09-28 23:09 | homepage: the growth chart's separators in the ground's foreground — dark on Light and Sepia, light on Dark | I Mean I'm Just Saying | 6 | +117 | -5 |
| 2026-09-28 23:09 | common: buildStats' refusal names every way out, and "not indexable" names an unreachable drive | I Mean I'm Just Saying | 2 | +64 | -13 |
| 2026-09-28 22:54 | plans: the stats cache key — the review, the rewritten rollout, FACTS, STATE, changelogs | I Mean I'm Just Saying | 6 | +260 | -123 |
| 2026-09-28 22:54 | plans: release 14 slice HP as shipped, with the review and its fixes; the plan's HP, H1 and H2; STATE; changelogs | I Mean I'm Just Saying | 5 | +482 | -61 |
| 2026-09-28 22:44 | homepage: each Official Instances card names its site with the site's wordmark, the lead tinted in its accent | I Mean I'm Just Saying | 9 | +273 | -22 |
| 2026-09-28 22:44 | common: buildStats test (i) asserts the kept stats before the new result field | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-28 22:44 | common(test): source.test expands the "~" the kept-scratch log line prints | I Mean I'm Just Saying | 1 | +5 | -3 |
| 2026-09-28 22:43 | homepage: the social row and the Options gear in the header at every width; Changelog in the footer only | I Mean I'm Just Saying | 12 | +823 | -62 |
| 2026-09-28 22:42 | common: SocialLinks, OptionsDialog and ThemeRadios; export: the slide-out menu renders ThemeRadios, the footer's icons pass the render-time check | I Mean I'm Just Saying | 5 | +329 | -104 |
| 2026-09-28 22:42 | common: buildStats refuses a newer cache, keys on the whole index record, keeps an unmounted drive's stats | I Mean I'm Just Saying | 4 | +490 | -111 |
| 2026-09-28 22:42 | common: buildIndex records when its last completed scan began | I Mean I'm Just Saying | 2 | +14 | -0 |
| 2026-09-28 22:42 | editor: "Show in header" on each social link, with its hint; a refused icon's save names why | I Mean I'm Just Saying | 6 | +78 | -12 |
| 2026-09-28 22:41 | common: the social icon is checked by an allowlist on save and at render; a sized icon gets a viewBox; `featured` on a social link | I Mean I'm Just Saying | 10 | +954 | -145 |
| 2026-09-28 22:09 | plans: the stats cache key — record, FACTS, changelogs | I Mean I'm Just Saying | 4 | +219 | -5 |
| 2026-09-28 22:00 | mcp: pin get_video_metadata's stats block on a recomputed stat | I Mean I'm Just Saying | 1 | +76 | -0 |
| 2026-09-28 22:00 | common: the homepage fold counts a transcript with no transcribedDate | I Mean I'm Just Saying | 2 | +73 | -6 |
| 2026-09-28 22:00 | common: buildStats test (b) asserts the heal before the new unindexed count | I Mean I'm Just Saying | 1 | +9 | -7 |
| 2026-09-28 21:59 | common: the stats cache keys on the index's transcript record, and a transcript always has a date (stats schema 6) | I Mean I'm Just Saying | 3 | +431 | -22 |
| 2026-09-28 20:11 | Merge plans/export-header-first-search — release 14 planned: the export header carries the social row, one Options button, a link to the Archilyzer home in place of the Sites dropdown, a clear screen until the first Search; nothing built | I Mean I'm Just Saying | 2 | +295 | -0 |
| 2026-09-28 20:11 | plans: release 14 — the social icons in the export header, one Options button, the Sites dropdown as a link to the Archilyzer home, and a clear screen until the first Search | I Mean I'm Just Saying | 2 | +295 | -0 |
| 2026-09-28 19:13 | Merge r12/source-mirror (release 12 records) — the rollout checklist, STATE and FACTS for the source mirror, and AGENTS.md's section on it; merged, not deployed | I Mean I'm Just Saying | 4 | +353 | -0 |
| 2026-09-28 19:12 | docs: AGENTS.md "The source mirror" — what the step is, never print the operator files, never bypass the gate, no `.git` segment | I Mean I'm Just Saying | 1 | +20 | -0 |
| 2026-09-28 19:12 | plans: release 12 merged, not rolled out — release-12.md "Merged" and the owed Rollout, STATE's "Now", FACTS' source-mirror section | I Mean I'm Just Saying | 3 | +333 | -0 |
| 2026-09-28 19:01 | Merge r12/source-mirror (release 12 slice R) — `archilyzer source publish` and /source: a read-only git mirror of main on the project site (dumb HTTP), its raw tree and a tarball, scrubbed by git-filter-repo and refused by an audit gate when a denied literal remains; a refusal withdraws the previous publish and the deploy refuses a source it cannot vouch for; create-archives.sh deleted; reviewed SHIP | I Mean I'm Just Saying | 48 | +4859 | -139 |
| 2026-09-28 19:00 | plans: slice R's re-review record — R2-L1…L4 fixed (296b8a04, 4372e5cc), each key test proved by reverting its fix, the gates re-run | I Mean I'm Just Saying | 1 | +70 | -0 |
| 2026-09-28 18:56 | docs: PUBLISH.md — the deploy key covers gitleaks and every published file; refusals are masked; rebuild the editor after merging | I Mean I'm Just Saying | 1 | +18 | -6 |
| 2026-09-28 18:55 | common: refusals masked, a digest of every published file and the gitleaks identity in the key (re-review R2-L1, L2, L4), and the key's tests bite (R2-L3) | I Mean I'm Just Saying | 3 | +258 | -35 |
| 2026-09-28 18:37 | plans: slice R's review record — M1 and the Lows fixed, the five questions as ruled, the gates re-run; source-mirror.md's "As shipped" for R | I Mean I'm Just Saying | 2 | +193 | -0 |
| 2026-09-28 18:34 | common: the deploy check keys on the source's artefacts and the /source page, not on out/source existing | I Mean I'm Just Saying | 4 | +31 | -7 |
| 2026-09-28 18:25 | docs: PUBLISH.md says a refusal withdraws, previews are public, compressed content is opaque; .dockerignore, project.ts, /sites copy | I Mean I'm Just Saying | 5 | +90 | -21 |
| 2026-09-28 18:22 | homepage: E2E_EXPECT_SOURCE makes the /source specs fail on the empty state; unit tests for the loader and _headers | I Mean I'm Just Saying | 7 | +199 | -5 |
| 2026-09-28 18:22 | common: a refusal withdraws the last publish, a build's out/ copy and any deploy of it (review M1), and the Lows | I Mean I'm Just Saying | 7 | +644 | -127 |
| 2026-09-28 18:22 | common: the audit report names a literal by where it was written and prints no object bytes; a tracked 404.html is refused | I Mean I'm Just Saying | 4 | +168 | -102 |
| 2026-09-28 18:11 | Merge main into r12/source-mirror (release 11 rollout record) | I Mean I'm Just Saying | 3 | +89 | -1 |
| 2026-09-28 18:00 | plans: release 11 rolled out as 0.10.0 and Jasolyzer launched — the rollout as done (cut, one :3001 restart, the settings save, six sites + hub + homepage with every deploy and job id, the live checks); the external drive's stall recorded; STATE's afternoon block; AGENTS.md lists jasolyzer.pages.dev | I Mean I'm Just Saying | 3 | +89 | -1 |
| 2026-09-28 17:49 | docker: build-site.sh's asset sync only ever removes an .svg (review N3) | I Mean I'm Just Saying | 3 | +9 | -1 |
| 2026-09-28 17:43 | plans: release 13 slice W3, follow-up W3c recorded — every site deploy checks its bundle, the assets stay in sync; one [Unreleased] bullet | I Mean I'm Just Saying | 2 | +119 | -0 |
| 2026-09-28 17:42 | plans: slice R's record — `archilyzer source publish` + /source, as shipped | I Mean I'm Just Saying | 1 | +269 | -0 |
| 2026-09-28 17:41 | docs: PUBLISH.md says which builder reads Dockerfile.build.dockerignore and what the fallback costs (review N2) | I Mean I'm Just Saying | 1 | +10 | -3 |
| 2026-09-28 17:41 | common: every site deploy refuses a bundle that is not the site's own, right before wrangler (review S1) | I Mean I'm Just Saying | 4 | +143 | -1 |
| 2026-09-28 17:41 | docker: build-site.sh syncs the tracked assets into a site's public/ every run — a changed one ships, a removed one stops (review L1, L2) | I Mean I'm Just Saying | 2 | +118 | -11 |
| 2026-09-28 17:41 | plans: slice W1's fix round — the queued-cancel symptom corrected, the meta chain called defensive, review L2/L3 and the nits as found-and-left, the stray common/node_modules | I Mean I'm Just Saying | 1 | +69 | -3 |
| 2026-09-28 17:40 | jobs: serialWriter — a job's sidecar chain survives a rejecting write (W1 review L1) | I Mean I'm Just Saying | 2 | +48 | -7 |
| 2026-09-28 17:39 | homepage: tsconfig excludes `out` too, and eslint ignores public/source | I Mean I'm Just Saying | 2 | +5 | -1 |
| 2026-09-28 17:34 | homepage: _headers overrides detach the tree's Content-Type before setting their own | I Mean I'm Just Saying | 2 | +16 | -2 |
| 2026-09-28 17:34 | changelog: a queued cancel's stale sidecar re-queued on restart and misreported a clip fetch — /jobs never listed it as queued (W1 review should-fix) | I Mean I'm Just Saying | 3 | +7 | -5 |
| 2026-09-28 17:32 | changelog: the source mirror — [Unreleased] bullets for the editor (the build step, the gate, the operator files) and the homepage (/source/) | I Mean I'm Just Saying | 2 | +2 | -0 |
| 2026-09-28 17:20 | docs: the clone is the canonical public copy; PUBLISH.md "The source mirror (homepage)"; create-archives.sh deleted | I Mean I'm Just Saying | 4 | +140 | -75 |
| 2026-09-28 17:20 | plans: release 13 slice W3, follow-up W3b recorded — the container Build all works; one [Unreleased] bullet | I Mean I'm Just Saying | 2 | +168 | -2 |
| 2026-09-28 17:19 | homepage: the /source/ page, a Source nav entry, _headers for the mirror and the raw tree | I Mean I'm Just Saying | 14 | +441 | -48 |
| 2026-09-28 17:18 | plans: release 13 — W2's fix round in its record (S1 --silent, Q1 the Use with AI page, Q2 the editor bullet, L1/L2 left) | I Mean I'm Just Saying | 1 | +56 | -0 |
| 2026-09-28 17:18 | common: the doctor's git test turns off git's own background maintenance | I Mean I'm Just Saying | 1 | +5 | -0 |
| 2026-09-28 17:14 | editor: [Unreleased] — the Charts tab's sixth series has a colour of its own (W2 review Q2) | I Mean I'm Just Saying | 1 | +3 | -0 |
| 2026-09-28 17:14 | export: the Use with AI page's MCP snippet keys the server `archilyzer` and runs `pnpm --silent … archilyzer mcp` (W2 review Q1) | I Mean I'm Just Saying | 4 | +76 | -15 |
| 2026-09-28 17:14 | plans: slice W1's record — the editor lows, as shipped; FACTS: the Diagnostics cards closed, a queued cancel's sidecar | I Mean I'm Just Saying | 2 | +210 | -1 |
| 2026-09-28 17:13 | docs: PUBLISH.md's container section says what the per-site mount keeps and what the image bakes | I Mean I'm Just Saying | 1 | +15 | -7 |
| 2026-09-28 17:13 | docker: Dockerfile.build.dockerignore — the build image's context is an allow-list, about 7 MB from any checkout | I Mean I'm Just Saying | 2 | +56 | -9 |
| 2026-09-28 17:13 | common: the container deploy phase refuses a per-site out/ that is not the site's own bundle | I Mean I'm Just Saying | 2 | +54 | -2 |
| 2026-09-28 17:13 | docker: build-site.sh builds in the container's own .next, publishes the composed public/, and refuses a bundle that is not the site's | I Mean I'm Just Saying | 1 | +46 | -9 |
| 2026-09-28 17:13 | common: builtBundleProblem — a per-site bundle is the site's own only when site.json and corpus.json both name it | I Mean I'm Just Saying | 2 | +92 | -0 |
| 2026-09-28 17:12 | common: build homepage publishes the source; `source publish|audit` rows; doctor's source block | I Mean I'm Just Saying | 6 | +286 | -5 |
| 2026-09-28 17:12 | common: `publishSource` — a scrubbed, dumb-HTTP git mirror, the raw tree and the tarball | I Mean I'm Just Saying | 5 | +1155 | -4 |
| 2026-09-28 17:12 | common: the source mirror's gate and tree pages (sourceAudit, sourceTree, sourceManifest) | I Mean I'm Just Saying | 5 | +1160 | -0 |
| 2026-09-28 17:11 | docs: every `archilyzer mcp` example runs `pnpm --silent` (W2 review S1) | I Mean I'm Just Saying | 5 | +44 | -18 |
| 2026-09-28 16:55 | Merge main (6a769e92, release 12 slice Q) into r13/build-image | I Mean I'm Just Saying | 50 | +1026 | -4241 |
| 2026-09-28 16:55 | changelog: [Unreleased] above [0.10.0] — the Diagnostics retry log, the homepage built line, /jobs labels, a queued cancel stays cancelled | I Mean I'm Just Saying | 1 | +6 | -0 |
| 2026-09-28 16:53 | plans: release 13 slice W3, as shipped — the build image refreshed; two [Unreleased] bullets | I Mean I'm Just Saying | 2 | +203 | -0 |
| 2026-09-28 16:52 | plans: release 13 — slice W2's record (the export, homepage and docs lows) | I Mean I'm Just Saying | 1 | +145 | -0 |
| 2026-09-28 16:52 | homepage: ignore public/source for git, Tailwind and tsc before any mirror lands there | I Mean I'm Just Saying | 2 | +16 | -3 |
| 2026-09-28 16:47 | editor: a `test` script for the editor unit suite | I Mean I'm Just Saying | 1 | +1 | -0 |
| 2026-09-28 16:47 | doctor: a worker's default engine binary comes from the report's Paths (L7) | I Mean I'm Just Saying | 2 | +36 | -1 |
| 2026-09-28 16:47 | jobs: /jobs labels for the hub's and the homepage's build and deploy kinds | I Mean I'm Just Saying | 2 | +65 | -0 |
| 2026-09-28 16:47 | sites: /sites re-renders when a homepage build lane ends, so "built <when>" is current | I Mean I'm Just Saying | 3 | +113 | -25 |
| 2026-09-28 16:47 | common: archilyzer doctor checks the site build image — there, and newer than its Dockerfile | I Mean I'm Just Saying | 3 | +353 | -9 |
| 2026-09-28 16:47 | docker: Dockerfile.build on Node 22.23.2 and pnpm 11.26.0, and its comments say the network is on | I Mean I'm Just Saying | 1 | +35 | -13 |
| 2026-09-28 16:46 | jobs: a job cancelled while queued writes its cancelled sidecar | I Mean I'm Just Saying | 5 | +280 | -13 |
| 2026-09-28 16:46 | e2e: transcript-source's diagnostics test regenerates the report of the swapped tree | I Mean I'm Just Saying | 1 | +33 | -4 |
| 2026-09-28 16:46 | channels: a Diagnostics retry keeps its card and its log when it empties the bucket | I Mean I'm Just Saying | 2 | +190 | -4 |
| 2026-09-28 16:45 | common: envVars.test counts TEST_WORKER_INDEX as Playwright's own variable | I Mean I'm Just Saying | 1 | +4 | -2 |
| 2026-09-28 16:39 | export: [Unreleased] — a chart's sixth series has a colour of its own | I Mean I'm Just Saying | 1 | +3 | -0 |
| 2026-09-28 16:38 | docs: the MCP examples register and run the server as `archilyzer mcp` | I Mean I'm Just Saying | 4 | +39 | -34 |
| 2026-09-28 16:38 | changelog: the umtool bullet back under [Unreleased] — the 0.10.0 cut landed between slice Q's branch point and its merge, and the merge filed the bullet inside the released section | I Mean I'm Just Saying | 1 | +3 | -1 |
| 2026-09-28 16:37 | Merge r12/paths-fix (release 12 slice Q) — the hardcoded paths fixed forward: umtool's CHANNELS_DIR, SONG_DATA and VIDEO_ROOT default from the checkout and the home directory, the 20 one-off song run-log scripts deleted, the tracked manifests carry no machine path, path examples name no user; reviewed SHIP | I Mean I'm Just Saying | 50 | +1026 | -4241 |
| 2026-09-28 16:37 | plans: slice Q's review recorded — SHIP; L1 and L3 fixed, the rest left; the operator step corrected (I1) | I Mean I'm Just Saying | 1 | +54 | -12 |
| 2026-09-28 16:36 | homepage: no-data.spec skips itself when the run has more than one worker | I Mean I'm Just Saying | 2 | +20 | -0 |
| 2026-09-28 16:36 | export: the 2origin config stages the two origins only in the runner, not again in every worker | I Mean I'm Just Saying | 1 | +4 | -1 |
| 2026-09-28 16:35 | umtool: ThumbEntry declares `bg`, relative to the song data dir (review L3) | I Mean I'm Just Saying | 1 | +16 | -1 |
| 2026-09-28 16:35 | changelog: the umtool bullet leads with the link command, in full (review L1) | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-28 16:33 | umtool: svg-faces and the README stop calling the advance sum conservative and 1.3 em a bound (O5 review L1, L2) | I Mean I'm Just Saying | 3 | +42 | -14 |
| 2026-09-28 16:32 | export: a `test` script for the 11 unit files no suite ran, named in the gate list and CONTRIBUTING | I Mean I'm Just Saying | 4 | +30 | -5 |
| 2026-09-28 16:30 | charts: ChartView takes its colours from seriesColor(i), so the sixth series reaches --chart-6 | I Mean I'm Just Saying | 2 | +82 | -3 |
| 2026-09-28 16:25 | plans: release 13 — the lows bundle, the build image, one-core Phase 5 slices 1–3 (numbered 13: a parallel session owns release 12, the source mirror) | I Mean I'm Just Saying | 1 | +43 | -0 |
| 2026-09-28 16:16 | plans: slice Q recorded — the hardcoded paths fixed forward | I Mean I'm Just Saying | 2 | +219 | -0 |
| 2026-09-28 16:12 | e2e: an accepted cover is recorded relative to the reports tree | I Mean I'm Just Saying | 1 | +8 | -0 |
| 2026-09-28 16:10 | Release export 0.10.0 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-28 16:10 | Release editor 0.10.0 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-28 16:05 | changelog: umtool's path defaults in [Unreleased]; a released entry's path example says <user> | I Mean I'm Just Saying | 1 | +2 | -1 |
| 2026-09-28 16:05 | common, docs: path examples name no user | I Mean I'm Just Saying | 7 | +17 | -17 |
| 2026-09-28 16:03 | umtool: the thumb manifests record paths relative to their roots | I Mean I'm Just Saying | 9 | +104 | -42 |
| 2026-09-28 15:59 | umtool: um-manifest.json carries no machine path | I Mean I'm Just Saying | 2 | +8 | -1897 |
| 2026-09-28 15:58 | umtool: the 20 one-off song run-log scripts deleted | I Mean I'm Just Saying | 22 | +17 | -2263 |
| 2026-09-28 15:56 | umtool: SONG_DATA and VIDEO_ROOT default from the home directory | I Mean I'm Just Saying | 6 | +52 | -15 |
| 2026-09-28 15:54 | umtool: CHANNELS_DIR from the checkout, not one machine's home directory | I Mean I'm Just Saying | 2 | +41 | -5 |
| 2026-09-28 15:49 | plans: release 12 — the source mirror plan and the record file | I Mean I'm Just Saying | 2 | +500 | -0 |
| 2026-09-28 13:46 | plans: the Rumble full check's record corrected (O6c review L1) — v7emb9a was not probed (no webpage_url; a failed 2026-08-26 download), so it stays "Missing?"; the per-video verdicts cite the job logs | I Mean I'm Just Saying | 1 | +6 | -3 |
| 2026-09-28 13:45 | Merge r11/phase-4-s3 (follow-up O6c) — the operator's ruling: the Docker build-mode stub is dropped (the setting, the /sites toggle and the Settings select); Build all still builds in containers whenever a container engine answers; an old settings.json with the key still loads | I Mean I'm Just Saying | 26 | +227 | -263 |
| 2026-09-28 13:40 | plans: follow-up O6c recorded — the build-mode stub dropped; the Rumble full check (operator actions, 13:32Z); both questions ruled in STATE, the O3/O6 records and Rollout; FACTS amended; the changelog bullets replaced | I Mean I'm Just Saying | 5 | +120 | -20 |
| 2026-09-28 13:35 | docs: no build mode — PUBLISH, RUNNING_IN_DOCKER and the homepage's Docker page (O6c) | I Mean I'm Just Saying | 3 | +6 | -10 |
| 2026-09-28 13:35 | editor, common: the build-mode stub is dropped (O6c, the operator's ruling) | I Mean I'm Just Saying | 18 | +101 | -233 |
| 2026-09-28 13:24 | plans: O1c review lows — FACTS anchors the four copy lines at hubScopeCopy.ts:64/70/76/82 and says export/app/**/*.test.ts (11 files, 98 tests) run in no suite; STATE's older copy-rulings list marked ruled; the record says "any [...] pair" | I Mean I'm Just Saying | 3 | +11 | -7 |
| 2026-09-28 13:24 | Merge r11/hub-lows (follow-up O1c) — the operator's rulings: the four hub copy lines ship as written, each carrying its link in the line (copy`…${link()}…`, the [bracket] regex gone); --chart-6's rust accepted near --state-gone; Vermilion keeps slot 6 | I Mean I'm Just Saying | 8 | +270 | -99 |
| 2026-09-28 13:19 | plans: the operator's rulings (2026-09-28 morning) and follow-up O1c — the four copy lines ship as written, the [bracket] link replaced by copy`…${link()}…`; --chart-6's rust accepted near --state-gone; Vermilion keeps slot 6; ruled notes in O2's and O1's records, FACTS (copy convention, --chart-6) and STATE's owed list; Rollout step 1; the other two questions stay open | I Mean I'm Just Saying | 3 | +111 | -31 |
| 2026-09-28 13:14 | hub: the copy lines carry their link in the line — copy`…${link("…")}…` (a Copy {before, link?, after, text}) replaces the [bracket] + regex; copyWithLink / copyText deleted; one link per line, a second throws at module load; the four lines ship as the operator ruled (2026-09-28), DRAFT markers removed; LinkedCopy takes a Copy; the hub specs read .text / .link; +4 unit tests (export/app/ask/hubScopeCopy.test.ts) | I Mean I'm Just Saying | 5 | +159 | -68 |
| 2026-09-28 09:44 | changelogs: the homepage's release-10 bullet names HOMEPAGE_SUMMARY_FILE again — a released entry keeps the name it shipped with (O6-B's E2E_ rename sweep had rewritten it) | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-28 09:43 | plans: release 11 integration, as merged — the gates on 2046a23e (FLAKES-ONLY), STATE "Now (2026-09-28, morning)", the Rollout steps | I Mean I'm Just Saying | 2 | +295 | -4 |
| 2026-09-28 09:41 | plans: brand-and-themes — S4's Fira rail/ledger/chart and "no bold Plex Mono" notes closed by release 11 O5 (dated notes) | I Mean I'm Just Saying | 1 | +11 | -1 |
| 2026-09-28 09:41 | plans: FACTS — release 11 (O1–O6) verified at 2046a23e; dated amendments for the E2E_ names and PUBLISH.md; the integration gate's findings | I Mean I'm Just Saying | 1 | +266 | -2 |
| 2026-09-28 08:36 | Merge r11/phase-4-s3 (checkpoint B) — release 11 slice O6: every test-only env var carries the E2E_ prefix and is declared in its playwright config (the queue lock and ARCHILYZER_* untouched); the harnesses read common/lib/ports.mjs; the build-mode options say the mode is a label; the homepage's Docker page matches PUBLISH.md | I Mean I'm Just Saying | 52 | +427 | -164 |
| 2026-09-28 08:34 | plans: O6 checkpoint B review fixes — the 2origin note corrected with the reviewer's evidence (S1), L1, L2 recorded | I Mean I'm Just Saying | 1 | +28 | -4 |
| 2026-09-28 08:34 | docs: WORKTREES — a server reused under E2E_PORT_CHECK=0 needs the config's E2E_SERVER_ENV (review L1) | I Mean I'm Just Saying | 1 | +8 | -2 |
| 2026-09-28 08:24 | plans: slice O6 checkpoint B as shipped — the E2E_ prefix cleanup, declared in the playwright configs, the harnesses on ports.mjs; the editor and homepage [Unreleased] bullets | I Mean I'm Just Saying | 3 | +112 | -1 |
| 2026-09-28 08:03 | docs: E2E_SHARDS; the homepage's Docker page says Build all uses containers whenever it can | I Mean I'm Just Saying | 5 | +12 | -10 |
| 2026-09-28 08:03 | editor: the build-mode options and the per-site panel say the mode is a label (R2/R6 re-read nits) | I Mean I'm Just Saying | 4 | +14 | -21 |
| 2026-09-28 08:03 | e2e: every test-only env var carries the E2E_ prefix and is declared in its playwright config; the harnesses read ports.mjs | I Mean I'm Just Saying | 39 | +257 | -130 |
| 2026-09-28 07:53 | changelogs: the hub's fitted-colour bullet says "not a six-digit hex colour" and "the hub's summary" (O2b review nits) | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-28 07:53 | Merge r11/homepage-lows (follow-ups O2b) — the hub's visitor-added archives get their colour fitted per base (a remote accent that is not a six-digit hex falls back); a Figma-style clip path no longer makes a one-colour social icon count as two; the homepage's no-data pages have an e2e again; the review's comment nits | I Mean I'm Just Saying | 16 | +320 | -22 |
| 2026-09-28 07:50 | Merge r11/umtool-fonts — release 11 slice O5: under the Archilyzer Media preset the report video's rail, ledger, scroll and chart are set in IBM Plex Sans, fitted by the vendored face's own advances; IBM Plex Mono Bold vendored for the chapter kickers; a render without the preset stays byte-identical (334 files, 0 different) | I Mean I'm Just Saying | 10 | +934 | -58 |
| 2026-09-28 07:45 | plans: O2b follow-ups — the hub's added archives fitted, clip paths in the single-colour rule, the no-data spec, R2's nits; FACTS on perBaseColor's contract; brand-and-themes' token count | I Mean I'm Just Saying | 3 | +102 | -3 |
| 2026-09-28 07:40 | changelogs: the hub's added and unconfirmed archives fitted per base; clip paths in the single-colour icon rule (export); the single-colour social icon (homepage) | I Mean I'm Just Saying | 2 | +3 | -1 |
| 2026-09-28 07:40 | comments: O2 review nits — chart-6's CVD pairs are deutan, summary.ts names the synthetic summary, the growth chart's today-order numbers are today's mapping | I Mean I'm Just Saying | 3 | +6 | -4 |
| 2026-09-28 07:40 | homepage(e2e): the no-data / and /stats/ are specced again — one serial spec moves the synthetic summary aside and restores it | I Mean I'm Just Saying | 1 | +43 | -0 |
| 2026-09-28 07:40 | hub: an archive the visitor added wears its published hex fitted to each base — card, scope chip, result stripe | I Mean I'm Just Saying | 5 | +123 | -8 |
| 2026-09-28 07:40 | common: normalizeSocialSvg passes over a <clipPath> like a <mask> — a Figma one-colour icon (a shape clipped by a white rect) is themed | I Mean I'm Just Saying | 2 | +43 | -6 |
| 2026-09-28 07:33 | plans: slice O5 as shipped — umtool brand fonts: Plex Sans for the rail / ledger / scroll / chart fitted by the face's own advances, Plex Mono Bold vendored, the unbranded render byte-identical (334 files, 0 different) | I Mean I'm Just Saying | 1 | +171 | -0 |
| 2026-09-28 07:32 | Merge r11/homepage-lows — release 11 slice O2: a custom hex fitted per base on the homepage and hub cards; a sixth validated chart colour (--chart-6, Vermilion's rust); the mark's tile keeps an edge under forced colours; the homepage e2e builds its own summary, so a fresh clone runs every spec | I Mean I'm Just Saying | 26 | +765 | -216 |
| 2026-09-28 07:29 | umtool: README — the preset sets the rail, ledger, scroll and chart in Plex Sans, "Why a table, not an average", Plex Mono Bold vendored | I Mean I'm Just Saying | 2 | +56 | -20 |
| 2026-09-28 07:23 | umtool: test that the preset's rsvg-convert children get FONTCONFIG_FILE; fc-match's escaped paths read back | I Mean I'm Just Saying | 1 | +40 | -3 |
| 2026-09-28 07:18 | Merge r11/hub-lows — release 11 slice O1: the hub's /ask waits for its own list and, with no archives, says so (DRAFT copy); a scope line on /ask (DRAFT); a member's missing live chat noted on its chip with a live-chat-only Retry (DRAFT); a single-colour social icon follows the footer colour; mcp README's fetch_clip env lines | I Mean I'm Just Saying | 19 | +1222 | -95 |
| 2026-09-28 07:17 | umtool: the rail, ledger, scroll and chart set in IBM Plex Sans under the brand preset, fitted by the face's own advances | I Mean I'm Just Saying | 7 | +651 | -46 |
| 2026-09-28 07:16 | umtool: vendor IBM Plex Mono Bold; `render.fontBold` is the preset's too | I Mean I'm Just Saying | 3 | +32 | -5 |
| 2026-09-28 07:14 | plans: slice O1 review fixes — the merge, the single-colour icon rule and its edge cases, /ask's wait for a live-chat refetch, FACTS amended; gates, bites (unit vs the first normalizer, e2e one-line mutations of the subs rule), the rollout note (any settings write re-normalizes; rebuild every site, the hub and the homepage) | I Mean I'm Just Saying | 1 | +118 | -2 |
| 2026-09-28 07:13 | plans: slice O2 as shipped — the fitted custom hex, the sixth chart slot (validated; the gone question), the forced-colours outline, the synthetic homepage e2e summary; FACTS' colour entry; dated notes in brand-and-themes | I Mean I'm Just Saying | 3 | +188 | -4 |
| 2026-09-28 07:06 | plans: FACTS — release 10 "L1 — hub lows" amended for release 11 O1: the subs rule keys on errorUpdateCount (and waits on /ask for a refetch), the zero-archive and live-chat lows are closed, builtinsLoaded / listed / the DRAFT constants anchored | I Mean I'm Just Saying | 1 | +31 | -0 |
| 2026-09-28 07:06 | export: [Unreleased] — the social icon bullet says a single-colour icon (multi-colour icons keep their colours); the live-chat bullet says Ask AI waits for a live chat asked for again | I Mean I'm Just Saying | 1 | +2 | -2 |
| 2026-09-28 07:06 | hub: /ask waits for a live-chat refetch in flight; the front page stays ready through it (review low 1) — subsSettled = data || (errored && (progressive || !isFetching)); e2e: /ask after a front-page live-chat failure is not ready while its own mount refetches it | I Mean I'm Just Saying | 2 | +43 | -1 |
| 2026-09-28 07:06 | common: normalizeSocialSvg themes only a single-colour icon (review should-fix) — at most one solid colour across root and children outside <mask> (spellings folded: #fff = white = rgb(255,255,255)) becomes currentColor; two or more (YouTube's mark, a badge) keep every colour as pasted; animation tags (fill=freeze/remove) passed over; a self-closing <mask/> no longer swallows what follows; +5 unit tests (13) | I Mean I'm Just Saying | 2 | +123 | -36 |
| 2026-09-28 07:00 | changelogs: the forced-colours outline (export, editor, homepage), the hub's fitted custom hex (export), the sixth chart colour, the fitted card hex and the synthetic e2e summary (homepage) | I Mean I'm Just Saying | 3 | +7 | -0 |
| 2026-09-28 06:52 | homepage(e2e): a synthetic summary, so a fresh clone runs every spec; the cards' pale custom hex and the sixth slot checked in the browser | I Mean I'm Just Saying | 7 | +225 | -135 |
| 2026-09-28 07:00 | Merge main (d481ba6a: O4, O3, O6 checkpoint A) into r11/hub-lows — one [Unreleased] in export/CHANGELOG.md (O3's bullet, then O1's), the release-11 records O4, O3, O6, then O1 | I Mean I'm Just Saying | 76 | +4440 | -794 |
| 2026-09-28 06:59 | common: the mark's tile keeps an edge under forced colours — a 1px CanvasText outline on every base | I Mean I'm Just Saying | 3 | +86 | -3 |
| 2026-09-28 06:54 | Merge r11/phase-4-s3 (checkpoint A) — release 11 slice O6, one-core Phase 4 slice 3: archilyzer doctor / run <operation> / mcp, every bin a subcommand, the ports and the env vars declared once (ENVIRONMENT.md generated), PUBLISH.md absorbs DEPLOY_CLOUDFLARE.md + DEPLOY_DOCKER.md; the build mode's copy says it is a label; the E2E_ rename (checkpoint B) still to come | I Mean I'm Just Saying | 55 | +3259 | -688 |
| 2026-09-28 06:50 | plans: slice O6 checkpoint A review fixes recorded — S1 the mention test, S2 the mode is a label, Q1/Q2/Q4/Q5, L1–L7; the changelog bullet says the mode is a label | I Mean I'm Just Saying | 2 | +67 | -20 |
| 2026-09-28 06:47 | common: a sixth validated chart slot (--chart-6, Vermilion's rust) and a custom hex fitted per base on the family's cards | I Mean I'm Just Saying | 10 | +259 | -74 |
| 2026-09-28 06:46 | docs: PUBLISH.md — the build mode is a label; the homepage row; four clauses back (review S2, Q4, L3) | I Mean I'm Just Saying | 1 | +16 | -11 |
| 2026-09-28 06:46 | docs: the seeded-worker claim corrected; WORKTREES points at the one port table (review Q5, L4) | I Mean I'm Just Saying | 7 | +34 | -36 |
| 2026-09-28 06:46 | common: `archilyzer transcribe` goes; `run`'s exit codes match its header (review Q2, L6, L1) | I Mean I'm Just Saying | 4 | +30 | -33 |
| 2026-09-28 06:44 | plans: slice O1 as shipped — the built-ins flag, /ask waits for the hub's list, the three DRAFT copy lines (NO_ARCHIVES_ON_HUB, LIVE_CHAT_MISSING, ASK_SCOPE_LINE), the live-chat Retry that keeps its archive ready, normalizeSocialSvg themes child fills, mcp README env lines; gates, bites, found and left | I Mean I'm Just Saying | 1 | +157 | -0 |
| 2026-09-28 06:42 | editor: two released changelog links point at PUBLISH.md (review Q1) | I Mean I'm Just Saying | 1 | +2 | -2 |
| 2026-09-28 06:42 | editor, common: the build-mode copy says the mode is a label (review S2) | I Mean I'm Just Saying | 8 | +53 | -45 |
| 2026-09-28 06:42 | common: the declared-but-unmentioned env-var test can fail (review S1) | I Mean I'm Just Saying | 3 | +32 | -10 |
| 2026-09-28 06:36 | Merge main 54cb4f2c (O4 + O3) into r11/phase-4-s3 | I Mean I'm Just Saying | 38 | +2209 | -126 |
| 2026-09-28 06:34 | export: [Unreleased] above [0.9.4] — the hub's /ask with no archives, its wait for the hub's list, its scope line; the chip's missing live chat; social icons in white or black | I Mean I'm Just Saying | 1 | +7 | -0 |
| 2026-09-28 06:34 | mcp: README — the claude mcp add and mcp.json examples carry ARCHILYZER_EDITOR_URL and WORKER_TOKEN for fetch_clip, marked optional | I Mean I'm Just Saying | 1 | +14 | -2 |
| 2026-09-28 06:34 | hub: /ask waits for the hub's own list and says what it searches; a member's missing live chat is noted on its chip with a live-chat-only Retry — MultiSiteDataProvider listed + federation.listed / retryLiveChat / liveChatMissing (the subs rule keys on errorUpdateCount, so the archive stays ready through the Retry); three DRAFT copy constants in hubScopeCopy.ts (NO_ARCHIVES_ON_HUB, LIVE_CHAT_MISSING, ASK_SCOPE_LINE); AskScope, LinkedCopy; e2e: ask.spec (a hub with no archives, x3), federated-search.spec (the list, the scope line, the live-chat Retry) | I Mean I'm Just Saying | 11 | +444 | -78 |
| 2026-09-28 06:34 | common: normalizeSocialSvg themes every fill colour, the children's too — a white or black path (X's official logo) becomes currentColor; none, url() paint and fills inside a <mask> are kept; idempotent; +8 unit tests | I Mean I'm Just Saying | 2 | +154 | -1 |
| 2026-09-28 06:34 | common: siteRegistry says when the hub's built-ins have loaded — builtinsLoaded (useRegistry, getBuiltinsLoaded) turns true once /hub-sites.json has been answered, found, empty, missing or unreadable, in the same update that adds them; loadBuiltins exported; +8 unit tests | I Mean I'm Just Saying | 2 | +171 | -13 |
| 2026-09-28 06:26 | Merge r11/runner-lows — release 11 slice O3: a maybe-missing video whose recheck failed stays maybe-missing on the published badge; a failed forced media pass keeps the subtitle pass's status and fails its fetch job; a bucket retry keeps its card and run log (the cookies-mode flake); a cut whose commit fails after the write says so and revalidates, and a half-way all names the earlier cut | I Mean I'm Just Saying | 23 | +1183 | -106 |
| 2026-09-28 06:23 | plans: O3 review fixes recorded — the form's revalidate, sourceFetchFailure's order, persistKept, the Diagnostics wording | I Mean I'm Just Saying | 3 | +75 | -19 |
| 2026-09-28 06:20 | channels: drop the inert key on the Download stage's retry controls (O3 review nit) | I Mean I'm Just Saying | 1 | +0 | -3 |
| 2026-09-28 06:20 | common: persistKept counts a failed forced media pass as failed, not persisted | I Mean I'm Just Saying | 2 | +122 | -65 |
| 2026-09-28 06:20 | common: sourceFetchFailure judges a media-pass last attempt by its exit code first | I Mean I'm Just Saying | 2 | +21 | -3 |
| 2026-09-28 06:20 | sites: the Cut release form revalidates when the heading was written but the commit failed | I Mean I'm Just Saying | 1 | +7 | -1 |
| 2026-09-28 06:17 | Merge main (O4 merged, eb677ac7) into r11/runner-lows | I Mean I'm Just Saying | 17 | +1027 | -20 |
| 2026-09-28 06:14 | plans: slice O6 checkpoint A as shipped — doctor, run, mcp, every bin a subcommand, ports and env vars declared once, PUBLISH.md; the [Unreleased] bullet | I Mean I'm Just Saying | 2 | +226 | -0 |
| 2026-09-28 06:14 | Merge r11/homepage-deploy-ui — release 11 slice O4: the homepage builds and deploys from /sites (a Homepage section after Hub, jobs build-homepage / deploy-homepage / build-deploy-homepage, the refusals, a preview box) and from pnpm ops build-homepage / deploy-homepage; JobLane survives Strict Mode | I Mean I'm Just Saying | 17 | +1029 | -20 |
| 2026-09-28 06:12 | plans: O4 review fixes recorded — both queues held in the homepage and hub refusal tests and the Build homepage test, deployHomepage ships homepageOutDir; ops-api + sites-homepage 26/26 on 813208b9 | I Mean I'm Just Saying | 2 | +37 | -12 |
| 2026-09-28 06:10 | common: deployHomepage ships homepageOutDir(paths) — the directory the editor judged "built", named once (no behaviour change) | I Mean I'm Just Saying | 1 | +2 | -1 |
| 2026-09-28 06:10 | e2e: the homepage refusal test, the Build homepage test and the hub's refusal test hold BOTH the build and deploy queues — a regressed "preview needs deploy" guard, or a click turned into build-and-deploy, can then only queue | I Mean I'm Just Saying | 2 | +48 | -22 |
| 2026-09-28 06:07 | common: the run and mcp tests fail instead of hanging | I Mean I'm Just Saying | 2 | +17 | -7 |
| 2026-09-28 06:04 | docs: PUBLISH.md absorbs DEPLOY_CLOUDFLARE.md and DEPLOY_DOCKER.md; env vars point at ENVIRONMENT.md | I Mean I'm Just Saying | 12 | +526 | -488 |
| 2026-09-28 06:04 | editor, common: `pnpm archilyzer`; the Docker build mode is not "a follow-up" | I Mean I'm Just Saying | 7 | +17 | -17 |
| 2026-09-28 06:02 | plans: slice O3 as shipped — runner lows; FACTS; [Unreleased] in editor and export | I Mean I'm Just Saying | 4 | +212 | -0 |
| 2026-09-28 05:57 | export, homepage: their bin scripts call the CLI; `detect:duplicates` goes | I Mean I'm Just Saying | 2 | +8 | -9 |
| 2026-09-28 05:57 | common: `archilyzer run`, `archilyzer mcp`, and every bin a subcommand | I Mean I'm Just Saying | 8 | +720 | -4 |
| 2026-09-28 05:57 | common: the digest channel job takes an id scope, as the backfill job does | I Mean I'm Just Saying | 3 | +20 | -4 |
| 2026-09-28 05:56 | plans: slice O4 as shipped — the homepage builds and deploys from /sites (three job kinds, the refusals, a preview box, two ops verbs), JobLane's Strict Mode bug found and fixed; the plan's "As shipped" note (ops preview is a body key, no jobKinds entries, homepageOutDir exported) | I Mean I'm Just Saying | 2 | +155 | -0 |
| 2026-09-28 05:56 | changelog: [Unreleased] above [0.9.4] — the homepage's build and deploy on /sites, and pnpm ops build-homepage / deploy-homepage | I Mean I'm Just Saying | 1 | +4 | -0 |
| 2026-09-28 05:52 | sites: the Homepage group stamps data-hydrated; its specs wait for it before a click or a keystroke, and the queued lane is asserted with no alert | I Mean I'm Just Saying | 2 | +25 | -5 |
| 2026-09-28 05:52 | sites: JobLane survives Strict Mode — under next dev a lane dropped every update of its one launch and sat on "Starting…" forever | I Mean I'm Just Saying | 1 | +21 | -8 |
| 2026-09-28 05:48 | common: `archilyzer doctor` — one read-only report | I Mean I'm Just Saying | 4 | +656 | -1 |
| 2026-09-28 05:48 | common: every environment variable, declared once; ENVIRONMENT.md generated | I Mean I'm Just Saying | 5 | +575 | -0 |
| 2026-09-28 05:48 | common: the port defaults and the tool probe exist once | I Mean I'm Just Saying | 7 | +338 | -76 |
| 2026-09-28 05:44 | common: a cut whose commit fails after the write says so; a half-way all names the earlier cut | I Mean I'm Just Saying | 4 | +242 | -23 |
| 2026-09-28 05:42 | channels: a bucket retry keeps its card and run log after it empties the bucket | I Mean I'm Just Saying | 3 | +56 | -8 |
| 2026-09-28 05:42 | common: a forced download whose media pass fails keeps the subtitle pass's status | I Mean I'm Just Saying | 6 | +284 | -5 |
| 2026-09-28 05:40 | e2e: deploy-homepage's refusals over /api/ops, and /sites → Homepage (the section, the preview box, and Build homepage starting a build-homepage job) — none of it can build or deploy | I Mean I'm Just Saying | 2 | +258 | -0 |
| 2026-09-28 05:38 | ops: /api/ops/build-homepage {deploy?, preview?} and /api/ops/deploy-homepage {preview?} → previewUrl, and the pnpm ops verbs | I Mean I'm Just Saying | 4 | +94 | -0 |
| 2026-09-28 05:38 | sites: a Homepage section after Hub — Build homepage (Deploy after build, unticked), Deploy homepage and a preview branch, as jobs build-homepage / deploy-homepage / build-deploy-homepage | I Mean I'm Just Saying | 3 | +326 | -7 |
| 2026-09-28 05:38 | common: builtHomepageProblem + builtHomepageAt beside builtHubProblem, and homepageOutDir — homepage/out, the one path the editor's homepage actions judge and deployHomepage ships | I Mean I'm Just Saying | 4 | +97 | -3 |
| 2026-09-28 05:37 | common: a maybe-missing video whose confirm probe failed stays maybe_missing | I Mean I'm Just Saying | 3 | +191 | -4 |
| 2026-09-28 05:23 | plans: release 10 rolled out as 0.9.4 (sites, hub 10d6946f, homepage 7ca70923; the editor restart owed); the 14 merged worktrees removed (55 GiB); release 11 stub — the overnight of 2026-09-28 | I Mean I'm Just Saying | 2 | +56 | -0 |
| 2026-09-28 04:29 | Release export 0.9.4 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-28 04:29 | Release editor 0.9.4 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-28 04:29 | Merge r10/mark-ring — release 10 slice MR: on the dark base the Found-line mark's tile gets a 1 px ring in its own dim (site #6b5d47, Archilyzer #586977), outside the tile, following its corners; light and sepia unchanged | I Mean I'm Just Saying | 11 | +360 | -6 |
| 2026-09-28 04:28 | plans: slice MR as shipped — a 1px ring outside the mark's tile on dark, in the palette's dim (#6b5d47 3.09:1, #586977 3.48:1 on ink); full dim chosen over 60% and an inside ring; brand-and-themes' mark section notes it, dated | I Mean I'm Just Saying | 2 | +81 | -0 |
| 2026-09-28 04:22 | changelogs: a thin outline on the mark's tile on Dark — new [Unreleased] above [0.9.3] in export and editor; a bullet in the homepage's | I Mean I'm Just Saying | 3 | +7 | -0 |
| 2026-09-28 04:22 | e2e: the mark's ring on dark — each brand spec reads the computed box-shadow per base | I Mean I'm Just Saying | 4 | +193 | -3 |
| 2026-09-28 04:16 | common: the mark's tile gets a 1px ring on dark, in the palette's own dim | I Mean I'm Just Saying | 2 | +79 | -3 |
| 2026-09-27 19:21 | plans: STATE — accent swap (hasanalyzer violet, bonnellyzer blue) and slice MC (mark contrast) rolled out as 0.9.3; five sites + hub + homepage verified live | I Mean I'm Just Saying | 1 | +24 | -0 |
| 2026-09-27 18:59 | Release export 0.9.3 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-27 18:59 | Release editor 0.9.3 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-27 18:59 | Merge r10/mark-contrast — release 10 slice MC: the Found-line mark's dim lines reach 3:1 against their tile (child #6b5d47, Archilyzer #586977), every lit value stays 2:1 above them; icons, the editor favicon, the Media kit and the YouTube assets regenerated | I Mean I'm Just Saying | 16 | +207 | -25 |
| 2026-09-27 18:58 | plans: slice MC as shipped — the mark's dims at 3:1 (#6b5d47 3.09, #586977 3.06), lit ≥ 2:1 over them, the chart validated after the Violet/Blue swap (every adjacent pair passes); brand-and-themes' icon palettes updated with a dated note | I Mean I'm Just Saying | 2 | +105 | -3 |
| 2026-09-27 18:50 | changelogs: the mark's lines are easier to see — new [Unreleased] above [0.9.2] in export and editor; a bullet in the homepage's | I Mean I'm Just Saying | 3 | +7 | -0 |
| 2026-09-27 18:49 | common: the mark's dim lines reach 3:1 on their ground — child #6b5d47, Archilyzer #586977 | I Mean I'm Just Saying | 11 | +95 | -22 |
| 2026-09-27 06:28 | plans: STATE — release 10 rolled out: accents + wordmark leads set (form), slice AC merged, 0.9.2 cut, five sites + hub + homepage deployed and verified live; editor not restarted (operator) | I Mean I'm Just Saying | 1 | +26 | -0 |
| 2026-09-27 05:55 | Release export 0.9.2 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-27 05:55 | Release editor 0.9.2 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-27 05:55 | Merge r10/accent-colors — release 10 slice AC: the search hint in the accent; the homepage cards in each site's accent (per base), the chart and /stats in its accent's hue family; accentId in the homepage and hub summaries; the hub's site colours per base | I Mean I'm Just Saying | 32 | +1081 | -68 |
| 2026-09-27 05:05 | plans: slice AC as shipped — the review fixes, the heading in the record's shape, and the two lows found and left | I Mean I'm Just Saying | 1 | +23 | -3 |
| 2026-09-27 05:02 | hub, homepage(e2e): review nits — the no-accent hub colour is the chart colour; the colour spec requires the chart | I Mean I'm Just Saying | 3 | +36 | -30 |
| 2026-09-27 05:02 | common: homepageChartData tests — /stats site colours, and the leaderboard by site and by channel | I Mean I'm Just Saying | 1 | +127 | -0 |
| 2026-09-27 05:02 | homepage: HOMEPAGE_SUMMARY_FILE is ignored by a production build | I Mean I'm Just Saying | 3 | +42 | -6 |
| 2026-09-27 04:50 | plans, changelogs: the hue-matched chart — each site's layer is its accent's hue family; validator numbers in both orders | I Mean I'm Just Saying | 4 | +54 | -26 |
| 2026-09-27 04:45 | homepage: the growth chart and /stats wear each site's hue family; a card matches its layer by hue | I Mean I'm Just Saying | 4 | +101 | -59 |
| 2026-09-27 04:45 | common: siteChartColors — a site's chart colour is its accent's hue family in the validated palette | I Mean I'm Just Saying | 7 | +231 | -57 |
| 2026-09-27 04:37 | plans: release 10 — accent colours as shipped: no five accents pass as a chart palette, so the cards and the hint wear them and the chart keeps its own; FACTS' official-instance colour line | I Mean I'm Just Saying | 2 | +99 | -1 |
| 2026-09-27 04:23 | changelogs: [Unreleased] — the search hint in the accent (export); instance cards in each site's accent (editor, homepage) | I Mean I'm Just Saying | 3 | +12 | -0 |
| 2026-09-27 04:19 | hub: an official instance's named accent is painted per base | I Mean I'm Just Saying | 3 | +48 | -8 |
| 2026-09-27 04:19 | homepage: the Official Instances cards wear each site's accent; the chart keeps its palette | I Mean I'm Just Saying | 7 | +196 | -10 |
| 2026-09-27 04:19 | common: siteColor — a site's colour per base; the summaries carry a named accent's id | I Mean I'm Just Saying | 8 | +202 | -11 |
| 2026-09-27 04:19 | search: "Press Enter or click Search to apply" wears the site's accent | I Mean I'm Just Saying | 2 | +55 | -2 |
| 2026-09-27 03:58 | plans: STATE — Ko-fi dropped; 0.9.1 cut; the hub and the homepage redeployed (0cda9466, 665b9faf) and verified; the editor restart, site accents and the five sites still owed | I Mean I'm Just Saying | 1 | +11 | -0 |
| 2026-09-27 03:40 | Release export 0.9.1 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-27 03:40 | Release editor 0.9.1 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-27 03:40 | Merge export/drop-kofi — Ko-fi dropped for now (the operator, 2026-09-26): no Ko-fi link or asset on any site, the hub or the homepage; the footers restored, the vendored symbol and its service-worker rule removed, one negative check per surface | I Mean I'm Just Saying | 17 | +115 | -232 |
| 2026-09-27 03:39 | plans: Ko-fi dropped (2026-09-26) — release 10's record and STATE's Ko-fi ruling | I Mean I'm Just Saying | 2 | +75 | -2 |
| 2026-09-27 03:21 | export, editor, homepage: [Unreleased] — no Ko-fi link on the hub or the homepage | I Mean I'm Just Saying | 3 | +4 | -1 |
| 2026-09-27 03:20 | common: KOFI_URL is gone | I Mean I'm Just Saying | 1 | +0 | -7 |
| 2026-09-27 03:19 | homepage: the footer's Elsewhere row drops the Ko-fi mark and renders only when there are social links again | I Mean I'm Just Saying | 3 | +23 | -79 |
| 2026-09-27 03:18 | export(e2e): a site page and the hub have no link to ko-fi.com | I Mean I'm Just Saying | 3 | +8 | -79 |
| 2026-09-27 03:17 | export: both service workers drop the /kofi-symbol.svg rule; /icons/ stays network-first in shell-v2 | I Mean I'm Just Saying | 3 | +3 | -19 |
| 2026-09-27 03:16 | export: the footer's social row drops the Ko-fi mark, and renders only when the site has social links again | I Mean I'm Just Saying | 2 | +2 | -45 |
| 2026-09-27 01:48 | homepage: e2e — the Ko-fi row is found by :has, the footer holds more than one list | I Mean I'm Just Saying | 1 | +5 | -3 |
| 2026-09-27 01:45 | homepage: the official Ko-fi mark ends the footer's Elsewhere row, replacing the bare text link (the operator's 2026-09-26 ruling: the mark in the social section everywhere); the row always renders | I Mean I'm Just Saying | 3 | +67 | -32 |
| 2026-09-27 01:43 | plans: STATE — the homepage's hub link hidden again on the operator's word (61aca34c), redeployed | I Mean I'm Just Saying | 1 | +6 | -0 |
| 2026-09-27 01:42 | homepage: the hero's hub link is off again (HUB_LINK_ENABLED = false) on the operator's word — the hub stays deployed, only the link is hidden | I Mean I'm Just Saying | 1 | +4 | -2 |
| 2026-09-26 23:43 | plans: slice P merged (2ea82daf) — STATE's merged block; the runbook's step 0 is now archilyzer release cut | I Mean I'm Just Saying | 1 | +10 | -0 |
| 2026-09-26 23:43 | Merge cli/cut-release — release 10 slice P: cut a release from the CLI — one writer (common/controller/cutRelease), the /sites form as an adapter, archilyzer release cut|show locally (no editor needed; all cuts both changelogs or neither; next/next-minor; a real calendar date; a version newer than the latest heading), pnpm ops cut-release through /api/ops/cut-release | I Mean I'm Just Saying | 20 | +2122 | -99 |
| 2026-09-26 23:39 | plans: slice P after review — the record's review round (M1 all-or-neither, L1 calendar date, L2 forward-only version; gates re-run: common 2,015, test:scripts 174 + 1, e2e 53/53 in 1.8 min; proof round 2), L3/L4 left; the changelog bullet's wording (L5 + L6) | I Mean I'm Just Saying | 2 | +101 | -25 |
| 2026-09-26 23:33 | scripts: `pnpm ops` usage — cut-release's "all" cuts both or neither; "commit": boolean (review nit) | I Mean I'm Just Saying | 2 | +6 | -4 |
| 2026-09-26 23:33 | common: `all` cuts both or neither — a preflight reads both changelogs, cuts both in memory and runs the dirty-tree guard once before either write (review M1) | I Mean I'm Just Saying | 6 | +321 | -150 |
| 2026-09-26 23:30 | common: a release cut refuses an impossible date and a version that does not move forward (review L1 + L2), in cutRelease itself so every caller gets it | I Mean I'm Just Saying | 6 | +169 | -35 |
| 2026-09-26 23:17 | plans: slice P as shipped — cut a release from the CLI (one writer in common/controller/cutRelease.ts; archilyzer release show/cut locally; POST /api/ops/cut-release for pnpm ops; the form an adapter); the editor [Unreleased] bullet | I Mean I'm Just Saying | 2 | +175 | -0 |
| 2026-09-26 23:15 | editor(e2e): ops-cut-release — a second cut finds no [Unreleased] heading at all (the cut consumed it), and the 400's results say so | I Mean I'm Just Saying | 1 | +12 | -2 |
| 2026-09-26 23:07 | editor(e2e): ops-cut-release.spec.ts — the ops door over the fixture changelogs; the test server's EXPORT_CHANGELOG_FILE points at a gitignored copy | I Mean I'm Just Saying | 4 | +184 | -5 |
| 2026-09-26 23:07 | editor: POST /api/ops/cut-release and `pnpm ops cut-release` — the remote path to the same writer (workspace editor|export|all, version X.Y.Z|next|next-minor, commit, date) | I Mean I'm Just Saying | 3 | +99 | -0 |
| 2026-09-26 23:03 | common: archilyzer release show [editor|export] and release cut <editor|export|all> <X.Y.Z|next|next-minor> [--commit] [--date] — the local release cutter, no editor needed | I Mean I'm Just Saying | 3 | +358 | -2 |
| 2026-09-26 23:01 | editor: the Cut release form's action is a FormData adapter over cutReleaseForWorkspace; /sites reads the export changelog the form cuts | I Mean I'm Just Saying | 3 | +32 | -89 |
| 2026-09-26 23:00 | common: cutRelease controller — the one writer of a release cut (guard, read, cut, atomic write, commit); next / next-minor; all = editor then export with one version, two commits, stops at the first failure; describeRelease for `release show` | I Mean I'm Just Saying | 5 | +878 | -0 |
| 2026-09-26 22:50 | plans: slice P — cut a release from the CLI (one controller; archilyzer release cut/show locally, pnpm ops cut-release through /api/ops/cut-release; the /sites form becomes an adapter); slice N's cookies-mode repeat on main 5/5 | I Mean I'm Just Saying | 2 | +90 | -2 |
| 2026-09-26 22:46 | plans: slice O merged (22ad0cb7) — STATE's merged block, the Ko-fi ruling superseded, three new lows (invisible x.com icon on light, slice N's failed forced download, the cookies-mode log unmount) | I Mean I'm Just Saying | 1 | +17 | -2 |
| 2026-09-26 22:45 | Merge export/kofi-mark — release 10 slice O: the official Ko-fi symbol as the last item of every site's and the hub's social row (accessible name Ko-fi, no copy, official colours, vendored byte-identical asset, offline-cached like the icons); supersedes the hub-only bare link | I Mean I'm Just Saying | 11 | +276 | -40 |
| 2026-09-26 22:38 | plans: slice O as shipped — the Ko-fi mark on every site (the official symbol, last in every footer's social row; the hub's text link gone; both workers cache it) and the export [Unreleased] bullet | I Mean I'm Just Saying | 2 | +129 | -0 |
| 2026-09-26 22:32 | plans: slice N merged (76b5500e) — STATE's merged block, the record's restart-owed note and the live proof to run after it | I Mean I'm Just Saying | 2 | +19 | -0 |
| 2026-09-26 22:32 | Merge editor/full-fetch-media — release 10 slice N: the whole-recording fetch downloads anyway (forceMedia through the no-captions fallback: Persist source video, fetch_clip full: true and Persist kept now fetch and persist the source on a captions-only channel even with a transcript on disk; a Whisper transcript untouched, no audio extracted beside one), and every metadata.info.json rewrite appends a normalized diff to metadata.history.json (volatile keys fingerprinted, counters apart, content from → to, cap 200) with a read-only panel on the video page | I Mean I'm Just Saying | 24 | +2397 | -62 |
| 2026-09-26 22:23 | plans: release 10 slice N review fixes — M1 wording (5397363f), L1 persistKept test (ea22b2fc), L2 recorded; gates on ea22b2fc: common 1,985, editor unit 85, test:scripts 173 + 1, mcp 269, editor build, FULL editor e2e 641 passed / 2 failed / 12 skipped in 48.6 min, re-runs alone ×3: tags 3/3 (flake), cookies-mode 2/3 (pre-existing NeedsCookiesList unmount race) | I Mean I'm Just Saying | 1 | +80 | -2 |
| 2026-09-26 22:23 | export(e2e): every build carries the Ko-fi mark, last in the social row | I Mean I'm Just Saying | 3 | +80 | -18 |
| 2026-09-26 22:22 | export: both service workers cache /kofi-symbol.svg like the icons | I Mean I'm Just Saying | 3 | +19 | -3 |
| 2026-09-26 22:22 | export: the Ko-fi mark, last in every footer's social row | I Mean I'm Just Saying | 2 | +36 | -19 |
| 2026-09-26 22:17 | export: vendor Ko-fi's official symbol as public/kofi-symbol.svg | I Mean I'm Just Saying | 1 | +13 | -0 |
| 2026-09-26 22:12 | plans: slice O — the official Ko-fi symbol as the last item of every site's social row (supersedes the hub-only bare link; no copy, official colours, vendored asset) | I Mean I'm Just Saying | 1 | +84 | -0 |
| 2026-09-26 21:26 | common: persistKeptForceMedia.test — "Persist kept now" on a youtube-handling kept video with a transcript runs the media pass and persists the container with no audio; removing persistKept's forceMedia fails it (review L1) | I Mean I'm Just Saying | 1 | +137 | -0 |
| 2026-09-26 21:25 | editor: the Source video card, the changelog bullet and AGENTS.md no longer say the transcript is "kept" — YouTube's subtitles are fetched again first, as on any re-download; a Whisper transcript is not touched, and no audio is extracted beside a transcript (review M1) | I Mean I'm Just Saying | 3 | +9 | -6 |
| 2026-09-26 21:22 | plans: deploy the homepage from the editor (/sites → Homepage: build-homepage / deploy-homepage / build-deploy-homepage jobs + pnpm ops verbs, the hub's pattern) — there is no UI path today; archilyzer.pages.dev redeployed in the meantime from main 945b20cc via r10-home.sh (deploy 857e0092, 17:19), the runbook's step-5 homepage half done early | I Mean I'm Just Saying | 2 | +125 | -3 |
| 2026-09-26 21:08 | plans: release 10 slice N as shipped — forceMedia (persist-only with a transcript on disk) and metadata.history.json; gates (common 1,984, editor unit 85, test:scripts 173 + 1, mcp 269, editor build, e2e 78/78 in 8.7 min, bite run 3/3 new tests fail on the reverted fix); two [Unreleased] bullets; FACTS: slice M's silent no-op is fixed, and yt-dlp re-writes an existing subtitle file by default | I Mean I'm Just Saying | 3 | +176 | -5 |
| 2026-09-26 21:06 | common: say at PREFETCH_OWN_FILES why metadata.history.json is not on the allow-list (comment only) | I Mean I'm Just Saying | 1 | +3 | -0 |
| 2026-09-26 20:51 | docs: AGENTS.md — full: true / "Persist source video" download the source despite a transcript or captions (persist-only when a transcript exists); every metadata.info.json rewrite appends to metadata.history.json | I Mean I'm Just Saying | 1 | +11 | -0 |
| 2026-09-26 20:50 | e2e: persist-youtube-handling.spec (Persist source video on a youtube-handling video with a transcript downloads, persists, keeps the transcript, extracts nothing; a changed upstream title + view_count lands in metadata.history.json and on the page) and the full fetch on the same fixture ends done WITH a file; the fake's .fake-ytdlp-metadata.json knob | I Mean I'm Just Saying | 3 | +254 | -1 |
| 2026-09-26 20:46 | editor: the video page says "Metadata rewritten N× · last … by …: <what moved>" with the entries (from → to) under it, from the pure views/metadataHistoryView; the Source video card's "Persist source video" is live on youtube-handling channels too | I Mean I'm Just Saying | 6 | +387 | -9 |
| 2026-09-26 20:42 | common: forceMedia — "Persist source video", the whole-recording fetch and "Persist kept now" download the source on a youtube-handling video that already has a transcript or captions; with a transcript on disk the pass persists the container only (no subs, no audio, no whisper); the prefetch, the audio-check primary and download-one-audio run inside the metadata history wrap | I Mean I'm Just Saying | 5 | +499 | -46 |
| 2026-09-26 20:37 | common: metadata.history.json — every metadata.info.json rewrite whose bytes differ appends one normalized diff (content keys whole, counters [from, to], volatile keys by fingerprint), capped at 200; withMetadataHistory snapshots around a writer and records even when it throws | I Mean I'm Just Saying | 5 | +849 | -1 |
| 2026-09-26 20:24 | plans: slice N — the whole-recording fetch downloads anyway (forceMedia through the no-captions fallback, transcript untouched, persist-only finalize) and every metadata.info.json rewrite appends a normalized diff to metadata.history.json | I Mean I'm Just Saying | 1 | +196 | -0 |
| 2026-09-26 20:13 | plans: slice M's /ask fresh-session proof done — a real session fetched a Kirsche clip through fetch_clip (source overridden to the citation's corpus, 47 s); nothing owed on slice M | I Mean I'm Just Saying | 2 | +9 | -4 |
| 2026-09-26 19:02 | plans: slice M merged (a2de17b5) and proved live — the three fetch_clip proofs against :3001 (YouTube window then cached, Rumble embed id → slug dir, whole recording then cached), the archilyzer re-registration, two editor-side full-mode lows (silent no-op on a captions-only video with a transcript; metadata.info.json rewritten); STATE's merged block, a FACTS section | I Mean I'm Just Saying | 3 | +80 | -0 |
| 2026-09-26 18:55 | Merge mcp/fetch-clip — release 10 slice M: fetch_clip, the MCP asks the editor for clip media (window or full: true) through POST /api/media/fetch-window; a Rumble embed id maps to the slug dir via the record's webpageUrl; the ask/sweep plans send media through the tool and never a hand-run yt-dlp; 15 s per-request timeout, progress notifications per poll, the job id survives a poll failure | I Mean I'm Just Saying | 13 | +2353 | -21 |
| 2026-09-26 18:54 | mcp: fetch_clip's queued text never invites repeating a running request (re-read R2, R1) | I Mean I'm Just Saying | 6 | +46 | -16 |
| 2026-09-26 18:49 | plans: release 10 slice M review fixes — S1 job id kept mid-poll, S2 the channel requirement, S3 15 s per request (+ N1 cause), S4 progress notifications and the 60 s clause; changelog bullet | I Mean I'm Just Saying | 2 | +84 | -3 |
| 2026-09-26 18:47 | mcp: fetch_clip sends a progress notification per poll; a 60 s client must raise its timeout or wait ≤ 50 s (review S4) | I Mean I'm Just Saying | 6 | +162 | -6 |
| 2026-09-26 18:45 | mcp: fetch_clip bounds every request at 15 s and says why a request failed (review S3, N1) | I Mean I'm Just Saying | 2 | +186 | -10 |
| 2026-09-26 18:43 | docs: fetch_clip needs an editor that already archives the cited channel (review S2) | I Mean I'm Just Saying | 3 | +9 | -4 |
| 2026-09-26 18:43 | mcp: fetch_clip keeps the job id when the editor stops answering mid-poll (review S1) | I Mean I'm Just Saying | 2 | +47 | -2 |
| 2026-09-26 18:30 | plans: release 10 slice M as shipped — fetch_clip (the MCP asks the editor for clip media); editor [Unreleased] bullet | I Mean I'm Just Saying | 2 | +125 | -0 |
| 2026-09-26 18:27 | docs: fetch_clip is how clip media is fetched; yt-dlp --download-sections is only the no-editor fallback | I Mean I'm Just Saying | 3 | +45 | -17 |
| 2026-09-26 18:27 | mcp: the ask and sweep plans send clip media through fetch_clip, never a hand-run yt-dlp | I Mean I'm Just Saying | 2 | +49 | -0 |
| 2026-09-26 18:27 | mcp: fetch_clip tool — asks the local editor for a cited moment's media; a Rumble embed id maps to the slug id | I Mean I'm Just Saying | 3 | +436 | -0 |
| 2026-09-26 18:27 | mcp: fetchClip — the editor's fetch-window client, pure with injected env/fetch/sleep/now | I Mean I'm Just Saying | 2 | +1201 | -0 |
| 2026-09-26 18:23 | plans: release 10 integration (S4 + L1 + L2) as merged — the combined tree's gates (tsc; common 1,954, editor unit 85, scripts 173 + 1, mcp 219; five builds with the icon checks; e2e export 204, hub 24, 2origin 3 with the export/public links in place and the primary byte-identical, homepage 27, umtool 175 + the known mix.spec pair, editor 634 + 6 load flakes, 18/18 alone), the Jeralyzer early deploy, STATE's "Merged to main, NOT rolled out" block, the Rollout re-cut and the optional umtool step | I Mean I'm Just Saying | 3 | +322 | -100 |
| 2026-09-26 17:09 | plans: FACTS — the sw.js-copy and compose-output-swap workarounds superseded by L1 (link-safe playwright config + _publicFile); release 10 facts for S4 (renderSvgPng, the glyph-outline lockup and its fontTools pin, FONTCONFIG_FILE scope, opt-in render.brand + end card, the ImageMagick date-chunk identity method), L1 (subs 404/retry/settled, the empty-scope rule, the homepage's order) and L2 (isSoftBlock and its consumers, unprobed = unverified, the 60 s boot wait, the hung mount) | I Mean I'm Just Saying | 1 | +145 | -4 |
| 2026-09-26 18:14 | plans: fetch_clip — the MCP asks the editor for clip media (no yt-dlp by hand); amended: full: true exposed (saved-video store, editor's existing branch) | I Mean I'm Just Saying | 1 | +302 | -0 |
| 2026-09-26 16:52 | Merge r10/hub-lows — release 10 slice L1: the hub's subs query (404 = empty, one retry, never fails an archive), /ask honours the scope chips (none in scope: disabled + one line), official instances in the homepage's order and colours, playwright + compose never write through export/public links | I Mean I'm Just Saying | 22 | +1231 | -139 |
| 2026-09-26 16:52 | Merge r10/runner-lows — release 10 slice L2: YouTube's "try again later" soft block backs off (download batch, runner, scan, a prefetch early exit, the availability check stops); the pre-clean gate never judges an unprobed suspect; the boot pass waits at most 60 s for the storage pass; /jobs shows cancelReason; the safeRevalidate warning is counted | I Mean I'm Just Saying | 27 | +1774 | -92 |
| 2026-09-26 16:52 | Merge brand/media — brand slice S4: Archilyzer Media — the lockup as glyph outlines (brandMedia), the YouTube channel assets CLI, umtool report-to-video's opt-in render.brand preset with vendored OFL fonts (non-opted manifests byte-identical) | I Mean I'm Just Saying | 32 | +2856 | -75 |
| 2026-09-26 08:22 | plans: STATE — brand S4, L1 and L2 reviewed to SHIP and parked for after the brand rollout; merge order, the copy rulings owed, the new lows | I Mean I'm Just Saying | 1 | +41 | -0 |
| 2026-09-26 08:20 | plans: release 10 slice L1 re-read — a subs failure never fails an archive (C2's settled rule restored), the NO_ARCHIVES_IN_SCOPE draft with its front-page link, two new lows (/ask on an empty hub; the missing live chat on the chip) | I Mean I'm Just Saying | 1 | +62 | -12 |
| 2026-09-26 08:10 | hub: NO_ARCHIVES_IN_SCOPE draft — "Choose some on the hub's front page to ask.", the phrase a link to it (re-read) | I Mean I'm Just Saying | 4 | +53 | -9 |
| 2026-09-26 08:10 | hub: a subs manifest that still fails after its retry never fails its archive (re-read R1) | I Mean I'm Just Saying | 3 | +28 | -30 |
| 2026-09-26 08:02 | plans: release 10 slice L1 review fixes — /ask with every archive off, compose never writes through a link (proved: e2e:2origin with the links in place left the primary's eight files byte-identical), subs 404 = empty + real errors fail with Retry, networkMode always | I Mean I'm Just Saying | 1 | +123 | -4 |
| 2026-09-26 07:59 | plans: L2 re-read fix — every unprobed pre-clean suspect is unverified; resolveMaybeMissingState's error-as-available is a new low | I Mean I'm Just Saying | 3 | +40 | -13 |
| 2026-09-26 07:57 | common: the pre-clean gate never judges a suspect its check did not probe, blocked or not (review fix) | I Mean I'm Just Saying | 2 | +65 | -15 |
| 2026-09-26 07:50 | plans: L2 review fixes — hung-mount wording, rate-limited prefetch exit, availability-check stop with the pre-clean guard | I Mean I'm Just Saying | 3 | +103 | -15 |
| 2026-09-26 07:36 | export: [Unreleased] — /ask with every archive off, and the subs manifest's failure | I Mean I'm Just Saying | 1 | +2 | -2 |
| 2026-09-26 07:36 | common: compose-hub and compose-site never write through a link in public/ (review fix 2) | I Mean I'm Just Saying | 6 | +272 | -24 |
| 2026-09-26 07:33 | hub: useHubSummary runs with networkMode "always" (review fix 3) | I Mean I'm Just Saying | 1 | +5 | -0 |
| 2026-09-26 07:33 | hub: /ask with every archive switched off is not ready and says why (review fix 1) | I Mean I'm Just Saying | 6 | +133 | -15 |
| 2026-09-26 07:32 | hub: the subs manifest — a 404 is an empty manifest, a real error is retried once and fails its archive (review fix 4) | I Mean I'm Just Saying | 2 | +71 | -20 |
| 2026-09-26 07:31 | common: the availability check stops on a rate limit, and the pre-clean gate never judges what it skipped (review fix) | I Mean I'm Just Saying | 4 | +358 | -5 |
| 2026-09-26 07:26 | jobs: say what a hung mount does to the boot pass's re-queues (review fix) | I Mean I'm Just Saying | 1 | +17 | -9 |
| 2026-09-26 07:25 | common: a rate-limited metadata prefetch ends the download there (review fix) | I Mean I'm Just Saying | 2 | +178 | -5 |
| 2026-09-26 07:22 | plans: brand S4 review fixes — the Studio steps (Customization → Profile), the fontTools-pinned glyph parity, endCard null, the per-drawing mark cache, doctor's rsvg-convert; release-10 says S4 merges after the cut | I Mean I'm Just Saying | 2 | +30 | -5 |
| 2026-09-26 07:21 | umtool: endCard null reads as off, so a twice-resolved render keeps it off; the header mark is cached per drawing (a hash of the kit SVG in its name), not per size; doctor lists rsvg-convert as needed by the brand preset (S4 review) | I Mean I'm Just Saying | 4 | +36 | -7 |
| 2026-09-26 07:21 | common: brand-media's Studio steps say Customization → Profile (formerly Branding) → Change, as YouTube's help does today; the glyph file records the fontTools it was generated with, and its parity test skips, visibly, under another (S4 review) | I Mean I'm Just Saying | 5 | +27 | -9 |
| 2026-09-26 07:11 | plans: release 10 slice L1 as shipped — hub lows: subs retry: false, /ask honours the scope chips, one order and one colour for the official instances (the homepage's), playwright unlinks sw.js before its copy (proved: the primary's sw.js kept size, mtime and md5 through a worktree export run) | I Mean I'm Just Saying | 1 | +120 | -0 |
| 2026-09-26 07:09 | plans: slice L2 as shipped — soft block backs off, bounded storage-pass wait, cancelReason on /jobs, counted safeRevalidate skips | I Mean I'm Just Saying | 3 | +162 | -3 |
| 2026-09-26 07:08 | plans: brand S4, as shipped — Archilyzer Media: the lockup measured (5.334 em, MEDIA 0.30 em apart), the channel's four PNGs, the opt-in umtool preset and its new-project choice; unbranded renders byte-identical (334 files); umtool e2e 175 + the two known mix.spec order failures (12/12 alone); release-10 notes S4 is outside the site rollout; editor [Unreleased] bullet | I Mean I'm Just Saying | 3 | +182 | -0 |
| 2026-09-26 06:43 | editor: a card row's cancel reason sits at the end of its heading | I Mean I'm Just Saying | 1 | +3 | -1 |
| 2026-09-26 06:42 | common: brand-media's INDEX.html says its timestamp is UTC | I Mean I'm Just Saying | 1 | +2 | -1 |
| 2026-09-26 06:40 | umtool: the brand preset is a choice where a report video's render block is born — the new-project form's brand select and `umtool new --brand`, declared in the registry; no brand writes the skeleton it always did | I Mean I'm Just Saying | 6 | +101 | -9 |
| 2026-09-26 06:40 | umtool: report-to-video's opt-in brand preset, render.brand "archilyzer-media" — owns the palette and faces (Archivo 118 / Plex Sans / Plex Mono via FONTCONFIG_FILE on its own children), adds the title lockup + found line, the mark leading the clip header, a 20 s end card with the right half clear (appended in selectVariant) and a --thumbnail step; unbranded manifests render byte-identical (334 files, before/after) | I Mean I'm Just Saying | 8 | +949 | -55 |
| 2026-09-26 06:36 | editor: safeRevalidate counts its skips instead of warning once per bundle | I Mean I'm Just Saying | 2 | +275 | -38 |
| 2026-09-26 06:33 | editor: /jobs shows why the boot pass cancelled a job | I Mean I'm Just Saying | 8 | +176 | -2 |
| 2026-09-26 06:33 | export: [Unreleased] — the hub's one order and colour, /ask's scope, the subs retry | I Mean I'm Just Saying | 1 | +5 | -0 |
| 2026-09-26 06:33 | hub: /ask honours the scope chips | I Mean I'm Just Saying | 2 | +45 | -19 |
| 2026-09-26 06:30 | jobs: the boot pass stops waiting for the storage pass after 60 s | I Mean I'm Just Saying | 3 | +224 | -30 |
| 2026-09-26 06:29 | hub: one order and one colour for the official instances — the homepage's | I Mean I'm Just Saying | 7 | +199 | -82 |
| 2026-09-26 06:29 | hub: retry: false on the federated subs manifest — a member with no live chat is ready ~1 s sooner | I Mean I'm Just Saying | 2 | +32 | -5 |
| 2026-09-26 06:28 | common: YouTube's soft block ("try again later") is a rate limit, not a deleted video | I Mean I'm Just Saying | 5 | +228 | -9 |
| 2026-09-26 06:27 | common: bin/brand-media.ts — the YouTube channel's assets (avatar-800 maskable, watermark-150, banner-2560x1440 and its 1546x423 safe crop, each beside its SVG, plus lockup.svg and an INDEX.html handoff with the Studio upload steps), rendered through brandIcons' new renderSvgPng (next/og; renderIconPng now calls it, bytes unchanged); --video-kit writes the palette, mark and lockup umtool's preset reads | I Mean I'm Just Saying | 4 | +360 | -8 |
| 2026-09-26 06:26 | common: brandMedia — the Archilyzer Media lockup, banner and mark M2 as pure SVG; the lockup's letters are outlines generated by bin/gen-media-glyphs.py (fontTools instancer, Archivo at wdth 118), MEDIA at 1.035x spread to the wordmark's measured 5.334 em, the banner's field a port of the canvas generator (CPython's Random(11), pinned line for line) | I Mean I'm Just Saying | 4 | +968 | -0 |
| 2026-09-26 06:24 | common: officialInstances — the hub's official instances in the homepage's order, one colour each | I Mean I'm Just Saying | 2 | +156 | -1 |
| 2026-09-26 06:24 | export: playwright.config.ts unlinks public/sw.js before copying the site worker | I Mean I'm Just Saying | 1 | +10 | -1 |
| 2026-09-26 06:24 | umtool: vendor the Archilyzer Media faces under report-to-video/fonts — Archivo[wdth,wght], IBM Plex Sans[wdth,wght], IBM Plex Mono Regular (static, for drawtext), unmodified from google/fonts, with OFL.txt, a fonts.conf for the preset's own children and a no-sudo user-install fallback | I Mean I'm Just Saying | 6 | +220 | -0 |
| 2026-09-26 06:13 | 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 | I Mean I'm Just Saying | 1 | +71 | -0 |
| 2026-09-26 06:05 | plans: brand S4 approved — Archilyzer Media: M2 Signal mark, "flush · caps matched" lockup (MEDIA at 1.035x, measured), YouTube assets CLI, an opt-in umtool report-to-video preset with vendored OFL fonts; not part of the site rollout | I Mean I'm Just Saying | 1 | +91 | -56 |
| 2026-09-26 05:37 | Release export 0.9.0 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-26 05:37 | Release editor 0.9.0 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-26 04:51 | plans: brand S3 review fixes — the runbook's final-commit check and fail-stop rollout scripts; the test nits | I Mean I'm Just Saying | 3 | +48 | -8 |
| 2026-09-26 04:48 | common: the token-sheet parser's comment names the nested @media rule; the SW test's duplicate failed-fetch case becomes the no-cache network-error branch (brand S3 review) | I Mean I'm Just Saying | 2 | +7 | -6 |
| 2026-09-26 04:32 | plans: brand + themes — slice S3 as shipped (carry-overs, the Plex Sans l/font build defect, full gates), release 10's record, FACTS, STATE; the rollout section checked against the repo | I Mean I'm Just Saying | 4 | +545 | -50 |
| 2026-09-26 04:11 | common: the geometricPrecision comment says why Plex hints on Linux (gasp grid-fitting, no TrueType instructions) and why the scope starts at 1.5x (brand S3) | I Mean I'm Just Saying | 1 | +13 | -13 |
| 2026-09-26 04:11 | common: IBM Plex Sans is requested variable — Google at times cuts static weights through its l/font instancer, whose &-joined URL Turbopack's next/font/google cannot load (brand S3) | I Mean I'm Just Saying | 1 | +10 | -1 |
| 2026-09-26 03:21 | common: the geometricPrecision scope starts at 1.5dppx — the words split at 150 % and 175 % scaling too, and read clean at 1x and 1.25x (brand S3) | I Mean I'm Just Saying | 2 | +11 | -9 |
| 2026-09-26 03:14 | editor, export, homepage: the brand's [Unreleased] bullets read as one release — no promise of a picker that has landed, the icons' network-first refresh and the one-visit offline gap, status contrast on Light, the chart's stack order (brand S3) | I Mean I'm Just Saying | 3 | +8 | -7 |
| 2026-09-26 03:12 | common, editor: comments and the accent hint name the three bases, not the retired theme families (brand S3) | I Mean I'm Just Saying | 4 | +7 | -7 |
| 2026-09-26 03:12 | export: comments — hubSite's wrap, and the e2e sw.js staging sits by its code and no longer cites committed icons (brand S3) | I Mean I'm Just Saying | 2 | +10 | -8 |
| 2026-09-26 03:12 | common: text-rendering: geometricPrecision only at 2dppx and up, where hinted advances split words; 1x screens keep hinting (brand S3) | I Mean I'm Just Saying | 2 | +28 | -14 |
| 2026-09-26 03:12 | common: light success and warning read at 4.5:1 on their own soft fills, as sepia and dark do; the token test covers every base (brand S3) | I Mean I'm Just Saying | 2 | +16 | -10 |
| 2026-09-26 03:11 | common: the service-worker routing test covers a non-ok and a failed online icon fetch, which leave the cached icon in place (brand S3) | I Mean I'm Just Saying | 1 | +28 | -4 |
| 2026-09-26 03:11 | common: brand tests pin the 4.5:1 bar as a literal, the sRGB curve at its boundary pair, and all 21 accent values (brand S3) | I Mean I'm Just Saying | 2 | +30 | -12 |
| 2026-09-26 03:05 | Merge brand/themes — brand slice S2: reader themes are a base (System / Light / Sepia / Dark) × an accent (the site's own by default, any of the seven by choice); the five theme families retire; Archivo + IBM Plex; legacy picks migrate pre-paint; the hub and homepage render dark on the server | I Mean I'm Just Saying | 41 | +2105 | -1307 |
| 2026-09-26 03:00 | plans: brand + themes — S2 review fixes, the merge of main, and the post-merge gates | I Mean I'm Just Saying | 4 | +64 | -6 |
| 2026-09-26 02:58 | common: form controls lay out text at design widths too (brand S2 review) | I Mean I'm Just Saying | 2 | +13 | -3 |
| 2026-09-26 02:54 | export, homepage: the no-flash specs wait on the ready marker without racing the new document (brand S2) | I Mean I'm Just Saying | 3 | +3 | -3 |
| 2026-09-26 02:38 | common, export: S1's wordmark and header mark read the base × accent tokens (brand S2, post-merge) | I Mean I'm Just Saying | 2 | +7 | -7 |
| 2026-09-26 02:36 | Merge main into brand/themes — S0 + S1 (the Found-line mark, icon routes, Wordmark) and release 9 C2/C3 under the base × accent themes | I Mean I'm Just Saying | 59 | +2490 | -209 |
| 2026-09-26 02:30 | common: text lays out at its design widths (text-rendering: geometricPrecision) (brand S2 review) | I Mean I'm Just Saying | 2 | +13 | -0 |
| 2026-09-26 02:30 | export, common: site-branding checks the server's data-accent; tone.ts names the three bases (brand S2 review) | I Mean I'm Just Saying | 2 | +8 | -3 |
| 2026-09-26 02:30 | common, export, editor: accent text on its soft tint is --brand-strong (brand S2 review) | I Mean I'm Just Saying | 6 | +11 | -9 |
| 2026-09-26 02:30 | homepage, export: the hub and the homepage render their dark base on the server (brand S2 review) | I Mean I'm Just Saying | 3 | +45 | -3 |
| 2026-09-26 02:30 | homepage: the growth chart stacks its layers in palette order (brand S2 review) | I Mean I'm Just Saying | 1 | +7 | -4 |
| 2026-09-26 02:26 | common: sepia status colours read at 4.5:1 on their own soft fills (brand S2 review) | I Mean I'm Just Saying | 2 | +44 | -7 |
| 2026-09-26 02:25 | Merge brand/mark — brand slice S1: the Found-line mark everywhere — static icon + favicon routes per site (the site's accent; the parent mark on the hub and homepage), manifest on ink, SW shell-v2 with network-first icons, BrandMark + Wordmark in the site, hub, homepage and editor headers, the footer credit | I Mean I'm Just Saying | 47 | +1394 | -112 |
| 2026-09-26 02:24 | Merge brand/found-line — brand slice S0: the brand as data (seven named accents, base grounds, the Found-line mark, the subject-split wordmark), site.json accent id + wordmarkLead, the published accent stays a hex, the site form's swatches; the plan and the Archilyzer Media proposal | I Mean I'm Just Saying | 20 | +1701 | -34 |
| 2026-09-26 02:22 | plans: brand + themes — slice S1 review fixes recorded | I Mean I'm Just Saying | 1 | +32 | -0 |
| 2026-09-26 02:19 | export: pwa.spec's /icons/ 404 probe names the dev-server log it causes as expected (brand S1 review) | I Mean I'm Just Saying | 1 | +5 | -1 |
| 2026-09-26 02:19 | common: accentHex's comment — the published hex is the icon's lit line for a named accent only (brand S1 review) | I Mean I'm Just Saying | 1 | +5 | -3 |
| 2026-09-26 02:19 | common: brandIconFiles — the icon set as pure data, so next/og stays with the route handlers (brand S1 review) | I Mean I'm Just Saying | 8 | +132 | -78 |
| 2026-09-26 02:17 | export: both service workers serve /icons/ network-first; the SHELL comment names the one-visit offline gap (brand S1 review) | I Mean I'm Just Saying | 3 | +148 | -8 |
| 2026-09-26 02:11 | plans: brand + themes — slice S2 as shipped (base × accent); CHANGELOGs | I Mean I'm Just Saying | 4 | +198 | -0 |
| 2026-09-26 02:11 | common: tokens.css chart notes state the all-pairs CVD floor band (brand S2) | I Mean I'm Just Saying | 1 | +13 | -9 |
| 2026-09-26 02:07 | plans: brand + themes — slice S1 as shipped (mark, icons, wordmark); editor, export and homepage CHANGELOGs | I Mean I'm Just Saying | 4 | +215 | -0 |
| 2026-09-26 01:50 | homepage: the operate docs describe the accent and the reader's theme menu (brand S2) | I Mean I'm Just Saying | 2 | +6 | -4 |
| 2026-09-26 01:50 | editor: theme.spec seeds the base key and covers the migration (brand S2) | I Mean I'm Just Saying | 1 | +73 | -29 |
| 2026-09-26 01:50 | homepage: theme.spec — dark + Signal by default; REQUIRED_TOKENS complete on all three bases (brand S2) | I Mean I'm Just Saying | 1 | +80 | -116 |
| 2026-09-26 01:50 | export: theme specs are base × accent — theme.spec rewritten, theme-accent.spec replaces theme-family (brand S2) | I Mean I'm Just Saying | 5 | +260 | -114 |
| 2026-09-26 01:46 | common: siteAccentVars is gone — the accent is data-accent plus customAccentVars (brand S2) | I Mean I'm Just Saying | 2 | +3 | -43 |
| 2026-09-26 01:43 | common: the theme runtime and pickers are base × accent; the layouts set the defaults (brand S2) | I Mean I'm Just Saying | 9 | +377 | -282 |
| 2026-09-26 01:39 | common: themeConfig — base/accent keys, migrateLegacy, the pre-paint script source (brand S2) | I Mean I'm Just Saying | 2 | +373 | -29 |
| 2026-09-26 01:37 | common: tokens.css is three bases × seven accents; fonts are Archivo, Plex Sans, Plex Mono (brand S2) | I Mean I'm Just Saying | 7 | +556 | -680 |
| 2026-09-26 01:30 | editor: the parent mark beside adminTitle, and app/icon.svg as the favicon (brand S1) | I Mean I'm Just Saying | 4 | +67 | -9 |
| 2026-09-26 01:30 | homepage: the header is the parent mark + Archi|lyzer, no longer tracked uppercase (brand S1) | I Mean I'm Just Saying | 2 | +55 | -10 |
| 2026-09-26 01:30 | export: the header is the mark + the split wordmark, the footer credit carries the parent mark (brand S1) | I Mean I'm Just Saying | 7 | +276 | -32 |
| 2026-09-26 01:30 | common: BrandMark and Wordmark components (brand S1) | I Mean I'm Just Saying | 2 | +113 | -0 |
| 2026-09-26 01:27 | export: both service workers retire the pre-brand shell cache — SHELL is shell-v2, VERSION stays v1 (brand S1) | I Mean I'm Just Saying | 2 | +12 | -2 |
| 2026-09-26 01:27 | homepage: the icons and favicon are rendered at build from the parent mark (brand S1) | I Mean I'm Just Saying | 10 | +40 | -25 |
| 2026-09-26 01:27 | export: the icons and favicon are rendered per build from the mark, lit with the site's accent (brand S1) | I Mean I'm Just Saying | 12 | +74 | -32 |
| 2026-09-26 01:26 | common: brandIcons — every icon file rendered from the mark at build (next/og PNGs, a PNG-payload ICO) (brand S1) | I Mean I'm Just Saying | 2 | +308 | -0 |
| 2026-09-26 01:15 | plans: brand — Archilyzer Media proposed (the YouTube channel): canvas row, mark/lockup options, asset specs, umtool preset, S4 outline; awaiting the operator's picks | I Mean I'm Just Saying | 1 | +57 | -0 |
| 2026-09-26 01:11 | plans: brand + themes — slice S0 as shipped (palette + data); editor CHANGELOG | I Mean I'm Just Saying | 2 | +168 | -0 |
| 2026-09-26 01:07 | editor: sites-crud's brand test filters the form's alert from Next's route announcer (brand S0) | I Mean I'm Just Saying | 1 | +4 | -1 |
| 2026-09-26 01:00 | editor: the site form picks a named accent (or a custom hex) and a wordmark lead (brand S0) | I Mean I'm Just Saying | 3 | +196 | -12 |
| 2026-09-26 00:58 | export: the hub's synthesized Site carries wordmarkLead "Archi" (brand S0) | I Mean I'm Just Saying | 1 | +6 | -1 |
| 2026-09-26 00:58 | common: the published accent stays a hex — /site.json, hub-sites.json, the homepage summary (brand S0) | I Mean I'm Just Saying | 6 | +90 | -3 |
| 2026-09-26 00:55 | common: site.json takes an accent id and a wordmarkLead (brand S0) | I Mean I'm Just Saying | 3 | +89 | -9 |
| 2026-09-26 00:55 | plans: STATE — restore the release 10 candidate list dropped by the previous edit | I Mean I'm Just Saying | 1 | +10 | -0 |
| 2026-09-26 00:52 | common: the brand as data — accents, grounds, the Found-line mark, the wordmark split (brand S0) | I Mean I'm Just Saying | 5 | +678 | -9 |
| 2026-09-26 00:51 | plans: release 9 — C2 + C3 live (hub 6ef7f472, homepage e09900af with the hub link); the evening plan is complete through step C | I Mean I'm Just Saying | 2 | +27 | -18 |
| 2026-09-26 00:47 | Merge one-core/c2-federated-search — release 9 slice C2: federated search (scope chips, per-archive state, progressive readiness, 'N of M archives answered', archive named on every card, paged fetch per archive) | I Mean I'm Just Saying | 11 | +1003 | -85 |
| 2026-09-26 00:46 | plans: release 9 slice C2 — review fixes (5163aefc) and re-gate (e2e:hub 17/17); follow-ups named; CHANGELOG | I Mean I'm Just Saying | 2 | +33 | -19 |
| 2026-09-26 00:44 | hub: review fixes — an archive's posts/subs join only when it is ready; the answered line waits for every archive; focus rings; cancel an off archive's queued pages; "videos" | I Mean I'm Just Saying | 5 | +112 | -50 |
| 2026-09-26 00:43 | plans: STATE — release 10 candidate list (hub ask scope, hub accents, sw.js unlink, soft-block class, boot-pass timeout, cancelReason) | I Mean I'm Just Saying | 1 | +10 | -0 |
| 2026-09-26 00:43 | plans: brand + themes — the Found-line mark, the subject-split wordmark, and base × accent reader themes (S0 → S1 ‖ S2 → S3) | I Mean I'm Just Saying | 1 | +414 | -0 |
| 2026-09-26 00:43 | homepage: the hero links the hub again (release 9 slice C3) — the hub is polished (C1, C1b, C2) | I Mean I'm Just Saying | 1 | +4 | -4 |
| 2026-09-26 00:37 | plans: release 9 slice C2, as shipped — federated search (scope chips, per-archive state, progressive, partial failure, attribution, per-origin page gate); CHANGELOG | I Mean I'm Just Saying | 2 | +107 | -0 |
| 2026-09-26 00:35 | common: the merged hub list keeps its identity until the ready set changes | I Mean I'm Just Saying | 1 | +4 | -1 |
| 2026-09-26 00:24 | hub: a scope chip's title says what its number counts (videos in the search) and what pressing it does | I Mean I'm Just Saying | 1 | +7 | -2 |
| 2026-09-26 00:22 | plans: release 9 — C1b live on the hub (747b6a32) and the homepage (e9954138) | I Mean I'm Just Saying | 1 | +7 | -0 |
| 2026-09-26 00:17 | plans: FACTS — worktree export e2e writes the primary's sw.js through the public symlink; homepage worktree data must be copied | I Mean I'm Just Saying | 1 | +10 | -0 |
| 2026-09-26 00:17 | export: federation.spec matches "Archives You Added" exactly (C1b's Title Case) | I Mean I'm Just Saying | 1 | +2 | -2 |
| 2026-09-26 00:17 | Merge main (23c01dcc, release 9 slice C1b) into one-core/c2-federated-search | I Mean I'm Just Saying | 13 | +253 | -89 |
| 2026-09-26 00:17 | Merge one-core/c1b-hub-copy — release 9 slice C1b: Official Instances in Title Case, the sentence under it and the card descriptions gone (hub + homepage), a bare Ko-fi link in the homepage and hub footers | I Mean I'm Just Saying | 12 | +243 | -81 |
| 2026-09-26 00:16 | export: e2e-hub federated-search.spec — scope off/on across a reload, a failed member + Retry, a slow member, attribution | I Mean I'm Just Saying | 1 | +248 | -0 |
| 2026-09-26 00:16 | common: a hub result names its archive; "N of M archives answered." above the results | I Mean I'm Just Saying | 2 | +70 | -0 |
| 2026-09-26 00:16 | hub: scope chips — one per archive, toggles it in or out of the search, remembered per browser | I Mean I'm Just Saying | 4 | +187 | -7 |
| 2026-09-26 00:16 | plans: C1b — the export e2e harness overwrote the primary's sw.js through the worktree link; restored, fix candidate recorded | I Mean I'm Just Saying | 1 | +9 | -0 |
| 2026-09-26 00:15 | plans: release 9 slice C1b as shipped — Title Case, no subtitles, no card descriptions, bare Ko-fi on hub + homepage; gates + CHANGELOG | I Mean I'm Just Saying | 2 | +79 | -0 |
| 2026-09-26 00:13 | common: MultiSiteDataProvider exposes per-archive state — scope, loading/ready/failed, Retry | I Mean I'm Just Saying | 1 | +281 | -52 |
| 2026-09-26 00:08 | e2e: Official Instances heading exact, no card description, Ko-fi on the hub and homepage footers, none on a site build | I Mean I'm Just Saying | 3 | +65 | -6 |
| 2026-09-26 00:08 | hub, homepage: Title Case headings, no subtitle under Official Instances, no description on the official cards | I Mean I'm Just Saying | 4 | +53 | -70 |
| 2026-09-26 00:08 | common: KOFI_URL; a bare Ko-fi link in the homepage footer and the hub's footer (never a site build) | I Mean I'm Just Saying | 3 | +37 | -5 |
| 2026-09-26 00:06 | plans: STATE — operator rulings: C2 approved, Ko-fi bare link no copy, hub/homepage copy rulings, Paramount full download | I Mean I'm Just Saying | 1 | +10 | -8 |
| 2026-09-25 23:50 | plans: release 9 rollout record — 5dbead9a live on :3001 (boot pass re-queued 1 / cancelled 390, ops sync exits 0), hub + homepage deployed from the same commit; STATE + FACTS | I Mean I'm Just Saying | 3 | +127 | -8 |
| 2026-09-25 23:39 | Merge one-core/c1-hub-look — release 9 slice C1: the hub in the family's register (archilyzer theme, Official instances with the homepage's figures via hub-summary.json, --chart-3 its own colour) | I Mean I'm Just Saying | 25 | +1082 | -162 |
| 2026-09-25 23:38 | plans: release 9 — C1 merged with main (7f261121), re-gated; projection unchanged under main's buildHomepageSummary | I Mean I'm Just Saying | 1 | +11 | -0 |
| 2026-09-25 23:29 | Merge main (release 9, 4386f369) into one-core/c1-hub-look | I Mean I'm Just Saying | 49 | +1717 | -125 |
| 2026-09-25 23:29 | Merge one-core/r9-fixes — release 9: queued jobs end done (safeRevalidate), no sleep after a filter-declined video, YouTube --sleep-requests 1, /jobs stall needs frozen progress, boot settles queued metas (+ lows S/V/H) | I Mean I'm Just Saying | 48 | +1709 | -119 |
| 2026-09-25 23:27 | plans: release 9 — the review fixes in the slice F record; CHANGELOG bullets for B2 and B4b corrected | I Mean I'm Just Saying | 2 | +88 | -37 |
| 2026-09-25 23:24 | editor: the queued-sync e2e releases its holder after 10 s, not 4 (review LOW-3) | I Mean I'm Just Saying | 1 | +5 | -3 |
| 2026-09-25 23:24 | common: only a filter-declined video skips the between-downloads sleep (review fix) | I Mean I'm Just Saying | 2 | +30 | -35 |
| 2026-09-25 23:24 | editor: the boot pass re-queues little — no syncs, nothing stale, newest per spec (review fix) | I Mean I'm Just Saying | 3 | +332 | -79 |
| 2026-09-25 23:20 | plans: STATE — Paramount Tactical scan/download/keep done (1,369 settled by the filter, 0 requests); release 9 + C1 in review fixes | I Mean I'm Just Saying | 1 | +10 | -0 |
| 2026-09-25 23:13 | plans: release 9 — C1 review fixes recorded (9d3ab18c, e2e:hub 11 passed); the hub build's LMDB/data walk noted | I Mean I'm Just Saying | 1 | +20 | -9 |
| 2026-09-25 23:12 | plans: release 9 — slice F as shipped (four fixes + the three lows); [Unreleased] bullets | I Mean I'm Just Saying | 2 | +183 | -0 |
| 2026-09-25 23:12 | export: C1 review fixes — hub-summary.json ignored, the H1 true with no official instances, the add-archive sentence said once and scoped to this browser, official cards fall back to the homepage's series colour | I Mean I'm Just Saying | 3 | +34 | -21 |
| 2026-09-25 23:05 | plans: release 9 — slice C1 as shipped (the hub in the family's register; hub-summary.json; --chart-3 green) | I Mean I'm Just Saying | 2 | +139 | -0 |
| 2026-09-25 23:04 | editor: the queued-sync e2e reproduces the live failure (detached release) | I Mean I'm Just Saying | 2 | +58 | -32 |
| 2026-09-25 22:48 | export: the hub in the homepage's register — a plain H1, "Official instances" with the homepage's figures per card (hub-summary.json), "Archives you added", the live line reworded; specs follow the new H1 | I Mean I'm Just Saying | 12 | +376 | -102 |
| 2026-09-25 22:47 | homepage: official.transcripts counted where transcripts are placed; gone only when held | I Mean I'm Just Saying | 5 | +81 | -11 |
| 2026-09-25 22:47 | common: a new video dir rebases the channel's title memo instead of dropping it | I Mean I'm Just Saying | 2 | +44 | -9 |
| 2026-09-25 22:47 | common: a backoff merge takes until and fails each to their max | I Mean I'm Just Saying | 4 | +48 | -10 |
| 2026-09-25 22:44 | common: compose-hub writes hub-summary.json — the homepage's official totals and per-site card figures, from the same buildHomepageSummary call (controller/poolSummary.ts); optional, skipped with no index | I Mean I'm Just Saying | 8 | +503 | -53 |
| 2026-09-25 22:43 | editor: at boot, settle the metas a restart left `queued` | I Mean I'm Just Saying | 4 | +388 | -0 |
| 2026-09-25 22:43 | common: /jobs flags a stall by quiet time, not age | I Mean I'm Just Saying | 4 | +90 | -4 |
| 2026-09-25 22:41 | common: archilyzer --chart-3 is its own series green, no longer the --state-gone hex (light #5a9e3a, dark #86c86a) | I Mean I'm Just Saying | 1 | +9 | -2 |
| 2026-09-25 22:41 | export: the hub wears the family's instrument face — archilyzer, dark by default, as the homepage does; site builds keep base/system | I Mean I'm Just Saying | 1 | +27 | -4 |
| 2026-09-25 22:39 | common: YouTube spawns carry --sleep-requests 1 | I Mean I'm Just Saying | 3 | +52 | -6 |
| 2026-09-25 22:37 | common: no 30 s sleep after a video that fetched no media | I Mean I'm Just Saying | 2 | +211 | -6 |
| 2026-09-25 22:35 | editor: a queued job's revalidation can no longer fail it (safeRevalidate) | I Mean I'm Just Saying | 21 | +285 | -73 |
| 2026-09-25 22:27 | plans: release 8 — slice H is production (archilyzer.pages.dev deploy a684a0ce, summary v5); rollout scripts kept | I Mean I'm Just Saying | 2 | +10 | -1 |
| 2026-09-25 22:25 | plans: keep the release 7/8 rollout scripts in plans/tools/rollout (scratch dies with the job); fix the redeploy log names and the smoke DEFERRED check | I Mean I'm Just Saying | 13 | +176 | -0 |
| 2026-09-25 22:11 | plans: release 8 — slice E live on the five sites + hub (Jeralyzer proof: restored query, 0 shards on load, fetch after Enter) | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-25 21:48 | plans: release 8 — slice Z live on the five sites + hub (yt-dlp button proved on Jeralyzer); slice E merged 8c6de5c2, its redeploy started | I Mean I'm Just Saying | 1 | +4 | -0 |
| 2026-09-25 21:47 | Merge one-core/r8-export-norefire — release 8 slice E: the restored search waits for the visitor (no re-run on load; page-life flag keeps hub /ask grounded) | I Mean I'm Just Saying | 6 | +406 | -6 |
| 2026-09-25 21:06 | plans: release 8 slice E — (review fix) record the page-life gate, the hub /ask note and the re-gate | I Mean I'm Just Saying | 2 | +13 | -3 |
| 2026-09-25 21:03 | Merge one-core/r8-ytdlp-button — release 8 slice Z: the yt-dlp clip command shows with transcriptDownloads off (only the file/Markdown downloads are gated) | I Mean I'm Just Saying | 11 | +101 | -47 |
| 2026-09-25 21:03 | plans: release 8 slice Z — the yt-dlp command button is not a download; record + changelog | I Mean I'm Just Saying | 2 | +40 | -0 |
| 2026-09-25 21:01 | common: (review fix) hold a restored search only on the page life's first load | I Mean I'm Just Saying | 3 | +181 | -1 |
| 2026-09-25 21:00 | common: the yt-dlp clip command shows with transcriptDownloads off | I Mean I'm Just Saying | 9 | +61 | -47 |
| 2026-09-25 20:54 | plans: release 8 slice E — the restored search waits for the visitor (record + changelog) | I Mean I'm Just Saying | 2 | +63 | -0 |
| 2026-09-25 20:44 | export: ask-chat's reload test submits the restored search before checking grounding | I Mean I'm Just Saying | 1 | +3 | -1 |
| 2026-09-25 20:40 | common: a search restored from localStorage waits for the visitor | I Mean I'm Just Saying | 2 | +150 | -5 |
| 2026-09-25 20:35 | plans: release 8 slice H — reviewed SHIP, merged 556dd6e7, preview deployed at refresh.archilyzer.pages.dev; production pending the operator | I Mean I'm Just Saying | 1 | +2 | -0 |
| 2026-09-25 20:32 | Merge one-core/r8-homepage — release 8 slice H: the homepage rethought (plain copy, monthly chart by instance, family stats, Official instances; deploy homepage --preview) | I Mean I'm Just Saying | 13 | +1006 | -295 |
| 2026-09-25 20:27 | plans: release 8 slice H — monthlyUnplaced now includes the build month | I Mean I'm Just Saying | 1 | +2 | -2 |
| 2026-09-25 20:27 | plans: release 8 slice H — the record's month span after the trim (204 months, to 2026-08) | I Mean I'm Just Saying | 1 | +3 | -3 |
| 2026-09-25 20:27 | plans: release 8 slice H — record the complete-months fix and its re-gate | I Mean I'm Just Saying | 1 | +10 | -4 |
| 2026-09-25 20:27 | common: homepage summary monthly ends at the last complete month — the build month is partial and charted as a collapse | I Mean I'm Just Saying | 2 | +47 | -20 |
| 2026-09-25 20:22 | plans: release 8 slice H record — the homepage, rethought; CHANGELOG bullet | I Mean I'm Just Saying | 2 | +120 | -0 |
| 2026-09-25 20:20 | publish: deploy homepage [--preview <branch>] — deployHomepage takes previewBranch the way deployHub does | I Mean I'm Just Saying | 3 | +67 | -8 |
| 2026-09-25 20:18 | homepage: marketing e2e pins the chart, Official instances and the build date against the summary on disk | I Mean I'm Just Saying | 1 | +65 | -32 |
| 2026-09-25 20:18 | homepage: / rethought — claim, chart, family numbers, official instances, one paragraph of what it does | I Mean I'm Just Saying | 3 | +209 | -254 |
| 2026-09-25 20:18 | homepage: ArchiveGrowthChart — the official instances' back catalogue as stacked monthly strata, inline SVG at build time | I Mean I'm Just Saying | 2 | +270 | -0 |
| 2026-09-25 20:12 | common: homepage summary v5 — monthly back catalogue by upload month, per-site numbers, official totals | I Mean I'm Just Saying | 2 | +242 | -1 |
| 2026-09-25 20:04 | plans: STATE — homepage no longer links to the hub (operator decision); homepage refresh next | I Mean I'm Just Saying | 1 | +2 | -0 |
| 2026-09-25 20:01 | homepage: withhold the hero's hub link until the hub is polished (operator decision 2026-09-25); the URL stays in homepage.json for the hub's own build | I Mean I'm Just Saying | 1 | +5 | -1 |
| 2026-09-25 19:31 | plans: release 7 step 10 — the invariant is the pipeline action's own revalidatePath (pipelineActions.ts:220-224), not the onDone hook | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-25 19:29 | plans: release 8 rollout record — 660957f7 live on :3001 (video titles + one shared auto-queue state); STATE + FACTS | I Mean I'm Just Saying | 3 | +367 | -9 |
| 2026-09-25 19:23 | plans: release 7 rollout — step 10 owed sync recorded (teamrcn stamps moved; status failed on the queued-job revalidatePath invariant) | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-25 18:17 | Merge one-core/r8-state-share — release 8 slice S: one shared auto-queue state per process; manual-sync backoff writes through the live object | I Mean I'm Just Saying | 8 | +442 | -46 |
| 2026-09-25 18:17 | Merge one-core/r8-video-titles — release 8 slice V: the channel video list shows and searches titles; the video page shows scan-store metadata for undownloaded videos | I Mean I'm Just Saying | 12 | +997 | -58 |
| 2026-09-25 18:15 | plans: release 8 slice V — review fixes, re-gate, live Rumble cost numbers | I Mean I'm Just Saying | 1 | +36 | -12 |
| 2026-09-25 18:12 | editor: changelog — a manual Sync's cooldown is no longer erased by a runner's save (review fix) | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-25 18:09 | channels: matchesVideoQuery above parseFilters' comment, and a unit test for it (review L1, L2) | I Mean I'm Just Saying | 2 | +50 | -3 |
| 2026-09-25 18:09 | common: memoize metadata.info.json titles per channel, keyed by data/ mtime (review M1) | I Mean I'm Just Saying | 3 | +144 | -6 |
| 2026-09-25 18:05 | common: recordDownloadBackoff writes through the shared auto-queue state (review fix) | I Mean I'm Just Saying | 6 | +261 | -91 |
| 2026-09-25 18:00 | plans: release 8 record — slice V (video titles) as shipped; changelog bullets | I Mean I'm Just Saying | 2 | +86 | -0 |
| 2026-09-25 17:58 | editor: changelog — a lane's save no longer undoes the download runner's cooldown (slice S) | I Mean I'm Just Saying | 1 | +1 | -0 |
| 2026-09-25 17:50 | channels: the video page shows the listing scan's metadata for an undownloaded video | I Mean I'm Just Saying | 2 | +140 | -32 |
| 2026-09-25 17:50 | channels: the video list shows titles and searches them | I Mean I'm Just Saying | 4 | +64 | -26 |
| 2026-09-25 17:49 | common: sharedAutoQueueState caches the in-flight read — one state object per process, even at boot | I Mean I'm Just Saying | 2 | +158 | -7 |
| 2026-09-25 17:48 | common: videoTitles — a channel's video titles from index, scan store, metadata.info.json | I Mean I'm Just Saying | 2 | +498 | -0 |
| 2026-09-25 17:47 | plans: release 7 rollout — the 13:33 state.json revert traced (sharedAutoQueueState caches the value, not the read); fix is release 8 slice S | I Mean I'm Just Saying | 1 | +13 | -0 |
| 2026-09-25 17:42 | plans: release 7 rollout record — 93155dc7 live on :3001 (releases 6 + 7), hub + homepage first deploys; STATE + FACTS | I Mean I'm Just Saying | 4 | +318 | -8 |
| 2026-09-25 17:01 | docs: keep-videos example names the live slug; four things to know (slice K review) | I Mean I'm Just Saying | 1 | +2 | -2 |
| 2026-09-25 17:01 | Merge one-core/r7-keep — release 7 slice K: pnpm ops keep-videos (bulk do-not-clean by title/description regex, the download filter's matcher) | I Mean I'm Just Saying | 10 | +742 | -0 |
| 2026-09-25 16:57 | plans: release 7 slice K record — pnpm ops keep-videos | I Mean I'm Just Saying | 2 | +68 | -0 |
| 2026-09-25 16:38 | docs: keep-videos in the ops section — scan first, download the notDownloaded ids, re-run | I Mean I'm Just Saying | 1 | +12 | -0 |
| 2026-09-25 16:38 | ops: keep-videos — POST {slug, match, fields?, note?, dryRun?} | I Mean I'm Just Saying | 4 | +145 | -0 |
| 2026-09-25 16:38 | editor: keepVideosAction — the bulk form of the do-not-clean toggle | I Mean I'm Just Saying | 1 | +47 | -0 |
| 2026-09-25 16:38 | common: keepVideosMatching — the do-not-clean marker over a channel's title/description matches | I Mean I'm Just Saying | 2 | +470 | -0 |
| 2026-09-25 16:36 | editor e2e: deploy-hub's unbuilt refusal is checked only when this checkout holds no hub build — export/out is the checkout's real build dir, so after e2e:2origin the call would start a real deploy | I Mean I'm Just Saying | 1 | +21 | -6 |
| 2026-09-25 16:02 | Merge one-core/r7-cli — release 7 slice C: the archilyzer CLI, buildSite/deploySite/buildHub/deployHub entry points, prebuild twins collapsed, hub + homepage deploy path, posts-only manifest fix | I Mean I'm Just Saying | 47 | +1941 | -198 |
| 2026-09-25 15:59 | plans: (review fix) release 7 slice C record — Pages projects must exist first, 2origin, re-gate on the merge | I Mean I'm Just Saying | 1 | +51 | -7 |
| 2026-09-25 15:44 | Merge main bfcd2fcf (release 7 slice Y) into one-core/r7-cli | I Mean I'm Just Saying | 20 | +960 | -59 |
| 2026-09-25 15:44 | (review fix) docs + hints: every deploy path uploads to R2; hub examples name archilyzer-hub | I Mean I'm Just Saying | 4 | +14 | -8 |
| 2026-09-25 15:39 | plans: release 7 slice Y record — the later clock drops the tied pair (re-review nit) | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-25 15:39 | Merge one-core/r7-pacing — release 7 slice Y: YouTube lane pacing (per-video 6 h deferral beside platformBackoff, idle reason deferred, scan-error at refresh) | I Mean I'm Just Saying | 20 | +959 | -59 |
| 2026-09-25 15:36 | plans: release 7 slice Y — review fixes recorded, re-gated | I Mean I'm Just Saying | 1 | +15 | -7 |
| 2026-09-25 15:34 | plans: release 7 slice C record — the archilyzer CLI, hub deploy path, posts-only fix | I Mean I'm Just Saying | 2 | +110 | -0 |
| 2026-09-25 15:34 | common: (review fix) the deferred list is tested, and ties sort by code point | I Mean I'm Just Saying | 2 | +33 | -1 |
| 2026-09-25 15:33 | common: (review fix) the /jobs lane note says "deferred" too | I Mean I'm Just Saying | 2 | +26 | -3 |
| 2026-09-25 15:25 | plans: release 7 slice Y as shipped — YouTube lane pacing record + changelog | I Mean I'm Just Saying | 3 | +81 | -0 |
| 2026-09-25 15:18 | e2e: pacing T1 — the idle sentence is drawn twice (rail + lane); assert one | I Mean I'm Just Saying | 1 | +5 | -1 |
| 2026-09-25 15:17 | compose: a manifest-only channel tree is copied, not deleted | I Mean I'm Just Saying | 2 | +124 | -2 |
| 2026-09-25 15:16 | homepage: the hero links to the hub when homepage.json names it | I Mean I'm Just Saying | 2 | +26 | -0 |
| 2026-09-25 15:16 | sites: Build hub / Deploy hub on /sites, ops build-hub and deploy-hub | I Mean I'm Just Saying | 13 | +345 | -16 |
| 2026-09-25 15:16 | publish: the hub builds and deploys; the homepage deploys through the CLI | I Mean I'm Just Saying | 8 | +364 | -6 |
| 2026-09-25 15:10 | docker: build-site.sh and publish-site.sh call archilyzer build site | I Mean I'm Just Saying | 2 | +10 | -10 |
| 2026-09-25 15:10 | publish: buildSite / deploySite / buildAll; export's build twins collapse | I Mean I'm Just Saying | 6 | +398 | -75 |
| 2026-09-25 15:09 | e2e: pacing.spec — a deferred video is skipped; a live 429 defers and moves on | I Mean I'm Just Saying | 2 | +234 | -0 |
| 2026-09-25 15:07 | operations: the cooldown strip is a region and lists deferred videos | I Mean I'm Just Saying | 3 | +104 | -24 |
| 2026-09-25 15:06 | common: bins export main() and run only as the entry point; archilyzer table | I Mean I'm Just Saying | 13 | +200 | -80 |
| 2026-09-25 15:06 | common: an identical scan error refreshes its `at` once a cooldown old | I Mean I'm Just Saying | 2 | +47 | -1 |
| 2026-09-25 15:04 | common: auto-download skips a deferred video; idleReason "deferred" | I Mean I'm Just Saying | 2 | +33 | -2 |
| 2026-09-25 15:04 | common: the archilyzer CLI's parser and command table machinery | I Mean I'm Just Saying | 4 | +307 | -3 |
| 2026-09-25 15:02 | common: applyUnitOutcome — one seam for a finished unit's backoff and deferral | I Mean I'm Just Saying | 3 | +213 | -33 |
| 2026-09-25 15:00 | common: per-video deferral helpers + persisted videoDeferrals on the auto-queue state | I Mean I'm Just Saying | 4 | +182 | -1 |
| 2026-09-25 14:55 | plans: release 7 — YouTube lane pacing + the archilyzer CLI, then one rollout (releases 6 + 7) | I Mean I'm Just Saying | 1 | +317 | -0 |
| 2026-09-25 05:50 | plans: release 5 — the-quartering-rumble sync finished (97 archived, 0 errors, stamps set; 4 maybe-missing are upstream 410s) | I Mean I'm Just Saying | 2 | +11 | -2 |
| 2026-09-25 05:39 | plans: release 5 rollout record — 05877ffb live on :3001 (releases 4+5), exports off on five sites, Rumble proven live; STATE + FACTS; YouTube lane pacing plan filed | I Mean I'm Just Saying | 4 | +387 | -9 |
| 2026-09-25 05:02 | Merge one-core/phase-4-s1 — Phase 4 slice 1: buildDeployCore moves to common/publish/build.ts, aws-sdk deps move to common | I Mean I'm Just Saying | 13 | +714 | -598 |
| 2026-09-25 05:02 | plans: release 6 Phase 4 slice 1 — record corrected after review | I Mean I'm Just Saying | 1 | +12 | -4 |
| 2026-09-25 05:02 | common: jobs/ and controller/ may not import publish/ | I Mean I'm Just Saying | 1 | +3 | -3 |
| 2026-09-25 04:55 | plans: release 6 Phase 4 slice 1 — record and changelog | I Mean I'm Just Saying | 3 | +55 | -1 |
| 2026-09-25 04:48 | Merge main (0e9d5dd0, release 6 follow-ups slice) into one-core/phase-4-s1 | I Mean I'm Just Saying | 17 | +282 | -77 |
| 2026-09-25 04:48 | Merge one-core/r6-followups — release 6 follow-ups: 410 is deleted, umtool gets the platform args (one table, .mjs), atomic remote transcript write, stale comment, measure-nav routes | I Mean I'm Just Saying | 17 | +282 | -77 |
| 2026-09-25 04:45 | common: buildDeployCore moves to the core as publish/build.ts | I Mean I'm Just Saying | 10 | +648 | -594 |
| 2026-09-25 04:39 | plans: release 6 follow-ups slice — record and changelog | I Mean I'm Just Saying | 2 | +50 | -0 |
| 2026-09-25 04:32 | editor: measure-nav times the /api/view paths, not the six retired ones | I Mean I'm Just Saying | 1 | +17 | -12 |
| 2026-09-25 04:30 | common: channelSnapshot's bands comment names buildBands' real home | I Mean I'm Just Saying | 1 | +4 | -3 |
| 2026-09-25 04:28 | common: the remote transcript is written with writeFileAtomic | I Mean I'm Just Saying | 1 | +7 | -4 |
| 2026-09-25 04:26 | umtool: report-to-video's yt-dlp spawns carry the platform args | I Mean I'm Just Saying | 10 | +184 | -56 |
| 2026-09-25 04:21 | common: HTTP 410 Gone classifies as deleted, not error | I Mean I'm Just Saying | 2 | +20 | -2 |
| 2026-09-25 02:51 | Merge one-core/r5-exports — release 5 slice X: per-site transcriptDownloads (default on), hub key on homepage.json, archives-off coverage | I Mean I'm Just Saying | 29 | +726 | -85 |
| 2026-09-25 02:51 | plans: release 5 slice X — gates on the merged tree (main 09d0f4de + slice X) | I Mean I'm Just Saying | 1 | +10 | -1 |
| 2026-09-25 02:40 | Merge main (09d0f4de, release 5 slice R) into one-core/r5-exports | I Mean I'm Just Saying | 13 | +630 | -26 |
| 2026-09-25 02:39 | plans: release 5 slice X — record and changelog after review | I Mean I'm Just Saying | 2 | +49 | -20 |
| 2026-09-25 02:38 | Merge one-core/r5-rumble — release 5 slice R: Rumble impersonation everywhere, paced sweeps, a 429 mid-sweep is incomplete not failed | I Mean I'm Just Saying | 13 | +630 | -26 |
| 2026-09-25 02:38 | plans: release 5 slice R — review fixes in the record (commit table, gates, retry cadence, umtool follow-up) | I Mean I'm Just Saying | 1 | +27 | -8 |
| 2026-09-25 02:29 | common: a bare HTTP 403 classifies as "network" and backs the platform off | I Mean I'm Just Saying | 3 | +27 | -1 |
| 2026-09-25 02:29 | common: slice R review — best-effort sweep cooldown write, truthful incomplete line, probe args without config | I Mean I'm Just Saying | 2 | +23 | -7 |
| 2026-09-25 02:27 | hub: homepage.json transcriptDownloads — the hub's modal follows the same switch | I Mean I'm Just Saying | 8 | +189 | -0 |
| 2026-09-25 02:27 | export: e2e — heal a leftover transcriptDownloads at config load, not in the spec | I Mean I'm Just Saying | 2 | +16 | -8 |
| 2026-09-25 02:18 | plans: release 5 slice R record, changelog, rumble-sweep-pacing superseded | I Mean I'm Just Saying | 3 | +55 | -0 |
| 2026-09-25 02:16 | plans: release 5 slice X record — transcriptDownloads shipped on one-core/r5-exports | I Mean I'm Just Saying | 4 | +81 | -2 |
| 2026-09-25 02:07 | export: e2e for transcriptDownloads and archives: false | I Mean I'm Just Saying | 2 | +165 | -0 |
| 2026-09-25 01:58 | editor: e2e — a Rumble sweep that 429s mid-listing (sweep429 sentinel, argv recorded) | I Mean I'm Just Saying | 2 | +191 | -0 |
| 2026-09-25 01:57 | common: a 429 mid-sweep is "incomplete", not a listing and not a failure | I Mean I'm Just Saying | 2 | +211 | -12 |
| 2026-09-25 01:56 | sites: form checkbox for per-video transcript downloads | I Mean I'm Just Saying | 3 | +74 | -0 |
| 2026-09-25 01:56 | export: the transcript modal's Download / Copy MD / yt-dlp controls follow transcriptDownloads | I Mean I'm Just Saying | 9 | +140 | -77 |
| 2026-09-25 01:56 | common: site.json transcriptDownloads — per-video export controls, opt-out, absent = on | I Mean I'm Just Saying | 3 | +26 | -1 |
| 2026-09-25 01:55 | common: one yt-dlp arg builder with a platform table — rumble gets --impersonate chrome everywhere | I Mean I'm Just Saying | 5 | +112 | -14 |
| 2026-09-25 01:46 | plans: release 5 — record file, durable implementer rules, STATE pointer | I Mean I'm Just Saying | 3 | +234 | -0 |
| 2026-09-25 01:08 | plans: release 4 final suites on 596c2963 — editor 624 + 1 load flake (rerun 3× green), export 188 | I Mean I'm Just Saying | 2 | +2 | -2 |
| 2026-09-25 00:26 | plans: release 4 record — Phase 3 complete (main @ 596c2963) | I Mean I'm Just Saying | 4 | +630 | -114 |
| 2026-09-25 00:14 | Merge one-core/phase-3-s3b — the video page: one module per chore card, VideoPanel is the assembly | I Mean I'm Just Saying | 24 | +1852 | -1424 |
| 2026-09-25 00:14 | plans: slice 3b — post-merge gates on main af19fc62 | I Mean I'm Just Saying | 1 | +10 | -0 |
| 2026-09-25 00:03 | Merge branch 'main' into one-core/phase-3-s3b | I Mean I'm Just Saying | 48 | +2022 | -261 |
| 2026-09-25 00:03 | Merge one-core/phase-3-w — one write idiom: writeFileAtomic under writeJsonAtomic, 26 writers folded, the two write counters deleted | I Mean I'm Just Saying | 30 | +936 | -169 |
| 2026-09-25 00:03 | plans: slice W merged-tip gates (main 37d9a7de merged as 1a3a9b63) | I Mean I'm Just Saying | 1 | +15 | -0 |
| 2026-09-24 23:51 | Merge main (37d9a7de, slice P) into one-core/phase-3-w | I Mean I'm Just Saying | 20 | +1086 | -92 |
| 2026-09-24 23:50 | Merge one-core/phase-3-p — the /channels rack: one layer ladder, the transcribe station counts and queues by id, the audit fixes | I Mean I'm Just Saying | 17 | +942 | -84 |
| 2026-09-24 23:50 | plans: slice P record — review fixes F1–F5 | I Mean I'm Just Saying | 2 | +30 | -9 |
| 2026-09-24 23:48 | channels: below md an opened Advanced panel stops above the deck | I Mean I'm Just Saying | 2 | +9 | -5 |
| 2026-09-24 23:48 | channels: the transcribe station queues by id | I Mean I'm Just Saying | 3 | +86 | -29 |
| 2026-09-24 23:45 | plans: slice 3b record — the video page's chore cards, one module each | I Mean I'm Just Saying | 2 | +90 | -0 |
| 2026-09-24 23:42 | plans: release 4 prelude — the one-sync md5 sweep | I Mean I'm Just Saying | 2 | +14 | -8 |
| 2026-09-24 23:40 | plans: Rumble's embed endpoint 403s every download — upstream #17496, impersonation as step 0 of the Rumble slice | I Mean I'm Just Saying | 1 | +25 | -0 |
| 2026-09-24 23:38 | plans: slice P record — the rack's layer ladder, the transcribe station, the audit | I Mean I'm Just Saying | 2 | +107 | -0 |
| 2026-09-24 23:29 | plans: a full sweep of a large Rumble channel must be paced — the 44-day the-quartering-rumble sync failure, step 1 (operator) and step 2 (slice after release 4) | I Mean I'm Just Saying | 1 | +54 | -0 |
| 2026-09-24 23:28 | video page: one module per chore card | I Mean I'm Just Saying | 22 | +1752 | -1424 |
| 2026-09-24 23:22 | plans: visitor exports off on the published sites — inventory and slice, scheduled after release 4 | I Mean I'm Just Saying | 1 | +51 | -0 |
| 2026-09-24 23:21 | channels: the rack is its own stacking context | I Mean I'm Just Saying | 3 | +33 | -14 |
| 2026-09-24 23:21 | channels: the section rule travels with a pinned group header | I Mean I'm Just Saying | 1 | +7 | -1 |
| 2026-09-24 23:21 | common: slice W review fixes | I Mean I'm Just Saying | 3 | +42 | -20 |
| 2026-09-24 23:14 | plans: slice W record, writers numbers tool, changelog | I Mean I'm Just Saying | 3 | +527 | -0 |
| 2026-09-24 23:05 | channels: an opened Advanced panel scrolls itself into view | I Mean I'm Just Saying | 2 | +45 | -2 |
| 2026-09-24 23:05 | channels: a group header's controls stay on screen when the rack scrolls across | I Mean I'm Just Saying | 3 | +59 | -23 |
| 2026-09-24 22:59 | common: text and binary tmp-rename writers on writeFileAtomic | I Mean I'm Just Saying | 7 | +29 | -31 |
| 2026-09-24 22:58 | channels: rack audit | I Mean I'm Just Saying | 1 | +134 | -0 |
| 2026-09-24 22:57 | channels: the transcribe station counts what its button queues | I Mean I'm Just Saying | 5 | +236 | -42 |
| 2026-09-24 22:57 | channels: one layer ladder for the rack | I Mean I'm Just Saying | 9 | +251 | -14 |
| 2026-09-24 22:56 | common: process-global and per-video JSON writers on writeJsonAtomic | I Mean I'm Just Saying | 15 | +146 | -72 |
| 2026-09-24 22:53 | common: roster, maybe-missing and metadata-scan on writeJsonAtomic; two counters gone | I Mean I'm Just Saying | 5 | +54 | -40 |
| 2026-09-24 22:51 | common: writeFileAtomic under writeJsonAtomic | I Mean I'm Just Saying | 2 | +144 | -27 |
| 2026-09-24 22:47 | plans: release 4 prelude — bbcc1acd live on :3001 | I Mean I'm Just Saying | 2 | +78 | -0 |
| 2026-09-24 21:24 | plans: release 3 final suites on edd9fb3b (editor 621, export 188); why-3a-first is the plan's rule | I Mean I'm Just Saying | 2 | +3 | -8 |
| 2026-09-24 20:50 | comments: name what slices 3a and 4b left — sidecar(), writeJsonAtomic, reportStateOf's home | I Mean I'm Just Saying | 8 | +22 | -22 |
| 2026-09-24 20:50 | plans: release 3 record — rollout, slice 3a, slice 4b (main @ edd9fb3b) | I Mean I'm Just Saying | 4 | +750 | -48 |
| 2026-09-24 20:41 | Merge one-core/phase-3-s4b — the rest of the schemas: site.json, channel config.json, sidecars | I Mean I'm Just Saying | 54 | +3349 | -1131 |
| 2026-09-24 20:40 | plans: slice 4b record — gates on the merged tip (8d53d72e) | I Mean I'm Just Saying | 1 | +21 | -0 |
| 2026-09-24 20:24 | Merge branch 'main' (a9f5961e, slice 3a) into one-core/phase-3-s4b | I Mean I'm Just Saying | 36 | +3022 | -1933 |
| 2026-09-24 20:24 | plans: phase3-files-numbers tool, the slice 4b record, changelog | I Mean I'm Just Saying | 3 | +475 | -0 |
| 2026-09-24 17:59 | Merge one-core/phase-3-s3a — one drawing per noun: channel row + job in flight | I Mean I'm Just Saying | 35 | +2964 | -1927 |
| 2026-09-24 17:50 | review fixes: one jsonFile chain per process, null patches fail loudly, doc prose | I Mean I'm Just Saying | 12 | +179 | -102 |
| 2026-09-24 17:41 | plans: slice 3a record — review fixes, builds, card/dashboard changes, bisect hazard | I Mean I'm Just Saying | 1 | +35 | -3 |
| 2026-09-24 17:40 | review fixes: rack-only dim, slug-only sections, report dates, one-line compact rows | I Mean I'm Just Saying | 11 | +141 | -63 |
| 2026-09-24 17:32 | bin: file-schemas-docs — SITE.md and CHANNEL.md generated from the schemas | I Mean I'm Just Saying | 9 | +588 | -14 |
| 2026-09-24 17:29 | controller: one channel-config reader, a strict writer, one patcher | I Mean I'm Just Saying | 13 | +255 | -130 |
| 2026-09-24 17:28 | plans: slice 3a, as shipped; changelog entry | I Mean I'm Just Saying | 2 | +54 | -0 |
| 2026-09-24 17:27 | plans: rollout 2026-09-24 — release 2 live on :3001, smoke and the boot-cost note | I Mean I'm Just Saying | 2 | +58 | -4 |
| 2026-09-24 17:23 | lib: channelConfigSchema — one set of coercions for config.json | I Mean I'm Just Saying | 3 | +503 | -305 |
| 2026-09-24 17:18 | lib: siteSchema — one definition of site.json | I Mean I'm Just Saying | 4 | +594 | -278 |
| 2026-09-24 17:12 | channels: column ids and presets move to a plain module (server-importable) | I Mean I'm Just Saying | 4 | +116 | -95 |
| 2026-09-24 17:11 | lib: sidecar() — one declaration per per-video sidecar | I Mean I'm Just Saying | 12 | +519 | -329 |
| 2026-09-24 17:08 | widget: ActiveJobsStrip draws JobRow compact; private row and bars deleted | I Mean I'm Just Saying | 1 | +11 | -230 |
| 2026-09-24 17:07 | operations: in-flight units are job rows (inFlight.jobId, fromInFlight) | I Mean I'm Just Saying | 6 | +136 | -51 |
| 2026-09-24 17:05 | jobs: one JobRow (table | card | compact) + JobRowActions | I Mean I'm Just Saying | 7 | +681 | -404 |
| 2026-09-24 17:01 | channelWork: the server shell draws the shared channel table | I Mean I'm Just Saying | 2 | +69 | -112 |
| 2026-09-24 17:00 | dashboard: the shared channel table; the widgetActionable copy folded | I Mean I'm Just Saying | 5 | +142 | -279 |
| 2026-09-24 16:59 | channels: the rack splits into ChannelsRack + a shared ChannelsTable | I Mean I'm Just Saying | 4 | +1067 | -711 |
| 2026-09-24 16:54 | views: channelRow + actionableCounts; loadActionable wraps them | I Mean I'm Just Saying | 6 | +668 | -135 |
| 2026-09-24 16:54 | lib: one JSON reader and one per-path-chained atomic JSON writer | I Mean I'm Just Saying | 24 | +350 | -106 |
| 2026-09-24 16:45 | operations: re-acquire figures come from the diarization kind, not the lane sum | I Mean I'm Just Saying | 1 | +18 | -5 |
| 2026-09-24 16:01 | operations: LaneSettingsForm derives the re-acquire figures from the widget-sync payload | I Mean I'm Just Saying | 2 | +64 | -6 |
| 2026-09-24 00:56 | plans: final suites on a7501cb3 (editor 621, export 188) and gate B scope check | I Mean I'm Just Saying | 2 | +4 | -2 |
| 2026-09-24 00:22 | docs: point README and RUNNING_IN_DOCKER at the generated SETTINGS.md | I Mean I'm Just Saying | 2 | +3 | -1 |
| 2026-09-24 00:22 | plans: STATE — Phase 3 slices 2 + 4a on main @ a7501cb3, gate B done | I Mean I'm Just Saying | 1 | +81 | -5 |
| 2026-09-24 00:21 | plans: FACTS anchors for the view route and the settings schema | I Mean I'm Just Saying | 1 | +143 | -11 |
| 2026-09-24 00:20 | plans: one-core Phase 3 slices 2 and 4a marked shipped | I Mean I'm Just Saying | 1 | +18 | -1 |
| 2026-09-24 00:20 | plans: phase 3 release 2026-09-23 (slices 2 + 4a) and the next release | I Mean I'm Just Saying | 1 | +108 | -10 |
| 2026-09-24 00:20 | plans: gate B record — reachable media only, applied 2026-09-23 | I Mean I'm Just Saying | 1 | +43 | -0 |
| 2026-09-24 00:13 | merge: one-core/phase-3-s4a — one settings schema (zod), one editor writer, SETTINGS.md generated | I Mean I'm Just Saying | 39 | +4693 | -2229 |
| 2026-09-24 00:08 | merge: main (one-core phase 3 slice 2) into one-core/phase-3-s4a | I Mean I'm Just Saying | 43 | +1142 | -356 |
| 2026-09-24 00:06 | settings: every nested key documented from one source; review fixes | I Mean I'm Just Saying | 14 | +1364 | -445 |
| 2026-09-24 00:03 | merge: one-core/phase-3-s2 — one polling route: /api/view/[name], eight old paths as rewrites, one client poller | I Mean I'm Just Saying | 43 | +1142 | -356 |
| 2026-09-23 23:49 | plans: record one-core phase 3 slice 4a as shipped; changelog entry | I Mean I'm Just Saying | 2 | +82 | -0 |
| 2026-09-23 23:47 | review fixes: a poll that hangs is abandoned, the dispatcher is text-banned, one row mapping | I Mean I'm Just Saying | 12 | +137 | -44 |
| 2026-09-23 23:36 | settings: settings.json.example and SETTINGS.md generated from the schema | I Mean I'm Just Saying | 6 | +809 | -16 |
| 2026-09-23 23:35 | plans: slice 2 record, the view-numbers tool, two comments that named deleted routes | I Mean I'm Just Saying | 4 | +199 | -2 |
| 2026-09-23 23:33 | editor: one settings writer — saveSettings(patch), and the 11 callers pass patches | I Mean I'm Just Saying | 13 | +216 | -118 |
| 2026-09-23 23:30 | settings: one schema — lib/settingsSchema.ts; getSettings/writeSettings parse through it | I Mean I'm Just Saying | 3 | +1979 | -1661 |
| 2026-09-23 23:24 | editor: one client poller — usePolledPayload moves to lib/, three loops fold onto it | I Mean I'm Just Saying | 10 | +165 | -148 |
| 2026-09-23 23:23 | settings: zod seams for workers, channelPriority and autoQueue, kept out of client bundles | I Mean I'm Just Saying | 3 | +63 | -14 |
| 2026-09-23 23:22 | settings: the auto-queue sanitizer moves to lib/autoQueueSchema.ts; zod joins common | I Mean I'm Just Saying | 8 | +466 | -261 |
| 2026-09-23 23:21 | api: one polling route — /api/view/[name], and the eight old paths are rewrites | I Mean I'm Just Saying | 16 | +487 | -168 |
| 2026-09-23 23:14 | views: the widget's two route-resident builders become pure folds | I Mean I'm Just Saying | 13 | +215 | -55 |
| 2026-09-23 13:18 | plans: STATE records preview deployments and the Anilyzer preview URL | I Mean I'm Just Saying | 1 | +11 | -1 |
| 2026-09-23 13:14 | merge: deploy/preview — a site can be deployed to a Cloudflare Pages preview branch before production | I Mean I'm Just Saying | 18 | +1438 | -80 |
| 2026-09-23 13:13 | sites: deploy-only must not ship a build of another site | I Mean I'm Just Saying | 8 | +271 | -2 |
| 2026-09-23 13:07 | sites: the preview problem message may not borrow the input's name | I Mean I'm Just Saying | 2 | +17 | -6 |
| 2026-09-23 13:05 | docs: preview deployments, and the branch-inference hazard that predates them | I Mean I'm Just Saying | 2 | +139 | -0 |
| 2026-09-23 13:02 | e2e: pin the preview rules that are decided before a job exists | I Mean I'm Just Saying | 2 | +234 | -1 |
| 2026-09-23 13:00 | sites: a preview control beside the production deploy | I Mean I'm Just Saying | 2 | +138 | -13 |
| 2026-09-23 12:58 | ops cli: deploy-site, and the preview alias printed where a person sees it | I Mean I'm Just Saying | 2 | +114 | -6 |
| 2026-09-23 12:56 | ops: a deploy-site route, and preview on both deploy routes | I Mean I'm Just Saying | 3 | +164 | -48 |
| 2026-09-23 12:54 | sites: deploy can go to a preview branch instead of production | I Mean I'm Just Saying | 3 | +102 | -11 |
| 2026-09-23 12:51 | common: one place that says what a Pages preview branch is | I Mean I'm Just Saying | 2 | +266 | -0 |
| 2026-09-23 03:24 | plans: STATE records the post-release steps as done, all but the Anilyzer deploy | I Mean I'm Just Saying | 1 | +25 | -16 |
| 2026-09-22 21:31 | plans: STATE records the final full-suite numbers for the 2026-09-22 release | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-22 21:03 | plans: STATE for 2026-09-22 — the release, and two notes that expired | I Mean I'm Just Saying | 1 | +200 | -21 |
| 2026-09-22 21:01 | FACTS: the 2026-09-22 release, and four entries that were no longer true | I Mean I'm Just Saying | 3 | +321 | -4 |
| 2026-09-22 20:58 | plans: two S5/S6 debts landed, and the platter is not /mnt/platter | I Mean I'm Just Saying | 2 | +41 | -2 |
| 2026-09-22 20:54 | merge: editor/debts — clip eviction on the channel page, busy-aware rename/delete, sync-all skips unmounted drives, worker auth 503 asserted, S0-pause lands | I Mean I'm Just Saying | 52 | +1286 | -477 |
| 2026-09-22 20:43 | Merge branch 'main' into editor/debts | I Mean I'm Just Saying | 35 | +1502 | -187 |
| 2026-09-22 20:43 | editor: two refusals the operator could not read | I Mean I'm Just Saying | 2 | +31 | -1 |
| 2026-09-22 20:42 | plans: the numbers script stopped printing four fields that no longer exist | I Mean I'm Just Saying | 1 | +11 | -4 |
| 2026-09-22 20:41 | common: the gate's default is asserted through the sanitizer, not only the default | I Mean I'm Just Saying | 1 | +63 | -0 |
| 2026-09-22 20:40 | editor: the other four /api/test routes are behind the same door | I Mean I'm Just Saying | 4 | +30 | -6 |
| 2026-09-22 20:39 | editor: /api/test/worker-token does not exist unless the harness started the server | I Mean I'm Just Saying | 3 | +37 | -4 |
| 2026-09-22 20:35 | merge: export/tags-followups — tag chip groups fold, leaf sections use the scope table, hub /ask prerenders, MCP tag filter skips posts | I Mean I'm Just Saying | 12 | +435 | -67 |
| 2026-09-22 20:33 | merge main into export/tags-followups | I Mean I'm Just Saying | 17 | +834 | -107 |
| 2026-09-22 20:33 | merge: tags/rules-and-ops — site layers carry no rules, ops --wait survives a dropped poll, both build routes take siteId|siteIds | I Mean I'm Just Saying | 17 | +834 | -107 |
| 2026-09-22 20:32 | ask: the hub /ask spec locates the composer, not the key field | I Mean I'm Just Saying | 1 | +8 | -6 |
| 2026-09-22 20:31 | ops: a bad site id is a 400, and a poll that recovers is not an outcome | I Mean I'm Just Saying | 8 | +178 | -49 |
| 2026-09-22 20:31 | ask: the hub's /ask needs the whole provider stack, not one layer | I Mean I'm Just Saying | 1 | +25 | -12 |
| 2026-09-22 20:19 | contract: guard shipsPwa's env read, and say what the guard is for | I Mean I'm Just Saying | 2 | +44 | -11 |
| 2026-09-22 20:17 | operations: the four-lane status poll reads the corpus once | I Mean I'm Just Saying | 3 | +95 | -4 |
| 2026-09-22 20:15 | common: the write side is asserted on disk, and two comments name the key | I Mean I'm Just Saying | 6 | +127 | -15 |
| 2026-09-22 20:15 | editor: nothing preserves a retired pause field, because there is none to preserve | I Mean I'm Just Saying | 16 | +66 | -74 |
| 2026-09-22 20:13 | mcp: a tag filter takes the posts corpus out of the search | I Mean I'm Just Saying | 4 | +89 | -3 |
| 2026-09-22 20:13 | measure-nav: the list says thirteen, so should the comment | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-22 20:13 | wt: rm finds the directory add made | I Mean I'm Just Saying | 2 | +75 | -9 |
| 2026-09-22 20:11 | ops: both build routes take siteId or siteIds | I Mean I'm Just Saying | 6 | +191 | -40 |
| 2026-09-22 20:11 | ask: the hub's /ask mounts its own search session | I Mean I'm Just Saying | 2 | +64 | -1 |
| 2026-09-12 16:14 | common+editor: `held` gets a default, because the field it deferred to is gone | I Mean I'm Just Saying | 10 | +133 | -52 |
| 2026-09-12 16:02 | common: the four legacy pause fields are gone, and so is the migration | I Mean I'm Just Saying | 12 | +162 | -333 |
| 2026-09-22 20:09 | editor: the relocate spec's Preview is exact, because the panel has two now | I Mean I'm Just Saying | 1 | +15 | -3 |
| 2026-09-22 20:09 | search: a leaf section is labelled by the builder's own scope table | I Mean I'm Just Saying | 3 | +47 | -8 |
| 2026-09-22 20:08 | ops: --wait survives a poll that fails, and can be bounded | I Mean I'm Just Saying | 2 | +221 | -15 |
| 2026-09-22 20:07 | tags: a tag chip group folds away, and says what it still filters | I Mean I'm Just Saying | 3 | +218 | -53 |
| 2026-09-22 20:06 | gitignore: editor/content is an operator's symlink, never a tracked path | I Mean I'm Just Saying | 1 | +5 | -0 |
| 2026-09-22 20:06 | editor+common: the 503 branch of the worker gate is asserted, not assumed | I Mean I'm Just Saying | 3 | +240 | -6 |
| 2026-09-22 20:06 | tags: a site layer has no rules, rather than rules that do nothing | I Mean I'm Just Saying | 3 | +71 | -20 |
| 2026-09-22 20:04 | editor: Sync all skips a channel whose media drive is not mounted | I Mean I'm Just Saying | 2 | +62 | -1 |
| 2026-09-22 20:03 | editor: rename and delete ask the same busy question every other surface asks | I Mean I'm Just Saying | 5 | +179 | -18 |
| 2026-09-22 20:02 | tags: a rule can exclude channels, and the exclusion wins | I Mean I'm Just Saying | 8 | +233 | -13 |
| 2026-09-22 20:00 | editor: the channel Storage panel can evict that channel's clip windows | I Mean I'm Just Saying | 4 | +177 | -12 |
| 2026-09-22 17:58 | plans: build-deploy takes siteId, build-site takes siteIds | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-22 17:37 | FACTS: key-only LMDB scans never pass values:false | I Mean I'm Just Saying | 1 | +2 | -0 |
| 2026-09-22 17:26 | tags: the assignment-only re-apply destructured a bare key | I Mean I'm Just Saying | 2 | +16 | -2 |
| 2026-09-21 20:12 | tags: the re-apply pass must not hold the event loop for minutes | I Mean I'm Just Saying | 5 | +190 | -36 |
| 2026-09-21 20:01 | plans: curated tags — rollout log and the two things the seed got wrong | I Mean I'm Just Saying | 1 | +18 | -3 |
| 2026-09-21 18:24 | tags: a site overlay that only recolours must not rename the tag | I Mean I'm Just Saying | 13 | +217 | -47 |
| 2026-09-21 18:10 | tags S3 review: the compressed read, the renamed overlay, and six smaller ones | I Mean I'm Just Saying | 21 | +1080 | -75 |
| 2026-09-21 17:51 | Merge branch 'main' into tags/editor | I Mean I'm Just Saying | 45 | +3361 | -52 |
| 2026-09-21 17:47 | tags S2: /tags.json is a ROOT_FILE now, so fetch it as one | I Mean I'm Just Saying | 2 | +3 | -7 |
| 2026-09-21 17:44 | Merge branch 'main' into tags/site | I Mean I'm Just Saying | 25 | +2468 | -27 |
| 2026-09-21 17:43 | Merge branch 'tags/core' | I Mean I'm Just Saying | 22 | +1775 | -31 |
| 2026-09-21 17:43 | tags review: an interrupted build owes the pages a rewrite, and must know it | I Mean I'm Just Saying | 6 | +508 | -52 |
| 2026-09-21 17:43 | tags review: refuse an undefined tag, and stop leaking the vocabulary into git | I Mean I'm Just Saying | 4 | +96 | -8 |
| 2026-09-21 17:37 | tags S2 review: the posts leaf, the orphan chip, and a validated tg | I Mean I'm Just Saying | 5 | +251 | -13 |
| 2026-09-21 17:37 | tags S3.7: tests for all three writers | I Mean I'm Just Saying | 5 | +604 | -0 |
| 2026-09-21 17:32 | plans: curated tags — no schema bump, site layer is presentation-only, four ops | I Mean I'm Just Saying | 1 | +10 | -6 |
| 2026-09-21 17:24 | tags S3.6: umtool hands a walked report's judgement to the archive | I Mean I'm Just Saying | 3 | +432 | -0 |
| 2026-09-21 17:23 | tags S2.11: e2e for the chip row, and the Filters badge counts tags | I Mean I'm Just Saying | 2 | +197 | -0 |
| 2026-09-21 17:22 | tags S3: the real store, and the site layer is presentation only | I Mean I'm Just Saying | 4 | +179 | -622 |
| 2026-09-21 17:21 | tags: curated tags need no SCHEMA_VERSION bump, and the site layer holds no rules | I Mean I'm Just Saying | 4 | +74 | -13 |
| 2026-09-21 17:20 | Merge branch 'main' into tags/editor | I Mean I'm Just Saying | 4 | +693 | -0 |
| 2026-09-21 17:20 | tags S3.5: the ops door — tag-videos and tags, plus --file | I Mean I'm Just Saying | 5 | +373 | -5 |
| 2026-09-21 17:18 | tags S2.10: the MCP learns curated tags | I Mean I'm Just Saying | 5 | +369 | -4 |
| 2026-09-21 17:17 | tags S3.4: tag the selection, and filter the list by tag | I Mean I'm Just Saying | 7 | +251 | -6 |
| 2026-09-21 17:17 | tags S1.5: write down what the next session must not re-derive | I Mean I'm Just Saying | 2 | +83 | -2 |
| 2026-09-21 17:15 | tags S1.4: spec 4 — /tags.json is a declared, fetchable document | I Mean I'm Just Saying | 10 | +141 | -16 |
| 2026-09-21 17:13 | tags S3.3: the video page says which tags are on a video, and who said so | I Mean I'm Just Saying | 4 | +370 | -0 |
| 2026-09-21 17:12 | tags S2.9: the chip row, the card chips, and "Tags" -> "Keywords" | I Mean I'm Just Saying | 3 | +158 | -4 |
| 2026-09-21 17:12 | tags S3.2: the per-site overlay tab | I Mean I'm Just Saying | 3 | +593 | -1 |
| 2026-09-21 17:10 | tags S2.8: draftTags / committedTags in the search session | I Mean I'm Just Saying | 2 | +108 | -3 |
| 2026-09-21 17:10 | tags S3.1: /tags — the curated vocabulary, its rules, and a bounded preview | I Mean I'm Just Saying | 8 | +1209 | -9 |
| 2026-09-21 17:09 | tags S1.3: derive curatedTags in the index, and notice when only a tag moved | I Mean I'm Just Saying | 4 | +936 | -3 |
| 2026-09-21 17:08 | tags S2.7: read /tags.json — reader, cache, context, and the `tg` param | I Mean I'm Just Saying | 8 | +433 | -1 |
| 2026-09-21 17:03 | tags S2.6: curatedTags on the share-filter predicate | I Mean I'm Just Saying | 2 | +74 | -0 |
| 2026-09-21 17:00 | tags S1.2: the curated-tags store, and the four ops of an assignment | I Mean I'm Just Saying | 4 | +693 | -0 |
| 2026-09-21 16:56 | tags S1.1: curatedTags model, record fields, export fixture | I Mean I'm Just Saying | 5 | +1074 | -3 |
| 2026-09-21 16:48 | plans: curated per-video tags (approved 2026-09-21) | I Mean I'm Just Saying | 1 | +209 | -0 |
| 2026-09-21 07:31 | review: a gate that opens on the click that opens it is not a gate | I Mean I'm Just Saying | 6 | +140 | -9 |
| 2026-09-21 07:22 | review: the free-space guard was asking the wrong two directories | I Mean I'm Just Saying | 9 | +347 | -21 |
| 2026-09-21 07:08 | e2e: Next's route announcer is also a role="alert" | I Mean I'm Just Saying | 1 | +6 | -1 |
| 2026-09-21 07:03 | storage/ops: four things the first e2e run found | I Mean I'm Just Saying | 5 | +57 | -11 |
| 2026-09-21 06:57 | umtool e2e: the digest spec must write the mark it asserts | I Mean I'm Just Saying | 1 | +11 | -0 |
| 2026-09-21 06:52 | FACTS: what the umtool suite does without the song data | I Mean I'm Just Saying | 1 | +28 | -0 |
| 2026-09-21 06:52 | umtool e2e: the rest of the song-data skips, from a run on main | I Mean I'm Just Saying | 4 | +37 | -0 |
| 2026-09-21 06:47 | Merge branch 'main' into storage/debts-1 | I Mean I'm Just Saying | 35 | +2646 | -80 |
| 2026-09-21 06:45 | umtool e2e: no song data is a SKIP, not a red suite | I Mean I'm Just Saying | 9 | +214 | -5 |
| 2026-09-21 06:43 | Merge branch 'feat/filtered-channel-followups' | I Mean I'm Just Saying | 35 | +2646 | -80 |
| 2026-09-21 06:36 | full source: ask the editor for the whole recording, and find it again | I Mean I'm Just Saying | 10 | +453 | -26 |
| 2026-09-21 06:36 | channelSets: the settled rule belongs in a test beside the sets it changes | I Mean I'm Just Saying | 1 | +39 | -0 |
| 2026-09-21 06:35 | review: the discard was a deny-list, and four things it let through | I Mean I'm Just Saying | 12 | +656 | -149 |
| 2026-09-21 06:31 | Merge branch 'main' into storage/debts-1 | I Mean I'm Just Saying | 15 | +2207 | -2 |
| 2026-09-21 06:30 | ops: a fan-out that started jobs must say which | I Mean I'm Just Saying | 5 | +50 | -6 |
| 2026-09-21 06:29 | storage: the eight nits the plan named | I Mean I'm Just Saying | 13 | +287 | -25 |
| 2026-09-21 06:23 | relocate: the space check must not depend on how much RAM is free | I Mean I'm Just Saying | 2 | +82 | -4 |
| 2026-09-21 06:21 | storage: evict fetched clip windows, by age | I Mean I'm Just Saying | 10 | +790 | -0 |
| 2026-09-21 06:15 | storage: show what the clip windows are costing | I Mean I'm Just Saying | 8 | +135 | -12 |
| 2026-09-21 06:14 | plans: correct two claims about the metadata scan that were already wrong | I Mean I'm Just Saying | 1 | +9 | -4 |
| 2026-09-21 06:12 | review: say when the machine paused a channel | I Mean I'm Just Saying | 6 | +380 | -2 |
| 2026-09-21 06:12 | e2e: four expectations that were wrong about the fixture, not the code | I Mean I'm Just Saying | 3 | +69 | -23 |
| 2026-09-21 06:10 | relocate: a move must not materialise the mountpoint | I Mean I'm Just Saying | 7 | +591 | -49 |
| 2026-09-21 06:06 | auto-download: the scan goes in the pick log like any other unit | I Mean I'm Just Saying | 1 | +10 | -0 |
| 2026-09-21 06:04 | snapshot: videoHasAnyArtifact was isVideoDownloaded under a second name | I Mean I'm Just Saying | 2 | +14 | -3 |
| 2026-09-21 06:03 | download filter: a third answer for a filtered-out livestream | I Mean I'm Just Saying | 23 | +1084 | -16 |
| 2026-09-21 06:02 | deliver: prove Stop abandons the rest, and read a wrapped exclusion sentence | I Mean I'm Just Saying | 6 | +128 | -7 |
| 2026-09-21 06:00 | snapshot: clips/ is bytes on the platter, so count them | I Mean I'm Just Saying | 2 | +128 | -3 |
| 2026-09-21 05:52 | deliver: corrections.md is the artifact, and the panel stops re-reading the project | I Mean I'm Just Saying | 4 | +47 | -7 |
| 2026-09-21 05:49 | deliver: an id shared under another name is still shared | I Mean I'm Just Saying | 4 | +49 | -12 |
| 2026-09-21 05:45 | download lane: the metadata scan is dispatched, not waited for | I Mean I'm Just Saying | 11 | +681 | -44 |
| 2026-09-21 05:45 | deliver: refresh the counts the job just changed, and stat instead of reading | I Mean I'm Just Saying | 3 | +15 | -4 |
| 2026-09-21 05:42 | deliver: a fixture that measures the cut, and the docs for the panel | I Mean I'm Just Saying | 3 | +446 | -0 |
| 2026-09-21 05:36 | deliver: the half of the work that starts when the walk ends | I Mean I'm Just Saying | 7 | +1235 | -0 |
| 2026-09-21 05:36 | cut: a confirmed clip is already on this disk, so stop fetching it again | I Mean I'm Just Saying | 4 | +317 | -2 |
| 2026-09-21 05:34 | download filter: a rejection takes its own prefetch directory with it | I Mean I'm Just Saying | 3 | +251 | -8 |
| 2026-09-21 02:58 | report fetch: the cached check must clamp at 0, because the fetch does | I Mean I'm Just Saying | 2 | +20 | -1 |
| 2026-09-21 02:05 | Merge main into feat/fetch-window-via-editor | I Mean I'm Just Saying | 78 | +8340 | -396 |
| 2026-09-21 02:02 | review: the merge must remove a directory, and a channel must not defeat the rule | I Mean I'm Just Saying | 15 | +456 | -31 |
| 2026-09-21 01:27 | e2e: retry the select-all tick the focus refresh can drop | I Mean I'm Just Saying | 1 | +15 | -1 |
| 2026-09-21 00:13 | plans: the review fixes, and why each one was not optional | I Mean I'm Just Saying | 1 | +44 | -0 |
| 2026-09-21 00:10 | Merge branch 'main' into storage/locations-s5-s6 | I Mean I'm Just Saying | 36 | +2500 | -75 |
| 2026-09-21 00:09 | storage review: the fixes an auto-pause and a store move cannot ship without | I Mean I'm Just Saying | 17 | +1283 | -54 |
| 2026-09-20 23:49 | e2e: the editor-fetch fixtures need their own SOURCES, not just their own project | I Mean I'm Just Saying | 2 | +26 | -7 |
| 2026-09-20 23:46 | e2e: the editor stub must survive the fixture being rebuilt under it | I Mean I'm Just Saying | 1 | +10 | -1 |
| 2026-09-20 23:45 | Merge branch 'umtool/confirm-saves-window' | I Mean I'm Just Saying | 3 | +90 | -19 |
| 2026-09-20 23:43 | fetch-window: the scratch name has to be an mp4 too | I Mean I'm Just Saying | 3 | +13 | -7 |
| 2026-09-20 23:43 | Merge branch 'feat/ops-api' | I Mean I'm Just Saying | 25 | +1996 | -2 |
| 2026-09-20 23:43 | report fetch: poll the job by id, or a failure reads as success | I Mean I'm Just Saying | 2 | +23 | -5 |
| 2026-09-20 23:42 | fetch-window: the span cap is a constant, so it cannot live in a server action | I Mean I'm Just Saying | 3 | +12 | -8 |
| 2026-09-20 23:41 | fetch-window: refuse a bare `..` as a slug or an id | I Mean I'm Just Saying | 2 | +9 | -4 |
| 2026-09-20 23:38 | docs: record why clips/ is invisible, and where a window's bytes come from | I Mean I'm Just Saying | 3 | +133 | -4 |
| 2026-09-20 23:37 | tests: pin the no-info-json rule and the editor fetch end to end | I Mean I'm Just Saying | 9 | +736 | -9 |
| 2026-09-20 23:33 | bench: confirm a clip and the window you moved goes with it | I Mean I'm Just Saying | 3 | +90 | -19 |
| 2026-09-20 23:28 | umtool: close the "not fetched yet" gap in one press | I Mean I'm Just Saying | 3 | +186 | -0 |
| 2026-09-20 23:27 | umtool: ask the editor for a clip window instead of running yt-dlp | I Mean I'm Just Saying | 9 | +448 | -22 |
| 2026-09-20 23:23 | editor: show a fetched window, and who asked for it | I Mean I'm Just Saying | 8 | +171 | -0 |
| 2026-09-20 23:19 | editor: POST /api/media/fetch-window sources clip media for another tool | I Mean I'm Just Saying | 4 | +684 | -1 |
| 2026-09-20 23:16 | Prove a patch spares the fields it does not name | I Mean I'm Just Saying | 1 | +29 | -4 |
| 2026-09-20 23:15 | Check the slug's SHAPE on every route that takes one | I Mean I'm Just Saying | 13 | +136 | -23 |
| 2026-09-20 23:14 | clip windows: a fetched window lives beside the video, with provenance | I Mean I'm Just Saying | 12 | +891 | -64 |
| 2026-09-20 23:01 | storage: one badge per row, and the count cell is a count | I Mean I'm Just Saying | 3 | +44 | -21 |
| 2026-09-20 21:49 | e2e: put walk-fixture w02 in the cache GAP, not half inside a neighbour | I Mean I'm Just Saying | 2 | +14 | -7 |
| 2026-09-20 21:46 | docs: say what the walk skips, and what "ready N of M" counts | I Mean I'm Just Saying | 2 | +34 | -7 |
| 2026-09-20 21:45 | e2e: assert the walk where the fixture holds still | I Mean I'm Just Saying | 1 | +112 | -18 |
| 2026-09-20 21:44 | e2e: a read-only walk-fixture, where what the walk skips is fixed | I Mean I'm Just Saying | 1 | +41 | -0 |
| 2026-09-20 22:36 | channels: one spelling of "internal" and of the location param | I Mean I'm Just Saying | 2 | +12 | -3 |
| 2026-09-20 22:33 | e2e: match storage headers by text, and retry the clicks React has not wired yet | I Mean I'm Just Saying | 1 | +39 | -12 |
| 2026-09-20 22:31 | changelog: the storage slice, in the operator's terms | I Mean I'm Just Saying | 2 | +15 | -2 |
| 2026-09-20 22:30 | plans: S5 and S6, what shipped and what was deliberately left | I Mean I'm Just Saying | 3 | +230 | -2 |
| 2026-09-20 22:28 | e2e: the internal row, the store's move, and the columns operators asked for | I Mean I'm Just Saying | 3 | +401 | -0 |
| 2026-09-20 22:26 | storage: the drive going away is a state, so something has to look | I Mean I'm Just Saying | 9 | +929 | -6 |
| 2026-09-20 22:12 | saved videos: the store is movable, by the channel mover's own code | I Mean I'm Just Saying | 14 | +1839 | -301 |
| 2026-09-20 21:57 | /channels: which disk, how big, and filter by volume | I Mean I'm Just Saying | 7 | +660 | -15 |
| 2026-09-20 21:52 | Refuse a traversing slug on the read route at the door | I Mean I'm Just Saying | 1 | +10 | -0 |
| 2026-09-20 21:51 | channel storage: one verb, and the corpus volume is a destination | I Mean I'm Just Saying | 2 | +138 | -100 |
| 2026-09-20 21:51 | Record the read route's opt-in counts in FACTS | I Mean I'm Just Saying | 1 | +6 | -0 |
| 2026-09-20 21:51 | Report a misspelled config field before a missing channel | I Mean I'm Just Saying | 3 | +53 | -27 |
| 2026-09-20 21:49 | Make the read route's live counts opt-in | I Mean I'm Just Saying | 4 | +35 | -7 |
| 2026-09-20 21:48 | storage: how many bytes, and the disk they are already on | I Mean I'm Just Saying | 6 | +421 | -20 |
| 2026-09-20 21:48 | Pin the ops API on the sentences it shares with the UI | I Mean I'm Just Saying | 1 | +398 | -0 |
| 2026-09-20 21:45 | Add the ops CLI, and say where the HTTP door is | I Mean I'm Just Saying | 6 | +405 | -2 |
| 2026-09-20 21:44 | relocate: rsync already knew how far it had got — say so | I Mean I'm Just Saying | 7 | +342 | -3 |
| 2026-09-20 21:43 | bench: the walk visits the clips that need judgement and are fetched | I Mean I'm Just Saying | 4 | +88 | -11 |
| 2026-09-20 21:43 | Give the editor's actions an HTTP door | I Mean I'm Just Saying | 18 | +985 | -0 |
| 2026-09-20 21:42 | bench: one clips-raw read per request, and a per-clip `fetched` | I Mean I'm Just Saying | 3 | +100 | -10 |
| 2026-09-20 21:40 | build-video: split the cached-window predicate into I/O and arithmetic | I Mean I'm Just Saying | 1 | +32 | -8 |
| 2026-09-20 08:00 | metadata scan: "consecutive" means consecutive in the batch, not in the pipes | I Mean I'm Just Saying | 2 | +96 | -41 |
| 2026-09-20 07:20 | flow: a filtered channel is not 10 % covered, and "video dirs" is no longer one | I Mean I'm Just Saying | 2 | +32 | -10 |
| 2026-09-20 07:18 | download filter: the operator's regex is server-side code, so bound it | I Mean I'm Just Saying | 4 | +94 | -2 |
| 2026-09-20 07:16 | download filter: a scheduled stream is a livestream, or it settles forever | I Mean I'm Just Saying | 2 | +41 | -5 |
| 2026-09-20 07:15 | metadata scan: a failed run says so in the store, and names the real failure | I Mean I'm Just Saying | 1 | +34 | -1 |
| 2026-09-20 07:14 | metadata scan: the backlog it advertises is the work it does, and it needs media | I Mean I'm Just Saying | 4 | +47 | -12 |
| 2026-09-20 07:12 | metadata scan: store records under the canonical id, not yt-dlp's native one | I Mean I'm Just Saying | 5 | +150 | -8 |
| 2026-09-20 07:10 | download filter: no metadata is not a verdict — fail open so the failure is classified | I Mean I'm Just Saying | 2 | +40 | -21 |
| 2026-09-20 07:09 | metadata scan: one writer at a time, and each flush writes only the delta | I Mean I'm Just Saying | 5 | +168 | -44 |
| 2026-09-20 07:06 | metadata scan: a bot check without cookies is a retry, not a cooldown | I Mean I'm Just Saying | 6 | +198 | -27 |
| 2026-09-20 05:45 | download filter: a channel can opt every livestream in | I Mean I'm Just Saying | 13 | +334 | -40 |
| 2026-09-20 05:30 | metadata scan: a run of "Video unavailable" is a soft block, not 545 dead videos | I Mean I'm Just Saying | 5 | +167 | -1 |
| 2026-09-20 04:48 | fix: the matched-titles list came back empty because the limit was a client reference | I Mean I'm Just Saying | 3 | +36 | -25 |
| 2026-09-20 04:36 | plans: FACTS — why the scan writes no video directory, and why settled is derived | I Mean I'm Just Saying | 1 | +73 | -49 |
| 2026-09-20 04:35 | e2e: the scan, the settlement, and the proof that no video directory is made | I Mean I'm Just Saying | 4 | +276 | -133 |
| 2026-09-20 04:31 | metadata scan: an action, a Playlist-stage block, and a row on its operation page | I Mean I'm Just Saying | 10 | +382 | -12 |
| 2026-09-20 04:25 | metadata scan: a catalogued operation that reads titles without fetching media | I Mean I'm Just Saying | 10 | +522 | -7 |
| 2026-09-20 04:19 | download filter: settled is DERIVED from a channel-level metadata scan | I Mean I'm Just Saying | 16 | +1125 | -310 |
| 2026-09-20 04:02 | download filter: the form takes the two patterns, and the pages say who was settled | I Mean I'm Just Saying | 5 | +93 | -1 |
| 2026-09-20 04:00 | download filter: the snapshot has a settled bucket, and sync stops on settled pages | I Mean I'm Just Saying | 4 | +111 | -11 |
| 2026-09-20 03:57 | download filter: a channel can decline a video by title, and the decline settles | I Mean I'm Just Saying | 6 | +519 | -5 |
| 2026-09-20 02:23 | clip bench: a yes can be taken back | I Mean I'm Just Saying | 2 | +30 | -2 |
| 2026-09-19 20:48 | plans: storage locations — S4 merged, S0–S4 complete | I Mean I'm Just Saying | 1 | +2 | -1 |
| 2026-09-19 20:47 | Merge storage/locations-s4: a destination is a name, a move can be resumed, the badge names the drive | I Mean I'm Just Saying | 16 | +1033 | -261 |
| 2026-09-19 19:49 | e2e: the box the "no" answer is written in, at 1366x768 | I Mean I'm Just Saying | 1 | +36 | -0 |
| 2026-09-19 19:45 | clip bench: the claim scrolls, the answer does not | I Mean I'm Just Saying | 1 | +219 | -200 |
| 2026-09-19 19:41 | docs: the root `pnpm e2e` is the editor's, whatever spec you name it | I Mean I'm Just Saying | 2 | +42 | -5 |
| 2026-09-19 19:39 | cut-to-quote: the cite comes with the cut | I Mean I'm Just Saying | 2 | +158 | -4 |
| 2026-09-19 08:23 | clip bench: the pane's own controls live in the pane | I Mean I'm Just Saying | 2 | +27 | -23 |
| 2026-09-19 07:28 | clip bench: read the peeked cues as a transcript, not as a rail | I Mean I'm Just Saying | 3 | +168 | -2 |
| 2026-09-19 07:23 | e2e: the cut is derived, refused when it does not fit, and what the build renders | I Mean I'm Just Saying | 4 | +162 | -3 |
| 2026-09-19 07:16 | extent vs cut: the window is what was reviewed, the cut is what plays | I Mean I'm Just Saying | 11 | +453 | -7 |
| 2026-09-19 07:11 | resolve-windows: `--cut-to-quote` — where inside the extent the quote is | I Mean I'm Just Saying | 2 | +274 | -0 |
| 2026-09-19 07:07 | e2e: siblings, the overlap hatch, and one-sided fetching | I Mean I'm Just Saying | 1 | +151 | -15 |
| 2026-09-19 07:04 | fetch one edge at a time, and make Shift actually nudge | I Mean I'm Just Saying | 5 | +160 | -49 |
| 2026-09-19 06:58 | clip bench: the other clips cut from this same recording | I Mean I'm Just Saying | 5 | +246 | -5 |
| 2026-09-19 06:45 | clip bench: the peek rail spans the cues that exist, not a flat ±60 s | I Mean I'm Just Saying | 1 | +9 | -2 |
| 2026-09-19 06:43 | e2e: two verdicts, the note rule, the edge audition, and a fetch that is a no-op | I Mean I'm Just Saying | 1 | +238 | -14 |
| 2026-09-19 06:41 | clip bench: a preference is written when you choose it, not when the page mounts | I Mean I'm Just Saying | 1 | +47 | -13 |
| 2026-09-19 06:35 | clip bench: fetch what is not cached yet, and read ahead before paying for it | I Mean I'm Just Saying | 6 | +336 | -60 |
| 2026-09-19 06:24 | docs: two verdicts, an optional note, and how you listen | I Mean I'm Just Saying | 2 | +60 | -26 |
| 2026-09-19 06:24 | clip bench: play the edge that moved, and let the desk set the speed | I Mean I'm Just Saying | 2 | +162 | -8 |
| 2026-09-19 06:22 | umtool: `incorrect` is a verdict, and a note is not always a complaint | I Mean I'm Just Saying | 6 | +170 | -113 |
| 2026-09-19 05:49 | umtool: the walk button belongs in the title bar, and the CLI needs clipVerdict | I Mean I'm Just Saying | 2 | +30 | -28 |
| 2026-09-19 05:47 | e2e: the window choice, the description, and the two answers | I Mean I'm Just Saying | 2 | +169 | -0 |
| 2026-09-19 05:46 | docs: the verdict, the walk, and why the bench is one screen | I Mean I'm Just Saying | 2 | +86 | -4 |
| 2026-09-19 05:40 | report project: "Walk the cut", above the rows | I Mean I'm Just Saying | 1 | +32 | -1 |
| 2026-09-19 05:40 | clip bench: one screen, and the description it is checking | I Mean I'm Just Saying | 2 | +506 | -326 |
| 2026-09-19 05:34 | umtool: `verdict` — whether the walk has looked at this clip | I Mean I'm Just Saying | 4 | +92 | -5 |
| 2026-09-19 05:38 | clip bench: play the cached file that holds THIS clip's window, not the widest for the video | I Mean I'm Just Saying | 1 | +23 | -2 |
| 2026-09-18 23:09 | report-to-video: `panels` — two to four captures, side by side | I Mean I'm Just Saying | 4 | +277 | -36 |
| 2026-09-18 22:46 | report-to-video: `scroll` — a crawl for a capture that does not fit | I Mean I'm Just Saying | 4 | +257 | -8 |
| 2026-09-18 22:24 | e2e: fill("") is two round trips, and the second one can miss | I Mean I'm Just Saying | 2 | +26 | -2 |
| 2026-09-18 22:12 | umtool: the bench reads the channel off the cue record, like the renderer | I Mean I'm Just Saying | 1 | +5 | -0 |
| 2026-09-18 22:10 | report-to-video: `redact` — fill, because a blurred QR still scans | I Mean I'm Just Saying | 4 | +257 | -22 |
| 2026-09-18 22:07 | report-to-video: the header says WHO, not just what and when | I Mean I'm Just Saying | 11 | +217 | -39 |
| 2026-09-18 22:02 | report-to-video: an `image` entry, for the receipts a clip cannot say out loud | I Mean I'm Just Saying | 1 | +192 | -4 |
| 2026-09-18 21:59 | report-to-video: a still's header line, in the same module as a clip's | I Mean I'm Just Saying | 2 | +107 | -0 |
| 2026-09-18 21:52 | e2e: the gate hint is about a destination now, not a root | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-09-18 21:44 | mcp: the sweep honours operator corrections from a sibling manifest | I Mean I'm Just Saying | 2 | +27 | -0 |
| 2026-09-18 21:43 | clip bench: e2e for the attribution, the walk and the segment route | I Mean I'm Just Saying | 3 | +221 | -10 |
| 2026-09-18 21:38 | plans: storage locations — S5 written (per-unit re-check, no tmpfs mount, auto-pause + flag) | I Mean I'm Just Saying | 1 | +126 | -0 |
| 2026-09-18 21:37 | umtool: a clip can record what the report got wrong | I Mean I'm Just Saying | 11 | +240 | -7 |
| 2026-09-18 21:35 | clip bench: fix the attribution beside the edges, then look at it | I Mean I'm Just Saying | 6 | +469 | -26 |
| 2026-09-18 21:30 | umtool: the attribution is writable, through the one writer | I Mean I'm Just Saying | 3 | +113 | -9 |
| 2026-09-18 21:29 | report-video: one definition of the attribution line | I Mean I'm Just Saying | 3 | +84 | -32 |
| 2026-09-18 21:26 | report-video: a clip may override the burned-in title and date | I Mean I'm Just Saying | 2 | +10 | -3 |
| 2026-09-18 21:16 | storage: review fixes — honest copy after a resume, and a select that agrees with itself | I Mean I'm Just Saying | 7 | +74 | -37 |
| 2026-09-18 00:59 | docs: storage locations, and what a container can and cannot know about a disk | I Mean I'm Just Saying | 3 | +38 | -1 |
| 2026-09-18 00:58 | e2e: a destination is picked by name, and an interrupted move is finished | I Mean I'm Just Saying | 1 | +218 | -28 |
| 2026-09-18 00:54 | channels: the bulk move picks a place by name | I Mean I'm Just Saying | 7 | +206 | -103 |
| 2026-09-18 00:51 | storage: a destination is a name, and an interrupted move can be finished | I Mean I'm Just Saying | 4 | +456 | -145 |
| 2026-09-18 00:45 | storage: the badge names the drive, not the path | I Mean I'm Just Saying | 4 | +108 | -14 |
| 2026-09-18 00:38 | plans: storage locations — S0 merged, S4 in flight | I Mean I'm Just Saying | 1 | +1 | -0 |
| 2026-09-18 00:37 | Merge storage/locations-s0: the Advanced menu can leave a dimmed row | I Mean I'm Just Saying | 2 | +94 | -23 |
| 2026-09-18 00:36 | e2e: two adjacent paused rows, and the pixel has to belong to the menu | I Mean I'm Just Saying | 1 | +41 | -14 |
| 2026-09-17 19:25 | plans: storage locations — S3 merged | I Mean I'm Just Saying | 1 | +1 | -0 |
| 2026-09-17 19:22 | storage: the refusals the operator should read before a job exists | I Mean I'm Just Saying | 5 | +40 | -13 |
| 2026-09-17 19:22 | storage: a channel killed mid-re-point is half done, not broken | I Mean I'm Just Saying | 2 | +139 | -14 |
| 2026-09-17 19:08 | e2e: lstat the link, never stat it — a dangling link is the whole breakage | I Mean I'm Just Saying | 1 | +5 | -2 |
| 2026-09-17 19:06 | storage: two accessible names where one contains the other is a trap | I Mean I'm Just Saying | 2 | +30 | -18 |
| 2026-09-17 19:01 | e2e: a fake disk that moves, and the one click that follows it | I Mean I'm Just Saying | 5 | +466 | -4 |
| 2026-09-17 18:57 | boot: learn where the disks are, even when booting idle | I Mean I'm Just Saying | 1 | +24 | -0 |
| 2026-09-17 18:57 | nav: a place the machine keeps bytes is a noun, not a fold of Cleanup | I Mean I'm Just Saying | 3 | +25 | -4 |
| 2026-09-17 18:56 | /storage: the locations, what is on them, and the one click that follows a disk | I Mean I'm Just Saying | 6 | +879 | -0 |
| 2026-09-17 18:51 | storage: a location knows its channels, and can be pointed at where the disk came up | I Mean I'm Just Saying | 6 | +1886 | -0 |
| 2026-09-17 18:10 | plans: storage locations — S1 and S2 merged | I Mean I'm Just Saying | 1 | +1 | -0 |
| 2026-09-17 18:09 | Merge storage/locations-s2: a location is an entity, not a root string | I Mean I'm Just Saying | 13 | +1306 | -95 |
| 2026-09-17 18:07 | relocate: name the early stop in the summary, and the retry in the done line | I Mean I'm Just Saying | 6 | +47 | -19 |
| 2026-09-17 18:04 | storage: an unmeasurable root reports no free space, not Infinity | I Mean I'm Just Saying | 2 | +22 | -8 |
| 2026-09-17 17:55 | channels: the bulk move points at /storage, not at a settings box | I Mean I'm Just Saying | 1 | +3 | -3 |
| 2026-09-17 17:53 | settings: the media-root box becomes a link, and three reads become one call | I Mean I'm Just Saying | 6 | +43 | -26 |
| 2026-09-17 17:49 | relocate: tests for the two halves of the omnimirror refusal | I Mean I'm Just Saying | 2 | +223 | -0 |
| 2026-09-17 17:47 | settings: the cold root becomes a list of locations, on read | I Mean I'm Just Saying | 2 | +347 | -66 |
| 2026-09-17 17:46 | storage: a fake findmnt, and the five things a probe can say | I Mean I'm Just Saying | 2 | +303 | -13 |
| 2026-09-17 17:44 | storage: the probe answers with stat, and only ever adds identity | I Mean I'm Just Saying | 2 | +443 | -0 |
| 2026-09-17 17:43 | storage: a location is an entity, not a root string | I Mean I'm Just Saying | 2 | +166 | -0 |
| 2026-09-17 17:42 | channels: "busy" means jobs AND in-flight lane units, in one place | I Mean I'm Just Saying | 4 | +74 | -50 |
| 2026-09-17 17:42 | relocate: a directory timestamp is not content drift | I Mean I'm Just Saying | 1 | +69 | -18 |
| 2026-09-17 17:42 | relocate: an in-flight move stops the lanes instead of racing them | I Mean I'm Just Saying | 2 | +57 | -1 |
| 2026-09-17 17:40 | e2e: the Advanced menu of a paused row has to take the click | I Mean I'm Just Saying | 1 | +36 | -0 |
| 2026-09-17 17:38 | channels: the row dim is per cell, so the Advanced menu can leave the row | I Mean I'm Just Saying | 1 | +31 | -23 |
| 2026-09-17 17:34 | plans: storage locations — named, refreshable, re-pointable media places | I Mean I'm Just Saying | 1 | +191 | -0 |
| 2026-09-15 19:50 | plans: one-core Phase 3 slice 1 shipped — views in the core, editor as shell | I Mean I'm Just Saying | 3 | +91 | -6 |
| 2026-09-15 19:06 | changelog: the payload builders moved, and the poll stopped reading four times | I Mean I'm Just Saying | 1 | +1 | -0 |
| 2026-09-15 19:05 | views: a payload type is named where it is built | I Mean I'm Just Saying | 26 | +46 | -86 |
| 2026-09-15 19:00 | plans: Phase 3 slice 1 sub-slices B and C shipped — every builder is a pure view | I Mean I'm Just Saying | 1 | +57 | -0 |
| 2026-09-14 21:20 | views: the pulse's rule against constructing becomes its signature | I Mean I'm Just Saying | 4 | +276 | -118 |
| 2026-09-14 21:18 | views: a page no longer imports its data out of a route file | I Mean I'm Just Saying | 5 | +615 | -325 |
| 2026-09-14 21:15 | views: the auto-queue console reads its state once, at the edge | I Mean I'm Just Saying | 8 | +729 | -334 |
| 2026-09-14 21:08 | views: the sync schedule is a projection, not a reader | I Mean I'm Just Saying | 3 | +149 | -36 |
| 2026-09-14 21:13 | views: the active-jobs payload, with its readers injected | I Mean I'm Just Saying | 3 | +832 | -395 |
| 2026-09-14 21:08 | views: the workers payload, out of the component that renders it | I Mean I'm Just Saying | 4 | +330 | -92 |
| 2026-09-14 21:05 | plans: Phase 3 slice 1 sub-slice A shipped — the view layer exists and the guard sees it | I Mean I'm Just Saying | 1 | +45 | -0 |
| 2026-09-14 21:01 | views: the assignability assertion is not distributive | I Mean I'm Just Saying | 1 | +9 | -1 |
| 2026-09-14 20:52 | views: laneState, jobRows, channelGroupSections, builtInPresets | I Mean I'm Just Saying | 36 | +1602 | -1602 |
| 2026-09-14 20:51 | views/pipeline: the five that already were view-models | I Mean I'm Just Saying | 37 | +2370 | -2363 |
| 2026-09-14 20:49 | views: the layer exists, and the guard can see it | I Mean I'm Just Saying | 9 | +378 | -34 |
| 2026-09-14 20:39 | plans: one-core Phase 3 slice 1 — common/views/, the port and the guard | I Mean I'm Just Saying | 1 | +327 | -0 |
| 2026-09-14 20:37 | plans: the /channels rack lands on main; Phase 3 slice 1 is next | I Mean I'm Just Saying | 1 | +16 | -4 |
| 2026-09-13 22:09 | channels: the corpus-wide cluster sits beside the title | I Mean I'm Just Saying | 2 | +28 | -8 |
| 2026-09-13 16:11 | channels: record the rack redesign | I Mean I'm Just Saying | 2 | +76 | -0 |
| 2026-09-13 15:33 | channels: close the sticky seam and fit the tier cell on one line | I Mean I'm Just Saying | 4 | +8 | -8 |
| 2026-09-13 15:20 | channels: the corpus-wide buttons become outlines | I Mean I'm Just Saying | 2 | +12 | -5 |
| 2026-09-13 15:20 | channels: one primary in the header, and the caveat beside the title | I Mean I'm Just Saying | 1 | +86 | -62 |
| 2026-09-13 15:18 | channels: the focus is a line, and it counts what it holds | I Mean I'm Just Saying | 2 | +29 | -5 |
| 2026-09-13 15:18 | channels: the tier cell is one line, and being held is a chip | I Mean I'm Just Saying | 1 | +46 | -30 |
| 2026-09-13 15:16 | channels: the table becomes a rack with a pinned meter bridge | I Mean I'm Just Saying | 2 | +265 | -158 |
| 2026-09-13 15:13 | channels: one selection deck instead of two bulk bars | I Mean I'm Just Saying | 6 | +357 | -337 |
| 2026-09-13 15:09 | plans: /channels rack redesign plan | I Mean I'm Just Saying | 1 | +301 | -0 |
| 2026-09-13 14:37 | plans: the rollout switches to main before it migrates, and the migration ran | I Mean I'm Just Saying | 1 | +8 | -8 |
| 2026-09-13 13:01 | plans: gate A passed, main is fast-forwarded, and Next is the rollout | I Mean I'm Just Saying | 1 | +16 | -10 |
| 2026-09-13 12:56 | plans: gate A passed on the production editor, and phase 1 lands | I Mean I'm Just Saying | 1 | +18 | -0 |
| 2026-09-12 17:41 | plans: build:hub overwrites the export e2e fixture, and FACTS says so | I Mean I'm Just Saying | 1 | +7 | -0 |
| 2026-09-12 17:40 | plans: one-core Phase 2 shipped, and the release-candidate gates on the merged tip | I Mean I'm Just Saying | 4 | +414 | -15 |
| 2026-09-12 16:23 | merge: one-core/phase-2-s2a — the viewer's archive walks become one reader per origin | I Mean I'm Just Saying | 23 | +1634 | -318 |
| 2026-09-12 16:23 | plans: S2a's review fixes — the two lists, the browser budget, one comment | I Mean I'm Just Saying | 1 | +80 | -0 |
| 2026-09-12 16:11 | merge: one-core/phase-2-s3 — one search pipeline under common/lib/search | I Mean I'm Just Saying | 25 | +2950 | -1430 |
| 2026-09-12 16:10 | plans: the S3 gate numbers after the three review fixes | I Mean I'm Just Saying | 1 | +13 | -4 |
| 2026-09-12 15:58 | plans: the S3 note says what the slice did, not what it meant to do | I Mean I'm Just Saying | 1 | +44 | -5 |
| 2026-09-12 15:57 | common: a browser reader gets a browser's page-cache budget, and one comment | I Mean I'm Just Saying | 2 | +32 | -5 |
| 2026-09-12 15:57 | export: an offline copy is two lists — per channel, and once per origin | I Mean I'm Just Saying | 5 | +373 | -52 |
| 2026-09-12 15:57 | common: the result list calls the comparator instead of re-typing it | I Mean I'm Just Saying | 1 | +6 | -3 |
| 2026-09-12 15:56 | common: lib/search holds no caller's budget as a default | I Mean I'm Just Saying | 4 | +52 | -27 |
| 2026-09-12 15:54 | merge: one-core/phase-2-s2c — one shipsPwa, one _headers generator, one hub member type | I Mean I'm Just Saying | 7 | +390 | -96 |
| 2026-09-12 15:50 | plans: S2c shipped — one shipsPwa, one _headers generator, one hub entry type | I Mean I'm Just Saying | 1 | +132 | -0 |
| 2026-09-12 15:44 | plans: the S3 record — one search pipeline, and the inversion it paid for | I Mean I'm Just Saying | 1 | +218 | -0 |
| 2026-09-12 15:43 | plans: S2a's record — one reader per origin, and the offline gap closed | I Mean I'm Just Saying | 1 | +155 | -0 |
| 2026-09-12 15:41 | common: a site's digests and duplicates report get CORS — a WIRE change | I Mean I'm Just Saying | 2 | +46 | -6 |
| 2026-09-12 07:00 | common: one generator for the Cloudflare `_headers` file | I Mean I'm Just Saying | 4 | +177 | -59 |
| 2026-09-12 06:58 | common, export: one shipsPwa(), and the comment about it is now true | I Mean I'm Just Saying | 3 | +33 | -22 |
| 2026-09-12 06:57 | common: the SearchMode comment travels with the type | I Mean I'm Just Saying | 2 | +10 | -9 |
| 2026-09-12 06:57 | common: the hub's member entry is one type, not two spellings of it | I Mean I'm Just Saying | 1 | +9 | -15 |
| 2026-09-12 06:57 | mcp: drop the LeafMatcher import the orchestration no longer names | I Mean I'm Just Saying | 1 | +0 | -1 |
| 2026-09-12 06:53 | common: lib/ no longer imports components/, and the guard says so | I Mean I'm Just Saying | 11 | +152 | -879 |
| 2026-09-12 06:52 | merge: one-core/phase-2-s2b — cues.mjs refuses an unreachable channel instead of cutting from HTTP | I Mean I'm Just Saying | 4 | +447 | -3 |
| 2026-09-12 06:49 | mcp: search.ts is orchestration over lib/search/, and the caps are data | I Mean I'm Just Saying | 1 | +87 | -444 |
| 2026-09-12 06:49 | plans: the S2b note names its own sha | I Mean I'm Just Saying | 1 | +2 | -2 |
| 2026-09-12 06:48 | plans: the S2b record — what the cue guard refuses, and the tsx list for Phase 5 | I Mean I'm Just Saying | 1 | +125 | -0 |
| 2026-09-12 06:48 | common: tests for the reader registry and for the caches as wrappers | I Mean I'm Just Saying | 2 | +484 | -0 |
| 2026-09-12 06:46 | common: one search pipeline — the pure half of lib/search/ | I Mean I'm Just Saying | 12 | +2412 | -101 |
| 2026-09-12 06:45 | export: offline downloads every layer the contract has, and the SWs serve them | I Mean I'm Just Saying | 4 | +249 | -33 |
| 2026-09-12 06:42 | common,export: the viewer's archive walks become one ArchiveReader per origin | I Mean I'm Just Saying | 14 | +322 | -284 |
| 2026-09-12 06:34 | umtool: an unreachable local channel stops the cue resolver instead of the archive answering | I Mean I'm Just Saying | 3 | +322 | -3 |
| 2026-09-12 06:27 | merge: one-core/phase-2-s1 — the contract and one ArchiveReader under common/lib/archive | I Mean I'm Just Saying | 43 | +2885 | -1455 |
| 2026-09-12 06:27 | plans: S1 note 3 says why the bare env read is fine, and it is not inlining | I Mean I'm Just Saying | 1 | +10 | -8 |
| 2026-09-12 06:22 | plans: Phase 2's five wrong paths corrected in the prose, not just the note | I Mean I'm Just Saying | 1 | +8 | -7 |
| 2026-09-12 06:20 | plans: the record names its own sha | I Mean I'm Just Saying | 1 | +2 | -1 |
| 2026-09-12 06:20 | plans: S1 recorded — sha range, the four divergences, and every gate number | I Mean I'm Just Saying | 1 | +140 | -0 |
| 2026-09-12 06:10 | plans: the composed fixture site, so the parallel slices diff instead of rebuild | I Mean I'm Just Saying | 26 | +230 | -0 |
| 2026-09-12 06:07 | common: the five lib/search/ modules S3 fills, claimed as stubs | I Mean I'm Just Saying | 5 | +124 | -0 |
| 2026-09-12 06:06 | mcp: source.ts is a re-export — 1,386 lines to 47, no importer changed | I Mean I'm Just Saying | 1 | +45 | -1384 |
| 2026-09-12 06:06 | common: the archive reader moves into the core, with node isolated to one file | I Mean I'm Just Saying | 4 | +1884 | -0 |
| 2026-09-12 06:03 | common: the published contract is a module, and it owns the URL shapes | I Mean I'm Just Saying | 6 | +451 | -64 |
| 2026-09-12 05:53 | plans: the merge review's three notes, and Next points at the Phase 2 slice plan | I Mean I'm Just Saying | 1 | +15 | -1 |
| 2026-09-12 05:45 | plans: one-core Phase 2 sliced, and the umbrella corrected to match | I Mean I'm Just Saying | 3 | +278 | -22 |
| 2026-09-12 05:44 | plans: the storage + priority integration, and the two slots the next branch lands in | I Mean I'm Just Saying | 2 | +70 | -2 |
| 2026-09-12 05:15 | merge: channel-priority/s5 into integrate/2026-09-storage-priority | I Mean I'm Just Saying | 47 | +6750 | -333 |
| 2026-09-12 05:12 | merge: storage/relocate-media into integrate/2026-09-storage-priority | I Mean I'm Just Saying | 58 | +5769 | -78 |
| 2026-09-12 01:08 | plans: the merge review's two fixes, and the one conflict with channel-priority/s5 | I Mean I'm Just Saying | 3 | +75 | -11 |
| 2026-09-12 00:36 | e2e: a spec's settings are the fixture's plus what it names | I Mean I'm Just Saying | 4 | +92 | -37 |
| 2026-09-12 00:36 | relocate: ten ticked rows started ten rsyncs onto one drive | I Mean I'm Just Saying | 7 | +237 | -19 |
| 2026-09-12 00:25 | plans: 528/528 at the follow-up tip, and the two flakes are named | I Mean I'm Just Saying | 2 | +19 | -7 |
| 2026-09-12 00:07 | plans: relocate-channel-media as shipped, and the rollout it is waiting on | I Mean I'm Just Saying | 4 | +200 | -8 |
| 2026-09-11 22:36 | e2e: a tick that queued nothing could not say why, and the floor a spec inherits is not the fixture's | I Mean I'm Just Saying | 4 | +77 | -2 |
| 2026-09-11 22:24 | priority: a rename moves the document, and the migration guards its own rollout | I Mean I'm Just Saying | 10 | +351 | -29 |
| 2026-09-11 17:06 | plans: the suite is green at the channel-priority tip | I Mean I'm Just Saying | 2 | +15 | -1 |
| 2026-09-11 16:42 | e2e: "Add to top of auto-queue" is asserted as a priority edit | I Mean I'm Just Saying | 1 | +19 | -5 |
| 2026-09-11 16:40 | plans: channel priority, as shipped | I Mean I'm Just Saying | 4 | +220 | -3 |
| 2026-09-11 16:40 | priority: ending a focus recompiles, because the stored tree is what is left | I Mean I'm Just Saying | 1 | +21 | -6 |
| 2026-09-11 16:35 | channels: excludeFromSync is deleted | I Mean I'm Just Saying | 11 | +110 | -126 |
| 2026-09-11 16:30 | bin: the one-shot channel-priority migration | I Mean I'm Just Saying | 1 | +280 | -0 |
| 2026-09-11 16:28 | e2e: the first tier click seeds from the legacy trees and keeps their order | I Mean I'm Just Saying | 1 | +99 | -1 |
| 2026-09-11 16:27 | priority: one writer of `root`, and a first click that cannot lose the order | I Mean I'm Just Saying | 3 | +221 | -64 |
| 2026-09-11 16:18 | e2e: two channels selected, one moves, and the other says why it did not | I Mean I'm Just Saying | 1 | +113 | -1 |
| 2026-09-11 16:23 | priority: the migrated ranks are dense, and the migration is idempotent | I Mean I'm Just Saying | 2 | +149 | -17 |
| 2026-09-11 16:20 | backfill: a channel paused for transcription keeps its audio | I Mean I'm Just Saying | 6 | +172 | -17 |
| 2026-09-11 16:16 | priority: one definition of the dispatched tree, one of the site index | I Mean I'm Just Saying | 9 | +402 | -85 |
| 2026-09-11 16:16 | editor: moving a page of channels to the cold drive is one job each | I Mean I'm Just Saying | 6 | +313 | -49 |
| 2026-09-11 16:14 | editor: /channels rows can be ticked | I Mean I'm Just Saying | 1 | +64 | -4 |
| 2026-09-11 16:12 | relocate: a rollback that undid a step it had not recorded, and four smaller edges | I Mean I'm Just Saying | 4 | +104 | -15 |
| 2026-09-11 16:08 | relocate: the two ways a move ended by deleting the only copy | I Mean I'm Just Saying | 4 | +348 | -8 |
| 2026-09-11 16:06 | Merge channel-priority/s4 — the focus banner and the read-only tree | I Mean I'm Just Saying | 9 | +748 | -33 |
| 2026-09-11 16:06 | Merge channel-priority/s3 — the /channels UI and the one writer | I Mean I'm Just Saying | 10 | +1214 | -114 |
| 2026-09-11 16:06 | Merge channel-priority/s2 — the sync slice | I Mean I'm Just Saying | 5 | +356 | -11 |
| 2026-09-11 16:06 | Merge channel-priority/s1 — the dispatch slice | I Mean I'm Just Saying | 3 | +623 | -16 |
| 2026-09-11 16:04 | settings: the cold root is typed once, in the one place that writes it | I Mean I'm Just Saying | 6 | +154 | -1 |
| 2026-09-11 16:03 | editor: the focus banner and the generated tree, asserted on a lane console | I Mean I'm Just Saying | 1 | +326 | -0 |
| 2026-09-11 15:59 | editor: Sync all asks the priority document, and a failed priority write says so | I Mean I'm Just Saying | 4 | +148 | -39 |
| 2026-09-11 15:55 | editor: a generated tree is shown, not offered for editing | I Mean I'm Just Saying | 3 | +105 | -9 |
| 2026-09-11 15:55 | editor: the focus banner, on the lane console it is a statement about | I Mean I'm Just Saying | 3 | +134 | -21 |
| 2026-09-11 15:52 | editor: the lane status payload ships the tree the lane dispatches from | I Mean I'm Just Saying | 2 | +183 | -3 |
| 2026-09-11 15:49 | e2e: a relocated channel is indistinguishable from one in place | I Mean I'm Just Saying | 5 | +221 | -11 |
| 2026-09-11 15:45 | common: the sync scheduler's two answers, pinned against each other | I Mean I'm Just Saying | 1 | +255 | -0 |
| 2026-09-11 15:45 | docs: data/ may be a symlink, and three ways that bites | I Mean I'm Just Saying | 4 | +59 | -1 |
| 2026-09-11 15:44 | editor: the one path to a channel's media that no job record covers | I Mean I'm Just Saying | 1 | +22 | -0 |
| 2026-09-11 15:43 | editor: the /channels priority controls, asserted against what lands on disk | I Mean I'm Just Saying | 4 | +262 | -62 |
| 2026-09-11 15:43 | common: the sync scheduler asks the priority model, and orders focus first | I Mean I'm Just Saying | 4 | +101 | -11 |
| 2026-09-11 15:43 | common+editor: two more readers of data/, and a rollback that undid what never ran | I Mean I'm Just Saying | 9 | +186 | -16 |
| 2026-09-11 15:39 | common: a resumed relocation observes the disk instead of trusting the marker | I Mean I'm Just Saying | 4 | +547 | -36 |
| 2026-09-11 15:37 | editor: /channels loses the sync toggle and gains the tier it was standing in for | I Mean I'm Just Saying | 6 | +637 | -42 |
| 2026-09-11 15:37 | editor: one writer for the channel priority document, and it recompiles | I Mean I'm Just Saying | 1 | +197 | -1 |
| 2026-09-11 15:36 | common: the focus/hold/release transition, through the engine that implements it | I Mean I'm Just Saying | 2 | +374 | -0 |
| 2026-09-11 15:34 | common: a dir that does not exist yet is measured on its parent's volume | I Mean I'm Just Saying | 2 | +99 | -15 |
| 2026-09-11 15:34 | common: the four lanes dispatch from a compiled tree, and paused leaves the list | I Mean I'm Just Saying | 1 | +249 | -16 |
| 2026-09-11 15:32 | editor: a channel says where its media is, on every page that counts it | I Mean I'm Just Saying | 10 | +628 | -12 |
| 2026-09-11 15:27 | editor: a relocation is a job on the channel's own queue | I Mean I'm Just Saying | 2 | +167 | -0 |
| 2026-09-11 15:24 | plans: channel-priority gains per-operation overrides, and question 3 is answered | I Mean I'm Just Saying | 1 | +122 | -41 |
| 2026-09-11 15:24 | editor: the two channel-priority components S3 and S4 will fill in | I Mean I'm Just Saying | 2 | +84 | -0 |
| 2026-09-11 15:24 | common: the channel-priority contract under test, in both layers | I Mean I'm Just Saying | 2 | +1093 | -0 |
| 2026-09-11 15:24 | common: the channel-priority model, with per-operation overrides | I Mean I'm Just Saying | 3 | +735 | -0 |
| 2026-09-11 15:19 | common: the disk gate measures the volume the bytes are going to | I Mean I'm Just Saying | 8 | +181 | -32 |
| 2026-09-11 15:16 | common: delete and rename reach the other drive | I Mean I'm Just Saying | 4 | +359 | -6 |
| 2026-09-11 15:13 | common: the move itself, both directions, with the source held until verified | I Mean I'm Just Saying | 2 | +976 | -0 |
| 2026-09-11 15:09 | common: four guards stand between an unmounted drive and a re-download | I Mean I'm Just Saying | 6 | +180 | -0 |
| 2026-09-11 15:06 | plans: channel-priority design, sequenced as the second interlude item (Phase 1.5) | I Mean I'm Just Saying | 3 | +447 | -2 |
| 2026-09-11 15:06 | common: one module knows where a channel's media actually is | I Mean I'm Just Saying | 3 | +572 | -0 |
| 2026-09-11 15:00 | plans: relocate-channel-media refreshed at 7f7d140 and placed first, ahead of one-core phase 2 | I Mean I'm Just Saying | 3 | +376 | -151 |
| 2026-09-09 03:35 | plans: every known unmount-the-log instance on the video page is closed | I Mean I'm Just Saying | 3 | +55 | -14 |
| 2026-09-09 02:21 | editor: a kept run panel is not a second Run button, and the alert goes with the warning | I Mean I'm Just Saying | 5 | +96 | -9 |
| 2026-09-09 01:57 | editor: the three video-panel run logs outlive the state their own run lands | I Mean I'm Just Saying | 1 | +209 | -134 |
| 2026-09-09 01:29 | editor: three e2e cases that read a run's log after the run's own result lands | I Mean I'm Just Saying | 4 | +239 | -0 |
| 2026-09-08 21:18 | plans: the suite is clean end to end at the de-flake tip | I Mean I'm Just Saying | 2 | +7 | -7 |
| 2026-09-08 20:53 | plans: a keyed move keeps its state, so name what actually unmounted the panel | I Mean I'm Just Saying | 4 | +103 | -45 |
| 2026-09-08 20:43 | plans: the fourth flake was a remounted panel, and two earlier claims were artifacts | I Mean I'm Just Saying | 3 | +105 | -17 |
| 2026-09-08 20:38 | editor: the run panel keeps its place when the record lands, so its log survives | I Mean I'm Just Saying | 2 | +60 | -18 |
| 2026-09-08 20:18 | plans: root-cause plan for the attribution batch hang | I Mean I'm Just Saying | 1 | +168 | -0 |
| 2026-09-08 13:41 | plans: the reset route clears the armed regen timer, it does not await one in flight | I Mean I'm Just Saying | 1 | +5 | -3 |
| 2026-09-08 13:11 | plans: what the four flakes really were, including the one that is still open | I Mean I'm Just Saying | 2 | +60 | -4 |
| 2026-09-08 12:36 | export: the sweep-Stop test holds batch 2 open itself instead of racing a timer | I Mean I'm Just Saying | 1 | +15 | -2 |
| 2026-09-08 12:36 | common: the pre-paint theme script marks itself done, and the FOUC tests wait for the mark | I Mean I'm Just Saying | 3 | +17 | -0 |
| 2026-09-08 12:20 | editor: the e2e fixture's video id matches its directory, and a reset quiesces before it mutates | I Mean I'm Just Saying | 3 | +27 | -14 |
| 2026-09-08 12:17 | plans: the e2e de-flake plan | I Mean I'm Just Saying | 1 | +117 | -0 |
| 2026-09-08 06:08 | plans: the Phase 1 record counts to the tip, and STATE.md names the two traps | I Mean I'm Just Saying | 5 | +64 | -24 |
| 2026-09-08 05:37 | plans: slice 1.5 is shipped, and Phase 1 is closed out | I Mean I'm Just Saying | 4 | +530 | -56 |
| 2026-09-08 05:14 | editor: a band is folded once, and the new snapshot entries stop doubling two of them | I Mean I'm Just Saying | 2 | +67 | -1 |
| 2026-09-08 05:12 | common: the bucket projection hands out the stored array, as it always did | I Mean I'm Just Saying | 2 | +8 | -6 |
| 2026-09-08 05:05 | editor: the bucket lanes' entries are pinned, and the bands are pinned against them | I Mean I'm Just Saying | 1 | +109 | -0 |
| 2026-09-08 05:02 | plans: the bucket lanes' new work lists are checked against the live corpus | I Mean I'm Just Saying | 1 | +186 | -0 |
| 2026-09-08 05:01 | common+editor: the runner draws a lane, not a list of buckets | I Mean I'm Just Saying | 2 | +65 | -14 |
| 2026-09-08 04:58 | common: every lane gets a work list in the snapshot, and the two bucket lanes get theirs | I Mean I'm Just Saying | 8 | +597 | -62 |
| 2026-09-08 04:35 | plans: slice 1.4 is shipped, and the record says where a lane's gate lives now | I Mean I'm Just Saying | 4 | +257 | -3 |
| 2026-09-08 04:32 | editor: the one spec that asserted the backfill checkbox by its retired field | I Mean I'm Just Saying | 2 | +13 | -8 |
| 2026-09-08 04:03 | editor: the suite reads a lane's gate where the lane keeps it, and asks three surfaces to agree | I Mean I'm Just Saying | 6 | +275 | -43 |
| 2026-09-08 03:59 | common+editor: reach dies with the sweeps that were its only axis | I Mean I'm Just Saying | 5 | +89 | -172 |
| 2026-09-08 03:57 | editor: every control over a lane's gate writes the lane's key, and the policy save carries it | I Mean I'm Just Saying | 6 | +72 | -32 |
| 2026-09-08 03:55 | common: a lane's pause becomes a key on the lane, and the four old fields become its fallback | I Mean I'm Just Saying | 8 | +427 | -76 |
| 2026-09-08 03:40 | editor+plans: the arbiter's buttons are asserted gone, and the migration collapses a full kinds list the way arm does | I Mean I'm Just Saying | 7 | +209 | -50 |
| 2026-09-08 03:25 | plans: slice 1.3 is shipped, and the record says what it cost | I Mean I'm Just Saying | 2 | +343 | -2 |
| 2026-09-08 02:50 | editor: the dashboard arms a lane without discarding its rules | I Mean I'm Just Saying | 1 | +14 | -8 |
| 2026-09-08 02:48 | editor: the lane-context block belongs to an operation lane, not to every lane | I Mean I'm Just Saying | 1 | +16 | -6 |
| 2026-09-08 02:40 | plans+docs: the numbers script measures four lanes, and the prose stops naming the sweeps | I Mean I'm Just Saying | 5 | +119 | -67 |
| 2026-09-08 02:35 | editor: the e2e suite asks the runner what it used to ask the sweep | I Mean I'm Just Saying | 8 | +198 | -330 |
| 2026-09-08 02:30 | editor: one console per lane, and the sweep panel goes | I Mean I'm Just Saying | 27 | +511 | -1923 |
| 2026-09-08 02:21 | common: the sweeps and the arbiter retire, and ten settings fields go with them | I Mean I'm Just Saying | 28 | +208 | -2619 |
| 2026-09-08 02:14 | common: the sweeps' scope becomes a lane's tree, before anything is deleted | I Mean I'm Just Saying | 2 | +411 | -0 |
| 2026-09-08 02:00 | common: a refreshed run keeps the lane's whole ledger, and two lanes never share a tmp file | I Mean I'm Just Saying | 5 | +135 | -12 |
| 2026-09-08 01:45 | plans: slice 1.2 is shipped, and the record says what it cost | I Mean I'm Just Saying | 1 | +323 | -0 |
| 2026-09-08 01:21 | common: two runners, one state file — so one state object | I Mean I'm Just Saying | 2 | +94 | -20 |
| 2026-09-08 00:43 | common: a runner's run is its whole lifetime, and the spend cap has to know that | I Mean I'm Just Saying | 2 | +49 | -21 |
| 2026-09-08 00:38 | common: the projection's old half-rules go with the rule they served | I Mean I'm Just Saying | 2 | +13 | -21 |
| 2026-09-08 00:30 | editor: the lane runner, end to end, on both operation lanes | I Mean I'm Just Saying | 3 | +451 | -0 |
| 2026-09-08 00:24 | editor: every lane's operation page gets its runner console | I Mean I'm Just Saying | 8 | +127 | -34 |
| 2026-09-08 00:20 | common: the runner runs operations, and the digest lane's order is one comparator | I Mean I'm Just Saying | 10 | +673 | -93 |
| 2026-09-08 00:07 | common: one executor for the operation lanes, and the yield stops keying on a field existing | I Mean I'm Just Saying | 24 | +2534 | -1927 |
| 2026-09-07 23:44 | common: cheapest is not a recency order, and an empty projection reads no snapshot | I Mean I'm Just Saying | 5 | +109 | -1 |
| 2026-09-07 23:03 | common: four lanes in the model, and one of them stops being a filter | I Mean I'm Just Saying | 22 | +742 | -211 |
| 2026-09-07 22:50 | plans/tools: the phase-1 numbers script | I Mean I'm Just Saying | 1 | +205 | -0 |
| 2026-09-07 22:48 | plans: one-core Phase 1 — four lanes, one runner | I Mean I'm Just Saying | 1 | +254 | -0 |
| 2026-09-07 21:11 | plans: one-core Phase 0 is shipped, and the record says what it cost | I Mean I'm Just Saying | 3 | +219 | -1 |
| 2026-09-07 20:03 | common: one pageFileName and one CONTRACT | I Mean I'm Just Saying | 12 | +64 | -46 |
| 2026-09-07 19:58 | repo: the dead weight goes, and the bake-off harnesses move beside their results | I Mean I'm Just Saying | 23 | +3865 | -3920 |
| 2026-09-07 19:53 | common: the surface is declared, and mcp admits it depends on it | I Mean I'm Just Saying | 3 | +43 | -2 |
| 2026-09-07 19:49 | common: the layering is a test, and the auto-queue types move down to it | I Mean I'm Just Saying | 9 | +373 | -129 |
| 2026-09-07 19:44 | umtool: report-to-video moves under the umtool umbrella | I Mean I'm Just Saying | 43 | +5024 | -5048 |
| 2026-09-07 19:42 | plans: the one-core umbrella plan | I Mean I'm Just Saying | 1 | +384 | -0 |
| 2026-08-31 16:55 | plans: the transcode operation is removed, and the docs say so | I Mean I'm Just Saying | 4 | +99 | -8 |
| 2026-08-31 16:52 | snapshot: the untranscoded bucket is wrong-format audio | I Mean I'm Just Saying | 4 | +19 | -11 |
| 2026-08-31 16:51 | transcode: the operation is deleted — it never fired in production | I Mean I'm Just Saying | 17 | +42 | -508 |
| 2026-08-31 16:47 | channels: the transcode stage is gone | I Mean I'm Just Saying | 26 | +61 | -707 |
| 2026-08-31 16:41 | editor: the slice-5 leftovers — the nav timer names live routes, the pool lists its eight kinds, the aliases tab always has a site | I Mean I'm Just Saying | 3 | +42 | -28 |
| 2026-08-31 16:38 | plans: the transcode removal planned | I Mean I'm Just Saying | 1 | +541 | -0 |
| 2026-08-30 17:11 | plans: slice 5 shipped, and the docs say so | I Mean I'm Just Saying | 4 | +251 | -11 |
| 2026-08-30 17:07 | sites: the hub is the family's, and the Sites group is one entry | I Mean I'm Just Saying | 10 | +212 | -177 |
| 2026-08-30 17:04 | sites: the pool runs from the family page | I Mean I'm Just Saying | 21 | +458 | -435 |
| 2026-08-30 17:00 | sites: Publish is the site's tab; the family page cuts the release and batches the builds | I Mean I'm Just Saying | 37 | +1450 | -1460 |
| 2026-08-30 16:56 | sites: a site has tabs, and Charts and Search aliases are two of them | I Mean I'm Just Saying | 24 | +839 | -643 |
| 2026-08-30 16:49 | plans: slice 5 planned | I Mean I'm Just Saying | 1 | +1106 | -0 |
| 2026-08-30 15:28 | plans: slice 8c shipped, and the docs say so | I Mean I'm Just Saying | 4 | +207 | -14 |
| 2026-08-30 15:26 | jobs: the scheduler's view rides the live payload, and heals its drift | I Mean I'm Just Saying | 14 | +544 | -595 |
| 2026-08-30 15:20 | jobs: one list — the live head is polled, the history tail is paged | I Mean I'm Just Saying | 25 | +744 | -686 |
| 2026-08-30 15:13 | jobs: one row type, and one builder for every job list | I Mean I'm Just Saying | 14 | +735 | -319 |
| 2026-08-30 15:05 | plans: slice 8c planned | I Mean I'm Just Saying | 1 | +850 | -0 |
| 2026-08-30 02:24 | results: the selection toolbar rides the bottom of the screen | I Mean I'm Just Saying | 2 | +81 | -4 |
| 2026-08-30 02:07 | search: the compact bar pins under the header, for real this time | I Mean I'm Just Saying | 4 | +128 | -116 |
| 2026-08-30 01:53 | search: only the compact bar sticks, and the phone menu offers Offline | I Mean I'm Just Saying | 2 | +107 | -85 |
| 2026-08-30 01:19 | export: the Filters chip is always offered below xl | I Mean I'm Just Saying | 1 | +5 | -2 |
| 2026-08-30 01:08 | e2e: one spec that looks at the site on a phone | I Mean I'm Just Saying | 1 | +153 | -0 |
| 2026-08-30 01:05 | pages: duplicates windows its list, and touch targets grow | I Mean I'm Just Saying | 7 | +121 | -36 |
| 2026-08-30 00:55 | search: the bar is a query box and one row of chips | I Mean I'm Just Saying | 12 | +1384 | -999 |
| 2026-08-30 00:29 | ask: the question box is always on screen | I Mean I'm Just Saying | 6 | +231 | -113 |
| 2026-08-30 00:18 | results: a card shows eight hits and offers the rest | I Mean I'm Just Saying | 3 | +133 | -24 |
| 2026-08-30 00:07 | header: one row on a phone, with everything behind one menu | I Mean I'm Just Saying | 3 | +242 | -47 |
| 2026-08-30 00:00 | player: the modal is a column with a labelled strip at the bottom | I Mean I'm Just Saying | 3 | +338 | -183 |
| 2026-08-29 23:43 | export: one media-query hook, one player geometry, one viewport | I Mean I'm Just Saying | 6 | +410 | -13 |
| 2026-08-29 22:31 | operations: the sync page reads the scheduler payload once | I Mean I'm Just Saying | 3 | +40 | -13 |
| 2026-08-29 22:17 | plans: slice 8a+8b shipped, and the docs say so | I Mean I'm Just Saying | 5 | +215 | -8 |
| 2026-08-29 22:14 | lanes: one note for why a lane is not working | I Mean I'm Just Saying | 5 | +119 | -35 |
| 2026-08-29 22:11 | workers: the worker list is configured where the workers are | I Mean I'm Just Saying | 12 | +809 | -723 |
| 2026-08-29 22:07 | sync: its settings live on its page, and one action writes them | I Mean I'm Just Saying | 11 | +242 | -245 |
| 2026-08-29 22:02 | operations: sync has a rail row and a page, and /scheduler redirects | I Mean I'm Just Saying | 25 | +958 | -832 |
| 2026-08-29 21:56 | common: sync is a catalogued operation, with a scope and a trigger | I Mean I'm Just Saying | 8 | +137 | -36 |
| 2026-08-29 21:48 | plans: slice 8a+8b planned | I Mean I'm Just Saying | 1 | +655 | -0 |
| 2026-08-28 19:52 | plans: slice 6 shipped, and the docs say so | I Mean I'm Just Saying | 4 | +161 | -8 |
| 2026-08-28 19:50 | video page: a speaker operation runs for one video | I Mean I'm Just Saying | 5 | +248 | -10 |
| 2026-08-28 19:47 | video page: one panel per operation | I Mean I'm Just Saying | 8 | +1189 | -560 |
| 2026-08-28 19:42 | backfill: a channel job can be scoped to video ids | I Mean I'm Just Saying | 5 | +59 | -9 |
| 2026-08-28 19:39 | common: a video's operations are read once, from the registry | I Mean I'm Just Saying | 8 | +440 | -25 |
| 2026-08-28 19:32 | plans: slice 6 planned | I Mean I'm Just Saying | 1 | +575 | -0 |
| 2026-08-28 16:59 | plans: slice 7 shipped, and the docs say so | I Mean I'm Just Saying | 5 | +190 | -14 |
| 2026-08-28 16:55 | operations: a runner page has its pause beside Start, Drain and Stop | I Mean I'm Just Saying | 8 | +81 | -2 |
| 2026-08-28 16:52 | lanes: one pause control, drawn wherever a lane is | I Mean I'm Just Saying | 10 | +239 | -177 |
| 2026-08-28 16:47 | editor: one action pair holds every lane, and the wire says held | I Mean I'm Just Saying | 18 | +147 | -283 |
| 2026-08-28 16:42 | common: a pause gate has one definition | I Mean I'm Just Saying | 5 | +246 | -4 |
| 2026-08-28 16:36 | plans: slice 7 planned | I Mean I'm Just Saying | 1 | +377 | -0 |
| 2026-08-28 07:31 | plans: slice 4 review touch-up — the e2e follow-up is on the record | I Mean I'm Just Saying | 2 | +6 | -3 |
| 2026-08-28 07:26 | editor: slice 4 e2e fix — channels-sort's header list names columns that exist | I Mean I'm Just Saying | 1 | +9 | -2 |
| 2026-08-28 07:14 | plans: slice 4 shipped, and the docs say where everything went | I Mean I'm Just Saying | 4 | +135 | -11 |
| 2026-08-28 07:11 | editor: /actionable retires and redirects to /operations | I Mean I'm Just Saying | 28 | +66 | -228 |
| 2026-08-28 07:06 | review: the judgements a person makes about the archive get a page under Corpus | I Mean I'm Just Saying | 19 | +960 | -885 |
| 2026-08-28 07:02 | channels: the report column and its refresh live with the channels; cleanup: the two cleanup tables live with the bytes | I Mean I'm Just Saying | 14 | +290 | -200 |
| 2026-08-28 06:58 | operations: each operation page lists the channels with its work, and the dashboard says "digest to do" | I Mean I'm Just Saying | 17 | +394 | -322 |
| 2026-08-28 06:53 | editor: the channel-work table and its census leave the /actionable route | I Mean I'm Just Saying | 26 | +1330 | -1149 |
| 2026-08-28 06:45 | plans: slice 4 planned | I Mean I'm Just Saying | 1 | +470 | -0 |
| 2026-08-28 04:27 | backfill: review touch-ups after the hand-off | I Mean I'm Just Saying | 3 | +12 | -12 |
| 2026-08-28 04:21 | backfill: the hand-off is pinned end to end, and the docs say so | I Mean I'm Just Saying | 7 | +279 | -27 |
| 2026-08-28 04:17 | attribution: freshness knows which transcript the names were made from | I Mean I'm Just Saying | 4 | +141 | -1 |
| 2026-08-28 04:14 | backfill: re-acquired audio is handed to auto-transcribe, never deleted under it | I Mean I'm Just Saying | 10 | +912 | -54 |
| 2026-08-28 04:06 | plans: the re-acquire hand-off planned | I Mean I'm Just Saying | 1 | +395 | -0 |
| 2026-08-27 14:33 | plans: the deferred cause is fixed and recorded | I Mean I'm Just Saying | 3 | +136 | -17 |
| 2026-08-27 14:31 | backfill: the subtitle-channel re-acquire is pinned end to end | I Mean I'm Just Saying | 4 | +143 | -3 |
| 2026-08-27 14:28 | backfill: re-acquire fetches audio on a subtitle channel and keeps the cues fresh | I Mean I'm Just Saying | 4 | +295 | -10 |
| 2026-08-27 14:23 | plans: backfill re-acquire on subtitle channels planned | I Mean I'm Just Saying | 1 | +306 | -0 |
| 2026-08-26 22:57 | plans: unified-ops step 1 shipped | I Mean I'm Just Saying | 5 | +184 | -22 |
| 2026-08-26 22:50 | operations: digest is a registry entry to every reader | I Mean I'm Just Saying | 5 | +20 | -49 |
| 2026-08-26 22:46 | snapshot: the digest work list has one definition | I Mean I'm Just Saying | 20 | +137 | -196 |
| 2026-08-26 22:39 | plans: unified-ops step 1 planned | I Mean I'm Just Saying | 1 | +277 | -0 |
| 2026-08-26 21:36 | plans: record the collision the move created | I Mean I'm Just Saying | 2 | +28 | -5 |
| 2026-08-26 21:35 | editor: the lane form must not say "the plan" — the console beside it does | I Mean I'm Just Saying | 2 | +30 | -6 |
| 2026-08-26 21:05 | editor: the copy points at the operation page, and /settings says so | I Mean I'm Just Saying | 14 | +204 | -32 |
| 2026-08-26 20:56 | editor: an operation's settings live on its operation page | I Mean I'm Just Saying | 13 | +1098 | -901 |
| 2026-08-26 20:44 | operations: the seams for per-operation settings | I Mean I'm Just Saying | 5 | +363 | -37 |
| 2026-08-26 20:40 | plans: slice 3 chosen and planned | I Mean I'm Just Saying | 3 | +366 | -4 |
| 2026-08-26 14:45 | operations: transcode is a registry entry, with the first `appliesTo` | I Mean I'm Just Saying | 7 | +73 | -7 |
| 2026-08-26 14:43 | editor: the surfaces that still said "backfill" for an operation say "speakers" | I Mean I'm Just Saying | 30 | +548 | -451 |
| 2026-08-26 14:36 | operations: the registry says "operation", not "backfill kind" | I Mean I'm Just Saying | 66 | +3749 | -3725 |
| 2026-08-26 04:58 | digestActions: DigestLaneChoice is an alias, not a re-export | I Mean I'm Just Saying | 5 | +238 | -22 |
| 2026-08-26 04:49 | stages: extract the shell the speakers and digest cards share | I Mean I'm Just Saying | 4 | +298 | -170 |
| 2026-08-26 04:46 | channels: the speakers stage stops being called "backfill" | I Mean I'm Just Saying | 12 | +245 | -70 |
| 2026-08-26 04:40 | operationJobs: one way to run one operation over one channel | I Mean I'm Just Saying | 9 | +493 | -333 |
| 2026-08-26 04:01 | arbiter: resolve every operation's lane through its own laneFor | I Mean I'm Just Saying | 4 | +180 | -26 |
| 2026-08-26 03:52 | operations/<id>: resolve the runner and the sweep lane from the registry | I Mean I'm Just Saying | 6 | +192 | -26 |
| 2026-08-26 03:46 | editor: /auto-queue becomes /operations, and the nav gets four groups | I Mean I'm Just Saying | 53 | +1801 | -1070 |
| 2026-08-25 13:11 | umtool: a dashboard at /, a project from a video, and a long-form pass over sources, revisions and exports | I Mean I'm Just Saying | 68 | +3935 | -581 |
| 2026-08-25 02:59 | channels: section the table by site group, and give each group the pipeline | I Mean I'm Just Saying | 8 | +707 | -93 |
| 2026-08-12 00:44 | Group a site's channels, and give each group the pipeline | I Mean I'm Just Saying | 6 | +937 | -32 |
| 2026-08-25 03:07 | plans: STATE/FACTS catch up to the arbiter, workers and executors; track the relocate design | I Mean I'm Just Saying | 3 | +384 | -4 |
| 2026-08-25 02:59 | sweepPreview.test: fixtures carry the full SweepKindCounts shape | I Mean I'm Just Saying | 1 | +12 | -0 |
| 2026-08-24 14:22 | sweep console: each operation says where it can run | I Mean I'm Just Saying | 4 | +108 | -1 |
| 2026-08-24 14:16 | backfill units: the lane ships work to tagged executors and applies it guarded | I Mean I'm Just Saying | 8 | +863 | -49 |
| 2026-08-24 14:07 | unit executor: any backfill kind can run on a corpus-less box | I Mean I'm Just Saying | 10 | +822 | -7 |
| 2026-08-24 13:59 | llm fan-out: a WorkerKind for bare ollama endpoints, leased per call | I Mean I'm Just Saying | 17 | +711 | -31 |
| 2026-08-24 13:48 | workers: a remote is N slots — expanded at reconfigure, probed from its health | I Mean I'm Just Saying | 7 | +417 | -27 |
| 2026-08-24 13:44 | workers: tags route work — matched grants, a requirement on acquire, tryAcquire | I Mean I'm Just Saying | 10 | +505 | -29 |
| 2026-08-24 04:46 | sweeps: a scope console — pick the operations and channels before arming | I Mean I'm Just Saying | 17 | +1577 | -43 |
| 2026-08-22 23:56 | channel-line: the em-dash fixture runs with no speaker operation on | I Mean I'm Just Saying | 1 | +5 | -3 |
| 2026-08-22 23:39 | pipelines: keep the pure band readings off the client side | I Mean I'm Just Saying | 6 | +197 | -119 |
| 2026-08-22 23:24 | changelog: restore the armed-cost entry | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-08-22 23:24 | naming: one word was three things, and hiding a fourth | I Mean I'm Just Saying | 26 | +669 | -131 |
| 2026-08-22 22:56 | channels: six pipelines, one strip, sortable by what can run now | I Mean I'm Just Saying | 7 | +426 | -47 |
| 2026-08-22 22:45 | registry: declare an operation's group and what one unit costs | I Mean I'm Just Saying | 2 | +153 | -0 |
| 2026-08-22 22:43 | pipelines: one band instrument, three scales | I Mean I'm Just Saying | 10 | +687 | -591 |
| 2026-08-22 05:10 | arbiter: one dispatcher for every operation a rule names | I Mean I'm Just Saying | 13 | +1043 | -14 |
| 2026-08-22 04:44 | digest: rehome the lane's guards onto declared rules | I Mean I'm Just Saying | 5 | +425 | -76 |
| 2026-08-22 04:37 | auto-queue: one console for four pipelines; a runner is a lane | I Mean I'm Just Saying | 19 | +2075 | -172 |
| 2026-08-22 03:33 | auto-queue: a policy leaf can name an operation | I Mean I'm Just Saying | 3 | +220 | -9 |
| 2026-08-22 03:29 | sweeps: order the CHANNEL plan by recency, behind a reach setting | I Mean I'm Just Saying | 8 | +347 | -5 |
| 2026-08-22 03:22 | digest/backfill: order a channel's candidates by upload date | I Mean I'm Just Saying | 7 | +266 | -3 |
| 2026-08-22 03:16 | recency: scope the index lookup to the owning channel | I Mean I'm Just Saying | 3 | +123 | -2 |
| 2026-08-21 12:53 | Merge branch 'docs/windows-container-path' | I Mean I'm Just Saying | 3 | +67 | -8 |
| 2026-08-21 12:53 | docs: Windows installs Docker Desktop now, not a Linux userland | I Mean I'm Just Saying | 3 | +67 | -8 |
| 2026-08-21 12:47 | Merge branch 'feat/runtime-container' | I Mean I'm Just Saying | 24 | +2262 | -14 |
| 2026-08-21 12:47 | docker: `docker compose up` stands up an archive, guarded by default | I Mean I'm Just Saying | 24 | +2262 | -14 |
| 2026-08-20 05:20 | docs: the video path no longer needs a corpus, so stop saying it does | I Mean I'm Just Saying | 2 | +51 | -34 |
| 2026-08-20 05:19 | Merge branch 'feat/umtool-projects' | I Mean I'm Just Saying | 101 | +18230 | -619 |
| 2026-08-20 05:18 | report-to-video: read cue windows from a published archive, not just local disk | I Mean I'm Just Saying | 6 | +638 | -24 |
| 2026-08-20 05:06 | docs: make the README an entrypoint, and say what you can do with no corpus | I Mean I'm Just Saying | 4 | +699 | -108 |
| 2026-08-20 03:41 | auto-queue: the newest upload first, and a page that says what it's doing | I Mean I'm Just Saying | 22 | +3224 | -571 |
| 2026-08-20 00:39 | umtool: two cuts from one manifest, and a rail that rolls one number at a time | I Mean I'm Just Saying | 26 | +6079 | -109 |
| 2026-08-19 04:04 | umtool: the manifest writer refuses any non-clip, not just a card | I Mean I'm Just Saying | 1 | +4 | -1 |
| 2026-08-19 04:01 | umtool: a timeline entry is not card-or-clip — the vocabulary is open | I Mean I'm Just Saying | 7 | +116 | -27 |
| 2026-08-19 03:29 | umtool: the docs, `umtool new`, and a Tailwind own-goal | I Mean I'm Just Saying | 15 | +1231 | -6 |
| 2026-08-19 02:50 | umtool: a clip reaches /mix, and a bad link is refused rather than redirected | I Mean I'm Just Saying | 8 | +389 | -18 |
| 2026-08-19 02:41 | umtool: an index that changes nothing but latency, and a CLI that can write | I Mean I'm Just Saying | 9 | +548 | -4 |
| 2026-08-19 02:31 | umtool: the build driver — four steps, per-clip progress, and no orphans | I Mean I'm Just Saying | 10 | +941 | -13 |
| 2026-08-19 02:13 | umtool: the clip bench — edit a window against the audio and the words | I Mean I'm Just Saying | 18 | +1683 | -26 |
| 2026-08-19 01:55 | umtool: a CLI, and `check` finds the two defects that already shipped | I Mean I'm Just Saying | 6 | +541 | -6 |
| 2026-08-19 01:50 | umtool: /browse is the project index, and reports become reachable | I Mean I'm Just Saying | 36 | +2395 | -521 |
| 2026-08-19 01:13 | umtool: a project is a project, and ~/reports is the tree | I Mean I'm Just Saying | 14 | +1603 | -110 |
| 2026-08-19 00:59 | report-to-video: adopt the pipeline, and stop it re-downloading its own cache | I Mean I'm Just Saying | 10 | +2308 | -0 |
| 2026-08-18 23:59 | digest-bakeoff: measure whether a chapter boundary is in the RIGHT PLACE | I Mean I'm Just Saying | 18 | +3742 | -27 |
| 2026-08-18 23:51 | umtool: register it as a workspace package and give it a port block | I Mean I'm Just Saying | 6 | +85 | -5 |
| 2026-08-18 23:02 | umtool: come back to the page you were last on | I Mean I'm Just Saying | 5 | +341 | -3 |
| 2026-08-18 17:16 | debox-bg.mjs: cut a game's own text-box freezes out of a background bed | I Mean I'm Just Saying | 2 | +163 | -1 |
| 2026-08-18 17:16 | the 22 judged face crops, applied to all nine covers | I Mean I'm Just Saying | 3 | +792 | -66 |
| 2026-08-18 17:15 | make-thumb.mjs: record the background, and fix the scorer ffmpeg 9 broke | I Mean I'm Just Saying | 1 | +13 | -2 |
| 2026-08-18 15:29 | faces.spec: detect each corner once for the whole file | I Mean I'm Just Saying | 1 | +15 | -1 |
| 2026-08-18 15:17 | The first face judgement: the Super Mario RPG bottom-left | I Mean I'm Just Saying | 1 | +20 | -0 |
| 2026-08-18 15:17 | deck.spec: read the clashing corner out of the fixture | I Mean I'm Just Saying | 1 | +16 | -1 |
| 2026-08-18 15:10 | Fixture seeds and e2e/faces.spec.ts | I Mean I'm Just Saying | 4 | +581 | -31 |
| 2026-08-18 15:02 | /browse/faces: judge the crop, not just the face | I Mean I'm Just Saying | 6 | +1113 | -1 |
| 2026-08-18 14:57 | facecrop.py --detect/--crop, and make-thumb honours the judgements | I Mean I'm Just Saying | 2 | +223 | -33 |
| 2026-08-18 14:54 | The face judger: the queue, the store, and the crop maths | I Mean I'm Just Saying | 3 | +502 | -1 |
| 2026-08-18 14:18 | Test the console against the real corpus | I Mean I'm Just Saying | 4 | +437 | -3 |
| 2026-08-18 14:12 | Let a search become an edit | I Mean I'm Just Saying | 6 | +928 | -3 |
| 2026-08-18 14:06 | Give the phrase index a console | I Mean I'm Just Saying | 4 | +592 | -0 |
| 2026-08-18 14:02 | Index the ASR corpus by phrase | I Mean I'm Just Saying | 5 | +764 | -13 |
| 2026-08-18 13:55 | Bring umtool into the repo | I Mean I'm Just Saying | 212 | +204111 | -0 |
| 2026-08-13 05:27 | Turn the volume down | I Mean I'm Just Saying | 11 | +66 | -73 |
| 2026-08-13 04:51 | Give Archilyzer a site, and stop shipping the source inside every archive | I Mean I'm Just Saying | 82 | +3508 | -395 |
| 2026-08-11 23:32 | Break the backfill figure down by kind, and give every lane a second line | I Mean I'm Just Saying | 11 | +453 | -98 |
| 2026-08-11 23:31 | Carry in the uncommitted lane-card work from main | I Mean I'm Just Saying | 15 | +858 | -491 |
| 2026-08-11 22:36 | Say what is holding the audio, and what to run to get it back | I Mean I'm Just Saying | 9 | +1408 | -3 |
| 2026-08-11 20:48 | Serialize e2e runs into one machine-wide queue | I Mean I'm Just Saying | 10 | +940 | -19 |
| 2026-08-11 12:47 | Merge feat/mcp-fast-reachable-honest: filters are reachable, scans are planned, counts are of recordings | I Mean I'm Just Saying | 11 | +3501 | -270 |
| 2026-08-11 06:40 | Record the measured baseline table and the prebuilt-index decision | I Mean I'm Just Saying | 1 | +34 | -0 |
| 2026-08-11 06:38 | Make the MCP fast, reachable, and honest about what it counted | I Mean I'm Just Saying | 11 | +3467 | -270 |
| 2026-08-11 06:23 | Merge feat/channel-cockpit: the channel page is a transit line, and the video browser has its own page | I Mean I'm Just Saying | 90 | +3871 | -1429 |
| 2026-08-11 06:10 | Point main's new archived-bucket retry test at the Download stage | I Mean I'm Just Saying | 1 | +10 | -2 |
| 2026-08-11 05:34 | Merge main: drop the bookmark spec the channel-cockpit migration had rewritten | I Mean I'm Just Saying | 97 | +8495 | -3648 |
| 2026-08-11 05:19 | Make the channel page about the channel's lifecycle, not its video list | I Mean I'm Just Saying | 90 | +3873 | -1433 |
| 2026-08-11 04:51 | Make the sweep prompt refuse a word-split request instead of running it | I Mean I'm Just Saying | 5 | +192 | -9 |
| 2026-08-11 04:36 | Merge feat/mcp-stateless: the MCP is stateless by construction, and coverage is mechanical | I Mean I'm Just Saying | 21 | +3673 | -1597 |
| 2026-08-11 04:35 | Merge branch 'main' into feat/mcp-stateless | I Mean I'm Just Saying | 37 | +166 | -1290 |
| 2026-08-11 04:34 | Rebuild the MCP stateless: per-call corpus handles, mechanical coverage | I Mean I'm Just Saying | 19 | +3395 | -1120 |
| 2026-08-11 04:27 | Merge remove-command-bookmarks: drop the bookmark layer, keep the replay seam Retry stands on | I Mean I'm Just Saying | 37 | +166 | -1290 |
| 2026-08-11 03:13 | Move the MCP onto the v2 SDK and the 2026-07-28 protocol | I Mean I'm Just Saying | 7 | +285 | -484 |
| 2026-08-11 03:00 | Merge feat/sortformer-gpu-diarization: diarization can run on the GPU, and the default does not change | I Mean I'm Just Saying | 17 | +1329 | -54 |
| 2026-08-11 02:54 | Remove command bookmarks, and keep the replay seam Retry stands on | I Mean I'm Just Saying | 35 | +162 | -1285 |
| 2026-08-11 02:51 | Merge feat/widget-grid-layout: the widget lays out on a real grid, and layouts have names | I Mean I'm Just Saying | 26 | +3145 | -702 |
| 2026-08-11 02:51 | Give the monitor widget rows, dense rails, and presets worth naming | I Mean I'm Just Saying | 26 | +3145 | -702 |
| 2026-08-11 00:52 | Merge feat/widget-expandable-more: the widget's +N more channels expands now | I Mean I'm Just Saying | 3 | +124 | -24 |
| 2026-08-11 00:52 | Let the widget's "+N more channels" actually show them | I Mean I'm Just Saying | 3 | +124 | -24 |
| 2026-08-10 22:31 | Do not leave ffmpeg running when the sortformer engine dies | I Mean I'm Just Saying | 1 | +19 | -6 |
| 2026-08-10 19:26 | Put the sortformer engine settings on the settings page | I Mean I'm Just Saying | 4 | +132 | -1 |
| 2026-08-10 18:08 | Give diarization a GPU engine, and a reason to prefer it | I Mean I'm Just Saying | 14 | +1185 | -54 |
| 2026-08-10 16:33 | Merge feat/digest-in-registry: carry the digest work list in the registry, and fix the transcripts it could not see | I Mean I'm Just Saying | 30 | +2000 | -178 |
| 2026-08-10 13:50 | Record what the deferred bucket actually was, and that it is cleared | I Mean I'm Just Saying | 2 | +55 | -3 |
| 2026-08-10 13:43 | Give the undigestable transcripts a name, a reason and a button | I Mean I'm Just Saying | 13 | +675 | -34 |
| 2026-08-09 23:33 | Give the digest work list one definition, and let the registry carry it | I Mean I'm Just Saying | 22 | +1282 | -153 |
| 2026-08-09 21:13 | Write down the model A-C were aiming at | I Mean I'm Just Saying | 2 | +194 | -1 |
| 2026-08-09 21:11 | Put digest in the catalog, on its own declared lane | I Mean I'm Just Saying | 7 | +688 | -16 |
| 2026-08-09 20:48 | Tell "waiting on a prerequisite" apart from "the media is gone" | I Mean I'm Just Saying | 9 | +346 | -31 |
| 2026-08-09 20:34 | Give the unattended runner the disk rule it never had | I Mean I'm Just Saying | 20 | +742 | -33 |
| 2026-08-09 04:45 | Record that the one red e2e spec predates this branch | I Mean I'm Just Saying | 1 | +9 | -0 |
| 2026-08-09 03:59 | Window the long files, and scan what is already on disk | I Mean I'm Just Saying | 21 | +1870 | -364 |
| 2026-08-09 02:52 | Cap what the OOM kills, and give the refusal its own number | I Mean I'm Just Saying | 14 | +394 | -11 |
| 2026-08-09 02:42 | Ask the shape of a filename, not a list of exceptions | I Mean I'm Just Saying | 13 | +518 | -181 |
| 2026-08-09 01:45 | Surface the backfill pause where the work is watched | I Mean I'm Just Saying | 4 | +144 | -11 |
| 2026-08-08 10:52 | Retract the peak-RSS number, and ship a duration cap | I Mean I'm Just Saying | 2 | +90 | -1 |
| 2026-08-08 09:41 | Confirm what the isRealAudioFile bug costs, from the running backfill | I Mean I'm Just Saying | 1 | +36 | -0 |
| 2026-08-08 08:22 | Record what running the backfill measured | I Mean I'm Just Saying | 1 | +65 | -0 |
| 2026-08-08 07:33 | Gitignore the diarization backfill logs | I Mean I'm Just Saying | 1 | +1 | -0 |
| 2026-08-08 07:30 | Merge feat/attribution-closed-cast-probe: close the label space, and reject the per-turn lane on measurement | I Mean I'm Just Saying | 24 | +28923 | -71 |
| 2026-08-08 07:30 | Close the label space, measure it properly, and reject the per-turn lane | I Mean I'm Just Saying | 24 | +28923 | -71 |
| 2026-08-08 04:16 | Merge fix/census-as-report: make the corpus census a report, not a permanently-red test | I Mean I'm Just Saying | 3 | +368 | -50 |
| 2026-08-08 04:16 | Make the corpus census a report, not a permanently-red test | I Mean I'm Just Saying | 3 | +368 | -50 |
| 2026-08-08 03:27 | Merge feat/attribution-backfill: put names to the speakers, and make the backfill registry earn its name | I Mean I'm Just Saying | 19 | +3140 | -38 |
| 2026-08-08 02:56 | Put names to the speakers, and make the backfill registry earn its name | I Mean I'm Just Saying | 19 | +3140 | -38 |
| 2026-08-08 01:47 | Merge feat/backfill-lane: make backfill a first-class thing the system knows about | I Mean I'm Just Saying | 38 | +3064 | -11 |
| 2026-08-08 01:46 | Make backfill a first-class thing the system knows about | I Mean I'm Just Saying | 38 | +3064 | -11 |
| 2026-08-07 20:32 | Merge feat/diarization-capture: capture speaker diarization, and stop e2e fixtures orphaning | I Mean I'm Just Saying | 44 | +2486 | -7 |
| 2026-08-07 20:27 | Stop e2e fixture binaries from outliving the run that spawned them | I Mean I'm Just Saying | 18 | +468 | -0 |
| 2026-08-07 09:35 | Capture speaker diarization while the audio still exists | I Mean I'm Just Saying | 27 | +2018 | -7 |
| 2026-08-06 23:15 | Track deleted posts, the way videos track availability | I Mean I'm Just Saying | 19 | +804 | -9 |
| 2026-08-06 22:52 | Add an account-free X fetcher via Nitter, and a scraping-method picker | I Mean I'm Just Saying | 11 | +810 | -63 |
| 2026-08-06 21:55 | X ingest: target the timeline sub-extractor, and treat cookies as optional | I Mean I'm Just Saying | 2 | +78 | -3 |
| 2026-08-06 21:23 | Fix 64-bit tweet id corruption in gallery-dl output parsing | I Mean I'm Just Saying | 2 | +64 | -3 |
| 2026-08-06 18:30 | Merge branch 'worktree-part-c-roster' | I Mean I'm Just Saying | 20 | +1868 | -108 |
| 2026-08-06 18:24 | Merge feat/widget-floorplan: widget builder floorplan board | I Mean I'm Just Saying | 15 | +1784 | -266 |
| 2026-08-06 18:23 | Make the widget builder a floorplan you can rearrange | I Mean I'm Just Saying | 15 | +1784 | -266 |
| 2026-08-06 18:17 | Keep a roster, so no listed video is ever lost | I Mean I'm Just Saying | 20 | +1868 | -108 |
| 2026-08-05 04:51 | Set every cadence in hours and days, not raw minutes | I Mean I'm Just Saying | 22 | +1514 | -266 |
| 2026-08-05 04:11 | Cover the full sweep, and don't trust an empty listing | I Mean I'm Just Saying | 5 | +291 | -1 |
| 2026-08-05 04:02 | Let one playlist fetch drive sync, missing, and deletion detection | I Mean I'm Just Saying | 10 | +602 | -84 |
| 2026-08-05 03:59 | Wrap AutoRefresh in Suspense — it broke the production build | I Mean I'm Just Saying | 1 | +12 | -3 |
| 2026-08-05 03:14 | Remove the loading.tsx skeletons — they broke 404s and never showed | I Mean I'm Just Saying | 9 | +51 | -148 |
| 2026-08-05 02:55 | Don't generate a report in the rename spec — it blocks the rename | I Mean I'm Just Saying | 1 | +5 | -2 |
| 2026-08-05 02:48 | Retry the refresh-report click in the actionable spec | I Mean I'm Just Saying | 1 | +15 | -7 |
| 2026-08-05 02:38 | Record the cacheComponents spike: measured, and the answer is no | I Mean I'm Just Saying | 1 | +55 | -0 |
| 2026-08-05 02:34 | Let the pulse notice a regenerated report | I Mean I'm Just Saying | 3 | +45 | -8 |
| 2026-08-05 02:18 | Stop the pulse endpoint from constructing the singletons it reports on | I Mean I'm Just Saying | 55 | +299 | -90 |
| 2026-08-05 01:49 | Keep the channel page intact when there is no report yet | I Mean I'm Just Saying | 5 | +275 | -36 |
| 2026-08-05 01:27 | Make auto-refresh ask before re-rendering, and stop generating reports in a GET | I Mean I'm Just Saying | 33 | +809 | -138 |
| 2026-08-05 01:04 | Add loading and error boundaries, and a client router cache | I Mean I'm Just Saying | 12 | +333 | -13 |
| 2026-08-05 00:48 | Stop walking the whole corpus to render a sidebar badge | I Mean I'm Just Saying | 25 | +789 | -142 |
| 2026-08-04 19:50 | Release export 0.8.4 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-08-04 19:08 | Tell the viewer a video is missing before we know why | I Mean I'm Just Saying | 27 | +1415 | -217 |
| 2026-08-04 16:42 | Release export 0.8.3 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-07-31 23:06 | Check the video still exists upstream before deleting its audio | I Mean I'm Just Saying | 12 | +742 | -33 |
| 2026-07-31 20:27 | Give the widget a "Needs cleaning" section that can actually reclaim the disk | I Mean I'm Just Saying | 7 | +234 | -21 |
| 2026-07-30 08:36 | Fix all 22 red e2e specs, and make the sharded route actually run | I Mean I'm Just Saying | 25 | +572 | -91 |
| 2026-07-30 08:36 | Restore editor/CHANGELOG.md — a test fixture had been committed over it | I Mean I'm Just Saying | 1 | +163 | -3 |
| 2026-07-30 01:09 | Attach the two-signals doc to the function that implements it | I Mean I'm Just Saying | 1 | +6 | -4 |
| 2026-07-30 01:05 | Reflow the lines prettier disagreed with, and de-duplicate one comment | I Mean I'm Just Saying | 2 | +25 | -15 |
| 2026-07-30 01:01 | Settle the pre-sweep decisions; abort the contention run on evidence | I Mean I'm Just Saying | 4 | +201 | -12 |
| 2026-07-30 00:27 | Retract the ~81 days and the "fifty times" claim, on the run's own data | I Mean I'm Just Saying | 3 | +287 | -58 |
| 2026-07-30 00:21 | Make tags real: generate them, score them, cover them | I Mean I'm Just Saying | 5 | +244 | -9 |
| 2026-07-29 23:51 | Price the sweep in chunks, and stop yielding to CPU workers | I Mean I'm Just Saying | 13 | +933 | -139 |
| 2026-07-29 16:23 | Merge docs/local-ai-roadmap: get the digest backfill to the starting line | I Mean I'm Just Saying | 117 | +18978 | -397 |
| 2026-07-29 16:23 | Record the live sweep run in STATE.md | I Mean I'm Just Saying | 1 | +19 | -0 |
| 2026-07-29 16:23 | Two bugs the live sweep found that no test would have | I Mean I'm Just Saying | 3 | +49 | -2 |
| 2026-07-29 16:17 | My new buttons' aria-labels collided with the card's own locator | I Mean I'm Just Saying | 1 | +14 | -6 |
| 2026-07-29 15:55 | Persist the sweep's SCOPE, not just the fact that one is armed | I Mean I'm Just Saying | 3 | +30 | -166 |
| 2026-07-29 15:53 | Progress counted already-fresh videos against a target that excluded them | I Mean I'm Just Saying | 1 | +10 | -1 |
| 2026-07-29 15:50 | Changelogs for the sweep controls, the threshold change, and the review path | I Mean I'm Just Saying | 2 | +4 | -0 |
| 2026-07-29 15:49 | Two bugs in the sweep controls that would have shown up on first use | I Mean I'm Just Saying | 2 | +38 | -8 |
| 2026-07-29 15:47 | Stop the sweep loop from spinning on a failure it cannot see | I Mean I'm Just Saying | 3 | +142 | -25 |
| 2026-07-29 15:43 | Correct the roadmap's gate list, and record what the measurements changed | I Mean I'm Just Saying | 3 | +221 | -50 |
| 2026-07-29 15:40 | The worst digest failures left no trace anywhere — persist them, then queue them | I Mean I'm Just Saying | 15 | +466 | -3 |
| 2026-07-29 15:31 | The sweep can now be started, survive a restart, pause, and yield the GPU | I Mean I'm Just Saying | 15 | +881 | -32 |
| 2026-07-29 15:20 | Wire the duplicate-cluster confirm path — it was built and never called | I Mean I'm Just Saying | 4 | +241 | -9 |
| 2026-07-29 15:20 | Lower the duplicate near-threshold to 0.35, on a bracketed measurement | I Mean I'm Just Saying | 1 | +27 | -1 |
| 2026-07-29 15:20 | Price the digest backfill in audio-hours, and find out the levers are small | I Mean I'm Just Saying | 2 | +455 | -0 |
| 2026-07-29 15:19 | Digest cluster sharing was dead for 14.5% of the corpus — the half it was for | I Mean I'm Just Saying | 5 | +301 | -12 |
| 2026-07-29 15:01 | Ship the digest layer: build, page tree, and the viewer's third panel | I Mean I'm Just Saying | 23 | +2049 | -58 |
| 2026-07-27 06:30 | Record the Stage B2 verification sweep | I Mean I'm Just Saying | 1 | +12 | -1 |
| 2026-07-27 06:01 | Record the 102-video digest validation run | I Mean I'm Just Saying | 2 | +158 | -12 |
| 2026-07-27 05:06 | Fix the pilot's "un-created job": a pre-hydration lost click | I Mean I'm Just Saying | 2 | +232 | -1 |
| 2026-07-27 04:46 | Per-video digest review panel — make the layer inspectable | I Mean I'm Just Saying | 5 | +682 | -0 |
| 2026-07-27 04:40 | Settings: a Digest section that actually exists | I Mean I'm Just Saying | 5 | +472 | -10 |
| 2026-07-27 04:22 | Digest: ship the measured-best defaults, and make the counters honest | I Mean I'm Just Saying | 12 | +456 | -136 |
| 2026-07-27 04:09 | Corpus-wide duplicate detection: blocking, review queue, alignment | I Mean I'm Just Saying | 19 | +2271 | -217 |
| 2026-07-27 04:08 | Digest layer Stage B1: engine registry, batch runner, guards, e2e | I Mean I'm Just Saying | 28 | +4412 | -28 |
| 2026-07-26 08:47 | Digest layer: engine registry, artifact + override model, parser guards, batch | I Mean I'm Just Saying | 35 | +4742 | -58 |
| 2026-07-26 05:21 | Add the local-AI derived-corpus roadmap and its memory system | I Mean I'm Just Saying | 5 | +1033 | -0 |
| 2026-07-26 02:41 | Merge branch 'feat/replace-auto-captions' | I Mean I'm Just Saying | 27 | +1801 | -47 |
| 2026-07-26 02:41 | Replace YouTube auto-captions with our own AI transcripts (opt-in, lowest priority) | I Mean I'm Just Saying | 27 | +1801 | -47 |
| 2026-07-26 02:35 | Merge branch 'feat/social-posts-corpus' | I Mean I'm Just Saying | 71 | +7497 | -76 |
| 2026-07-26 02:35 | Social posts (X/Twitter + Bluesky) as a parallel corpus to transcripts | I Mean I'm Just Saying | 71 | +7497 | -76 |
| 2026-07-24 22:18 | Release export 0.8.2 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-07-24 22:14 | Merge branch 'feat/dashboard-cockpit' | I Mean I'm Just Saying | 31 | +1838 | -349 |
| 2026-07-24 22:14 | Dashboard mission-control cockpit + URL-first onboarding + persisted pause | I Mean I'm Just Saying | 31 | +1838 | -349 |
| 2026-07-22 15:00 | Merge branch 'main' into worktree-feat+byo-ai-corpus | I Mean I'm Just Saying | 67 | +5891 | -252 |
| 2026-07-22 15:00 | Ask chat: clickable precise-moment report citations — [n @ mm:ss] + a persisted source registry | I Mean I'm Just Saying | 15 | +772 | -157 |
| 2026-07-22 14:18 | Channel-group chips v2: uniform responsive chips + per-group inline flag | I Mean I'm Just Saying | 10 | +389 | -15 |
| 2026-07-22 04:33 | Channel-group filters: wrapping chips with tri-state group checkboxes | I Mean I'm Just Saying | 5 | +352 | -43 |
| 2026-07-22 04:22 | Configurable cookies-from-browser: cookie modes, per-channel overrides, Needs-cookies bucket | I Mean I'm Just Saying | 30 | +1131 | -52 |
| 2026-07-22 04:02 | Merge worktree-mcp-token-efficiency: MCP compact base-links + dumb-extractor sweep batches | I Mean I'm Just Saying | 8 | +578 | -58 |
| 2026-07-22 03:58 | MCP: compact base-links for the agent pipeline + cheap dumb-extractor sweeps | I Mean I'm Just Saying | 8 | +578 | -58 |
| 2026-07-22 03:50 | Merge feat/channel-site-membership: channel form site membership + group selection | I Mean I'm Just Saying | 12 | +671 | -46 |
| 2026-07-22 03:50 | Channel form: site membership + group selection | I Mean I'm Just Saying | 12 | +671 | -46 |
| 2026-07-21 18:42 | Merge feat/mcp-cite-link-open-link: MCP cite-and-link output, subagent-compacted sweeps, and open_link | I Mean I'm Just Saying | 11 | +2339 | -81 |
| 2026-07-21 18:42 | MCP: cite-and-link output, subagent-compacted sweeps, and open_link | I Mean I'm Just Saying | 11 | +2339 | -81 |
| 2026-07-21 03:02 | Release export 0.8.0 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-07-21 02:48 | Merge worktree-feat+byo-ai-corpus: MCP runtime-switchable source + group/multi-channel sweep scoping | I Mean I'm Just Saying | 10 | +1593 | -151 |
| 2026-07-21 02:48 | MCP: runtime-switchable data source + group/multi-channel sweep scoping | I Mean I'm Just Saying | 10 | +1593 | -151 |
| 2026-07-20 21:54 | Merge worktree-feat+byo-ai-corpus: MCP corpus sweeping + AI rate limiting | I Mean I'm Just Saying | 8 | +879 | -27 |
| 2026-07-20 21:54 | MCP: first-class corpus sweeping — sweep prompt, pageable + alias-aware search, batch windowed reads | I Mean I'm Just Saying | 8 | +879 | -27 |
| 2026-07-20 19:36 | Merge feat/widget-sync-readouts: widget Sync button + last-sync/scheduler readouts | I Mean I'm Just Saying | 9 | +488 | -14 |
| 2026-07-20 19:36 | Widget: Sync button + last-sync & scheduler readouts (configurable) | I Mean I'm Just Saying | 9 | +488 | -14 |
| 2026-07-20 15:23 | Ask chat: client-side rate limiting — pace requests, honour retry hints, self-tune | I Mean I'm Just Saying | 11 | +975 | -46 |
| 2026-07-20 06:44 | Gitignore: match the generated export/public dirs when they're worktree symlinks | I Mean I'm Just Saying | 1 | +9 | -5 |
| 2026-07-20 06:43 | Ask chat: integrated grounding workspace — pick the AI target, sweep any size, save & resume | I Mean I'm Just Saying | 25 | +2274 | -227 |
| 2026-07-19 20:20 | Ask chat: whole-corpus "sweep" — batch a search into one running report | I Mean I'm Just Saying | 14 | +1143 | -53 |
| 2026-07-18 23:38 | Ask chat: fix silent answer truncation + add a debug export | I Mean I'm Just Saying | 16 | +623 | -25 |
| 2026-07-17 02:01 | Ask chat: clickable [n] citations + composer/copy niceties | I Mean I'm Just Saying | 6 | +124 | -14 |
| 2026-07-17 01:26 | Ask chat: opt-in Report mode (model-maintained living document) | I Mean I'm Just Saying | 13 | +704 | -27 |
| 2026-07-16 22:27 | Ask chat: auto-ground in the live shared search (retire the handoff) | I Mean I'm Just Saying | 9 | +250 | -200 |
| 2026-07-16 21:45 | Unify search + Ask into one workspace shell (persistent search bar) | I Mean I'm Just Saying | 14 | +3196 | -2698 |
| 2026-07-16 20:39 | Ask chat: pass the whole search to the AI via tiered grounding | I Mean I'm Just Saying | 6 | +107 | -10 |
| 2026-07-16 20:33 | Ask chat: regenerate, edit & resend, per-answer attribution | I Mean I'm Just Saying | 7 | +94 | -12 |
| 2026-07-16 20:26 | Ask chat: fix must-fix UX dead-ends + first-use friction | I Mean I'm Just Saying | 6 | +58 | -25 |
| 2026-07-16 20:19 | Ask chat: fix context ballooning ("trapped in context") | I Mean I'm Just Saying | 9 | +293 | -54 |
| 2026-07-18 00:22 | Audio-check: e2e coverage for the adaptive probe interval | I Mean I'm Just Saying | 3 | +66 | -2 |
| 2026-07-18 00:16 | parakeet-stitch: validate cached window JSON before reusing it | I Mean I'm Just Saying | 1 | +16 | -1 |
| 2026-07-17 22:40 | Audio-check: adaptive (AIMD) probe interval | I Mean I'm Just Saying | 5 | +281 | -6 |
| 2026-07-16 05:34 | Release export 0.7.6 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-07-16 05:34 | Add setup docs | I Mean I'm Just Saying | 2 | +287 | -5 |
| 2026-07-09 04:21 | Ask chat: drill into a hit — read the surrounding transcript on demand | I Mean I'm Just Saying | 18 | +1011 | -151 |
| 2026-07-09 00:46 | Ask chat: hand a search's results to the AI as pinned grounding | I Mean I'm Just Saying | 10 | +690 | -35 |
| 2026-07-08 03:05 | Release export 0.7.5 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-07-07 20:03 | Ask chat: alias-aware search + saved/resumable/editable context | I Mean I'm Just Saying | 11 | +801 | -192 |
| 2026-07-07 18:55 | Merge branch 'worktree-alias-suggestions': fix multi-word + regex-mode alias matching | I Mean I'm Just Saying | 5 | +147 | -13 |
| 2026-07-07 18:55 | Fix alias matching: multi-word triggers + regex-mode literals | I Mean I'm Just Saying | 5 | +147 | -13 |
| 2026-07-07 17:05 | Release export 0.7.4 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-07-07 16:59 | Docker export build: parallel per-site container builds + serial deploy | I Mean I'm Just Saying | 17 | +951 | -42 |
| 2026-07-07 15:19 | Overhaul /ask: agentic multi-step retrieval, animated feedback, Markdown | I Mean I'm Just Saying | 22 | +2339 | -357 |
| 2026-07-07 15:12 | Release editor 0.7.3 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-07-07 13:41 | Release export 0.7.3 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-07-07 05:36 | Incremental export build: skip unchanged channels | I Mean I'm Just Saying | 8 | +630 | -81 |
| 2026-07-07 04:12 | Merge branch 'worktree-alias-suggestions': gitignore generated search-aliases.json | I Mean I'm Just Saying | 1 | +1 | -0 |
| 2026-07-07 04:12 | Gitignore generated export/public/search-aliases.json | I Mean I'm Just Saying | 1 | +1 | -0 |
| 2026-07-07 04:09 | Redesign /downloads as per-channel catalog cards | I Mean I'm Just Saying | 3 | +180 | -58 |
| 2026-07-07 03:53 | Release export 0.7.1 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-07-07 03:47 | Fix /ask retrieval: drive the real search engine instead of a crude shard scan | I Mean I'm Just Saying | 6 | +431 | -168 |
| 2026-07-07 02:49 | Merge branch 'worktree-alias-suggestions' | I Mean I'm Just Saying | 19 | +1267 | -2 |
| 2026-07-07 02:44 | Add search alias suggestions (global + per-site) | I Mean I'm Just Saying | 19 | +1267 | -2 |
| 2026-07-07 02:16 | Merge branch 'main' into worktree-feat+archive-downloads | I Mean I'm Just Saying | 2 | +3 | -3 |
| 2026-07-07 02:16 | gitignore generated public files: corpus.json, llms.txt, robots.txt, sitemap.xml | I Mean I'm Just Saying | 1 | +4 | -0 |
| 2026-07-07 02:03 | Release export 0.7.0 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-07-07 02:02 | Rename the worker | I Mean I'm Just Saying | 1 | +2 | -2 |
| 2026-07-07 01:45 | Merge branch 'main' into worktree-feat+archive-downloads | I Mean I'm Just Saying | 26 | +3100 | -1 |
| 2026-07-07 01:43 | Upload oversize archives to R2 via S3 multipart, not wrangler | I Mean I'm Just Saying | 6 | +505 | -36 |
| 2026-07-07 01:39 | Add in-browser bring-your-own-key AI chat (/ask) | I Mean I'm Just Saying | 5 | +851 | -0 |
| 2026-07-07 01:34 | Add /use-with-ai page + copy-for-AI buttons (player & search) | I Mean I'm Just Saying | 7 | +290 | -0 |
| 2026-07-07 01:19 | Add MCP server (mcp/) exposing the archive to Claude Code / any MCP client | I Mean I'm Just Saying | 10 | +1282 | -0 |
| 2026-07-07 01:10 | Add machine-readable AI-discovery surface (llms.txt/corpus.json) + shared transcript→markdown | I Mean I'm Just Saying | 7 | +682 | -1 |
| 2026-07-06 17:03 | Release export 0.6.4 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-07-06 14:51 | Merge branch 'main' into worktree-feat+archive-downloads | I Mean I'm Just Saying | 4 | +85 | -10 |
| 2026-07-06 14:43 | Merge branch 'fix/theme-persist-on-reload' | I Mean I'm Just Saying | 4 | +85 | -10 |
| 2026-07-06 14:42 | Fix: persist theme on reload (editor always loaded light until toggled) | I Mean I'm Just Saying | 4 | +85 | -10 |
| 2026-07-06 14:35 | Add r2-proxy Worker: serve R2 archives on free workers.dev (no custom domain) | I Mean I'm Just Saying | 10 | +1210 | -46 |
| 2026-07-05 19:10 | R2 archive downloads: Cache-Control on uploads + Cloudflare deploy/security guide | I Mean I'm Just Saying | 4 | +206 | -1 |
| 2026-07-04 17:46 | Release export 0.6.3 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-07-04 17:34 | Merge main into feat/archive-downloads (changelog union) | I Mean I'm Just Saying | 10 | +598 | -172 |
| 2026-07-04 17:22 | Overflow oversize archives to R2; per-channel only; per-site Duplicates toggle | I Mean I'm Just Saying | 18 | +349 | -124 |
| 2026-07-04 14:07 | Release export 0.6.2 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-07-04 12:43 | Merge perf: memoize search result cards & hit rows | I Mean I'm Just Saying | 3 | +72 | -37 |
| 2026-07-04 12:42 | perf: memoize search result cards & hit rows to stop scroll re-render churn | I Mean I'm Just Saying | 3 | +72 | -37 |
| 2026-07-04 12:09 | Merge feat/widget-builder-actionable: needs-work list, actions, in-place settings gear | I Mean I'm Just Saying | 8 | +523 | -134 |
| 2026-07-04 12:09 | Widget: needs-work channel list, more actions, in-place settings gear | I Mean I'm Just Saying | 8 | +523 | -134 |
| 2026-07-04 12:06 | Release export 0.6.1 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-07-03 17:13 | Merge feat: downloadable transcript & live-chat archive zips | I Mean I'm Just Saying | 26 | +820 | -25 |
| 2026-07-03 08:01 | Add downloadable transcript & live-chat archive zips | I Mean I'm Just Saying | 26 | +820 | -25 |
| 2026-07-03 07:18 | Merge feat/channel-rename e2e fixup 2 | I Mean I'm Just Saying | 1 | +3 | -1 |
| 2026-07-03 07:18 | e2e: refill rename fields before second submit (React 19 form reset) | I Mean I'm Just Saying | 1 | +3 | -1 |
| 2026-07-03 07:15 | Merge feat/channel-rename e2e fixup | I Mean I'm Just Saying | 1 | +2 | -1 |
| 2026-07-03 07:15 | e2e: relax rename URL assertion to allow ?site= query | I Mean I'm Just Saying | 1 | +2 | -1 |
| 2026-07-03 07:13 | Merge feat/channel-rename: change a channel's slug from the Danger zone | I Mean I'm Just Saying | 11 | +582 | -10 |
| 2026-07-03 07:13 | Add channel slug rename (Danger zone, full state migration) | I Mean I'm Just Saying | 11 | +582 | -10 |
| 2026-07-03 05:16 | Merge feat/queue-diagnostics-page: Queue page to see & force-release stuck jobs | I Mean I'm Just Saying | 12 | +716 | -1 |
| 2026-07-03 05:15 | Add Queue diagnostics page: see & force-release stuck jobs | I Mean I'm Just Saying | 12 | +716 | -1 |
| 2026-07-03 04:49 | Jobs page: ULID ids, pagination, and log retention | I Mean I'm Just Saying | 13 | +598 | -162 |
| 2026-07-03 04:32 | Auto-queue policy editor: add a "move to top" button | I Mean I'm Just Saying | 3 | +88 | -0 |
| 2026-07-03 03:35 | Merge feat/kick-vod-playback: Kick VOD playback + VOD-expiry indicators | I Mean I'm Just Saying | 19 | +500 | -7 |
| 2026-07-03 03:35 | Add Kick VOD playback + VOD-expiry indicators | I Mean I'm Just Saying | 19 | +500 | -7 |
| 2026-07-02 16:51 | Fix three flaky/broken e2e tests: charts hydration, sites nav, PWA sw.js staging | I Mean I'm Just Saying | 4 | +43 | -8 |
| 2026-07-02 15:21 | Phase 6b: demoted hub stats strip + per-site offline manager | I Mean I'm Just Saying | 3 | +189 | -0 |
| 2026-07-02 15:16 | Phase 6b: provenance accent on search result cards | I Mean I'm Just Saying | 2 | +42 | -3 |
| 2026-07-02 14:42 | Phase 8: real two-origin e2e — cross-origin CORS + service-worker offline | I Mean I'm Just Saying | 5 | +317 | -0 |
| 2026-07-02 13:41 | Phase 6b: provenance accent in the channel filter | I Mean I'm Just Saying | 3 | +14 | -1 |
| 2026-07-02 13:39 | Phase 6b: the archive shelf — designed hub hero + provenance chrome | I Mean I'm Just Saying | 8 | +256 | -110 |
| 2026-07-02 06:28 | Phase 7: hub service worker + origin-aware offline cache | I Mean I'm Just Saying | 3 | +272 | -24 |
| 2026-07-02 06:23 | Phase 8 (core): hub federation e2e — cross-origin browse + search verified | I Mean I'm Just Saying | 5 | +251 | -3 |
| 2026-07-02 06:12 | Phase 6d: hub-parent indicator + editor pwa/hubUrl fields | I Mean I'm Just Saying | 3 | +48 | -2 |
| 2026-07-02 06:09 | Phase 6c: hub build + page — INSTANCE_MODE=hub renders the federated shelf | I Mean I'm Just Saying | 7 | +276 | -1 |
| 2026-07-02 06:02 | Phase 6b: MultiSiteDataProvider — merge many origins into one search view | I Mean I'm Just Saying | 2 | +257 | -10 |
| 2026-07-02 05:57 | Phase 6a: PWA opt-in — dumb-by-default site instances | I Mean I'm Just Saying | 5 | +60 | -8 |
| 2026-07-02 05:38 | Phase 5: client site registry for the federated hub | I Mean I'm Just Saying | 1 | +357 | -0 |
| 2026-07-02 05:33 | Fix export build: exclude out/ from tsconfig type-check | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-07-02 04:56 | Add "Skip data rebuild" option to Build static export | I Mean I'm Just Saying | 6 | +40 | -3 |
| 2026-07-02 04:19 | Release export 0.5.1 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-07-02 04:17 | Merge: default export to the neutral base theme (pre-theme look) | I Mean I'm Just Saying | 9 | +49 | -29 |
| 2026-07-02 04:17 | Default export to the neutral base theme (pre-theme look) | I Mean I'm Just Saying | 9 | +49 | -29 |
| 2026-07-02 03:57 | Gate the footer "Offline" link behind the per-site pwa flag | I Mean I'm Just Saying | 1 | +11 | -6 |
| 2026-07-02 03:47 | Phase 4: stable channelKey for multi-origin channel selection | I Mean I'm Just Saying | 2 | +138 | -107 |
| 2026-07-02 03:41 | Phase 3: SearchDataContext provider (data source behind context) | I Mean I'm Just Saying | 3 | +51 | -6 |
| 2026-07-02 03:35 | gitignore generated /export/public/site.json + _headers | I Mean I'm Just Saying | 1 | +2 | -0 |
| 2026-07-02 03:35 | Phase 2: origin-aware client caches (federation-ready) | I Mean I'm Just Saying | 7 | +166 | -80 |
| 2026-07-02 03:23 | Release export 0.5.0 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-07-02 03:22 | Phase 1: serve /site.json federation contract + CORS headers | I Mean I'm Just Saying | 6 | +185 | -3 |
| 2026-07-01 05:16 | Theme: make the whole family theme-aware + rename Terminal→Selenized + distinct per-family voice | I Mean I'm Just Saying | 122 | +1111 | -1017 |
| 2026-07-01 03:56 | Merge fix/odysee-player-stale-cache: Odysee videos no longer open in the YouTube player (self-healing IndexedDB cache via DB_VERSION bump + platform-guarded PlayerProvider) | I Mean I'm Just Saying | 4 | +233 | -5 |
| 2026-07-01 03:54 | Merge feat/export-pwa-offline-search: installable PWA + service-worker offline shard cache + FlexSearch web-worker off-main-thread index & offline search on export sites | I Mean I'm Just Saying | 22 | +1279 | -2 |
| 2026-07-01 03:54 | Merge feat/cleanup-page-and-colorful-status: dedicated Cleanup page + colorful semantic badges/alerts + per-video truncated-check opt-out + widget cleaning indicator | I Mean I'm Just Saying | 29 | +1368 | -37 |
| 2026-07-01 01:48 | Add FlexSearch web-worker index: off-main-thread build + instant offline search | I Mean I'm Just Saying | 8 | +550 | -22 |
| 2026-07-01 01:31 | Add PWA install + opt-in offline transcript search to export sites | I Mean I'm Just Saying | 16 | +751 | -2 |
| 2026-06-30 22:49 | Add Cleanup page, colorful semantic badges/alerts, per-video truncated-check opt-out | I Mean I'm Just Saying | 29 | +1368 | -37 |
| 2026-06-30 18:51 | Merge redesign/phase-0-foundation: family-wide UI redesign (Phases 0-5) | I Mean I'm Just Saying | 72 | +5960 | -1481 |
| 2026-06-30 18:43 | redesign Phase 5: Terminal + Swiss themes + a theme-family picker (final phase) | I Mean I'm Just Saying | 9 | +316 | -5 |
| 2026-06-30 17:59 | redesign Phase 4: StreamActionLog onto the kit + optional per-site brand accent | I Mean I'm Just Saying | 10 | +97 | -11 |
| 2026-06-30 17:14 | redesign Phase 3: editor command-first cockpit (cmdk palette, shared nav, live dashboard, Sonner) | I Mean I'm Just Saying | 12 | +419 | -301 |
| 2026-06-30 16:05 | Merge branch 'main' into redesign/phase-0-foundation | I Mean I'm Just Saying | 35 | +1044 | -37 |
| 2026-06-30 14:59 | Merge feat/download-format-and-duration-guard: download-time short-audio guard + selectable/per-source download format (Odysee -> original) | I Mean I'm Just Saying | 35 | +1044 | -37 |
| 2026-06-30 14:59 | e2e + changelog: download-time guard + selectable format | I Mean I'm Just Saying | 5 | +252 | -9 |
| 2026-06-30 14:44 | Download-time duration guard: failed-short-audio + shortAudio surfacing | I Mean I'm Just Saying | 20 | +484 | -10 |
| 2026-06-30 14:28 | Download format: selectable + platform-aware default (Odysee -> original) | I Mean I'm Just Saying | 13 | +309 | -19 |
| 2026-06-30 06:37 | redesign Phase 2: public Archive identity, kit-migrated search, family nav, FOUC fix | I Mean I'm Just Saying | 23 | +602 | -297 |
| 2026-06-30 04:33 | redesign Phase 1: shared shadcn kit + full token contract | I Mean I'm Just Saying | 28 | +3978 | -734 |
| 2026-06-30 04:09 | redesign Phase 0: shared theme foundation (tokens, fonts, no-FOUC theming) | I Mean I'm Just Saying | 15 | +620 | -205 |
| 2026-06-30 03:01 | fix(audio-check): keep complete-but-malformed downloads instead of looping re-downloads | I Mean I'm Just Saying | 13 | +244 | -16 |
| 2026-06-30 02:07 | Merge feat/bulk-fix-incomplete-transcripts: bulk clear + batch re-fix for truncated transcripts | I Mean I'm Just Saying | 14 | +744 | -46 |
| 2026-06-30 02:07 | Bulk-fix incomplete transcripts: e2e coverage + changelog | I Mean I'm Just Saying | 2 | +148 | -1 |
| 2026-06-30 02:07 | Bulk-fix incomplete transcripts: actionable + channel-page UI | I Mean I'm Just Saying | 4 | +212 | -14 |
| 2026-06-30 02:07 | Bulk-fix incomplete transcripts: shared helpers, actions, job plumbing | I Mean I'm Just Saying | 8 | +384 | -31 |
| 2026-06-29 14:00 | feat(deploy): rework deploy page with build-then-deploy, batch builds, build-mode toggle | I Mean I'm Just Saying | 18 | +1116 | -82 |
| 2026-06-29 13:16 | Merge refine/chart-presets: recent site-based combined presets | I Mean I'm Just Saying | 6 | +101 | -89 |
| 2026-06-29 13:16 | Rework chart presets: recent, site-based, combined; fix slam + render bug | I Mean I'm Just Saying | 6 | +101 | -89 |
| 2026-06-29 05:48 | Merge feat/incomplete-transcript-flag: detect & flag truncated transcripts | I Mean I'm Just Saying | 23 | +507 | -17 |
| 2026-06-29 05:47 | Add transcript coverage to public stats + charts | I Mean I'm Just Saying | 8 | +17 | -3 |
| 2026-06-29 05:47 | Detect & flag truncated transcripts in the editor | I Mean I'm Just Saying | 15 | +490 | -14 |
| 2026-06-29 05:00 | Merge chore/simplify-header: constant-size header on all pages | I Mean I'm Just Saying | 4 | +23 | -89 |
| 2026-06-29 05:00 | Simplify the hub header: one compact size on every page | I Mean I'm Just Saying | 4 | +23 | -89 |
| 2026-06-29 04:48 | Merge feat/hub-charts-redesign: preset chips + symlog charts explorer | I Mean I'm Just Saying | 18 | +1303 | -252 |
| 2026-06-29 04:48 | Rebuild hub charts: presets + symlog explorer for the skewed data | I Mean I'm Just Saying | 18 | +1303 | -252 |
| 2026-06-29 03:44 | Merge fix/masthead-no-reflow: masthead shrinks without page reflow | I Mean I'm Just Saying | 3 | +28 | -10 |
| 2026-06-29 03:44 | Homepage masthead shrinks without reflowing the page | I Mean I'm Just Saying | 3 | +28 | -10 |
| 2026-06-29 03:05 | Merge feat/hub-masthead-header: shrink-on-scroll wordmark masthead | I Mean I'm Just Saying | 10 | +198 | -69 |
| 2026-06-29 03:05 | feat(homepage): merge masthead into a shrink-on-scroll header | I Mean I'm Just Saying | 4 | +77 | -27 |
| 2026-06-29 02:49 | Auto-queue: bucketless rules union all buckets; auto-download resumes partials | I Mean I'm Just Saying | 6 | +121 | -42 |
| 2026-06-29 02:42 | Merge feat/hub-landing-iter3: Source fonts, minimal chrome, day/2-week Counts default | I Mean I'm Just Saying | 9 | +112 | -117 |
| 2026-06-29 02:42 | feat(homepage): Source fonts, minimal chrome, day/2-week Counts default | I Mean I'm Just Saying | 9 | +112 | -117 |
| 2026-06-29 01:55 | Merge feat/hub-cross-site-landing: cross-site landing hub + drop Markdown pages | I Mean I'm Just Saying | 29 | +1433 | -894 |
| 2026-06-29 01:55 | feat(homepage): cross-site landing hub + drop Markdown pages | I Mean I'm Just Saying | 29 | +1433 | -894 |
| 2026-06-26 20:26 | Merge refactor/job-queue-scheduler: unified scheduler + runPool, reorder & retry | I Mean I'm Just Saying | 27 | +1993 | -459 |
| 2026-06-26 19:59 | Phase 8: one-click retry + retry-all for failed jobs | I Mean I'm Just Saying | 7 | +234 | -1 |
| 2026-06-26 19:51 | Phase 7: reorder / promote a queued job from Active Jobs | I Mean I'm Just Saying | 6 | +242 | -0 |
| 2026-06-26 19:44 | Phase 6: run the auto-runner and whisperBatch on the shared runPool | I Mean I'm Just Saying | 3 | +180 | -178 |
| 2026-06-26 19:30 | Phase 5: unify the worker-pool waiter ordering with compareTier | I Mean I'm Just Saying | 2 | +63 | -15 |
| 2026-06-26 19:26 | Phase 4: delegate registry queue ordering to the scheduler | I Mean I'm Just Saying | 3 | +71 | -88 |
| 2026-06-26 19:02 | Phase 3: scheduler core + runPool primitive (behind the API) | I Mean I'm Just Saying | 4 | +693 | -0 |
| 2026-06-26 18:55 | Phase 2: collapse the runJobSpec switch into a replay-handler lookup | I Mean I'm Just Saying | 2 | +198 | -136 |
| 2026-06-26 18:53 | Phase 1: consolidate per-kind job metadata into one table | I Mean I'm Just Saying | 4 | +319 | -48 |
| 2026-06-26 17:49 | Merge fix/drain-all-eventloop-starvation: stop Drain-all event-loop starvation | I Mean I'm Just Saying | 3 | +67 | -1 |
| 2026-06-25 17:38 | Fix "Drain all" hang: stop the auto-runner's drain-wait from spinning the event loop | I Mean I'm Just Saying | 3 | +67 | -1 |
| 2026-06-25 12:21 | Merge feat/video-persistence: keep-latest retention, saved-video store, backups & first-class UI | I Mean I'm Just Saying | 48 | +3791 | -57 |
| 2026-06-25 05:34 | Phase 5: first-class video-persistence UI (Saved Videos area, retention controls, per-video persist) | I Mean I'm Just Saying | 20 | +1206 | -81 |
| 2026-06-25 05:12 | Phase 4: saved-video backups (rsync mirror + manifest + verify) | I Mean I'm Just Saying | 14 | +830 | -2 |
| 2026-06-25 04:58 | Phase 3: saved-video store (separate dir/disk) + retention pruning | I Mean I'm Just Saying | 14 | +724 | -27 |
| 2026-06-25 04:33 | Phase 2: per-download persistence rule engine + app-side extraction | I Mean I'm Just Saying | 14 | +705 | -47 |
| 2026-06-25 04:15 | Phase 1: per-channel keep-latest retention + deletion pinning | I Mean I'm Just Saying | 14 | +429 | -3 |
| 2026-06-25 02:13 | Merge feat/widget-control-buttons: opt-in widget controls (pause/drain) | I Mean I'm Just Saying | 7 | +118 | -19 |
| 2026-06-25 02:13 | Widget: optional Pause/Resume + Drain control buttons | I Mean I'm Just Saying | 7 | +118 | -19 |
| 2026-06-25 01:04 | Untrack export/public/duplicates.json so its .gitignore entry takes effect | I Mean I'm Just Saying | 1 | +0 | -2 |
| 2026-06-25 00:30 | Merge feat/pause-transcriptions-parakeet-segments: between-segment GPU release | I Mean I'm Just Saying | 7 | +151 | -28 |
| 2026-06-25 00:30 | Pause Transcriptions: stop parakeet jobs between segments to free the GPU | I Mean I'm Just Saying | 7 | +151 | -28 |
| 2026-06-24 01:40 | Merge fix/auto-transcribe-priority-and-drain: manual transcribe priority + Drain hang fix | I Mean I'm Just Saying | 8 | +284 | -11 |
| 2026-06-24 01:40 | Auto-transcribe: manual transcriptions preempt auto units; fix Drain hang | I Mean I'm Just Saying | 8 | +284 | -11 |
| 2026-06-23 22:48 | ignore duplicates.json | I Mean I'm Just Saying | 1 | +1 | -0 |
| 2026-06-23 18:36 | Merge feat/auto-queue-platform-backoff: auto-download shares the per-platform Sync queue | I Mean I'm Just Saying | 28 | +1193 | -93 |
| 2026-06-23 18:36 | Auto-queue: share the per-platform queue with manual Sync | I Mean I'm Just Saying | 20 | +697 | -78 |
| 2026-06-23 02:15 | Auto-queue: per-platform rate-limit backoff + subtitle progress | I Mean I'm Just Saying | 11 | +518 | -37 |
| 2026-06-23 01:31 | Fix Odysee videos opening in the YouTube player (stale IndexedDB cache) | I Mean I'm Just Saying | 4 | +235 | -5 |
| 2026-06-23 01:00 | Release export 0.4.1 | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-06-22 23:58 | Merge feat/homepage-hub: Archilyzer homepage hub (SSG) | I Mean I'm Just Saying | 44 | +1764 | -16 |
| 2026-06-22 22:48 | Fix editor build: keep node:fs out of the homepage client bundle | I Mean I'm Just Saying | 3 | +37 | -20 |
| 2026-06-22 22:39 | Fix homepage export build when no docs pages are authored | I Mean I'm Just Saying | 3 | +62 | -16 |
| 2026-06-22 21:45 | Add Archilyzer homepage hub (SSG) with editor config + cross-site charts | I Mean I'm Just Saying | 43 | +1701 | -16 |
| 2026-06-22 21:11 | git commit when cutting versions | I Mean I'm Just Saying | 5 | +140 | -2 |
| 2026-06-22 20:16 | Auto-queue: add Drain control; verify Drain/Cancel on runner jobs | I Mean I'm Just Saying | 5 | +101 | -5 |
| 2026-06-22 20:01 | Fix paused (force-killed) transcription wrongly recorded as failed | I Mean I'm Just Saying | 3 | +98 | -13 |
| 2026-06-22 19:59 | Auto-queue: respect disabled workers; label runner in Active Jobs | I Mean I'm Just Saying | 7 | +149 | -18 |
| 2026-06-22 19:09 | Add automatic dynamic-priority queue (auto-transcribe / auto-download) | I Mean I'm Just Saying | 23 | +3010 | -87 |
| 2026-06-22 02:48 | Add download/transcription progress charts (content added over time) | I Mean I'm Just Saying | 15 | +292 | -39 |
| 2026-06-22 02:04 | reworked granular scheduler UI | I Mean I'm Just Saying | 17 | +776 | -44 |
| 2026-06-20 00:58 | Make channel video-list filters combinable (intersection) + add Partial filter | I Mean I'm Just Saying | 5 | +211 | -56 |
| 2026-06-19 23:24 | Add ↑/↓ reordering of command bookmarks | I Mean I'm Just Saying | 5 | +147 | -2 |
| 2026-06-19 23:04 | Fix retry-bucket prefilter skipping partials with an audio-check snapshot | I Mean I'm Just Saying | 3 | +45 | -4 |
| 2026-06-19 21:20 | Suppress harmless Turbopack NFT "whole project traced" build warning | I Mean I'm Just Saying | 1 | +15 | -0 |
| 2026-06-19 20:09 | Merge branch 'active-jobs-drain-all' | I Mean I'm Just Saying | 6 | +148 | -2 |
| 2026-06-19 19:49 | Add "Drain all" spin-down and queued-job Cancel to /jobs/active | I Mean I'm Just Saying | 6 | +148 | -2 |
| 2026-06-19 19:39 | Compact bookmarks menu + management page, with batched job/widget/download work | I Mean I'm Just Saying | 47 | +2119 | -123 |
| 2026-06-19 03:25 | Add quick availability check, targeted full check, and availability history | I Mean I'm Just Saying | 17 | +816 | -32 |
| 2026-06-19 02:04 | Add persistent /jobs filters and persist archived-job metadata | I Mean I'm Just Saying | 8 | +654 | -133 |
| 2026-06-18 22:37 | Persist a default worker arrangement and disable workers on Stop | I Mean I'm Just Saying | 9 | +298 | -12 |
| 2026-06-18 20:34 | Stop and prevent downloads when disk space is low | I Mean I'm Just Saying | 12 | +296 | -5 |
| 2026-06-18 19:12 | Merge branch 'widget-popup' | I Mean I'm Just Saying | 3 | +28 | -2 |
| 2026-06-18 19:12 | Add "Open popup" button to the monitor widget builder | I Mean I'm Just Saying | 3 | +28 | -2 |
| 2026-06-18 18:45 | Add bulk audio removal + wrong-format audio sweep to channel selector | I Mean I'm Just Saying | 14 | +528 | -3 |
| 2026-06-18 18:46 | Merge branch 'fix-worktree-build-approval' | I Mean I'm Just Saying | 1 | +29 | -2 |
| 2026-06-18 18:46 | wt add: install deps with builds approved so fresh worktrees are clean | I Mean I'm Just Saying | 1 | +29 | -2 |
| 2026-06-18 18:39 | Merge branch 'monitor-widget' | I Mean I'm Just Saying | 12 | +879 | -93 |
| 2026-06-18 18:39 | Add read-only monitor widget and builder | I Mean I'm Just Saying | 12 | +879 | -93 |
| 2026-06-18 15:40 | Add bulk delete + clear-failed-markers to channel video selector | I Mean I'm Just Saying | 5 | +379 | -92 |
| 2026-06-18 13:11 | Pause audio-integrity downloads during the integrity probe | I Mean I'm Just Saying | 8 | +288 | -65 |
| 2026-06-15 01:53 | Update changelog | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-06-14 15:18 | Merge branch 'worktree-fix-nft-warning' | I Mean I'm Just Saying | 4 | +13 | -7 |
| 2026-06-14 15:18 | Fix parakeet Device=cpu still running on GPU | I Mean I'm Just Saying | 4 | +13 | -7 |
| 2026-06-14 08:19 | Merge branch 'worktree-charts-search-ui' | I Mean I'm Just Saying | 26 | +1184 | -558 |
| 2026-06-14 08:15 | Charts as a Search view + description/tags search + new chart dimensions | I Mean I'm Just Saying | 26 | +1184 | -558 |
| 2026-06-14 07:15 | Scheduled sync: per-channel auto-sync via cron heartbeat | I Mean I'm Just Saying | 25 | +1492 | -12 |
| 2026-06-14 06:30 | Transcription workers: resumable parakeet + pause + device (Phase 7) | I Mean I'm Just Saying | 14 | +407 | -52 |
| 2026-06-14 05:58 | Transcription workers: cross-reference Workers ↔ Active Jobs (Phase 6) | I Mean I'm Just Saying | 6 | +134 | -23 |
| 2026-06-14 05:38 | Transcription workers: auto-disable unreachable remotes (Phase 5) | I Mean I'm Just Saying | 7 | +92 | -10 |
| 2026-06-14 05:26 | Transcription workers: one slot per worker + remote protocol (Phase 4) | I Mean I'm Just Saying | 23 | +1017 | -134 |
| 2026-06-14 04:31 | Transcription workers: settings editor + Workers page (Phase 3) | I Mean I'm Just Saying | 12 | +1078 | -212 |
| 2026-06-14 04:12 | e2e: reset the global worker pool between specs | I Mean I'm Just Saying | 1 | +8 | -0 |
| 2026-06-14 03:25 | Transcription workers: data model + global pool scheduler (Phases 1–2) | I Mean I'm Just Saying | 16 | +906 | -253 |
| 2026-06-14 04:44 | Merge branch 'passive-auto-refresh' | I Mean I'm Just Saying | 9 | +226 | -23 |
| 2026-06-14 04:43 | Merge branch 'related-sites-footer' | I Mean I'm Just Saying | 15 | +498 | -8 |
| 2026-06-14 04:21 | Cross-site footer links between export sites | I Mean I'm Just Saying | 15 | +498 | -8 |
| 2026-06-14 04:19 | global passive auto-refresh on a configurable interval | I Mean I'm Just Saying | 9 | +226 | -23 |
| 2026-06-14 03:54 | worktree support: non-colliding ports for parallel dev/test | I Mean I'm Just Saying | 17 | +427 | -21 |
| 2026-06-14 02:56 | auto-refresh channel reports on a global debounce | I Mean I'm Just Saying | 16 | +423 | -29 |
| 2026-06-13 23:48 | parakeet ETA and task timer | I Mean I'm Just Saying | 7 | +90 | -11 |
| 2026-06-13 21:04 | reconstruct single video URL from filename when no metadata | I Mean I'm Just Saying | 6 | +72 | -11 |
| 2026-06-13 17:11 | parakeet stitch test | I Mean I'm Just Saying | 9 | +492 | -4 |
| 2026-06-13 01:46 | ETA | I Mean I'm Just Saying | 7 | +104 | -6 |
| 2026-06-10 02:23 | fix regressions | I Mean I'm Just Saying | 5 | +71 | -26 |
| 2026-06-09 16:12 | support multi-app / chough transcription | I Mean I'm Just Saying | 17 | +878 | -172 |
| 2026-06-09 14:46 | global parallel default and split metadata+filter pipeline | I Mean I'm Just Saying | 25 | +676 | -51 |
| 2026-06-08 02:28 | global social links | I Mean I'm Just Saying | 14 | +451 | -142 |
| 2026-06-07 16:03 | one-off video downloads | I Mean I'm Just Saying | 5 | +164 | -4 |
| 2026-06-05 22:32 | filters for duplicates page | I Mean I'm Just Saying | 5 | +540 | -58 |
| 2026-06-05 00:49 | Duplicate detection | I Mean I'm Just Saying | 19 | +1608 | -8 |
| 2026-06-04 22:35 | cleanup disk space estimate | I Mean I'm Just Saying | 10 | +163 | -14 |
| 2026-06-02 17:42 | transcript switching | I Mean I'm Just Saying | 11 | +331 | -6 |
| 2026-06-01 20:38 | handle non-standard vtt names | I Mean I'm Just Saying | 6 | +124 | -16 |
| 2026-06-01 01:30 | Show full yt-dlp logs; drive progress bars from a progress template | I Mean I'm Just Saying | 3 | +109 | -0 |
| 2026-05-31 22:45 | global multi-site selector | I Mean I'm Just Saying | 18 | +543 | -153 |
| 2026-05-31 18:16 | Date filter | I Mean I'm Just Saying | 8 | +387 | -13 |
| 2026-05-31 03:28 | CHANGELOG and ignore export index | I Mean I'm Just Saying | 2 | +2 | -1 |
| 2026-05-31 02:23 | even more shard fixes | I Mean I'm Just Saying | 10 | +316 | -198 |
| 2026-05-30 21:00 | more shard fixes | I Mean I'm Just Saying | 12 | +375 | -56 |
| 2026-05-30 19:24 | fix shards | I Mean I'm Just Saying | 7 | +216 | -18 |
| 2026-05-30 06:55 | fix export-search tests | I Mean I'm Just Saying | 3 | +143 | -195 |
| 2026-05-30 06:01 | multi-site support | I Mean I'm Just Saying | 56 | +2478 | -1104 |
| 2026-05-30 04:03 | Fix single pipeline-skip transcribe false-detecting audio files with prefix | I Mean I'm Just Saying | 6 | +116 | -36 |
| 2026-05-30 02:52 | Global cleaning and space estimation | I Mean I'm Just Saying | 15 | +536 | -13 |
| 2026-05-28 17:55 | app-handled video directories | I Mean I'm Just Saying | 10 | +736 | -305 |
| 2026-05-28 03:15 | Twitch support | I Mean I'm Just Saying | 18 | +199 | -32 |
| 2026-05-27 03:26 | query builder for charts | I Mean I'm Just Saying | 7 | +343 | -94 |
| 2026-05-27 02:50 | more chart improvements | I Mean I'm Just Saying | 8 | +120 | -38 |
| 2026-05-27 01:44 | charts polish | I Mean I'm Just Saying | 9 | +487 | -148 |
| 2026-05-27 00:49 | fix stale test | I Mean I'm Just Saying | 1 | +2 | -2 |
| 2026-05-27 00:42 | charts | I Mean I'm Just Saying | 45 | +3367 | -4 |
| 2026-05-26 22:40 | per-operation queue | I Mean I'm Just Saying | 20 | +927 | -182 |
| 2026-05-26 18:44 | Move export build to deploy page | I Mean I'm Just Saying | 5 | +82 | -33 |
| 2026-05-26 16:28 | add browse mode to see all videos without a search | I Mean I'm Just Saying | 3 | +419 | -280 |
| 2026-05-25 23:47 | one-layer compact mode reverts don't show hits option | I Mean I'm Just Saying | 4 | +86 | -17 |
| 2026-05-25 22:41 | bump changelog | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-05-25 01:43 | collapsed embedded video view in channel view | I Mean I'm Just Saying | 3 | +147 | -6 |
| 2026-05-24 17:31 | unlisted bucket | I Mean I'm Just Saying | 13 | +143 | -19 |
| 2026-05-24 06:26 | Update release cut | I Mean I'm Just Saying | 5 | +96 | -5 |
| 2026-05-22 22:29 | 0.2.0 | I Mean I'm Just Saying | 2 | +2 | -0 |
| 2026-05-22 22:07 | compact changelogs more | I Mean I'm Just Saying | 2 | +23 | -52 |
| 2026-05-22 21:43 | more collapsible sections | I Mean I'm Just Saying | 4 | +130 | -10 |
| 2026-05-22 20:16 | Rework export search profiles | I Mean I'm Just Saying | 5 | +387 | -38 |
| 2026-05-22 19:26 | relative progress bar | I Mean I'm Just Saying | 9 | +189 | -90 |
| 2026-05-22 17:59 | fix virtual list gaps by wrapping cards as elements | I Mean I'm Just Saying | 3 | +148 | -231 |
| 2026-05-22 17:08 | fix virtual list gaps | I Mean I'm Just Saying | 1 | +64 | -31 |
| 2026-05-22 15:18 | virtual list gaps | I Mean I'm Just Saying | 1 | +21 | -12 |
| 2026-05-22 15:04 | virtualize big lists | I Mean I'm Just Saying | 8 | +614 | -156 |
| 2026-05-22 14:05 | exclude unavailable videos from actionable/undownloaded count | I Mean I'm Just Saying | 8 | +114 | -44 |
| 2026-05-22 12:51 | fix actionable page, make active/jobs badges not redundant | I Mean I'm Just Saying | 5 | +112 | -20 |
| 2026-05-22 11:59 | global actionable page | I Mean I'm Just Saying | 10 | +838 | -2 |
| 2026-05-22 03:37 | fix audio integrity checker and search matches | I Mean I'm Just Saying | 5 | +74 | -7 |
| 2026-05-21 19:42 | layered search improvements | I Mean I'm Just Saying | 7 | +298 | -11 |
| 2026-05-21 00:54 | Update buildIndex to stream and avoid OOM | I Mean I'm Just Saying | 3 | +202 | -133 |
| 2026-05-20 23:54 | fix unchecked audio integrity downloads | I Mean I'm Just Saying | 4 | +138 | -14 |
| 2026-05-20 22:51 | Layered search | I Mean I'm Just Saying | 14 | +2979 | -743 |
| 2026-05-20 15:59 | Style changes | I Mean I'm Just Saying | 3 | +18 | -3 |
| 2026-05-20 15:04 | Fix channel / video pipeline id collisions that broke menu nav | I Mean I'm Just Saying | 2 | +2 | -1 |
| 2026-05-20 14:29 | Fix false-negative audio integrity checks | I Mean I'm Just Saying | 3 | +56 | -18 |
| 2026-05-20 03:07 | Release/deploy UI | I Mean I'm Just Saying | 12 | +424 | -17 |
| 2026-05-20 02:18 | Remove extra CHANGELOG texts | I Mean I'm Just Saying | 2 | +0 | -10 |
| 2026-05-20 01:58 | Changelog UI | I Mean I'm Just Saying | 14 | +417 | -3 |
| 2026-05-20 01:33 | Sync all toggle, sorting, and CHANGELOGs | I Mean I'm Just Saying | 10 | +564 | -118 |
| 2026-05-20 00:32 | more UI improvements | I Mean I'm Just Saying | 8 | +426 | -156 |
| 2026-05-19 21:20 | Active jobs UI | I Mean I'm Just Saying | 4 | +202 | -0 |
| 2026-05-19 16:02 | Fix category change stale invalidation | I Mean I'm Just Saying | 1 | +32 | -2 |
| 2026-05-19 06:02 | New filter url handling | I Mean I'm Just Saying | 3 | +244 | -0 |
| 2026-05-19 05:43 | editor redesign | I Mean I'm Just Saying | 8 | +1276 | -14 |
| 2026-05-19 04:19 | transcode failure handling | I Mean I'm Just Saying | 7 | +178 | -19 |
| 2026-05-19 03:45 | export UI for live chats part 2 | I Mean I'm Just Saying | 16 | +1123 | -179 |
| 2026-05-19 02:10 | live chat video UI | I Mean I'm Just Saying | 4 | +180 | -14 |
| 2026-05-19 01:28 | bump subs schema version | I Mean I'm Just Saying | 2 | +18 | -1 |
| 2026-05-19 00:33 | settings.json.example | I Mean I'm Just Saying | 2 | +3 | -0 |
| 2026-05-19 00:31 | settings.json | I Mean I'm Just Saying | 1 | +1 | -1 |
| 2026-05-19 00:30 | Export live chat | I Mean I'm Just Saying | 9 | +799 | -11 |
| 2026-05-18 23:56 | defer search after filter/regex changes | I Mean I'm Just Saying | 2 | +75 | -0 |
| 2026-05-18 23:39 | Polish on the export app post-Chrissie Mayr | I Mean I'm Just Saying | 21 | +1419 | -28 |
| 2026-05-18 16:22 | .part bucket and resume, fix INVALID_STATE | I Mean I'm Just Saying | 12 | +467 | -52 |
| 2026-05-18 13:29 | retry pipelines | I Mean I'm Just Saying | 32 | +1485 | -274 |
| 2026-05-17 16:15 | Fix filename issue | I Mean I'm Just Saying | 3 | +50 | -2 |
| 2026-05-17 15:44 | odysee handling part 1 | I Mean I'm Just Saying | 10 | +141 | -133 |
| 2026-05-17 02:46 | smart odysee pipeline | I Mean I'm Just Saying | 15 | +1778 | -33 |
| 2026-05-17 01:20 | QOL: sync all, JSON preview, managed DL sleep | I Mean I'm Just Saying | 16 | +526 | -27 |
| 2026-05-16 19:10 | untranscribable tweaks | I Mean I'm Just Saying | 4 | +65 | -8 |
| 2026-05-16 03:21 | remove channel-level cookiesFromBrowser | I Mean I'm Just Saying | 7 | +17 | -27 |
| 2026-05-16 03:09 | rework dl to be managed | I Mean I'm Just Saying | 11 | +956 | -138 |
| 2026-05-15 23:31 | toggle channels in editor | I Mean I'm Just Saying | 12 | +190 | -8 |
| 2026-05-15 02:09 | subs, delete filter | I Mean I'm Just Saying | 24 | +1508 | -22 |
| 2026-05-12 18:06 | various fixes | I Mean I'm Just Saying | 34 | +1356 | -232 |
| 2026-05-12 03:06 | tweak design for tests | I Mean I'm Just Saying | 1 | +2 | -3 |
| 2026-05-12 01:06 | fix layout flip | I Mean I'm Just Saying | 3 | +206 | -111 |
| 2026-05-12 00:59 | Rethink UI | I Mean I'm Just Saying | 8 | +290 | -154 |
| 2026-05-11 03:23 | Add availability and fix reports OOM | I Mean I'm Just Saying | 27 | +1076 | -62 |
| 2026-05-11 01:57 | Redo UI | I Mean I'm Just Saying | 43 | +4003 | -1017 |
| 2026-05-06 20:25 | Make page loading more efficient | I Mean I'm Just Saying | 38 | +1519 | -1254 |
| 2026-05-05 22:59 | hybrid channel improvements | I Mean I'm Just Saying | 19 | +548 | -152 |
| 2026-05-04 21:52 | All channels toggle | I Mean I'm Just Saying | 1 | +32 | -0 |
| 2026-05-03 20:46 | even more editor features | I Mean I'm Just Saying | 27 | +772 | -181 |
| 2026-05-02 13:35 | more editor features | I Mean I'm Just Saying | 48 | +2885 | -262 |
| 2026-04-28 04:56 | chore(editor): drop cypress, finalise playwright migration | I Mean I'm Just Saying | 35 | +251 | -1575 |
| 2026-04-28 04:53 | test(editor): migrate jobs and queue specs to playwright | I Mean I'm Just Saying | 18 | +240 | -286 |
| 2026-04-28 04:45 | test(editor): migrate action specs to playwright | I Mean I'm Just Saying | 20 | +312 | -324 |
| 2026-04-28 04:39 | test(editor): migrate read-only specs to playwright | I Mean I'm Just Saying | 19 | +328 | -346 |
| 2026-04-28 04:30 | chore(editor): scaffold playwright alongside cypress | I Mean I'm Just Saying | 6 | +165 | -5 |
| 2026-04-28 03:54 | feat(editor): named job queues with sequential pipelines | I Mean I'm Just Saying | 21 | +748 | -213 |
| 2026-04-28 03:35 | feat(editor): show originating channel on jobs and auto-refresh the jobs list | I Mean I'm Just Saying | 9 | +119 | -2 |
| 2026-04-28 03:31 | feat(editor): show playlist and archive counts on channel list | I Mean I'm Just Saying | 6 | +127 | -9 |
| 2026-04-28 03:29 | feat(editor): hide system paths from dashboard, collapse on settings | I Mean I'm Just Saying | 3 | +44 | -26 |
| 2026-04-28 03:23 | feat(editor): use site/header title from settings.json for editor layout | I Mean I'm Just Saying | 3 | +66 | -13 |
| 2026-04-28 03:16 | fix(ytdlp): treat exit code 101 as success and update last-sync timestamps | I Mean I'm Just Saying | 5 | +77 | -2 |
| 2026-04-27 22:33 | Add -t sleep to transcript download and fix tailwind sourcing | I Mean I'm Just Saying | 3 | +10 | -2 |
| 2026-04-27 04:30 | feat(editor): cancel running jobs and fixed-height log boxes | I Mean I'm Just Saying | 10 | +214 | -14 |
| 2026-04-27 01:57 | feat(editor): jobs viewer, settings UI, dashboard polish | I Mean I'm Just Saying | 19 | +898 | -113 |
| 2026-04-27 01:42 | feat(editor): whisper transcription queue with fake-binary e2e tests | I Mean I'm Just Saying | 11 | +311 | -4 |
| 2026-04-27 01:30 | feat(editor): per-channel yt-dlp pipeline with fake-binary e2e tests | I Mean I'm Just Saying | 8 | +703 | -4 |
| 2026-04-27 01:22 | feat(editor): build static export from UI with streaming logs and e2e tests | I Mean I'm Just Saying | 10 | +528 | -4 |
| 2026-04-27 01:08 | feat(editor): channel list/create/edit/delete UI with e2e tests | I Mean I'm Just Saying | 14 | +673 | -5 |
| 2026-04-27 00:59 | feat: add editor app shell and cypress e2e harness | I Mean I'm Just Saying | 21 | +1764 | -16 |
| 2026-04-27 00:51 | refactor: extract index/whisper/verify into common/ controllers with CLI shims | I Mean I'm Just Saying | 19 | +1293 | -718 |
| 2026-04-26 23:07 | refactor: split into pnpm workspace with common/ and export/ packages | I Mean I'm Just Saying | 56 | +3302 | -3184 |
| 2026-04-23 00:40 | Add odysee player and p-limit for scripts | I Mean I'm Just Saying | 7 | +99 | -10 |
| 2026-04-21 23:16 | Use pages for transcripts | I Mean I'm Just Saying | 5 | +344 | -21 |
| 2026-04-21 11:38 | Add Rumble support | I Mean I'm Just Saying | 10 | +499 | -104 |
| 2026-04-19 06:38 | Update packages and tsconfig to fix execa | I Mean I'm Just Saying | 4 | +229 | -89 |
| 2026-04-18 06:38 | in-memory data again | I Mean I'm Just Saying | 3 | +171 | -31 |
| 2026-04-18 06:17 | CF headers | I Mean I'm Just Saying | 1 | +3 | -0 |
| 2026-04-18 05:43 | new README | I Mean I'm Just Saying | 1 | +29 | -0 |
| 2026-04-18 05:16 | Advanced options | I Mean I'm Just Saying | 2 | +223 | -16 |
| 2026-04-18 04:58 | overhaul for 10k+ vids | I Mean I'm Just Saying | 21 | +1335 | -283 |
| 2026-04-17 02:13 | optimize for bigger dataset | I Mean I'm Just Saying | 6 | +141 | -144 |
| 2026-04-16 18:05 | tweak archive script | I Mean I'm Just Saying | 1 | +6 | -5 |
| 2026-04-16 18:01 | Bump MAX_HITS and use larger search window | I Mean I'm Just Saying | 1 | +69 | -9 |
| 2026-04-16 17:43 | Add modal control buttons and clipping feature | I Mean I'm Just Saying | 2 | +315 | -55 |
| 2026-04-16 17:21 | better URL state | I Mean I'm Just Saying | 4 | +191 | -115 |
| 2026-04-16 03:40 | Use fs-extra more, increase MAX_HITS, sort list | I Mean I'm Just Saying | 5 | +18 | -24 |
| 2026-04-16 01:42 | Add multi-channel and video grouping | I Mean I'm Just Saying | 1 | +92 | -46 |
| 2026-04-15 20:02 | update archive comment | I Mean I'm Just Saying | 1 | +2 | -3 |
| 2026-04-15 17:54 | Initialize the Jeralyzer | I Mean I'm Just Saying | 19 | +2001 | -88 |
| 2026-04-14 20:19 | Initial commit from Create Next App | I Mean I'm Just Saying | 20 | +4374 | -0 |