Seventh slice.
Gap: the sanitized status existed only as the separate static app; inside the dashboard there was nothing for a viewer without the token.
What changed: GET /status.json serves the same sanitized artifact
unmodified — mounted outside /api, no token, hashed service aliases — and
/status renders it in the app’s own components. The expiry contract is
preserved end-to-end: stale or missing reads “monitoring unavailable” with the
last-seen evidence, never fabricated rows and never “all down”. The artifact
IS the contract — the page doesn’t re-derive status from management data.
Proof: three Playwright specs — a live snapshot renders its rows, the stale-doctor fixture flips the verdict to “monitoring unavailable” while rows stay as stale evidence, and a missing file yields the same verdict with no rows at all.