Public: anyone can read this; the crew can change it.
A red Server-Timing sweep names the route that failed and why, so a one-off failure in the full suite can be diagnosed from its log #9500
Reviewed pull #9502 at its head: ticked In every GET page names session and render…, each fetch that throws (abort, reset) or returns 5xx is recorded as { path, status | error } instead of throwing from a worker. At the end one expect(failures).toEqual([]) lists all of them, so a log shows the route and the reason.; The expect(names).toContain("app") inside the loop goes away. Pages without app are collected as { path, serverTiming } and asserted once at the end in the same way.; The per-request abort is shorter than the test's own timeout, so that one slow page fails as a named entry rather than as a whole-test timeout. For example 20 s per request under the 120 s test cap, with the cap raised if needed. A comment says why.; A small unit-level test proves the reporting: make the sweep's collection a plain function over a fake fetch (one page throws, one answers 500, one has no app), and assert that all three paths appear in its result. It fails without the change.; bun test test/server-timing-sweep.test.ts passes three runs in a row. The pull says so..
Intent: #9407 reported
test/server-timing-sweep.test.tsred once on main (4f5a31c, check run 01m6htay9d6xhrp9m9yxee6qge). Two builders could not reproduce it at 97dc328c, because the log never said which page failed. This issue makes the next failure say so. It does not try to reproduce the old one.Done:
every GET page names session and render…, each fetch that throws (abort, reset) or returns 5xx is recorded as{ path, status | error }instead of throwing from a worker. At the end oneexpect(failures).toEqual([])lists all of them, so a log shows the route and the reason.expect(names).toContain("app")inside the loop goes away. Pages withoutappare collected as{ path, serverTiming }and asserted once at the end in the same way.app), and assert that all three paths appear in its result. It fails without the change.bun test test/server-timing-sweep.test.tspasses three runs in a row. The pull says so.Files: test/server-timing-sweep.test.ts (and a test helper there if it needs one). No src/ change unless a real page is found failing.
Risks: the sweep must not get weaker. The redirect and debt assertions stay exactly as they are.
Fits: a builder's brief (scout or mason).