The rematch spec is implemented; AGENTS.md lists it with notes on the offers, the keyed game route and stale dev builds, TODO.md takes the items left out.
19 lines
1.4 KiB
Markdown
19 lines
1.4 KiB
Markdown
# Rematch and series: tasks
|
|
|
|
Work through the tasks in order; each ends with its tests passing and a commit. Tick a task when it is committed.
|
|
|
|
- [x] 1. **Spec**: requirements, design and tasks.
|
|
- [x] 2. **Series in live games**: `Series`, `SeriesGame`, `BackendGame.series` and `firstSeat()`, the first seat in
|
|
`createMancalaGame`; `series` and `firstSeat` in `ClientGame` and `GameEndMessage`, `series` in snapshots (with
|
|
the restore of old snapshots); unit and serialisation tests.
|
|
- [x] 3. **Rematch requests**: `RematchOffers`, the four channels, the timers on the `Scheduler`, ending requests on
|
|
`new_game`, `new_bot_game` and going offline, the bot accepting at once; unit tests.
|
|
- [x] 4. **Saving**: `seriesId` in `GameRecord`, migration `004_series`, the repository; integration tests.
|
|
- [x] 5. **Core**: channel names, types, `getSeriesScore`, texts in English and Turkish; unit tests.
|
|
- [x] 6. **Web app, rematch**: the game page following `on_game_start` (`key={gameId}`), the game over card's rematch
|
|
states, "Play again" as a rematch, the score in two columns.
|
|
- [x] 7. **Web app, series strip**: `SeriesStrip`, the series score on the game over card, spectators.
|
|
- [x] 8. **End to end and docs**: the Chrome tests from `design.md`; `AGENTS.md` (the specs list, rematch notes),
|
|
`TODO.md` (the out of scope items; remove "A rematch button" from Web redesign), the web redesign design's note
|
|
on the rematch button.
|