Archilyzer · Source

archilyzer

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

commit 6a141cc31237ae91790d7164ab208715c64e4492
parent 78c1ab1894b46557299653a8bd2be1217b8856f7
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Fri, 25 Sep 2026 20:15:37 -0400

plans: release 9 slice C1b as shipped — Title Case, no subtitles, no card descriptions, bare Ko-fi on hub + homepage; gates + CHANGELOG

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

Diffstat:
Meditor/CHANGELOG.md | 1+
Mplans/release-9.md | 78++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 79 insertions(+), 0 deletions(-)

diff --git a/editor/CHANGELOG.md b/editor/CHANGELOG.md @@ -1,6 +1,7 @@ # Changelog ## [Unreleased] +- **The hub and the homepage drop their subtitles, and both carry a Ko-fi link.** The headings are in Title Case on both pages: **Official Instances**, **Archives You Added** (hub) and **What It Does** (homepage). The line "The archives I run. Anyone can run their own." is gone from both, and the official-instance cards no longer show the site's description under its name; the four figures stay. The footer of the homepage and of the hub has a plain link reading "Ko-fi" to `https://ko-fi.com/archilyzer`. A published site's footer does not: an archive someone else hosts never carries it. Needs a rebuild and deploy of the hub and the homepage. - **A job that waited in a queue no longer ends `failed` after doing its work.** A sync, download or other job queued behind another on the same platform ran its final page refresh outside any request, where Next refuses it, so the job read `failed` and `pnpm ops … --wait` exited 1 even though the work was done (the teamrcn sync on 2026-09-25). The refresh is now skipped there with one warning in the server log; the pages re-read disk on their next load anyway. - **Downloads no longer sleep after a video the download filter declined.** The "sleep between downloads" (30 s by default) ran after every video, including each one the channel's download filter declined before fetching anything. A filtered channel's download-missing slept 193 times for 14 downloads on 2026-09-25. It still sleeps after every real fetch and after every failure, per-video ones included. - **YouTube requests are paced at one per second.** Every yt-dlp run against YouTube now carries `--sleep-requests 1`, as Rumble's already did: the 429 investigation found YouTube had no request-level pacing at all. A channel's own `ytdlpExtraArgs` still wins, because it comes after. diff --git a/plans/release-9.md b/plans/release-9.md @@ -376,6 +376,84 @@ Bonnellyzer 2, Hasanalyzer 3, Rekietalyzer 0 — identical before and after on t left as a fetch so the e2e can stub it. - The chart-3 change repaints the homepage's third instance too; it needs a homepage rebuild to show. +### Slice C1b, as shipped — copy rulings + Ko-fi link (2026-09-25) + +Branch `one-core/c1b-hub-copy` off `main` `6820bd21`. **The operator's rulings (2026-09-25), amending +C1:** Title Case on the h2 headings of the hub shelf and the homepage, so the two pages share one style; +no subtitle where the title implies it ("The archives I run. Anyone can run their own." removed on +both); no per-site description on the official-instance cards (hub and homepage), the four figures +stay; a bare `Ko-fi` link, no copy, on the project's own surfaces only. The hub's H1 and its paragraph +and the homepage's hero paragraph stay (they are not subtitles). C2's files (`SearchDataContext`, +`SearchResults`, `SearchSessionContext`, `siteRegistry`, `HubHome`, `HubStats`, the `ask-grounding` / +`federation` / `ask` hub specs) were not touched. + +**Copy, final:** +- Hub (`ArchiveShelf.tsx`): h2 **Official Instances** (no paragraph under it; the grid's top margin + moved onto the h2), h2 **Archives You Added**. The card is title (+ Remove on an added archive), then + the figures and the `Installable`/`Data-only` badge; `siteDescription` is no longer read. + `AddArchive.tsx`'s comment names the new heading. +- Homepage (`page.tsx`, `ArchiveCards.tsx`): h2 **Official Instances** (no paragraph), h2 **What It + Does**; the card is title then figures. The page's copy-rule comment now says so. +- `FamilyStats`' cell label "Official instances" is a stat label, not a heading, and stays in the + strip's sentence case (like "Hours of speech"); not in the ruling. + +**Ko-fi.** `KOFI_URL = "https://ko-fi.com/archilyzer"` beside `PROJECT_URL` in `common/lib/project.ts`. +Export footer (`export/app/components/Footer.tsx`): `<a target="_blank" rel="noopener noreferrer">Ko-fi</a>` +in the "Built with Archilyzer" row, rendered **only when `instanceMode() === "hub"`** — a site build +shows nothing. Homepage footer (`homepage/app/components/Footer.tsx`): the homepage has no "Built with" +row, so the link sits in the **Elsewhere** column under the social icons; that column now always +renders (it was gated on social links), the icon row only when links are set. + +**Layout without the description** (built hub served statically with the primary's `hub-sites.json` + +`hub-summary.json` stubbed in; built homepage with the primary's `homepage/public` data), 1280 and 390, +dark: the cards shorten by the description line; the figures stay aligned across a row (`mt-auto` on +the figure block unchanged), and at 390 each card is title, figures, badge with no gap. Shots: +`$T/c1b-hub-1280.png`, `$T/c1b-hub-390.png`, `$T/c1b-homepage-1280.png`, `$T/c1b-homepage-390.png`. + +**Changed locators:** `e2e-hub/official-instances.spec.ts` — `heading {level: 2, name: "Official +instances"}` → `{level: 2, name: "Official Instances", exact: true}`; the card's `toContainText("Every +word the member said.")` → `not.toContainText(…)` (the stub still carries a description, so the +absence is proved); `getByText("The archives I run")` count 0; `heading "Archives you added"` → +`"Archives You Added"`; new test "the hub footer carries a bare Ko-fi link" (href `KOFI_URL`, +`_blank`, `noopener noreferrer`, text exactly `Ko-fi`). `homepage/e2e/marketing.spec.ts` — `heading +"Official instances"` → `{level: 2, name: "Official Instances", exact: true}` + "The archives I run" +count 0; new "the headings after the H1 are in Title Case" (`What It Does`, exact) and "the footer +carries a bare Ko-fi link". `export/e2e/site-branding.spec.ts` — new "a site build carries no Ko-fi +link" (no link named Ko-fi, no `a[href=KOFI_URL]`). **Left unchanged deliberately:** +`e2e-hub/federation.spec.ts:151` `heading {level: 2, name: "Archives you added"}` (C2's file) — a +Playwright role name without `exact` is a case-insensitive substring, so it matches "Archives You +Added" and passes (it did: e2e:hub 12/12); C2 or a later slice may make it exact. Its test title still +says "Archives you added" (a string, not a locator). + +| sha | what | +|---|---| +| `764f770e` | `common/lib/project.ts` `KOFI_URL`; Ko-fi in the hub footer (hub only) and the homepage footer's Elsewhere column | +| `0e9192e9` | Title Case h2s, the "archives I run" line removed, no description on the official cards — hub `ArchiveShelf` (+ `AddArchive` comment), homepage `page.tsx` + `ArchiveCards` | +| `35aafad3` | the spec locators above; Ko-fi specs (hub, homepage, site-mode absence) | + +**Gates** (on `35aafad3`): tsc clean (per commit). Common tests **1,845/1,845**. `pnpm --filter export +exec next build` (site) ok; `compose:hub` (worktree, no corpus: "0 built-in pool site(s) …; +hub-summary.json skipped") + `INSTANCE_MODE=hub … next build` ok (the known Turbopack warning) — the +seven compose-hub outputs in `export/public` swapped for copies before and relinked after, primary's +files untouched (`hub-sites.json` / `hub-summary.json` still 19:42); the built hub `index.html` carries +the Ko-fi anchor. `pnpm --filter homepage exec next build` ok. e2e, queued (no wait): **`e2e:hub` 12 +passed** (11 + 1), 45 s; export `site-branding.spec.ts theme.spec.ts` **8 passed**, 26 s; **homepage +suite 24 passed**, 57 s, with the Official Instances branch exercised (summary present). Editor build, +editor unit, test:scripts and mcp not run: nothing they build or test changed beyond a new constant in +`common/lib/project.ts`, which tsc covers. **Numbers tools: none.** + +**Found and left:** +- **Homepage worktree data must be COPIED, not symlinked.** `homepage/app/lib/snapshot.ts` reads + `public/downloads/snapshot.json` at build, and Turbopack refuses a symlink that leaves the project + root ("Symlink … is invalid, it points out of the filesystem root"). The four gitignored entries + (`channel-sites.json`, `downloads/`, `homepage-summary.json`, `stats/`; ~60 MB) were copied from the + primary. `export/public`'s per-path links work only because nothing there is imported at build. + Worth a line in FACTS / WORKTREES.md. +- The homepage lists instances in the summary's order (Jeralyzer first), the hub in `hub-sites.json` + order (Anilyzer first); the colours agree per site. Pre-existing (C1), not a ruling. +- Needs a rebuild + deploy of the hub AND the homepage; this slice did not run build-hub, deploy-hub + or deploy homepage. + ## Rollout ## Rollout 2026-09-25 (evening) — `0213f6c8` live on :3001 (third restart of the day)