feat(ui): merge Exchange/Pass into one action; drop dead Tournaments tab #52
Reference in New Issue
Block a user
Delete Branch "feature/ui-merge-exchange-pass"
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?
What
docs/FUNCTIONAL.md.Why a pass is NOT an exchange of zero (verified against the rules + GCG)
The merge is UI-only — pass and exchange stay distinct game actions end-to-end:
ErrNotEnoughTilesToExchange) and a zero-tile swap is forbidden (ErrNothingToExchange); a pass is always legal.-, an exchange is-TILES— collapsing them would lose a real distinction at replay.So the tab is no longer gated on an empty bag (a pass must stay reachable in the endgame); inside the dialog, tile selection is disabled while the bag is below a full rack (
bagLen >= RACK_SIZE). The dialog dispatches the existinggateway.pass/gateway.exchange. No backend / wire / history / GCG change.Verification
UI
check(0 errors), unit (164), build, and e2e on Chromium + WebKit (108) — all green locally.Docs
docs/UI_DESIGN.md,docs/FUNCTIONAL.md(+_ru), and an ad-hoc UI entry inPRERELEASE.mdrecording the decision.