-
Notifications
You must be signed in to change notification settings - Fork 11
UAT: dashboard State card & Kid Mode toggle never reflect live state #169
Copy link
Copy link
Open
Labels
area:bridgebridge.py + bridge/ dashboard service (Unraid-resident post-#36)bridge.py + bridge/ dashboard service (Unraid-resident post-#36)area:dashboardBridge dashboard UI / HTMX templatesBridge dashboard UI / HTMX templatesbugSomething isn't workingSomething isn't workingready-for-humanRequires human implementation or live-device verificationRequires human implementation or live-device verificationstatus:activeReady to start, not blockedReady to start, not blocked
Description
Metadata
Metadata
Assignees
Labels
area:bridgebridge.py + bridge/ dashboard service (Unraid-resident post-#36)bridge.py + bridge/ dashboard service (Unraid-resident post-#36)area:dashboardBridge dashboard UI / HTMX templatesBridge dashboard UI / HTMX templatesbugSomething isn't workingSomething isn't workingready-for-humanRequires human implementation or live-device verificationRequires human implementation or live-device verificationstatus:activeReady to start, not blockedReady to start, not blocked
Symptom. For the entire 29-minute UAT session the dashboard's State card showed Idle
and the Kid Mode toggle showed off, regardless of actual state.
Evidence (dashboard screen recording, starts 19:41:22).
Kid Mode=off — including 20:07:17–20:07:32, when logs show
state_changed → securityhad been relayed at 20:07:14; and the whole session ran with
PiVoiceLLM ready kid_mode=Truein xiaozhi logs.2m → 4m → 5m, the sound-impulse counts changed, and the Listening pip went red. So it's
not a frozen tab — the State/Kid-Mode widgets specifically aren't synced.
snapshots/perception-state.jsonshows dotty-behaviour trackedcurrent_statewithlast_state_change_t= 20:09:47 local (end-of-session forced idle),so the state pipeline works server-side; the dashboard UI layer is what's stale.
Impact. Made live UAT observation misleading (couldn't confirm state entries from the
dashboard; kid-mode status invisible). Also means the toggle's displayed position can
contradict the actual xiaozhi
kid_modeconfig.Next step. Trace where the dashboard State card / Kid Mode toggle source their state
(bridge-local variable vs polling dotty-behaviour / xiaozhi) and wire them to the live
values that the perception cards already use.
From the filmed UAT session 2026-07-11 (
uat-sessions/2026-07-11/: results.csv, container logs, two video recordings). Discovered during AI-assisted video verification (Claude Fable 5 via Claude Code); human-reviewed before filing.