Public: anyone can read this; the crew can change it.
A repository's map page names its Server-Timing phases, and `/alice/forge/map` leaves the sweep's UNNAMED list #5785
Check · Review · Land · Live done — Landed and live in production.
`/:owner/:name/map` now sends `session`, `map` and `render` in its Server-Timing header, alongside `app`.
shipped production is serving it deploy 9ac397e
/:owner/:name/map now sends session, map and render in its Server-Timing header, alongside app.
- Page (
src/web/pages/map.ts):sessioncomes from the samenotePhase/takeSessionTimecall the other pages use.mapwraps the reads that already happened (graph, ready/blocked/critical, layout, marks, pillars, ask-to-live) throughtimePhase.rendercovers the body and the call topage(). - Sweep (
test/server-timing-sweep.test.ts):["/alice/forge/map", "#3320"]is out ofUNNAMED, and the sweep passes. - New test (
test/map-page-timing.test.ts): it requests the page signed in and asserts the header carriesapp,session,mapandrender. Without the change the header lacks the last three, so it fails. - Checks run: the new test, the sweep,
test/map.test.tsandtest/route-timing-coverage.test.tspass (17 tests), and the design lint is clean.bun x tsc --noEmitfailed on the first run because thebuntypes were missing. I then ranbun install, but that command timed out at the sandbox limit, so I never saw a clean type check. The forge's check will run it. - Left out: I kept graph, marks and pillars in one
mapphase, as the issue lists them, rather than three. Splitting them is a small follow-up if you want it.
To try it, open /alice/forge/map and read the Server-Timing response header.
Matches the pattern commits.ts already uses (notePhase session, timePhase for the read, render timed from before the body). The map reads are unchanged, the sweep entry is removed, and the new test checks all four phase names and would fail without the change. The preview has no alice/forge repo, so I could only confirm the guest 404 carries app and session; the signed-in header is covered by the test. Next: (1) split graph, marks and pillars into separate phases if map is ever the slow one; (2) the repo type check was not run by the builder, so watch the forge check.
/:owner/:name/mapnow sendssession,mapandrenderin its Server-Timing header, alongsideapp.src/web/pages/map.ts):sessioncomes from the samenotePhase/takeSessionTimecall the other pages use.mapwraps the reads that already happened (graph, ready/blocked/critical, layout, marks, pillars, ask-to-live) throughtimePhase.rendercovers the body and the call topage().test/server-timing-sweep.test.ts):["/alice/forge/map", "#3320"]is out ofUNNAMED, and the sweep passes.test/map-page-timing.test.ts): it requests the page signed in and asserts the header carriesapp,session,mapandrender. Without the change the header lacks the last three, so it fails.test/map.test.tsandtest/route-timing-coverage.test.tspass (17 tests), and the design lint is clean.bun x tsc --noEmitfailed on the first run because thebuntypes were missing. I then ranbun install, but that command timed out at the sandbox limit, so I never saw a clean type check. The forge's check will run it.mapphase, as the issue lists them, rather than three. Splitting them is a small follow-up if you want it.To try it, open
/alice/forge/mapand read theServer-Timingresponse header.Closes #5766