Seats and Games as an Account: one Seat across devices, Games owned and listed by the Account #382
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
spec
wayfinder:grilling
wayfinder:map
wayfinder:prototype
wayfinder:research
wayfinder:task
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
Depends on
#383 Account page: Username, email and join date, an export, and deletion by password
amaurycoudr/chess-project
#384 Names by Username in the Room, "My games" and the Game page; switching devices mid-Game end to end
amaurycoudr/chess-project
#378 Accounts and Sessions on the wire: sign up, sign in, sign out and refresh behind the guard
amaurycoudr/chess-project
Reference
amaurycoudr/chess-project#382
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent
#364
What to build
A call with a Session creates a Room or takes a Seat as its Account; without one, as its Guest. A call is a Seat's occupant when either its Account or its Guest matches. So a second signed-in device opens the same Seat, a browser that signed in mid-Game keeps its Guest-held Seat, and signing out leaves the Seat taken and disconnected. A caller who already occupies a Seat by either identity cannot take the other. The
room.changesstream identifies its Connection once, when it opens.A decided Game records each Color's owner as an Account or a Guest. The
gamestable gains a nullable account owner per Color withON DELETE SET NULLand at most one owner per Color. An owner whose Account was deleted before the Game ended is stored as no owner.game.listandgame.getanswer as the caller's Account when there is a Session, else their Guest. The Seat view in the snapshot and each side in a Game read gain the occupant's name: an Account with its Username, or a Guest. No email, account id or hash crosses the wire.Seam: the RPC wire
Acceptance criteria
game.listas an Account lists its Games newest first, including when it has none;game.getas the Account answers its Colorgame.listandgame.getcarry the occupant's name and nothing else that identifies themmentioned in issue #383
mentioned in issue #384
mentioned in issue #364
mentioned in issue #378
marked this issue as related to #364
marked this issue as related to #378
marked this issue as related to #384
marked this issue as related to #383
mentioned in merge request !523
mentioned in commit
b379bb71bdmentioned in commit
550a569aefDelivered by !523, merged into main.