Archilyzer · Source

archilyzer

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

DateCommit messageAuthorFiles+-
2026-10-10 07:10Merge r20/whisper-fix (Clear failure list keeps its log after the list empties) into r20/integrationI Mean I'm Just Saying3+26-5
2026-10-10 07:10plans: release 20 — the whisper red, as it went (Clear failure list unmounted its own log)I Mean I'm Just Saying2+13-0
2026-10-10 07:10channels: "Clear failure list" keeps its log after the list emptiesI Mean I'm Just Saying1+13-5
2026-10-10 07:01Merge main (cf162d7c: umtool song asr-via-ops batching) into r20/integrationI Mean I'm Just Saying1+85-51
2026-10-10 07:01Merge r20/a6-a9 (release 19 A6–A9: archive.org imports and remote listings, cues without an index, publish edges, MCP archival writes) into r20/integrationI Mean I'm Just Saying45+3768-225
2026-10-10 06:59plans: release 19 A6–A9, as shipped (Track A of the overnight batch)I Mean I'm Just Saying2+116-0
2026-10-10 06:50mcp: archival tools through the editor — get_job, enqueue, channel_coverage, notes (release 19 A9)I Mean I'm Just Saying16+1185-15
2026-10-10 06:39Merge r20/integration (release 20 D1 recorded dates) into r20/a6-a9I Mean I'm Just Saying19+712-1
2026-10-10 06:39publish: the ops build verb takes allowMissingMedia; `publish build <id> --out <dir>` (release 19 A8)I Mean I'm Just Saying10+272-12
2026-10-10 06:33ops: 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 Saying16+805-42
2026-10-10 06:24ops: a help paragraph for each of the twelve actions that had noneI Mean I'm Just Saying2+78-12
2026-10-10 06:22ops: archive.org imports take many items or a search; Odysee/BitChute remote listings (release 19 A6)I Mean I'm Just Saying14+1326-158
2026-10-10 06:05Merge r20/d2-r20 part 2 (release 20 D3 verified closed, D1 recorded dates; D2 Twitch ids held on r20/twitch-ids) into r20/integrationI Mean I'm Just Saying19+712-1
2026-10-10 06:05plans: release 20 D2 held for an operator ruling — the two options, the readers that miss the join; changelog and STATE correctedI Mean I'm Just Saying3+27-19
2026-10-10 06:02Merge 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/integrationI Mean I'm Just Saying27+1399-59
2026-10-10 06:01common: revert release 20 D2 — held for an operator ruling (it changes published Twitch URLs); kept on r20/twitch-idsI Mean I'm Just Saying7+5-292
2026-10-10 06:00plans: e2e speed S1–S3, as shipped (Track E)I Mean I'm Just Saying3+97-1
2026-10-10 05:59plans: release 20 D3, D1 and D2, as shipped (the caption-track bug closed, recorded dates, one Twitch id)I Mean I'm Just Saying2+88-0
2026-10-10 05:56umtool song: asr-via-ops batches every window into one ops transcribe jobI Mean I'm Just Saying1+85-51
2026-10-10 05:45e2e: the editor config names the stamp script's dist dir it mirrorsI Mean I'm Just Saying1+1-0
2026-10-10 05:31e2e: the four slow timers on a test clock (e2e speed S3)I Mean I'm Just Saying13+146-27
2026-10-10 05:11common: release 20 D2 — one Twitch id: records carry the canonical <n> their directory does, not the native v<n>I Mean I'm Just Saying7+292-5
2026-10-10 05:02common: release 20 D1 — recorded dates for VOD-mirror channels, read off the title by a per-channel ruleI Mean I'm Just Saying14+553-1
2026-10-10 05:01e2e: a timing record per run, and per-spec deltas against the branch's last (e2e speed S2)I Mean I'm Just Saying9+450-7
2026-10-10 04:46common: release 20 D3 — the en → 0 cues caption bug is closed; an index test for the fall-through, recorded in FACTS and STATEI Mean I'm Just Saying3+63-0
2026-10-10 04:43Merge r20/d2-r20 part 1 (release 21 D2: clip windows cut from a saved container) into r20/integrationI Mean I'm Just Saying14+1045-4
2026-10-10 04:43plans: release 21 D2, as shipped (the saved-container tier for clip windows)I Mean I'm Just Saying2+63-0
2026-10-10 04:42channels: release 21 D2 — a clip window of a saved video is cut from its container, not fetchedI Mean I'm Just Saying12+982-4
2026-10-10 04:13e2e: start mode by default, with a build stamp that cannot be stale (e2e speed S1)I Mean I'm Just Saying11+705-24
2026-10-10 03:25plans: 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 Saying1+114-0
2026-10-10 02:05plans: release 19's rollout (editor, umtool, source mirror + homepage; sites unchanged)I Mean I'm Just Saying1+17-0
2026-10-10 01:15plans: release 19's privacy line names no deployment hashI Mean I'm Just Saying1+1-1
2026-10-10 01:15plans: 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 Saying2+9-3
2026-10-10 01:15reports: near the end, the place the URL names is the part being read while it is on screenI Mean I'm Just Saying5+41-8
2026-10-10 01:11Merge 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/integrationI Mean I'm Just Saying11+128-36
2026-10-10 01:11plans: release 22's fix round — the sticky switch, each first-run failure's cause and fix, final countsI Mean I'm Just Saying1+28-0
2026-10-10 01:09reports: the part being read is the last place at the top of the reading area (under the sticky bars), not above the top thirdI Mean I'm Just Saying3+18-10
2026-10-10 01:07plans: release 19's landing as it went (gates, the two fixes, start-mode e2e 24 min); e2e-speed plannedI Mean I'm Just Saying2+133-0
2026-10-10 00:55reports: the view switch is sticky — under the site's header on the export site, atop the reading column in umtoolI Mean I'm Just Saying8+69-26
2026-10-10 00:54umtool 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 Saying1+7-2
2026-10-10 00:54umtool: a slides URL that names a place becomes that place's slide (#s-<n>), as on the export siteI Mean I'm Just Saying1+10-2
2026-10-10 00:46export: the phone overview spec reads both boxes in one frame (the focused pair smooth-scrolls between two reads)I Mean I'm Just Saying1+8-2
2026-10-10 00:31r19 gates: the X fakes read --post-range; the slides parity test lives beside Slide.tsxI Mean I'm Just Saying5+153-153
2026-10-09 23:43social: an X fetch's limit caps posts (--post-range), not files — --range never stopped a metadata-only walkI Mean I'm Just Saying4+11-5
2026-10-09 22:41Merge reports/timeline-feeds (a living report's dated entries: the Timeline region, a slide per entry, RSS + JSON feeds) into r19/integrationI Mean I'm Just Saying43+1628-114
2026-10-09 22:37export: the report fixture keeps a timeline; timeline.spec; serve-out applies _headersI Mean I'm Just Saying10+300-40
2026-10-09 22:11export: the timeline's page test, and a changelog lineI Mean I'm Just Saying2+39-0
2026-10-09 21:53mcp: get_report reads a report's timeline, newest first; `section` may name an entryI Mean I'm Just Saying3+64-7
2026-10-09 21:53export: a report's Timeline, and Subscribe: RSS · JSON when it has feedsI Mean I'm Just Saying3+91-6
2026-10-09 21:53report: a timeline's feeds — feed.xml (RSS 2.0) and feed.json (JSON Feed 1.1)I Mean I'm Just Saying8+460-6
2026-10-09 21:53report: a timeline — dated entries, newest first, in the view, the slides and the exportsI Mean I'm Just Saying18+676-57
2026-10-09 21:49plans: release 18 — the rollout as it wentI Mean I'm Just Saying1+13-0
2026-10-09 21:13Merge hotfix/no-session-ids (release 15's rollout line trimmed)I Mean I'm Just Saying1+1-1
2026-10-09 21:13plans: release 15's rollout line trimmedI Mean I'm Just Saying1+1-1
2026-10-09 18:53docs: COMMANDS.md regenerated for tracks A, D and EI Mean I'm Just Saying1+53-5
2026-10-09 18:52Merge track E (release 22 E1–E6: slide fields, the slides view and isometric overview, umtool's switch, slides exports) into r19/integrationI Mean I'm Just Saying48+5344-93
2026-10-09 18:52Merge track D (release 21 D1 attach-media, D3 playable copies + torrents, D4b the last-resort seeder) into r19/integrationI Mean I'm Just Saying49+6749-19
2026-10-09 18:52Merge 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/integrationI Mean I'm Just Saying66+4195-990
2026-10-09 18:52Merge hotfix/no-session-ids (the rule above the generated block)I Mean I'm Just Saying1+1-1
2026-10-09 18:52agents: the session-link rule sits above the generated Next.js blockI Mean I'm Just Saying1+1-1
2026-10-09 18:52Merge hotfix/no-session-ids (session trailers and links never ship) into r19/integrationI Mean I'm Just Saying19+1832-42
2026-10-09 18:49Merge r19/integration (the release 22 overview ruling) into Track EI Mean I'm Just Saying0+0-0
2026-10-09 18:49plans: release 22 — Track E as shipped (E1–E5), the overview ruling confirmed; export changelog; PUBLISH.md's exports name the slidesI Mean I'm Just Saying3+121-5
2026-10-09 18:47common, export: slides.html and slides.pdf join a report's exports (release 22 E5)I Mean I'm Just Saying16+737-31
2026-10-09 18:43umtool: 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 Saying7+364-5
2026-10-09 18:42common, export: the isometric overview — each part of the article beside its slide (release 22 E3)I Mean I'm Just Saying5+453-15
2026-10-09 18:42common, export: the article as slides — the shared slides, the view switch, the reader (release 22 E2)I Mean I'm Just Saying14+2577-38
2026-10-09 18:16source: 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 themI Mean I'm Just Saying7+97-12
2026-10-09 18:07plans: 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 rolloutI Mean I'm Just Saying1+142-0
2026-10-09 18:06common: attachMediaPlan test titles and ids are synthetic throughoutI Mean I'm Just Saying1+2-2
2026-10-09 18:06common: 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 actionsI Mean I'm Just Saying4+40-3
2026-10-09 18:06common: report slides — the slide fields, their rules, and buildReportSlides (release 22 E1)I Mean I'm Just Saying12+1109-16
2026-10-09 18:04plans: release 19 Track A records — A1 to A5 as shipped, with the gatesI Mean I'm Just Saying1+154-0
2026-10-09 18:04Merge 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 Saying13+1735-30
2026-10-09 18:02Merge 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 firstI Mean I'm Just Saying64+4005-505
2026-10-09 18:01common: 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 egressI Mean I'm Just Saying22+2712-15
2026-10-09 17:53plans: release 22 — the isometric overview is the operator's meaning (confirmed)I Mean I'm Just Saying1+2-2
2026-10-09 17:50plans: release 22 planned — one article, two shapes: slides from the same report.json, a reader switch, the isometric overview, slides exportsI Mean I'm Just Saying2+119-1
2026-10-09 17:46docs: COMMANDS.md regenerated for track B's reports and heavy rowsI Mean I'm Just Saying1+3-0
2026-10-09 17:31plans: release 18 — As it went: Wave 0, main merged in again, the gates and the full suite on a837bf85I Mean I'm Just Saying1+16-0
2026-10-09 17:30common: 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 Saying1+10-2
2026-10-09 17:30Merge 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/integrationI Mean I'm Just Saying50+2943-485
2026-10-09 17:26plans: 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 Saying1+122-0
2026-10-09 17:24common: 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-opI Mean I'm Just Saying16+1500-1
2026-10-09 17:13Merge track C (C2 OPERATING.md + docs cli, C4 homepage docs, C5 FACTS, the track's record) into r19/integrationI Mean I'm Just Saying13+914-17
2026-10-09 17:08Merge r19/integration into Track B (the release 19-21 plans, track C's doc fixes, the jobKinds test fix) before the Track B recordsI Mean I'm Just Saying13+504-16
2026-10-09 17:08umtool: the two-section Note spec waits for its mark before reading notes.json; the edit-guard test takes its kind from the registryI Mean I'm Just Saying4+10-4
2026-10-09 17:08common: 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 provenanceI Mean I'm Just Saying19+2356-1
2026-10-09 16:46editor: the ops route tests' corpus helper opts its fixture paths out of tracingI Mean I'm Just Saying1+18-18
2026-10-09 16:45plans: release 19's Track C record (C1-C5, as shipped)I Mean I'm Just Saying1+37-0
2026-10-09 16:40Merge r19/integration into track C (release 21's plan, the jobKinds test fix) before the record commitI Mean I'm Just Saying3+186-4
2026-10-09 16:40homepage: the Running an archive doc says how to run one from a shell or an agentI Mean I'm Just Saying2+29-0
2026-10-09 16:39plans: 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 Saying2+181-1
2026-10-09 16:12umtool: 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 Saying20+446-64
2026-10-09 16:09Merge branch 'r19/integration' into worktree-agent-a103bef2ee4055362I Mean I'm Just Saying12+324-16
2026-10-09 16:09editor: clip windows get their own queue per platform and are never queued twiceI Mean I'm Just Saying12+364-24
2026-10-09 16:03reports: `reports check`, `reports verify-quotes` and `reports attach-video` on the CLII Mean I'm Just Saying7+962-13
2026-10-09 16:01ops: archival writes — settings, publish lane, platform holds, workers, one video, cleanup, relocate dryRun; archilyzer storage reportI Mean I'm Just Saying17+922-37
2026-10-09 15:56transcribe-file: durationMs is the engine's time (waitedMs the queue); a short file waits in the urgent tierI Mean I'm Just Saying5+144-8
2026-10-09 15:52ops: the read side — settings, storage, sites, workers, lanes, scheduler, cleanup; the lane control route needs the tokenI Mean I'm Just Saying23+507-11
2026-10-09 15:50scripts: the heavy slot — one heavy job machine-wide, above a 6 GB memory floor (`pnpm heavy`)I Mean I'm Just Saying11+731-75
2026-10-09 15:48editor: ops-api.spec's request/response tests become route unit testsI Mean I'm Just Saying13+946-823
2026-10-09 15:45tests: move pure and route-handler e2e to unit tests; root pnpm test and pnpm typecheckI Mean I'm Just Saying10+532-325
2026-10-09 15:42ops: the /jobs list and its row buttons over pnpm opsI Mean I'm Just Saying8+536-8
2026-10-09 15:42plans: FACTS for main's October work outside release 18; release 19 moves the ops route tests to A2b and B2 after B5I Mean I'm Just Saying2+118-7
2026-10-09 15:41docs: OPERATING.md, the agent's guide to running an archive, over a generated COMMANDS.md (archilyzer docs cli)I Mean I'm Just Saying9+730-10
2026-10-09 15:40ops: pnpm ops reads its token from editor/.env; --wait asks /api/ops/job/<id>I Mean I'm Just Saying8+769-90
2026-10-09 15:28Merge track C (C1 plans hygiene, C3 doc fixes) into r19/integrationI Mean I'm Just Saying11+319-13
2026-10-09 15:20docs: the MCP README lists list_tags; the README's docs table names AGENTS and the generated key referencesI Mean I'm Just Saying2+7-0
2026-10-09 15:19plans: releases 19 and 20 planned, PLAN.md indexes releases 17-22, STATE as of 2026-10-09, the October merges recordedI Mean I'm Just Saying9+312-13
2026-10-09 15:15common: 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 Saying1+5-3
2026-10-09 15:11Merge 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 firstI Mean I'm Just Saying204+17456-394
2026-10-09 14:19Merge umtool/articles (every site's articles + media in umtool, operator notes an agent reads back, a better video editor)I Mean I'm Just Saying101+9264-74
2026-10-09 14:17umtool: articles and the notes inbox declare kinds on the registry, never by idI Mean I'm Just Saying4+11-4
2026-10-09 13:57Merge main into umtool/articlesI Mean I'm Just Saying30+1641-111
2026-10-09 13:29Merge ops-transcribe-words (pnpm ops transcribe returns word timings with "words": true)I Mean I'm Just Saying8+137-1
2026-10-09 05:15Merge umtool/threads-polish (dim dots ahead; outcomes wait for the rail)I Mean I'm Just Saying2+21-7
2026-10-09 05:15threads: a card shows its clips as dim dots ahead, and an outcome waits for the rail to come backI Mean I'm Just Saying2+21-7
2026-10-09 04:05Merge umtool/headless-no-display (the renderer runs without a display)I Mean I'm Just Saying2+20-2
2026-10-09 04:05compose-chrome: the renderer runs without DISPLAY or WAYLAND_DISPLAYI Mean I'm Just Saying2+20-2
2026-10-09 03:58umtool: integration fixes, and the docs for timed notes, the guard and structural editsI Mean I'm Just Saying5+78-6
2026-10-09 03:55Merge umtool/report-video-threads (thread rail, flips panel, panning screenshots, the date always shows)I Mean I'm Just Saying13+1443-26
2026-10-09 03:47umtool: the article video takes timed notes; "Add to video" from a citationI Mean I'm Just Saying9+267-21
2026-10-09 03:43Merge umtool/articles-b (Track B: timed notes, row notes, generated guard, take notes, structural edits)I Mean I'm Just Saying37+3028-46
2026-10-09 03:42Merge umtool/articles-a (Track A: /sites, article reader, notes, evidence, workspace files)I Mean I'm Just Saying33+3503-8
2026-10-09 03:35umtool e2e: the article specs compile their routes before the first testI Mean I'm Just Saying4+38-0
2026-10-09 03:32umtool: a teaser being edited is not reset by the reload a save sets offI Mean I'm Just Saying1+18-8
2026-10-09 03:19report-to-video README: the thread rail, the flips panel, panning screenshots, a source line that keeps its dateI Mean I'm Just Saying1+63-3
2026-10-09 03:18umtool: notes capability on the kind registry; the timeline's token raceI Mean I'm Just Saying6+30-8
2026-10-09 03:16umtool song: asr-via-ops -- word timings around each note, through pnpm ops transcribeI Mean I'm Just Saying1+108-0
2026-10-09 03:13umtool song: link-sources replaces fetch-sources -- the editor's persist-videos fetches, this linksI Mean I'm Just Saying2+113-139
2026-10-09 03:10umtool: an article's records resolve once each, in parallelI Mean I'm Just Saying1+27-14
2026-10-09 03:08ops transcribe: "words": true returns the engine's word timingsI Mean I'm Just Saying8+137-1
2026-10-09 02:58umtool: docs/sites.mdI Mean I'm Just Saying1+85-0
2026-10-09 02:57umtool: the article reader -- anchored notes, evidence, the evidence walkI Mean I'm Just Saying12+1770-0
2026-10-09 02:54Merge branch 'main' into worktree-mk-game-hooksI Mean I'm Just Saying951+142737-6158
2026-10-09 02:54umtool song: MK hooks from the original arcade samples; song data under ~/reportsI Mean I'm Just Saying12+1653-30
2026-10-09 02:52Merge editor/no-lead-paragraphs (page titles lose their lead paragraphs; /channels' header wraps instead of squeezing)I Mean I'm Just Saying10+27-82
2026-10-09 02:52umtool: e2e for timed notes, edit notes and timeline editsI Mean I'm Just Saying4+353-1
2026-10-09 02:51Merge branch 'main' into editor/no-lead-paragraphsI Mean I'm Just Saying13+1353-20
2026-10-09 02:48umtool: timeline editor, structure editors, generated-manifest banner, row notesI Mean I'm Just Saying9+653-18
2026-10-09 02:44report-to-video: a flips panel -- THEN and NOW, back to backI Mean I'm Just Saying6+542-12
2026-10-09 02:43umtool: timed notes, take notes, notes componentsI Mean I'm Just Saying10+612-5
2026-10-09 02:42umtool: /sites -- every site's articles, site pages, media and workspace filesI Mean I'm Just Saying19+1597-8
2026-10-09 02:40umtool: edit notes on generated manifests, the moment resolver, the timeline routeI Mean I'm Just Saying18+755-88
2026-10-09 02:37report-to-video: the date always shows, tall posts pan, and a thread railI Mean I'm Just Saying9+850-23
2026-10-09 02:36umtool: structural manifest writers (move, remove, duplicate, insert, teaser, posts, fact-check, undo)I Mean I'm Just Saying5+690-1
2026-10-09 02:33docs: operator notes (umtool/docs/notes.md, AGENTS.md, REPORT.md)I Mean I'm Just Saying5+133-2
2026-10-09 02:32common: a report's notes.json is never published, exported or committed to historyI Mean I'm Just Saying1+28-0
2026-10-09 02:31umtool S7: `umtool notes` CLI, agent digest, /api/notes/contextI Mean I'm Just Saying5+489-0
2026-10-09 02:27umtool S0: /api/notes, useNotes, e2e SITES_DIR fixtureI Mean I'm Just Saying8+214-4
2026-10-09 02:26umtool S0: notes store, SITES_DIR, corpus-notes predicate, source discoveryI Mean I'm Just Saying14+1553-23
2026-10-09 00:30Merge ops-transcribe (transcribe one local file through the editor's workers)I Mean I'm Just Saying13+1353-20
2026-10-09 00:30ops transcribe: test the route's token, keys and refusalsI Mean I'm Just Saying1+86-0
2026-10-09 00:28ops: transcribe one local file through the editor's workersI Mean I'm Just Saying12+1267-20
2026-10-08 15:51editor: page titles lose their lead paragraphs; /channels' header wraps instead of squeezingI Mean I'm Just Saying10+27-82
2026-10-08 03:33Merge citations/bracketed-labels (a cite label may hold an editorial [insertion])I Mean I'm Just Saying6+23-5
2026-10-08 03:33citations: a cite label may hold an editorial [insertion]I Mean I'm Just Saying6+23-5
2026-10-08 01:10Merge reports/report-video (a report can carry a video)I Mean I'm Just Saying11+126-4
2026-10-08 01:09reports: a report can carry a video, played under its headerI Mean I'm Just Saying11+126-4
2026-10-08 00:39Merge fetch-windows-rumble-gap (Rumble windows 120 s apart, across runs)I Mean I'm Just Saying3+92-22
2026-10-08 00:39fetch-windows: Rumble windows 120 s apart, across runs, paced by the URLI Mean I'm Just Saying3+92-22
2026-10-08 00:31Merge fetch-window-rumble-picky-first (one Rumble page load per window)I Mean I'm Just Saying3+56-11
2026-10-08 00:31fetch-window: a rumble.com window sends -extension_picky 0 on the first tryI Mean I'm Just Saying3+56-11
2026-10-08 00:22Merge fetch-window-url-platform-args (a window's URL picks its platform args)I Mean I'm Just Saying3+34-2
2026-10-08 00:22fetch-window: a video's own URL picks its platform args, not its channel'sI Mean I'm Just Saying3+34-2
2026-10-07 21:56Merge fetch-windows-platform-queue (a window's own URL picks its queue)I Mean I'm Just Saying2+17-9
2026-10-07 21:56fetch-windows: a window's own URL picks its queue, not its channel'sI Mean I'm Just Saying2+17-9
2026-10-07 21:51Merge fetch-windows (a paced batch of clip windows, one job per platform)I Mean I'm Just Saying27+2207-49
2026-10-07 21:50fetch-window e2e: the batch case waits out the clip-window gapI Mean I'm Just Saying1+4-2
2026-10-07 21:46fetch-windows: /jobs row names who asked, for what, and how many windowsI Mean I'm Just Saying2+37-1
2026-10-07 21:44fetch-windows: a paced batch of clip windows, one job per platformI Mean I'm Just Saying25+2167-47
2026-10-07 18:44Merge fetch-window-rumble-hls (editor clip windows from Rumble retry with -extension_picky 0)I Mean I'm Just Saying2+127-5
2026-10-07 18:44fetch-window: retry a Rumble window once with -extension_picky 0I Mean I'm Just Saying2+127-5
2026-10-07 17:17Merge kf-capture-live-media (forum capture downloads the media a post's page holds now)I Mean I'm Just Saying2+65-7
2026-10-07 17:17capture: a forum post's media is what its page holds now, beside the archive'sI Mean I'm Just Saying2+65-7
2026-10-07 17:13Merge x-older-from (older X walk can start at a date; Kiwi Farms player uploads are video media)I Mean I'm Just Saying10+135-15
2026-10-07 17:13posts: older X walk can start at a date; Kiwi Farms player uploads are video mediaI Mean I'm Just Saying10+135-15
2026-10-07 16:06Merge feat/teaser-lead (a teaser line can carry a small tier above it)I Mean I'm Just Saying4+56-7
2026-10-07 16:06report-to-video: a teaser line can carry a small tier above it (lead)I Mean I'm Just Saying4+56-7
2026-10-07 15:01Merge feat/teaser-together (a teaser line's second tier pops with it, on one hit)I Mean I'm Just Saying3+56-12
2026-10-07 15:01report-to-video: a teaser line's second tier can pop with it, on one hit (together)I Mean I'm Just Saying3+56-12
2026-10-07 14:48Merge feat/teaser-replace (teaser rows that change in place, per-line role and hold)I Mean I'm Just Saying4+202-21
2026-10-07 14:48report-to-video: teaser rows that say several things in turn (replace), a line's own role, holdI Mean I'm Just Saying4+202-21
2026-10-07 03:19Merge feat/umtool-takes (umtool: alternative renders of part of a cut, side by side, judged)I Mean I'm Just Saying13+1234-0
2026-10-07 03:18umtool: takes -- alternative renders of part of a cut, side by side, judgedI Mean I'm Just Saying13+1234-0
2026-10-07 02:20Merge feat/channel-management-ops (rename/delete a social channel from its page; create/rename/delete/sites over ops)I Mean I'm Just Saying14+824-70
2026-10-07 02:20channels: rename and delete a social channel from its page; channel lifecycle over opsI Mean I'm Just Saying14+824-70
2026-10-07 00:44plans: release 18 — As it went: the Eva tags' scope and the re-gate after main moved againI Mean I'm Just Saying1+6-0
2026-10-07 00:36Merge main into r18/integration (refresh one video's metadata, posts read their slug from the directory, in-page report links); the changelog keeps both sidesI Mean I'm Just Saying24+1448-10
2026-10-07 00:36Merge tags/site-scope (a curated tag can exist on some sites only: the Eva tags on Anilyzer alone)I Mean I'm Just Saying12+313-10
2026-10-07 00:36e2e: the /tags Sites box saves sites (sorted, deduplicated) and reads it back; plans: STATE owes the Eva tags' data changeI Mean I'm Just Saying2+16-0
2026-10-07 00:30tags: 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.jsonI Mean I'm Just Saying10+297-10
2026-10-06 23:48Merge reports/in-page-links (a #<id> link in report markdown stays in the tab)I Mean I'm Just Saying2+13-1
2026-10-06 23:48reports: a #<id> link in report markdown stays in the tabI Mean I'm Just Saying2+13-1
2026-10-06 22:56Merge feat/refresh-video-metadata (refresh one video's metadata from the video page and over ops)I Mean I'm Just Saying20+1396-8
2026-10-06 22:22metadata: a refresh refuses a video with no data/<id>/ rather than create oneI Mean I'm Just Saying9+99-81
2026-10-06 22:16metadata: refresh one video's metadata from the video page and over opsI Mean I'm Just Saying21+1384-14
2026-10-06 20:39Merge fix/post-slug-from-dir (a renamed social channel's posts read as their new slug)I Mean I'm Just Saying3+39-1
2026-10-06 20:39posts: a post's channel and slug come from the directory it is read fromI Mean I'm Just Saying3+39-1
2026-10-06 18:37plans: 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 owedI Mean I'm Just Saying1+22-0
2026-10-06 18:37editor: 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 Saying2+11-1
2026-10-06 17:34Merge r18/records (slice S6: the records)I Mean I'm Just Saying16+929-228
2026-10-06 17:34docs: 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-upsI Mean I'm Just Saying16+929-228
2026-10-06 17:28Merge 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 Saying83+3645-2842
2026-10-06 17:28plans: release 18 — slice S4, as shipped (the publish surfaces), and the index's settings signature in What makes the index staleI Mean I'm Just Saying1+152-0
2026-10-06 17:14publish: 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 edgesI Mean I'm Just Saying30+244-116
2026-10-06 17:01e2e: 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 Saying3+29-0
2026-10-06 16:54e2e: 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 laneI Mean I'm Just Saying4+12-8
2026-10-06 16:43e2e: publish.spec and publish-lane.spec; ops-api, jobs and duplicate-shorts on the publish stagesI Mean I'm Just Saying6+596-108
2026-10-06 16:38e2e: the publish stages' seams — EXPORT_NEXT_BIN (a fake next build), the fake wrangler's mode sidecar, ARCHILYZER_BRANCH=main; specs for the moved labelsI Mean I'm Just Saying13+267-131
2026-10-06 16:36publish: build.ts loses the pre-stage entry points (buildSite, deploySite, buildAll, deployHub, deployHomepage, the docker all-phases)I Mean I'm Just Saying6+37-827
2026-10-06 16:31ops: pnpm ops publish (a verb in the body) and pnpm ops get publish; the eight build/deploy actions named as its aliasesI Mean I'm Just Saying2+49-8
2026-10-06 16:30cli: deploy hub / deploy homepage are aliases of publish hub|homepage --deploy-only (through the deploy stage)I Mean I'm Just Saying3+68-48
2026-10-06 16:29editor: /operations/publish (the lane's runner, hold, settings and plan) and a site's publish policy on its formI Mean I'm Just Saying8+491-0
2026-10-06 16:26editor: the /sites Publish panel, the site Publish tab and the ops API as publish stagesI Mean I'm Just Saying28+1550-1599
2026-10-06 16:18publish: 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 Saying2+63-24
2026-10-06 16:15publish: the index is judged by the settings it reads (a signature in the stamp), not the settings file's mtimeI Mean I'm Just Saying9+120-6
2026-10-06 16:13editor: the chore-card pin leaves the transcript reader out (it lives in ./cards, and is read, never run)I Mean I'm Just Saying1+7-1
2026-10-06 16:08Merge main into r18/integration (multi-track captions, en-track fallback, Wayback, Odysee/BitChute spacing); the changelog keeps both sides, release 18's bullets firstI Mean I'm Just Saying76+4230-176
2026-10-06 15:50Merge 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 Saying8+264-18
2026-10-06 15:50e2e: a second BitChute import is clicked until refused, and BitChute is asked onceI Mean I'm Just Saying1+19-6
2026-10-06 15:41Merge 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 Saying38+4392-16
2026-10-06 15:40plans: 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 siteI Mean I'm Just Saying2+154-0
2026-10-06 15:30Merge transcripts/multi-track (every English track searchable; the reader and MCP choose a track; alternates only where words differ)I Mean I'm Just Saying36+1525-50
2026-10-06 15:29imports: a one-off Odysee or BitChute import waits a floor after the last one thereI Mean I'm Just Saying7+245-12
2026-10-06 15:27cli: archilyzer publish status [--json] and publish nowI Mean I'm Just Saying3+217-2
2026-10-06 15:27editor: the publish lane's runner starts at boot (below the idle gate); Retry re-enqueues a publish stage from its specI Mean I'm Just Saying2+33-0
2026-10-06 15:27publish: readPublishStatus, enqueueStage / enqueuePublishRun, and the publish lane's runnerI Mean I'm Just Saying7+1715-0
2026-10-06 15:21tracks: labels for tracks YouTube named, and en-<region>-origI Mean I'm Just Saying4+49-16
2026-10-06 15:14Merge branch 'r18/integration' into r18/publish-laneI Mean I'm Just Saying34+4892-452
2026-10-06 15:14publish: the publish status and the publish plan — one pure builder every surface and the lane readI Mean I'm Just Saying3+1460-0
2026-10-06 15:13settings: settings.publish (the publish lane) and site.json publish.auto; the publish pipeline lane and its pause gateI Mean I'm Just Saying15+459-11
2026-10-06 15:13jobs: 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 bootI Mean I'm Just Saying6+354-3
2026-10-06 14:55Merge 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 Saying7+160-65
2026-10-06 14:55plans: release 18 — S2's last cleanup (the malformed-token codes) and the gates after merging S5 completeI Mean I'm Just Saying1+4-0
2026-10-06 14:54common: a malformed Cloudflare token reads as REFUSED too (codes 6003, 6111)I Mean I'm Just Saying2+14-2
2026-10-06 14:51Merge r18/integration (S5 complete) into r18/deploy-hardeningI Mean I'm Just Saying6+168-30
2026-10-06 14:51plans: release 18 — S2's round-2 cleanups; the changelog drops the hub-regression bullet (in no release) and names the private-only channelsI Mean I'm Just Saying2+19-5
2026-10-06 14:51Merge 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 Saying6+168-30
2026-10-06 14:51publish: 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 Saying3+123-58
2026-10-06 14:50plans: S5 third round — the wrangler check, cloudflare-auth through the preflight, the deploy refusals in the container; the doctor's changelog bulletI Mean I'm Just Saying2+43-4
2026-10-06 14:40doctor: the wrangler a deploy spawns, run for its major; cloudflare-auth through the deploy's own preflightI Mean I'm Just Saying4+125-26
2026-10-06 14:36Merge 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 Saying31+4347-400
2026-10-06 14:35plans: release 18 — S2's wiring round (the merges, the deploy stages wired, the hub blocker); the changelog's hub bulletI Mean I'm Just Saying2+55-0
2026-10-06 14:17offline index reads alternate tracks; one canHoldAltTracksI Mean I'm Just Saying5+40-14
2026-10-06 14:11Merge r18/integration (S5 second half) into r18/deploy-hardeningI Mean I'm Just Saying5+286-15
2026-10-06 14:08Merge 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 Saying5+287-27
2026-10-06 14:07plans: 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 bulletI Mean I'm Just Saying2+40-2
2026-10-06 14:03common: a hub bundle is refused for report DATA, not for the export app's own reports/ and m/ routesI Mean I'm Just Saying2+136-4
2026-10-06 14:03publish: the deploy stages are runDeployStage; S1's stamp types and readersI Mean I'm Just Saying7+141-313
2026-10-06 14:00docs + export e2e: alternate tracksI Mean I'm Just Saying6+101-2
2026-10-06 13:58doctor: publish-lock, index-stamp, export-builds from built.json bytes, and node against the pinned wrangler's floorI Mean I'm Just Saying3+247-25
2026-10-06 13:57Merge r18/integration (S1 stage core, S5 image half) into r18/deploy-hardeningI Mean I'm Just Saying42+6222-216
2026-10-06 13:55editor: the video page reads its transcript, with the track switcherI Mean I'm Just Saying4+167-0
2026-10-06 13:55mcp: search reads every English track; get_transcript takes an optional trackI Mean I'm Just Saying4+200-14
2026-10-06 13:55search + viewer: every English track is searched, and the reader switches tracksI Mean I'm Just Saying10+174-16
2026-10-06 13:51index: alternate English tracks ride on the transcript record where their words differI Mean I'm Just Saying9+822-16
2026-10-06 13:51Merge 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 Saying24+4803-103
2026-10-06 13:50plans: release 18 — slice S1 review fixes (the table, the re-gates); the changelog says deploy all's skips and the no-branch refusalI Mean I'm Just Saying2+47-16
2026-10-06 13:45publish: 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 Saying8+200-14
2026-10-06 13:42publish: 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 Saying5+148-19
2026-10-06 13:39publish: 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 Saying3+100-10
2026-10-06 13:36publish: 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 Saying3+85-11
2026-10-06 13:34Merge 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 Saying6+26-3
2026-10-06 13:33plans: S5 review fixes — the editor's publish-lock identity; SETUP's Node lineI Mean I'm Just Saying1+4-1
2026-10-06 13:33docs: SETUP — Node 22: deploying runs the pinned wrangler, which refuses anything olderI Mean I'm Just Saying1+1-1
2026-10-06 13:33docker: the editor's publish-lock identity is fixed (ARCHILYZER_HOST_ID=archilyzer-editor) — a container's hostname changes on every recreateI Mean I'm Just Saying4+21-1
2026-10-06 13:32plans: release 18 — S2 review fixes recorded; deviations from the plan; the hub wording in the changelogI Mean I'm Just Saying2+80-17
2026-10-06 13:30Merge 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 Saying5+74-9
2026-10-06 13:29plans, docs: S5 — Node 22 in the review-fixes record (v22.23.3 in the container, native modules load); RUNNING_IN_DOCKER names itI Mean I'm Just Saying2+12-2
2026-10-06 13:29Merge 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 Saying24+1121-107
2026-10-06 13:28common: review fixes — the hub never names a private-only X channel; deploy targets pinned; usage exit 2; Cancel reaches the live checkI Mean I'm Just Saying8+374-73
2026-10-06 13:23docker: the image runs Node 22 everywhere — the pinned wrangler's engines floor; one major for the build stage and every runtimeI Mean I'm Just Saying3+62-7
2026-10-06 13:19captions: an unversioned cues.json is stale only where the rule reads other wordsI Mean I'm Just Saying6+81-32
2026-10-06 13:17plans: release 18 — slice S1 (stage core) as shipped; the editor changelogI Mean I'm Just Saying2+161-0
2026-10-06 13:11Merge sources/wayback (Wayback captures named by what they copy; wayback.json provenance; wayback refresh; archived-copy links)I Mean I'm Just Saying22+1330-11
2026-10-06 13:10plans: release 18 — slice S2 (deploy hardening) as shipped; the editor changelogI Mean I'm Just Saying2+196-0
2026-10-06 13:07wayback refresh: a lane pick whose outcome sidecar is newer has finishedI Mean I'm Just Saying2+27-5
2026-10-06 13:06Merge 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 Saying18+1332-91
2026-10-06 13:06plans: release 18 — S5 review fixes; only the runtime target was built (vulkan, cuda left for the rollout); the second half's added itemsI Mean I'm Just Saying1+29-1
2026-10-06 13:04wayback: the video page and a citation say a record is an archived copyI Mean I'm Just Saying7+135-4
2026-10-06 13:04wayback refresh: an auto-queue lane's newest picks of the channel are held tooI Mean I'm Just Saying2+38-5
2026-10-06 13:01wayback refresh: bring imported Wayback copies up to the rules, offlineI Mean I'm Just Saying7+657-1
2026-10-06 12:57common: the homepage's local deploy is ARCHILYZER_HOMEPAGE_OUT; the preflight is a token or a wrangler login; a stale posts manifest goesI Mean I'm Just Saying8+95-40
2026-10-06 12:57gitignore: export/out, now a symlink to the bundle built last (a directory pattern does not match a link)I Mean I'm Just Saying1+3-0
2026-10-06 12:56docs: 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 pagesI Mean I'm Just Saying1+7-1
2026-10-06 12:56doctor: YTDLP_AUTO_UPDATE is read with the entrypoint's exact-match rule (1, true, yes, on as written); RUNNING_IN_DOCKER says soI Mean I'm Just Saying3+11-2
2026-10-06 12:55docker: 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 dirI Mean I'm Just Saying1+11-2
2026-10-06 12:51wayback: a capture is named by what it is a copy of, and says soI Mean I'm Just Saying8+483-6
2026-10-06 12:50publish: stamps fall back to the image's ARCHILYZER_COMMIT/BRANCH without a .git; deploy-homepage --to local writes ARCHILYZER_HOMEPAGE_OUTI Mean I'm Just Saying3+42-12
2026-10-06 12:49docs: the caption-track rule — changelogs, README, PUBLISHI Mean I'm Just Saying4+11-3
2026-10-06 12:48editor: Set as transcript pins the pick, so it beats en-origI Mean I'm Just Saying3+14-8
2026-10-06 12:47index: a one-shot caption-track pass re-reads exactly the records the rule reachesI Mean I'm Just Saying2+266-7
2026-10-06 12:47captions: one caption-track rule — en-orig first, then the first track with cuesI Mean I'm Just Saying11+629-86
2026-10-06 12:47vtt: read cue-block captions — a VTT with no word timing is no longer zero cuesI Mean I'm Just Saying4+154-5
2026-10-06 12:46plans: release 18 — slice S5 (image half) as shipped; the editor changelogI Mean I'm Just Saying2+142-0
2026-10-06 12:41publish: 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 aliasesI Mean I'm Just Saying6+1097-0
2026-10-06 12:34publish: the seven stages, their runner and the CLI rows (stage, publish index|build|deploy|hub|homepage)I Mean I'm Just Saying6+1828-45
2026-10-06 12:34publish: per-target bundles — build into export/out, install as <exportBuildsDir>/<id>/out, link export/out to itI Mean I'm Just Saying2+280-12
2026-10-06 12:33docs: 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 checklistI Mean I'm Just Saying1+187-22
2026-10-06 12:33docker: the entrypoint makes ARCHILYZER_CONFIG_DIR (700, empty) on the first boot, so `docker compose cp` has somewhere to put the rulesI Mean I'm Just Saying1+7-0
2026-10-06 12:27common: the deploy stage (runDeployStage) and the live check; the e2e fake wranglerI Mean I'm Just Saying10+1634-7
2026-10-06 12:25docker: .env.example names the publish credentials, the yt-dlp substitution and the source mirror's mountI Mean I'm Just Saying1+70-1
2026-10-06 12:24doctor: which yt-dlp, the publish credentials (set or not), room for the bundles, the source repository and the config dirI Mean I'm Just Saying4+466-3
2026-10-06 12:24docker: the runtime image publishes — python, pipx and a pinned git-filter-repo; a yt-dlp substitution hook; build stampsI Mean I'm Just Saying10+355-61
2026-10-06 12:24publish: source publish reads ARCHILYZER_SOURCE_REPO before looking for a checkoutI Mean I'm Just Saying2+52-3
2026-10-06 12:20common: withdrawn X posts ship tombstones, served no-store (site and hub)I Mean I'm Just Saying10+750-11
2026-10-06 12:18publish: the stamp files and the publish lock (release 18 stage core)I Mean I'm Just Saying5+839-0
2026-10-06 12:14common: wrangler pinned (4.147.0, common devDependency); every deploy names its branchI Mean I'm Just Saying7+1200-237
2026-10-06 12:14common: dirSignature moves to lib/dirSignature.ts, unchanged (compose imports it)I Mean I'm Just Saying2+55-46
2026-10-06 12:01plans: release 18 — publishing as queueable stages (the plan, record file)I Mean I'm Just Saying1+358-0
2026-10-06 11:37Merge sources/bitchute (BitChute as a platform: detection, polite import and pacing, native player, relabel pass)I Mean I'm Just Saying34+896-40
2026-10-06 11:37import: a BitChute or archive.org URL runs on its platform's queue from the channel page too; e2e for a BitChute importI Mean I'm Just Saying4+76-8
2026-10-06 11:29docs: BitChute — README section, CHANNEL.md platform list, MCP README, changelogsI Mean I'm Just Saying6+28-3
2026-10-06 11:29index: a record labelled before its platform was known is relabelled — once, from LMDB, no schema bumpI Mean I'm Just Saying4+274-4
2026-10-06 11:24sources: import a BitChute video politely; play its file; BitChute in the channel form and the duplicates pageI Mean I'm Just Saying6+212-13
2026-10-06 11:22sources: BitChute is a platform (bitchute) — detection, ids, the extractor's label, the playable file, polite pacingI Mean I'm Just Saying17+311-17
2026-10-06 06:22Merge sources/archive-org-dir-dates (file records dated by name or folder)I Mean I'm Just Saying5+36-5
2026-10-06 06:22archive.org: a file record is dated by its name, else its folder (one folder per upload)I Mean I'm Just Saying5+36-5
2026-10-05 23:19Merge 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 Saying10+551-6
2026-10-05 23:18archive.org: a name-only mirror is dated by its file name's YYYYMMDD; refresh-titles becomes refreshI Mean I'm Just Saying13+430-311
2026-10-05 23:12archive.org: one file of a multi-file item is titled from its file name; refresh-titles CLII Mean I'm Just Saying10+431-5
2026-10-05 22:59Merge media/clip-past-end (prepare and compose share the clamped cited span)I Mean I'm Just Saying3+24-16
2026-10-05 22:59reports: prepare and compose share one cited span (clamped to the recording's end), so a clip cut at the end is not staleI Mean I'm Just Saying3+24-16
2026-10-05 22:51Merge media/clip-past-end (report evidence clips stop at the recording's end)I Mean I'm Just Saying4+32-1
2026-10-05 22:51reports: a cited moment's clip stops at the recording's end when its padding runs past itI Mean I'm Just Saying4+32-1
2026-10-05 21:46Merge posts/forum-mirror-hostsI Mean I'm Just Saying5+42-4
2026-10-05 21:43Merge report/header-cardI Mean I'm Just Saying24+289-297
2026-10-05 21:43posts: a forum's mirror domains are one forum — a page saved from kiwifarms.net imports into a kiwifarms.st channelI Mean I'm Just Saying5+42-4
2026-10-05 21:41docs: unreleased records describe the report, export, history, forum and archive.org work as it isI Mean I'm Just Saying5+42-43
2026-10-05 21:41reports: two-line name, depth-only tier markers, the claim's sentence alone, the added mark under its numberI Mean I'm Just Saying19+231-249
2026-10-05 21:26reports: the subject card's author, publisher and date each stay whole on a narrow screenI Mean I'm Just Saying4+17-6
2026-10-05 20:47Merge report/header-card (report header: our heading, one date/revision line, the reviewed document as a citation card)I Mean I'm Just Saying18+279-284
2026-10-05 20:47reports: the header is the name, one date line, and the document as a cardI Mean I'm Just Saying18+279-284
2026-10-05 20:07Merge 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 Saying32+2952-264
2026-10-05 20:06sources: aria2c hash-checks only a resumed torrent; its DHT notice is never the failureI Mean I'm Just Saying3+20-4
2026-10-05 20:02docs: archive.org over BitTorrent — README (aria2c, seeding defaults, the fallback), changelogI Mean I'm Just Saying2+25-4
2026-10-05 20:02sources: archive.org import comments name the torrent path, not yt-dlpI Mean I'm Just Saying2+13-8
2026-10-05 20:00sources: tests for the archive.org torrent ladderI Mean I'm Just Saying7+985-3
2026-10-05 19:55sources: archive.org files over BitTorrent when possible, else a direct download — no yt-dlpI Mean I'm Just Saying23+1916-252
2026-10-05 19:49Merge 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 Saying27+2171-57
2026-10-05 19:45reports: the fixture site has two revisions; e2e checks the revision line, the history page and a git clone; Reports tab shows the revision; docsI Mean I'm Just Saying15+449-42
2026-10-05 19:38reports: compose publishes each report's history (history.json + a dumb-HTTP clone); the history page; the report's revision lineI Mean I'm Just Saying11+466-30
2026-10-05 19:33reports: per-report revision history — a bare git store beside report.json, a revision per changed exportI Mean I'm Just Saying6+1285-14
2026-10-05 19:32Merge 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 Saying46+2936-26
2026-10-05 19:26sources: an archive.org import asks nothing while archive.org is held or cooling down; a rate limit backs the platform offI Mean I'm Just Saying3+28-0
2026-10-05 19:22Merge report/exports (per-report HTML, PDF, Markdown and evidence-pack exports; reports-export job; shared publish size limit)I Mean I'm Just Saying42+2999-77
2026-10-05 19:20sources: the provenance sidecar is the prefetch's own file; a test that the step runs only after a prefetch that succeededI Mean I'm Just Saying2+83-0
2026-10-05 19:18Merge posts/forum-threads (XenForo threads as a posts source: paced fetch, saved-page import, forum session Connect, post capture)I Mean I'm Just Saying52+4455-174
2026-10-05 19:15docs: archive.org items — README section with operator steps, CHANNEL.md platform list, changelogsI Mean I'm Just Saying6+42-3
2026-10-05 19:14sources: import from archive.org in the editor; play the file; citations link archive.org and the torrentI Mean I'm Just Saying16+471-12
2026-10-05 19:10reports: the exports mirror the report page — tiers, flags, evidence by origin, the source railI Mean I'm Just Saying4+329-125
2026-10-05 19:10Merge main (report/polish) into report/exportsI Mean I'm Just Saying22+922-103
2026-10-05 19:07posts: a forum walk with a cursor catches up from the last page first; pages over ops; e2eI Mean I'm Just Saying6+177-38
2026-10-05 19:05sources: archive.org items are a platform (archiveorg) — ids, detection, provenance sidecar, polite client, import controllerI Mean I'm Just Saying23+2312-11
2026-10-05 19:04Merge report/polish (claim flag; series line; byline + our attribution; source rail; citation origin; three reading tiers)I Mean I'm Just Saying22+915-102
2026-10-05 18:59editor, mcp, docs: forum-thread channels — create, fetch latest pages, Connect, importI Mean I'm Just Saying17+375-20
2026-10-05 18:55posts: forum threads (XenForo) as a posts source — parser, paced walk, import, captureI Mean I'm Just Saying31+3934-147
2026-10-05 18:13reports: a fact-check reads in three tiers — the quick take, what the check found, every claimI Mean I'm Just Saying12+390-51
2026-10-05 18:03reports: a citation's origin — what the report added comes first and marked, what the subject gave folds awayI Mean I'm Just Saying14+175-17
2026-10-05 18:03docs: report exports — plans/report-sites.md "Exports", PUBLISH.md, changelogsI Mean I'm Just Saying4+54-2
2026-10-05 18:02reports: the reports-export job, the Reports tab's Exports, and the downloads lineI Mean I'm Just Saying22+577-45
2026-10-05 17:59reports: the reviewed document's sentences sit on a rail in its colour instead of linking up to its boxI Mean I'm Just Saying11+86-15
2026-10-05 17:59reports: tests for the exports — renderers, the host step, compose's publish gateI Mean I'm Just Saying4+349-2
2026-10-05 17:56reports: export a report as files (report.html, report.pdf, report.md, evidence-pack.zip)I Mean I'm Just Saying14+1814-33
2026-10-05 17:55reports: the title carries the reviewed document's byline; ours ("Fact-check by <site>") sits under itI Mean I'm Just Saying10+172-22
2026-10-05 17:47reports: a series is its own line above the title (still inside the heading)I Mean I'm Just Saying6+16-12
2026-10-05 17:46reports: a claim may carry a flag (a quiet accent pill on its card); a one-report site's home tab names the reportI Mean I'm Just Saying16+99-8
2026-10-05 17:24Merge report/series (report series tag; no index of one; lean index cards)I Mean I'm Just Saying17+107-36
2026-10-05 17:24reports: 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 declaredI Mean I'm Just Saying17+107-36
2026-10-05 17:05Merge export/single-report (one report = the home page; index without a duplicate title)I Mean I'm Just Saying8+71-33
2026-10-05 17:05export: a report-only site with one report opens on it (no nav links); the multi-report home drops its duplicate title; shell pages link homeI Mean I'm Just Saying8+71-33
2026-10-05 16:47export: serve-out binds HOST when set (a private site can stay on this machine)I Mean I'm Just Saying1+4-1
2026-10-05 16:32Merge site/search-toggle (site.json search switch replaces publish; search off = report-only; export start serves moment dirs)I Mean I'm Just Saying36+326-273
2026-10-05 16:32changelogs: the unreleased report-site bullets describe the search switch, not publishI Mean I'm Just Saying2+2-3
2026-10-05 16:24docs: the search switch and serve-out in PUBLISH.md, the report-sites ruling, changelogsI Mean I'm Just Saying4+17-8
2026-10-05 16:24export: `start` serves out/ with scripts/serve-out.mjs (moment dirs served, not listed)I Mean I'm Just Saying6+123-108
2026-10-05 16:23site.json: a per-site `search` switch replaces `publish`; report-only is search offI Mean I'm Just Saying26+185-155
2026-10-05 15:58Merge umtool/post-card-marks (post cards: accent, logo, flag)I Mean I'm Just Saying5+95-20
2026-10-05 15:58umtool: 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 Saying5+95-20
2026-10-05 14:17Merge umtool/deck-overlap (posts ride the whole clip, shotMaxHeight, web platform, per-post variant; snapLead/snapTail)I Mean I'm Just Saying8+157-20
2026-10-05 14:17umtool: 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 cutI Mean I'm Just Saying8+157-20
2026-10-05 11:23e2e: 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 Saying1+17-17
2026-10-05 09:57plans: report sites built (R0–R8)I Mean I'm Just Saying1+1-1
2026-10-05 09:31Merge 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 Saying26+733-15
2026-10-05 09:28export: 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 Saying8+464-7
2026-10-05 09:26Merge 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 Saying18+1618-2
2026-10-05 09:25records: the feed backfill's [Unreleased] bullet at the end of the sectionI Mean I'm Just Saying1+1-1
2026-10-05 09:25feed metadata backfill: archilyzer feeds backfill-metadata, POST /api/ops/feed-metadata, pnpm ops feed-metadata; [Unreleased] bulletI Mean I'm Just Saying7+142-0
2026-10-05 09:24Merge 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 Saying25+1124-15
2026-10-05 09:23export: the fixture report cites its source inline once (a source citation's preview has a marker to open from)I Mean I'm Just Saying2+2-2
2026-10-05 09:23records: [Unreleased] bullets (export, homepage, editor), PUBLISH.md on how the family and the contract's readers treat a cited site, the plan's compose notesI Mean I'm Just Saying5+15-2
2026-10-05 09:22export: 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 portI Mean I'm Just Saying10+250-2
2026-10-05 09:22umtool cues: a cited report site is named as such (it publishes no transcripts), not reported as a missing channelI Mean I'm Just Saying2+21-0
2026-10-05 09:22common: backfill a podcast channel's record metadata from its RSS feedI Mean I'm Just Saying8+1065-2
2026-10-05 09:22hub 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 regeneratedI Mean I'm Just Saying9+97-10
2026-10-05 09:21mcp: 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 corpusI Mean I'm Just Saying6+588-2
2026-10-05 09:18export: the fixture's audio moment names its clip as compose does (.m4a)I Mean I'm Just Saying4+5-3
2026-10-05 09:18common: a small RSS feed reader (items: title, pubDate, enclosure, guid, itunes:duration, description) with a fixture feedI Mean I'm Just Saying3+411-0
2026-10-05 09:17archive 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/ listingI Mean I'm Just Saying3+403-1
2026-10-05 09:17export: 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 Saying8+17-6
2026-10-05 08:41Merge 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 Saying15+580-223
2026-10-05 08:40report 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 reportI Mean I'm Just Saying15+580-223
2026-10-05 07:56common: 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 Saying2+41-7
2026-10-05 07:39Merge 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 Saying22+2095-37
2026-10-05 07:34records: PUBLISH.md on composing reports and the cited scope; [Unreleased] bulletsI Mean I'm Just Saying3+29-1
2026-10-05 07:33common: tests — compose over a temp corpus (exact files, prune, contract, verification, drift, missing and stale media, full-site colocation), the cited audit, the build envI Mean I'm Just Saying3+695-0
2026-10-05 07:30common: 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-mediaI Mean I'm Just Saying6+889-14
2026-10-05 07:30common: 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/mediaI Mean I'm Just Saying3+215-10
2026-10-05 07:30common: 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 variantI Mean I'm Just Saying5+121-12
2026-10-05 07:23common: quote verification (lib/citations/verify.ts) — token recall of a quote against its cue window or its post, one method string, a drift thresholdI Mean I'm Just Saying2+146-0
2026-10-05 07:38Merge 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 Saying17+2681-65
2026-10-05 07:38records: 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] bulletI Mean I'm Just Saying5+35-0
2026-10-05 07:35common: tests for the converters' disk callbacks and the reports convert / to-manifest CLII Mean I'm Just Saying1+212-0
2026-10-05 07:34common: converter tests — links, spans from cues, the markdown engine, /sweep, /ask, manifest both ways and the round tripsI Mean I'm Just Saying2+619-1
2026-10-05 07:32common: 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-manifestI Mean I'm Just Saying7+1711-0
2026-10-05 07:30Merge 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 Saying14+1058-9
2026-10-05 07:27editor changelog: the Reports tabI Mean I'm Just Saying1+1-0
2026-10-05 07:27editor: a site's Reports tab — reports and drafts with their problems, publish/unpublish/reorder, Prepare evidence mediaI Mean I'm Just Saying11+997-7
2026-10-05 07:27site: patchSite, a locked read-modify-write of some keys of site.jsonI Mean I'm Just Saying2+60-2
2026-10-05 07:25common: sentence widening moves to lib/cueWiden.mjs; resolve-windows re-exports itI Mean I'm Just Saying3+105-65
2026-10-05 07:16Merge 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 Saying41+3535-32
2026-10-05 07:16export: a moment's back-link to a report's summary says SummaryI Mean I'm Just Saying2+2-1
2026-10-05 07:13Merge 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 Saying23+2233-258
2026-10-05 07:13report 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 bothI Mean I'm Just Saying6+22-5
2026-10-05 07:11export: a cited home never loads the transcripts module; lint fixes; an [Unreleased] bullet for report and moment pagesI Mean I'm Just Saying5+12-4
2026-10-05 07:11common: component tests pass children as props; VerdictChip testsI Mean I'm Just Saying2+43-6
2026-10-05 07:01export: /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 siteI Mean I'm Just Saying29+1801-27
2026-10-05 07:01common: shared citation components — InlineCite with preview, CitationCard, ReferenceList, VerificationBadge, CitedMarkdown; VerdictChip and VerdictTallyI Mean I'm Just Saying8+881-4
2026-10-05 07:01common: report and moment page views (lib/report/views.ts) — the JSON compose writes and the export pages read; buildReportPageView, paths, placeholdersI Mean I'm Just Saying2+789-0
2026-10-05 07:11records: PUBLISH.md on reports prepare; an [Unreleased] bulletI Mean I'm Just Saying2+13-0
2026-10-05 07:11editor: the reports-prepare job kind (needsMedia, its own queue, replayable), POST /api/ops/reports-prepare and pnpm ops reports-prepareI Mean I'm Just Saying8+169-0
2026-10-05 07:11common: 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 listedI Mean I'm Just Saying4+640-0
2026-10-05 07:11common: publish/citedPostCaptures.ts copies only the cited posts' captures; the posts-media guard allows exactly that moduleI Mean I'm Just Saying3+297-7
2026-10-05 07:11common: 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 MiBI Mean I'm Just Saying2+661-0
2026-10-05 06:50common: the corpus half of the local-source lookup (lib/evidenceClip.mjs); report-to-video's sources.mjs and cutArgs take it from thereI Mean I'm Just Saying4+453-251
2026-10-05 06:50common: a report claim may carry a short title; a source may carry a noteI Mean I'm Just Saying4+6-0
2026-10-05 06:39common: a site's report ids use the report document's id rule — one definitionI Mean I'm Just Saying1+5-3
2026-10-05 06:36Merge 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 Saying23+2379-36
2026-10-05 06:33records: an [Unreleased] bullet for the report document and the citation modelI Mean I'm Just Saying1+1-0
2026-10-05 06:28common: the report document (lib/report/): schema, validation, reading order, cited-in index; REPORT.md + CITATIONS.md generatedI Mean I'm Just Saying12+1155-6
2026-10-05 06:18common: the citation model (lib/citations/): schema, validation, moment keys, inline citesI Mean I'm Just Saying5+1072-0
2026-10-05 06:17common: the verdict vocabulary moves to common/lib/report/verdicts.mjs; factcheck.mjs takes it from thereI Mean I'm Just Saying5+151-30
2026-10-05 06:16Merge 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 Saying8+259-0
2026-10-05 06:14editor: the site form's Publish control and a read-only Reports list; the save keeps the stored reports; an [Unreleased] bulletI Mean I'm Just Saying5+131-0
2026-10-05 06:11common: site.json `publish` ("full" | "cited") and `reports` (ordered report ids); SITE.md regeneratedI Mean I'm Just Saying3+128-0
2026-10-05 06:10plans: report sites in progressI Mean I'm Just Saying1+1-1
2026-10-05 06:10plans: report sites — the citation system is the core (one model, inline syntax, shared components, back-links, round trip)I Mean I'm Just Saying1+23-3
2026-10-05 06:09plans: report sites — a site's reports, cited-only publishing and moment pagesI Mean I'm Just Saying1+156-0
2026-10-05 05:50Merge chunked-xfade (report-to-video assembles a long cut in crossfaded batches, then joins them: bounded memory, same frames)I Mean I'm Just Saying4+440-16
2026-10-05 05:48records: report-to-video README on the batched crossfade (render.xfadeBatch, REPORT_VIDEO_XFADE_BATCH, xfade-batches/); an [Unreleased] bulletI Mean I'm Just Saying2+24-3
2026-10-05 05:48report-to-video: a long cut is crossfaded in batches, then the batch files are crossfaded togetherI Mean I'm Just Saying2+416-13
2026-10-05 05:16Merge 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 Saying3+88-1
2026-10-05 05:16common: a metadata-scan members-only or private verdict keeps a video out of the download queueI Mean I'm Just Saying3+88-1
2026-10-05 02:10Merge 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 Saying17+620-27
2026-10-05 02:09editor: 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] bulletI Mean I'm Just Saying7+113-8
2026-10-05 02:07common: 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 gapI Mean I'm Just Saying4+357-6
2026-10-05 02:04common: fetchPosts refuses an older walk over an account that shows no posts unless forced; takes the job's drain; the CLI takes --forceI Mean I'm Just Saying3+50-4
2026-10-05 02:04common: X fetches honour Drain at a resume point; an older walk over an empty archive that finds nothing stops after two empty windowsI Mean I'm Just Saying3+100-9
2026-10-05 00:14Merge 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 Saying23+2098-46
2026-10-05 00:13editor: capture-posts takes articles (default true) through the route, action, replay and pnpm ops; a route test; the [Unreleased] bulletI Mean I'm Just Saying7+97-9
2026-10-05 00:13common: the post viewer's capture panel shows the article's title and a link to article.mdI Mean I'm Just Saying3+40-7
2026-10-05 00:13common: tests for the X Article capture and its place in the run; the post dir exists before the images landI Mean I'm Just Saying2+474-1
2026-10-05 00:09common: capture-posts opens the X Article a post links to (articles, default on) and saves it beside the postI Mean I'm Just Saying9+736-30
2026-10-05 00:09common: read an X Article's HTML into blocks and markdown; find a post's article linkI Mean I'm Just Saying3+752-0
2026-10-04 22:56common: a merged persist records its height (the format print falls back to the selected video stream)I Mean I'm Just Saying1+9-4
2026-10-04 22:43Merge 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 Saying6+294-82
2026-10-04 22:38report-to-video: an encode test for --audio-fallback; README and the [Unreleased] bullet on --no-network's picture ruleI Mean I'm Just Saying3+116-9
2026-10-04 22:34report-to-video: --no-network refuses a clip whose picture is missing even when its sound is on disk; --audio-fallback plays it under a posterI Mean I'm Just Saying3+178-73
2026-10-04 21:25Merge shoot-page-crop (shoot-page --crop mark: the quote's lines plus whole context lines, not the whole block)I Mean I'm Just Saying4+209-29
2026-10-04 21:24report-to-video: shoot-page's mark crop in the README and the changelog bulletI Mean I'm Just Saying2+14-3
2026-10-04 21:24report-to-video: shoot-page --crop mark — the quote's lines and whole context lines, not the blockI Mean I'm Just Saying2+195-26
2026-10-04 21:20Merge 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 Saying14+1162-78
2026-10-04 21:16report-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 Saying3+6-5
2026-10-04 21:16report-to-video: check-availability skips a clip with its own srcI Mean I'm Just Saying1+3-1
2026-10-04 21:14records: report-to-video README on the audio tier, the poster and src/cues clips; an [Unreleased] bulletI Mean I'm Just Saying4+74-5
2026-10-04 21:13report-to-video: tests for src/cues and the audio poster; the poster's waveform is bounded and drawn at full colourI Mean I'm Just Saying3+334-2
2026-10-04 20:54report-to-video: an audio tier, a poster where a source has no picture, and clips with their own src/cuesI Mean I'm Just Saying8+752-72
2026-10-04 20:38Merge 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 Saying10+1100-198
2026-10-04 20:38report-to-video: shoot-page's cwd-derived paths opt out of the build traceI Mean I'm Just Saying1+5-5
2026-10-04 20:36editor: a retried clip-window fetch keeps its maxHeightI Mean I'm Just Saying2+2-0
2026-10-04 20:36records: report-to-video README on where a clip's source comes from and --no-network; an [Unreleased] bulletI Mean I'm Just Saying2+45-2
2026-10-04 20:32report-to-video: tests for the local-source tiers, --no-network and the bench's agreement with themI Mean I'm Just Saying3+470-9
2026-10-04 20:30report-to-video: sources.mjs resolves a clip's media from disk before any fetchI Mean I'm Just Saying6+594-196
2026-10-04 20:34Merge 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 Saying16+1534-12
2026-10-04 20:34editor: POST /api/ops/persist-videos and pnpm ops persist-videosI Mean I'm Just Saying8+279-1
2026-10-04 20:34editor: persist-videos job kind, per-channel action, replayI Mean I'm Just Saying6+214-13
2026-10-04 20:34Merge 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 Saying22+693-19
2026-10-04 20:31changelog: fetch maxHeightI Mean I'm Just Saying1+1-0
2026-10-04 20:31umtool: fetch-via-editor --max-height; a whole-source fetch asks at the manifest's maxHeightSourceI Mean I'm Just Saying5+196-6
2026-10-04 20:29Merge 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 Saying5+896-1
2026-10-04 20:28mcp: fetch_clip takes an optional maxHeight and reports a file's heightI Mean I'm Just Saying6+199-11
2026-10-04 20:27report-to-video: shoot-page is a bin and an export; README section and changelog bulletI Mean I'm Just Saying4+60-1
2026-10-04 20:26report-to-video: shoot-page walks the DOM by hand, keeps marks layout-neutral, isolates the blockI Mean I'm Just Saying2+86-22
2026-10-04 20:26editor: fetch-window takes an optional maxHeight; a cached hit reports its heightI Mean I'm Just Saying10+297-2
2026-10-04 20:25common: persistVideos — persist an explicit list of videos to the storeI Mean I'm Just Saying3+1043-0
2026-10-04 20:22Merge 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 Saying27+1939-111
2026-10-04 20:21report-to-video: shoot-page — a highlighted sentence from a saved page, as a PNGI Mean I'm Just Saying2+772-0
2026-10-04 20:21umtool: 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 Saying2+14-1
2026-10-04 20:17Merge 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 Saying30+939-49
2026-10-04 20:17common: video_720 tries split pairs before single-file rungsI Mean I'm Just Saying2+41-18
2026-10-04 20:16Merge 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 Saying21+2245-26
2026-10-04 20:15common: PostModal shows a post's capture behind an editor-only propI Mean I'm Just Saying2+151-3
2026-10-04 20:15editor: capture-posts — server action, ops route, replay, pnpm opsI Mean I'm Just Saying8+217-0
2026-10-04 20:13common: video_720 gains codec-agnostic rungs at or under 720p before the last resortI Mean I'm Just Saying4+15-6
2026-10-04 20:13records: 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] bulletI Mean I'm Just Saying3+86-5
2026-10-04 20:11common: capturePosts controller and the capture-posts job kindI Mean I'm Just Saying3+364-0
2026-10-04 20:11common: X post capture — a screenshot and the attached media per post idI Mean I'm Just Saying8+1513-23
2026-10-04 20:11umtool: 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 screenshotsI Mean I'm Just Saying15+929-57
2026-10-04 20:09editor: Persist source video quality select; source video quality in settings and channel formsI Mean I'm Just Saying11+177-14
2026-10-04 20:09common: persists honour persistFormatPreset and record the format takenI Mean I'm Just Saying8+479-11
2026-10-04 20:09common: sourceVideoQuality setting and per-channel overrideI Mean I'm Just Saying8+51-3
2026-10-04 20:09common: video_720 download preset; clipFormatSelector moves to downloadFormat; source-video quality resolverI Mean I'm Just Saying3+200-21
2026-10-04 20:04report-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 cardI Mean I'm Just Saying9+910-48
2026-10-03 19:48Merge 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 Saying4+60-6
2026-10-03 19:48common: X reads wait a random 4–10 s per request; older-posts windows a random 45–120 s apartI Mean I'm Just Saying4+60-6
2026-10-03 17:37Merge 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 Saying23+1793-41
2026-10-03 17:33editor: Fetch older posts — button, action param, ops route, replayI Mean I'm Just Saying15+265-9
2026-10-03 17:29common: tests for the older-posts backfillI Mean I'm Just Saying3+612-0
2026-10-03 17:25common: X older-posts backfill through search windowsI Mean I'm Just Saying5+916-32
2026-10-03 17:20Merge 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 Saying4+82-18
2026-10-03 17:20mcp: a search date bound is normalised, or refused — never silently droppedI Mean I'm Just Saying4+82-18
2026-10-02 23:19Merge 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 Saying4+79-1
2026-10-02 23:19ops: transcribe-bucket, the channel page's "Transcribe N downloaded" over HTTPI Mean I'm Just Saying4+79-1
2026-10-02 22:54gerge branch 'ops-retry-bucket-ids'I Mean I'm Just Saying6+117-5
2026-10-02 21:59ops: retry-bucket takes "ids", a subset of the named bucketI Mean I'm Just Saying6+117-5
2026-10-02 21:54common: an X post from gallery-dl carries its reply and repost flagsI Mean I'm Just Saying3+135-9
2026-10-02 21:04Merge 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 Saying21+1205-113
2026-10-02 21:03records: 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 dipI Mean I'm Just Saying2+21-6
2026-10-02 19:20common: an X post fetch keeps what it read when cancelled, timed out or failed, and resumes from gallery-dl's cursorI Mean I'm Just Saying6+722-82
2026-10-02 18:26plans: 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 onesI Mean I'm Just Saying1+3-2
2026-10-02 18:23plans: release 17 — the saved-video store's marker cleared by the operator; the store is in place, its move waits on the platterI Mean I'm Just Saying2+7-8
2026-10-02 16:57plans: 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 operatorI Mean I'm Just Saying2+36-6
2026-10-02 15:06plans: "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 centreI Mean I'm Just Saying1+16-0
2026-10-02 15:04report-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 soI Mean I'm Just Saying4+33-25
2026-10-02 15:03report-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 standsI Mean I'm Just Saying3+116-19
2026-10-02 14:21records: 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 Saying2+49-13
2026-10-02 14:21report-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 themI Mean I'm Just Saying6+238-42
2026-10-02 14:07records: 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.mdI Mean I'm Just Saying3+100-4
2026-10-02 14:05mcp: 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.tsI Mean I'm Just Saying4+72-3
2026-10-02 14:05report-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 siteChannelI Mean I'm Just Saying10+599-30
2026-10-02 13:47report-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 stackI Mean I'm Just Saying3+16-26
2026-10-02 07:16plans: release 17 — the rollout as it went: the builds, the restarts, the ten-channel migration and the stop, the live proofI Mean I'm Just Saying1+16-0
2026-10-02 07:15plans: STATE — release 17 complete and live; the migration's ten channels and the three held; what the operator owesI Mean I'm Just Saying1+26-1
2026-10-02 06:32plans: release 17 — T3's re-review: what the reclaim twin check acceptsI Mean I'm Just Saying1+2-0
2026-10-02 06:30plans: release 17 — the Rollout steps (editor, umtool, the migration, X posts private, records)I Mean I'm Just Saying1+11-0
2026-10-02 06:30Merge 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 SHIPI Mean I'm Just Saying13+2210-25
2026-10-02 06:28plans: 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 followI Mean I'm Just Saying3+55-13
2026-10-02 06:26docs: 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 Saying5+5-5
2026-10-02 06:26common: review L1, L2, L4 — reclaim only what this tool migrated, only with a twin on the corpus disk; dead temps stay on the platterI Mean I'm Just Saying2+222-43
2026-10-02 06:26common: review L4 — a Syncthing temp (.syncthing.<name>.tmp) is scratchI Mean I'm Just Saying2+4-0
2026-10-02 06:14plans: slice T3's record — the migration as shipped, its gates; FACTS "A channel's media is tiered"I Mean I'm Just Saying2+189-0
2026-10-02 06:13docs: AGENTS.md's media section for the tier (seven things), and the migrate-tier changelog bulletI Mean I'm Just Saying2+39-20
2026-10-02 06:10common: archilyzer storage migrate-tier — the one-off migration off the retired whole-directory layoutI Mean I'm Just Saying3+1752-0
2026-10-02 05:56Merge 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 SHIPI Mean I'm Just Saying50+2690-863
2026-10-02 05:56plans: slice T2's re-review — R1, the mixed rollback cases and the gates at the tipI Mean I'm Just Saying1+11-0
2026-10-02 05:51common: re-review — a mixed location's re-point rolls back as oneI Mean I'm Just Saying1+40-0
2026-10-02 05:51editor: re-review R1 — the text stall is asked first, and a legacy channel is not lstat'dI Mean I'm Just Saying2+32-13
2026-10-02 05:46plans: slice T2's review — H1, L2-L4, N5-N9 to their commits, the merge of main 9ee7f1ee and the gates after itI Mean I'm Just Saying3+57-15
2026-10-02 05:40Merge main (9ee7f1ee: RL) into r17/media-tier-moverI Mean I'm Just Saying50+3624-97
2026-10-02 05:37plans: 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 Saying2+7-3
2026-10-02 05:37Merge 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 SHIPI Mean I'm Just Saying49+3617-94
2026-10-02 05:35plans: 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 mergeI Mean I'm Just Saying1+20-0
2026-10-02 05:30common, editor: review N6 — legacy channels on the corpus row are to migrate, not unmeasuredI Mean I'm Just Saying3+47-5
2026-10-02 05:30editor: review N7, N8 — the drive is chosen by the link, and a 503 means a driveI Mean I'm Just Saying3+43-30
2026-10-02 05:30common: review L4 — the live-chat archive counts what it left outI Mean I'm Just Saying1+16-2
2026-10-02 05:30common, editor: review L3, N9, N5 — a tier migration's marker is never cleared or previewed past; identity before tieringI Mean I'm Just Saying3+32-12
2026-10-02 05:30common: review L2 — a legacy channel's rename is refused, naming migrate-tierI Mean I'm Just Saying2+38-2
2026-10-02 05:30editor: a held platform on a paused lane says the lane is paused (re-review R5)I Mean I'm Just Saying1+19-1
2026-10-02 05:30common: 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 Saying5+108-2
2026-10-02 05:28common: review H1 — a re-point carries a legacy channel the retired wayI Mean I'm Just Saying2+151-40
2026-10-02 05:23plans: slice RL — the review (H1, H2, L1–L5, N9, N10 → commits), the rollout line, FACTS, the re-gateI Mean I'm Just Saying1+47-3
2026-10-02 05:19plans: slice T2 — the mover over media/ and the surfaces, as shippedI Mean I'm Just Saying3+218-0
2026-10-02 05:15editor: Clear hold's sentence outlives the strip it empties (review H2)I Mean I'm Just Saying2+25-11
2026-10-02 05:09Merge main (d74c2848: U2, deck finale) into r17/media-tier-moverI Mean I'm Just Saying46+5513-319
2026-10-02 05:09editor: 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 Saying5+189-15
2026-10-02 05:09common: 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 Saying16+388-53
2026-10-02 05:09common: 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 Saying4+90-8
2026-10-02 05:09common, editor: the re-point names migrate-tier for a legacy channel; the reconcile spec's changed file differs in lengthI Mean I'm Just Saying3+38-1
2026-10-02 05:00editor: the directory loader's comment names no corpus walkerI Mean I'm Just Saying1+2-2
2026-10-02 04:56editor: e2e rebased on the media tierI Mean I'm Just Saying3+390-110
2026-10-02 04:51common, editor: a move is held by the channel's media writers onlyI Mean I'm Just Saying10+111-23
2026-10-02 04:47common: the live-chat archive reads no raw replay while the media is awayI Mean I'm Just Saying1+40-8
2026-10-02 04:47editor: the media tier on the Storage panel, the video pages and the file routeI Mean I'm Just Saying14+318-127
2026-10-02 04:47plans: slice RL, as shipped — the record, the gates, the deviations, the open questionI Mean I'm Just Saying1+165-0
2026-10-02 04:41Merge main (d74c2848: U2) into r17/rate-limit-adapts — clean; U2 touches umtool, the changelog and the plans onlyI Mean I'm Just Saying46+5513-319
2026-10-02 04:39common: the mover over media/ — a move carries channels/<slug>/media, never data/I Mean I'm Just Saying25+1233-600
2026-10-02 04:37Merge 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 SHIPI Mean I'm Just Saying21+1847-92
2026-10-02 04:35plans: slice U2 — the merge of main 5c877a7f and the gates after itI Mean I'm Just Saying1+12-1
2026-10-02 04:28Merge main (5c877a7f) into r17/umtool-deliverablesI Mean I'm Just Saying112+8947-1046
2026-10-02 04:27plans: slice U2's review (H1, N1, N2; L1 a follow-up), the corrected busy-scan claim, and the gates after the fixesI Mean I'm Just Saying2+28-6
2026-10-02 04:27Merge 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 SHIPI Mean I'm Just Saying28+3663-225
2026-10-02 04:26plans: the handoff -- the frame-grid fix, main merged in, the gates at the merge, the ferret cut's first use of feed + beat + dipI Mean I'm Just Saying1+22-0
2026-10-02 04:22Merge main (de5b77d5: D0, T1) into r17/rate-limit-adapts — both changelog sides keptI Mean I'm Just Saying85+5282-820
2026-10-02 04:20plans: release 17 — the record names the refused suffix by description, not by its textI Mean I'm Just Saying1+3-2
2026-10-02 04:19Merge 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 SHIPI Mean I'm Just Saying63+3463-637
2026-10-02 04:18plans: slice T1 — the merge of main 1aac4984 and its re-gatesI Mean I'm Just Saying1+12-0
2026-10-02 04:17umtool: review N2 — deliverables.spec asserts the route's 409 for a move while the cut runsI Mean I'm Just Saying1+5-1
2026-10-02 04:17umtool: review H1, N1 — the busy scan sees a cut or batch by --project; check flags a media link under no keyI Mean I'm Just Saying6+262-74
2026-10-02 04:11Merge branch 'main' into deck/finale-dipI Mean I'm Just Saying86+5517-246
2026-10-02 04:09editor: the video page's subtitle-deferral line reads a GET route, not a server actionI Mean I'm Just Saying3+34-18
2026-10-02 04:09plans: slice U2's record (the deliverables switch) and FACTS "umtool's deliverables switch"I Mean I'm Just Saying2+161-0
2026-10-02 04:01Merge main (1aac4984: D0 on U1, export 0.11.1, XP) into r17/media-tier-modelI Mean I'm Just Saying123+11546-523
2026-10-02 03:54Merge 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 SHIPI Mean I'm Just Saying27+1819-183
2026-10-02 03:54plans: slice D0 — the merge of main 3ead8acf and its re-gatesI Mean I'm Just Saying1+6-0
2026-10-02 03:49umtool: deliverables.spec — a batch's count includes the ids its LIST.md says were already sharedI Mean I'm Just Saying1+4-2
2026-10-02 03:36Merge main (3ead8acf: U1, XP) into r17/rate-limit-adapts — both changelog sides, both rulings and slice rows keptI Mean I'm Just Saying61+3698-63
2026-10-02 03:33plans: slice RL — the ruling, the FACTS entry, the dated note on the 2026-09-25 postmortem, the changelog bulletsI Mean I'm Just Saying4+110-0
2026-10-02 03:27Merge main (3ead8acf: U1 umtool media root, export 0.11.1, XP X posts private) into r17/dashboard-answersI Mean I'm Just Saying98+9727-340
2026-10-02 03:22plans: 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 showsI Mean I'm Just Saying2+17-3
2026-10-02 03:18Merge main into r17/umtool-deliverablesI Mean I'm Just Saying37+1843-40
2026-10-02 03:18umtool: Move deliverables on the bench; deliverables.spec; docs and changelogI Mean I'm Just Saying9+492-8
2026-10-02 03:18editor: e2e for the subtitle deferral, the hold and the clean probe; the fake's dl429 obeys --ignore-errorsI Mean I'm Just Saying7+394-68
2026-10-02 03:15editor: both ops refresh-report forms answer once queued, with the ids --wait follows (D0 re-review R1)I Mean I'm Just Saying3+87-45
2026-10-02 03:15editor: 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 Saying3+89-71
2026-10-02 03:15common: requestRefreshReport, a bounded waitForRefreshReport and its notice (D0 re-review R1, R2, R3)I Mean I'm Just Saying2+189-9
2026-10-02 03:12Merge 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 SHIPI Mean I'm Just Saying36+1842-39
2026-10-02 03:12editor: the lane page shows holds, the pace and deferred subtitles; held platforms refuse manual fetches; doctor reports pacingI Mean I'm Just Saying10+377-11
2026-10-02 03:11umtool: the deliverables switch — storage.deliverables, deliverableDir, umtool storage deliverablesI Mean I'm Just Saying9+935-52
2026-10-02 03:11plans: slice XP — the merge of main (U1) and its re-gateI Mean I'm Just Saying1+3-1
2026-10-02 03:08Release export 0.11.1I Mean I'm Just Saying1+1-1
2026-10-02 03:07Merge main (e049b235, slice U1) into r17/x-posts-private — both records kept under ## Record (U1's section before XP's), both changelog sides keptI Mean I'm Just Saying26+1855-23
2026-10-02 03:06common: a subtitle 429 never fails a download, and the pace adapts per platformI Mean I'm Just Saying26+1810-63
2026-10-02 03:03plans: slice XP — the review, its fixes, the rollout steps (the hub rebuild, old Pages deployments) and the gates after itI Mean I'm Just Saying2+90-2
2026-10-02 03:02plans: 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 followI Mean I'm Just Saying2+51-3
2026-10-02 02:56Merge 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 fixesI Mean I'm Just Saying26+1855-23
2026-10-02 02:55plans: slice U1's re-review (R1, R2, N6) and the gates after themI Mean I'm Just Saying1+6-0
2026-10-02 02:55umtool: re-review — a real out/ beside a leftover says what to do by hand; stat a linked project; leftover skips only for the moved namesI Mean I'm Just Saying4+38-9
2026-10-02 02:50plans: slice U1's review (SHIP AFTER FIXES), its fixes and the gates after themI Mean I'm Just Saying1+34-0
2026-10-02 02:43report-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; testsI Mean I'm Just Saying6+53-12
2026-10-02 02:14plans: slice T1's re-review (SHIP), R1 and R2 folded in; FACTSI Mean I'm Just Saying2+12-2
2026-10-02 02:10common: the hook's media-side temp is scratch and a dead process's is swept (re-review R2)I Mean I'm Just Saying4+28-1
2026-10-02 02:10common: 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 Saying2+47-6
2026-10-02 02:04plans: slice T1's review, its fixes and the gates after themI Mean I'm Just Saying1+43-13
2026-10-02 01:53editor(e2e): the report's own refresh-report job is not the bulk delete's; dashboard-answers warms the ops route firstI Mean I'm Just Saying2+17-1
2026-10-02 01:27plans: "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 fixI Mean I'm Just Saying1+25-1
2026-10-02 01:24docs: 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 thirdI Mean I'm Just Saying1+12-0
2026-10-02 01:24umtool: 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 Saying1+1-1
2026-10-02 01:23docs: 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 Saying5+10-7
2026-10-02 01:23report-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 soI Mean I'm Just Saying6+69-12
2026-10-02 01:21report-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 soI Mean I'm Just Saying8+91-26
2026-10-02 01:17report-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 unrunI Mean I'm Just Saying2+49-11
2026-10-02 01:16umtool: isMediaLink's parameter type names the dirent's name (tsc)I Mean I'm Just Saying1+1-1
2026-10-02 01:16report-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 Saying3+19-5
2026-10-02 01:11umtool: e2e never takes the shell's media root; doctor ok = exit status; move skips a building projectI Mean I'm Just Saying10+84-8
2026-10-02 01:11umtool: storage review fixes — own-mirror-only delete, leftover guard, no ghost mirrorI Mean I'm Just Saying2+174-19
2026-10-02 01:10plans, 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 Saying2+9-3
2026-10-02 01:10common, 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 Saying5+45-7
2026-10-02 01:10common: 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 Saying2+122-35
2026-10-02 01:10common: 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 Saying2+138-9
2026-10-02 01:05editor: changelog — the compose-cache fix, the hub's data, and the restart and redeploy notes (review LOW 5)I Mean I'm Just Saying1+4-2
2026-10-02 01:05common: 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 Saying3+71-6
2026-10-02 01:05common: 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 Saying4+114-0
2026-10-02 00:59common, editor(e2e): a unit test pins the yield; the e2e budget is capped at 15 s (D0 review L5)I Mean I'm Just Saying3+54-4
2026-10-02 00:59editor: the per-channel Refresh report runs on the refresh-report queue (D0 review L3)I Mean I'm Just Saying2+45-14
2026-10-02 00:59common: a running regeneration gets one queued successor; REFRESH_REPORT_QUEUE in queueKeys (D0 review L2, N7)I Mean I'm Just Saying3+82-23
2026-10-02 00:59common, editor: the status memo is keyed by the settings its fold reads (D0 review H1, N8, N9)I Mean I'm Just Saying5+85-45
2026-10-02 00:58docs: 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 Saying3+98-0
2026-10-02 00:56plans: slice U1, as shipped — umtool's render scratch goes to a media rootI Mean I'm Just Saying1+175-0
2026-10-02 00:53report-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 stepI Mean I'm Just Saying3+35-6
2026-10-02 00:51plans: slice XP, as shipped — X posts are private; the ruling, the slices row, FACTS, the editor changelogI Mean I'm Just Saying3+208-1
2026-10-02 00:50plans: slice T1 as shipped — the classifier, the media link and the two guards; FACTS; the editor changelogI Mean I'm Just Saying3+222-0
2026-10-02 00:46common, umtool: a scope-less marker aimed at <root>/<slug>/data holds the text; the hook writes nothing under a markerI Mean I'm Just Saying6+70-6
2026-10-02 00:46report-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 sectionI Mean I'm Just Saying3+106-21
2026-10-02 00:44common: compose re-composes only a site's own stages after another site's compose; the per-channel trees keep their signaturesI Mean I'm Just Saying1+9-4
2026-10-02 00:44plans: slice D0's record — the dashboard answers while a snapshot regenerates, as shipped; the editor changelogI Mean I'm Just Saying2+155-0
2026-10-02 00:41report-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 fadeI Mean I'm Just Saying2+517-1
2026-10-02 00:29report-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 didI Mean I'm Just Saying1+192-67
2026-10-02 00:29report-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 Saying4+234-43
2026-10-02 00:13Merge branch 'deck/teaser-v1' into deck/finale-dipI Mean I'm Just Saying10+304-49
2026-10-02 00:13Merge branch 'deck/feed-f1' into deck/finale-dipI Mean I'm Just Saying18+1926-63
2026-10-01 22:18docs: the posts feed -- README, quirks, the [Unreleased] entry and "Feed F1, as built"I Mean I'm Just Saying4+186-1
2026-10-01 21:48report-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.urlI Mean I'm Just Saying1+6-2
2026-10-01 21:39editor(e2e): dashboard-answers — two 600-video channels regenerated one after the other, the budget floored on the idle page timeI Mean I'm Just Saying1+98-41
2026-10-01 21:39common: compose never ships a posts tree the index build withheld, and trusts its cache only over its own site's last composeI Mean I'm Just Saying2+74-4
2026-10-01 21:26common, umtool: the lanes by tier, normalize-live-chat's media guard, the cues twin as a text guardI Mean I'm Just Saying8+516-134
2026-10-01 21:19editor(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 boxI Mean I'm Just Saying3+193-0
2026-10-01 21:19editor: Where X posts appear on /settings, a site's Audience, and the deploy actions refuse a private siteI Mean I'm Just Saying8+198-6
2026-10-01 21:19common: X posts are private — social.x.visibility, a site's audience, one predicate for both builds, and the deploy refusalI Mean I'm Just Saying19+889-24
2026-10-01 21:15common, editor: every media finalisation tiers, every deleter derefsI Mean I'm Just Saying14+133-19
2026-10-01 21:15common: the media tier's model — mediaDir, legacy, the text guard, lanes and builds by tierI Mean I'm Just Saying36+1339-479
2026-10-01 21:06report-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 movesI Mean I'm Just Saying1+6-5
2026-10-01 20:59umtool: the posts layout switch (popup | feed); the preview lays the feed over the whole cut and frames the footage in the feed's boxI Mean I'm Just Saying8+550-20
2026-10-01 20:58editor(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 moveI Mean I'm Just Saying2+301-0
2026-10-01 20:58report-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 heldI Mean I'm Just Saying6+1185-42
2026-10-01 20:57umtool: docs and changelog for the media root and the cache's new placeI Mean I'm Just Saying3+35-2
2026-10-01 20:52umtool: storage tests; e2e cache in the fixture; a storage spec over a media rootI Mean I'm Just Saying9+602-7
2026-10-01 20:51common, editor: boot closes the running metas a dead process left behindI Mean I'm Just Saying6+315-11
2026-10-01 20:51common, editor: the auto-queue status poll shares one fold of the snapshotsI Mean I'm Just Saying4+205-5
2026-10-01 20:51common: a report regeneration yields to the event loop, and runs one at a timeI Mean I'm Just Saying4+218-103
2026-10-01 20:51plans: Teaser V1, as built — the beat, nothing squeezed, the gates and the four variantsI Mean I'm Just Saying1+51-0
2026-10-01 20:46Merge main (a210dace, the deck/posts-room branch) into r17/umtool-media-rootI Mean I'm Just Saying43+6029-277
2026-10-01 20:41umtool: out/ through ensureOutDir; storage movers; doctor roots; storage CLII Mean I'm Just Saying11+677-13
2026-10-01 20:41umtool: MEDIA_ROOT beside REPORTS_ROOT; CACHE_DIR moves to the user cacheI Mean I'm Just Saying2+69-4
2026-10-01 20:39docs: a teaser's `beat`, its proportions, and the length a teaser without `seconds` getsI Mean I'm Just Saying3+26-9
2026-10-01 20:33Merge 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 SHIPI Mean I'm Just Saying43+6029-277
2026-10-01 20:33report-to-video: a teaser's `beat` sets the seconds between its pops; nothing is squeezed to fitI Mean I'm Just Saying7+228-41
2026-10-01 20:32Merge main (9babe0ee) into deck/posts-room — the join before the room, finale, teaser and bench landI Mean I'm Just Saying3+337-7
2026-10-01 20:32common: the media tier's classifier and its hook (mediaTier.ts, mediaTier-server.ts)I Mean I'm Just Saying4+804-0
2026-10-01 20:32docs: the bench's changelog bullet says a mark within 0.02 s of a moved edge is clamped onto it, not refusedI Mean I'm Just Saying1+1-1
2026-10-01 20:30plans: the fix pass after the finale review — FIX-A, FIX-B, LOW-1 to LOW-7, the gatesI Mean I'm Just Saying1+42-0
2026-10-01 20:22plans: release 17 — the media tier (plan + record file); step 0a doneI Mean I'm Just Saying1+326-0
2026-10-01 20:22docs: 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 LUFSI Mean I'm Just Saying4+28-11
2026-10-01 20:21report-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 Saying3+66-2
2026-10-01 20:17report-to-video: the teaser segment's key carries the encode's parameters, so a crf, preset or audio change re-encodes it with the clipsI Mean I'm Just Saying3+25-12
2026-10-01 20:16report-to-video: a muteFrom past the cut's end is noted as not heard, not as muted from thereI Mean I'm Just Saying3+41-5
2026-10-01 20:16umtool: 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 savedI Mean I'm Just Saying2+29-1
2026-10-01 20:15umtool: the bench's audio decode runs the build's FFMPEG_BIN and is killed when its request is abortedI Mean I'm Just Saying1+8-3
2026-10-01 20:15umtool: the clip bench takes MUTE_FADE from a dependency-free mute.mjs, so deck.mjs stays out of its client bundleI Mean I'm Just Saying4+14-4
2026-10-01 20:12plans: the clip bench's exact playback and mute mark (slice B1), as built; one [Unreleased] bulletI Mean I'm Just Saying2+29-0
2026-10-01 20:11report-to-video: an end fade longer than the last segment is the segment, so its last frame is bgI Mean I'm Just Saying3+60-4
2026-10-01 19:48Merge 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 sheetI Mean I'm Just Saying15+1362-23
2026-10-01 19:47plans: the teaser (T1), as built — the line shape, hits, --chrome-only building teasers, the gatesI Mean I'm Just Saying1+61-0
2026-10-01 19:43docs: the teaser entry — README section, four quirks, one [Unreleased] bulletI Mean I'm Just Saying3+114-1
2026-10-01 19:34umtool: a teaser entry is a card row named by its lines; the teaser's supporting lines a size upI Mean I'm Just Saying5+24-8
2026-10-01 19:19umtool e2e: the posts and mute specs follow whole-frame holds and the build's mute fadeI Mean I'm Just Saying2+38-30
2026-10-01 19:19report-to-video: a `teaser` entry — a full-frame season-teaser card drawn from the manifest's words, with a trailer hit under each popI Mean I'm Just Saying7+1168-19
2026-10-01 19:01umtool: the bench's mute preview is the build's — one MUTE_FADE (0.04 s, from deck.mjs), a ramp that ends at the markI Mean I'm Just Saying2+18-8
2026-10-01 19:00Merge 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; reviewedI Mean I'm Just Saying10+1574-52
2026-10-01 18:50umtool: the following picture is pulled back to the sound, and its own pause no longer moves the playheadI Mean I'm Just Saying1+22-1
2026-10-01 18:46umtool: the bench's audio-clock playhead paints at 30 Hz, and the exact-stop spec checks the start against the scheduleI Mean I'm Just Saying2+22-7
2026-10-01 18:41plans: the crossfade drift is fixed (d8fc333d), not leftI Mean I'm Just Saying1+6-8
2026-10-01 18:41report-to-video: the crossfade concat pins every clip's sound to its picture's lengthI Mean I'm Just Saying6+127-13
2026-10-01 18:38Merge 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; reviewedI Mean I'm Just Saying11+999-56
2026-10-01 18:35plans: finale B2 as built — the review fixes, muteFrom, render.endFade, the fitted QR host label, the gatesI Mean I'm Just Saying1+64-0
2026-10-01 18:31umtool: the clip bench plays every bounded range from decoded audio, and sets a clip's mute markI Mean I'm Just Saying3+979-52
2026-10-01 18:28umtool: a clip's muteFrom is written by updateClip, and a window's sound is served decodedI Mean I'm Just Saying7+559-0
2026-10-01 18:21umtool: README, quirks and the changelog for muteFrom, render.endFade and the fitted QR host labelI Mean I'm Just Saying3+76-1
2026-10-01 18:18umtool: a clip's muteFrom and render.endFade, made where the cut is joined; the QR's host label runs the code's full heightI Mean I'm Just Saying5+673-26
2026-10-01 18:08umtool: the footage move runs after the hold, the freeze check samples only still picture, holds are whole framesI Mean I'm Just Saying7+187-30
2026-10-01 17:47umtool: an export with no chapters.ffmeta reads a deck cut's offsets from its schedule.json, holds includedI Mean I'm Just Saying1+16-1
2026-10-01 17:47Merge 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 sheetI Mean I'm Just Saying9+915-110
2026-10-01 17:46plans: room for posts R1 as built — the move by perspective, 24 px cards, the gatesI Mean I'm Just Saying1+56-0
2026-10-01 17:33report-to-video: docs for room for posts — the hold, the move, 4 s each, the cardsI Mean I'm Just Saying3+89-12
2026-10-01 17:32Merge 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 screenshotsI Mean I'm Just Saying8+601-57
2026-10-01 17:23report-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 pillI Mean I'm Just Saying2+81-39
2026-10-01 17:23report-to-video: room for posts in the build — the hold and the footage move are joined on the carrying clip's inputI Mean I'm Just Saying3+689-59
2026-10-01 17:21umtool e2e: the posts spec's timings at the fixture's 0.2 s crossfadeI Mean I'm Just Saying1+24-21
2026-10-01 17:10umtool e2e: the posts preview at the 4 s default with holds and the footage moving aside; make room off persists shift: falseI Mean I'm Just Saying1+191-13
2026-10-01 17:10umtool: room for posts in the On-screen section — hold and make-room settings, the held schedule, the footage moving aside in the previewI Mean I'm Just Saying7+407-44
2026-10-01 16:59plans: release 16 complete and live on :3001 — FK, RM, XL; STATEI Mean I'm Just Saying2+11-7
2026-10-01 16:59report-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 Saying4+170-16
2026-10-01 16:53Merge 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 SHIPI Mean I'm Just Saying31+2991-88
2026-10-01 16:53plans: slice XL's re-review (SHIP), the merge of main with slice RM, the gates after itI Mean I'm Just Saying1+17-1
2026-10-01 16:49Merge main (c9776bb5, slice RM) into r16/x-loginI Mean I'm Just Saying30+2923-173
2026-10-01 16:46Merge 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 SHIPI Mean I'm Just Saying30+2923-173
2026-10-01 16:39plans: slice RM — the review (SHIP AFTER FIXES), its fixes, the guard as it now is, the merge of main, the gates after themI Mean I'm Just Saying2+92-32
2026-10-01 16:32plans: 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 itI Mean I'm Just Saying2+131-33
2026-10-01 16:26Merge main (0512803e, plans only: slice XL's ruling) into r16/move-holds-writersI Mean I'm Just Saying1+25-0
2026-10-01 16:25editor: changelog — the review fixes in RM's bullet; a made-up video id in its exampleI Mean I'm Just Saying1+1-1
2026-10-01 16:25common, 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 Saying11+378-65
2026-10-01 16:22common: 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 oneI Mean I'm Just Saying8+604-120
2026-10-01 16:02plans: 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 changelogI Mean I'm Just Saying3+254-1
2026-10-01 16:01plans: slice XL's e2e run — 46 passedI Mean I'm Just Saying1+6-5
2026-10-01 15:35plans: slice XL as shipped — the Connect window without automation signals, the browser-login source, what was measured; FACTS; the editor changelogI Mean I'm Just Saying3+235-1
2026-10-01 15:27editor: the X account session shows the login source in use, checks whether an X login is visible in it, and lets the operator choose itI Mean I'm Just Saying4+305-39
2026-10-01 15:27common: 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 Saying23+1840-36
2026-10-01 15:00plans: 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 directlyI Mean I'm Just Saying1+25-0
2026-10-01 14:53editor(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 resumeI Mean I'm Just Saying2+245-1
2026-10-01 14:49editor: the Storage panel and the rack show a channel's media hold; Reconcile and resume; the busy sentence names the writerI Mean I'm Just Saying9+161-28
2026-10-01 14:49common: a media move refuses to start over a writer, holds the channel's writers while its marker stands, and mirrors its copy before verifyingI Mean I'm Just Saying15+1889-142
2026-10-01 14:29plans: slice RM — the remediation: a failed verification lists the differences by kind and the Storage panel offers Reconcile and resumeI Mean I'm Just Saying1+7-0
2026-10-01 14:19plans: release 16 slice RM — a media move refuses to start over a running job, holds the channel's writers, and mirrors its copy before verifyingI Mean I'm Just Saying1+21-0
2026-10-01 07:18plans: slice FK live on :3001; the posts deck merged and umtool rebuilt; what the operator still owesI Mean I'm Just Saying2+9-3
2026-10-01 07:14Merge 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 SHIPI Mean I'm Just Saying38+2040-297
2026-10-01 07:14plans: slice FK — the review (SHIP; L1 fixed in 8b68b475, I1–I3 recorded), brought to main 27f7d3a7, the gates after bothI Mean I'm Just Saying1+33-1
2026-10-01 07:05Merge branch 'main' into r16/forms-keep-inputI Mean I'm Just Saying28+3207-83
2026-10-01 07:05plans: 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 Saying2+17-6
2026-10-01 07:05editor: ChannelForm create's On create boxes seed only from a refused submit of their own kind (review L1)I Mean I'm Just Saying3+73-10
2026-10-01 06:49plans: 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 changelogI Mean I'm Just Saying3+199-1
2026-10-01 06:00editor: ControlledCheck/ControlledSelect put the value back after the reset only — never at mountI Mean I'm Just Saying1+42-23
2026-10-01 05:46editor(e2e): forms-keep-input reads a controlled element once, as the refusal showsI Mean I'm Just Saying1+50-24
2026-10-01 05:39Merge 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 mainI Mean I'm Just Saying26+3196-73
2026-10-01 05:39Merge main (7fa7dc21) into deck/posts — the join before posts landI Mean I'm Just Saying2+35-10
2026-10-01 05:37report-to-video: a deck that switches posts off is not held to the posts column's fit; embedFn's note sits above embedFnI Mean I'm Just Saying3+18-15
2026-10-01 05:36plans: posts on the deck — the review's verdict, its fixes in c0bb74dd and their gatesI Mean I'm Just Saying1+6-0
2026-10-01 05:31plans: releases 13–16 and the deck are in production (2026-10-01 01:31); STATE's Live lineI Mean I'm Just Saying2+11-10
2026-10-01 05:29report-to-video: the posts page names its planner itself, a deck without posts is never refused for the column, and qrencode takes -- before a URLI Mean I'm Just Saying11+85-22
2026-10-01 05:27editor(e2e): forms-keep-input — a refused submit keeps what was typed, one case per form the slice changedI Mean I'm Just Saying1+719-0
2026-10-01 05:21editor: the shared widgets' controlled checkboxes and selects survive the reset too — DurationField, SocialLinksField, SiteMembershipsSection, WorkersFieldI Mean I'm Just Saying4+30-12
2026-10-01 05:21editor: every other action form keeps what was typed — the operation settings, sync, drive timing, hub, cut release, saved videos, channels, video dirI Mean I'm Just Saying22+395-187
2026-10-01 05:19plans: posts on the deck, as shipped — the slice table, as built, the gates, what was left, the rolloutI Mean I'm Just Saying1+52-0
2026-10-01 05:19umtool 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 Saying1+7-12
2026-10-01 05:14editor: a form that fails keeps what was typed — formState's values contract, one Field, SiteForm and SettingsFormI Mean I'm Just Saying8+546-97
2026-10-01 05:12Merge 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 sheetI Mean I'm Just Saying9+1144-33
2026-10-01 05:03report-to-video: posts on the deck — README, quirks and changelogI Mean I'm Just Saying3+130-1
2026-10-01 05:03report-to-video: snapWindow lives in deck.mjs; posts leave front-loadedI Mean I'm Just Saying3+25-22
2026-10-01 04:55plans: 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 namedI Mean I'm Just Saying1+24-0
2026-10-01 04:49Merge 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; reviewedI Mean I'm Just Saying14+1547-36
2026-10-01 04:49umtool: e2e for posts on the deck — onscreen-posts.spec.ts and its fixtureI Mean I'm Just Saying2+301-1
2026-10-01 04:47report-to-video: posts on the deck — the posts region and its overlayI Mean I'm Just Saying5+1011-32
2026-10-01 04:43umtool: the On-screen section's Posts table, and the posts region in the live previewI Mean I'm Just Saying2+464-12
2026-10-01 04:40umtool: posts on the deck — updatePosts, the posts rows, and the posts region's preview windowsI Mean I'm Just Saying10+782-23
2026-10-01 04:29report-to-video: posts on the deck — the contract and the pure coreI Mean I'm Just Saying3+383-1
2026-10-01 04:01plans: 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 changedI Mean I'm Just Saying1+24-14
2026-10-01 04:00Merge 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 mainI Mean I'm Just Saying49+7481-158
2026-10-01 03:58plans: the on-screen deck, as shipped — the review fixes' row, the gates on 60b908a5, the review's verdict and its lowsI Mean I'm Just Saying1+17-1
2026-10-01 03:53report-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 deckI Mean I'm Just Saying2+70-29
2026-10-01 03:44plans: 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 Saying2+53-0
2026-10-01 03:34Merge 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; reviewedI Mean I'm Just Saying8+664-16
2026-10-01 03:30Merge main (b7d31d9a) into deck/integration — the join before the deck landsI Mean I'm Just Saying22+655-59
2026-10-01 03:24Merge 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; reviewedI Mean I'm Just Saying6+367-7
2026-10-01 03:22deck S6: onscreen.spec.ts, two deck fixtures and a HyperFrames stubI Mean I'm Just Saying4+635-4
2026-10-01 03:22umtool e2e: timeline-row locators name the timeline, not every [data-entry]I Mean I'm Just Saying3+16-11
2026-10-01 03:21deck S6: the On-screen table's reload after a 409 keeps only real editsI Mean I'm Just Saying1+13-1
2026-10-01 03:19deck S7: docs for the on-screen deckI Mean I'm Just Saying6+367-7
2026-10-01 03:09Merge 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 sheetI Mean I'm Just Saying3+506-11
2026-10-01 03:07plans: 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 countI Mean I'm Just Saying2+15-1
2026-10-01 03:07Merge 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 todayI Mean I'm Just Saying22+635-59
2026-10-01 02:56plans: 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 onlyI Mean I'm Just Saying1+6-0
2026-10-01 02:54plans: 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 mergeI Mean I'm Just Saying1+11-1
2026-10-01 02:53plans: 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 onceI Mean I'm Just Saying1+23-2
2026-10-01 02:33report-to-video: the hard-cut concat list names segments by absolute pathI Mean I'm Just Saying1+5-1
2026-10-01 02:17Merge 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 screenshotsI Mean I'm Just Saying4+1603-2
2026-10-01 02:15deck S5: On-screen section — errors beside the settings, switch follows the click, folded table when offI Mean I'm Just Saying1+164-126
2026-10-01 02:03deck S5: on-screen title and subtitle on the clip benchI Mean I'm Just Saying2+286-2
2026-10-01 01:59deck S5: the On-screen section on the report pageI Mean I'm Just Saying2+1279-0
2026-10-01 01:51deck S3: one command composes, renders and overlays the deck; hard cuts get applyChrome; --chrome-only, --no-chrome, --chrome-previewI Mean I'm Just Saying3+501-10
2026-10-01 01:41Merge 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); reviewedI Mean I'm Just Saying3+295-24
2026-10-01 01:39Merge 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 stillsI Mean I'm Just Saying5+1215-46
2026-10-01 01:36deck S2: the chart band keeps its font url when the copy fails, as it shippedI Mean I'm Just Saying1+1-1
2026-10-01 01:35deck S2: tests for the deck composition; an absolute out dir for the stillI Mean I'm Just Saying2+311-1
2026-10-01 01:31plans: 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 leftI Mean I'm Just Saying1+125-2
2026-10-01 01:24deck S2: the deck composition and the compose-chrome portI Mean I'm Just Saying4+905-46
2026-10-01 01:20Merge 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; reviewedI Mean I'm Just Saying18+1631-45
2026-10-01 01:17deck S4: the on-screen routes — chrome, onscreen, preview, files, still, videoI Mean I'm Just Saying8+783-0
2026-10-01 01:17deck S4: buildSteps' chromeOnly → --chrome-only, "re-render on-screen"I Mean I'm Just Saying3+59-9
2026-10-01 01:17deck S4: rangeResponse() shared by the segment route; the deck's serve helpersI Mean I'm Just Saying3+357-35
2026-10-01 01:17deck S4: the on-screen writers — updateOnscreen, updateChrome, updateClip's onscreenI Mean I'm Just Saying4+432-1
2026-10-01 01:13deck S1: write the deck's schedule; chapters prefer the on-screen titleI Mean I'm Just Saying2+156-3
2026-10-01 01:13deck S1: frame every segment into the deck's footage boxI Mean I'm Just Saying2+139-21
2026-10-01 01:04deck S0: export ./deck from umtool-report-to-videoI Mean I'm Just Saying1+1-0
2026-10-01 01:03deck S0: the on-screen deck's contract and pure coreI Mean I'm Just Saying5+1094-12
2026-10-01 01:01docs: the homepage's Ten-minute setup runs `pnpm --silent -C "$PWD" archilyzer mcp`I Mean I'm Just Saying5+35-7
2026-10-01 00:59Merge main (acd83ceb, release 13 W3 and W1 brought to main) into r13/lows-exportI Mean I'm Just Saying362+35454-6916
2026-10-01 00:53Merge 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 todayI Mean I'm Just Saying19+1131-48
2026-10-01 00:47plans: 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 Saying1+26-3
2026-10-01 00:45Merge main (b36ccebb, release 13 slice W3) into r13/lows-editor — the second joinI Mean I'm Just Saying13+1489-45
2026-10-01 00:42Merge 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 todayI Mean I'm Just Saying13+1491-45
2026-10-01 00:39plans: 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 Saying1+67-0
2026-10-01 00:36plans: release 13 slice W3's record names the merge by its reworded sha (d9a43d20, the same tree as f7a047ee)I Mean I'm Just Saying1+4-1
2026-10-01 00:35plans: 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 Saying1+85-0
2026-10-01 00:18Merge main (bbf1daf8, releases 14–16 and the 0.11.0 cut) into r13/build-imageI Mean I'm Just Saying298+31818-2533
2026-10-01 00:18Merge main (bbf1daf8) into r13/lows-editor — release 13 slice W1 brought to today's mainI Mean I'm Just Saying341+32834-6763
2026-09-30 23:53plans: 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'sI Mean I'm Just Saying2+38-14
2026-09-30 23:42Merge 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 SHIPI Mean I'm Just Saying24+521-206
2026-09-30 23:42plans: 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-upsI Mean I'm Just Saying3+46-8
2026-09-30 23:38homepage: the AI and MCP doc names fetch_clip as the one exception to "it only reads" (review L2)I Mean I'm Just Saying1+2-0
2026-09-30 23:38common: 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 Saying1+32-1
2026-09-30 23:22plans: 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 changelogsI Mean I'm Just Saying4+151-0
2026-09-30 23:07docs: mcp/README's two examples name the checkout /ABS/PATH/TO/archilyzer, the directory the clone makesI Mean I'm Just Saying1+2-2
2026-09-30 23:04export(e2e): responsive expects /changelog/ to overflow a phone until its long inline code wraps; homepage(e2e): the name's reason checked on its list itemI Mean I'm Just Saying2+10-3
2026-09-30 22:57docs: README §4's quickstart starts from the source, as the homepage doc's setup doesI Mean I'm Just Saying1+2-1
2026-09-30 22:57homepage: the AI and MCP doc's Ten-minute setup — clone, pnpm install, claude mcp add archilyzer against the Jeralyzer, claude, /askI Mean I'm Just Saying3+70-2
2026-09-30 22:57export: 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 docI Mean I'm Just Saying9+184-41
2026-09-30 22:57common: 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-aiI Mean I'm Just Saying5+23-150
2026-09-30 22:38docs: mcp/README registers archilyzer in both examples; README §1 registers from the repo root with "$PWD"I Mean I'm Just Saying2+8-7
2026-09-30 22:44plans: 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 copiesI Mean I'm Just Saying1+18-10
2026-09-30 22:34Merge 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 SHIPI Mean I'm Just Saying22+2007-87
2026-09-30 22:33plans: 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 STATEI Mean I'm Just Saying2+44-4
2026-09-30 22:29common: 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 Saying2+41-11
2026-09-30 22:27plans: 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 everywhereI Mean I'm Just Saying1+14-0
2026-09-30 22:18plans: slice CK after the review — the rulings, the fixes and the gates; the standing choice says what main did; FACTS; the changelogI Mean I'm Just Saying3+137-38
2026-09-30 22:01common: the Search in refusal line is a polite live region, not a second role="status"I Mean I'm Just Saying2+8-4
2026-09-30 21:44export(e2e): search-in after the review — a "Posts" leaf with Posts unticked, a tag chip finishes, no video type kept, the refusal describedI Mean I'm Just Saying2+70-7
2026-09-30 21:44common: 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 disabledI Mean I'm Just Saying7+137-38
2026-09-30 21:44common: 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 Saying3+166-1
2026-09-30 21:23plans: slice CK — the record's commit table carries the plans commit and the merge of the 0.11.0 cutI Mean I'm Just Saying1+3-1
2026-09-30 21:23Merge main (the 0.11.0 cut) into r16/search-in — the Search in bullet under a fresh [Unreleased]I Mean I'm Just Saying2+3-1
2026-09-30 21:22plans: slice CK, as shipped — a search reads what the visitor ticked; FACTS "Search in"; the export changelogI Mean I'm Just Saying3+248-0
2026-09-30 21:13Release export 0.11.0I Mean I'm Just Saying1+1-1
2026-09-30 21:13Release editor 0.11.0I Mean I'm Just Saying1+1-1
2026-09-30 20:59export(e2e): search-in.spec — the Search in row; the fixture's posts get words of their ownI Mean I'm Just Saying4+294-17
2026-09-30 20:21common: the Search in row — Transcripts, Posts, Live chat — on the export and hub searchI Mean I'm Just Saying5+256-48
2026-09-30 20:21common: the filter snapshot stores notr (Transcripts unticked) and lc (Live chat ticked)I Mean I'm Just Saying2+99-3
2026-09-30 20:21common: applySearchIn — a "transcripts" leaf reads the kinds the Search in row ticksI Mean I'm Just Saying4+587-0
2026-09-30 20:03plans: 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 Saying1+42-0
2026-09-30 14:18plans: release 15's Rollout and STATE carry DT and SG — six slices, the homepage owed again for the history, the timings tuned on /storageI Mean I'm Just Saying2+14-9
2026-09-30 14:18Merge 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 SHIPI Mean I'm Just Saying33+3453-286
2026-09-30 14:17plans: slice SG — the re-review's row: a withdrawal never fails over the render cacheI Mean I'm Just Saying1+1-0
2026-09-30 14:17common: 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 dirI Mean I'm Just Saying2+48-2
2026-09-30 14:13plans: 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 noindexI Mean I'm Just Saying2+86-27
2026-09-30 14:12docs: 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 withoutI Mean I'm Just Saying1+20-7
2026-09-30 14:07common: 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 Saying5+361-49
2026-09-30 14:07homepage: /source/git/* is X-Robots-Tag: noindex, like the raw tree (review M1, ruled); pinned in headers.test.ts, with the pages' own types keptI Mean I'm Just Saying2+20-0
2026-09-30 13:43plans: 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 refreshedI Mean I'm Just Saying2+104-36
2026-09-30 13:39common: 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 Saying2+45-9
2026-09-30 13:37Merge 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'sI Mean I'm Just Saying39+1660-187
2026-09-30 13:34changelog: the history's cap and the render cache's place, in the editor and homepage [Unreleased] bulletsI Mean I'm Just Saying2+2-2
2026-09-30 13:34docs: 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 lineI Mean I'm Just Saying1+33-20
2026-09-30 13:34homepage: 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 pageI Mean I'm Just Saying5+34-6
2026-09-30 13:34common: 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 Saying2+32-7
2026-09-30 13:34common: 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 themI Mean I'm Just Saying10+446-173
2026-09-30 13:27Merge 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 SHIPI Mean I'm Just Saying39+1660-187
2026-09-30 13:26plans: 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-gatesI Mean I'm Just Saying2+57-25
2026-09-30 13:24editor: review L2 — a storage patch of the locations keeps storage.health (and savedVideosLocationId): one saveSettings merge caseI Mean I'm Just Saying1+22-0
2026-09-30 13:24common: review L4 — a timeout on no known location names the budget the call ran against, not the one in force when it throws. TestI Mean I'm Just Saying2+19-1
2026-09-30 13:22plans: 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 Saying2+249-0
2026-09-30 13:21common: 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 testsI Mean I'm Just Saying4+16-11
2026-09-30 13:20docs: 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] bulletsI Mean I'm Just Saying5+86-12
2026-09-30 13:14homepage: the History block's head is the short sha, linking to its commit page; the history pages' clone line wraps at phone widthI Mean I'm Just Saying4+17-5
2026-09-30 13:08plans: 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 changelogI Mean I'm Just Saying3+236-38
2026-09-30 13:07homepage: /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 untouchedI Mean I'm Just Saying10+316-12
2026-09-30 13:07common: `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 failureI Mean I'm Just Saying2+41-9
2026-09-30 13:07common: 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 4I Mean I'm Just Saying9+1618-31
2026-09-30 13:07common: 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 ThemeProviderI Mean I'm Just Saying3+224-209
2026-09-30 13:05common: 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 themI Mean I'm Just Saying1+1-1
2026-09-30 13:00editor(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 nothingI Mean I'm Just Saying1+82-0
2026-09-30 13:00editor: /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 constantI Mean I'm Just Saying13+409-24
2026-09-30 13:00common: the drive-health timings are settings — settings.storage.health (budgetMs, passIntervalMs, probeTimeoutMs, clearAfterCleanPasses, inFlightPerLocation), today's constants as the defaultsI Mean I'm Just Saying21+855-124
2026-09-30 05:15plans: 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 -sTI Mean I'm Just Saying3+71-4
2026-09-30 05:13Merge 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 SHIPI Mean I'm Just Saying18+1242-141
2026-09-30 05:06plans: slice SS after the merge of main — L5 to its commits, the new-channel pre-check, the re-gatesI Mean I'm Just Saying3+37-21
2026-09-30 04:56editor(e2e): site-scope — a new channel starts checked on the stored site, or a ?site= link's, and a cleared box stays clearedI Mean I'm Just Saying1+48-0
2026-09-30 04:56editor: a new channel starts checked on the active site, from the provider; the stale ?site= comments (review L5)I Mean I'm Just Saying4+50-49
2026-09-30 04:52Merge 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 cleanlyI Mean I'm Just Saying68+5974-368
2026-09-30 04:50plans: SS record — two lines reflowedI Mean I'm Just Saying1+6-6
2026-09-30 04:50plans: slice SS after the review — M1, L1 and L2 to their commits; L3, L4 and L6 recorded; the rulingsI Mean I'm Just Saying3+88-18
2026-09-30 04:49Merge 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 SHIPI Mean I'm Just Saying50+4587-248
2026-09-30 04:49editor: the layout's picker comment says every page renders per request (review L1)I Mean I'm Just Saying1+1-1
2026-09-30 04:49editor(e2e): site-scope — a site picked in another tab, and no ?site= once a page settles (review M1, L2)I Mean I'm Just Saying1+57-1
2026-09-30 04:49editor: a site picked in one tab reaches the editor's other tabs (review M1)I Mean I'm Just Saying2+49-6
2026-09-30 04:46plans: 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 Saying2+27-20
2026-09-30 04:42common: the overdue refusal tells slow from stalled by the counters, as a timeout doesI Mean I'm Just Saying2+86-8
2026-09-30 04:38plans: 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 Saying2+46-22
2026-09-30 04:34common: 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 depthI Mean I'm Just Saying3+142-20
2026-09-30 04:34editor: 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 runsI Mean I'm Just Saying1+15-15
2026-09-30 04:23plans: 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 changelogI Mean I'm Just Saying3+203-113
2026-09-30 04:19plans: slice SS as shipped — the editor's site scope is a cookieI Mean I'm Just Saying3+236-0
2026-09-30 03:39editor: the picker drops a held choice once the URL movesI Mean I'm Just Saying2+20-1
2026-09-30 03:37Merge main (2ad584c0: release 14 HS, S1 and CF, release 15 UT) into r15/drive-stallI Mean I'm Just Saying53+2840-216
2026-09-30 03:36editor: review L1, L3 — the channel page's statfs of the drive goes through the watchdog; the comments name the detectors as they areI Mean I'm Just Saying5+31-10
2026-09-30 03:36common: review M3 — the snapshot walk of a relocated channel goes through the watchdogI Mean I'm Just Saying3+66-11
2026-09-30 03:36common, 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 answeringI Mean I'm Just Saying5+178-50
2026-09-30 03:36common: 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 mustI Mean I'm Just Saying5+507-152
2026-09-30 03:20editor: next.config's retired-satellite comment — the picker no longer reconciles a ?site= on a site's tabI Mean I'm Just Saying1+2-1
2026-09-30 03:07Merge 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 SHIPI Mean I'm Just Saying11+788-63
2026-09-30 03:05plans: 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 changelogI Mean I'm Just Saying3+233-156
2026-09-30 03:03Merge 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 SHIPI Mean I'm Just Saying11+599-57
2026-09-30 03:02plans: slice CF — the fold spec's fills read OTHER_COLOR (`--chart-other`) in the recordI Mean I'm Just Saying1+1-1
2026-09-30 03:02plans: slice CF — the post-merge gates (tsc; common 2,229; homepage unit 20; the three chart specs 22/22) and the commit tableI Mean I'm Just Saying1+14-4
2026-09-30 03:02editor(e2e): site-scope — the picker's first paint, a ?site= link's scope, and the localStorage migrationI Mean I'm Just Saying1+208-6
2026-09-30 03:02editor: the provider's two effects write the cookie without an optimistic state changeI Mean I'm Just Saying1+28-5
2026-09-30 03:01plans: 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 whyI Mean I'm Just Saying1+17-1
2026-09-30 02:59common: the health pass reads the block device's request counters; a child stat only when no device can be namedI Mean I'm Just Saying6+569-31
2026-09-30 02:58Merge main (eec2f36d, release 14 slice S1) into r14/chart-foldI Mean I'm Just Saying15+629-46
2026-09-30 02:54plans: 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 changelogI Mean I'm Just Saying3+75-38
2026-09-30 02:53Merge main (eec2f36d, release 14 HS and S1) into r15/umtool-traceI Mean I'm Just Saying37+1457-100
2026-09-30 02:53plans: 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 questionsI Mean I'm Just Saying3+89-33
2026-09-30 02:52homepage: e2e reads the Vermilion site's rust off its /stats/ line (review L2)I Mean I'm Just Saying1+29-5
2026-09-30 02:52common, homepage: Other wears its own token, `--chart-other` (review M1)I Mean I'm Just Saying5+45-21
2026-09-30 02:52umtool: review L3 — the ignoreIssue comment says "left 31 / 49 of the 68 routes clean" (two were clean before)I Mean I'm Just Saying1+8-8
2026-09-30 02:52scripts: 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 Saying1+35-10
2026-09-30 02:52editor: the pages' reads of a relocated channel's drive go through the watchdogI Mean I'm Just Saying6+219-88
2026-09-30 02:52common: 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 locationI Mean I'm Just Saying11+860-161
2026-09-30 02:51scripts: 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 sinceI Mean I'm Just Saying1+14-1
2026-09-30 02:45editor: the active site is a cookie, read once by the root layout and supplied through SiteScopeProviderI Mean I'm Just Saying9+470-84
2026-09-30 02:38plans: 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 changelogI Mean I'm Just Saying3+240-1
2026-09-30 02:43editor: the saved-video inventory and the Cleanup stage do not read a stalled driveI Mean I'm Just Saying4+72-3
2026-09-30 02:01editor: UV_THREADPOOL_SIZE=16 for the editor's `start` and the containerI Mean I'm Just Saying5+15-1
2026-09-30 02:35plans: slice CF, as shipped — the growth chart's Other band; the slices table, Order and Rollout carry CF; FACTS; the homepage changelogI Mean I'm Just Saying3+208-5
2026-09-30 02:33plans: 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 changelogI Mean I'm Just Saying3+246-13
2026-09-30 02:21scripts: the trace guard reads umtool's last build back, follows relative imports, and checks opens and writesI Mean I'm Just Saying1+180-18
2026-09-30 02:12common: 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 Saying1+4-3
2026-09-30 02:12umtool: outputFileTracingExcludes keeps the e2e fixture, .next-e2e and env files out of every route's trace; the ignoreIssue stays, with its measured reasonI Mean I'm Just Saying1+25-7
2026-09-30 02:24umtool: cache files are named through cacheFile — the clip-audio route's join stops tracing umtool's dot-directoriesI Mean I'm Just Saying5+34-16
2026-09-30 02:20Merge 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 SHIPI Mean I'm Just Saying15+625-43
2026-09-30 02:03homepage: e2e for the growth chart's Other bandI Mean I'm Just Saying3+144-18
2026-09-30 02:01editor: a drive that is not answering is said so, and its pages read nothing from itI Mean I'm Just Saying15+246-4
2026-09-30 02:00homepage: the growth chart folds sites under 5 % of its total into one Other band on topI Mean I'm Just Saying4+339-39
2026-09-30 01:57Merge 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 themI Mean I'm Just Saying32+2070-111
2026-09-30 01:52common: a stalled drive is asked out of process and then not asked in-processI Mean I'm Just Saying21+1486-36
2026-09-30 01:52plans: 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 linkI Mean I'm Just Saying3+86-21
2026-09-30 01:47Merge 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 SHIPI Mean I'm Just Saying24+832-57
2026-09-30 01:46plans: 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 Saying1+54-23
2026-09-30 01:39export: 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 Saying1+73-2
2026-09-30 01:39common: 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 Saying1+33-21
2026-09-30 01:37Merge main (bac70970, release 15 IG) into r14/hidden-sitesI Mean I'm Just Saying11+1238-54
2026-09-30 01:37plans: 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 Saying2+23-8
2026-09-30 01:37common: a shared channel stays the listed site's when the unlisted site's id sorts first (review L3)I Mean I'm Just Saying1+16-0
2026-09-30 01:37homepage: 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 Saying2+46-12
2026-09-30 01:21Merge 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 SHIPI Mean I'm Just Saying11+1238-54
2026-09-30 01:18plans: 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 changelogsI Mean I'm Just Saying4+189-0
2026-09-30 01:18plans: 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 changelogI Mean I'm Just Saying3+143-0
2026-09-30 01:18plans: 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,220I Mean I'm Just Saying3+79-36
2026-09-30 01:16common(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 Saying1+51-0
2026-09-30 01:16common: 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 Saying2+19-4
2026-09-30 01:01plans: 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 changelogI Mean I'm Just Saying5+231-14
2026-09-30 00:54export: 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 Saying9+271-16
2026-09-30 00:52common: 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 deletedI Mean I'm Just Saying3+57-21
2026-09-30 00:51common: 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.tsI Mean I'm Just Saying4+800-16
2026-09-30 00:51common: 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 unchangedI Mean I'm Just Saying2+70-25
2026-09-30 00:50homepage: 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 channelsI Mean I'm Just Saying2+83-7
2026-09-30 00:47sites: 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 itI Mean I'm Just Saying4+78-0
2026-09-30 00:46common: 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.txtI Mean I'm Just Saying2+48-4
2026-09-30 00:46common: the homepage summary, channel-sites.json and the pooled stats leave out an unlisted site and the channels only it exposes; summary v6I Mean I'm Just Saying7+222-35
2026-09-30 00:46common: site.json `listed` — a per-site opt-out, absent = listed, only false written; one predicate, isListedSite; the footer never links an unlisted siblingI Mean I'm Just Saying4+108-3
2026-09-30 00:43plans: 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 Saying1+29-0
2026-09-29 04:48Merge 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 SHIPI Mean I'm Just Saying110+3962-1591
2026-09-29 04:47plans: 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 pxI Mean I'm Just Saying1+6-0
2026-09-29 04:47plans: 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 changelogsI Mean I'm Just Saying5+112-40
2026-09-29 04:36homepage, 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 Saying4+181-33
2026-09-29 04:29export, 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 Saying3+49-11
2026-09-29 04:27export: 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 Saying3+91-45
2026-09-29 04:13plans: 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; STATEI Mean I'm Just Saying3+255-11
2026-09-29 03:47common, homepage, export, editor: on a narrow screen the header keeps the name and shows only the links marked for itI Mean I'm Just Saying20+445-153
2026-09-29 03:12export, common: stale reader-accent text; a named-accent site in the export suite (review L5, L10)I Mean I'm Just Saying6+58-9
2026-09-29 03:12export, 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 Saying9+415-7
2026-09-29 02:59editor, common: the hub URL texts say what the setting does now, not a Hub link (review M2)I Mean I'm Just Saying7+7-6
2026-09-29 02:58homepage: 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 Saying5+365-86
2026-09-29 02:58common, export: stacked areas keep their series-coloured edge; the surface gap stays on stacked bars only (review H1)I Mean I'm Just Saying6+225-36
2026-09-29 02:09plans: 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 entryI Mean I'm Just Saying6+392-52
2026-09-29 01:47export: the footer's dot shows only after a downloads link; the social row keeps the shared row's insetI Mean I'm Just Saying2+9-5
2026-09-29 01:40export: 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 Saying9+418-174
2026-09-29 01:40homepage, 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 Saying6+32-143
2026-09-29 01:24common, export, editor, homepage: two grounds, Light and Dark; each site wears its own accent (release 14 slice T1)I Mean I'm Just Saying56+548-764
2026-09-29 01:09homepage, common: chart bands are parted by a 2 px gap in the surface's colour; the foreground separator lines are withdrawnI Mean I'm Just Saying11+201-60
2026-09-29 00:49common, 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 Saying9+213-74
2026-09-29 00:49common: the how-to-export hint only on a drawing program's leftovers; stale text (final review F3, F4)I Mean I'm Just Saying7+48-20
2026-09-29 00:49homepage: 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 Saying5+36-6
2026-09-29 00:33Merge 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 SHIPI Mean I'm Just Saying63+3887-484
2026-09-29 00:14plans: 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 stateI Mean I'm Just Saying6+293-186
2026-09-29 00:13Merge main (88db32b9, slice Q's umtool build trace) into homepage/social-visibleI Mean I'm Just Saying13+372-24
2026-09-29 00:10plans: 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 emptyI Mean I'm Just Saying1+1-1
2026-09-29 00:05Merge 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 capI Mean I'm Just Saying12+371-23
2026-09-29 00:04plans: slice Q, found after rollout — the umtool build walked the corpus; the hazard in FACTS, the capped corpus-visible build gateI Mean I'm Just Saying4+143-0
2026-09-28 23:59scripts: a guard — no umtool app module joins a cwd-derived path without turbopackIgnoreI Mean I'm Just Saying1+195-0
2026-09-28 23:59umtool: cwd-derived paths opt out of Turbopack's asset tracingI Mean I'm Just Saying7+33-23
2026-09-28 23:54Merge main (2e614464, the stats fix) into homepage/social-visibleI Mean I'm Just Saying16+1466-43
2026-09-28 23:52common, 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 Saying5+67-13
2026-09-28 23:52common, 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 Saying11+269-60
2026-09-28 23:50common: 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 Saying6+365-36
2026-09-28 23:32homepage: one toggle that cycles the base in place of the Options dialog; the homepage's accent is pinnedI Mean I'm Just Saying14+243-332
2026-09-28 23:25homepage: on a very small screen the header keeps its mark and drops the word; the social links scroll only when they still cannot fitI Mean I'm Just Saying3+226-78
2026-09-28 23:12Merge 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 Saying16+1466-43
2026-09-28 23:11plans: stats cache key — the re-review's touch-ups to the rollout, FACTS and STATEI Mean I'm Just Saying3+127-55
2026-09-28 23:09homepage: the growth chart's separators in the ground's foreground — dark on Light and Sepia, light on DarkI Mean I'm Just Saying6+117-5
2026-09-28 23:09common: buildStats' refusal names every way out, and "not indexable" names an unreachable driveI Mean I'm Just Saying2+64-13
2026-09-28 22:54plans: the stats cache key — the review, the rewritten rollout, FACTS, STATE, changelogsI Mean I'm Just Saying6+260-123
2026-09-28 22:54plans: release 14 slice HP as shipped, with the review and its fixes; the plan's HP, H1 and H2; STATE; changelogsI Mean I'm Just Saying5+482-61
2026-09-28 22:44homepage: each Official Instances card names its site with the site's wordmark, the lead tinted in its accentI Mean I'm Just Saying9+273-22
2026-09-28 22:44common: buildStats test (i) asserts the kept stats before the new result fieldI Mean I'm Just Saying1+1-1
2026-09-28 22:44common(test): source.test expands the "~" the kept-scratch log line printsI Mean I'm Just Saying1+5-3
2026-09-28 22:43homepage: the social row and the Options gear in the header at every width; Changelog in the footer onlyI Mean I'm Just Saying12+823-62
2026-09-28 22:42common: SocialLinks, OptionsDialog and ThemeRadios; export: the slide-out menu renders ThemeRadios, the footer's icons pass the render-time checkI Mean I'm Just Saying5+329-104
2026-09-28 22:42common: buildStats refuses a newer cache, keys on the whole index record, keeps an unmounted drive's statsI Mean I'm Just Saying4+490-111
2026-09-28 22:42common: buildIndex records when its last completed scan beganI Mean I'm Just Saying2+14-0
2026-09-28 22:42editor: "Show in header" on each social link, with its hint; a refused icon's save names whyI Mean I'm Just Saying6+78-12
2026-09-28 22:41common: the social icon is checked by an allowlist on save and at render; a sized icon gets a viewBox; `featured` on a social linkI Mean I'm Just Saying10+954-145
2026-09-28 22:09plans: the stats cache key — record, FACTS, changelogsI Mean I'm Just Saying4+219-5
2026-09-28 22:00mcp: pin get_video_metadata's stats block on a recomputed statI Mean I'm Just Saying1+76-0
2026-09-28 22:00common: the homepage fold counts a transcript with no transcribedDateI Mean I'm Just Saying2+73-6
2026-09-28 22:00common: buildStats test (b) asserts the heal before the new unindexed countI Mean I'm Just Saying1+9-7
2026-09-28 21:59common: 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 Saying3+431-22
2026-09-28 20:11Merge 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 builtI Mean I'm Just Saying2+295-0
2026-09-28 20:11plans: 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 SearchI Mean I'm Just Saying2+295-0
2026-09-28 19:13Merge 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 deployedI Mean I'm Just Saying4+353-0
2026-09-28 19:12docs: AGENTS.md "The source mirror" — what the step is, never print the operator files, never bypass the gate, no `.git` segmentI Mean I'm Just Saying1+20-0
2026-09-28 19:12plans: release 12 merged, not rolled out — release-12.md "Merged" and the owed Rollout, STATE's "Now", FACTS' source-mirror sectionI Mean I'm Just Saying3+333-0
2026-09-28 19:01Merge 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 SHIPI Mean I'm Just Saying48+4859-139
2026-09-28 19:00plans: slice R's re-review record — R2-L1…L4 fixed (296b8a04, 4372e5cc), each key test proved by reverting its fix, the gates re-runI Mean I'm Just Saying1+70-0
2026-09-28 18:56docs: PUBLISH.md — the deploy key covers gitleaks and every published file; refusals are masked; rebuild the editor after mergingI Mean I'm Just Saying1+18-6
2026-09-28 18:55common: 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 Saying3+258-35
2026-09-28 18:37plans: 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 RI Mean I'm Just Saying2+193-0
2026-09-28 18:34common: the deploy check keys on the source's artefacts and the /source page, not on out/source existingI Mean I'm Just Saying4+31-7
2026-09-28 18:25docs: PUBLISH.md says a refusal withdraws, previews are public, compressed content is opaque; .dockerignore, project.ts, /sites copyI Mean I'm Just Saying5+90-21
2026-09-28 18:22homepage: E2E_EXPECT_SOURCE makes the /source specs fail on the empty state; unit tests for the loader and _headersI Mean I'm Just Saying7+199-5
2026-09-28 18:22common: a refusal withdraws the last publish, a build's out/ copy and any deploy of it (review M1), and the LowsI Mean I'm Just Saying7+644-127
2026-09-28 18:22common: the audit report names a literal by where it was written and prints no object bytes; a tracked 404.html is refusedI Mean I'm Just Saying4+168-102
2026-09-28 18:11Merge main into r12/source-mirror (release 11 rollout record)I Mean I'm Just Saying3+89-1
2026-09-28 18:00plans: 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.devI Mean I'm Just Saying3+89-1
2026-09-28 17:49docker: build-site.sh's asset sync only ever removes an .svg (review N3)I Mean I'm Just Saying3+9-1
2026-09-28 17:43plans: release 13 slice W3, follow-up W3c recorded — every site deploy checks its bundle, the assets stay in sync; one [Unreleased] bulletI Mean I'm Just Saying2+119-0
2026-09-28 17:42plans: slice R's record — `archilyzer source publish` + /source, as shippedI Mean I'm Just Saying1+269-0
2026-09-28 17:41docs: PUBLISH.md says which builder reads Dockerfile.build.dockerignore and what the fallback costs (review N2)I Mean I'm Just Saying1+10-3
2026-09-28 17:41common: every site deploy refuses a bundle that is not the site's own, right before wrangler (review S1)I Mean I'm Just Saying4+143-1
2026-09-28 17:41docker: 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 Saying2+118-11
2026-09-28 17:41plans: 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_modulesI Mean I'm Just Saying1+69-3
2026-09-28 17:40jobs: serialWriter — a job's sidecar chain survives a rejecting write (W1 review L1)I Mean I'm Just Saying2+48-7
2026-09-28 17:39homepage: tsconfig excludes `out` too, and eslint ignores public/sourceI Mean I'm Just Saying2+5-1
2026-09-28 17:34homepage: _headers overrides detach the tree's Content-Type before setting their ownI Mean I'm Just Saying2+16-2
2026-09-28 17:34changelog: 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 Saying3+7-5
2026-09-28 17:32changelog: 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 Saying2+2-0
2026-09-28 17:20docs: the clone is the canonical public copy; PUBLISH.md "The source mirror (homepage)"; create-archives.sh deletedI Mean I'm Just Saying4+140-75
2026-09-28 17:20plans: release 13 slice W3, follow-up W3b recorded — the container Build all works; one [Unreleased] bulletI Mean I'm Just Saying2+168-2
2026-09-28 17:19homepage: the /source/ page, a Source nav entry, _headers for the mirror and the raw treeI Mean I'm Just Saying14+441-48
2026-09-28 17:18plans: 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 Saying1+56-0
2026-09-28 17:18common: the doctor's git test turns off git's own background maintenanceI Mean I'm Just Saying1+5-0
2026-09-28 17:14editor: [Unreleased] — the Charts tab's sixth series has a colour of its own (W2 review Q2)I Mean I'm Just Saying1+3-0
2026-09-28 17:14export: 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 Saying4+76-15
2026-09-28 17:14plans: slice W1's record — the editor lows, as shipped; FACTS: the Diagnostics cards closed, a queued cancel's sidecarI Mean I'm Just Saying2+210-1
2026-09-28 17:13docs: PUBLISH.md's container section says what the per-site mount keeps and what the image bakesI Mean I'm Just Saying1+15-7
2026-09-28 17:13docker: Dockerfile.build.dockerignore — the build image's context is an allow-list, about 7 MB from any checkoutI Mean I'm Just Saying2+56-9
2026-09-28 17:13common: the container deploy phase refuses a per-site out/ that is not the site's own bundleI Mean I'm Just Saying2+54-2
2026-09-28 17:13docker: build-site.sh builds in the container's own .next, publishes the composed public/, and refuses a bundle that is not the site'sI Mean I'm Just Saying1+46-9
2026-09-28 17:13common: builtBundleProblem — a per-site bundle is the site's own only when site.json and corpus.json both name itI Mean I'm Just Saying2+92-0
2026-09-28 17:12common: build homepage publishes the source; `source publish|audit` rows; doctor's source blockI Mean I'm Just Saying6+286-5
2026-09-28 17:12common: `publishSource` — a scrubbed, dumb-HTTP git mirror, the raw tree and the tarballI Mean I'm Just Saying5+1155-4
2026-09-28 17:12common: the source mirror's gate and tree pages (sourceAudit, sourceTree, sourceManifest)I Mean I'm Just Saying5+1160-0
2026-09-28 17:11docs: every `archilyzer mcp` example runs `pnpm --silent` (W2 review S1)I Mean I'm Just Saying5+44-18
2026-09-28 16:55Merge main (6a769e92, release 12 slice Q) into r13/build-imageI Mean I'm Just Saying50+1026-4241
2026-09-28 16:55changelog: [Unreleased] above [0.10.0] — the Diagnostics retry log, the homepage built line, /jobs labels, a queued cancel stays cancelledI Mean I'm Just Saying1+6-0
2026-09-28 16:53plans: release 13 slice W3, as shipped — the build image refreshed; two [Unreleased] bulletsI Mean I'm Just Saying2+203-0
2026-09-28 16:52plans: release 13 — slice W2's record (the export, homepage and docs lows)I Mean I'm Just Saying1+145-0
2026-09-28 16:52homepage: ignore public/source for git, Tailwind and tsc before any mirror lands thereI Mean I'm Just Saying2+16-3
2026-09-28 16:47editor: a `test` script for the editor unit suiteI Mean I'm Just Saying1+1-0
2026-09-28 16:47doctor: a worker's default engine binary comes from the report's Paths (L7)I Mean I'm Just Saying2+36-1
2026-09-28 16:47jobs: /jobs labels for the hub's and the homepage's build and deploy kindsI Mean I'm Just Saying2+65-0
2026-09-28 16:47sites: /sites re-renders when a homepage build lane ends, so "built <when>" is currentI Mean I'm Just Saying3+113-25
2026-09-28 16:47common: archilyzer doctor checks the site build image — there, and newer than its DockerfileI Mean I'm Just Saying3+353-9
2026-09-28 16:47docker: Dockerfile.build on Node 22.23.2 and pnpm 11.26.0, and its comments say the network is onI Mean I'm Just Saying1+35-13
2026-09-28 16:46jobs: a job cancelled while queued writes its cancelled sidecarI Mean I'm Just Saying5+280-13
2026-09-28 16:46e2e: transcript-source's diagnostics test regenerates the report of the swapped treeI Mean I'm Just Saying1+33-4
2026-09-28 16:46channels: a Diagnostics retry keeps its card and its log when it empties the bucketI Mean I'm Just Saying2+190-4
2026-09-28 16:45common: envVars.test counts TEST_WORKER_INDEX as Playwright's own variableI Mean I'm Just Saying1+4-2
2026-09-28 16:39export: [Unreleased] — a chart's sixth series has a colour of its ownI Mean I'm Just Saying1+3-0
2026-09-28 16:38docs: the MCP examples register and run the server as `archilyzer mcp`I Mean I'm Just Saying4+39-34
2026-09-28 16:38changelog: 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 sectionI Mean I'm Just Saying1+3-1
2026-09-28 16:37Merge 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 SHIPI Mean I'm Just Saying50+1026-4241
2026-09-28 16:37plans: slice Q's review recorded — SHIP; L1 and L3 fixed, the rest left; the operator step corrected (I1)I Mean I'm Just Saying1+54-12
2026-09-28 16:36homepage: no-data.spec skips itself when the run has more than one workerI Mean I'm Just Saying2+20-0
2026-09-28 16:36export: the 2origin config stages the two origins only in the runner, not again in every workerI Mean I'm Just Saying1+4-1
2026-09-28 16:35umtool: ThumbEntry declares `bg`, relative to the song data dir (review L3)I Mean I'm Just Saying1+16-1
2026-09-28 16:35changelog: the umtool bullet leads with the link command, in full (review L1)I Mean I'm Just Saying1+1-1
2026-09-28 16:33umtool: 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 Saying3+42-14
2026-09-28 16:32export: a `test` script for the 11 unit files no suite ran, named in the gate list and CONTRIBUTINGI Mean I'm Just Saying4+30-5
2026-09-28 16:30charts: ChartView takes its colours from seriesColor(i), so the sixth series reaches --chart-6I Mean I'm Just Saying2+82-3
2026-09-28 16:25plans: 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 Saying1+43-0
2026-09-28 16:16plans: slice Q recorded — the hardcoded paths fixed forwardI Mean I'm Just Saying2+219-0
2026-09-28 16:12e2e: an accepted cover is recorded relative to the reports treeI Mean I'm Just Saying1+8-0
2026-09-28 16:10Release export 0.10.0I Mean I'm Just Saying1+1-1
2026-09-28 16:10Release editor 0.10.0I Mean I'm Just Saying1+1-1
2026-09-28 16:05changelog: umtool's path defaults in [Unreleased]; a released entry's path example says <user>I Mean I'm Just Saying1+2-1
2026-09-28 16:05common, docs: path examples name no userI Mean I'm Just Saying7+17-17
2026-09-28 16:03umtool: the thumb manifests record paths relative to their rootsI Mean I'm Just Saying9+104-42
2026-09-28 15:59umtool: um-manifest.json carries no machine pathI Mean I'm Just Saying2+8-1897
2026-09-28 15:58umtool: the 20 one-off song run-log scripts deletedI Mean I'm Just Saying22+17-2263
2026-09-28 15:56umtool: SONG_DATA and VIDEO_ROOT default from the home directoryI Mean I'm Just Saying6+52-15
2026-09-28 15:54umtool: CHANNELS_DIR from the checkout, not one machine's home directoryI Mean I'm Just Saying2+41-5
2026-09-28 15:49plans: release 12 — the source mirror plan and the record fileI Mean I'm Just Saying2+500-0
2026-09-28 13:46plans: 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 logsI Mean I'm Just Saying1+6-3
2026-09-28 13:45Merge 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 loadsI Mean I'm Just Saying26+227-263
2026-09-28 13:40plans: 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 replacedI Mean I'm Just Saying5+120-20
2026-09-28 13:35docs: no build mode — PUBLISH, RUNNING_IN_DOCKER and the homepage's Docker page (O6c)I Mean I'm Just Saying3+6-10
2026-09-28 13:35editor, common: the build-mode stub is dropped (O6c, the operator's ruling)I Mean I'm Just Saying18+101-233
2026-09-28 13:24plans: 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 Saying3+11-7
2026-09-28 13:24Merge 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 6I Mean I'm Just Saying8+270-99
2026-09-28 13:19plans: 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 openI Mean I'm Just Saying3+111-31
2026-09-28 13:14hub: 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 Saying5+159-68
2026-09-28 09:44changelogs: 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 Saying1+1-1
2026-09-28 09:43plans: release 11 integration, as merged — the gates on 2046a23e (FLAKES-ONLY), STATE "Now (2026-09-28, morning)", the Rollout stepsI Mean I'm Just Saying2+295-4
2026-09-28 09:41plans: 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 Saying1+11-1
2026-09-28 09:41plans: FACTS — release 11 (O1–O6) verified at 2046a23e; dated amendments for the E2E_ names and PUBLISH.md; the integration gate's findingsI Mean I'm Just Saying1+266-2
2026-09-28 08:36Merge 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.mdI Mean I'm Just Saying52+427-164
2026-09-28 08:34plans: O6 checkpoint B review fixes — the 2origin note corrected with the reviewer's evidence (S1), L1, L2 recordedI Mean I'm Just Saying1+28-4
2026-09-28 08:34docs: WORKTREES — a server reused under E2E_PORT_CHECK=0 needs the config's E2E_SERVER_ENV (review L1)I Mean I'm Just Saying1+8-2
2026-09-28 08:24plans: 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] bulletsI Mean I'm Just Saying3+112-1
2026-09-28 08:03docs: E2E_SHARDS; the homepage's Docker page says Build all uses containers whenever it canI Mean I'm Just Saying5+12-10
2026-09-28 08:03editor: 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 Saying4+14-21
2026-09-28 08:03e2e: every test-only env var carries the E2E_ prefix and is declared in its playwright config; the harnesses read ports.mjsI Mean I'm Just Saying39+257-130
2026-09-28 07:53changelogs: 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 Saying1+1-1
2026-09-28 07:53Merge 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 nitsI Mean I'm Just Saying16+320-22
2026-09-28 07:50Merge 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 Saying10+934-58
2026-09-28 07:45plans: 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 countI Mean I'm Just Saying3+102-3
2026-09-28 07:40changelogs: 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 Saying2+3-1
2026-09-28 07:40comments: 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 mappingI Mean I'm Just Saying3+6-4
2026-09-28 07:40homepage(e2e): the no-data / and /stats/ are specced again — one serial spec moves the synthetic summary aside and restores itI Mean I'm Just Saying1+43-0
2026-09-28 07:40hub: an archive the visitor added wears its published hex fitted to each base — card, scope chip, result stripeI Mean I'm Just Saying5+123-8
2026-09-28 07:40common: normalizeSocialSvg passes over a <clipPath> like a <mask> — a Figma one-colour icon (a shape clipped by a white rect) is themedI Mean I'm Just Saying2+43-6
2026-09-28 07:33plans: 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 Saying1+171-0
2026-09-28 07:32Merge 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 specI Mean I'm Just Saying26+765-216
2026-09-28 07:29umtool: README — the preset sets the rail, ledger, scroll and chart in Plex Sans, "Why a table, not an average", Plex Mono Bold vendoredI Mean I'm Just Saying2+56-20
2026-09-28 07:23umtool: test that the preset's rsvg-convert children get FONTCONFIG_FILE; fc-match's escaped paths read backI Mean I'm Just Saying1+40-3
2026-09-28 07:18Merge 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 linesI Mean I'm Just Saying19+1222-95
2026-09-28 07:17umtool: the rail, ledger, scroll and chart set in IBM Plex Sans under the brand preset, fitted by the face's own advancesI Mean I'm Just Saying7+651-46
2026-09-28 07:16umtool: vendor IBM Plex Mono Bold; `render.fontBold` is the preset's tooI Mean I'm Just Saying3+32-5
2026-09-28 07:14plans: 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 Saying1+118-2
2026-09-28 07:13plans: 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-themesI Mean I'm Just Saying3+188-4
2026-09-28 07:06plans: 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 anchoredI Mean I'm Just Saying1+31-0
2026-09-28 07:06export: [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 againI Mean I'm Just Saying1+2-2
2026-09-28 07:06hub: /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 itI Mean I'm Just Saying2+43-1
2026-09-28 07:06common: 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 Saying2+123-36
2026-09-28 07:00changelogs: 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 Saying3+7-0
2026-09-28 06:52homepage(e2e): a synthetic summary, so a fresh clone runs every spec; the cards' pale custom hex and the sixth slot checked in the browserI Mean I'm Just Saying7+225-135
2026-09-28 07:00Merge 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 O1I Mean I'm Just Saying76+4440-794
2026-09-28 06:59common: the mark's tile keeps an edge under forced colours — a 1px CanvasText outline on every baseI Mean I'm Just Saying3+86-3
2026-09-28 06:54Merge 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 comeI Mean I'm Just Saying55+3259-688
2026-09-28 06:50plans: 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 labelI Mean I'm Just Saying2+67-20
2026-09-28 06:47common: a sixth validated chart slot (--chart-6, Vermilion's rust) and a custom hex fitted per base on the family's cardsI Mean I'm Just Saying10+259-74
2026-09-28 06:46docs: PUBLISH.md — the build mode is a label; the homepage row; four clauses back (review S2, Q4, L3)I Mean I'm Just Saying1+16-11
2026-09-28 06:46docs: the seeded-worker claim corrected; WORKTREES points at the one port table (review Q5, L4)I Mean I'm Just Saying7+34-36
2026-09-28 06:46common: `archilyzer transcribe` goes; `run`'s exit codes match its header (review Q2, L6, L1)I Mean I'm Just Saying4+30-33
2026-09-28 06:44plans: 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 leftI Mean I'm Just Saying1+157-0
2026-09-28 06:42editor: two released changelog links point at PUBLISH.md (review Q1)I Mean I'm Just Saying1+2-2
2026-09-28 06:42editor, common: the build-mode copy says the mode is a label (review S2)I Mean I'm Just Saying8+53-45
2026-09-28 06:42common: the declared-but-unmentioned env-var test can fail (review S1)I Mean I'm Just Saying3+32-10
2026-09-28 06:36Merge main 54cb4f2c (O4 + O3) into r11/phase-4-s3I Mean I'm Just Saying38+2209-126
2026-09-28 06:34export: [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 blackI Mean I'm Just Saying1+7-0
2026-09-28 06:34mcp: README — the claude mcp add and mcp.json examples carry ARCHILYZER_EDITOR_URL and WORKER_TOKEN for fetch_clip, marked optionalI Mean I'm Just Saying1+14-2
2026-09-28 06:34hub: /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 Saying11+444-78
2026-09-28 06:34common: 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 testsI Mean I'm Just Saying2+154-1
2026-09-28 06:34common: 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 testsI Mean I'm Just Saying2+171-13
2026-09-28 06:26Merge 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 cutI Mean I'm Just Saying23+1183-106
2026-09-28 06:23plans: O3 review fixes recorded — the form's revalidate, sourceFetchFailure's order, persistKept, the Diagnostics wordingI Mean I'm Just Saying3+75-19
2026-09-28 06:20channels: drop the inert key on the Download stage's retry controls (O3 review nit)I Mean I'm Just Saying1+0-3
2026-09-28 06:20common: persistKept counts a failed forced media pass as failed, not persistedI Mean I'm Just Saying2+122-65
2026-09-28 06:20common: sourceFetchFailure judges a media-pass last attempt by its exit code firstI Mean I'm Just Saying2+21-3
2026-09-28 06:20sites: the Cut release form revalidates when the heading was written but the commit failedI Mean I'm Just Saying1+7-1
2026-09-28 06:17Merge main (O4 merged, eb677ac7) into r11/runner-lowsI Mean I'm Just Saying17+1027-20
2026-09-28 06:14plans: slice O6 checkpoint A as shipped — doctor, run, mcp, every bin a subcommand, ports and env vars declared once, PUBLISH.md; the [Unreleased] bulletI Mean I'm Just Saying2+226-0
2026-09-28 06:14Merge 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 ModeI Mean I'm Just Saying17+1029-20
2026-09-28 06:12plans: 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 813208b9I Mean I'm Just Saying2+37-12
2026-09-28 06:10common: deployHomepage ships homepageOutDir(paths) — the directory the editor judged "built", named once (no behaviour change)I Mean I'm Just Saying1+2-1
2026-09-28 06:10e2e: 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 queueI Mean I'm Just Saying2+48-22
2026-09-28 06:07common: the run and mcp tests fail instead of hangingI Mean I'm Just Saying2+17-7
2026-09-28 06:04docs: PUBLISH.md absorbs DEPLOY_CLOUDFLARE.md and DEPLOY_DOCKER.md; env vars point at ENVIRONMENT.mdI Mean I'm Just Saying12+526-488
2026-09-28 06:04editor, common: `pnpm archilyzer`; the Docker build mode is not "a follow-up"I Mean I'm Just Saying7+17-17
2026-09-28 06:02plans: slice O3 as shipped — runner lows; FACTS; [Unreleased] in editor and exportI Mean I'm Just Saying4+212-0
2026-09-28 05:57export, homepage: their bin scripts call the CLI; `detect:duplicates` goesI Mean I'm Just Saying2+8-9
2026-09-28 05:57common: `archilyzer run`, `archilyzer mcp`, and every bin a subcommandI Mean I'm Just Saying8+720-4
2026-09-28 05:57common: the digest channel job takes an id scope, as the backfill job doesI Mean I'm Just Saying3+20-4
2026-09-28 05:56plans: 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 Saying2+155-0
2026-09-28 05:56changelog: [Unreleased] above [0.9.4] — the homepage's build and deploy on /sites, and pnpm ops build-homepage / deploy-homepageI Mean I'm Just Saying1+4-0
2026-09-28 05:52sites: 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 alertI Mean I'm Just Saying2+25-5
2026-09-28 05:52sites: JobLane survives Strict Mode — under next dev a lane dropped every update of its one launch and sat on "Starting…" foreverI Mean I'm Just Saying1+21-8
2026-09-28 05:48common: `archilyzer doctor` — one read-only reportI Mean I'm Just Saying4+656-1
2026-09-28 05:48common: every environment variable, declared once; ENVIRONMENT.md generatedI Mean I'm Just Saying5+575-0
2026-09-28 05:48common: the port defaults and the tool probe exist onceI Mean I'm Just Saying7+338-76
2026-09-28 05:44common: a cut whose commit fails after the write says so; a half-way all names the earlier cutI Mean I'm Just Saying4+242-23
2026-09-28 05:42channels: a bucket retry keeps its card and run log after it empties the bucketI Mean I'm Just Saying3+56-8
2026-09-28 05:42common: a forced download whose media pass fails keeps the subtitle pass's statusI Mean I'm Just Saying6+284-5
2026-09-28 05:40e2e: 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 deployI Mean I'm Just Saying2+258-0
2026-09-28 05:38ops: /api/ops/build-homepage {deploy?, preview?} and /api/ops/deploy-homepage {preview?} → previewUrl, and the pnpm ops verbsI Mean I'm Just Saying4+94-0
2026-09-28 05:38sites: 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-homepageI Mean I'm Just Saying3+326-7
2026-09-28 05:38common: builtHomepageProblem + builtHomepageAt beside builtHubProblem, and homepageOutDir — homepage/out, the one path the editor's homepage actions judge and deployHomepage shipsI Mean I'm Just Saying4+97-3
2026-09-28 05:37common: a maybe-missing video whose confirm probe failed stays maybe_missingI Mean I'm Just Saying3+191-4
2026-09-28 05:23plans: 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-28I Mean I'm Just Saying2+56-0
2026-09-28 04:29Release export 0.9.4I Mean I'm Just Saying1+1-1
2026-09-28 04:29Release editor 0.9.4I Mean I'm Just Saying1+1-1
2026-09-28 04:29Merge 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 unchangedI Mean I'm Just Saying11+360-6
2026-09-28 04:28plans: 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, datedI Mean I'm Just Saying2+81-0
2026-09-28 04:22changelogs: 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'sI Mean I'm Just Saying3+7-0
2026-09-28 04:22e2e: the mark's ring on dark — each brand spec reads the computed box-shadow per baseI Mean I'm Just Saying4+193-3
2026-09-28 04:16common: the mark's tile gets a 1px ring on dark, in the palette's own dimI Mean I'm Just Saying2+79-3
2026-09-27 19:21plans: STATE — accent swap (hasanalyzer violet, bonnellyzer blue) and slice MC (mark contrast) rolled out as 0.9.3; five sites + hub + homepage verified liveI Mean I'm Just Saying1+24-0
2026-09-27 18:59Release export 0.9.3I Mean I'm Just Saying1+1-1
2026-09-27 18:59Release editor 0.9.3I Mean I'm Just Saying1+1-1
2026-09-27 18:59Merge 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 regeneratedI Mean I'm Just Saying16+207-25
2026-09-27 18:58plans: 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 noteI Mean I'm Just Saying2+105-3
2026-09-27 18:50changelogs: the mark's lines are easier to see — new [Unreleased] above [0.9.2] in export and editor; a bullet in the homepage'sI Mean I'm Just Saying3+7-0
2026-09-27 18:49common: the mark's dim lines reach 3:1 on their ground — child #6b5d47, Archilyzer #586977I Mean I'm Just Saying11+95-22
2026-09-27 06:28plans: 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 Saying1+26-0
2026-09-27 05:55Release export 0.9.2I Mean I'm Just Saying1+1-1
2026-09-27 05:55Release editor 0.9.2I Mean I'm Just Saying1+1-1
2026-09-27 05:55Merge 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 baseI Mean I'm Just Saying32+1081-68
2026-09-27 05:05plans: slice AC as shipped — the review fixes, the heading in the record's shape, and the two lows found and leftI Mean I'm Just Saying1+23-3
2026-09-27 05:02hub, homepage(e2e): review nits — the no-accent hub colour is the chart colour; the colour spec requires the chartI Mean I'm Just Saying3+36-30
2026-09-27 05:02common: homepageChartData tests — /stats site colours, and the leaderboard by site and by channelI Mean I'm Just Saying1+127-0
2026-09-27 05:02homepage: HOMEPAGE_SUMMARY_FILE is ignored by a production buildI Mean I'm Just Saying3+42-6
2026-09-27 04:50plans, changelogs: the hue-matched chart — each site's layer is its accent's hue family; validator numbers in both ordersI Mean I'm Just Saying4+54-26
2026-09-27 04:45homepage: the growth chart and /stats wear each site's hue family; a card matches its layer by hueI Mean I'm Just Saying4+101-59
2026-09-27 04:45common: siteChartColors — a site's chart colour is its accent's hue family in the validated paletteI Mean I'm Just Saying7+231-57
2026-09-27 04:37plans: 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 lineI Mean I'm Just Saying2+99-1
2026-09-27 04:23changelogs: [Unreleased] — the search hint in the accent (export); instance cards in each site's accent (editor, homepage)I Mean I'm Just Saying3+12-0
2026-09-27 04:19hub: an official instance's named accent is painted per baseI Mean I'm Just Saying3+48-8
2026-09-27 04:19homepage: the Official Instances cards wear each site's accent; the chart keeps its paletteI Mean I'm Just Saying7+196-10
2026-09-27 04:19common: siteColor — a site's colour per base; the summaries carry a named accent's idI Mean I'm Just Saying8+202-11
2026-09-27 04:19search: "Press Enter or click Search to apply" wears the site's accentI Mean I'm Just Saying2+55-2
2026-09-27 03:58plans: 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 owedI Mean I'm Just Saying1+11-0
2026-09-27 03:40Release export 0.9.1I Mean I'm Just Saying1+1-1
2026-09-27 03:40Release editor 0.9.1I Mean I'm Just Saying1+1-1
2026-09-27 03:40Merge 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 surfaceI Mean I'm Just Saying17+115-232
2026-09-27 03:39plans: Ko-fi dropped (2026-09-26) — release 10's record and STATE's Ko-fi rulingI Mean I'm Just Saying2+75-2
2026-09-27 03:21export, editor, homepage: [Unreleased] — no Ko-fi link on the hub or the homepageI Mean I'm Just Saying3+4-1
2026-09-27 03:20common: KOFI_URL is goneI Mean I'm Just Saying1+0-7
2026-09-27 03:19homepage: the footer's Elsewhere row drops the Ko-fi mark and renders only when there are social links againI Mean I'm Just Saying3+23-79
2026-09-27 03:18export(e2e): a site page and the hub have no link to ko-fi.comI Mean I'm Just Saying3+8-79
2026-09-27 03:17export: both service workers drop the /kofi-symbol.svg rule; /icons/ stays network-first in shell-v2I Mean I'm Just Saying3+3-19
2026-09-27 03:16export: the footer's social row drops the Ko-fi mark, and renders only when the site has social links againI Mean I'm Just Saying2+2-45
2026-09-27 01:48homepage: e2e — the Ko-fi row is found by :has, the footer holds more than one listI Mean I'm Just Saying1+5-3
2026-09-27 01:45homepage: 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 rendersI Mean I'm Just Saying3+67-32
2026-09-27 01:43plans: STATE — the homepage's hub link hidden again on the operator's word (61aca34c), redeployedI Mean I'm Just Saying1+6-0
2026-09-27 01:42homepage: 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 hiddenI Mean I'm Just Saying1+4-2
2026-09-26 23:43plans: slice P merged (2ea82daf) — STATE's merged block; the runbook's step 0 is now archilyzer release cutI Mean I'm Just Saying1+10-0
2026-09-26 23:43Merge 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-releaseI Mean I'm Just Saying20+2122-99
2026-09-26 23:39plans: 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 Saying2+101-25
2026-09-26 23:33scripts: `pnpm ops` usage — cut-release's "all" cuts both or neither; "commit": boolean (review nit)I Mean I'm Just Saying2+6-4
2026-09-26 23:33common: `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 Saying6+321-150
2026-09-26 23:30common: 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 itI Mean I'm Just Saying6+169-35
2026-09-26 23:17plans: 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] bulletI Mean I'm Just Saying2+175-0
2026-09-26 23:15editor(e2e): ops-cut-release — a second cut finds no [Unreleased] heading at all (the cut consumed it), and the 400's results say soI Mean I'm Just Saying1+12-2
2026-09-26 23:07editor(e2e): ops-cut-release.spec.ts — the ops door over the fixture changelogs; the test server's EXPORT_CHANGELOG_FILE points at a gitignored copyI Mean I'm Just Saying4+184-5
2026-09-26 23:07editor: 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 Saying3+99-0
2026-09-26 23:03common: 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 neededI Mean I'm Just Saying3+358-2
2026-09-26 23:01editor: the Cut release form's action is a FormData adapter over cutReleaseForWorkspace; /sites reads the export changelog the form cutsI Mean I'm Just Saying3+32-89
2026-09-26 23:00common: 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 Saying5+878-0
2026-09-26 22:50plans: 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/5I Mean I'm Just Saying2+90-2
2026-09-26 22:46plans: 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 Saying1+17-2
2026-09-26 22:45Merge 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 linkI Mean I'm Just Saying11+276-40
2026-09-26 22:38plans: 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] bulletI Mean I'm Just Saying2+129-0
2026-09-26 22:32plans: slice N merged (76b5500e) — STATE's merged block, the record's restart-owed note and the live proof to run after itI Mean I'm Just Saying2+19-0
2026-09-26 22:32Merge 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 pageI Mean I'm Just Saying24+2397-62
2026-09-26 22:23plans: 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 Saying1+80-2
2026-09-26 22:23export(e2e): every build carries the Ko-fi mark, last in the social rowI Mean I'm Just Saying3+80-18
2026-09-26 22:22export: both service workers cache /kofi-symbol.svg like the iconsI Mean I'm Just Saying3+19-3
2026-09-26 22:22export: the Ko-fi mark, last in every footer's social rowI Mean I'm Just Saying2+36-19
2026-09-26 22:17export: vendor Ko-fi's official symbol as public/kofi-symbol.svgI Mean I'm Just Saying1+13-0
2026-09-26 22:12plans: 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 Saying1+84-0
2026-09-26 21:26common: 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 Saying1+137-0
2026-09-26 21:25editor: 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 Saying3+9-6
2026-09-26 21:22plans: 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 earlyI Mean I'm Just Saying2+125-3
2026-09-26 21:08plans: 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 defaultI Mean I'm Just Saying3+176-5
2026-09-26 21:06common: say at PREFETCH_OWN_FILES why metadata.history.json is not on the allow-list (comment only)I Mean I'm Just Saying1+3-0
2026-09-26 20:51docs: 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.jsonI Mean I'm Just Saying1+11-0
2026-09-26 20:50e2e: 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 knobI Mean I'm Just Saying3+254-1
2026-09-26 20:46editor: 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 tooI Mean I'm Just Saying6+387-9
2026-09-26 20:42common: 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 wrapI Mean I'm Just Saying5+499-46
2026-09-26 20:37common: 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 throwsI Mean I'm Just Saying5+849-1
2026-09-26 20:24plans: 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.jsonI Mean I'm Just Saying1+196-0
2026-09-26 20:13plans: 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 MI Mean I'm Just Saying2+9-4
2026-09-26 19:02plans: 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 sectionI Mean I'm Just Saying3+80-0
2026-09-26 18:55Merge 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 failureI Mean I'm Just Saying13+2353-21
2026-09-26 18:54mcp: fetch_clip's queued text never invites repeating a running request (re-read R2, R1)I Mean I'm Just Saying6+46-16
2026-09-26 18:49plans: 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 bulletI Mean I'm Just Saying2+84-3
2026-09-26 18:47mcp: 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 Saying6+162-6
2026-09-26 18:45mcp: fetch_clip bounds every request at 15 s and says why a request failed (review S3, N1)I Mean I'm Just Saying2+186-10
2026-09-26 18:43docs: fetch_clip needs an editor that already archives the cited channel (review S2)I Mean I'm Just Saying3+9-4
2026-09-26 18:43mcp: fetch_clip keeps the job id when the editor stops answering mid-poll (review S1)I Mean I'm Just Saying2+47-2
2026-09-26 18:30plans: release 10 slice M as shipped — fetch_clip (the MCP asks the editor for clip media); editor [Unreleased] bulletI Mean I'm Just Saying2+125-0
2026-09-26 18:27docs: fetch_clip is how clip media is fetched; yt-dlp --download-sections is only the no-editor fallbackI Mean I'm Just Saying3+45-17
2026-09-26 18:27mcp: the ask and sweep plans send clip media through fetch_clip, never a hand-run yt-dlpI Mean I'm Just Saying2+49-0
2026-09-26 18:27mcp: fetch_clip tool — asks the local editor for a cited moment's media; a Rumble embed id maps to the slug idI Mean I'm Just Saying3+436-0
2026-09-26 18:27mcp: fetchClip — the editor's fetch-window client, pure with injected env/fetch/sleep/nowI Mean I'm Just Saying2+1201-0
2026-09-26 18:23plans: 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 stepI Mean I'm Just Saying3+322-100
2026-09-26 17:09plans: 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 Saying1+145-4
2026-09-26 18:14plans: 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 Saying1+302-0
2026-09-26 16:52Merge 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 linksI Mean I'm Just Saying22+1231-139
2026-09-26 16:52Merge 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 countedI Mean I'm Just Saying27+1774-92
2026-09-26 16:52Merge 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 Saying32+2856-75
2026-09-26 08:22plans: STATE — brand S4, L1 and L2 reviewed to SHIP and parked for after the brand rollout; merge order, the copy rulings owed, the new lowsI Mean I'm Just Saying1+41-0
2026-09-26 08:20plans: 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 Saying1+62-12
2026-09-26 08:10hub: 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 Saying4+53-9
2026-09-26 08:10hub: a subs manifest that still fails after its retry never fails its archive (re-read R1)I Mean I'm Just Saying3+28-30
2026-09-26 08:02plans: 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 alwaysI Mean I'm Just Saying1+123-4
2026-09-26 07:59plans: L2 re-read fix — every unprobed pre-clean suspect is unverified; resolveMaybeMissingState's error-as-available is a new lowI Mean I'm Just Saying3+40-13
2026-09-26 07:57common: the pre-clean gate never judges a suspect its check did not probe, blocked or not (review fix)I Mean I'm Just Saying2+65-15
2026-09-26 07:50plans: L2 review fixes — hung-mount wording, rate-limited prefetch exit, availability-check stop with the pre-clean guardI Mean I'm Just Saying3+103-15
2026-09-26 07:36export: [Unreleased] — /ask with every archive off, and the subs manifest's failureI Mean I'm Just Saying1+2-2
2026-09-26 07:36common: compose-hub and compose-site never write through a link in public/ (review fix 2)I Mean I'm Just Saying6+272-24
2026-09-26 07:33hub: useHubSummary runs with networkMode "always" (review fix 3)I Mean I'm Just Saying1+5-0
2026-09-26 07:33hub: /ask with every archive switched off is not ready and says why (review fix 1)I Mean I'm Just Saying6+133-15
2026-09-26 07:32hub: 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 Saying2+71-20
2026-09-26 07:31common: 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 Saying4+358-5
2026-09-26 07:26jobs: say what a hung mount does to the boot pass's re-queues (review fix)I Mean I'm Just Saying1+17-9
2026-09-26 07:25common: a rate-limited metadata prefetch ends the download there (review fix)I Mean I'm Just Saying2+178-5
2026-09-26 07:22plans: 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 cutI Mean I'm Just Saying2+30-5
2026-09-26 07:21umtool: 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 Saying4+36-7
2026-09-26 07:21common: 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 Saying5+27-9
2026-09-26 07:11plans: 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 Saying1+120-0
2026-09-26 07:09plans: slice L2 as shipped — soft block backs off, bounded storage-pass wait, cancelReason on /jobs, counted safeRevalidate skipsI Mean I'm Just Saying3+162-3
2026-09-26 07:08plans: 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] bulletI Mean I'm Just Saying3+182-0
2026-09-26 06:43editor: a card row's cancel reason sits at the end of its headingI Mean I'm Just Saying1+3-1
2026-09-26 06:42common: brand-media's INDEX.html says its timestamp is UTCI Mean I'm Just Saying1+2-1
2026-09-26 06:40umtool: 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 didI Mean I'm Just Saying6+101-9
2026-09-26 06:40umtool: 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 Saying8+949-55
2026-09-26 06:36editor: safeRevalidate counts its skips instead of warning once per bundleI Mean I'm Just Saying2+275-38
2026-09-26 06:33editor: /jobs shows why the boot pass cancelled a jobI Mean I'm Just Saying8+176-2
2026-09-26 06:33export: [Unreleased] — the hub's one order and colour, /ask's scope, the subs retryI Mean I'm Just Saying1+5-0
2026-09-26 06:33hub: /ask honours the scope chipsI Mean I'm Just Saying2+45-19
2026-09-26 06:30jobs: the boot pass stops waiting for the storage pass after 60 sI Mean I'm Just Saying3+224-30
2026-09-26 06:29hub: one order and one colour for the official instances — the homepage'sI Mean I'm Just Saying7+199-82
2026-09-26 06:29hub: retry: false on the federated subs manifest — a member with no live chat is ready ~1 s soonerI Mean I'm Just Saying2+32-5
2026-09-26 06:28common: YouTube's soft block ("try again later") is a rate limit, not a deleted videoI Mean I'm Just Saying5+228-9
2026-09-26 06:27common: 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 readsI Mean I'm Just Saying4+360-8
2026-09-26 06:26common: 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 Saying4+968-0
2026-09-26 06:24common: officialInstances — the hub's official instances in the homepage's order, one colour eachI Mean I'm Just Saying2+156-1
2026-09-26 06:24export: playwright.config.ts unlinks public/sw.js before copying the site workerI Mean I'm Just Saying1+10-1
2026-09-26 06:24umtool: 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 fallbackI Mean I'm Just Saying6+220-0
2026-09-26 06:13plans: 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 rolloutI Mean I'm Just Saying1+71-0
2026-09-26 06:05plans: 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 rolloutI Mean I'm Just Saying1+91-56
2026-09-26 05:37Release export 0.9.0I Mean I'm Just Saying1+1-1
2026-09-26 05:37Release editor 0.9.0I Mean I'm Just Saying1+1-1
2026-09-26 04:51plans: brand S3 review fixes — the runbook's final-commit check and fail-stop rollout scripts; the test nitsI Mean I'm Just Saying3+48-8
2026-09-26 04:48common: 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 Saying2+7-6
2026-09-26 04:32plans: 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 repoI Mean I'm Just Saying4+545-50
2026-09-26 04:11common: 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 Saying1+13-13
2026-09-26 04:11common: 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 Saying1+10-1
2026-09-26 03:21common: 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 Saying2+11-9
2026-09-26 03:14editor, 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 Saying3+8-7
2026-09-26 03:12common, editor: comments and the accent hint name the three bases, not the retired theme families (brand S3)I Mean I'm Just Saying4+7-7
2026-09-26 03:12export: 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 Saying2+10-8
2026-09-26 03:12common: text-rendering: geometricPrecision only at 2dppx and up, where hinted advances split words; 1x screens keep hinting (brand S3)I Mean I'm Just Saying2+28-14
2026-09-26 03:12common: 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 Saying2+16-10
2026-09-26 03:11common: 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 Saying1+28-4
2026-09-26 03:11common: 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 Saying2+30-12
2026-09-26 03:05Merge 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 serverI Mean I'm Just Saying41+2105-1307
2026-09-26 03:00plans: brand + themes — S2 review fixes, the merge of main, and the post-merge gatesI Mean I'm Just Saying4+64-6
2026-09-26 02:58common: form controls lay out text at design widths too (brand S2 review)I Mean I'm Just Saying2+13-3
2026-09-26 02:54export, homepage: the no-flash specs wait on the ready marker without racing the new document (brand S2)I Mean I'm Just Saying3+3-3
2026-09-26 02:38common, export: S1's wordmark and header mark read the base × accent tokens (brand S2, post-merge)I Mean I'm Just Saying2+7-7
2026-09-26 02:36Merge main into brand/themes — S0 + S1 (the Found-line mark, icon routes, Wordmark) and release 9 C2/C3 under the base × accent themesI Mean I'm Just Saying59+2490-209
2026-09-26 02:30common: text lays out at its design widths (text-rendering: geometricPrecision) (brand S2 review)I Mean I'm Just Saying2+13-0
2026-09-26 02:30export, common: site-branding checks the server's data-accent; tone.ts names the three bases (brand S2 review)I Mean I'm Just Saying2+8-3
2026-09-26 02:30common, export, editor: accent text on its soft tint is --brand-strong (brand S2 review)I Mean I'm Just Saying6+11-9
2026-09-26 02:30homepage, export: the hub and the homepage render their dark base on the server (brand S2 review)I Mean I'm Just Saying3+45-3
2026-09-26 02:30homepage: the growth chart stacks its layers in palette order (brand S2 review)I Mean I'm Just Saying1+7-4
2026-09-26 02:26common: sepia status colours read at 4.5:1 on their own soft fills (brand S2 review)I Mean I'm Just Saying2+44-7
2026-09-26 02:25Merge 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 creditI Mean I'm Just Saying47+1394-112
2026-09-26 02:24Merge 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 proposalI Mean I'm Just Saying20+1701-34
2026-09-26 02:22plans: brand + themes — slice S1 review fixes recordedI Mean I'm Just Saying1+32-0
2026-09-26 02:19export: pwa.spec's /icons/ 404 probe names the dev-server log it causes as expected (brand S1 review)I Mean I'm Just Saying1+5-1
2026-09-26 02:19common: 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 Saying1+5-3
2026-09-26 02:19common: brandIconFiles — the icon set as pure data, so next/og stays with the route handlers (brand S1 review)I Mean I'm Just Saying8+132-78
2026-09-26 02:17export: both service workers serve /icons/ network-first; the SHELL comment names the one-visit offline gap (brand S1 review)I Mean I'm Just Saying3+148-8
2026-09-26 02:11plans: brand + themes — slice S2 as shipped (base × accent); CHANGELOGsI Mean I'm Just Saying4+198-0
2026-09-26 02:11common: tokens.css chart notes state the all-pairs CVD floor band (brand S2)I Mean I'm Just Saying1+13-9
2026-09-26 02:07plans: brand + themes — slice S1 as shipped (mark, icons, wordmark); editor, export and homepage CHANGELOGsI Mean I'm Just Saying4+215-0
2026-09-26 01:50homepage: the operate docs describe the accent and the reader's theme menu (brand S2)I Mean I'm Just Saying2+6-4
2026-09-26 01:50editor: theme.spec seeds the base key and covers the migration (brand S2)I Mean I'm Just Saying1+73-29
2026-09-26 01:50homepage: theme.spec — dark + Signal by default; REQUIRED_TOKENS complete on all three bases (brand S2)I Mean I'm Just Saying1+80-116
2026-09-26 01:50export: theme specs are base × accent — theme.spec rewritten, theme-accent.spec replaces theme-family (brand S2)I Mean I'm Just Saying5+260-114
2026-09-26 01:46common: siteAccentVars is gone — the accent is data-accent plus customAccentVars (brand S2)I Mean I'm Just Saying2+3-43
2026-09-26 01:43common: the theme runtime and pickers are base × accent; the layouts set the defaults (brand S2)I Mean I'm Just Saying9+377-282
2026-09-26 01:39common: themeConfig — base/accent keys, migrateLegacy, the pre-paint script source (brand S2)I Mean I'm Just Saying2+373-29
2026-09-26 01:37common: tokens.css is three bases × seven accents; fonts are Archivo, Plex Sans, Plex Mono (brand S2)I Mean I'm Just Saying7+556-680
2026-09-26 01:30editor: the parent mark beside adminTitle, and app/icon.svg as the favicon (brand S1)I Mean I'm Just Saying4+67-9
2026-09-26 01:30homepage: the header is the parent mark + Archi|lyzer, no longer tracked uppercase (brand S1)I Mean I'm Just Saying2+55-10
2026-09-26 01:30export: the header is the mark + the split wordmark, the footer credit carries the parent mark (brand S1)I Mean I'm Just Saying7+276-32
2026-09-26 01:30common: BrandMark and Wordmark components (brand S1)I Mean I'm Just Saying2+113-0
2026-09-26 01:27export: both service workers retire the pre-brand shell cache — SHELL is shell-v2, VERSION stays v1 (brand S1)I Mean I'm Just Saying2+12-2
2026-09-26 01:27homepage: the icons and favicon are rendered at build from the parent mark (brand S1)I Mean I'm Just Saying10+40-25
2026-09-26 01:27export: the icons and favicon are rendered per build from the mark, lit with the site's accent (brand S1)I Mean I'm Just Saying12+74-32
2026-09-26 01:26common: brandIcons — every icon file rendered from the mark at build (next/og PNGs, a PNG-payload ICO) (brand S1)I Mean I'm Just Saying2+308-0
2026-09-26 01:15plans: brand — Archilyzer Media proposed (the YouTube channel): canvas row, mark/lockup options, asset specs, umtool preset, S4 outline; awaiting the operator's picksI Mean I'm Just Saying1+57-0
2026-09-26 01:11plans: brand + themes — slice S0 as shipped (palette + data); editor CHANGELOGI Mean I'm Just Saying2+168-0
2026-09-26 01:07editor: sites-crud's brand test filters the form's alert from Next's route announcer (brand S0)I Mean I'm Just Saying1+4-1
2026-09-26 01:00editor: the site form picks a named accent (or a custom hex) and a wordmark lead (brand S0)I Mean I'm Just Saying3+196-12
2026-09-26 00:58export: the hub's synthesized Site carries wordmarkLead "Archi" (brand S0)I Mean I'm Just Saying1+6-1
2026-09-26 00:58common: the published accent stays a hex — /site.json, hub-sites.json, the homepage summary (brand S0)I Mean I'm Just Saying6+90-3
2026-09-26 00:55common: site.json takes an accent id and a wordmarkLead (brand S0)I Mean I'm Just Saying3+89-9
2026-09-26 00:55plans: STATE — restore the release 10 candidate list dropped by the previous editI Mean I'm Just Saying1+10-0
2026-09-26 00:52common: the brand as data — accents, grounds, the Found-line mark, the wordmark split (brand S0)I Mean I'm Just Saying5+678-9
2026-09-26 00:51plans: release 9 — C2 + C3 live (hub 6ef7f472, homepage e09900af with the hub link); the evening plan is complete through step CI Mean I'm Just Saying2+27-18
2026-09-26 00:47Merge 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 Saying11+1003-85
2026-09-26 00:46plans: release 9 slice C2 — review fixes (5163aefc) and re-gate (e2e:hub 17/17); follow-ups named; CHANGELOGI Mean I'm Just Saying2+33-19
2026-09-26 00:44hub: 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 Saying5+112-50
2026-09-26 00:43plans: 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 Saying1+10-0
2026-09-26 00:43plans: brand + themes — the Found-line mark, the subject-split wordmark, and base × accent reader themes (S0 → S1 ‖ S2 → S3)I Mean I'm Just Saying1+414-0
2026-09-26 00:43homepage: the hero links the hub again (release 9 slice C3) — the hub is polished (C1, C1b, C2)I Mean I'm Just Saying1+4-4
2026-09-26 00:37plans: release 9 slice C2, as shipped — federated search (scope chips, per-archive state, progressive, partial failure, attribution, per-origin page gate); CHANGELOGI Mean I'm Just Saying2+107-0
2026-09-26 00:35common: the merged hub list keeps its identity until the ready set changesI Mean I'm Just Saying1+4-1
2026-09-26 00:24hub: a scope chip's title says what its number counts (videos in the search) and what pressing it doesI Mean I'm Just Saying1+7-2
2026-09-26 00:22plans: release 9 — C1b live on the hub (747b6a32) and the homepage (e9954138)I Mean I'm Just Saying1+7-0
2026-09-26 00:17plans: FACTS — worktree export e2e writes the primary's sw.js through the public symlink; homepage worktree data must be copiedI Mean I'm Just Saying1+10-0
2026-09-26 00:17export: federation.spec matches "Archives You Added" exactly (C1b's Title Case)I Mean I'm Just Saying1+2-2
2026-09-26 00:17Merge main (23c01dcc, release 9 slice C1b) into one-core/c2-federated-searchI Mean I'm Just Saying13+253-89
2026-09-26 00:17Merge 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 footersI Mean I'm Just Saying12+243-81
2026-09-26 00:16export: e2e-hub federated-search.spec — scope off/on across a reload, a failed member + Retry, a slow member, attributionI Mean I'm Just Saying1+248-0
2026-09-26 00:16common: a hub result names its archive; "N of M archives answered." above the resultsI Mean I'm Just Saying2+70-0
2026-09-26 00:16hub: scope chips — one per archive, toggles it in or out of the search, remembered per browserI Mean I'm Just Saying4+187-7
2026-09-26 00:16plans: C1b — the export e2e harness overwrote the primary's sw.js through the worktree link; restored, fix candidate recordedI Mean I'm Just Saying1+9-0
2026-09-26 00:15plans: release 9 slice C1b as shipped — Title Case, no subtitles, no card descriptions, bare Ko-fi on hub + homepage; gates + CHANGELOGI Mean I'm Just Saying2+79-0
2026-09-26 00:13common: MultiSiteDataProvider exposes per-archive state — scope, loading/ready/failed, RetryI Mean I'm Just Saying1+281-52
2026-09-26 00:08e2e: Official Instances heading exact, no card description, Ko-fi on the hub and homepage footers, none on a site buildI Mean I'm Just Saying3+65-6
2026-09-26 00:08hub, homepage: Title Case headings, no subtitle under Official Instances, no description on the official cardsI Mean I'm Just Saying4+53-70
2026-09-26 00:08common: 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 Saying3+37-5
2026-09-26 00:06plans: STATE — operator rulings: C2 approved, Ko-fi bare link no copy, hub/homepage copy rulings, Paramount full downloadI Mean I'm Just Saying1+10-8
2026-09-25 23:50plans: 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 + FACTSI Mean I'm Just Saying3+127-8
2026-09-25 23:39Merge 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 Saying25+1082-162
2026-09-25 23:38plans: release 9 — C1 merged with main (7f261121), re-gated; projection unchanged under main's buildHomepageSummaryI Mean I'm Just Saying1+11-0
2026-09-25 23:29Merge main (release 9, 4386f369) into one-core/c1-hub-lookI Mean I'm Just Saying49+1717-125
2026-09-25 23:29Merge 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 Saying48+1709-119
2026-09-25 23:27plans: release 9 — the review fixes in the slice F record; CHANGELOG bullets for B2 and B4b correctedI Mean I'm Just Saying2+88-37
2026-09-25 23:24editor: the queued-sync e2e releases its holder after 10 s, not 4 (review LOW-3)I Mean I'm Just Saying1+5-3
2026-09-25 23:24common: only a filter-declined video skips the between-downloads sleep (review fix)I Mean I'm Just Saying2+30-35
2026-09-25 23:24editor: the boot pass re-queues little — no syncs, nothing stale, newest per spec (review fix)I Mean I'm Just Saying3+332-79
2026-09-25 23:20plans: STATE — Paramount Tactical scan/download/keep done (1,369 settled by the filter, 0 requests); release 9 + C1 in review fixesI Mean I'm Just Saying1+10-0
2026-09-25 23:13plans: release 9 — C1 review fixes recorded (9d3ab18c, e2e:hub 11 passed); the hub build's LMDB/data walk notedI Mean I'm Just Saying1+20-9
2026-09-25 23:12plans: release 9 — slice F as shipped (four fixes + the three lows); [Unreleased] bulletsI Mean I'm Just Saying2+183-0
2026-09-25 23:12export: 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 colourI Mean I'm Just Saying3+34-21
2026-09-25 23:05plans: release 9 — slice C1 as shipped (the hub in the family's register; hub-summary.json; --chart-3 green)I Mean I'm Just Saying2+139-0
2026-09-25 23:04editor: the queued-sync e2e reproduces the live failure (detached release)I Mean I'm Just Saying2+58-32
2026-09-25 22:48export: 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 H1I Mean I'm Just Saying12+376-102
2026-09-25 22:47homepage: official.transcripts counted where transcripts are placed; gone only when heldI Mean I'm Just Saying5+81-11
2026-09-25 22:47common: a new video dir rebases the channel's title memo instead of dropping itI Mean I'm Just Saying2+44-9
2026-09-25 22:47common: a backoff merge takes until and fails each to their maxI Mean I'm Just Saying4+48-10
2026-09-25 22:44common: 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 indexI Mean I'm Just Saying8+503-53
2026-09-25 22:43editor: at boot, settle the metas a restart left `queued`I Mean I'm Just Saying4+388-0
2026-09-25 22:43common: /jobs flags a stall by quiet time, not ageI Mean I'm Just Saying4+90-4
2026-09-25 22:41common: archilyzer --chart-3 is its own series green, no longer the --state-gone hex (light #5a9e3a, dark #86c86a)I Mean I'm Just Saying1+9-2
2026-09-25 22:41export: the hub wears the family's instrument face — archilyzer, dark by default, as the homepage does; site builds keep base/systemI Mean I'm Just Saying1+27-4
2026-09-25 22:39common: YouTube spawns carry --sleep-requests 1I Mean I'm Just Saying3+52-6
2026-09-25 22:37common: no 30 s sleep after a video that fetched no mediaI Mean I'm Just Saying2+211-6
2026-09-25 22:35editor: a queued job's revalidation can no longer fail it (safeRevalidate)I Mean I'm Just Saying21+285-73
2026-09-25 22:27plans: release 8 — slice H is production (archilyzer.pages.dev deploy a684a0ce, summary v5); rollout scripts keptI Mean I'm Just Saying2+10-1
2026-09-25 22:25plans: 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 checkI Mean I'm Just Saying13+176-0
2026-09-25 22:11plans: 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 Saying1+1-1
2026-09-25 21:48plans: release 8 — slice Z live on the five sites + hub (yt-dlp button proved on Jeralyzer); slice E merged 8c6de5c2, its redeploy startedI Mean I'm Just Saying1+4-0
2026-09-25 21:47Merge 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 Saying6+406-6
2026-09-25 21:06plans: release 8 slice E — (review fix) record the page-life gate, the hub /ask note and the re-gateI Mean I'm Just Saying2+13-3
2026-09-25 21:03Merge 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 Saying11+101-47
2026-09-25 21:03plans: release 8 slice Z — the yt-dlp command button is not a download; record + changelogI Mean I'm Just Saying2+40-0
2026-09-25 21:01common: (review fix) hold a restored search only on the page life's first loadI Mean I'm Just Saying3+181-1
2026-09-25 21:00common: the yt-dlp clip command shows with transcriptDownloads offI Mean I'm Just Saying9+61-47
2026-09-25 20:54plans: release 8 slice E — the restored search waits for the visitor (record + changelog)I Mean I'm Just Saying2+63-0
2026-09-25 20:44export: ask-chat's reload test submits the restored search before checking groundingI Mean I'm Just Saying1+3-1
2026-09-25 20:40common: a search restored from localStorage waits for the visitorI Mean I'm Just Saying2+150-5
2026-09-25 20:35plans: release 8 slice H — reviewed SHIP, merged 556dd6e7, preview deployed at refresh.archilyzer.pages.dev; production pending the operatorI Mean I'm Just Saying1+2-0
2026-09-25 20:32Merge 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 Saying13+1006-295
2026-09-25 20:27plans: release 8 slice H — monthlyUnplaced now includes the build monthI Mean I'm Just Saying1+2-2
2026-09-25 20:27plans: release 8 slice H — the record's month span after the trim (204 months, to 2026-08)I Mean I'm Just Saying1+3-3
2026-09-25 20:27plans: release 8 slice H — record the complete-months fix and its re-gateI Mean I'm Just Saying1+10-4
2026-09-25 20:27common: homepage summary monthly ends at the last complete month — the build month is partial and charted as a collapseI Mean I'm Just Saying2+47-20
2026-09-25 20:22plans: release 8 slice H record — the homepage, rethought; CHANGELOG bulletI Mean I'm Just Saying2+120-0
2026-09-25 20:20publish: deploy homepage [--preview <branch>] — deployHomepage takes previewBranch the way deployHub doesI Mean I'm Just Saying3+67-8
2026-09-25 20:18homepage: marketing e2e pins the chart, Official instances and the build date against the summary on diskI Mean I'm Just Saying1+65-32
2026-09-25 20:18homepage: / rethought — claim, chart, family numbers, official instances, one paragraph of what it doesI Mean I'm Just Saying3+209-254
2026-09-25 20:18homepage: ArchiveGrowthChart — the official instances' back catalogue as stacked monthly strata, inline SVG at build timeI Mean I'm Just Saying2+270-0
2026-09-25 20:12common: homepage summary v5 — monthly back catalogue by upload month, per-site numbers, official totalsI Mean I'm Just Saying2+242-1
2026-09-25 20:04plans: STATE — homepage no longer links to the hub (operator decision); homepage refresh nextI Mean I'm Just Saying1+2-0
2026-09-25 20:01homepage: 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 buildI Mean I'm Just Saying1+5-1
2026-09-25 19:31plans: release 7 step 10 — the invariant is the pipeline action's own revalidatePath (pipelineActions.ts:220-224), not the onDone hookI Mean I'm Just Saying1+1-1
2026-09-25 19:29plans: release 8 rollout record — 660957f7 live on :3001 (video titles + one shared auto-queue state); STATE + FACTSI Mean I'm Just Saying3+367-9
2026-09-25 19:23plans: release 7 rollout — step 10 owed sync recorded (teamrcn stamps moved; status failed on the queued-job revalidatePath invariant)I Mean I'm Just Saying1+1-1
2026-09-25 18:17Merge one-core/r8-state-share — release 8 slice S: one shared auto-queue state per process; manual-sync backoff writes through the live objectI Mean I'm Just Saying8+442-46
2026-09-25 18:17Merge 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 videosI Mean I'm Just Saying12+997-58
2026-09-25 18:15plans: release 8 slice V — review fixes, re-gate, live Rumble cost numbersI Mean I'm Just Saying1+36-12
2026-09-25 18:12editor: changelog — a manual Sync's cooldown is no longer erased by a runner's save (review fix)I Mean I'm Just Saying1+1-1
2026-09-25 18:09channels: matchesVideoQuery above parseFilters' comment, and a unit test for it (review L1, L2)I Mean I'm Just Saying2+50-3
2026-09-25 18:09common: memoize metadata.info.json titles per channel, keyed by data/ mtime (review M1)I Mean I'm Just Saying3+144-6
2026-09-25 18:05common: recordDownloadBackoff writes through the shared auto-queue state (review fix)I Mean I'm Just Saying6+261-91
2026-09-25 18:00plans: release 8 record — slice V (video titles) as shipped; changelog bulletsI Mean I'm Just Saying2+86-0
2026-09-25 17:58editor: changelog — a lane's save no longer undoes the download runner's cooldown (slice S)I Mean I'm Just Saying1+1-0
2026-09-25 17:50channels: the video page shows the listing scan's metadata for an undownloaded videoI Mean I'm Just Saying2+140-32
2026-09-25 17:50channels: the video list shows titles and searches themI Mean I'm Just Saying4+64-26
2026-09-25 17:49common: sharedAutoQueueState caches the in-flight read — one state object per process, even at bootI Mean I'm Just Saying2+158-7
2026-09-25 17:48common: videoTitles — a channel's video titles from index, scan store, metadata.info.jsonI Mean I'm Just Saying2+498-0
2026-09-25 17:47plans: release 7 rollout — the 13:33 state.json revert traced (sharedAutoQueueState caches the value, not the read); fix is release 8 slice SI Mean I'm Just Saying1+13-0
2026-09-25 17:42plans: release 7 rollout record — 93155dc7 live on :3001 (releases 6 + 7), hub + homepage first deploys; STATE + FACTSI Mean I'm Just Saying4+318-8
2026-09-25 17:01docs: keep-videos example names the live slug; four things to know (slice K review)I Mean I'm Just Saying1+2-2
2026-09-25 17:01Merge 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 Saying10+742-0
2026-09-25 16:57plans: release 7 slice K record — pnpm ops keep-videosI Mean I'm Just Saying2+68-0
2026-09-25 16:38docs: keep-videos in the ops section — scan first, download the notDownloaded ids, re-runI Mean I'm Just Saying1+12-0
2026-09-25 16:38ops: keep-videos — POST {slug, match, fields?, note?, dryRun?}I Mean I'm Just Saying4+145-0
2026-09-25 16:38editor: keepVideosAction — the bulk form of the do-not-clean toggleI Mean I'm Just Saying1+47-0
2026-09-25 16:38common: keepVideosMatching — the do-not-clean marker over a channel's title/description matchesI Mean I'm Just Saying2+470-0
2026-09-25 16:36editor 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 deployI Mean I'm Just Saying1+21-6
2026-09-25 16:02Merge 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 fixI Mean I'm Just Saying47+1941-198
2026-09-25 15:59plans: (review fix) release 7 slice C record — Pages projects must exist first, 2origin, re-gate on the mergeI Mean I'm Just Saying1+51-7
2026-09-25 15:44Merge main bfcd2fcf (release 7 slice Y) into one-core/r7-cliI Mean I'm Just Saying20+960-59
2026-09-25 15:44(review fix) docs + hints: every deploy path uploads to R2; hub examples name archilyzer-hubI Mean I'm Just Saying4+14-8
2026-09-25 15:39plans: release 7 slice Y record — the later clock drops the tied pair (re-review nit)I Mean I'm Just Saying1+1-1
2026-09-25 15:39Merge 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 Saying20+959-59
2026-09-25 15:36plans: release 7 slice Y — review fixes recorded, re-gatedI Mean I'm Just Saying1+15-7
2026-09-25 15:34plans: release 7 slice C record — the archilyzer CLI, hub deploy path, posts-only fixI Mean I'm Just Saying2+110-0
2026-09-25 15:34common: (review fix) the deferred list is tested, and ties sort by code pointI Mean I'm Just Saying2+33-1
2026-09-25 15:33common: (review fix) the /jobs lane note says "deferred" tooI Mean I'm Just Saying2+26-3
2026-09-25 15:25plans: release 7 slice Y as shipped — YouTube lane pacing record + changelogI Mean I'm Just Saying3+81-0
2026-09-25 15:18e2e: pacing T1 — the idle sentence is drawn twice (rail + lane); assert oneI Mean I'm Just Saying1+5-1
2026-09-25 15:17compose: a manifest-only channel tree is copied, not deletedI Mean I'm Just Saying2+124-2
2026-09-25 15:16homepage: the hero links to the hub when homepage.json names itI Mean I'm Just Saying2+26-0
2026-09-25 15:16sites: Build hub / Deploy hub on /sites, ops build-hub and deploy-hubI Mean I'm Just Saying13+345-16
2026-09-25 15:16publish: the hub builds and deploys; the homepage deploys through the CLII Mean I'm Just Saying8+364-6
2026-09-25 15:10docker: build-site.sh and publish-site.sh call archilyzer build siteI Mean I'm Just Saying2+10-10
2026-09-25 15:10publish: buildSite / deploySite / buildAll; export's build twins collapseI Mean I'm Just Saying6+398-75
2026-09-25 15:09e2e: pacing.spec — a deferred video is skipped; a live 429 defers and moves onI Mean I'm Just Saying2+234-0
2026-09-25 15:07operations: the cooldown strip is a region and lists deferred videosI Mean I'm Just Saying3+104-24
2026-09-25 15:06common: bins export main() and run only as the entry point; archilyzer tableI Mean I'm Just Saying13+200-80
2026-09-25 15:06common: an identical scan error refreshes its `at` once a cooldown oldI Mean I'm Just Saying2+47-1
2026-09-25 15:04common: auto-download skips a deferred video; idleReason "deferred"I Mean I'm Just Saying2+33-2
2026-09-25 15:04common: the archilyzer CLI's parser and command table machineryI Mean I'm Just Saying4+307-3
2026-09-25 15:02common: applyUnitOutcome — one seam for a finished unit's backoff and deferralI Mean I'm Just Saying3+213-33
2026-09-25 15:00common: per-video deferral helpers + persisted videoDeferrals on the auto-queue stateI Mean I'm Just Saying4+182-1
2026-09-25 14:55plans: release 7 — YouTube lane pacing + the archilyzer CLI, then one rollout (releases 6 + 7)I Mean I'm Just Saying1+317-0
2026-09-25 05:50plans: release 5 — the-quartering-rumble sync finished (97 archived, 0 errors, stamps set; 4 maybe-missing are upstream 410s)I Mean I'm Just Saying2+11-2
2026-09-25 05:39plans: 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 filedI Mean I'm Just Saying4+387-9
2026-09-25 05:02Merge one-core/phase-4-s1 — Phase 4 slice 1: buildDeployCore moves to common/publish/build.ts, aws-sdk deps move to commonI Mean I'm Just Saying13+714-598
2026-09-25 05:02plans: release 6 Phase 4 slice 1 — record corrected after reviewI Mean I'm Just Saying1+12-4
2026-09-25 05:02common: jobs/ and controller/ may not import publish/I Mean I'm Just Saying1+3-3
2026-09-25 04:55plans: release 6 Phase 4 slice 1 — record and changelogI Mean I'm Just Saying3+55-1
2026-09-25 04:48Merge main (0e9d5dd0, release 6 follow-ups slice) into one-core/phase-4-s1I Mean I'm Just Saying17+282-77
2026-09-25 04:48Merge 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 routesI Mean I'm Just Saying17+282-77
2026-09-25 04:45common: buildDeployCore moves to the core as publish/build.tsI Mean I'm Just Saying10+648-594
2026-09-25 04:39plans: release 6 follow-ups slice — record and changelogI Mean I'm Just Saying2+50-0
2026-09-25 04:32editor: measure-nav times the /api/view paths, not the six retired onesI Mean I'm Just Saying1+17-12
2026-09-25 04:30common: channelSnapshot's bands comment names buildBands' real homeI Mean I'm Just Saying1+4-3
2026-09-25 04:28common: the remote transcript is written with writeFileAtomicI Mean I'm Just Saying1+7-4
2026-09-25 04:26umtool: report-to-video's yt-dlp spawns carry the platform argsI Mean I'm Just Saying10+184-56
2026-09-25 04:21common: HTTP 410 Gone classifies as deleted, not errorI Mean I'm Just Saying2+20-2
2026-09-25 02:51Merge one-core/r5-exports — release 5 slice X: per-site transcriptDownloads (default on), hub key on homepage.json, archives-off coverageI Mean I'm Just Saying29+726-85
2026-09-25 02:51plans: release 5 slice X — gates on the merged tree (main 09d0f4de + slice X)I Mean I'm Just Saying1+10-1
2026-09-25 02:40Merge main (09d0f4de, release 5 slice R) into one-core/r5-exportsI Mean I'm Just Saying13+630-26
2026-09-25 02:39plans: release 5 slice X — record and changelog after reviewI Mean I'm Just Saying2+49-20
2026-09-25 02:38Merge one-core/r5-rumble — release 5 slice R: Rumble impersonation everywhere, paced sweeps, a 429 mid-sweep is incomplete not failedI Mean I'm Just Saying13+630-26
2026-09-25 02:38plans: release 5 slice R — review fixes in the record (commit table, gates, retry cadence, umtool follow-up)I Mean I'm Just Saying1+27-8
2026-09-25 02:29common: a bare HTTP 403 classifies as "network" and backs the platform offI Mean I'm Just Saying3+27-1
2026-09-25 02:29common: slice R review — best-effort sweep cooldown write, truthful incomplete line, probe args without configI Mean I'm Just Saying2+23-7
2026-09-25 02:27hub: homepage.json transcriptDownloads — the hub's modal follows the same switchI Mean I'm Just Saying8+189-0
2026-09-25 02:27export: e2e — heal a leftover transcriptDownloads at config load, not in the specI Mean I'm Just Saying2+16-8
2026-09-25 02:18plans: release 5 slice R record, changelog, rumble-sweep-pacing supersededI Mean I'm Just Saying3+55-0
2026-09-25 02:16plans: release 5 slice X record — transcriptDownloads shipped on one-core/r5-exportsI Mean I'm Just Saying4+81-2
2026-09-25 02:07export: e2e for transcriptDownloads and archives: falseI Mean I'm Just Saying2+165-0
2026-09-25 01:58editor: e2e — a Rumble sweep that 429s mid-listing (sweep429 sentinel, argv recorded)I Mean I'm Just Saying2+191-0
2026-09-25 01:57common: a 429 mid-sweep is "incomplete", not a listing and not a failureI Mean I'm Just Saying2+211-12
2026-09-25 01:56sites: form checkbox for per-video transcript downloadsI Mean I'm Just Saying3+74-0
2026-09-25 01:56export: the transcript modal's Download / Copy MD / yt-dlp controls follow transcriptDownloadsI Mean I'm Just Saying9+140-77
2026-09-25 01:56common: site.json transcriptDownloads — per-video export controls, opt-out, absent = onI Mean I'm Just Saying3+26-1
2026-09-25 01:55common: one yt-dlp arg builder with a platform table — rumble gets --impersonate chrome everywhereI Mean I'm Just Saying5+112-14
2026-09-25 01:46plans: release 5 — record file, durable implementer rules, STATE pointerI Mean I'm Just Saying3+234-0
2026-09-25 01:08plans: release 4 final suites on 596c2963 — editor 624 + 1 load flake (rerun 3× green), export 188I Mean I'm Just Saying2+2-2
2026-09-25 00:26plans: release 4 record — Phase 3 complete (main @ 596c2963)I Mean I'm Just Saying4+630-114
2026-09-25 00:14Merge one-core/phase-3-s3b — the video page: one module per chore card, VideoPanel is the assemblyI Mean I'm Just Saying24+1852-1424
2026-09-25 00:14plans: slice 3b — post-merge gates on main af19fc62I Mean I'm Just Saying1+10-0
2026-09-25 00:03Merge branch 'main' into one-core/phase-3-s3bI Mean I'm Just Saying48+2022-261
2026-09-25 00:03Merge one-core/phase-3-w — one write idiom: writeFileAtomic under writeJsonAtomic, 26 writers folded, the two write counters deletedI Mean I'm Just Saying30+936-169
2026-09-25 00:03plans: slice W merged-tip gates (main 37d9a7de merged as 1a3a9b63)I Mean I'm Just Saying1+15-0
2026-09-24 23:51Merge main (37d9a7de, slice P) into one-core/phase-3-wI Mean I'm Just Saying20+1086-92
2026-09-24 23:50Merge one-core/phase-3-p — the /channels rack: one layer ladder, the transcribe station counts and queues by id, the audit fixesI Mean I'm Just Saying17+942-84
2026-09-24 23:50plans: slice P record — review fixes F1–F5I Mean I'm Just Saying2+30-9
2026-09-24 23:48channels: below md an opened Advanced panel stops above the deckI Mean I'm Just Saying2+9-5
2026-09-24 23:48channels: the transcribe station queues by idI Mean I'm Just Saying3+86-29
2026-09-24 23:45plans: slice 3b record — the video page's chore cards, one module eachI Mean I'm Just Saying2+90-0
2026-09-24 23:42plans: release 4 prelude — the one-sync md5 sweepI Mean I'm Just Saying2+14-8
2026-09-24 23:40plans: Rumble's embed endpoint 403s every download — upstream #17496, impersonation as step 0 of the Rumble sliceI Mean I'm Just Saying1+25-0
2026-09-24 23:38plans: slice P record — the rack's layer ladder, the transcribe station, the auditI Mean I'm Just Saying2+107-0
2026-09-24 23:29plans: 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 Saying1+54-0
2026-09-24 23:28video page: one module per chore cardI Mean I'm Just Saying22+1752-1424
2026-09-24 23:22plans: visitor exports off on the published sites — inventory and slice, scheduled after release 4I Mean I'm Just Saying1+51-0
2026-09-24 23:21channels: the rack is its own stacking contextI Mean I'm Just Saying3+33-14
2026-09-24 23:21channels: the section rule travels with a pinned group headerI Mean I'm Just Saying1+7-1
2026-09-24 23:21common: slice W review fixesI Mean I'm Just Saying3+42-20
2026-09-24 23:14plans: slice W record, writers numbers tool, changelogI Mean I'm Just Saying3+527-0
2026-09-24 23:05channels: an opened Advanced panel scrolls itself into viewI Mean I'm Just Saying2+45-2
2026-09-24 23:05channels: a group header's controls stay on screen when the rack scrolls acrossI Mean I'm Just Saying3+59-23
2026-09-24 22:59common: text and binary tmp-rename writers on writeFileAtomicI Mean I'm Just Saying7+29-31
2026-09-24 22:58channels: rack auditI Mean I'm Just Saying1+134-0
2026-09-24 22:57channels: the transcribe station counts what its button queuesI Mean I'm Just Saying5+236-42
2026-09-24 22:57channels: one layer ladder for the rackI Mean I'm Just Saying9+251-14
2026-09-24 22:56common: process-global and per-video JSON writers on writeJsonAtomicI Mean I'm Just Saying15+146-72
2026-09-24 22:53common: roster, maybe-missing and metadata-scan on writeJsonAtomic; two counters goneI Mean I'm Just Saying5+54-40
2026-09-24 22:51common: writeFileAtomic under writeJsonAtomicI Mean I'm Just Saying2+144-27
2026-09-24 22:47plans: release 4 prelude — bbcc1acd live on :3001I Mean I'm Just Saying2+78-0
2026-09-24 21:24plans: release 3 final suites on edd9fb3b (editor 621, export 188); why-3a-first is the plan's ruleI Mean I'm Just Saying2+3-8
2026-09-24 20:50comments: name what slices 3a and 4b left — sidecar(), writeJsonAtomic, reportStateOf's homeI Mean I'm Just Saying8+22-22
2026-09-24 20:50plans: release 3 record — rollout, slice 3a, slice 4b (main @ edd9fb3b)I Mean I'm Just Saying4+750-48
2026-09-24 20:41Merge one-core/phase-3-s4b — the rest of the schemas: site.json, channel config.json, sidecarsI Mean I'm Just Saying54+3349-1131
2026-09-24 20:40plans: slice 4b record — gates on the merged tip (8d53d72e)I Mean I'm Just Saying1+21-0
2026-09-24 20:24Merge branch 'main' (a9f5961e, slice 3a) into one-core/phase-3-s4bI Mean I'm Just Saying36+3022-1933
2026-09-24 20:24plans: phase3-files-numbers tool, the slice 4b record, changelogI Mean I'm Just Saying3+475-0
2026-09-24 17:59Merge one-core/phase-3-s3a — one drawing per noun: channel row + job in flightI Mean I'm Just Saying35+2964-1927
2026-09-24 17:50review fixes: one jsonFile chain per process, null patches fail loudly, doc proseI Mean I'm Just Saying12+179-102
2026-09-24 17:41plans: slice 3a record — review fixes, builds, card/dashboard changes, bisect hazardI Mean I'm Just Saying1+35-3
2026-09-24 17:40review fixes: rack-only dim, slug-only sections, report dates, one-line compact rowsI Mean I'm Just Saying11+141-63
2026-09-24 17:32bin: file-schemas-docs — SITE.md and CHANNEL.md generated from the schemasI Mean I'm Just Saying9+588-14
2026-09-24 17:29controller: one channel-config reader, a strict writer, one patcherI Mean I'm Just Saying13+255-130
2026-09-24 17:28plans: slice 3a, as shipped; changelog entryI Mean I'm Just Saying2+54-0
2026-09-24 17:27plans: rollout 2026-09-24 — release 2 live on :3001, smoke and the boot-cost noteI Mean I'm Just Saying2+58-4
2026-09-24 17:23lib: channelConfigSchema — one set of coercions for config.jsonI Mean I'm Just Saying3+503-305
2026-09-24 17:18lib: siteSchema — one definition of site.jsonI Mean I'm Just Saying4+594-278
2026-09-24 17:12channels: column ids and presets move to a plain module (server-importable)I Mean I'm Just Saying4+116-95
2026-09-24 17:11lib: sidecar() — one declaration per per-video sidecarI Mean I'm Just Saying12+519-329
2026-09-24 17:08widget: ActiveJobsStrip draws JobRow compact; private row and bars deletedI Mean I'm Just Saying1+11-230
2026-09-24 17:07operations: in-flight units are job rows (inFlight.jobId, fromInFlight)I Mean I'm Just Saying6+136-51
2026-09-24 17:05jobs: one JobRow (table | card | compact) + JobRowActionsI Mean I'm Just Saying7+681-404
2026-09-24 17:01channelWork: the server shell draws the shared channel tableI Mean I'm Just Saying2+69-112
2026-09-24 17:00dashboard: the shared channel table; the widgetActionable copy foldedI Mean I'm Just Saying5+142-279
2026-09-24 16:59channels: the rack splits into ChannelsRack + a shared ChannelsTableI Mean I'm Just Saying4+1067-711
2026-09-24 16:54views: channelRow + actionableCounts; loadActionable wraps themI Mean I'm Just Saying6+668-135
2026-09-24 16:54lib: one JSON reader and one per-path-chained atomic JSON writerI Mean I'm Just Saying24+350-106
2026-09-24 16:45operations: re-acquire figures come from the diarization kind, not the lane sumI Mean I'm Just Saying1+18-5
2026-09-24 16:01operations: LaneSettingsForm derives the re-acquire figures from the widget-sync payloadI Mean I'm Just Saying2+64-6
2026-09-24 00:56plans: final suites on a7501cb3 (editor 621, export 188) and gate B scope checkI Mean I'm Just Saying2+4-2
2026-09-24 00:22docs: point README and RUNNING_IN_DOCKER at the generated SETTINGS.mdI Mean I'm Just Saying2+3-1
2026-09-24 00:22plans: STATE — Phase 3 slices 2 + 4a on main @ a7501cb3, gate B doneI Mean I'm Just Saying1+81-5
2026-09-24 00:21plans: FACTS anchors for the view route and the settings schemaI Mean I'm Just Saying1+143-11
2026-09-24 00:20plans: one-core Phase 3 slices 2 and 4a marked shippedI Mean I'm Just Saying1+18-1
2026-09-24 00:20plans: phase 3 release 2026-09-23 (slices 2 + 4a) and the next releaseI Mean I'm Just Saying1+108-10
2026-09-24 00:20plans: gate B record — reachable media only, applied 2026-09-23I Mean I'm Just Saying1+43-0
2026-09-24 00:13merge: one-core/phase-3-s4a — one settings schema (zod), one editor writer, SETTINGS.md generatedI Mean I'm Just Saying39+4693-2229
2026-09-24 00:08merge: main (one-core phase 3 slice 2) into one-core/phase-3-s4aI Mean I'm Just Saying43+1142-356
2026-09-24 00:06settings: every nested key documented from one source; review fixesI Mean I'm Just Saying14+1364-445
2026-09-24 00:03merge: one-core/phase-3-s2 — one polling route: /api/view/[name], eight old paths as rewrites, one client pollerI Mean I'm Just Saying43+1142-356
2026-09-23 23:49plans: record one-core phase 3 slice 4a as shipped; changelog entryI Mean I'm Just Saying2+82-0
2026-09-23 23:47review fixes: a poll that hangs is abandoned, the dispatcher is text-banned, one row mappingI Mean I'm Just Saying12+137-44
2026-09-23 23:36settings: settings.json.example and SETTINGS.md generated from the schemaI Mean I'm Just Saying6+809-16
2026-09-23 23:35plans: slice 2 record, the view-numbers tool, two comments that named deleted routesI Mean I'm Just Saying4+199-2
2026-09-23 23:33editor: one settings writer — saveSettings(patch), and the 11 callers pass patchesI Mean I'm Just Saying13+216-118
2026-09-23 23:30settings: one schema — lib/settingsSchema.ts; getSettings/writeSettings parse through itI Mean I'm Just Saying3+1979-1661
2026-09-23 23:24editor: one client poller — usePolledPayload moves to lib/, three loops fold onto itI Mean I'm Just Saying10+165-148
2026-09-23 23:23settings: zod seams for workers, channelPriority and autoQueue, kept out of client bundlesI Mean I'm Just Saying3+63-14
2026-09-23 23:22settings: the auto-queue sanitizer moves to lib/autoQueueSchema.ts; zod joins commonI Mean I'm Just Saying8+466-261
2026-09-23 23:21api: one polling route — /api/view/[name], and the eight old paths are rewritesI Mean I'm Just Saying16+487-168
2026-09-23 23:14views: the widget's two route-resident builders become pure foldsI Mean I'm Just Saying13+215-55
2026-09-23 13:18plans: STATE records preview deployments and the Anilyzer preview URLI Mean I'm Just Saying1+11-1
2026-09-23 13:14merge: deploy/preview — a site can be deployed to a Cloudflare Pages preview branch before productionI Mean I'm Just Saying18+1438-80
2026-09-23 13:13sites: deploy-only must not ship a build of another siteI Mean I'm Just Saying8+271-2
2026-09-23 13:07sites: the preview problem message may not borrow the input's nameI Mean I'm Just Saying2+17-6
2026-09-23 13:05docs: preview deployments, and the branch-inference hazard that predates themI Mean I'm Just Saying2+139-0
2026-09-23 13:02e2e: pin the preview rules that are decided before a job existsI Mean I'm Just Saying2+234-1
2026-09-23 13:00sites: a preview control beside the production deployI Mean I'm Just Saying2+138-13
2026-09-23 12:58ops cli: deploy-site, and the preview alias printed where a person sees itI Mean I'm Just Saying2+114-6
2026-09-23 12:56ops: a deploy-site route, and preview on both deploy routesI Mean I'm Just Saying3+164-48
2026-09-23 12:54sites: deploy can go to a preview branch instead of productionI Mean I'm Just Saying3+102-11
2026-09-23 12:51common: one place that says what a Pages preview branch isI Mean I'm Just Saying2+266-0
2026-09-23 03:24plans: STATE records the post-release steps as done, all but the Anilyzer deployI Mean I'm Just Saying1+25-16
2026-09-22 21:31plans: STATE records the final full-suite numbers for the 2026-09-22 releaseI Mean I'm Just Saying1+1-1
2026-09-22 21:03plans: STATE for 2026-09-22 — the release, and two notes that expiredI Mean I'm Just Saying1+200-21
2026-09-22 21:01FACTS: the 2026-09-22 release, and four entries that were no longer trueI Mean I'm Just Saying3+321-4
2026-09-22 20:58plans: two S5/S6 debts landed, and the platter is not /mnt/platterI Mean I'm Just Saying2+41-2
2026-09-22 20:54merge: editor/debts — clip eviction on the channel page, busy-aware rename/delete, sync-all skips unmounted drives, worker auth 503 asserted, S0-pause landsI Mean I'm Just Saying52+1286-477
2026-09-22 20:43Merge branch 'main' into editor/debtsI Mean I'm Just Saying35+1502-187
2026-09-22 20:43editor: two refusals the operator could not readI Mean I'm Just Saying2+31-1
2026-09-22 20:42plans: the numbers script stopped printing four fields that no longer existI Mean I'm Just Saying1+11-4
2026-09-22 20:41common: the gate's default is asserted through the sanitizer, not only the defaultI Mean I'm Just Saying1+63-0
2026-09-22 20:40editor: the other four /api/test routes are behind the same doorI Mean I'm Just Saying4+30-6
2026-09-22 20:39editor: /api/test/worker-token does not exist unless the harness started the serverI Mean I'm Just Saying3+37-4
2026-09-22 20:35merge: export/tags-followups — tag chip groups fold, leaf sections use the scope table, hub /ask prerenders, MCP tag filter skips postsI Mean I'm Just Saying12+435-67
2026-09-22 20:33merge main into export/tags-followupsI Mean I'm Just Saying17+834-107
2026-09-22 20:33merge: tags/rules-and-ops — site layers carry no rules, ops --wait survives a dropped poll, both build routes take siteId|siteIdsI Mean I'm Just Saying17+834-107
2026-09-22 20:32ask: the hub /ask spec locates the composer, not the key fieldI Mean I'm Just Saying1+8-6
2026-09-22 20:31ops: a bad site id is a 400, and a poll that recovers is not an outcomeI Mean I'm Just Saying8+178-49
2026-09-22 20:31ask: the hub's /ask needs the whole provider stack, not one layerI Mean I'm Just Saying1+25-12
2026-09-22 20:19contract: guard shipsPwa's env read, and say what the guard is forI Mean I'm Just Saying2+44-11
2026-09-22 20:17operations: the four-lane status poll reads the corpus onceI Mean I'm Just Saying3+95-4
2026-09-22 20:15common: the write side is asserted on disk, and two comments name the keyI Mean I'm Just Saying6+127-15
2026-09-22 20:15editor: nothing preserves a retired pause field, because there is none to preserveI Mean I'm Just Saying16+66-74
2026-09-22 20:13mcp: a tag filter takes the posts corpus out of the searchI Mean I'm Just Saying4+89-3
2026-09-22 20:13measure-nav: the list says thirteen, so should the commentI Mean I'm Just Saying1+1-1
2026-09-22 20:13wt: rm finds the directory add madeI Mean I'm Just Saying2+75-9
2026-09-22 20:11ops: both build routes take siteId or siteIdsI Mean I'm Just Saying6+191-40
2026-09-22 20:11ask: the hub's /ask mounts its own search sessionI Mean I'm Just Saying2+64-1
2026-09-12 16:14common+editor: `held` gets a default, because the field it deferred to is goneI Mean I'm Just Saying10+133-52
2026-09-12 16:02common: the four legacy pause fields are gone, and so is the migrationI Mean I'm Just Saying12+162-333
2026-09-22 20:09editor: the relocate spec's Preview is exact, because the panel has two nowI Mean I'm Just Saying1+15-3
2026-09-22 20:09search: a leaf section is labelled by the builder's own scope tableI Mean I'm Just Saying3+47-8
2026-09-22 20:08ops: --wait survives a poll that fails, and can be boundedI Mean I'm Just Saying2+221-15
2026-09-22 20:07tags: a tag chip group folds away, and says what it still filtersI Mean I'm Just Saying3+218-53
2026-09-22 20:06gitignore: editor/content is an operator's symlink, never a tracked pathI Mean I'm Just Saying1+5-0
2026-09-22 20:06editor+common: the 503 branch of the worker gate is asserted, not assumedI Mean I'm Just Saying3+240-6
2026-09-22 20:06tags: a site layer has no rules, rather than rules that do nothingI Mean I'm Just Saying3+71-20
2026-09-22 20:04editor: Sync all skips a channel whose media drive is not mountedI Mean I'm Just Saying2+62-1
2026-09-22 20:03editor: rename and delete ask the same busy question every other surface asksI Mean I'm Just Saying5+179-18
2026-09-22 20:02tags: a rule can exclude channels, and the exclusion winsI Mean I'm Just Saying8+233-13
2026-09-22 20:00editor: the channel Storage panel can evict that channel's clip windowsI Mean I'm Just Saying4+177-12
2026-09-22 17:58plans: build-deploy takes siteId, build-site takes siteIdsI Mean I'm Just Saying1+1-1
2026-09-22 17:37FACTS: key-only LMDB scans never pass values:falseI Mean I'm Just Saying1+2-0
2026-09-22 17:26tags: the assignment-only re-apply destructured a bare keyI Mean I'm Just Saying2+16-2
2026-09-21 20:12tags: the re-apply pass must not hold the event loop for minutesI Mean I'm Just Saying5+190-36
2026-09-21 20:01plans: curated tags — rollout log and the two things the seed got wrongI Mean I'm Just Saying1+18-3
2026-09-21 18:24tags: a site overlay that only recolours must not rename the tagI Mean I'm Just Saying13+217-47
2026-09-21 18:10tags S3 review: the compressed read, the renamed overlay, and six smaller onesI Mean I'm Just Saying21+1080-75
2026-09-21 17:51Merge branch 'main' into tags/editorI Mean I'm Just Saying45+3361-52
2026-09-21 17:47tags S2: /tags.json is a ROOT_FILE now, so fetch it as oneI Mean I'm Just Saying2+3-7
2026-09-21 17:44Merge branch 'main' into tags/siteI Mean I'm Just Saying25+2468-27
2026-09-21 17:43Merge branch 'tags/core'I Mean I'm Just Saying22+1775-31
2026-09-21 17:43tags review: an interrupted build owes the pages a rewrite, and must know itI Mean I'm Just Saying6+508-52
2026-09-21 17:43tags review: refuse an undefined tag, and stop leaking the vocabulary into gitI Mean I'm Just Saying4+96-8
2026-09-21 17:37tags S2 review: the posts leaf, the orphan chip, and a validated tgI Mean I'm Just Saying5+251-13
2026-09-21 17:37tags S3.7: tests for all three writersI Mean I'm Just Saying5+604-0
2026-09-21 17:32plans: curated tags — no schema bump, site layer is presentation-only, four opsI Mean I'm Just Saying1+10-6
2026-09-21 17:24tags S3.6: umtool hands a walked report's judgement to the archiveI Mean I'm Just Saying3+432-0
2026-09-21 17:23tags S2.11: e2e for the chip row, and the Filters badge counts tagsI Mean I'm Just Saying2+197-0
2026-09-21 17:22tags S3: the real store, and the site layer is presentation onlyI Mean I'm Just Saying4+179-622
2026-09-21 17:21tags: curated tags need no SCHEMA_VERSION bump, and the site layer holds no rulesI Mean I'm Just Saying4+74-13
2026-09-21 17:20Merge branch 'main' into tags/editorI Mean I'm Just Saying4+693-0
2026-09-21 17:20tags S3.5: the ops door — tag-videos and tags, plus --fileI Mean I'm Just Saying5+373-5
2026-09-21 17:18tags S2.10: the MCP learns curated tagsI Mean I'm Just Saying5+369-4
2026-09-21 17:17tags S3.4: tag the selection, and filter the list by tagI Mean I'm Just Saying7+251-6
2026-09-21 17:17tags S1.5: write down what the next session must not re-deriveI Mean I'm Just Saying2+83-2
2026-09-21 17:15tags S1.4: spec 4 — /tags.json is a declared, fetchable documentI Mean I'm Just Saying10+141-16
2026-09-21 17:13tags S3.3: the video page says which tags are on a video, and who said soI Mean I'm Just Saying4+370-0
2026-09-21 17:12tags S2.9: the chip row, the card chips, and "Tags" -> "Keywords"I Mean I'm Just Saying3+158-4
2026-09-21 17:12tags S3.2: the per-site overlay tabI Mean I'm Just Saying3+593-1
2026-09-21 17:10tags S2.8: draftTags / committedTags in the search sessionI Mean I'm Just Saying2+108-3
2026-09-21 17:10tags S3.1: /tags — the curated vocabulary, its rules, and a bounded previewI Mean I'm Just Saying8+1209-9
2026-09-21 17:09tags S1.3: derive curatedTags in the index, and notice when only a tag movedI Mean I'm Just Saying4+936-3
2026-09-21 17:08tags S2.7: read /tags.json — reader, cache, context, and the `tg` paramI Mean I'm Just Saying8+433-1
2026-09-21 17:03tags S2.6: curatedTags on the share-filter predicateI Mean I'm Just Saying2+74-0
2026-09-21 17:00tags S1.2: the curated-tags store, and the four ops of an assignmentI Mean I'm Just Saying4+693-0
2026-09-21 16:56tags S1.1: curatedTags model, record fields, export fixtureI Mean I'm Just Saying5+1074-3
2026-09-21 16:48plans: curated per-video tags (approved 2026-09-21)I Mean I'm Just Saying1+209-0
2026-09-21 07:31review: a gate that opens on the click that opens it is not a gateI Mean I'm Just Saying6+140-9
2026-09-21 07:22review: the free-space guard was asking the wrong two directoriesI Mean I'm Just Saying9+347-21
2026-09-21 07:08e2e: Next's route announcer is also a role="alert"I Mean I'm Just Saying1+6-1
2026-09-21 07:03storage/ops: four things the first e2e run foundI Mean I'm Just Saying5+57-11
2026-09-21 06:57umtool e2e: the digest spec must write the mark it assertsI Mean I'm Just Saying1+11-0
2026-09-21 06:52FACTS: what the umtool suite does without the song dataI Mean I'm Just Saying1+28-0
2026-09-21 06:52umtool e2e: the rest of the song-data skips, from a run on mainI Mean I'm Just Saying4+37-0
2026-09-21 06:47Merge branch 'main' into storage/debts-1I Mean I'm Just Saying35+2646-80
2026-09-21 06:45umtool e2e: no song data is a SKIP, not a red suiteI Mean I'm Just Saying9+214-5
2026-09-21 06:43Merge branch 'feat/filtered-channel-followups'I Mean I'm Just Saying35+2646-80
2026-09-21 06:36full source: ask the editor for the whole recording, and find it againI Mean I'm Just Saying10+453-26
2026-09-21 06:36channelSets: the settled rule belongs in a test beside the sets it changesI Mean I'm Just Saying1+39-0
2026-09-21 06:35review: the discard was a deny-list, and four things it let throughI Mean I'm Just Saying12+656-149
2026-09-21 06:31Merge branch 'main' into storage/debts-1I Mean I'm Just Saying15+2207-2
2026-09-21 06:30ops: a fan-out that started jobs must say whichI Mean I'm Just Saying5+50-6
2026-09-21 06:29storage: the eight nits the plan namedI Mean I'm Just Saying13+287-25
2026-09-21 06:23relocate: the space check must not depend on how much RAM is freeI Mean I'm Just Saying2+82-4
2026-09-21 06:21storage: evict fetched clip windows, by ageI Mean I'm Just Saying10+790-0
2026-09-21 06:15storage: show what the clip windows are costingI Mean I'm Just Saying8+135-12
2026-09-21 06:14plans: correct two claims about the metadata scan that were already wrongI Mean I'm Just Saying1+9-4
2026-09-21 06:12review: say when the machine paused a channelI Mean I'm Just Saying6+380-2
2026-09-21 06:12e2e: four expectations that were wrong about the fixture, not the codeI Mean I'm Just Saying3+69-23
2026-09-21 06:10relocate: a move must not materialise the mountpointI Mean I'm Just Saying7+591-49
2026-09-21 06:06auto-download: the scan goes in the pick log like any other unitI Mean I'm Just Saying1+10-0
2026-09-21 06:04snapshot: videoHasAnyArtifact was isVideoDownloaded under a second nameI Mean I'm Just Saying2+14-3
2026-09-21 06:03download filter: a third answer for a filtered-out livestreamI Mean I'm Just Saying23+1084-16
2026-09-21 06:02deliver: prove Stop abandons the rest, and read a wrapped exclusion sentenceI Mean I'm Just Saying6+128-7
2026-09-21 06:00snapshot: clips/ is bytes on the platter, so count themI Mean I'm Just Saying2+128-3
2026-09-21 05:52deliver: corrections.md is the artifact, and the panel stops re-reading the projectI Mean I'm Just Saying4+47-7
2026-09-21 05:49deliver: an id shared under another name is still sharedI Mean I'm Just Saying4+49-12
2026-09-21 05:45download lane: the metadata scan is dispatched, not waited forI Mean I'm Just Saying11+681-44
2026-09-21 05:45deliver: refresh the counts the job just changed, and stat instead of readingI Mean I'm Just Saying3+15-4
2026-09-21 05:42deliver: a fixture that measures the cut, and the docs for the panelI Mean I'm Just Saying3+446-0
2026-09-21 05:36deliver: the half of the work that starts when the walk endsI Mean I'm Just Saying7+1235-0
2026-09-21 05:36cut: a confirmed clip is already on this disk, so stop fetching it againI Mean I'm Just Saying4+317-2
2026-09-21 05:34download filter: a rejection takes its own prefetch directory with itI Mean I'm Just Saying3+251-8
2026-09-21 02:58report fetch: the cached check must clamp at 0, because the fetch doesI Mean I'm Just Saying2+20-1
2026-09-21 02:05Merge main into feat/fetch-window-via-editorI Mean I'm Just Saying78+8340-396
2026-09-21 02:02review: the merge must remove a directory, and a channel must not defeat the ruleI Mean I'm Just Saying15+456-31
2026-09-21 01:27e2e: retry the select-all tick the focus refresh can dropI Mean I'm Just Saying1+15-1
2026-09-21 00:13plans: the review fixes, and why each one was not optionalI Mean I'm Just Saying1+44-0
2026-09-21 00:10Merge branch 'main' into storage/locations-s5-s6I Mean I'm Just Saying36+2500-75
2026-09-21 00:09storage review: the fixes an auto-pause and a store move cannot ship withoutI Mean I'm Just Saying17+1283-54
2026-09-20 23:49e2e: the editor-fetch fixtures need their own SOURCES, not just their own projectI Mean I'm Just Saying2+26-7
2026-09-20 23:46e2e: the editor stub must survive the fixture being rebuilt under itI Mean I'm Just Saying1+10-1
2026-09-20 23:45Merge branch 'umtool/confirm-saves-window'I Mean I'm Just Saying3+90-19
2026-09-20 23:43fetch-window: the scratch name has to be an mp4 tooI Mean I'm Just Saying3+13-7
2026-09-20 23:43Merge branch 'feat/ops-api'I Mean I'm Just Saying25+1996-2
2026-09-20 23:43report fetch: poll the job by id, or a failure reads as successI Mean I'm Just Saying2+23-5
2026-09-20 23:42fetch-window: the span cap is a constant, so it cannot live in a server actionI Mean I'm Just Saying3+12-8
2026-09-20 23:41fetch-window: refuse a bare `..` as a slug or an idI Mean I'm Just Saying2+9-4
2026-09-20 23:38docs: record why clips/ is invisible, and where a window's bytes come fromI Mean I'm Just Saying3+133-4
2026-09-20 23:37tests: pin the no-info-json rule and the editor fetch end to endI Mean I'm Just Saying9+736-9
2026-09-20 23:33bench: confirm a clip and the window you moved goes with itI Mean I'm Just Saying3+90-19
2026-09-20 23:28umtool: close the "not fetched yet" gap in one pressI Mean I'm Just Saying3+186-0
2026-09-20 23:27umtool: ask the editor for a clip window instead of running yt-dlpI Mean I'm Just Saying9+448-22
2026-09-20 23:23editor: show a fetched window, and who asked for itI Mean I'm Just Saying8+171-0
2026-09-20 23:19editor: POST /api/media/fetch-window sources clip media for another toolI Mean I'm Just Saying4+684-1
2026-09-20 23:16Prove a patch spares the fields it does not nameI Mean I'm Just Saying1+29-4
2026-09-20 23:15Check the slug's SHAPE on every route that takes oneI Mean I'm Just Saying13+136-23
2026-09-20 23:14clip windows: a fetched window lives beside the video, with provenanceI Mean I'm Just Saying12+891-64
2026-09-20 23:01storage: one badge per row, and the count cell is a countI Mean I'm Just Saying3+44-21
2026-09-20 21:49e2e: put walk-fixture w02 in the cache GAP, not half inside a neighbourI Mean I'm Just Saying2+14-7
2026-09-20 21:46docs: say what the walk skips, and what "ready N of M" countsI Mean I'm Just Saying2+34-7
2026-09-20 21:45e2e: assert the walk where the fixture holds stillI Mean I'm Just Saying1+112-18
2026-09-20 21:44e2e: a read-only walk-fixture, where what the walk skips is fixedI Mean I'm Just Saying1+41-0
2026-09-20 22:36channels: one spelling of "internal" and of the location paramI Mean I'm Just Saying2+12-3
2026-09-20 22:33e2e: match storage headers by text, and retry the clicks React has not wired yetI Mean I'm Just Saying1+39-12
2026-09-20 22:31changelog: the storage slice, in the operator's termsI Mean I'm Just Saying2+15-2
2026-09-20 22:30plans: S5 and S6, what shipped and what was deliberately leftI Mean I'm Just Saying3+230-2
2026-09-20 22:28e2e: the internal row, the store's move, and the columns operators asked forI Mean I'm Just Saying3+401-0
2026-09-20 22:26storage: the drive going away is a state, so something has to lookI Mean I'm Just Saying9+929-6
2026-09-20 22:12saved videos: the store is movable, by the channel mover's own codeI Mean I'm Just Saying14+1839-301
2026-09-20 21:57/channels: which disk, how big, and filter by volumeI Mean I'm Just Saying7+660-15
2026-09-20 21:52Refuse a traversing slug on the read route at the doorI Mean I'm Just Saying1+10-0
2026-09-20 21:51channel storage: one verb, and the corpus volume is a destinationI Mean I'm Just Saying2+138-100
2026-09-20 21:51Record the read route's opt-in counts in FACTSI Mean I'm Just Saying1+6-0
2026-09-20 21:51Report a misspelled config field before a missing channelI Mean I'm Just Saying3+53-27
2026-09-20 21:49Make the read route's live counts opt-inI Mean I'm Just Saying4+35-7
2026-09-20 21:48storage: how many bytes, and the disk they are already onI Mean I'm Just Saying6+421-20
2026-09-20 21:48Pin the ops API on the sentences it shares with the UII Mean I'm Just Saying1+398-0
2026-09-20 21:45Add the ops CLI, and say where the HTTP door isI Mean I'm Just Saying6+405-2
2026-09-20 21:44relocate: rsync already knew how far it had got — say soI Mean I'm Just Saying7+342-3
2026-09-20 21:43bench: the walk visits the clips that need judgement and are fetchedI Mean I'm Just Saying4+88-11
2026-09-20 21:43Give the editor's actions an HTTP doorI Mean I'm Just Saying18+985-0
2026-09-20 21:42bench: one clips-raw read per request, and a per-clip `fetched`I Mean I'm Just Saying3+100-10
2026-09-20 21:40build-video: split the cached-window predicate into I/O and arithmeticI Mean I'm Just Saying1+32-8
2026-09-20 08:00metadata scan: "consecutive" means consecutive in the batch, not in the pipesI Mean I'm Just Saying2+96-41
2026-09-20 07:20flow: a filtered channel is not 10 % covered, and "video dirs" is no longer oneI Mean I'm Just Saying2+32-10
2026-09-20 07:18download filter: the operator's regex is server-side code, so bound itI Mean I'm Just Saying4+94-2
2026-09-20 07:16download filter: a scheduled stream is a livestream, or it settles foreverI Mean I'm Just Saying2+41-5
2026-09-20 07:15metadata scan: a failed run says so in the store, and names the real failureI Mean I'm Just Saying1+34-1
2026-09-20 07:14metadata scan: the backlog it advertises is the work it does, and it needs mediaI Mean I'm Just Saying4+47-12
2026-09-20 07:12metadata scan: store records under the canonical id, not yt-dlp's native oneI Mean I'm Just Saying5+150-8
2026-09-20 07:10download filter: no metadata is not a verdict — fail open so the failure is classifiedI Mean I'm Just Saying2+40-21
2026-09-20 07:09metadata scan: one writer at a time, and each flush writes only the deltaI Mean I'm Just Saying5+168-44
2026-09-20 07:06metadata scan: a bot check without cookies is a retry, not a cooldownI Mean I'm Just Saying6+198-27
2026-09-20 05:45download filter: a channel can opt every livestream inI Mean I'm Just Saying13+334-40
2026-09-20 05:30metadata scan: a run of "Video unavailable" is a soft block, not 545 dead videosI Mean I'm Just Saying5+167-1
2026-09-20 04:48fix: the matched-titles list came back empty because the limit was a client referenceI Mean I'm Just Saying3+36-25
2026-09-20 04:36plans: FACTS — why the scan writes no video directory, and why settled is derivedI Mean I'm Just Saying1+73-49
2026-09-20 04:35e2e: the scan, the settlement, and the proof that no video directory is madeI Mean I'm Just Saying4+276-133
2026-09-20 04:31metadata scan: an action, a Playlist-stage block, and a row on its operation pageI Mean I'm Just Saying10+382-12
2026-09-20 04:25metadata scan: a catalogued operation that reads titles without fetching mediaI Mean I'm Just Saying10+522-7
2026-09-20 04:19download filter: settled is DERIVED from a channel-level metadata scanI Mean I'm Just Saying16+1125-310
2026-09-20 04:02download filter: the form takes the two patterns, and the pages say who was settledI Mean I'm Just Saying5+93-1
2026-09-20 04:00download filter: the snapshot has a settled bucket, and sync stops on settled pagesI Mean I'm Just Saying4+111-11
2026-09-20 03:57download filter: a channel can decline a video by title, and the decline settlesI Mean I'm Just Saying6+519-5
2026-09-20 02:23clip bench: a yes can be taken backI Mean I'm Just Saying2+30-2
2026-09-19 20:48plans: storage locations — S4 merged, S0–S4 completeI Mean I'm Just Saying1+2-1
2026-09-19 20:47Merge storage/locations-s4: a destination is a name, a move can be resumed, the badge names the driveI Mean I'm Just Saying16+1033-261
2026-09-19 19:49e2e: the box the "no" answer is written in, at 1366x768I Mean I'm Just Saying1+36-0
2026-09-19 19:45clip bench: the claim scrolls, the answer does notI Mean I'm Just Saying1+219-200
2026-09-19 19:41docs: the root `pnpm e2e` is the editor's, whatever spec you name itI Mean I'm Just Saying2+42-5
2026-09-19 19:39cut-to-quote: the cite comes with the cutI Mean I'm Just Saying2+158-4
2026-09-19 08:23clip bench: the pane's own controls live in the paneI Mean I'm Just Saying2+27-23
2026-09-19 07:28clip bench: read the peeked cues as a transcript, not as a railI Mean I'm Just Saying3+168-2
2026-09-19 07:23e2e: the cut is derived, refused when it does not fit, and what the build rendersI Mean I'm Just Saying4+162-3
2026-09-19 07:16extent vs cut: the window is what was reviewed, the cut is what playsI Mean I'm Just Saying11+453-7
2026-09-19 07:11resolve-windows: `--cut-to-quote` — where inside the extent the quote isI Mean I'm Just Saying2+274-0
2026-09-19 07:07e2e: siblings, the overlap hatch, and one-sided fetchingI Mean I'm Just Saying1+151-15
2026-09-19 07:04fetch one edge at a time, and make Shift actually nudgeI Mean I'm Just Saying5+160-49
2026-09-19 06:58clip bench: the other clips cut from this same recordingI Mean I'm Just Saying5+246-5
2026-09-19 06:45clip bench: the peek rail spans the cues that exist, not a flat ±60 sI Mean I'm Just Saying1+9-2
2026-09-19 06:43e2e: two verdicts, the note rule, the edge audition, and a fetch that is a no-opI Mean I'm Just Saying1+238-14
2026-09-19 06:41clip bench: a preference is written when you choose it, not when the page mountsI Mean I'm Just Saying1+47-13
2026-09-19 06:35clip bench: fetch what is not cached yet, and read ahead before paying for itI Mean I'm Just Saying6+336-60
2026-09-19 06:24docs: two verdicts, an optional note, and how you listenI Mean I'm Just Saying2+60-26
2026-09-19 06:24clip bench: play the edge that moved, and let the desk set the speedI Mean I'm Just Saying2+162-8
2026-09-19 06:22umtool: `incorrect` is a verdict, and a note is not always a complaintI Mean I'm Just Saying6+170-113
2026-09-19 05:49umtool: the walk button belongs in the title bar, and the CLI needs clipVerdictI Mean I'm Just Saying2+30-28
2026-09-19 05:47e2e: the window choice, the description, and the two answersI Mean I'm Just Saying2+169-0
2026-09-19 05:46docs: the verdict, the walk, and why the bench is one screenI Mean I'm Just Saying2+86-4
2026-09-19 05:40report project: "Walk the cut", above the rowsI Mean I'm Just Saying1+32-1
2026-09-19 05:40clip bench: one screen, and the description it is checkingI Mean I'm Just Saying2+506-326
2026-09-19 05:34umtool: `verdict` — whether the walk has looked at this clipI Mean I'm Just Saying4+92-5
2026-09-19 05:38clip bench: play the cached file that holds THIS clip's window, not the widest for the videoI Mean I'm Just Saying1+23-2
2026-09-18 23:09report-to-video: `panels` — two to four captures, side by sideI Mean I'm Just Saying4+277-36
2026-09-18 22:46report-to-video: `scroll` — a crawl for a capture that does not fitI Mean I'm Just Saying4+257-8
2026-09-18 22:24e2e: fill("") is two round trips, and the second one can missI Mean I'm Just Saying2+26-2
2026-09-18 22:12umtool: the bench reads the channel off the cue record, like the rendererI Mean I'm Just Saying1+5-0
2026-09-18 22:10report-to-video: `redact` — fill, because a blurred QR still scansI Mean I'm Just Saying4+257-22
2026-09-18 22:07report-to-video: the header says WHO, not just what and whenI Mean I'm Just Saying11+217-39
2026-09-18 22:02report-to-video: an `image` entry, for the receipts a clip cannot say out loudI Mean I'm Just Saying1+192-4
2026-09-18 21:59report-to-video: a still's header line, in the same module as a clip'sI Mean I'm Just Saying2+107-0
2026-09-18 21:52e2e: the gate hint is about a destination now, not a rootI Mean I'm Just Saying1+1-1
2026-09-18 21:44mcp: the sweep honours operator corrections from a sibling manifestI Mean I'm Just Saying2+27-0
2026-09-18 21:43clip bench: e2e for the attribution, the walk and the segment routeI Mean I'm Just Saying3+221-10
2026-09-18 21:38plans: storage locations — S5 written (per-unit re-check, no tmpfs mount, auto-pause + flag)I Mean I'm Just Saying1+126-0
2026-09-18 21:37umtool: a clip can record what the report got wrongI Mean I'm Just Saying11+240-7
2026-09-18 21:35clip bench: fix the attribution beside the edges, then look at itI Mean I'm Just Saying6+469-26
2026-09-18 21:30umtool: the attribution is writable, through the one writerI Mean I'm Just Saying3+113-9
2026-09-18 21:29report-video: one definition of the attribution lineI Mean I'm Just Saying3+84-32
2026-09-18 21:26report-video: a clip may override the burned-in title and dateI Mean I'm Just Saying2+10-3
2026-09-18 21:16storage: review fixes — honest copy after a resume, and a select that agrees with itselfI Mean I'm Just Saying7+74-37
2026-09-18 00:59docs: storage locations, and what a container can and cannot know about a diskI Mean I'm Just Saying3+38-1
2026-09-18 00:58e2e: a destination is picked by name, and an interrupted move is finishedI Mean I'm Just Saying1+218-28
2026-09-18 00:54channels: the bulk move picks a place by nameI Mean I'm Just Saying7+206-103
2026-09-18 00:51storage: a destination is a name, and an interrupted move can be finishedI Mean I'm Just Saying4+456-145
2026-09-18 00:45storage: the badge names the drive, not the pathI Mean I'm Just Saying4+108-14
2026-09-18 00:38plans: storage locations — S0 merged, S4 in flightI Mean I'm Just Saying1+1-0
2026-09-18 00:37Merge storage/locations-s0: the Advanced menu can leave a dimmed rowI Mean I'm Just Saying2+94-23
2026-09-18 00:36e2e: two adjacent paused rows, and the pixel has to belong to the menuI Mean I'm Just Saying1+41-14
2026-09-17 19:25plans: storage locations — S3 mergedI Mean I'm Just Saying1+1-0
2026-09-17 19:22storage: the refusals the operator should read before a job existsI Mean I'm Just Saying5+40-13
2026-09-17 19:22storage: a channel killed mid-re-point is half done, not brokenI Mean I'm Just Saying2+139-14
2026-09-17 19:08e2e: lstat the link, never stat it — a dangling link is the whole breakageI Mean I'm Just Saying1+5-2
2026-09-17 19:06storage: two accessible names where one contains the other is a trapI Mean I'm Just Saying2+30-18
2026-09-17 19:01e2e: a fake disk that moves, and the one click that follows itI Mean I'm Just Saying5+466-4
2026-09-17 18:57boot: learn where the disks are, even when booting idleI Mean I'm Just Saying1+24-0
2026-09-17 18:57nav: a place the machine keeps bytes is a noun, not a fold of CleanupI Mean I'm Just Saying3+25-4
2026-09-17 18:56/storage: the locations, what is on them, and the one click that follows a diskI Mean I'm Just Saying6+879-0
2026-09-17 18:51storage: a location knows its channels, and can be pointed at where the disk came upI Mean I'm Just Saying6+1886-0
2026-09-17 18:10plans: storage locations — S1 and S2 mergedI Mean I'm Just Saying1+1-0
2026-09-17 18:09Merge storage/locations-s2: a location is an entity, not a root stringI Mean I'm Just Saying13+1306-95
2026-09-17 18:07relocate: name the early stop in the summary, and the retry in the done lineI Mean I'm Just Saying6+47-19
2026-09-17 18:04storage: an unmeasurable root reports no free space, not InfinityI Mean I'm Just Saying2+22-8
2026-09-17 17:55channels: the bulk move points at /storage, not at a settings boxI Mean I'm Just Saying1+3-3
2026-09-17 17:53settings: the media-root box becomes a link, and three reads become one callI Mean I'm Just Saying6+43-26
2026-09-17 17:49relocate: tests for the two halves of the omnimirror refusalI Mean I'm Just Saying2+223-0
2026-09-17 17:47settings: the cold root becomes a list of locations, on readI Mean I'm Just Saying2+347-66
2026-09-17 17:46storage: a fake findmnt, and the five things a probe can sayI Mean I'm Just Saying2+303-13
2026-09-17 17:44storage: the probe answers with stat, and only ever adds identityI Mean I'm Just Saying2+443-0
2026-09-17 17:43storage: a location is an entity, not a root stringI Mean I'm Just Saying2+166-0
2026-09-17 17:42channels: "busy" means jobs AND in-flight lane units, in one placeI Mean I'm Just Saying4+74-50
2026-09-17 17:42relocate: a directory timestamp is not content driftI Mean I'm Just Saying1+69-18
2026-09-17 17:42relocate: an in-flight move stops the lanes instead of racing themI Mean I'm Just Saying2+57-1
2026-09-17 17:40e2e: the Advanced menu of a paused row has to take the clickI Mean I'm Just Saying1+36-0
2026-09-17 17:38channels: the row dim is per cell, so the Advanced menu can leave the rowI Mean I'm Just Saying1+31-23
2026-09-17 17:34plans: storage locations — named, refreshable, re-pointable media placesI Mean I'm Just Saying1+191-0
2026-09-15 19:50plans: one-core Phase 3 slice 1 shipped — views in the core, editor as shellI Mean I'm Just Saying3+91-6
2026-09-15 19:06changelog: the payload builders moved, and the poll stopped reading four timesI Mean I'm Just Saying1+1-0
2026-09-15 19:05views: a payload type is named where it is builtI Mean I'm Just Saying26+46-86
2026-09-15 19:00plans: Phase 3 slice 1 sub-slices B and C shipped — every builder is a pure viewI Mean I'm Just Saying1+57-0
2026-09-14 21:20views: the pulse's rule against constructing becomes its signatureI Mean I'm Just Saying4+276-118
2026-09-14 21:18views: a page no longer imports its data out of a route fileI Mean I'm Just Saying5+615-325
2026-09-14 21:15views: the auto-queue console reads its state once, at the edgeI Mean I'm Just Saying8+729-334
2026-09-14 21:08views: the sync schedule is a projection, not a readerI Mean I'm Just Saying3+149-36
2026-09-14 21:13views: the active-jobs payload, with its readers injectedI Mean I'm Just Saying3+832-395
2026-09-14 21:08views: the workers payload, out of the component that renders itI Mean I'm Just Saying4+330-92
2026-09-14 21:05plans: Phase 3 slice 1 sub-slice A shipped — the view layer exists and the guard sees itI Mean I'm Just Saying1+45-0
2026-09-14 21:01views: the assignability assertion is not distributiveI Mean I'm Just Saying1+9-1
2026-09-14 20:52views: laneState, jobRows, channelGroupSections, builtInPresetsI Mean I'm Just Saying36+1602-1602
2026-09-14 20:51views/pipeline: the five that already were view-modelsI Mean I'm Just Saying37+2370-2363
2026-09-14 20:49views: the layer exists, and the guard can see itI Mean I'm Just Saying9+378-34
2026-09-14 20:39plans: one-core Phase 3 slice 1 — common/views/, the port and the guardI Mean I'm Just Saying1+327-0
2026-09-14 20:37plans: the /channels rack lands on main; Phase 3 slice 1 is nextI Mean I'm Just Saying1+16-4
2026-09-13 22:09channels: the corpus-wide cluster sits beside the titleI Mean I'm Just Saying2+28-8
2026-09-13 16:11channels: record the rack redesignI Mean I'm Just Saying2+76-0
2026-09-13 15:33channels: close the sticky seam and fit the tier cell on one lineI Mean I'm Just Saying4+8-8
2026-09-13 15:20channels: the corpus-wide buttons become outlinesI Mean I'm Just Saying2+12-5
2026-09-13 15:20channels: one primary in the header, and the caveat beside the titleI Mean I'm Just Saying1+86-62
2026-09-13 15:18channels: the focus is a line, and it counts what it holdsI Mean I'm Just Saying2+29-5
2026-09-13 15:18channels: the tier cell is one line, and being held is a chipI Mean I'm Just Saying1+46-30
2026-09-13 15:16channels: the table becomes a rack with a pinned meter bridgeI Mean I'm Just Saying2+265-158
2026-09-13 15:13channels: one selection deck instead of two bulk barsI Mean I'm Just Saying6+357-337
2026-09-13 15:09plans: /channels rack redesign planI Mean I'm Just Saying1+301-0
2026-09-13 14:37plans: the rollout switches to main before it migrates, and the migration ranI Mean I'm Just Saying1+8-8
2026-09-13 13:01plans: gate A passed, main is fast-forwarded, and Next is the rolloutI Mean I'm Just Saying1+16-10
2026-09-13 12:56plans: gate A passed on the production editor, and phase 1 landsI Mean I'm Just Saying1+18-0
2026-09-12 17:41plans: build:hub overwrites the export e2e fixture, and FACTS says soI Mean I'm Just Saying1+7-0
2026-09-12 17:40plans: one-core Phase 2 shipped, and the release-candidate gates on the merged tipI Mean I'm Just Saying4+414-15
2026-09-12 16:23merge: one-core/phase-2-s2a — the viewer's archive walks become one reader per originI Mean I'm Just Saying23+1634-318
2026-09-12 16:23plans: S2a's review fixes — the two lists, the browser budget, one commentI Mean I'm Just Saying1+80-0
2026-09-12 16:11merge: one-core/phase-2-s3 — one search pipeline under common/lib/searchI Mean I'm Just Saying25+2950-1430
2026-09-12 16:10plans: the S3 gate numbers after the three review fixesI Mean I'm Just Saying1+13-4
2026-09-12 15:58plans: the S3 note says what the slice did, not what it meant to doI Mean I'm Just Saying1+44-5
2026-09-12 15:57common: a browser reader gets a browser's page-cache budget, and one commentI Mean I'm Just Saying2+32-5
2026-09-12 15:57export: an offline copy is two lists — per channel, and once per originI Mean I'm Just Saying5+373-52
2026-09-12 15:57common: the result list calls the comparator instead of re-typing itI Mean I'm Just Saying1+6-3
2026-09-12 15:56common: lib/search holds no caller's budget as a defaultI Mean I'm Just Saying4+52-27
2026-09-12 15:54merge: one-core/phase-2-s2c — one shipsPwa, one _headers generator, one hub member typeI Mean I'm Just Saying7+390-96
2026-09-12 15:50plans: S2c shipped — one shipsPwa, one _headers generator, one hub entry typeI Mean I'm Just Saying1+132-0
2026-09-12 15:44plans: the S3 record — one search pipeline, and the inversion it paid forI Mean I'm Just Saying1+218-0
2026-09-12 15:43plans: S2a's record — one reader per origin, and the offline gap closedI Mean I'm Just Saying1+155-0
2026-09-12 15:41common: a site's digests and duplicates report get CORS — a WIRE changeI Mean I'm Just Saying2+46-6
2026-09-12 07:00common: one generator for the Cloudflare `_headers` fileI Mean I'm Just Saying4+177-59
2026-09-12 06:58common, export: one shipsPwa(), and the comment about it is now trueI Mean I'm Just Saying3+33-22
2026-09-12 06:57common: the SearchMode comment travels with the typeI Mean I'm Just Saying2+10-9
2026-09-12 06:57common: the hub's member entry is one type, not two spellings of itI Mean I'm Just Saying1+9-15
2026-09-12 06:57mcp: drop the LeafMatcher import the orchestration no longer namesI Mean I'm Just Saying1+0-1
2026-09-12 06:53common: lib/ no longer imports components/, and the guard says soI Mean I'm Just Saying11+152-879
2026-09-12 06:52merge: one-core/phase-2-s2b — cues.mjs refuses an unreachable channel instead of cutting from HTTPI Mean I'm Just Saying4+447-3
2026-09-12 06:49mcp: search.ts is orchestration over lib/search/, and the caps are dataI Mean I'm Just Saying1+87-444
2026-09-12 06:49plans: the S2b note names its own shaI Mean I'm Just Saying1+2-2
2026-09-12 06:48plans: the S2b record — what the cue guard refuses, and the tsx list for Phase 5I Mean I'm Just Saying1+125-0
2026-09-12 06:48common: tests for the reader registry and for the caches as wrappersI Mean I'm Just Saying2+484-0
2026-09-12 06:46common: one search pipeline — the pure half of lib/search/I Mean I'm Just Saying12+2412-101
2026-09-12 06:45export: offline downloads every layer the contract has, and the SWs serve themI Mean I'm Just Saying4+249-33
2026-09-12 06:42common,export: the viewer's archive walks become one ArchiveReader per originI Mean I'm Just Saying14+322-284
2026-09-12 06:34umtool: an unreachable local channel stops the cue resolver instead of the archive answeringI Mean I'm Just Saying3+322-3
2026-09-12 06:27merge: one-core/phase-2-s1 — the contract and one ArchiveReader under common/lib/archiveI Mean I'm Just Saying43+2885-1455
2026-09-12 06:27plans: S1 note 3 says why the bare env read is fine, and it is not inliningI Mean I'm Just Saying1+10-8
2026-09-12 06:22plans: Phase 2's five wrong paths corrected in the prose, not just the noteI Mean I'm Just Saying1+8-7
2026-09-12 06:20plans: the record names its own shaI Mean I'm Just Saying1+2-1
2026-09-12 06:20plans: S1 recorded — sha range, the four divergences, and every gate numberI Mean I'm Just Saying1+140-0
2026-09-12 06:10plans: the composed fixture site, so the parallel slices diff instead of rebuildI Mean I'm Just Saying26+230-0
2026-09-12 06:07common: the five lib/search/ modules S3 fills, claimed as stubsI Mean I'm Just Saying5+124-0
2026-09-12 06:06mcp: source.ts is a re-export — 1,386 lines to 47, no importer changedI Mean I'm Just Saying1+45-1384
2026-09-12 06:06common: the archive reader moves into the core, with node isolated to one fileI Mean I'm Just Saying4+1884-0
2026-09-12 06:03common: the published contract is a module, and it owns the URL shapesI Mean I'm Just Saying6+451-64
2026-09-12 05:53plans: the merge review's three notes, and Next points at the Phase 2 slice planI Mean I'm Just Saying1+15-1
2026-09-12 05:45plans: one-core Phase 2 sliced, and the umbrella corrected to matchI Mean I'm Just Saying3+278-22
2026-09-12 05:44plans: the storage + priority integration, and the two slots the next branch lands inI Mean I'm Just Saying2+70-2
2026-09-12 05:15merge: channel-priority/s5 into integrate/2026-09-storage-priorityI Mean I'm Just Saying47+6750-333
2026-09-12 05:12merge: storage/relocate-media into integrate/2026-09-storage-priorityI Mean I'm Just Saying58+5769-78
2026-09-12 01:08plans: the merge review's two fixes, and the one conflict with channel-priority/s5I Mean I'm Just Saying3+75-11
2026-09-12 00:36e2e: a spec's settings are the fixture's plus what it namesI Mean I'm Just Saying4+92-37
2026-09-12 00:36relocate: ten ticked rows started ten rsyncs onto one driveI Mean I'm Just Saying7+237-19
2026-09-12 00:25plans: 528/528 at the follow-up tip, and the two flakes are namedI Mean I'm Just Saying2+19-7
2026-09-12 00:07plans: relocate-channel-media as shipped, and the rollout it is waiting onI Mean I'm Just Saying4+200-8
2026-09-11 22:36e2e: a tick that queued nothing could not say why, and the floor a spec inherits is not the fixture'sI Mean I'm Just Saying4+77-2
2026-09-11 22:24priority: a rename moves the document, and the migration guards its own rolloutI Mean I'm Just Saying10+351-29
2026-09-11 17:06plans: the suite is green at the channel-priority tipI Mean I'm Just Saying2+15-1
2026-09-11 16:42e2e: "Add to top of auto-queue" is asserted as a priority editI Mean I'm Just Saying1+19-5
2026-09-11 16:40plans: channel priority, as shippedI Mean I'm Just Saying4+220-3
2026-09-11 16:40priority: ending a focus recompiles, because the stored tree is what is leftI Mean I'm Just Saying1+21-6
2026-09-11 16:35channels: excludeFromSync is deletedI Mean I'm Just Saying11+110-126
2026-09-11 16:30bin: the one-shot channel-priority migrationI Mean I'm Just Saying1+280-0
2026-09-11 16:28e2e: the first tier click seeds from the legacy trees and keeps their orderI Mean I'm Just Saying1+99-1
2026-09-11 16:27priority: one writer of `root`, and a first click that cannot lose the orderI Mean I'm Just Saying3+221-64
2026-09-11 16:18e2e: two channels selected, one moves, and the other says why it did notI Mean I'm Just Saying1+113-1
2026-09-11 16:23priority: the migrated ranks are dense, and the migration is idempotentI Mean I'm Just Saying2+149-17
2026-09-11 16:20backfill: a channel paused for transcription keeps its audioI Mean I'm Just Saying6+172-17
2026-09-11 16:16priority: one definition of the dispatched tree, one of the site indexI Mean I'm Just Saying9+402-85
2026-09-11 16:16editor: moving a page of channels to the cold drive is one job eachI Mean I'm Just Saying6+313-49
2026-09-11 16:14editor: /channels rows can be tickedI Mean I'm Just Saying1+64-4
2026-09-11 16:12relocate: a rollback that undid a step it had not recorded, and four smaller edgesI Mean I'm Just Saying4+104-15
2026-09-11 16:08relocate: the two ways a move ended by deleting the only copyI Mean I'm Just Saying4+348-8
2026-09-11 16:06Merge channel-priority/s4 — the focus banner and the read-only treeI Mean I'm Just Saying9+748-33
2026-09-11 16:06Merge channel-priority/s3 — the /channels UI and the one writerI Mean I'm Just Saying10+1214-114
2026-09-11 16:06Merge channel-priority/s2 — the sync sliceI Mean I'm Just Saying5+356-11
2026-09-11 16:06Merge channel-priority/s1 — the dispatch sliceI Mean I'm Just Saying3+623-16
2026-09-11 16:04settings: the cold root is typed once, in the one place that writes itI Mean I'm Just Saying6+154-1
2026-09-11 16:03editor: the focus banner and the generated tree, asserted on a lane consoleI Mean I'm Just Saying1+326-0
2026-09-11 15:59editor: Sync all asks the priority document, and a failed priority write says soI Mean I'm Just Saying4+148-39
2026-09-11 15:55editor: a generated tree is shown, not offered for editingI Mean I'm Just Saying3+105-9
2026-09-11 15:55editor: the focus banner, on the lane console it is a statement aboutI Mean I'm Just Saying3+134-21
2026-09-11 15:52editor: the lane status payload ships the tree the lane dispatches fromI Mean I'm Just Saying2+183-3
2026-09-11 15:49e2e: a relocated channel is indistinguishable from one in placeI Mean I'm Just Saying5+221-11
2026-09-11 15:45common: the sync scheduler's two answers, pinned against each otherI Mean I'm Just Saying1+255-0
2026-09-11 15:45docs: data/ may be a symlink, and three ways that bitesI Mean I'm Just Saying4+59-1
2026-09-11 15:44editor: the one path to a channel's media that no job record coversI Mean I'm Just Saying1+22-0
2026-09-11 15:43editor: the /channels priority controls, asserted against what lands on diskI Mean I'm Just Saying4+262-62
2026-09-11 15:43common: the sync scheduler asks the priority model, and orders focus firstI Mean I'm Just Saying4+101-11
2026-09-11 15:43common+editor: two more readers of data/, and a rollback that undid what never ranI Mean I'm Just Saying9+186-16
2026-09-11 15:39common: a resumed relocation observes the disk instead of trusting the markerI Mean I'm Just Saying4+547-36
2026-09-11 15:37editor: /channels loses the sync toggle and gains the tier it was standing in forI Mean I'm Just Saying6+637-42
2026-09-11 15:37editor: one writer for the channel priority document, and it recompilesI Mean I'm Just Saying1+197-1
2026-09-11 15:36common: the focus/hold/release transition, through the engine that implements itI Mean I'm Just Saying2+374-0
2026-09-11 15:34common: a dir that does not exist yet is measured on its parent's volumeI Mean I'm Just Saying2+99-15
2026-09-11 15:34common: the four lanes dispatch from a compiled tree, and paused leaves the listI Mean I'm Just Saying1+249-16
2026-09-11 15:32editor: a channel says where its media is, on every page that counts itI Mean I'm Just Saying10+628-12
2026-09-11 15:27editor: a relocation is a job on the channel's own queueI Mean I'm Just Saying2+167-0
2026-09-11 15:24plans: channel-priority gains per-operation overrides, and question 3 is answeredI Mean I'm Just Saying1+122-41
2026-09-11 15:24editor: the two channel-priority components S3 and S4 will fill inI Mean I'm Just Saying2+84-0
2026-09-11 15:24common: the channel-priority contract under test, in both layersI Mean I'm Just Saying2+1093-0
2026-09-11 15:24common: the channel-priority model, with per-operation overridesI Mean I'm Just Saying3+735-0
2026-09-11 15:19common: the disk gate measures the volume the bytes are going toI Mean I'm Just Saying8+181-32
2026-09-11 15:16common: delete and rename reach the other driveI Mean I'm Just Saying4+359-6
2026-09-11 15:13common: the move itself, both directions, with the source held until verifiedI Mean I'm Just Saying2+976-0
2026-09-11 15:09common: four guards stand between an unmounted drive and a re-downloadI Mean I'm Just Saying6+180-0
2026-09-11 15:06plans: channel-priority design, sequenced as the second interlude item (Phase 1.5)I Mean I'm Just Saying3+447-2
2026-09-11 15:06common: one module knows where a channel's media actually isI Mean I'm Just Saying3+572-0
2026-09-11 15:00plans: relocate-channel-media refreshed at 7f7d140 and placed first, ahead of one-core phase 2I Mean I'm Just Saying3+376-151
2026-09-09 03:35plans: every known unmount-the-log instance on the video page is closedI Mean I'm Just Saying3+55-14
2026-09-09 02:21editor: a kept run panel is not a second Run button, and the alert goes with the warningI Mean I'm Just Saying5+96-9
2026-09-09 01:57editor: the three video-panel run logs outlive the state their own run landsI Mean I'm Just Saying1+209-134
2026-09-09 01:29editor: three e2e cases that read a run's log after the run's own result landsI Mean I'm Just Saying4+239-0
2026-09-08 21:18plans: the suite is clean end to end at the de-flake tipI Mean I'm Just Saying2+7-7
2026-09-08 20:53plans: a keyed move keeps its state, so name what actually unmounted the panelI Mean I'm Just Saying4+103-45
2026-09-08 20:43plans: the fourth flake was a remounted panel, and two earlier claims were artifactsI Mean I'm Just Saying3+105-17
2026-09-08 20:38editor: the run panel keeps its place when the record lands, so its log survivesI Mean I'm Just Saying2+60-18
2026-09-08 20:18plans: root-cause plan for the attribution batch hangI Mean I'm Just Saying1+168-0
2026-09-08 13:41plans: the reset route clears the armed regen timer, it does not await one in flightI Mean I'm Just Saying1+5-3
2026-09-08 13:11plans: what the four flakes really were, including the one that is still openI Mean I'm Just Saying2+60-4
2026-09-08 12:36export: the sweep-Stop test holds batch 2 open itself instead of racing a timerI Mean I'm Just Saying1+15-2
2026-09-08 12:36common: the pre-paint theme script marks itself done, and the FOUC tests wait for the markI Mean I'm Just Saying3+17-0
2026-09-08 12:20editor: the e2e fixture's video id matches its directory, and a reset quiesces before it mutatesI Mean I'm Just Saying3+27-14
2026-09-08 12:17plans: the e2e de-flake planI Mean I'm Just Saying1+117-0
2026-09-08 06:08plans: the Phase 1 record counts to the tip, and STATE.md names the two trapsI Mean I'm Just Saying5+64-24
2026-09-08 05:37plans: slice 1.5 is shipped, and Phase 1 is closed outI Mean I'm Just Saying4+530-56
2026-09-08 05:14editor: a band is folded once, and the new snapshot entries stop doubling two of themI Mean I'm Just Saying2+67-1
2026-09-08 05:12common: the bucket projection hands out the stored array, as it always didI Mean I'm Just Saying2+8-6
2026-09-08 05:05editor: the bucket lanes' entries are pinned, and the bands are pinned against themI Mean I'm Just Saying1+109-0
2026-09-08 05:02plans: the bucket lanes' new work lists are checked against the live corpusI Mean I'm Just Saying1+186-0
2026-09-08 05:01common+editor: the runner draws a lane, not a list of bucketsI Mean I'm Just Saying2+65-14
2026-09-08 04:58common: every lane gets a work list in the snapshot, and the two bucket lanes get theirsI Mean I'm Just Saying8+597-62
2026-09-08 04:35plans: slice 1.4 is shipped, and the record says where a lane's gate lives nowI Mean I'm Just Saying4+257-3
2026-09-08 04:32editor: the one spec that asserted the backfill checkbox by its retired fieldI Mean I'm Just Saying2+13-8
2026-09-08 04:03editor: the suite reads a lane's gate where the lane keeps it, and asks three surfaces to agreeI Mean I'm Just Saying6+275-43
2026-09-08 03:59common+editor: reach dies with the sweeps that were its only axisI Mean I'm Just Saying5+89-172
2026-09-08 03:57editor: every control over a lane's gate writes the lane's key, and the policy save carries itI Mean I'm Just Saying6+72-32
2026-09-08 03:55common: a lane's pause becomes a key on the lane, and the four old fields become its fallbackI Mean I'm Just Saying8+427-76
2026-09-08 03:40editor+plans: the arbiter's buttons are asserted gone, and the migration collapses a full kinds list the way arm doesI Mean I'm Just Saying7+209-50
2026-09-08 03:25plans: slice 1.3 is shipped, and the record says what it costI Mean I'm Just Saying2+343-2
2026-09-08 02:50editor: the dashboard arms a lane without discarding its rulesI Mean I'm Just Saying1+14-8
2026-09-08 02:48editor: the lane-context block belongs to an operation lane, not to every laneI Mean I'm Just Saying1+16-6
2026-09-08 02:40plans+docs: the numbers script measures four lanes, and the prose stops naming the sweepsI Mean I'm Just Saying5+119-67
2026-09-08 02:35editor: the e2e suite asks the runner what it used to ask the sweepI Mean I'm Just Saying8+198-330
2026-09-08 02:30editor: one console per lane, and the sweep panel goesI Mean I'm Just Saying27+511-1923
2026-09-08 02:21common: the sweeps and the arbiter retire, and ten settings fields go with themI Mean I'm Just Saying28+208-2619
2026-09-08 02:14common: the sweeps' scope becomes a lane's tree, before anything is deletedI Mean I'm Just Saying2+411-0
2026-09-08 02:00common: a refreshed run keeps the lane's whole ledger, and two lanes never share a tmp fileI Mean I'm Just Saying5+135-12
2026-09-08 01:45plans: slice 1.2 is shipped, and the record says what it costI Mean I'm Just Saying1+323-0
2026-09-08 01:21common: two runners, one state file — so one state objectI Mean I'm Just Saying2+94-20
2026-09-08 00:43common: a runner's run is its whole lifetime, and the spend cap has to know thatI Mean I'm Just Saying2+49-21
2026-09-08 00:38common: the projection's old half-rules go with the rule they servedI Mean I'm Just Saying2+13-21
2026-09-08 00:30editor: the lane runner, end to end, on both operation lanesI Mean I'm Just Saying3+451-0
2026-09-08 00:24editor: every lane's operation page gets its runner consoleI Mean I'm Just Saying8+127-34
2026-09-08 00:20common: the runner runs operations, and the digest lane's order is one comparatorI Mean I'm Just Saying10+673-93
2026-09-08 00:07common: one executor for the operation lanes, and the yield stops keying on a field existingI Mean I'm Just Saying24+2534-1927
2026-09-07 23:44common: cheapest is not a recency order, and an empty projection reads no snapshotI Mean I'm Just Saying5+109-1
2026-09-07 23:03common: four lanes in the model, and one of them stops being a filterI Mean I'm Just Saying22+742-211
2026-09-07 22:50plans/tools: the phase-1 numbers scriptI Mean I'm Just Saying1+205-0
2026-09-07 22:48plans: one-core Phase 1 — four lanes, one runnerI Mean I'm Just Saying1+254-0
2026-09-07 21:11plans: one-core Phase 0 is shipped, and the record says what it costI Mean I'm Just Saying3+219-1
2026-09-07 20:03common: one pageFileName and one CONTRACTI Mean I'm Just Saying12+64-46
2026-09-07 19:58repo: the dead weight goes, and the bake-off harnesses move beside their resultsI Mean I'm Just Saying23+3865-3920
2026-09-07 19:53common: the surface is declared, and mcp admits it depends on itI Mean I'm Just Saying3+43-2
2026-09-07 19:49common: the layering is a test, and the auto-queue types move down to itI Mean I'm Just Saying9+373-129
2026-09-07 19:44umtool: report-to-video moves under the umtool umbrellaI Mean I'm Just Saying43+5024-5048
2026-09-07 19:42plans: the one-core umbrella planI Mean I'm Just Saying1+384-0
2026-08-31 16:55plans: the transcode operation is removed, and the docs say soI Mean I'm Just Saying4+99-8
2026-08-31 16:52snapshot: the untranscoded bucket is wrong-format audioI Mean I'm Just Saying4+19-11
2026-08-31 16:51transcode: the operation is deleted — it never fired in productionI Mean I'm Just Saying17+42-508
2026-08-31 16:47channels: the transcode stage is goneI Mean I'm Just Saying26+61-707
2026-08-31 16:41editor: the slice-5 leftovers — the nav timer names live routes, the pool lists its eight kinds, the aliases tab always has a siteI Mean I'm Just Saying3+42-28
2026-08-31 16:38plans: the transcode removal plannedI Mean I'm Just Saying1+541-0
2026-08-30 17:11plans: slice 5 shipped, and the docs say soI Mean I'm Just Saying4+251-11
2026-08-30 17:07sites: the hub is the family's, and the Sites group is one entryI Mean I'm Just Saying10+212-177
2026-08-30 17:04sites: the pool runs from the family pageI Mean I'm Just Saying21+458-435
2026-08-30 17:00sites: Publish is the site's tab; the family page cuts the release and batches the buildsI Mean I'm Just Saying37+1450-1460
2026-08-30 16:56sites: a site has tabs, and Charts and Search aliases are two of themI Mean I'm Just Saying24+839-643
2026-08-30 16:49plans: slice 5 plannedI Mean I'm Just Saying1+1106-0
2026-08-30 15:28plans: slice 8c shipped, and the docs say soI Mean I'm Just Saying4+207-14
2026-08-30 15:26jobs: the scheduler's view rides the live payload, and heals its driftI Mean I'm Just Saying14+544-595
2026-08-30 15:20jobs: one list — the live head is polled, the history tail is pagedI Mean I'm Just Saying25+744-686
2026-08-30 15:13jobs: one row type, and one builder for every job listI Mean I'm Just Saying14+735-319
2026-08-30 15:05plans: slice 8c plannedI Mean I'm Just Saying1+850-0
2026-08-30 02:24results: the selection toolbar rides the bottom of the screenI Mean I'm Just Saying2+81-4
2026-08-30 02:07search: the compact bar pins under the header, for real this timeI Mean I'm Just Saying4+128-116
2026-08-30 01:53search: only the compact bar sticks, and the phone menu offers OfflineI Mean I'm Just Saying2+107-85
2026-08-30 01:19export: the Filters chip is always offered below xlI Mean I'm Just Saying1+5-2
2026-08-30 01:08e2e: one spec that looks at the site on a phoneI Mean I'm Just Saying1+153-0
2026-08-30 01:05pages: duplicates windows its list, and touch targets growI Mean I'm Just Saying7+121-36
2026-08-30 00:55search: the bar is a query box and one row of chipsI Mean I'm Just Saying12+1384-999
2026-08-30 00:29ask: the question box is always on screenI Mean I'm Just Saying6+231-113
2026-08-30 00:18results: a card shows eight hits and offers the restI Mean I'm Just Saying3+133-24
2026-08-30 00:07header: one row on a phone, with everything behind one menuI Mean I'm Just Saying3+242-47
2026-08-30 00:00player: the modal is a column with a labelled strip at the bottomI Mean I'm Just Saying3+338-183
2026-08-29 23:43export: one media-query hook, one player geometry, one viewportI Mean I'm Just Saying6+410-13
2026-08-29 22:31operations: the sync page reads the scheduler payload onceI Mean I'm Just Saying3+40-13
2026-08-29 22:17plans: slice 8a+8b shipped, and the docs say soI Mean I'm Just Saying5+215-8
2026-08-29 22:14lanes: one note for why a lane is not workingI Mean I'm Just Saying5+119-35
2026-08-29 22:11workers: the worker list is configured where the workers areI Mean I'm Just Saying12+809-723
2026-08-29 22:07sync: its settings live on its page, and one action writes themI Mean I'm Just Saying11+242-245
2026-08-29 22:02operations: sync has a rail row and a page, and /scheduler redirectsI Mean I'm Just Saying25+958-832
2026-08-29 21:56common: sync is a catalogued operation, with a scope and a triggerI Mean I'm Just Saying8+137-36
2026-08-29 21:48plans: slice 8a+8b plannedI Mean I'm Just Saying1+655-0
2026-08-28 19:52plans: slice 6 shipped, and the docs say soI Mean I'm Just Saying4+161-8
2026-08-28 19:50video page: a speaker operation runs for one videoI Mean I'm Just Saying5+248-10
2026-08-28 19:47video page: one panel per operationI Mean I'm Just Saying8+1189-560
2026-08-28 19:42backfill: a channel job can be scoped to video idsI Mean I'm Just Saying5+59-9
2026-08-28 19:39common: a video's operations are read once, from the registryI Mean I'm Just Saying8+440-25
2026-08-28 19:32plans: slice 6 plannedI Mean I'm Just Saying1+575-0
2026-08-28 16:59plans: slice 7 shipped, and the docs say soI Mean I'm Just Saying5+190-14
2026-08-28 16:55operations: a runner page has its pause beside Start, Drain and StopI Mean I'm Just Saying8+81-2
2026-08-28 16:52lanes: one pause control, drawn wherever a lane isI Mean I'm Just Saying10+239-177
2026-08-28 16:47editor: one action pair holds every lane, and the wire says heldI Mean I'm Just Saying18+147-283
2026-08-28 16:42common: a pause gate has one definitionI Mean I'm Just Saying5+246-4
2026-08-28 16:36plans: slice 7 plannedI Mean I'm Just Saying1+377-0
2026-08-28 07:31plans: slice 4 review touch-up — the e2e follow-up is on the recordI Mean I'm Just Saying2+6-3
2026-08-28 07:26editor: slice 4 e2e fix — channels-sort's header list names columns that existI Mean I'm Just Saying1+9-2
2026-08-28 07:14plans: slice 4 shipped, and the docs say where everything wentI Mean I'm Just Saying4+135-11
2026-08-28 07:11editor: /actionable retires and redirects to /operationsI Mean I'm Just Saying28+66-228
2026-08-28 07:06review: the judgements a person makes about the archive get a page under CorpusI Mean I'm Just Saying19+960-885
2026-08-28 07:02channels: the report column and its refresh live with the channels; cleanup: the two cleanup tables live with the bytesI Mean I'm Just Saying14+290-200
2026-08-28 06:58operations: each operation page lists the channels with its work, and the dashboard says "digest to do"I Mean I'm Just Saying17+394-322
2026-08-28 06:53editor: the channel-work table and its census leave the /actionable routeI Mean I'm Just Saying26+1330-1149
2026-08-28 06:45plans: slice 4 plannedI Mean I'm Just Saying1+470-0
2026-08-28 04:27backfill: review touch-ups after the hand-offI Mean I'm Just Saying3+12-12
2026-08-28 04:21backfill: the hand-off is pinned end to end, and the docs say soI Mean I'm Just Saying7+279-27
2026-08-28 04:17attribution: freshness knows which transcript the names were made fromI Mean I'm Just Saying4+141-1
2026-08-28 04:14backfill: re-acquired audio is handed to auto-transcribe, never deleted under itI Mean I'm Just Saying10+912-54
2026-08-28 04:06plans: the re-acquire hand-off plannedI Mean I'm Just Saying1+395-0
2026-08-27 14:33plans: the deferred cause is fixed and recordedI Mean I'm Just Saying3+136-17
2026-08-27 14:31backfill: the subtitle-channel re-acquire is pinned end to endI Mean I'm Just Saying4+143-3
2026-08-27 14:28backfill: re-acquire fetches audio on a subtitle channel and keeps the cues freshI Mean I'm Just Saying4+295-10
2026-08-27 14:23plans: backfill re-acquire on subtitle channels plannedI Mean I'm Just Saying1+306-0
2026-08-26 22:57plans: unified-ops step 1 shippedI Mean I'm Just Saying5+184-22
2026-08-26 22:50operations: digest is a registry entry to every readerI Mean I'm Just Saying5+20-49
2026-08-26 22:46snapshot: the digest work list has one definitionI Mean I'm Just Saying20+137-196
2026-08-26 22:39plans: unified-ops step 1 plannedI Mean I'm Just Saying1+277-0
2026-08-26 21:36plans: record the collision the move createdI Mean I'm Just Saying2+28-5
2026-08-26 21:35editor: the lane form must not say "the plan" — the console beside it doesI Mean I'm Just Saying2+30-6
2026-08-26 21:05editor: the copy points at the operation page, and /settings says soI Mean I'm Just Saying14+204-32
2026-08-26 20:56editor: an operation's settings live on its operation pageI Mean I'm Just Saying13+1098-901
2026-08-26 20:44operations: the seams for per-operation settingsI Mean I'm Just Saying5+363-37
2026-08-26 20:40plans: slice 3 chosen and plannedI Mean I'm Just Saying3+366-4
2026-08-26 14:45operations: transcode is a registry entry, with the first `appliesTo`I Mean I'm Just Saying7+73-7
2026-08-26 14:43editor: the surfaces that still said "backfill" for an operation say "speakers"I Mean I'm Just Saying30+548-451
2026-08-26 14:36operations: the registry says "operation", not "backfill kind"I Mean I'm Just Saying66+3749-3725
2026-08-26 04:58digestActions: DigestLaneChoice is an alias, not a re-exportI Mean I'm Just Saying5+238-22
2026-08-26 04:49stages: extract the shell the speakers and digest cards shareI Mean I'm Just Saying4+298-170
2026-08-26 04:46channels: the speakers stage stops being called "backfill"I Mean I'm Just Saying12+245-70
2026-08-26 04:40operationJobs: one way to run one operation over one channelI Mean I'm Just Saying9+493-333
2026-08-26 04:01arbiter: resolve every operation's lane through its own laneForI Mean I'm Just Saying4+180-26
2026-08-26 03:52operations/<id>: resolve the runner and the sweep lane from the registryI Mean I'm Just Saying6+192-26
2026-08-26 03:46editor: /auto-queue becomes /operations, and the nav gets four groupsI Mean I'm Just Saying53+1801-1070
2026-08-25 13:11umtool: a dashboard at /, a project from a video, and a long-form pass over sources, revisions and exportsI Mean I'm Just Saying68+3935-581
2026-08-25 02:59channels: section the table by site group, and give each group the pipelineI Mean I'm Just Saying8+707-93
2026-08-12 00:44Group a site's channels, and give each group the pipelineI Mean I'm Just Saying6+937-32
2026-08-25 03:07plans: STATE/FACTS catch up to the arbiter, workers and executors; track the relocate designI Mean I'm Just Saying3+384-4
2026-08-25 02:59sweepPreview.test: fixtures carry the full SweepKindCounts shapeI Mean I'm Just Saying1+12-0
2026-08-24 14:22sweep console: each operation says where it can runI Mean I'm Just Saying4+108-1
2026-08-24 14:16backfill units: the lane ships work to tagged executors and applies it guardedI Mean I'm Just Saying8+863-49
2026-08-24 14:07unit executor: any backfill kind can run on a corpus-less boxI Mean I'm Just Saying10+822-7
2026-08-24 13:59llm fan-out: a WorkerKind for bare ollama endpoints, leased per callI Mean I'm Just Saying17+711-31
2026-08-24 13:48workers: a remote is N slots — expanded at reconfigure, probed from its healthI Mean I'm Just Saying7+417-27
2026-08-24 13:44workers: tags route work — matched grants, a requirement on acquire, tryAcquireI Mean I'm Just Saying10+505-29
2026-08-24 04:46sweeps: a scope console — pick the operations and channels before armingI Mean I'm Just Saying17+1577-43
2026-08-22 23:56channel-line: the em-dash fixture runs with no speaker operation onI Mean I'm Just Saying1+5-3
2026-08-22 23:39pipelines: keep the pure band readings off the client sideI Mean I'm Just Saying6+197-119
2026-08-22 23:24changelog: restore the armed-cost entryI Mean I'm Just Saying1+1-1
2026-08-22 23:24naming: one word was three things, and hiding a fourthI Mean I'm Just Saying26+669-131
2026-08-22 22:56channels: six pipelines, one strip, sortable by what can run nowI Mean I'm Just Saying7+426-47
2026-08-22 22:45registry: declare an operation's group and what one unit costsI Mean I'm Just Saying2+153-0
2026-08-22 22:43pipelines: one band instrument, three scalesI Mean I'm Just Saying10+687-591
2026-08-22 05:10arbiter: one dispatcher for every operation a rule namesI Mean I'm Just Saying13+1043-14
2026-08-22 04:44digest: rehome the lane's guards onto declared rulesI Mean I'm Just Saying5+425-76
2026-08-22 04:37auto-queue: one console for four pipelines; a runner is a laneI Mean I'm Just Saying19+2075-172
2026-08-22 03:33auto-queue: a policy leaf can name an operationI Mean I'm Just Saying3+220-9
2026-08-22 03:29sweeps: order the CHANNEL plan by recency, behind a reach settingI Mean I'm Just Saying8+347-5
2026-08-22 03:22digest/backfill: order a channel's candidates by upload dateI Mean I'm Just Saying7+266-3
2026-08-22 03:16recency: scope the index lookup to the owning channelI Mean I'm Just Saying3+123-2
2026-08-21 12:53Merge branch 'docs/windows-container-path'I Mean I'm Just Saying3+67-8
2026-08-21 12:53docs: Windows installs Docker Desktop now, not a Linux userlandI Mean I'm Just Saying3+67-8
2026-08-21 12:47Merge branch 'feat/runtime-container'I Mean I'm Just Saying24+2262-14
2026-08-21 12:47docker: `docker compose up` stands up an archive, guarded by defaultI Mean I'm Just Saying24+2262-14
2026-08-20 05:20docs: the video path no longer needs a corpus, so stop saying it doesI Mean I'm Just Saying2+51-34
2026-08-20 05:19Merge branch 'feat/umtool-projects'I Mean I'm Just Saying101+18230-619
2026-08-20 05:18report-to-video: read cue windows from a published archive, not just local diskI Mean I'm Just Saying6+638-24
2026-08-20 05:06docs: make the README an entrypoint, and say what you can do with no corpusI Mean I'm Just Saying4+699-108
2026-08-20 03:41auto-queue: the newest upload first, and a page that says what it's doingI Mean I'm Just Saying22+3224-571
2026-08-20 00:39umtool: two cuts from one manifest, and a rail that rolls one number at a timeI Mean I'm Just Saying26+6079-109
2026-08-19 04:04umtool: the manifest writer refuses any non-clip, not just a cardI Mean I'm Just Saying1+4-1
2026-08-19 04:01umtool: a timeline entry is not card-or-clip — the vocabulary is openI Mean I'm Just Saying7+116-27
2026-08-19 03:29umtool: the docs, `umtool new`, and a Tailwind own-goalI Mean I'm Just Saying15+1231-6
2026-08-19 02:50umtool: a clip reaches /mix, and a bad link is refused rather than redirectedI Mean I'm Just Saying8+389-18
2026-08-19 02:41umtool: an index that changes nothing but latency, and a CLI that can writeI Mean I'm Just Saying9+548-4
2026-08-19 02:31umtool: the build driver — four steps, per-clip progress, and no orphansI Mean I'm Just Saying10+941-13
2026-08-19 02:13umtool: the clip bench — edit a window against the audio and the wordsI Mean I'm Just Saying18+1683-26
2026-08-19 01:55umtool: a CLI, and `check` finds the two defects that already shippedI Mean I'm Just Saying6+541-6
2026-08-19 01:50umtool: /browse is the project index, and reports become reachableI Mean I'm Just Saying36+2395-521
2026-08-19 01:13umtool: a project is a project, and ~/reports is the treeI Mean I'm Just Saying14+1603-110
2026-08-19 00:59report-to-video: adopt the pipeline, and stop it re-downloading its own cacheI Mean I'm Just Saying10+2308-0
2026-08-18 23:59digest-bakeoff: measure whether a chapter boundary is in the RIGHT PLACEI Mean I'm Just Saying18+3742-27
2026-08-18 23:51umtool: register it as a workspace package and give it a port blockI Mean I'm Just Saying6+85-5
2026-08-18 23:02umtool: come back to the page you were last onI Mean I'm Just Saying5+341-3
2026-08-18 17:16debox-bg.mjs: cut a game's own text-box freezes out of a background bedI Mean I'm Just Saying2+163-1
2026-08-18 17:16the 22 judged face crops, applied to all nine coversI Mean I'm Just Saying3+792-66
2026-08-18 17:15make-thumb.mjs: record the background, and fix the scorer ffmpeg 9 brokeI Mean I'm Just Saying1+13-2
2026-08-18 15:29faces.spec: detect each corner once for the whole fileI Mean I'm Just Saying1+15-1
2026-08-18 15:17The first face judgement: the Super Mario RPG bottom-leftI Mean I'm Just Saying1+20-0
2026-08-18 15:17deck.spec: read the clashing corner out of the fixtureI Mean I'm Just Saying1+16-1
2026-08-18 15:10Fixture seeds and e2e/faces.spec.tsI Mean I'm Just Saying4+581-31
2026-08-18 15:02/browse/faces: judge the crop, not just the faceI Mean I'm Just Saying6+1113-1
2026-08-18 14:57facecrop.py --detect/--crop, and make-thumb honours the judgementsI Mean I'm Just Saying2+223-33
2026-08-18 14:54The face judger: the queue, the store, and the crop mathsI Mean I'm Just Saying3+502-1
2026-08-18 14:18Test the console against the real corpusI Mean I'm Just Saying4+437-3
2026-08-18 14:12Let a search become an editI Mean I'm Just Saying6+928-3
2026-08-18 14:06Give the phrase index a consoleI Mean I'm Just Saying4+592-0
2026-08-18 14:02Index the ASR corpus by phraseI Mean I'm Just Saying5+764-13
2026-08-18 13:55Bring umtool into the repoI Mean I'm Just Saying212+204111-0
2026-08-13 05:27Turn the volume downI Mean I'm Just Saying11+66-73
2026-08-13 04:51Give Archilyzer a site, and stop shipping the source inside every archiveI Mean I'm Just Saying82+3508-395
2026-08-11 23:32Break the backfill figure down by kind, and give every lane a second lineI Mean I'm Just Saying11+453-98
2026-08-11 23:31Carry in the uncommitted lane-card work from mainI Mean I'm Just Saying15+858-491
2026-08-11 22:36Say what is holding the audio, and what to run to get it backI Mean I'm Just Saying9+1408-3
2026-08-11 20:48Serialize e2e runs into one machine-wide queueI Mean I'm Just Saying10+940-19
2026-08-11 12:47Merge feat/mcp-fast-reachable-honest: filters are reachable, scans are planned, counts are of recordingsI Mean I'm Just Saying11+3501-270
2026-08-11 06:40Record the measured baseline table and the prebuilt-index decisionI Mean I'm Just Saying1+34-0
2026-08-11 06:38Make the MCP fast, reachable, and honest about what it countedI Mean I'm Just Saying11+3467-270
2026-08-11 06:23Merge feat/channel-cockpit: the channel page is a transit line, and the video browser has its own pageI Mean I'm Just Saying90+3871-1429
2026-08-11 06:10Point main's new archived-bucket retry test at the Download stageI Mean I'm Just Saying1+10-2
2026-08-11 05:34Merge main: drop the bookmark spec the channel-cockpit migration had rewrittenI Mean I'm Just Saying97+8495-3648
2026-08-11 05:19Make the channel page about the channel's lifecycle, not its video listI Mean I'm Just Saying90+3873-1433
2026-08-11 04:51Make the sweep prompt refuse a word-split request instead of running itI Mean I'm Just Saying5+192-9
2026-08-11 04:36Merge feat/mcp-stateless: the MCP is stateless by construction, and coverage is mechanicalI Mean I'm Just Saying21+3673-1597
2026-08-11 04:35Merge branch 'main' into feat/mcp-statelessI Mean I'm Just Saying37+166-1290
2026-08-11 04:34Rebuild the MCP stateless: per-call corpus handles, mechanical coverageI Mean I'm Just Saying19+3395-1120
2026-08-11 04:27Merge remove-command-bookmarks: drop the bookmark layer, keep the replay seam Retry stands onI Mean I'm Just Saying37+166-1290
2026-08-11 03:13Move the MCP onto the v2 SDK and the 2026-07-28 protocolI Mean I'm Just Saying7+285-484
2026-08-11 03:00Merge feat/sortformer-gpu-diarization: diarization can run on the GPU, and the default does not changeI Mean I'm Just Saying17+1329-54
2026-08-11 02:54Remove command bookmarks, and keep the replay seam Retry stands onI Mean I'm Just Saying35+162-1285
2026-08-11 02:51Merge feat/widget-grid-layout: the widget lays out on a real grid, and layouts have namesI Mean I'm Just Saying26+3145-702
2026-08-11 02:51Give the monitor widget rows, dense rails, and presets worth namingI Mean I'm Just Saying26+3145-702
2026-08-11 00:52Merge feat/widget-expandable-more: the widget's +N more channels expands nowI Mean I'm Just Saying3+124-24
2026-08-11 00:52Let the widget's "+N more channels" actually show themI Mean I'm Just Saying3+124-24
2026-08-10 22:31Do not leave ffmpeg running when the sortformer engine diesI Mean I'm Just Saying1+19-6
2026-08-10 19:26Put the sortformer engine settings on the settings pageI Mean I'm Just Saying4+132-1
2026-08-10 18:08Give diarization a GPU engine, and a reason to prefer itI Mean I'm Just Saying14+1185-54
2026-08-10 16:33Merge feat/digest-in-registry: carry the digest work list in the registry, and fix the transcripts it could not seeI Mean I'm Just Saying30+2000-178
2026-08-10 13:50Record what the deferred bucket actually was, and that it is clearedI Mean I'm Just Saying2+55-3
2026-08-10 13:43Give the undigestable transcripts a name, a reason and a buttonI Mean I'm Just Saying13+675-34
2026-08-09 23:33Give the digest work list one definition, and let the registry carry itI Mean I'm Just Saying22+1282-153
2026-08-09 21:13Write down the model A-C were aiming atI Mean I'm Just Saying2+194-1
2026-08-09 21:11Put digest in the catalog, on its own declared laneI Mean I'm Just Saying7+688-16
2026-08-09 20:48Tell "waiting on a prerequisite" apart from "the media is gone"I Mean I'm Just Saying9+346-31
2026-08-09 20:34Give the unattended runner the disk rule it never hadI Mean I'm Just Saying20+742-33
2026-08-09 04:45Record that the one red e2e spec predates this branchI Mean I'm Just Saying1+9-0
2026-08-09 03:59Window the long files, and scan what is already on diskI Mean I'm Just Saying21+1870-364
2026-08-09 02:52Cap what the OOM kills, and give the refusal its own numberI Mean I'm Just Saying14+394-11
2026-08-09 02:42Ask the shape of a filename, not a list of exceptionsI Mean I'm Just Saying13+518-181
2026-08-09 01:45Surface the backfill pause where the work is watchedI Mean I'm Just Saying4+144-11
2026-08-08 10:52Retract the peak-RSS number, and ship a duration capI Mean I'm Just Saying2+90-1
2026-08-08 09:41Confirm what the isRealAudioFile bug costs, from the running backfillI Mean I'm Just Saying1+36-0
2026-08-08 08:22Record what running the backfill measuredI Mean I'm Just Saying1+65-0
2026-08-08 07:33Gitignore the diarization backfill logsI Mean I'm Just Saying1+1-0
2026-08-08 07:30Merge feat/attribution-closed-cast-probe: close the label space, and reject the per-turn lane on measurementI Mean I'm Just Saying24+28923-71
2026-08-08 07:30Close the label space, measure it properly, and reject the per-turn laneI Mean I'm Just Saying24+28923-71
2026-08-08 04:16Merge fix/census-as-report: make the corpus census a report, not a permanently-red testI Mean I'm Just Saying3+368-50
2026-08-08 04:16Make the corpus census a report, not a permanently-red testI Mean I'm Just Saying3+368-50
2026-08-08 03:27Merge feat/attribution-backfill: put names to the speakers, and make the backfill registry earn its nameI Mean I'm Just Saying19+3140-38
2026-08-08 02:56Put names to the speakers, and make the backfill registry earn its nameI Mean I'm Just Saying19+3140-38
2026-08-08 01:47Merge feat/backfill-lane: make backfill a first-class thing the system knows aboutI Mean I'm Just Saying38+3064-11
2026-08-08 01:46Make backfill a first-class thing the system knows aboutI Mean I'm Just Saying38+3064-11
2026-08-07 20:32Merge feat/diarization-capture: capture speaker diarization, and stop e2e fixtures orphaningI Mean I'm Just Saying44+2486-7
2026-08-07 20:27Stop e2e fixture binaries from outliving the run that spawned themI Mean I'm Just Saying18+468-0
2026-08-07 09:35Capture speaker diarization while the audio still existsI Mean I'm Just Saying27+2018-7
2026-08-06 23:15Track deleted posts, the way videos track availabilityI Mean I'm Just Saying19+804-9
2026-08-06 22:52Add an account-free X fetcher via Nitter, and a scraping-method pickerI Mean I'm Just Saying11+810-63
2026-08-06 21:55X ingest: target the timeline sub-extractor, and treat cookies as optionalI Mean I'm Just Saying2+78-3
2026-08-06 21:23Fix 64-bit tweet id corruption in gallery-dl output parsingI Mean I'm Just Saying2+64-3
2026-08-06 18:30Merge branch 'worktree-part-c-roster'I Mean I'm Just Saying20+1868-108
2026-08-06 18:24Merge feat/widget-floorplan: widget builder floorplan boardI Mean I'm Just Saying15+1784-266
2026-08-06 18:23Make the widget builder a floorplan you can rearrangeI Mean I'm Just Saying15+1784-266
2026-08-06 18:17Keep a roster, so no listed video is ever lostI Mean I'm Just Saying20+1868-108
2026-08-05 04:51Set every cadence in hours and days, not raw minutesI Mean I'm Just Saying22+1514-266
2026-08-05 04:11Cover the full sweep, and don't trust an empty listingI Mean I'm Just Saying5+291-1
2026-08-05 04:02Let one playlist fetch drive sync, missing, and deletion detectionI Mean I'm Just Saying10+602-84
2026-08-05 03:59Wrap AutoRefresh in Suspense — it broke the production buildI Mean I'm Just Saying1+12-3
2026-08-05 03:14Remove the loading.tsx skeletons — they broke 404s and never showedI Mean I'm Just Saying9+51-148
2026-08-05 02:55Don't generate a report in the rename spec — it blocks the renameI Mean I'm Just Saying1+5-2
2026-08-05 02:48Retry the refresh-report click in the actionable specI Mean I'm Just Saying1+15-7
2026-08-05 02:38Record the cacheComponents spike: measured, and the answer is noI Mean I'm Just Saying1+55-0
2026-08-05 02:34Let the pulse notice a regenerated reportI Mean I'm Just Saying3+45-8
2026-08-05 02:18Stop the pulse endpoint from constructing the singletons it reports onI Mean I'm Just Saying55+299-90
2026-08-05 01:49Keep the channel page intact when there is no report yetI Mean I'm Just Saying5+275-36
2026-08-05 01:27Make auto-refresh ask before re-rendering, and stop generating reports in a GETI Mean I'm Just Saying33+809-138
2026-08-05 01:04Add loading and error boundaries, and a client router cacheI Mean I'm Just Saying12+333-13
2026-08-05 00:48Stop walking the whole corpus to render a sidebar badgeI Mean I'm Just Saying25+789-142
2026-08-04 19:50Release export 0.8.4I Mean I'm Just Saying1+1-1
2026-08-04 19:08Tell the viewer a video is missing before we know whyI Mean I'm Just Saying27+1415-217
2026-08-04 16:42Release export 0.8.3I Mean I'm Just Saying1+1-1
2026-07-31 23:06Check the video still exists upstream before deleting its audioI Mean I'm Just Saying12+742-33
2026-07-31 20:27Give the widget a "Needs cleaning" section that can actually reclaim the diskI Mean I'm Just Saying7+234-21
2026-07-30 08:36Fix all 22 red e2e specs, and make the sharded route actually runI Mean I'm Just Saying25+572-91
2026-07-30 08:36Restore editor/CHANGELOG.md — a test fixture had been committed over itI Mean I'm Just Saying1+163-3
2026-07-30 01:09Attach the two-signals doc to the function that implements itI Mean I'm Just Saying1+6-4
2026-07-30 01:05Reflow the lines prettier disagreed with, and de-duplicate one commentI Mean I'm Just Saying2+25-15
2026-07-30 01:01Settle the pre-sweep decisions; abort the contention run on evidenceI Mean I'm Just Saying4+201-12
2026-07-30 00:27Retract the ~81 days and the "fifty times" claim, on the run's own dataI Mean I'm Just Saying3+287-58
2026-07-30 00:21Make tags real: generate them, score them, cover themI Mean I'm Just Saying5+244-9
2026-07-29 23:51Price the sweep in chunks, and stop yielding to CPU workersI Mean I'm Just Saying13+933-139
2026-07-29 16:23Merge docs/local-ai-roadmap: get the digest backfill to the starting lineI Mean I'm Just Saying117+18978-397
2026-07-29 16:23Record the live sweep run in STATE.mdI Mean I'm Just Saying1+19-0
2026-07-29 16:23Two bugs the live sweep found that no test would haveI Mean I'm Just Saying3+49-2
2026-07-29 16:17My new buttons' aria-labels collided with the card's own locatorI Mean I'm Just Saying1+14-6
2026-07-29 15:55Persist the sweep's SCOPE, not just the fact that one is armedI Mean I'm Just Saying3+30-166
2026-07-29 15:53Progress counted already-fresh videos against a target that excluded themI Mean I'm Just Saying1+10-1
2026-07-29 15:50Changelogs for the sweep controls, the threshold change, and the review pathI Mean I'm Just Saying2+4-0
2026-07-29 15:49Two bugs in the sweep controls that would have shown up on first useI Mean I'm Just Saying2+38-8
2026-07-29 15:47Stop the sweep loop from spinning on a failure it cannot seeI Mean I'm Just Saying3+142-25
2026-07-29 15:43Correct the roadmap's gate list, and record what the measurements changedI Mean I'm Just Saying3+221-50
2026-07-29 15:40The worst digest failures left no trace anywhere — persist them, then queue themI Mean I'm Just Saying15+466-3
2026-07-29 15:31The sweep can now be started, survive a restart, pause, and yield the GPUI Mean I'm Just Saying15+881-32
2026-07-29 15:20Wire the duplicate-cluster confirm path — it was built and never calledI Mean I'm Just Saying4+241-9
2026-07-29 15:20Lower the duplicate near-threshold to 0.35, on a bracketed measurementI Mean I'm Just Saying1+27-1
2026-07-29 15:20Price the digest backfill in audio-hours, and find out the levers are smallI Mean I'm Just Saying2+455-0
2026-07-29 15:19Digest cluster sharing was dead for 14.5% of the corpus — the half it was forI Mean I'm Just Saying5+301-12
2026-07-29 15:01Ship the digest layer: build, page tree, and the viewer's third panelI Mean I'm Just Saying23+2049-58
2026-07-27 06:30Record the Stage B2 verification sweepI Mean I'm Just Saying1+12-1
2026-07-27 06:01Record the 102-video digest validation runI Mean I'm Just Saying2+158-12
2026-07-27 05:06Fix the pilot's "un-created job": a pre-hydration lost clickI Mean I'm Just Saying2+232-1
2026-07-27 04:46Per-video digest review panel — make the layer inspectableI Mean I'm Just Saying5+682-0
2026-07-27 04:40Settings: a Digest section that actually existsI Mean I'm Just Saying5+472-10
2026-07-27 04:22Digest: ship the measured-best defaults, and make the counters honestI Mean I'm Just Saying12+456-136
2026-07-27 04:09Corpus-wide duplicate detection: blocking, review queue, alignmentI Mean I'm Just Saying19+2271-217
2026-07-27 04:08Digest layer Stage B1: engine registry, batch runner, guards, e2eI Mean I'm Just Saying28+4412-28
2026-07-26 08:47Digest layer: engine registry, artifact + override model, parser guards, batchI Mean I'm Just Saying35+4742-58
2026-07-26 05:21Add the local-AI derived-corpus roadmap and its memory systemI Mean I'm Just Saying5+1033-0
2026-07-26 02:41Merge branch 'feat/replace-auto-captions'I Mean I'm Just Saying27+1801-47
2026-07-26 02:41Replace YouTube auto-captions with our own AI transcripts (opt-in, lowest priority)I Mean I'm Just Saying27+1801-47
2026-07-26 02:35Merge branch 'feat/social-posts-corpus'I Mean I'm Just Saying71+7497-76
2026-07-26 02:35Social posts (X/Twitter + Bluesky) as a parallel corpus to transcriptsI Mean I'm Just Saying71+7497-76
2026-07-24 22:18Release export 0.8.2I Mean I'm Just Saying1+1-1
2026-07-24 22:14Merge branch 'feat/dashboard-cockpit'I Mean I'm Just Saying31+1838-349
2026-07-24 22:14Dashboard mission-control cockpit + URL-first onboarding + persisted pauseI Mean I'm Just Saying31+1838-349
2026-07-22 15:00Merge branch 'main' into worktree-feat+byo-ai-corpusI Mean I'm Just Saying67+5891-252
2026-07-22 15:00Ask chat: clickable precise-moment report citations — [n @ mm:ss] + a persisted source registryI Mean I'm Just Saying15+772-157
2026-07-22 14:18Channel-group chips v2: uniform responsive chips + per-group inline flagI Mean I'm Just Saying10+389-15
2026-07-22 04:33Channel-group filters: wrapping chips with tri-state group checkboxesI Mean I'm Just Saying5+352-43
2026-07-22 04:22Configurable cookies-from-browser: cookie modes, per-channel overrides, Needs-cookies bucketI Mean I'm Just Saying30+1131-52
2026-07-22 04:02Merge worktree-mcp-token-efficiency: MCP compact base-links + dumb-extractor sweep batchesI Mean I'm Just Saying8+578-58
2026-07-22 03:58MCP: compact base-links for the agent pipeline + cheap dumb-extractor sweepsI Mean I'm Just Saying8+578-58
2026-07-22 03:50Merge feat/channel-site-membership: channel form site membership + group selectionI Mean I'm Just Saying12+671-46
2026-07-22 03:50Channel form: site membership + group selectionI Mean I'm Just Saying12+671-46
2026-07-21 18:42Merge feat/mcp-cite-link-open-link: MCP cite-and-link output, subagent-compacted sweeps, and open_linkI Mean I'm Just Saying11+2339-81
2026-07-21 18:42MCP: cite-and-link output, subagent-compacted sweeps, and open_linkI Mean I'm Just Saying11+2339-81
2026-07-21 03:02Release export 0.8.0I Mean I'm Just Saying1+1-1
2026-07-21 02:48Merge worktree-feat+byo-ai-corpus: MCP runtime-switchable source + group/multi-channel sweep scopingI Mean I'm Just Saying10+1593-151
2026-07-21 02:48MCP: runtime-switchable data source + group/multi-channel sweep scopingI Mean I'm Just Saying10+1593-151
2026-07-20 21:54Merge worktree-feat+byo-ai-corpus: MCP corpus sweeping + AI rate limitingI Mean I'm Just Saying8+879-27
2026-07-20 21:54MCP: first-class corpus sweeping — sweep prompt, pageable + alias-aware search, batch windowed readsI Mean I'm Just Saying8+879-27
2026-07-20 19:36Merge feat/widget-sync-readouts: widget Sync button + last-sync/scheduler readoutsI Mean I'm Just Saying9+488-14
2026-07-20 19:36Widget: Sync button + last-sync & scheduler readouts (configurable)I Mean I'm Just Saying9+488-14
2026-07-20 15:23Ask chat: client-side rate limiting — pace requests, honour retry hints, self-tuneI Mean I'm Just Saying11+975-46
2026-07-20 06:44Gitignore: match the generated export/public dirs when they're worktree symlinksI Mean I'm Just Saying1+9-5
2026-07-20 06:43Ask chat: integrated grounding workspace — pick the AI target, sweep any size, save & resumeI Mean I'm Just Saying25+2274-227
2026-07-19 20:20Ask chat: whole-corpus "sweep" — batch a search into one running reportI Mean I'm Just Saying14+1143-53
2026-07-18 23:38Ask chat: fix silent answer truncation + add a debug exportI Mean I'm Just Saying16+623-25
2026-07-17 02:01Ask chat: clickable [n] citations + composer/copy nicetiesI Mean I'm Just Saying6+124-14
2026-07-17 01:26Ask chat: opt-in Report mode (model-maintained living document)I Mean I'm Just Saying13+704-27
2026-07-16 22:27Ask chat: auto-ground in the live shared search (retire the handoff)I Mean I'm Just Saying9+250-200
2026-07-16 21:45Unify search + Ask into one workspace shell (persistent search bar)I Mean I'm Just Saying14+3196-2698
2026-07-16 20:39Ask chat: pass the whole search to the AI via tiered groundingI Mean I'm Just Saying6+107-10
2026-07-16 20:33Ask chat: regenerate, edit & resend, per-answer attributionI Mean I'm Just Saying7+94-12
2026-07-16 20:26Ask chat: fix must-fix UX dead-ends + first-use frictionI Mean I'm Just Saying6+58-25
2026-07-16 20:19Ask chat: fix context ballooning ("trapped in context")I Mean I'm Just Saying9+293-54
2026-07-18 00:22Audio-check: e2e coverage for the adaptive probe intervalI Mean I'm Just Saying3+66-2
2026-07-18 00:16parakeet-stitch: validate cached window JSON before reusing itI Mean I'm Just Saying1+16-1
2026-07-17 22:40Audio-check: adaptive (AIMD) probe intervalI Mean I'm Just Saying5+281-6
2026-07-16 05:34Release export 0.7.6I Mean I'm Just Saying1+1-1
2026-07-16 05:34Add setup docsI Mean I'm Just Saying2+287-5
2026-07-09 04:21Ask chat: drill into a hit — read the surrounding transcript on demandI Mean I'm Just Saying18+1011-151
2026-07-09 00:46Ask chat: hand a search's results to the AI as pinned groundingI Mean I'm Just Saying10+690-35
2026-07-08 03:05Release export 0.7.5I Mean I'm Just Saying1+1-1
2026-07-07 20:03Ask chat: alias-aware search + saved/resumable/editable contextI Mean I'm Just Saying11+801-192
2026-07-07 18:55Merge branch 'worktree-alias-suggestions': fix multi-word + regex-mode alias matchingI Mean I'm Just Saying5+147-13
2026-07-07 18:55Fix alias matching: multi-word triggers + regex-mode literalsI Mean I'm Just Saying5+147-13
2026-07-07 17:05Release export 0.7.4I Mean I'm Just Saying1+1-1
2026-07-07 16:59Docker export build: parallel per-site container builds + serial deployI Mean I'm Just Saying17+951-42
2026-07-07 15:19Overhaul /ask: agentic multi-step retrieval, animated feedback, MarkdownI Mean I'm Just Saying22+2339-357
2026-07-07 15:12Release editor 0.7.3I Mean I'm Just Saying1+1-1
2026-07-07 13:41Release export 0.7.3I Mean I'm Just Saying1+1-1
2026-07-07 05:36Incremental export build: skip unchanged channelsI Mean I'm Just Saying8+630-81
2026-07-07 04:12Merge branch 'worktree-alias-suggestions': gitignore generated search-aliases.jsonI Mean I'm Just Saying1+1-0
2026-07-07 04:12Gitignore generated export/public/search-aliases.jsonI Mean I'm Just Saying1+1-0
2026-07-07 04:09Redesign /downloads as per-channel catalog cardsI Mean I'm Just Saying3+180-58
2026-07-07 03:53Release export 0.7.1I Mean I'm Just Saying1+1-1
2026-07-07 03:47Fix /ask retrieval: drive the real search engine instead of a crude shard scanI Mean I'm Just Saying6+431-168
2026-07-07 02:49Merge branch 'worktree-alias-suggestions'I Mean I'm Just Saying19+1267-2
2026-07-07 02:44Add search alias suggestions (global + per-site)I Mean I'm Just Saying19+1267-2
2026-07-07 02:16Merge branch 'main' into worktree-feat+archive-downloadsI Mean I'm Just Saying2+3-3
2026-07-07 02:16gitignore generated public files: corpus.json, llms.txt, robots.txt, sitemap.xmlI Mean I'm Just Saying1+4-0
2026-07-07 02:03Release export 0.7.0I Mean I'm Just Saying1+1-1
2026-07-07 02:02Rename the workerI Mean I'm Just Saying1+2-2
2026-07-07 01:45Merge branch 'main' into worktree-feat+archive-downloadsI Mean I'm Just Saying26+3100-1
2026-07-07 01:43Upload oversize archives to R2 via S3 multipart, not wranglerI Mean I'm Just Saying6+505-36
2026-07-07 01:39Add in-browser bring-your-own-key AI chat (/ask)I Mean I'm Just Saying5+851-0
2026-07-07 01:34Add /use-with-ai page + copy-for-AI buttons (player & search)I Mean I'm Just Saying7+290-0
2026-07-07 01:19Add MCP server (mcp/) exposing the archive to Claude Code / any MCP clientI Mean I'm Just Saying10+1282-0
2026-07-07 01:10Add machine-readable AI-discovery surface (llms.txt/corpus.json) + shared transcript→markdownI Mean I'm Just Saying7+682-1
2026-07-06 17:03Release export 0.6.4I Mean I'm Just Saying1+1-1
2026-07-06 14:51Merge branch 'main' into worktree-feat+archive-downloadsI Mean I'm Just Saying4+85-10
2026-07-06 14:43Merge branch 'fix/theme-persist-on-reload'I Mean I'm Just Saying4+85-10
2026-07-06 14:42Fix: persist theme on reload (editor always loaded light until toggled)I Mean I'm Just Saying4+85-10
2026-07-06 14:35Add r2-proxy Worker: serve R2 archives on free workers.dev (no custom domain)I Mean I'm Just Saying10+1210-46
2026-07-05 19:10R2 archive downloads: Cache-Control on uploads + Cloudflare deploy/security guideI Mean I'm Just Saying4+206-1
2026-07-04 17:46Release export 0.6.3I Mean I'm Just Saying1+1-1
2026-07-04 17:34Merge main into feat/archive-downloads (changelog union)I Mean I'm Just Saying10+598-172
2026-07-04 17:22Overflow oversize archives to R2; per-channel only; per-site Duplicates toggleI Mean I'm Just Saying18+349-124
2026-07-04 14:07Release export 0.6.2I Mean I'm Just Saying1+1-1
2026-07-04 12:43Merge perf: memoize search result cards & hit rowsI Mean I'm Just Saying3+72-37
2026-07-04 12:42perf: memoize search result cards & hit rows to stop scroll re-render churnI Mean I'm Just Saying3+72-37
2026-07-04 12:09Merge feat/widget-builder-actionable: needs-work list, actions, in-place settings gearI Mean I'm Just Saying8+523-134
2026-07-04 12:09Widget: needs-work channel list, more actions, in-place settings gearI Mean I'm Just Saying8+523-134
2026-07-04 12:06Release export 0.6.1I Mean I'm Just Saying1+1-1
2026-07-03 17:13Merge feat: downloadable transcript & live-chat archive zipsI Mean I'm Just Saying26+820-25
2026-07-03 08:01Add downloadable transcript & live-chat archive zipsI Mean I'm Just Saying26+820-25
2026-07-03 07:18Merge feat/channel-rename e2e fixup 2I Mean I'm Just Saying1+3-1
2026-07-03 07:18e2e: refill rename fields before second submit (React 19 form reset)I Mean I'm Just Saying1+3-1
2026-07-03 07:15Merge feat/channel-rename e2e fixupI Mean I'm Just Saying1+2-1
2026-07-03 07:15e2e: relax rename URL assertion to allow ?site= queryI Mean I'm Just Saying1+2-1
2026-07-03 07:13Merge feat/channel-rename: change a channel's slug from the Danger zoneI Mean I'm Just Saying11+582-10
2026-07-03 07:13Add channel slug rename (Danger zone, full state migration)I Mean I'm Just Saying11+582-10
2026-07-03 05:16Merge feat/queue-diagnostics-page: Queue page to see & force-release stuck jobsI Mean I'm Just Saying12+716-1
2026-07-03 05:15Add Queue diagnostics page: see & force-release stuck jobsI Mean I'm Just Saying12+716-1
2026-07-03 04:49Jobs page: ULID ids, pagination, and log retentionI Mean I'm Just Saying13+598-162
2026-07-03 04:32Auto-queue policy editor: add a "move to top" buttonI Mean I'm Just Saying3+88-0
2026-07-03 03:35Merge feat/kick-vod-playback: Kick VOD playback + VOD-expiry indicatorsI Mean I'm Just Saying19+500-7
2026-07-03 03:35Add Kick VOD playback + VOD-expiry indicatorsI Mean I'm Just Saying19+500-7
2026-07-02 16:51Fix three flaky/broken e2e tests: charts hydration, sites nav, PWA sw.js stagingI Mean I'm Just Saying4+43-8
2026-07-02 15:21Phase 6b: demoted hub stats strip + per-site offline managerI Mean I'm Just Saying3+189-0
2026-07-02 15:16Phase 6b: provenance accent on search result cardsI Mean I'm Just Saying2+42-3
2026-07-02 14:42Phase 8: real two-origin e2e — cross-origin CORS + service-worker offlineI Mean I'm Just Saying5+317-0
2026-07-02 13:41Phase 6b: provenance accent in the channel filterI Mean I'm Just Saying3+14-1
2026-07-02 13:39Phase 6b: the archive shelf — designed hub hero + provenance chromeI Mean I'm Just Saying8+256-110
2026-07-02 06:28Phase 7: hub service worker + origin-aware offline cacheI Mean I'm Just Saying3+272-24
2026-07-02 06:23Phase 8 (core): hub federation e2e — cross-origin browse + search verifiedI Mean I'm Just Saying5+251-3
2026-07-02 06:12Phase 6d: hub-parent indicator + editor pwa/hubUrl fieldsI Mean I'm Just Saying3+48-2
2026-07-02 06:09Phase 6c: hub build + page — INSTANCE_MODE=hub renders the federated shelfI Mean I'm Just Saying7+276-1
2026-07-02 06:02Phase 6b: MultiSiteDataProvider — merge many origins into one search viewI Mean I'm Just Saying2+257-10
2026-07-02 05:57Phase 6a: PWA opt-in — dumb-by-default site instancesI Mean I'm Just Saying5+60-8
2026-07-02 05:38Phase 5: client site registry for the federated hubI Mean I'm Just Saying1+357-0
2026-07-02 05:33Fix export build: exclude out/ from tsconfig type-checkI Mean I'm Just Saying1+1-1
2026-07-02 04:56Add "Skip data rebuild" option to Build static exportI Mean I'm Just Saying6+40-3
2026-07-02 04:19Release export 0.5.1I Mean I'm Just Saying1+1-1
2026-07-02 04:17Merge: default export to the neutral base theme (pre-theme look)I Mean I'm Just Saying9+49-29
2026-07-02 04:17Default export to the neutral base theme (pre-theme look)I Mean I'm Just Saying9+49-29
2026-07-02 03:57Gate the footer "Offline" link behind the per-site pwa flagI Mean I'm Just Saying1+11-6
2026-07-02 03:47Phase 4: stable channelKey for multi-origin channel selectionI Mean I'm Just Saying2+138-107
2026-07-02 03:41Phase 3: SearchDataContext provider (data source behind context)I Mean I'm Just Saying3+51-6
2026-07-02 03:35gitignore generated /export/public/site.json + _headersI Mean I'm Just Saying1+2-0
2026-07-02 03:35Phase 2: origin-aware client caches (federation-ready)I Mean I'm Just Saying7+166-80
2026-07-02 03:23Release export 0.5.0I Mean I'm Just Saying1+1-1
2026-07-02 03:22Phase 1: serve /site.json federation contract + CORS headersI Mean I'm Just Saying6+185-3
2026-07-01 05:16Theme: make the whole family theme-aware + rename Terminal→Selenized + distinct per-family voiceI Mean I'm Just Saying122+1111-1017
2026-07-01 03:56Merge 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 Saying4+233-5
2026-07-01 03:54Merge feat/export-pwa-offline-search: installable PWA + service-worker offline shard cache + FlexSearch web-worker off-main-thread index & offline search on export sitesI Mean I'm Just Saying22+1279-2
2026-07-01 03:54Merge feat/cleanup-page-and-colorful-status: dedicated Cleanup page + colorful semantic badges/alerts + per-video truncated-check opt-out + widget cleaning indicatorI Mean I'm Just Saying29+1368-37
2026-07-01 01:48Add FlexSearch web-worker index: off-main-thread build + instant offline searchI Mean I'm Just Saying8+550-22
2026-07-01 01:31Add PWA install + opt-in offline transcript search to export sitesI Mean I'm Just Saying16+751-2
2026-06-30 22:49Add Cleanup page, colorful semantic badges/alerts, per-video truncated-check opt-outI Mean I'm Just Saying29+1368-37
2026-06-30 18:51Merge redesign/phase-0-foundation: family-wide UI redesign (Phases 0-5)I Mean I'm Just Saying72+5960-1481
2026-06-30 18:43redesign Phase 5: Terminal + Swiss themes + a theme-family picker (final phase)I Mean I'm Just Saying9+316-5
2026-06-30 17:59redesign Phase 4: StreamActionLog onto the kit + optional per-site brand accentI Mean I'm Just Saying10+97-11
2026-06-30 17:14redesign Phase 3: editor command-first cockpit (cmdk palette, shared nav, live dashboard, Sonner)I Mean I'm Just Saying12+419-301
2026-06-30 16:05Merge branch 'main' into redesign/phase-0-foundationI Mean I'm Just Saying35+1044-37
2026-06-30 14:59Merge feat/download-format-and-duration-guard: download-time short-audio guard + selectable/per-source download format (Odysee -> original)I Mean I'm Just Saying35+1044-37
2026-06-30 14:59e2e + changelog: download-time guard + selectable formatI Mean I'm Just Saying5+252-9
2026-06-30 14:44Download-time duration guard: failed-short-audio + shortAudio surfacingI Mean I'm Just Saying20+484-10
2026-06-30 14:28Download format: selectable + platform-aware default (Odysee -> original)I Mean I'm Just Saying13+309-19
2026-06-30 06:37redesign Phase 2: public Archive identity, kit-migrated search, family nav, FOUC fixI Mean I'm Just Saying23+602-297
2026-06-30 04:33redesign Phase 1: shared shadcn kit + full token contractI Mean I'm Just Saying28+3978-734
2026-06-30 04:09redesign Phase 0: shared theme foundation (tokens, fonts, no-FOUC theming)I Mean I'm Just Saying15+620-205
2026-06-30 03:01fix(audio-check): keep complete-but-malformed downloads instead of looping re-downloadsI Mean I'm Just Saying13+244-16
2026-06-30 02:07Merge feat/bulk-fix-incomplete-transcripts: bulk clear + batch re-fix for truncated transcriptsI Mean I'm Just Saying14+744-46
2026-06-30 02:07Bulk-fix incomplete transcripts: e2e coverage + changelogI Mean I'm Just Saying2+148-1
2026-06-30 02:07Bulk-fix incomplete transcripts: actionable + channel-page UII Mean I'm Just Saying4+212-14
2026-06-30 02:07Bulk-fix incomplete transcripts: shared helpers, actions, job plumbingI Mean I'm Just Saying8+384-31
2026-06-29 14:00feat(deploy): rework deploy page with build-then-deploy, batch builds, build-mode toggleI Mean I'm Just Saying18+1116-82
2026-06-29 13:16Merge refine/chart-presets: recent site-based combined presetsI Mean I'm Just Saying6+101-89
2026-06-29 13:16Rework chart presets: recent, site-based, combined; fix slam + render bugI Mean I'm Just Saying6+101-89
2026-06-29 05:48Merge feat/incomplete-transcript-flag: detect & flag truncated transcriptsI Mean I'm Just Saying23+507-17
2026-06-29 05:47Add transcript coverage to public stats + chartsI Mean I'm Just Saying8+17-3
2026-06-29 05:47Detect & flag truncated transcripts in the editorI Mean I'm Just Saying15+490-14
2026-06-29 05:00Merge chore/simplify-header: constant-size header on all pagesI Mean I'm Just Saying4+23-89
2026-06-29 05:00Simplify the hub header: one compact size on every pageI Mean I'm Just Saying4+23-89
2026-06-29 04:48Merge feat/hub-charts-redesign: preset chips + symlog charts explorerI Mean I'm Just Saying18+1303-252
2026-06-29 04:48Rebuild hub charts: presets + symlog explorer for the skewed dataI Mean I'm Just Saying18+1303-252
2026-06-29 03:44Merge fix/masthead-no-reflow: masthead shrinks without page reflowI Mean I'm Just Saying3+28-10
2026-06-29 03:44Homepage masthead shrinks without reflowing the pageI Mean I'm Just Saying3+28-10
2026-06-29 03:05Merge feat/hub-masthead-header: shrink-on-scroll wordmark mastheadI Mean I'm Just Saying10+198-69
2026-06-29 03:05feat(homepage): merge masthead into a shrink-on-scroll headerI Mean I'm Just Saying4+77-27
2026-06-29 02:49Auto-queue: bucketless rules union all buckets; auto-download resumes partialsI Mean I'm Just Saying6+121-42
2026-06-29 02:42Merge feat/hub-landing-iter3: Source fonts, minimal chrome, day/2-week Counts defaultI Mean I'm Just Saying9+112-117
2026-06-29 02:42feat(homepage): Source fonts, minimal chrome, day/2-week Counts defaultI Mean I'm Just Saying9+112-117
2026-06-29 01:55Merge feat/hub-cross-site-landing: cross-site landing hub + drop Markdown pagesI Mean I'm Just Saying29+1433-894
2026-06-29 01:55feat(homepage): cross-site landing hub + drop Markdown pagesI Mean I'm Just Saying29+1433-894
2026-06-26 20:26Merge refactor/job-queue-scheduler: unified scheduler + runPool, reorder & retryI Mean I'm Just Saying27+1993-459
2026-06-26 19:59Phase 8: one-click retry + retry-all for failed jobsI Mean I'm Just Saying7+234-1
2026-06-26 19:51Phase 7: reorder / promote a queued job from Active JobsI Mean I'm Just Saying6+242-0
2026-06-26 19:44Phase 6: run the auto-runner and whisperBatch on the shared runPoolI Mean I'm Just Saying3+180-178
2026-06-26 19:30Phase 5: unify the worker-pool waiter ordering with compareTierI Mean I'm Just Saying2+63-15
2026-06-26 19:26Phase 4: delegate registry queue ordering to the schedulerI Mean I'm Just Saying3+71-88
2026-06-26 19:02Phase 3: scheduler core + runPool primitive (behind the API)I Mean I'm Just Saying4+693-0
2026-06-26 18:55Phase 2: collapse the runJobSpec switch into a replay-handler lookupI Mean I'm Just Saying2+198-136
2026-06-26 18:53Phase 1: consolidate per-kind job metadata into one tableI Mean I'm Just Saying4+319-48
2026-06-26 17:49Merge fix/drain-all-eventloop-starvation: stop Drain-all event-loop starvationI Mean I'm Just Saying3+67-1
2026-06-25 17:38Fix "Drain all" hang: stop the auto-runner's drain-wait from spinning the event loopI Mean I'm Just Saying3+67-1
2026-06-25 12:21Merge feat/video-persistence: keep-latest retention, saved-video store, backups & first-class UII Mean I'm Just Saying48+3791-57
2026-06-25 05:34Phase 5: first-class video-persistence UI (Saved Videos area, retention controls, per-video persist)I Mean I'm Just Saying20+1206-81
2026-06-25 05:12Phase 4: saved-video backups (rsync mirror + manifest + verify)I Mean I'm Just Saying14+830-2
2026-06-25 04:58Phase 3: saved-video store (separate dir/disk) + retention pruningI Mean I'm Just Saying14+724-27
2026-06-25 04:33Phase 2: per-download persistence rule engine + app-side extractionI Mean I'm Just Saying14+705-47
2026-06-25 04:15Phase 1: per-channel keep-latest retention + deletion pinningI Mean I'm Just Saying14+429-3
2026-06-25 02:13Merge feat/widget-control-buttons: opt-in widget controls (pause/drain)I Mean I'm Just Saying7+118-19
2026-06-25 02:13Widget: optional Pause/Resume + Drain control buttonsI Mean I'm Just Saying7+118-19
2026-06-25 01:04Untrack export/public/duplicates.json so its .gitignore entry takes effectI Mean I'm Just Saying1+0-2
2026-06-25 00:30Merge feat/pause-transcriptions-parakeet-segments: between-segment GPU releaseI Mean I'm Just Saying7+151-28
2026-06-25 00:30Pause Transcriptions: stop parakeet jobs between segments to free the GPUI Mean I'm Just Saying7+151-28
2026-06-24 01:40Merge fix/auto-transcribe-priority-and-drain: manual transcribe priority + Drain hang fixI Mean I'm Just Saying8+284-11
2026-06-24 01:40Auto-transcribe: manual transcriptions preempt auto units; fix Drain hangI Mean I'm Just Saying8+284-11
2026-06-23 22:48ignore duplicates.jsonI Mean I'm Just Saying1+1-0
2026-06-23 18:36Merge feat/auto-queue-platform-backoff: auto-download shares the per-platform Sync queueI Mean I'm Just Saying28+1193-93
2026-06-23 18:36Auto-queue: share the per-platform queue with manual SyncI Mean I'm Just Saying20+697-78
2026-06-23 02:15Auto-queue: per-platform rate-limit backoff + subtitle progressI Mean I'm Just Saying11+518-37
2026-06-23 01:31Fix Odysee videos opening in the YouTube player (stale IndexedDB cache)I Mean I'm Just Saying4+235-5
2026-06-23 01:00Release export 0.4.1I Mean I'm Just Saying1+1-1
2026-06-22 23:58Merge feat/homepage-hub: Archilyzer homepage hub (SSG)I Mean I'm Just Saying44+1764-16
2026-06-22 22:48Fix editor build: keep node:fs out of the homepage client bundleI Mean I'm Just Saying3+37-20
2026-06-22 22:39Fix homepage export build when no docs pages are authoredI Mean I'm Just Saying3+62-16
2026-06-22 21:45Add Archilyzer homepage hub (SSG) with editor config + cross-site chartsI Mean I'm Just Saying43+1701-16
2026-06-22 21:11git commit when cutting versionsI Mean I'm Just Saying5+140-2
2026-06-22 20:16Auto-queue: add Drain control; verify Drain/Cancel on runner jobsI Mean I'm Just Saying5+101-5
2026-06-22 20:01Fix paused (force-killed) transcription wrongly recorded as failedI Mean I'm Just Saying3+98-13
2026-06-22 19:59Auto-queue: respect disabled workers; label runner in Active JobsI Mean I'm Just Saying7+149-18
2026-06-22 19:09Add automatic dynamic-priority queue (auto-transcribe / auto-download)I Mean I'm Just Saying23+3010-87
2026-06-22 02:48Add download/transcription progress charts (content added over time)I Mean I'm Just Saying15+292-39
2026-06-22 02:04reworked granular scheduler UII Mean I'm Just Saying17+776-44
2026-06-20 00:58Make channel video-list filters combinable (intersection) + add Partial filterI Mean I'm Just Saying5+211-56
2026-06-19 23:24Add ↑/↓ reordering of command bookmarksI Mean I'm Just Saying5+147-2
2026-06-19 23:04Fix retry-bucket prefilter skipping partials with an audio-check snapshotI Mean I'm Just Saying3+45-4
2026-06-19 21:20Suppress harmless Turbopack NFT "whole project traced" build warningI Mean I'm Just Saying1+15-0
2026-06-19 20:09Merge branch 'active-jobs-drain-all'I Mean I'm Just Saying6+148-2
2026-06-19 19:49Add "Drain all" spin-down and queued-job Cancel to /jobs/activeI Mean I'm Just Saying6+148-2
2026-06-19 19:39Compact bookmarks menu + management page, with batched job/widget/download workI Mean I'm Just Saying47+2119-123
2026-06-19 03:25Add quick availability check, targeted full check, and availability historyI Mean I'm Just Saying17+816-32
2026-06-19 02:04Add persistent /jobs filters and persist archived-job metadataI Mean I'm Just Saying8+654-133
2026-06-18 22:37Persist a default worker arrangement and disable workers on StopI Mean I'm Just Saying9+298-12
2026-06-18 20:34Stop and prevent downloads when disk space is lowI Mean I'm Just Saying12+296-5
2026-06-18 19:12Merge branch 'widget-popup'I Mean I'm Just Saying3+28-2
2026-06-18 19:12Add "Open popup" button to the monitor widget builderI Mean I'm Just Saying3+28-2
2026-06-18 18:45Add bulk audio removal + wrong-format audio sweep to channel selectorI Mean I'm Just Saying14+528-3
2026-06-18 18:46Merge branch 'fix-worktree-build-approval'I Mean I'm Just Saying1+29-2
2026-06-18 18:46wt add: install deps with builds approved so fresh worktrees are cleanI Mean I'm Just Saying1+29-2
2026-06-18 18:39Merge branch 'monitor-widget'I Mean I'm Just Saying12+879-93
2026-06-18 18:39Add read-only monitor widget and builderI Mean I'm Just Saying12+879-93
2026-06-18 15:40Add bulk delete + clear-failed-markers to channel video selectorI Mean I'm Just Saying5+379-92
2026-06-18 13:11Pause audio-integrity downloads during the integrity probeI Mean I'm Just Saying8+288-65
2026-06-15 01:53Update changelogI Mean I'm Just Saying1+1-1
2026-06-14 15:18Merge branch 'worktree-fix-nft-warning'I Mean I'm Just Saying4+13-7
2026-06-14 15:18Fix parakeet Device=cpu still running on GPUI Mean I'm Just Saying4+13-7
2026-06-14 08:19Merge branch 'worktree-charts-search-ui'I Mean I'm Just Saying26+1184-558
2026-06-14 08:15Charts as a Search view + description/tags search + new chart dimensionsI Mean I'm Just Saying26+1184-558
2026-06-14 07:15Scheduled sync: per-channel auto-sync via cron heartbeatI Mean I'm Just Saying25+1492-12
2026-06-14 06:30Transcription workers: resumable parakeet + pause + device (Phase 7)I Mean I'm Just Saying14+407-52
2026-06-14 05:58Transcription workers: cross-reference Workers ↔ Active Jobs (Phase 6)I Mean I'm Just Saying6+134-23
2026-06-14 05:38Transcription workers: auto-disable unreachable remotes (Phase 5)I Mean I'm Just Saying7+92-10
2026-06-14 05:26Transcription workers: one slot per worker + remote protocol (Phase 4)I Mean I'm Just Saying23+1017-134
2026-06-14 04:31Transcription workers: settings editor + Workers page (Phase 3)I Mean I'm Just Saying12+1078-212
2026-06-14 04:12e2e: reset the global worker pool between specsI Mean I'm Just Saying1+8-0
2026-06-14 03:25Transcription workers: data model + global pool scheduler (Phases 1–2)I Mean I'm Just Saying16+906-253
2026-06-14 04:44Merge branch 'passive-auto-refresh'I Mean I'm Just Saying9+226-23
2026-06-14 04:43Merge branch 'related-sites-footer'I Mean I'm Just Saying15+498-8
2026-06-14 04:21Cross-site footer links between export sitesI Mean I'm Just Saying15+498-8
2026-06-14 04:19global passive auto-refresh on a configurable intervalI Mean I'm Just Saying9+226-23
2026-06-14 03:54worktree support: non-colliding ports for parallel dev/testI Mean I'm Just Saying17+427-21
2026-06-14 02:56auto-refresh channel reports on a global debounceI Mean I'm Just Saying16+423-29
2026-06-13 23:48parakeet ETA and task timerI Mean I'm Just Saying7+90-11
2026-06-13 21:04reconstruct single video URL from filename when no metadataI Mean I'm Just Saying6+72-11
2026-06-13 17:11parakeet stitch testI Mean I'm Just Saying9+492-4
2026-06-13 01:46ETAI Mean I'm Just Saying7+104-6
2026-06-10 02:23fix regressionsI Mean I'm Just Saying5+71-26
2026-06-09 16:12support multi-app / chough transcriptionI Mean I'm Just Saying17+878-172
2026-06-09 14:46global parallel default and split metadata+filter pipelineI Mean I'm Just Saying25+676-51
2026-06-08 02:28global social linksI Mean I'm Just Saying14+451-142
2026-06-07 16:03one-off video downloadsI Mean I'm Just Saying5+164-4
2026-06-05 22:32filters for duplicates pageI Mean I'm Just Saying5+540-58
2026-06-05 00:49Duplicate detectionI Mean I'm Just Saying19+1608-8
2026-06-04 22:35cleanup disk space estimateI Mean I'm Just Saying10+163-14
2026-06-02 17:42transcript switchingI Mean I'm Just Saying11+331-6
2026-06-01 20:38handle non-standard vtt namesI Mean I'm Just Saying6+124-16
2026-06-01 01:30Show full yt-dlp logs; drive progress bars from a progress templateI Mean I'm Just Saying3+109-0
2026-05-31 22:45global multi-site selectorI Mean I'm Just Saying18+543-153
2026-05-31 18:16Date filterI Mean I'm Just Saying8+387-13
2026-05-31 03:28CHANGELOG and ignore export indexI Mean I'm Just Saying2+2-1
2026-05-31 02:23even more shard fixesI Mean I'm Just Saying10+316-198
2026-05-30 21:00more shard fixesI Mean I'm Just Saying12+375-56
2026-05-30 19:24fix shardsI Mean I'm Just Saying7+216-18
2026-05-30 06:55fix export-search testsI Mean I'm Just Saying3+143-195
2026-05-30 06:01multi-site supportI Mean I'm Just Saying56+2478-1104
2026-05-30 04:03Fix single pipeline-skip transcribe false-detecting audio files with prefixI Mean I'm Just Saying6+116-36
2026-05-30 02:52Global cleaning and space estimationI Mean I'm Just Saying15+536-13
2026-05-28 17:55app-handled video directoriesI Mean I'm Just Saying10+736-305
2026-05-28 03:15Twitch supportI Mean I'm Just Saying18+199-32
2026-05-27 03:26query builder for chartsI Mean I'm Just Saying7+343-94
2026-05-27 02:50more chart improvementsI Mean I'm Just Saying8+120-38
2026-05-27 01:44charts polishI Mean I'm Just Saying9+487-148
2026-05-27 00:49fix stale testI Mean I'm Just Saying1+2-2
2026-05-27 00:42chartsI Mean I'm Just Saying45+3367-4
2026-05-26 22:40per-operation queueI Mean I'm Just Saying20+927-182
2026-05-26 18:44Move export build to deploy pageI Mean I'm Just Saying5+82-33
2026-05-26 16:28add browse mode to see all videos without a searchI Mean I'm Just Saying3+419-280
2026-05-25 23:47one-layer compact mode reverts don't show hits optionI Mean I'm Just Saying4+86-17
2026-05-25 22:41bump changelogI Mean I'm Just Saying1+1-1
2026-05-25 01:43collapsed embedded video view in channel viewI Mean I'm Just Saying3+147-6
2026-05-24 17:31unlisted bucketI Mean I'm Just Saying13+143-19
2026-05-24 06:26Update release cutI Mean I'm Just Saying5+96-5
2026-05-22 22:290.2.0I Mean I'm Just Saying2+2-0
2026-05-22 22:07compact changelogs moreI Mean I'm Just Saying2+23-52
2026-05-22 21:43more collapsible sectionsI Mean I'm Just Saying4+130-10
2026-05-22 20:16Rework export search profilesI Mean I'm Just Saying5+387-38
2026-05-22 19:26relative progress barI Mean I'm Just Saying9+189-90
2026-05-22 17:59fix virtual list gaps by wrapping cards as elementsI Mean I'm Just Saying3+148-231
2026-05-22 17:08fix virtual list gapsI Mean I'm Just Saying1+64-31
2026-05-22 15:18virtual list gapsI Mean I'm Just Saying1+21-12
2026-05-22 15:04virtualize big listsI Mean I'm Just Saying8+614-156
2026-05-22 14:05exclude unavailable videos from actionable/undownloaded countI Mean I'm Just Saying8+114-44
2026-05-22 12:51fix actionable page, make active/jobs badges not redundantI Mean I'm Just Saying5+112-20
2026-05-22 11:59global actionable pageI Mean I'm Just Saying10+838-2
2026-05-22 03:37fix audio integrity checker and search matchesI Mean I'm Just Saying5+74-7
2026-05-21 19:42layered search improvementsI Mean I'm Just Saying7+298-11
2026-05-21 00:54Update buildIndex to stream and avoid OOMI Mean I'm Just Saying3+202-133
2026-05-20 23:54fix unchecked audio integrity downloadsI Mean I'm Just Saying4+138-14
2026-05-20 22:51Layered searchI Mean I'm Just Saying14+2979-743
2026-05-20 15:59Style changesI Mean I'm Just Saying3+18-3
2026-05-20 15:04Fix channel / video pipeline id collisions that broke menu navI Mean I'm Just Saying2+2-1
2026-05-20 14:29Fix false-negative audio integrity checksI Mean I'm Just Saying3+56-18
2026-05-20 03:07Release/deploy UII Mean I'm Just Saying12+424-17
2026-05-20 02:18Remove extra CHANGELOG textsI Mean I'm Just Saying2+0-10
2026-05-20 01:58Changelog UII Mean I'm Just Saying14+417-3
2026-05-20 01:33Sync all toggle, sorting, and CHANGELOGsI Mean I'm Just Saying10+564-118
2026-05-20 00:32more UI improvementsI Mean I'm Just Saying8+426-156
2026-05-19 21:20Active jobs UII Mean I'm Just Saying4+202-0
2026-05-19 16:02Fix category change stale invalidationI Mean I'm Just Saying1+32-2
2026-05-19 06:02New filter url handlingI Mean I'm Just Saying3+244-0
2026-05-19 05:43editor redesignI Mean I'm Just Saying8+1276-14
2026-05-19 04:19transcode failure handlingI Mean I'm Just Saying7+178-19
2026-05-19 03:45export UI for live chats part 2I Mean I'm Just Saying16+1123-179
2026-05-19 02:10live chat video UII Mean I'm Just Saying4+180-14
2026-05-19 01:28bump subs schema versionI Mean I'm Just Saying2+18-1
2026-05-19 00:33settings.json.exampleI Mean I'm Just Saying2+3-0
2026-05-19 00:31settings.jsonI Mean I'm Just Saying1+1-1
2026-05-19 00:30Export live chatI Mean I'm Just Saying9+799-11
2026-05-18 23:56defer search after filter/regex changesI Mean I'm Just Saying2+75-0
2026-05-18 23:39Polish on the export app post-Chrissie MayrI Mean I'm Just Saying21+1419-28
2026-05-18 16:22.part bucket and resume, fix INVALID_STATEI Mean I'm Just Saying12+467-52
2026-05-18 13:29retry pipelinesI Mean I'm Just Saying32+1485-274
2026-05-17 16:15Fix filename issueI Mean I'm Just Saying3+50-2
2026-05-17 15:44odysee handling part 1I Mean I'm Just Saying10+141-133
2026-05-17 02:46smart odysee pipelineI Mean I'm Just Saying15+1778-33
2026-05-17 01:20QOL: sync all, JSON preview, managed DL sleepI Mean I'm Just Saying16+526-27
2026-05-16 19:10untranscribable tweaksI Mean I'm Just Saying4+65-8
2026-05-16 03:21remove channel-level cookiesFromBrowserI Mean I'm Just Saying7+17-27
2026-05-16 03:09rework dl to be managedI Mean I'm Just Saying11+956-138
2026-05-15 23:31toggle channels in editorI Mean I'm Just Saying12+190-8
2026-05-15 02:09subs, delete filterI Mean I'm Just Saying24+1508-22
2026-05-12 18:06various fixesI Mean I'm Just Saying34+1356-232
2026-05-12 03:06tweak design for testsI Mean I'm Just Saying1+2-3
2026-05-12 01:06fix layout flipI Mean I'm Just Saying3+206-111
2026-05-12 00:59Rethink UII Mean I'm Just Saying8+290-154
2026-05-11 03:23Add availability and fix reports OOMI Mean I'm Just Saying27+1076-62
2026-05-11 01:57Redo UII Mean I'm Just Saying43+4003-1017
2026-05-06 20:25Make page loading more efficientI Mean I'm Just Saying38+1519-1254
2026-05-05 22:59hybrid channel improvementsI Mean I'm Just Saying19+548-152
2026-05-04 21:52All channels toggleI Mean I'm Just Saying1+32-0
2026-05-03 20:46even more editor featuresI Mean I'm Just Saying27+772-181
2026-05-02 13:35more editor featuresI Mean I'm Just Saying48+2885-262
2026-04-28 04:56chore(editor): drop cypress, finalise playwright migrationI Mean I'm Just Saying35+251-1575
2026-04-28 04:53test(editor): migrate jobs and queue specs to playwrightI Mean I'm Just Saying18+240-286
2026-04-28 04:45test(editor): migrate action specs to playwrightI Mean I'm Just Saying20+312-324
2026-04-28 04:39test(editor): migrate read-only specs to playwrightI Mean I'm Just Saying19+328-346
2026-04-28 04:30chore(editor): scaffold playwright alongside cypressI Mean I'm Just Saying6+165-5
2026-04-28 03:54feat(editor): named job queues with sequential pipelinesI Mean I'm Just Saying21+748-213
2026-04-28 03:35feat(editor): show originating channel on jobs and auto-refresh the jobs listI Mean I'm Just Saying9+119-2
2026-04-28 03:31feat(editor): show playlist and archive counts on channel listI Mean I'm Just Saying6+127-9
2026-04-28 03:29feat(editor): hide system paths from dashboard, collapse on settingsI Mean I'm Just Saying3+44-26
2026-04-28 03:23feat(editor): use site/header title from settings.json for editor layoutI Mean I'm Just Saying3+66-13
2026-04-28 03:16fix(ytdlp): treat exit code 101 as success and update last-sync timestampsI Mean I'm Just Saying5+77-2
2026-04-27 22:33Add -t sleep to transcript download and fix tailwind sourcingI Mean I'm Just Saying3+10-2
2026-04-27 04:30feat(editor): cancel running jobs and fixed-height log boxesI Mean I'm Just Saying10+214-14
2026-04-27 01:57feat(editor): jobs viewer, settings UI, dashboard polishI Mean I'm Just Saying19+898-113
2026-04-27 01:42feat(editor): whisper transcription queue with fake-binary e2e testsI Mean I'm Just Saying11+311-4
2026-04-27 01:30feat(editor): per-channel yt-dlp pipeline with fake-binary e2e testsI Mean I'm Just Saying8+703-4
2026-04-27 01:22feat(editor): build static export from UI with streaming logs and e2e testsI Mean I'm Just Saying10+528-4
2026-04-27 01:08feat(editor): channel list/create/edit/delete UI with e2e testsI Mean I'm Just Saying14+673-5
2026-04-27 00:59feat: add editor app shell and cypress e2e harnessI Mean I'm Just Saying21+1764-16
2026-04-27 00:51refactor: extract index/whisper/verify into common/ controllers with CLI shimsI Mean I'm Just Saying19+1293-718
2026-04-26 23:07refactor: split into pnpm workspace with common/ and export/ packagesI Mean I'm Just Saying56+3302-3184
2026-04-23 00:40Add odysee player and p-limit for scriptsI Mean I'm Just Saying7+99-10
2026-04-21 23:16Use pages for transcriptsI Mean I'm Just Saying5+344-21
2026-04-21 11:38Add Rumble supportI Mean I'm Just Saying10+499-104
2026-04-19 06:38Update packages and tsconfig to fix execaI Mean I'm Just Saying4+229-89
2026-04-18 06:38in-memory data againI Mean I'm Just Saying3+171-31
2026-04-18 06:17CF headersI Mean I'm Just Saying1+3-0
2026-04-18 05:43new READMEI Mean I'm Just Saying1+29-0
2026-04-18 05:16Advanced optionsI Mean I'm Just Saying2+223-16
2026-04-18 04:58overhaul for 10k+ vidsI Mean I'm Just Saying21+1335-283
2026-04-17 02:13optimize for bigger datasetI Mean I'm Just Saying6+141-144
2026-04-16 18:05tweak archive scriptI Mean I'm Just Saying1+6-5
2026-04-16 18:01Bump MAX_HITS and use larger search windowI Mean I'm Just Saying1+69-9
2026-04-16 17:43Add modal control buttons and clipping featureI Mean I'm Just Saying2+315-55
2026-04-16 17:21better URL stateI Mean I'm Just Saying4+191-115
2026-04-16 03:40Use fs-extra more, increase MAX_HITS, sort listI Mean I'm Just Saying5+18-24
2026-04-16 01:42Add multi-channel and video groupingI Mean I'm Just Saying1+92-46
2026-04-15 20:02update archive commentI Mean I'm Just Saying1+2-3
2026-04-15 17:54Initialize the JeralyzerI Mean I'm Just Saying19+2001-88
2026-04-14 20:19Initial commit from Create Next AppI Mean I'm Just Saying20+4374-0