- Rooms: re-enable the keep-alive pinger (checkConnections), arm a 128s
keep-alive on LOGIN_OK (servers send 0), blank-relogin self-heal while a
room chat is open, 'Log in again' in the room sheet, read-only warning.
Root-caused against simple_room_server: 3 unACKed pushes freeze a client
until the server hears from it — and we never pinged (issue #89).
- Burn-in: ST7789 SLPIN/SLPOUT on screen-off (backlight-off alone kept the
panel driving the static image), lit-lock dim guard on all boards, 10s
notify-wake re-dim, lock clock pixel drift.
- wyvern.red batch: scroll-keys map zoom, backspace exits empty composer,
Reset path in the chat sheet, compact chat toggle (TouchPrefs v31),
clearer delivery glyphs + tap-to-resend on failed sends.
- OTA: hide Install-update when the running image's physical address falls
outside the esp_ota running slot (mixed/legacy tables; beta_21 coredump).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>