e2e: a draw Offer answered by the opponent #195

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

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


Parent

#191

What to build

A Player offers a draw, the other Player answers it, and the Game ends by agreement for both.

The offer reaches the opponent as a dialog they must answer, so it cannot be missed. The proposer meanwhile sees that their own offer is waiting, and can withdraw it. Every viewer is told once how the offer resolved.

This ticket reuses the confirm-dialog helper rather than building a second one, which is why it waits on the resignation slice.

Acceptance criteria

  • Offering a draw requires confirming a dialog first
  • The opponent is presented with a dialog naming the offer, which they must answer — it does not dismiss on an outside click or on Escape, and offers no close control
  • The proposer sees that their own draw offer is waiting for an answer
  • The proposer can withdraw their own offer, and the opponent's dialog goes away
  • Accepting the offer ends the Game as a draw by agreement for both Players
  • Declining the offer is announced to the proposer and leaves the Game running
  • Offer resolutions are addressed as the named dialogs they render as, not as alerts or status regions
  • All five gate commands pass, and the suite passes
> _Imported from GitHub [amaurycoudr/chess-project#195](https://github.com/amaurycoudr/chess-project/issues/195), opened by [@amaurycoudr](https://github.com/amaurycoudr) on 2026-09-01 13:44 UTC._ > _Closed on GitHub on 2026-09-24 10:16 UTC as completed._ <!-- github-issue:195 --> --- ## Parent #191 ## What to build A Player offers a draw, the other Player answers it, and the Game ends by agreement for both. The offer reaches the opponent as a dialog they must answer, so it cannot be missed. The proposer meanwhile sees that their own offer is waiting, and can withdraw it. Every viewer is told once how the offer resolved. This ticket reuses the confirm-dialog helper rather than building a second one, which is why it waits on the resignation slice. ## Acceptance criteria - [ ] Offering a draw requires confirming a dialog first - [ ] The opponent is presented with a dialog naming the offer, which they must answer — it does not dismiss on an outside click or on Escape, and offers no close control - [ ] The proposer sees that their own draw offer is waiting for an answer - [ ] The proposer can withdraw their own offer, and the opponent's dialog goes away - [ ] Accepting the offer ends the Game as a draw by agreement for **both** Players - [ ] Declining the offer is announced to the proposer and leaves the Game running - [ ] Offer resolutions are addressed as the named dialogs they render as, not as alerts or status regions - [ ] All five gate commands pass, and the suite passes
root commented 2026-09-01 13:44:35 +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: #194 - Blocking: #196
root (Migrated from gitlab.core-project.space) closed this issue 2026-09-24 10:16:02 +00:00
root commented 2026-10-13 08:39:10 +00:00 (Migrated from gitlab.core-project.space)

mentioned in issue #196

mentioned in issue #196
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:41:47 +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 #196

marked this issue as related to #196
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#195
No description provided.