Truth strip (#232) follow-ups: dedup undercount, stale-min build arg, sticky tier, per-system STT #254

Open
opened 2026-10-05 02:38:40 -04:00 by logan · 0 comments
Owner

Follow-ups found reviewing PR #252 (#232 truth strip). Not fixed there; each is small.

  1. Nodes-hearing KPI undercounts overlapping nodes. useCalls drops duplicate_of calls client-side (lib/useCalls.ts), so a node whose recordings are always deduped as the second copy reads as "not hearing" in nodes hearing (Nm) even though it is. Fix: count hearing from calls before the duplicate filter (e.g. an includeDuplicates option), keep the filter for everything else.
  2. NEXT_PUBLIC_WALL_STALE_MIN is not plumbed into the build. It's a NEXT_PUBLIC_ var (baked at CI build time) but the frontend Dockerfile build-args and .gitea/workflows/deploy.yml don't pass it, so prod is always the default 10 min. Fine as a default; plumb it if anyone needs to tune it.
  3. A degraded /health/ai tier stays degraded until that tier's next success. ai_health only clears on report_healthy. correlation_smart only runs on tiebreaks, so 5 transient failures there can grey the wall for hours after the provider recovers. Option: show "last failure Nm ago" from last_seen, or stop greying the map for tiers whose last_seen is older than N minutes (keep naming them on the bar).
  4. Per-system STT outage is invisible. STT staleness is computed across all systems, so if stt_enabled is off (or broken) for one system while another still transcribes, the wall stays healthy. Per-system staleness would catch it.
Follow-ups found reviewing PR #252 (#232 truth strip). Not fixed there; each is small. 1. **Nodes-hearing KPI undercounts overlapping nodes.** `useCalls` drops `duplicate_of` calls client-side (lib/useCalls.ts), so a node whose recordings are always deduped as the second copy reads as "not hearing" in `nodes hearing (Nm)` even though it is. Fix: count hearing from calls before the duplicate filter (e.g. an `includeDuplicates` option), keep the filter for everything else. 2. **`NEXT_PUBLIC_WALL_STALE_MIN` is not plumbed into the build.** It's a `NEXT_PUBLIC_` var (baked at CI build time) but the frontend Dockerfile build-args and `.gitea/workflows/deploy.yml` don't pass it, so prod is always the default 10 min. Fine as a default; plumb it if anyone needs to tune it. 3. **A degraded /health/ai tier stays degraded until that tier's next success.** `ai_health` only clears on `report_healthy`. `correlation_smart` only runs on tiebreaks, so 5 transient failures there can grey the wall for hours after the provider recovers. Option: show "last failure Nm ago" from `last_seen`, or stop greying the map for tiers whose `last_seen` is older than N minutes (keep naming them on the bar). 4. **Per-system STT outage is invisible.** STT staleness is computed across all systems, so if `stt_enabled` is off (or broken) for one system while another still transcribes, the wall stays healthy. Per-system staleness would catch it.
logan added the
type
bug
area/frontend
priority
p3
kind
behavior-bug
labels 2026-10-05 02:38:40 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: logan/server-26#254