Skip to content

Leaderboard V2 - #24

Merged
defnax merged 15 commits into
mainfrom
leaderboard-v2
Sep 17, 2026
Merged

defnax merged 15 commits into
mainfrom
leaderboard-v2

Conversation

@defnax

@defnax defnax commented Sep 16, 2026

Copy link
Copy Markdown
Collaborator
  • Standard Glicko‑2 ratings starting at 1500
  • Ratings keyed by RsGxsId
  • Unique game IDs, including rematches
  • Signed result confirmation from both players
  • Duplicate/conflicting result protection
  • Persistent local leaderboard data
  • Wins, draws, losses, games, rating, RD and last activity
  • Provisional status for fewer than 10 games or RD above 110
  • New Leaderboard tab in RetroChess
image

- Implement direct match receipt exchange between players over GXS tunnels (0xC4E5)
- Implement gossip and batch synchronization of receipts across connected peers
- Route tunnel leaderboard packets through RetroChessNotify to Leaderboard slots
- Preserve standard Glicko-2 rating engine, consensus verification, and conflict protection
- Separate tunnel setup and presence reply timeouts
- Prevent slow connections from blocking active players' checks
- Limit offline retry delays to 60 seconds
- Recheck saved contacts when receiving presence requests
- Enabled ExtendedSelection on game history tree widget (Ctrl/Shift/drag selection)
- Added ChessGameHistory::removeGames() for atomic removal of multiple games
- Updated confirmation dialog and context menu to reflect the count of selected games
- Bound Delete key shortcut to deleteSelectedGame()
- Added support for exporting multiple selected games into a combined PGN
- Disabled Review button when multiple items are selected
- Broadcast opponent ID and nickname in chess_presence_reply when status is "playing"
- Track contact opponents in ChessContact and RsRetroChessAvailablePeer
- Display active matches between contacts in the Active Games tree
- Automatically deduplicate matches between mutual contacts and remove them when finished
- Allow double-clicking local games in Active Games to bring their window to the front
- Move leaderboard receipts from RetroShare.conf to retrochess_leaderboard.json.
- Implement atomic writes with QSaveFile to guard against data corruption.
- Add automatic one-time migration to transfer existing receipts from Settings
  without any data loss.
- Center-align Moves values and headers in Game History tree
@defnax
defnax merged commit 395d82d into main Sep 17, 2026
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