feat(variants): default a registered account to Erudit + Russian Scrabble #288

Merged
developer merged 2 commits from feature/default-variants-scrabble-ru into development 2026-07-27 18:52:13 +00:00
Owner

New Game opened on a single variant for everyone, which reads poorly on VK where Russian Scrabble is the familiar game.

Registered accounts now start with erudit_ru + scrabble_ru (migration 00018 moves the column default), so the New Game picker offers a real choice — and, per the existing screen logic, pre-selects nothing.

Guests deliberately stay on Erudit alone (ProvisionGuest writes the set explicitly) and New Game shows them a one-line invitation to register, linking to Settings → Profile. Registering promotes the account to the registered default (ClearGuest), but only while the guest still carries the untouched guest set.

Existing accounts are not backfilled — the set a player already carries may be a deliberate choice, and the two are indistinguishable in the data.

Telegram promo seed became additive rather than a replacement (account.MergeVariantSeed), with English Scrabble withheld from a Russian-speaking arrival. Without that, the English campaign link verudit_ru-scrabble_en would have quietly taken Russian Scrabble away from every account it onboarded.

Verified locally

gofmt clean · go build/go vet · Go unit suite · integration suite (-tags=integration, testcontainers Postgres) · svelte-check 0 errors · vitest 668 passed · pnpm build + bundle-size gate (app entry 130.2 / 131 KB) · Playwright mock e2e 252 passed (chromium + webkit).

New Game opened on a single variant for everyone, which reads poorly on VK where Russian Scrabble is the familiar game. **Registered accounts** now start with `erudit_ru + scrabble_ru` (migration `00018` moves the column default), so the New Game picker offers a real choice — and, per the existing screen logic, pre-selects nothing. **Guests** deliberately stay on Erudit alone (`ProvisionGuest` writes the set explicitly) and New Game shows them a one-line invitation to register, linking to Settings → Profile. Registering promotes the account to the registered default (`ClearGuest`), but only while the guest still carries the untouched guest set. **Existing accounts are not backfilled** — the set a player already carries may be a deliberate choice, and the two are indistinguishable in the data. **Telegram promo seed** became additive rather than a replacement (`account.MergeVariantSeed`), with English Scrabble withheld from a Russian-speaking arrival. Without that, the English campaign link `verudit_ru-scrabble_en` would have quietly taken Russian Scrabble away from every account it onboarded. ### Verified locally `gofmt` clean · `go build`/`go vet` · Go unit suite · integration suite (`-tags=integration`, testcontainers Postgres) · `svelte-check` 0 errors · vitest 668 passed · `pnpm build` + bundle-size gate (app entry 130.2 / 131 KB) · Playwright mock e2e 252 passed (chromium + webkit).
developer added 1 commit 2026-07-27 18:38:26 +00:00
feat(variants): default a registered account to Erudit + Russian Scrabble
CI / changes (pull_request) Successful in 3s
CI / unit (pull_request) Successful in 11s
CI / integration (pull_request) Successful in 22s
CI / ui (pull_request) Successful in 1m16s
CI / conformance (pull_request) Successful in 10s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m53s
b6d88da78c
New Game opened on a single variant for everyone, which reads poorly on VK
where Russian Scrabble is the familiar game. A registered account now starts
with both Russian-alphabet games, so the picker offers a real choice with no
pre-selection.

A guest stays on Erudit alone and is invited to register for the rest: the
device-local guest has no profile at all, so the client-side fallback has to
keep matching the server. Registering promotes the set, but only while the
guest still carries the untouched guest default. Existing accounts are not
backfilled — the set they carry may be a deliberate choice.

The Telegram promo start-param becomes additive rather than a replacement,
with English Scrabble withheld from a Russian-speaking arrival; otherwise the
English campaign link would have taken Russian Scrabble away from every
account it onboarded.
developer added 1 commit 2026-07-27 18:45:10 +00:00
fix(ui): use the guest stubs' "sign in" wording, and link it in Stats
CI / changes (pull_request) Successful in 3s
CI / unit (pull_request) Successful in 11s
CI / integration (pull_request) Successful in 21s
CI / ui (pull_request) Successful in 1m15s
CI / conformance (pull_request) Successful in 10s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m57s
c3d36dda2d
The New Game hint said "Register" where the Stats and Profile guest stubs say
"Sign in". Move the shared word into common.signInLink so the two screens
cannot drift, and turn the Stats stub's opening word into the same link to the
profile screen.
owner approved these changes 2026-07-27 18:51:44 +00:00
developer merged commit f383442430 into development 2026-07-27 18:52:13 +00:00
developer deleted branch feature/default-variants-scrabble-ru 2026-07-27 18:52:13 +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#288