• Mahmoud Aglan's avatar
    fix: draw offer race condition + add multiplayer logging · 9b2a459c
    Mahmoud Aglan authored
    Root cause: draw offers stored in game_state were lost when a
    concurrent move write did read→merge→write (non-atomic). Now uses
    PostgreSQL jsonb || operator via merge_game_state() RPC for atomic
    merges.
    
    Also adds:
    - mp_log table for server-side multiplayer event logging
    - Frontend sessionStorage logging (sessionStorage.mp_log) for
      debugging draw offers, moves, and poll events
    - Logging on match_created, move, resign, draw_accepted, game_state_merge
    Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
    9b2a459c
Name
Last commit
Last update
.claude Loading commit data...
ChessPieces Loading commit data...
Connections and docs Loading commit data...
Logo El3ab Loading commit data...
admin Loading commit data...
api Loading commit data...
app icons Loading commit data...
config Loading commit data...
docs Loading commit data...
includes Loading commit data...
ludo-playtest Loading commit data...
promo Loading commit data...
public Loading commit data...
screenshots Loading commit data...
test-screenshots Loading commit data...
.gitignore Loading commit data...
.htaccess Loading commit data...
ARCHITECTURE.md Loading commit data...
ASSET_REGISTRY.json Loading commit data...
ASSET_REGISTRY.md Loading commit data...
BUILD_ORDER.md Loading commit data...
DATABASE_REFERENCE.md Loading commit data...
DESIGN.md Loading commit data...
Dockerfile Loading commit data...
MULTIPLAYER_RULES.md Loading commit data...
PLAN.md Loading commit data...
Stockfishbotsapi.txt Loading commit data...
backgammon-test.mjs Loading commit data...
bell.png Loading commit data...
captain-definition Loading commit data...
chess-sync-test.mjs Loading commit data...
index.php Loading commit data...
logof.png Loading commit data...
manifest.json Loading commit data...
package-lock.json Loading commit data...
package.json Loading commit data...
privacy-policy.php Loading commit data...
qr-code.png Loading commit data...
terms.php Loading commit data...
test-tournament-swiss.mjs Loading commit data...
test-tournament-ui.mjs Loading commit data...