Repository navigation
Conversation
Horizon is the one Garage page that keeps moving: it was swept on 2026-10-30 and now tracks 166 features, but its card sat 28th of 29, sorted by its 2026-05-29 start date, and still described the three features it opened with. The card moves to the top of the one shelf (prose-fold splits only a single ul.shelf, so a second pinned list would turn the fold off), says it's pinned, and describes the page as it stands.
pauseBelowFirstScreen collapsed whitespace one HTMLRewriter text chunk at a time, so a run of spaces split at a tag counted once per side. Its test collapses the page's text as a whole, and the two disagreed by enough that /garage/compression's pause sat at 2,983 visible characters, under the 3,000 threshold, once the page's h1 changed. The counter now carries whether the last character was a space across chunks, and skips script, style and template text by depth instead of subtracting it after. Across all 45 garage and lwe pages, only compression's pause moves, one block later. contract-long-pages-pause-below-the-screen fails on the old counter with the retitled pages and passes on this one; the parser-pause-before-the-first-fold control still reads CAUGHT.
Every Garage page carried up to three titles (the manifest's, the shelf card's, the page's own), and most were fragments: "Half the light", "There and back", "Octane, priced against no framework". Each page now has one title, written to the same rules houseguest holds a PR title to: one plain statement with a verb, concrete nouns from the page, no comma, colon, parenthetical or ", not X" clause, 11 words at most. All 29 pass houseguest's title.sh against that profile; the old ones fail it. The title lands in site-manifest.json, the Garage specs (regenerated), the hand-written pages' <title>, og:title and h1 (badges kept), the shelf card, dyno's built document and the round-trip hand twin. The route oracle's /mcp row looked for <h1>Horizon and now looks for the new h1.
Wire-size diff vs merge base
Brotli q11, the quality the edge serves. Every number here is deterministic: Client assetsNo change. 40 files, 245.02 KiB Brotli total. PagesTotal Brotli: 720.36 KiB → 720.79 KiB (+0.43 KiB, +0.1%) across 77 files, 30 changed.
Plus 29 files under the 0.13 KiB floor, net +0.26 KiB — usually content-hash churn in Worker bundle299.54 KiB → 299.86 KiB gzip (+0.32 KiB, +0.1%) Largest module deltas (raw bytes in bundle):
Dictionary transportFamily dictionary acquisition: no change, 14.50 KiB q11.
Head tags vs merge baseWhat search engines and link-preview bots read off each built page: the oracle's status, title, description, canonical, robots,
|
pages:check now reads each /garage/* title from site-manifest.json and refuses a comma, semicolon, colon, parenthetical, quotation mark, instead-of contrast, em dash, trailing period or a title over 11 words. It also fails a hand-written page whose h1 or <title> disagrees with the manifest, so a page keeps one title. The rules are houseguest's PR-title rules; pipelines/garage/README.md has them under "Titles". Controls: garage-title-goes-back-to-a-fragment plants "Ranges, chunk by chunk" in the manifest, and garage-h1-drifts-from-its-title puts /garage/wire's old h1 back. Both read CAUGHT.
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
aadhar-sh | 8fa5759 | Commit Preview URL Branch Preview URL |
Nov 11 2026, 04:08 PM |
The title rule walked the manifest with typeof checks and an untyped array, which added 3 errors to the tools program and tripped the anti-slop lint. site-manifest.json is a flat surfaces list that gen-manifest.ts already reads, so the rule filters that instead.
Horizon is the one Garage page that keeps moving: it was swept on 2026-10-30 and now tracks 166 features, but its card sat 28th of 29, sorted by its 2026-05-29 start date, and still described the three features it opened with. The card moves to the top of the one shelf (prose-fold splits only a single ul.shelf, so a second pinned list would turn the fold off), says it's pinned, and describes the page as it stands.
… into claude/garage-retitle # Conflicts: # config/derivations.json # config/derivations.lock.json # src/pages/garage/index.html
# Conflicts: # src/pages/garage/index.html
# Conflicts: # pipelines/garage/specs/hidden-flags.json # pipelines/garage/specs/useragent.json
# Conflicts: # pipelines/garage/specs/octane.json # pipelines/garage/specs/round-trip.json
# Conflicts: # pipelines/garage/specs/hidden-flags.json # pipelines/garage/specs/octane.json # pipelines/garage/specs/pqc.json # pipelines/garage/specs/resample.json # pipelines/garage/specs/typed-config.json # pipelines/garage/specs/useragent.json # src/pages/garage/octane.html
Every Garage page carried up to three titles: the manifest's, the shelf card's and the page's own. Most were fragments ("Half the light", "There and back", "Octane, priced against no framework"). Each page now has one title that states what it found, held to the rules houseguest holds a PR title to (
references/pr-copy.md, "The title"): one plain statement with a verb, concrete nouns from the page, no comma, colon, parenthetical or ", not X" clause, 11 words at most.All 29 pass
title.sh --statsagainst that profile. As a control, the old comma titles fail it. It can't see a verbless fragment ("Half the light" passes), so those were judged by hand.Stacked on #1621, which moves the horizon card this PR retitles.
/garage/horizon/garage/ranges/garage/round-trip/garage/av2/garage/dictionary/garage/htmx/garage/typed-config/garage/hidden-flags/garage/useragent/garage/dyno/garage/octane/garage/compression/garage/pqc/garage/gpt56/garage/blueprint/garage/wire/garage/workers/garage/iroh/garage/teardown/garage/masonry/garage/safari27/garage/cloudflare/garage/resample/garage/ig-prep/garage/encoding/garage/pretext/garage/chunks/garage/scroll/garage/tooltipsThe title lands in
site-manifest.json, the 12 Garage specs (regenerated), the hand-written pages'<title>,og:titleand h1 (badges kept), the shelf card, dyno's built document and the round-trip hand twin. The route oracle's/mcprow looked for<h1>Horizonand now looks for the new h1. The OG cards carry no title text, so none need rebaking.The rule stays.
pages:checknow holds every/garage/*title insite-manifest.jsonto the same rules, and fails a hand-written page whose h1 or<title>disagrees with it, so a page keeps one title.pipelines/garage/README.mdgains a "Titles" section. Two new controls,garage-title-goes-back-to-a-fragmentandgarage-h1-drifts-from-its-title, both read CAUGHT.The pause counter fix, which the retitle exposed.
pauseBelowFirstScreencollapsed whitespace one text chunk at a time, so a space split at a tag counted twice. Its test collapses the page as a whole. With compression's new h1 the two landed on opposite sides of the 3,000-character line, the build at 3,000 or more and the test at 2,983. The counter now collapses across chunks and skips script, style and template text by depth. Of the 45 garage and lwe pages, only compression's pause moves, one block later. The pause test fails on the old counter and passes on the new one; theparser-pause-before-the-first-foldcontrol still reads CAUGHT.Checks: build,
routes:check(380 routes, 0 hard failures),derive:check(6 fresh;shell/desktoprelocked aftergen:shell),check:fast(1,775 pass).