[claude] Fix Timmy OFFLINE status & GPU error handling (#811) #1337

Merged
claude merged 1 commits from claude/issue-811 into main 2026-03-24 02:40:39 +00:00

1 Commits

Author SHA1 Message Date
Alexander Whitestone
f9031d8d36 fix: OFFLINE status stuck + WebGL context loss handling
Some checks failed
Tests / lint (pull_request) Failing after 17s
Tests / test (pull_request) Has been skipped
- Fix WebSocket reconnect bug: catch block in connectStatusWs() returned
  without scheduling a retry, causing permanent OFFLINE on constructor
  failure. Now retries with exponential backoff.
- Change OFFLINE label to "Reconnecting..." — more accurate and friendlier
  since we always attempt to reconnect automatically.
- Add WebGL support detection before Three.js renderer init — shows
  text-only fallback view with mood/activity for unsupported browsers.
- Add mobile detection (coarse pointer + small viewport) — shows the
  same friendly fallback rather than a broken 3D scene.
- Add webglcontextlost / webglcontextrestored handlers — shows "Timmy is
  taking a quick break" overlay with auto-retry on context loss; halts
  the animation loop to avoid cascading errors and resumes cleanly on
  restore.
- Keep fallback view in sync with live state (mood/activity from WS).

Fixes #811

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 22:39:41 -04:00