- #10/#18/#7: on WebSocket RE-connect, re-pull sidebar + re-open the current
thread so the desktop/mobile apps recover missed messages/ticks without a
refresh (the old onopen only re-sent chat-hello).
- #11: branded bzConfirm() dialog replaces window.confirm for delete (the OS/
Electron default dialog looked off-brand on desktop).
- #4: global Esc no longer closes the conversation while an image preview is
open — the preview closes first, the conversation on a second Esc.
- #6: live 'typing…' now also shows inside the conversation panel (animated),
not only the header/sidebar.
- #15 (diagnostic): mic/cam failures now report the REAL cause (permission vs
no-device vs in-use) with desktop-specific guidance, and log the raw error,
instead of always saying 'permission required'.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>