status_api (/api/status via the 5022 read-only turnstile) merged with
generator maintenance tags / PM bookings in master_config.json. This is a static pull, not a live-refreshing page —
regenerate it to pick up changes since the timestamp above.apps/generators/pm_service.py —
overdue = past due date; due = ≤7 days or ≤150 engine-hours out; upcoming ("due soon") = ≤21 days
out; no data = anchored with no engine-hour reading from either feed, or the gen has never been seeded from a Mesa
schedule (currently true for most/all Texas pods — ND-only seed source per CLAUDE.md). A gen box with no chip and a
green edge is running with nothing flagged.active-swap (still running, swap scheduled) and swap (pulled, being swapped)
— the same grouping the status-page map uses for "planned out" gens.master_config.json → Spares → "Available Spares"
— currently 0 units shown there. That bucket is hand-maintained, not a live feed, so a
"not avail" reading may just mean nobody moved a spare into it recently rather than there being no physical spare —
verify with dispatch before treating it as ground truth.