Repository navigation
Conversation
…garage /perf was a name that described a category rather than a thing. A dyno tells you what an engine actually puts down, which is exactly what the page does: it straps the site to the rollers once a night and records a pull. And it belongs on the garage shelf with the other instruments rather than off on its own under status. - /garage/dyno + /garage/dyno.json, worker-rendered; an exact ROUTES entry beats the /garage/<page> PREFIX, so no static file is involved. - /perf and /perf.json 301 to them. The old names lived about an hour, so the redirects are not for humans: `agents: true` publishes a surface into the MCP resources projection and _headers caches the well-known cards for 30 days, so an agent can hold the old path long after a deploy could purge it. - section garage, kind content, gallery + sitemap on, so it appears on the garage shelf, in the garage Run sub-palette (19 entries now), and in the sitemap. No understanding check: like /lens it is an instrument rather than an explainer, and check-page-contracts only walks HTML on disk. - Copy leans on the metaphor where the metaphor is honest. "Recent pulls", and the footnote about why sampled figures are absent now ends "a dyno with a wandering needle is a decoration." TWO THINGS THIS TURNED UP, both worth more than the rename. run_worker_first has a HARD CEILING OF 100 RULES and this repo is at exactly 100 unique. Adding /garage/dyno and /garage/dyno.json took it to 102 and wrangler refused to boot: "Too many `run_worker_first` rules were provided". Neither `npm run build` nor `wrangler deploy --dry-run` catches it; the route harness does, because it starts a real Worker. The two entries turned out to be redundant anyway (/garage/* already covers them), so this ships at 100. The next person to add a worker-first path has no headroom, and the list carries 7 duplicate entries that wrangler dedupes away rather than spends. And the rename shipped a ReferenceError past a green test suite. `renderPerf` was renamed at its declaration but not at its one call site inside handleDyno. The contract tests import and call renderDyno DIRECTLY, so all 200 passed while the actual route 500'd. The route oracle caught it. A test that exercises a function is not a test that exercises the handler wiring it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
aadhar-sh | 4fbe2b4 | Aug 08 2026, 10:02 PM |
Contributor
Wire-size diff vs merge base
Brotli q11, the quality the edge serves. Every number here is deterministic: Client assetsTotal Brotli: 58.02 KiB → 58.02 KiB (+0.00 KiB, +0.0%) across 11 files, 1 changed.
PagesTotal Brotli: 470.35 KiB → 470.59 KiB (+0.24 KiB, +0.1%) across 46 files, 39 changed.
Plus 38 files under the 0.13 KiB floor, net -0.01 KiB — usually content-hash churn in Worker bundle266.33 KiB → 266.64 KiB gzip (+0.31 KiB, +0.1%) Largest module deltas (raw bytes in bundle):
Dictionary deltas (
|
oddharsh
added a commit
that referenced
this pull request
Aug 9, 2026
…rnoon (#296) Two releases shipped unlogged (Dyno at #295, the lens docs fix at #288), so /updates still names v179 as the running build while describing /perf, a path that now redirects. This stages the entry that covers both. It also records two findings from that work in CLAUDE.md, because neither is derivable from the tree and both cost real time: 26. `run_worker_first` caps at 100 rules and this repo sits at exactly 100. Adding two took it to 102 and wrangler refused to boot. Neither `npm run build` nor `wrangler deploy --dry-run` catches it, because parseStaticRouting runs at session creation; `npm run routes:check` does, because createTestHarness() starts a real Worker. That is a second reason the route oracle earns its keep. The note also says why deduping buys nothing (7 duplicates, wrangler counts the 100 unique) and to check the existing wildcards before adding a rule, which is how the Dyno change shipped at 100 instead of 102. 27. A red `github-advanced-security` check is usually GitHub's Copilot Autofix failing on its own infrastructure. Seen twice on 2026-08-08 across two unrelated PRs, both with CodeQL green. The signature is an empty output title plus an annotation pointing at `.github:<line>`, which is a directory and cannot have one. Read the sibling CodeQL check before touching code; it is not a required check and both PRs merged and shipped with it red. Co-authored-by: Aadharsh Pannirselvam <19518661+oddharsh@users.noreply.github.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
oddharsh
added a commit
that referenced
this pull request
Aug 24, 2026
The index was roughly reverse-chronological and had drifted far enough to be noticeable: octane (07-31) sat fifteenth, compression (07-27) sat second, and the two cards added today landed sixth and seventh. All 23 cards are now sorted on the `added` date each one already carries, with ties keeping their prior relative order. Two cards had no meta line at all, so nothing could place them. Their dates come from git (useragent #504 on 2026-08-21, dyno #295 on 2026-08-08) and their shape lines match the format every other card uses. The reorder is content-preserving: 23 cards before and after, and only the two that gained a meta block differ. The section feed is generated from sitemap lastmod rather than from this list, so /garage/feed.xml is untouched.
oddharsh
added a commit
that referenced
this pull request
Aug 24, 2026
The index was roughly reverse-chronological and had drifted far enough to be noticeable: octane (07-31) sat fifteenth, compression (07-27) sat second, and the two cards added today landed sixth and seventh. All 23 cards are now sorted on the `added` date each one already carries, with ties keeping their prior relative order. Two cards had no meta line at all, so nothing could place them. Their dates come from git (useragent #504 on 2026-08-21, dyno #295 on 2026-08-08) and their shape lines match the format every other card uses. The reorder is content-preserving: 23 cards before and after, and only the two that gained a meta block differ. The section feed is generated from sitemap lastmod rather than from this list, so /garage/feed.xml is untouched. Co-authored-by: Aadharsh Pannirselvam <19518661+oddharsh@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
/perfnamed a category. Dyno names the thing: a dyno tells you what an engine actually puts down, which is exactly what the page does. It straps the site to the rollers once a night and records a pull. And it belongs on the garage shelf with the other instruments.The change
/garage/dyno+/garage/dyno.json, worker-rendered. An exactROUTESentry beats the/garage/<page>PREFIX, so no static file is involved./perfand/perf.json301 to them. The old names lived about an hour, so the redirects aren't for humans:agents: truepublishes a surface into the MCP resources projection, and_headerscaches the well-known cards for 30 days, so an agent can hold the old path long after a deploy could purge it.section: garage,kind: content,gallery+sitemapon. It now appears on the garage shelf, in the garage Run sub-palette (19 entries), and in the sitemap. The Explorer chrome nests it properly:aadhar.sh › Garage › Dyno, with "Up to Garage" in the task pane./lensit's an instrument rather than an explainer, andcheck-page-contractsonly walks HTML on disk.Two things this turned up, both bigger than the rename
run_worker_firsthas a hard ceiling of 100 rules, and we're at exactly 100Adding two paths took it to 102 and wrangler refused to boot:
Neither
npm run buildnorwrangler deploy --dry-runcatches this. The route harness does, because it starts a real Worker. The two entries turned out to be redundant anyway (/garage/*already covers them), so this ships at 100 unchanged.The next person to add a worker-first path has zero headroom. The list also carries 7 duplicate entries (
/garage/*,/garage,/lens,/lens/,/photos,/photos/,/rn.mdeach appear twice) which wrangler dedupes away rather than spends — so deduping buys nothing, and real headroom needs consolidation onto wildcards. Flagging rather than fixing here; it deserves its own change.The rename shipped a
ReferenceErrorpast a green test suiterenderPerfgot renamed at its declaration but not at its one call site insidehandleDyno:All 200 contract tests passed, because they import and call
renderDynodirectly and never go through the handler./garage/dyno.jsonreturned 200 the whole time; only the HTML route 500'd. The route oracle caught it.A test that exercises a function is not a test that exercises the wiring around it.
Verification
npm run routes:check— 122 routes, 0 hard failures, including/garage/dyno200,/garage/dyno.json200, and both old paths 301npm test200 pass ·npm run buildinvariants ok ·typecheck·pages:check·perf-budgetgreen🤖 Generated with Claude Code