chat bar island: seamless state persistence across navigation
Three named states (resting/glance/focused) with full lifecycle:
- Input text and cursor position persist via localStorage + pagehide
- Glance state (inline responses) survives all navigations
- Focused auto-dismisses to glance on navigate
- In-flight requests auto-retry within 30s staleness window
- CSS class rename to BEM: app-bar--glance, app-bar--focused, app-bar--dismissing
- Websocket navigate handler calls closePanel before navigation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>