Skip to content

feat(matchmaking): add ranked matchmaking - #133

Open
Poooel wants to merge 50 commits into
atomic-game-state-mutationsfrom
fix-elo-rounding
Open

feat(matchmaking): add ranked matchmaking#133
Poooel wants to merge 50 commits into
atomic-game-state-mutationsfrom
fix-elo-rounding

Conversation

@Poooel

@Poooel Poooel commented Aug 2, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add chess-style Elo profiles, immutable result history, and exactly-once authoritative settlement
  • match ranked BO1 players by rating with fast best-effort fallback and one active match per identity
  • recover no-shows and disconnects with persisted alarms, requeueing, forfeits, and explicit resignation
  • add the translated ranked queue, room context, opponent rating, result deltas, and cross-browser coverage
  • add credential-safe lifecycle metrics, reduced D1 polling, and a server-controlled production rollout gate

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 2, 2026

Copy link
Copy Markdown

Deploying knucklebones with  Cloudflare Pages  Cloudflare Pages

Latest commit: 554e7c1
Status: ✅  Deploy successful!
Preview URL: https://0ad0d4d8.knucklebones-8ep.pages.dev
Branch Preview URL: https://fix-elo-rounding.knucklebones-8ep.pages.dev

View logs

@Poooel Poooel changed the title fix(ranking): make Elo rounding symmetric feat(matchmaking): add ranked matchmaking Aug 2, 2026
Poooel added 27 commits August 2, 2026 12:11
Poooel added 22 commits August 2, 2026 18:01
- Retry ranked settlement on alarm after transient failures and escalate
  with a stuck-settlement alert after repeated attempts
- Forfeit on no-legal-move or rejected auto-move instead of hanging the alarm
- Keep releaseRankedMatch scoped to pending assignments and requeue only
  when it actually released the row
- Expire stale ranked rematch reservations on alarm and skip blocked
  players in matchmaking instead of failing the selection
- Roll optimistic moves back only when no newer authoritative state arrived
- Surface identity failures with a retry action instead of loading forever
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant