e2e: a restart swaps Colors between the Seats #196

Closed
opened 2026-09-01 13:44:36 +00:00 by root · 6 comments
root commented 2026-09-01 13:44:36 +00:00 (Migrated from gitlab.core-project.space)

Imported from GitHub amaurycoudr/chess-project#196, opened by @amaurycoudr on 2026-09-01 13:44 UTC.
Closed on GitHub on 2026-09-24 10:24 UTC as completed.


Parent

#191

What to build

Two Players restart in the same Room after a Game ends, and their Colors swap between the Seats.

Once the Game is over the offer control reads "Play again", making the next step obvious. Accepting it replaces the Game while the Room, its Room code and both Seats persist — which is the whole reason a Room outlives a Game. The Colors swapping is the subtle part, and the easiest thing for a refactor to break silently.

The cheapest way to reach an ended Game is a resignation, and the offer answering flow is the draw slice's; hence both dependencies.

Acceptance criteria

  • After a Game ends, the restart control reads "Play again" for a seated Player
  • The opponent is presented with a dialog naming the restart offer, which they must answer
  • Accepting the restart starts a new Game from the initial position for both Players
  • Each Player's Color is the opposite of what it was, and each Player's board is oriented to their new Color
  • The Room code is unchanged, and both Players still hold a Seat
  • Both Players can play a Move in the new Game
  • A restart offer is not refused once the Game is over, unlike a draw offer
  • All five gate commands pass, and the suite passes
> _Imported from GitHub [amaurycoudr/chess-project#196](https://github.com/amaurycoudr/chess-project/issues/196), opened by [@amaurycoudr](https://github.com/amaurycoudr) on 2026-09-01 13:44 UTC._ > _Closed on GitHub on 2026-09-24 10:24 UTC as completed._ <!-- github-issue:196 --> --- ## Parent #191 ## What to build Two Players restart in the same Room after a Game ends, and their Colors swap between the Seats. Once the Game is over the offer control reads "Play again", making the next step obvious. Accepting it replaces the Game while the Room, its Room code and both Seats persist — which is the whole reason a Room outlives a Game. The Colors swapping is the subtle part, and the easiest thing for a refactor to break silently. The cheapest way to reach an ended Game is a resignation, and the offer answering flow is the draw slice's; hence both dependencies. ## Acceptance criteria - [ ] After a Game ends, the restart control reads "Play again" for a seated Player - [ ] The opponent is presented with a dialog naming the restart offer, which they must answer - [ ] Accepting the restart starts a new Game from the initial position for both Players - [ ] Each Player's Color is the opposite of what it was, and each Player's board is oriented to their new Color - [ ] The Room code is unchanged, and both Players still hold a Seat - [ ] Both Players can play a Move in the new Game - [ ] A restart offer is not refused once the Game is over, unlike a draw offer - [ ] All five gate commands pass, and the suite passes
root commented 2026-09-01 13:44:36 +00:00 (Migrated from gitlab.core-project.space)

GitHub issue relations, imported as "related" links (GitLab CE has no sub-issues or blocking links).

> _GitHub issue relations, imported as "related" links (GitLab CE has no sub-issues or blocking links)._ <!-- github-relations --> - Blocked by: #195, #194
root (Migrated from gitlab.core-project.space) closed this issue 2026-09-24 10:24:13 +00:00
root commented 2026-10-13 08:40:47 +00:00 (Migrated from gitlab.core-project.space)

mentioned in issue #194

mentioned in issue #194
root commented 2026-10-13 08:40:47 +00:00 (Migrated from gitlab.core-project.space)

mentioned in issue #195

mentioned in issue #195
root commented 2026-10-13 08:41:46 +00:00 (Migrated from gitlab.core-project.space)

marked this issue as related to #194

marked this issue as related to #194
root commented 2026-10-13 08:41:47 +00:00 (Migrated from gitlab.core-project.space)

marked this issue as related to #195

marked this issue as related to #195
root commented 2026-10-13 10:19:26 +00:00 (Migrated from gitlab.core-project.space)

mentioned in commit 37f842b25e

mentioned in commit 37f842b25e53e04b91c0c688fdda5d6522584af2
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
amaurycoudr/chess-project#196
No description provided.