fix(online): matchmaking for ludo, domino and backgammon actually matches
Found by the gameplay pass, verified against production with throwaway
accounts (31/31 checks):
- ludo: the queue filtered and ordered on created_at, a column ludo_queue does
not have, so no two players were ever matched; five stale rows from July to
September were also deleted.
- domino and ludo status/get decoded jsonb columns that already arrive as
arrays: a PHP 8 TypeError, so the waiting player never learned of the match
and every live poll failed.
- all three: the zero-UUID claim placeholder was reported as a found match and
its row deleted; failed inserts were reported as success; domino hands were
renumbered by array_merge; complete passed p_winners as a string (the RPC
refused it) and could pay twice. Complete now pays once, to seated players.
- engine.js loads each game module independently, so one module failing to
load can no longer stop the whole app from booting.
Co-Authored-By:
Claude Opus 5.5 <noreply@anthropic.com>
Showing
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Please register or sign in to comment