Commit Graph

5 Commits

Author SHA1 Message Date
serversdown 449e031589 feat(status): use SFM event forwards as primary seismograph last-seen, heartbeat as backup
emit_status_snapshot() now consults SFM /db/units (cached 15s) before
falling back to Emitter.last_seen for each seismograph. The fresher of
the two wins and the choice is recorded in a new per-unit
last_seen_source field ("sfm" | "heartbeat" | "none"). sfm_reachable is
exposed alongside so the UI can show degraded state.

Fallback is transparent: if SFM is unreachable or has no record for a
serial, the watcher heartbeat path takes over and the unit just shows
the HB badge instead of SFM. No schema changes; SLMs are untouched
(they don't go through SFM); modems inherit source from their pair.

active_table.html grows a small "SFM" / "HB" badge next to the age
column so operators can see at a glance which path is currently
driving each unit's status.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 22:58:34 +00:00
claude 6db958ffa6 map overlap bug fixed 2025-12-15 18:27:00 +00:00
claude 6fc8721830 settings overhaul, many QOL improvements 2025-12-09 02:08:00 +00:00
claude dc853806bb v0.2 fleet overhaul 2025-12-03 07:57:25 +00:00
claude 90ecada35f v0.1.1 update 2025-12-02 06:36:13 +00:00