fix(#483): apply Gemini review, and fix a misplaced reconcile it did not catch
Three defects. One found by the review, one found while verifying it, one the review reported at the wrong severity. 1. The device-info reconcile was in the WRONG FUNCTION. It sat inside the `gps:1`/`gps:0` custom-var handler instead of `_handleDeviceInfo`, so the headless-UI state was never pulled when caps byte 2 actually landed. It worked only because the pane re-requests when opened, and the previous commit message's claim that it re-reads on device-info refresh was false as written. Now fires where caps2 is parsed. 2. Device-UI state was never cleared between radios. Capability bits refresh from every device-info frame but the values behind them do not, so a reconnect could display one radio's notification scope as another's. Cleared explicitly before re-reading. The review did not find this one. 3. A confirmed matrix write was silently discarded when no matrix was held: `_buttonMatrix?.withAssignment(...)` resolves to null and drops a change the device had already applied. Now re-reads instead. Review rated this High on the grounds that a user could set an action before the initial read returned. That path is not reachable: the dropdown only renders once a matrix exists, so the user cannot fire a write first. The defect is real, the severity was not. Also applied the review's structural finding: the dispatcher parsed each frame to route it and the handler parsed it again. Parsed once and passed down, so the two copies cannot drift and drop a valid frame. Full suite 740 pass, analyze clean, format clean. Epic: #474, #475 Agent: CalmBay (session d14220d9)feat/483-button-buzzer-ui
parent
aeef31cee3
commit
a659cd1672
Loading…
Reference in new issue