Game page: read a stored Game by its link and copy the link #375

Closed
opened 2026-10-11 16:26:32 +00:00 by root · 10 comments
root commented 2026-10-11 16:26:32 +00:00 (Migrated from gitlab.core-project.space)

Imported from GitHub amaurycoudr/chess-project#375, opened by @amaurycoudr on 2026-10-11 16:26 UTC.


Parent

#355

What to build

A new games/ vertical in the front (ADR 0011) with its own client. That client only sends the Guest and never stores one. The vertical gets a route at /games/$id.

The Game page reuses game/'s game screen read-only: board, player rows, move list, review controls, captured trays and result line. The owner of a Color sees the board oriented to that Color, their side labelled "You" and the other side "Guest". Anyone else sees White at the bottom and both sides labelled "Guest", including an ownerless side. The page loads without a Guest.

An unknown or malformed id shows a clear not-found page. "Copy link" copies the page's URL. Every new string goes in the Paraglide catalogue, in English and French (ADR 0025).

Seam: the front views (the new Game view, beside it with its harness and MSW).

Acceptance criteria

  • The owner sees their Color at the bottom, "You" on their side and "Guest" on the other (story 18).
  • A reader with no Guest sees White at the bottom, both sides "Guest", the result, and a move list they can step through.
  • A GAME_NOT_FOUND answer shows the not-found page, not an error screen (story 19).
  • "Copy link" puts the page's URL on the clipboard (story 21).
  • New strings exist in English and French.
  • The front's new games/ vertical is declared in the front lint config's per-vertical rules, and the other verticals' sibling-import rules name it (the owner ruled on the accounts breakdown that declaring a folder the spec creates counts as the requested lint change; nothing else in lint config changes)
> _Imported from GitHub [amaurycoudr/chess-project#375](https://github.com/amaurycoudr/chess-project/issues/375), opened by [@amaurycoudr](https://github.com/amaurycoudr) on 2026-10-11 16:26 UTC._ <!-- github-issue:375 --> --- ## Parent #355 ## What to build A new `games/` vertical in the front (ADR 0011) with its own client. That client only sends the **Guest** and never stores one. The vertical gets a route at `/games/$id`. The **Game** page reuses `game/`'s game screen read-only: board, player rows, move list, review controls, captured trays and result line. The owner of a **Color** sees the board oriented to that **Color**, their side labelled "You" and the other side "Guest". Anyone else sees White at the bottom and both sides labelled "Guest", including an ownerless side. The page loads without a **Guest**. An unknown or malformed id shows a clear not-found page. "Copy link" copies the page's URL. Every new string goes in the Paraglide catalogue, in English and French (ADR 0025). Seam: the front views (the new **Game** view, beside it with its harness and MSW). ## Acceptance criteria - [ ] The owner sees their **Color** at the bottom, "You" on their side and "Guest" on the other (story 18). - [ ] A reader with no **Guest** sees White at the bottom, both sides "Guest", the result, and a move list they can step through. - [ ] A `GAME_NOT_FOUND` answer shows the not-found page, not an error screen (story 19). - [ ] "Copy link" puts the page's URL on the clipboard (story 21). - [ ] New strings exist in English and French. - [ ] The front's new `games/` vertical is declared in the front lint config's per-vertical rules, and the other verticals' sibling-import rules name it (the owner ruled on the accounts breakdown that declaring a folder the spec creates counts as the requested lint change; nothing else in lint config changes)
root commented 2026-10-11 16:26:32 +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 --> - Parent (sub-issue of): #355 - Blocked by: #374 - Blocking: #377, #376
root commented 2026-10-13 08:39:46 +00:00 (Migrated from gitlab.core-project.space)

mentioned in issue #376

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

mentioned in issue #377

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

mentioned in issue #355

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

mentioned in issue #374

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

marked this issue as related to #355

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

marked this issue as related to #374

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

marked this issue as related to #377

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

marked this issue as related to #376

marked this issue as related to #376
root commented 2026-10-13 14:34:16 +00:00 (Migrated from gitlab.core-project.space)

mentioned in merge request !515

mentioned in merge request !515
root (Migrated from gitlab.core-project.space) closed this issue 2026-10-14 09:36:58 +00:00
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#375
No description provided.