Release v1.15.0 — in-game UX + wallet redesign + WAL-alert fix #243
Reference in New Issue
Block a user
Delete Branch "development"
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?
Promote
development→masterfor release v1.15.0.Contents (three merged PRs)
play's
WORD+WORD = Nmove to a thin strip above the plaques; staged tiles tint green/pink on theboard with an orange move-score badge; full-width square rack with the ✅ in a fixed 7th slot; a
bag-count badge + move-table footer; a touch-only "Zoom the board" setting (a hint now zooms out).
(Plus the admin console game Summary now shows the single-word / multiple-words rule.)
an Active line above the store, a Buy chips / Spend chips toggle, and an Exchange
confirm dialog. Fixes the "Something went wrong" toast on an under-funded spend
(
insufficient_chipsnow has an i18n mapping) and disables an unaffordable Exchange up front.pg_archive_stalledGrafana alert no longer false-fires on an idledatabase (it now also requires
pg_walto be growing). This is why we are releasing — thefalse alert keeps firing on prod during quiet hours.
Risk
Low. No schema, no migration, no wire change — so no maintenance window and image rollback stays
DB-safe. Backend change is a read-only admin-console Summary field. The Grafana rule is a config-only
change, so it needs a grafana container recreate on prod after the deploy (the rolling deploy does
not recreate config-only services — handled as a post-deploy step).
All three shipped green through full CI + the test-contour deploy.
Board-highlight bug (reported on the contour): formedGeometry walked cross words unconditionally, so in a single-word (one-word-per-turn) game a staged tile sitting next to a committed tile lit up a green "cross word" the engine ignores — and which need not even be a real word (the reported "БО lights up green in a one-word ПОПА play"). Gate the cross-word walk on the game's multipleWordsPerTurn flag. The score (8) was already correct — a premium square under the main word. Also, from review: - the turn strip reads the staged play's "WORD+WORD = N" while composing a legal move, reverting to the turn / result text otherwise; - the Exchange/Pass dialog shows the bag count ("In the bag: N" / "Bag is empty") right-aligned in the title row, via a new optional Modal `titleAside`; - cosmetics: half the turn strip's bottom padding (the plaques below carry their own top pad); a top gap above the landscape rack (it sat flush under the docked history); more horizontal padding on tab count badges so a 2-3 digit bag count clears the pill ends; - admin console: the game Summary now shows the single-word / multiple-words rule. Tests: formed single-word case added; full unit (584) + e2e (chromium + webkit, 113 each) green; backend build + adminconsole templates parse. Docs (FUNCTIONAL +_ru, UI_DESIGN) updated.Reworks the Wallet screen to be more compact and to separate the two flows, and fixes a reported bug. Bug: buying a value with too few chips showed the generic "Something went wrong" toast — the backend's `insufficient_chips` (409) code was propagated correctly but had no i18n mapping, so `errorKey` fell back to `error.generic`. Add `error.insufficient_chips` / `error.product_not_found`. Also disable a value's Exchange button up front when the spendable balance cannot cover it (the server stays authoritative). Redesign: - a compact **balance** row leads the screen — the context's own chips (🪙 N) then any linked other-platform chips behind that platform's logo (monospaced digits); inside a VK/TG store only that store's own segment shows; - the benefits section is renamed **Active**, moved above the store, shows one inline line (hints + ad-free) and hides when nothing is active; - the **store** splits by a two-way toggle into **Buy chips** (money packs + the watch-an-ad row at the top) and **Spend chips** (values, exchanged for chips); - a value's action reads **Exchange** and opens a single confirmation dialog (chip spends are instant, with no provider window to confirm them); the existing cross-platform store-compliance warning folds into that same dialog when the spend would draw VK/TG chips. No payments-model or wire change; the money→chips→values model is unchanged (verified: money buys only chip packs, values are chips-only — "no-ads for money" is structurally impossible). Tests: wallet e2e updated for the new layout (chromium + webkit green). Docs: FUNCTIONAL (+_ru) wallet story rewritten. App bundle budget 126 → 127 KB (always-loaded settings hub).