- LCP/TTFB/TBT: read from statistics.googleWebVitals (flat median values)
- FCP: statistics.timings.paintTiming['first-contentful-paint']
- pageTimings: nested under statistics.timings.pageTimings, not at root
- Remove PerceptualSpeedIndex (not present in this sitespeed version)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- runner.js: console.log outputFolder, sitespeed INFO lines, and
find output after test so everything appears in docker logs
- parser.js: switch walker from withFileTypes to stat (more reliable
on Docker volumes); log every directory visited
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- parser.js: log found files, top-level JSON keys, and extracted
metric values to stdout (visible via docker logs speedboard)
- runner.js: add --sustainable.useGreenWebHostingAPI flag
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
All metric paths were wrong. Corrected based on browsertimeAggregator.js
and axeAggregator.js source:
- pageTimings (load, FE/BE, DOM) live at statistics.pageTimings.* not
statistics.timings.pageTimings.*
- FCP is statistics.paintTiming['first-contentful-paint'].median
- CLS is statistics.pageinfo.cumulativeLayoutShift.median
- TBT/FID/tasks are under statistics.cpu.longTasks.*
- Axe data is in axe.pageSummary.json (violations.*.median), not
in the browsertime file under accessibility.summary.*
- sustainable pageSummary has co2PerPageView/FirstParty/ThirdParty.median
(no totalCO2 at per-URL level)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
sitespeed.io web UI with Express/Pug/SQLite — port 3132.
Includes job queue, SSE live log, full metrics dashboard,
site history, CO2/axe/CWV sections, and Docker support.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>