Stage 17 round 6 (#4/#5/#6): draft persistence wire + gateway + UI #20
Reference in New Issue
Block a user
Delete Branch "feature/stage-17-round-6-drafts"
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?
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).
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.
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.