-
Mahmoud Aglan authored
The manager could only ever see the external Swiss service. Every tournament the player app's own engine ran was invisible here: standings came back empty, pairings were read from a column that does not exist (swiss_api_round_id, against a swiss_round_id column), and three of the fallback tables the service queried have never existed in this schema. The public live page was also fatal. The Swiss service wraps its rows in {"data": [...]}; the standings view iterated the wrapper, so "data" + 1 crashed PHP 8 and printed a stack trace with server paths to anyone holding the link. Two more views did the same thing to the native pairing shape, which puts an object where the Swiss shape puts a name. - NativeTournamentService reads the engine's rounds and computes standings, pairings and tiebreaks from them; LiveDataService is native-first throughout. - display_errors is off in the image, so a fatal is logged, never rendered. - Start no longer flips a tournament to in_progress and leaves it unpaired, and Generate Round no longer answers "no link to the Swiss system" for every tournament EL3AB runs. Both ask the player app's engine, authenticating with the service key both apps already hold. Two controls on the live page were scenery. The player-compare selects were filled from a class the players view no longer emits, and choosing two names ran a function whose whole body hid the result; the player card modal needed a data-player payload nothing rendered. Both now work off data already on the page. Visually the page was rebuilt around what a spectator opens it for: the boards and the leaderboard first (the share box and compare tool used to be pulled above them on a phone by order:-1), a podium, avatars and form dots, board cards that show at a glance which games are still running, a readable rounds timeline, a knockout bracket with connectors, and a QR that leads the share card instead of hiding behind a disclosure. Sections no longer render at opacity 0 when script does not run. tools/verify-cycle.mjs runs the whole cycle across both apps and checks the manager reports what the players did; it passes. Co-Authored-By:Claude Opus 5 (1M context) <noreply@anthropic.com>
4a2cb04f
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| README.md | ||
| dev-server.php | ||
| verify-cycle.mjs |