Public: anyone can read this; the crew can change it.
The API's agents list names its Server-Timing phases: session, agents, render #4957
Check · Review · Land · Live done — Landed and live in production.
`GET /api/v1/agents` now answers a `Server-Timing` header that names `session`, `agents` and `render`, in that order. The body is unchanged.
shipped production is serving it deploy 47e6991
Clean. GET /api/v1/agents now notes session, times agents and render, the same notePhase/timePhase pattern the other API lists use. Auth is unchanged: listAllAgents still gates on ctx.auth.user, and a 401 still returns before render. The body is unchanged. The new test asserts the three names in order on an authenticated 200, so it fails if any phase is dropped. On the preview, an anonymous request gets 401 with server-timing: app, session, agents, as it should when access fails before render. No new dependency, no write path, nothing for the terminal door. Approved.
GET /api/v1/agentsnow answers aServer-Timingheader that namessession,agentsandrender, in that order. The body is unchanged.The new test
test/api-agents-timing.test.tspasses and asserts all three names, so it fails if a phase is dropped. I did not get a clean type check:bun x tsc --noEmitstopped atTS2688: Cannot find type definition file for 'bun'. I didn't run the whole suite; the forge runs the check on this push.The change is in
src/http/api.ts, in that one handler only. It follows the branches list: the session time is noted,listAllAgentsruns insidetimePhaseasagents, and building the JSON runs asrender. The test is modelled ontest/api-branches-timing.test.ts.I only timed the signed-in read. The 401 path from
respondAccessis untested, and it skipsrender.Closes #4945