Stage 17 round 6 (#4/#5/#6): draft persistence wire + gateway + UI #20

Merged
developer merged 1 commits from feature/stage-17-round-6-drafts into development 2026-06-08 11:08:42 +00:00
Owner

PR #1 of 2 closing out Stage 17 round 6. Completes the client-side draft feature on the shipped backend foundation (game_drafts store/service).

  • FB DraftRequest/DraftView (get reuses GameActionRequest); regenerated Go + TS.
  • Backend REST GET/PUT /games/:id/draft (draftDTO -> game.Draft).
  • Gateway draft.get/draft.save forwarding the composition JSON verbatim (json.RawMessage both ways, no double-encode).
  • UI debounced save + restore (lib/draft.ts); #5 off-turn placement (placement relaxed; preview/Make-move stay your-turn-only).

Tests: backend handler validation, gateway pass-through round-trip, UI draft/codec units, draft-restore e2e. Local: go build/vet/gofmt/test, integration-tag vet, ui check/test:unit/build, full e2e (58) all green.

PR #2 (landing + /app/ move) follows.

PR #1 of 2 closing out Stage 17 round 6. Completes the client-side draft feature on the shipped backend foundation (game_drafts store/service). - FB DraftRequest/DraftView (get reuses GameActionRequest); regenerated Go + TS. - Backend REST GET/PUT /games/:id/draft (draftDTO -> game.Draft). - Gateway draft.get/draft.save forwarding the composition JSON verbatim (json.RawMessage both ways, no double-encode). - UI debounced save + restore (lib/draft.ts); #5 off-turn placement (placement relaxed; preview/Make-move stay your-turn-only). Tests: backend handler validation, gateway pass-through round-trip, UI draft/codec units, draft-restore e2e. Local: go build/vet/gofmt/test, integration-tag vet, ui check/test:unit/build, full e2e (58) all green. PR #2 (landing + /app/ move) follows.
developer added 1 commit 2026-06-07 20:25:57 +00:00
Stage 17 round 6 (#4/#5/#6): draft persistence wire + gateway + UI
CI / changes (pull_request) Successful in 1s
CI / unit (pull_request) Successful in 9s
CI / integration (pull_request) Successful in 11s
CI / ui (pull_request) Successful in 32s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m7s
f5c2404123
Complete the client-side draft feature on top of the shipped backend
foundation (the game_drafts store/service):

- FB: DraftRequest{game_id,json} + DraftView{json} (a draft get reuses
  GameActionRequest); regenerated committed Go + TS bindings.
- Backend REST: GET/PUT /games/:id/draft, a draftDTO
  (rack_order/board_tiles) mapped to game.Draft.
- Gateway: draft.get/draft.save transcode forwarding the composition
  JSON verbatim (json.RawMessage both ways -- no double-encode).
- UI: debounced save of the rack order + board tiles and restore on
  load (lib/draft.ts), plus #5 -- tiles may be arranged on the
  opponent's turn (placement relaxed; the preview and Make-move stay
  your-turn-only, so an off-turn draft is position-only).

Tests: backend handler validation, gateway pass-through round-trip, UI
draft/codec units, and a draft-restore e2e.
owner approved these changes 2026-06-08 11:06:53 +00:00
developer merged commit b8787a4123 into development 2026-06-08 11:08:42 +00:00
developer deleted branch feature/stage-17-round-6-drafts 2026-06-08 11:08:42 +00:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: developer/scrabble-game#20