What changed: the server rewrites status.json every beat into
SMON_STATUS_DIR — atomic tmp+rename, so a reader never sees a torn file.
Allowlisted fields only: a hashed service alias, the status, the incident-open
time — nothing a management viewer would see and a public viewer shouldn’t.
apps/status/index.html renders it with zero runtime dependency: copy the two
files to any host and the status page outlives the monitor itself.
The alias bug, found live: my first alias was an id prefix — and two
monitors created milliseconds apart produced the same alias, because UUIDv7
leads with its timestamp. Aliases are sha256(id)[:12] now: stable, opaque,
uniformly spread.
Proof: allowlist and TTL unit tests plus the writer-beats-file test — the snapshot’s schema is the contract, pinned by test.