d4ae60f199
- Player room connection lifted out of the /play route to an app-level hook (usePlayerConnection in RootLayout), keyed by a persisted joinIntent — so a player stays connected while browsing their sheet, the compendium, anywhere, and a reload reconnects automatically. - Header "● Live: CODE · Leave" badge (PlayerSessionBadge); leaving is explicit (leaveRoom clears intent + disconnects). /play renders the table from the store. - Realtime e2e: player navigates away, badge persists, returns to a synced table. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>