• Mahmoud Aglan's avatar
    fix(matchmaking): test accounts and real players never meet in a public queue · f5207cc4
    Mahmoud Aglan authored
    The play tests run against production, and a test account waiting in the
    public chess queue was seated across a real player (karimelshafei22), who
    then played an account that vanished with the test's teardown. Nothing in
    any queue knew a test account from a person.
    
    profiles.is_test (migrations/2026-10-27-test-accounts.sql, applied) marks
    an account the tests made. It is a column, not a name: usernames and
    display names are the player's own choice, so a name marker could drop a
    real player into the test pool. The profiles guard keeps the column out of
    a player's token, both ways. The migration also marks the 23 ZZZ-* test
    accounts earlier runs left behind.
    
    includes/match-pool.php keeps every search to the searcher's pool: the
    queue call and the status pickup of an earlier queuer in chess, ludo,
    domino and backgammon, and domino's public tables of three and four.
    Unknown means no: a profile that cannot be read is seated with nobody. The
    bot fill only ever holds the player's own row, after that search, so it
    needs no change. Real players among themselves pair exactly as before.
    Co-Authored-By: 's avatarClaude Opus 5.5 <noreply@anthropic.com>
    f5207cc4
Name
Last commit
Last update
.claude Loading commit data...
.impeccable 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...
migrations Loading commit data...
promo Loading commit data...
public Loading commit data...
screenshots Loading commit data...
test-screenshots Loading commit data...
tests Loading commit data...
tools 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...
FIX_PLAN.md Loading commit data...
HANDOVER.md Loading commit data...
MULTIPLAYER_RULES.md Loading commit data...
PLAN.md Loading commit data...
PRODUCT.md Loading commit data...
ROADMAP.md Loading commit data...
Stockfishbotsapi.txt Loading commit data...
WTF.md Loading commit data...
backgammon-test.mjs Loading commit data...
bell.png Loading commit data...
captain-definition Loading commit data...
chess-browser-test.mjs Loading commit data...
chess-multiplayer-test.mjs Loading commit data...
chess-sync-test.mjs Loading commit data...
domino-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...