Chess on the ATmosphere checkmate.blue

Polish UX and implement draw offers #39

Merged checkmate.blue
targeting main
Merged opened by and assigned to checkmate.blue
targeting main

Summary

  • Implement full draw offer flow: offer, receive via Jetstream, accept/decline, with PDS sync for both players
  • Fix waitForOpponent Jetstream bug where creating a game as black triggered premature activation (own creation event matched the callback)
  • Fix connectJetstream being unreachable if the PDS write in waitForOpponent threw -- moved connection setup before the write
  • Add prominent login prompt for unauthenticated visitors on waiting games
  • Hide resign/draw controls until game is active with moves played
  • Remove console.log statements from production code
  • Profile page now uses GameCard component with proper canonical game links
  • Add try-catch to findGameRecordByParent for resilience
  • Add explicit result tracking in game store for non-position outcomes (resignation, draw by agreement)

This pull request has no versions submitted yet.