How does an account relate to the Seat token? #351

Closed
opened 2026-10-11 12:59:33 +00:00 by root · 6 comments
root commented 2026-10-11 12:59:33 +00:00 (Migrated from gitlab.core-project.space)

Imported from GitHub amaurycoudr/chess-project#351, opened by @amaurycoudr on 2026-10-11 12:59 UTC.
Closed on GitHub on 2026-10-11 15:28 UTC as completed.
Assigned on GitHub to @amaurycoudr.


Parent

#346

Question

ADR 0016 makes the Seat token the only proof of owning a Seat, and says to revisit when accounts arrive. Once signed in, does the account replace the Seat token, sit alongside it (token minted per Seat, Seat records the account), or only matter for taking a Seat back from another device? What happens when a signed-in Player and a guest share a Room, or a Player signs in mid-game? Ends in an ADR superseding or amending 0016.

> _Imported from GitHub [amaurycoudr/chess-project#351](https://github.com/amaurycoudr/chess-project/issues/351), opened by [@amaurycoudr](https://github.com/amaurycoudr) on 2026-10-11 12:59 UTC._ > _Closed on GitHub on 2026-10-11 15:28 UTC as completed._ > _Assigned on GitHub to [@amaurycoudr](https://github.com/amaurycoudr)._ <!-- github-issue:351 --> --- ## Parent #346 ## Question ADR 0016 makes the **Seat token** the only proof of owning a **Seat**, and says to revisit when accounts arrive. Once signed in, does the account replace the Seat token, sit alongside it (token minted per Seat, Seat records the account), or only matter for taking a Seat back from another device? What happens when a signed-in Player and a guest share a Room, or a Player signs in mid-game? Ends in an ADR superseding or amending 0016.
root commented 2026-10-11 12:59:33 +00:00 (Migrated from gitlab.core-project.space)

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

  • Parent (sub-issue of): #346
  • Blocked by: #350
> _GitHub issue relations, imported as "related" links (GitLab CE has no sub-issues or blocking links)._ <!-- github-relations --> - Parent (sub-issue of): #346 - Blocked by: #350
root commented 2026-10-11 15:28:17 +00:00 (Migrated from gitlab.core-project.space)

Imported from a GitHub comment by @amaurycoudr on 2026-10-11 15:28 UTC.

Resolution

ADR 0034, PR #359. It supersedes ADR 0016 and ADR 0033.

  1. No more Seat token. A Seat's occupant is a Guest or an Account. A call proves it with the matching Guest header or Session cookie (ADR 0030). The per-Room secret is retired when Guest history lands (feature 2).
  2. Signed-in browsers always take a Seat as their Account. The Guest secret is only used when there is no Session.
  3. Minting: room.create and seat.take mint a Guest when the call carries neither a Guest nor a Session. Reads and Spectators mint nothing.
  4. Another device: signing in there picks your Seat back up as one more Connection on it. There's no transfer flow. An occupant holds at most one Seat per Room, so you can't play yourself across two devices.
  5. Signing in mid-game doesn't move the Seat: the decided Game belongs to the Guest, and claiming moves it to the Account. Signing out leaves the Seat taken and disconnected (ADR 0015 TTL). Signing in again resumes it.
  6. A signed-in Player and a Guest in one Room: nothing special. The Game is owned by one Account and one Guest.
  7. A deleted Account while seated: the Seat stays taken until the TTL. If the Game is decided anyway, that side has no owner, like a vacated Seat.
  8. Rooms surviving a redeploy aren't needed for any of this.
  9. Feature order: feature 6 ("Seat bound to an account") folds into Accounts v1.

Glossary (in the PR): Seat token retired, kept only as an alias to avoid on Guest. Seat, Guest, Session and Connection are reworded.

> _Imported from a [GitHub comment](https://github.com/amaurycoudr/chess-project/issues/351#issuecomment-6110595994) by [@amaurycoudr](https://github.com/amaurycoudr) on 2026-10-11 15:28 UTC._ <!-- github-comment:6110595994 --> ## Resolution ADR 0034, [PR #359](https://github.com/amaurycoudr/chess-project/pull/359). It supersedes ADR 0016 and ADR 0033. 1. **No more Seat token.** A **Seat**'s occupant is a **Guest** or an **Account**. A call proves it with the matching **Guest** header or **Session** cookie (ADR 0030). The per-Room secret is retired when Guest history lands (feature 2). 2. **Signed-in browsers** always take a Seat as their **Account**. The Guest secret is only used when there is no Session. 3. **Minting:** `room.create` and `seat.take` mint a Guest when the call carries neither a Guest nor a Session. Reads and **Spectators** mint nothing. 4. **Another device:** signing in there picks your Seat back up as one more **Connection** on it. There's no transfer flow. An occupant holds at most one Seat per **Room**, so you can't play yourself across two devices. 5. **Signing in mid-game** doesn't move the Seat: the decided **Game** belongs to the Guest, and claiming moves it to the Account. **Signing out** leaves the Seat taken and disconnected (ADR 0015 TTL). Signing in again resumes it. 6. **A signed-in Player and a Guest in one Room:** nothing special. The Game is owned by one Account and one Guest. 7. **A deleted Account while seated:** the Seat stays taken until the TTL. If the Game is decided anyway, that side has no owner, like a vacated Seat. 8. **Rooms surviving a redeploy** aren't needed for any of this. 9. **Feature order:** feature 6 ("Seat bound to an account") folds into Accounts v1. **Glossary** (in the PR): **Seat token** retired, kept only as an alias to avoid on **Guest**. **Seat**, **Guest**, **Session** and **Connection** are reworded.
root (Migrated from gitlab.core-project.space) closed this issue 2026-10-11 15:28:19 +00:00
root commented 2026-10-13 08:41:16 +00:00 (Migrated from gitlab.core-project.space)

mentioned in issue #346

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

mentioned in issue #350

mentioned in issue #350
root commented 2026-10-13 08:42:22 +00:00 (Migrated from gitlab.core-project.space)

marked this issue as related to #346

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

marked this issue as related to #350

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