mirror of
https://github.com/n0mjs710/HBlink4.git
synced 2026-11-08 04:19:26 +00:00
The dashboard's OBP support was complete except for the browser's event switch, which had no case for openbridge_connected -- so state.openbridges was only ever populated by initial_state. The core emits the event in response to sync_request, after broadcast_hblink_status has already pushed initial_state on socket connect, so a tab open across an hblink restart saw an empty list, updateOpenbridges hid the section, and only a page reload brought it back. Handle openbridge_connected and openbridge_disconnected alongside the outbound cases. Two details differ from a repeater or outbound connection, because OBP has no handshake to observe: the event is re-sent on every sync_request, so this upserts and plays no connect tone, preserving the original connected_at rather than restarting the uptime counter; and the core's payload carries no connected_at at all -- the server stamps its own copy from the event envelope, so the browser does the same or the card renders no uptime. openbridge_disconnected is wired but currently dead. A bound socket has nothing to drop, so nothing emits it, but the server already handles it and the card should follow if that changes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>