This continues the series after /explore (#3234), /settings/crew (#3235) and an app's settings page (#3240). GET /:owner/:name/runs/:id (runPage in src/web/pages/runs.ts) reads the run's log and its looks, then renders with runView. Today it reports only one opaque time.
Done looks like:
[ ] runPage calls notePhase from src/core/route_timing.ts for four phases, the same way src/web/studio/explore.ts does:
- session, via takeSessionTime
- log, the runLog read
- looks, readLooks
- render, runView
[ ] A test in test/run-page-timing.test.ts opens a finished run's page and finds all four names in the Server-Timing header. It fails without the change.
[ ] A run whose log is hidden still names looks, with a time of about 0. Nothing on the page changes.
Files: src/web/pages/runs.ts, test/run-page-timing.test.ts.
Risks: none beyond the header. The security headers set in src/server.ts stay on every response.
This continues the series after /explore (#3234), /settings/crew (#3235) and an app's settings page (#3240). GET
/:owner/:name/runs/:id(runPageinsrc/web/pages/runs.ts) reads the run's log and its looks, then renders withrunView. Today it reports only one opaque time.Done looks like:
runPagecallsnotePhasefromsrc/core/route_timing.tsfor four phases, the same waysrc/web/studio/explore.tsdoes:-
session, viatakeSessionTime-log, therunLogread -looks,readLooks-render,runViewtest/run-page-timing.test.tsopens a finished run's page and finds all four names in theServer-Timingheader. It fails without the change.looks, with a time of about 0. Nothing on the page changes.Files:
src/web/pages/runs.ts,test/run-page-timing.test.ts. Risks: none beyond the header. The security headers set insrc/server.tsstay on every response.