Cockpit.
Right now

Fetch activity

Every fetch attempt, newest first — one row per Source per attempt, and never grouped: each Source is fetched when it comes due, so nothing binds one attempt to another. Read-only: npm run fetch is what adds a row here.
happyhotel · ashby/happyhotel— show all sources

Attempts1 attempt for this source

3h ago19 Aug, 05:50 UTChappyhotel ashby/happyhotel17 postingsok▸ response

Outstanding parser defects

Postings that fetched fine and failed a hard Job invariant. Current defects, not history: a row disappears the moment its posting normalizes, so this count falls to zero when the parser is fixed. Across every Source, whatever the log above is filtered to.

No outstanding rejects — every posting on file normalizes.

Reading it: ok shows the postings that came back, 0 included; http_error carries its status, so a 404 reads as a dead board token; network never has a body to inspect, because nothing arrived; parse_error keeps the body that broke — the case the viewer exists for. An internal_error — our own failure mid-fetch — is never stored: it rolls back with its row, so it cannot appear here at all.