2026-04-27 - 2026-07-27

Overview

284 Active Pull Requests
0 Active Issues
Excluding merges, 2 authors have pushed 4 commits to master and 598 commits to all branches. On master, 115 files have changed and there have been 7055 additions and 571 deletions.

33 Releases published by 2 users

Published v1.24.2 2026-07-20 11:12:18 +00:00

Published v1.24.1 2026-07-17 18:34:58 +00:00

Published v1.24.0 2026-07-16 19:23:28 +00:00

Published v1.23.0 2026-07-15 00:32:56 +00:00

Published v1.22.0 2026-07-14 23:13:41 +00:00

Published v1.21.0 2026-07-14 20:29:18 +00:00

Published v1.20.1 2026-07-14 09:44:52 +00:00

Published v1.20.0 2026-07-14 09:03:07 +00:00

Published v1.19.0 2026-07-13 22:22:10 +00:00

Published v1.18.0 2026-07-13 07:39:52 +00:00

Published v1.17.0 2026-07-13 01:07:02 +00:00

Published v1.16.0 2026-07-11 12:00:08 +00:00

Published v1.15.0 2026-07-10 16:15:34 +00:00

Published v1.14.1 2026-07-10 10:58:38 +00:00

Published v1.14.0 2026-07-10 10:11:19 +00:00

Published v1.13.0 2026-07-08 23:42:50 +00:00

Published v1.12.0 2026-07-07 14:40:58 +00:00

Published v1.11.0 2026-07-05 21:02:30 +00:00

Published v1.10.0 2026-07-05 14:10:36 +00:00

Published v1.9.0 2026-07-04 21:27:37 +00:00

Published v1.8.0 2026-07-03 21:48:16 +00:00

Published v1.7.0 2026-06-24 11:50:12 +00:00

Published v1.6.0 2026-06-23 21:02:40 +00:00

Published v1.5.1 2026-06-23 16:54:02 +00:00

Published v1.5.0 2026-06-23 16:16:11 +00:00

Published v1.4.1 2026-06-23 13:27:32 +00:00

Published v1.4.0 2026-06-23 08:40:35 +00:00

Published v1.3.0 2026-06-22 22:36:55 +00:00

Published v1.2.2 2026-06-22 19:54:49 +00:00

Published v1.2.1 2026-06-22 18:28:19 +00:00

Published v1.2.0 2026-06-22 13:12:35 +00:00

Published v1.1.0 v1.1.0 2026-06-22 07:27:41 +00:00

Published v1.0.0 v1.0.0 — initial production release 2026-06-22 06:01:04 +00:00

283 Pull requests merged by 2 users

Merged #286 feat(social): hide social controls on a deleted opponent's seat 2026-07-27 15:15:00 +00:00

Merged #285 feat(vk): VK community cover 2026-07-27 14:03:31 +00:00

Merged #284 chore(docs): update legal info 2026-07-20 11:10:02 +00:00

Merged #283 chore(docs): update legal info 2026-07-20 11:03:20 +00:00

Merged #282 release: VK Wallet public-offer link escapes the Mini App WebView (#281) 2026-07-17 18:34:47 +00:00

Merged #281 fix(vk): route the Wallet public-offer link out of the Mini App WebView 2026-07-17 18:27:06 +00:00

Merged #280 release: promote development → master (v1.24.0) 2026-07-16 19:23:04 +00:00

Merged #279 fix(payments): reject HTML-special chars in product titles (VK payment guard) 2026-07-16 19:17:45 +00:00

Merged #278 fix(vk): persist settings via VK Bridge storage; hide competing sign-in in Mini App hosts 2026-07-16 17:12:46 +00:00

Merged #277 docs(apple): native iOS/iPadOS app plan 2026-07-15 17:27:31 +00:00

Merged #276 release: promote development → master (v1.23.0) 2026-07-15 00:32:54 +00:00

Merged #275 native polish 2: two-robots fix, guest offline-host UX, Guest###### name, silent+fast native boot, minSdk 29 2026-07-15 00:26:28 +00:00

Merged #274 release: promote development → master (v1.22.0) 2026-07-14 23:13:25 +00:00

Merged #273 native polish: guest-locale banner, seamless guest sign-in (+local-game fix), 'Opponent's turn' label, deploy-authoritative dictionary 2026-07-14 23:07:05 +00:00

Merged #272 release: promote development → master (v1.21.0) 2026-07-14 20:29:05 +00:00

Merged #271 android: shrink adaptive icon mark 25% + full-bleed legacy square + Erudit-only default for the profileless client 2026-07-14 20:23:04 +00:00

Merged #270 fix(gateway): allow the native WebView origin via CORS (native stuck-offline) 2026-07-14 19:38:28 +00:00

Merged #269 android: ANDROID_PLAN refresh + pin build-tools 36 (unblocks the release build) 2026-07-14 19:38:14 +00:00

Merged #268 chore(android): rename RuStore signing secrets ANDROID_* -> ANDROID_RUSTORE_* 2026-07-14 18:21:36 +00:00

Merged #267 feat(payments): live payment-availability kill switch + per-account override 2026-07-14 14:39:36 +00:00

Merged #266 feat(payments): per-channel Robokassa shops on the direct rail 2026-07-14 13:16:35 +00:00

Merged #265 release: v1.20.1 — real client IP to backend (last-login fix) + host UTC 2026-07-14 09:44:43 +00:00

Merged #264 fix(gateway): forward the real client IP to the backend on every call (last-login IP was the docker addr) 2026-07-14 09:38:10 +00:00

Merged #263 release: v1.20.0 — offline-UX, catalog order + admin toggles, reward-config admin 2026-07-14 09:02:54 +00:00

Merged #262 feat(payments): edit the rewarded-ads config from the admin catalog page 2026-07-14 08:46:02 +00:00

Merged #261 refactor(payments): one canonical catalog order (storefront/offer/admin) + admin active/all toggle 2026-07-14 08:30:31 +00:00

Merged #260 feat(ui): explicit offline state inside an online game (+ offline word check) 2026-07-14 07:51:08 +00:00

Merged #259 fix(net): detect a silently-dead live stream via a heartbeat watchdog 2026-07-14 06:36:21 +00:00

Merged #258 chore(release): promote development to master 2026-07-13 22:22:00 +00:00

Merged #257 feat(tg-bot): unpin auto-forwarded channel posts 2026-07-13 22:13:15 +00:00

Merged #256 feat(vk): launch diagnostic on a direct /vk/ open instead of a guest 2026-07-13 21:42:51 +00:00

Merged #255 fix(login): rate-limit no longer latches a phantom offline on the login screen 2026-07-13 20:59:22 +00:00

Merged #254 Android release prep: de-anchor ANDROID_PLAN.md, re-enable the APK workflow, add ICONS.md 2026-07-13 20:13:26 +00:00

Merged #253 Legal pages: privacy policy + EULA at /privacy/ and /eula/ 2026-07-13 11:55:45 +00:00

Merged #252 release: v1.18.0 — /support command in the Telegram bot 2026-07-13 07:39:06 +00:00

Merged #251 feat(telegram): add /support command with support-desk info reply 2026-07-13 07:33:00 +00:00

Merged #250 release: v1.17.0 — implicit offline model + two-tier client-version gate + unified lobby 2026-07-13 01:06:35 +00:00

Merged #249 feat(offline): implicit net-state model, two-tier version gate, unified lobby 2026-07-13 00:59:16 +00:00

Merged #248 docs: Android native plan + agent field notes 2026-07-11 21:02:05 +00:00

Merged #247 release: v1.16.0 — offer live pricing, bot health telemetry, edge blocklist 2026-07-11 11:56:09 +00:00

Merged #246 feat(edge): community IP blocklist (Spamhaus DROP) at the gateway 2026-07-11 11:39:47 +00:00

Merged #245 feat(bot): Telegram bot Bot API health over the bot-link (metrics + alerts) 2026-07-11 10:58:01 +00:00

Merged #244 feat(offer): live catalog price list in the public offer (render sidecar) 2026-07-11 09:51:49 +00:00

Merged #243 Release v1.15.0 — in-game UX + wallet redesign + WAL-alert fix 2026-07-10 16:15:21 +00:00

Merged #242 Wallet redesign: split buy/spend, compact balance, exchange confirm + insufficient-chips fix 2026-07-10 16:00:54 +00:00

Merged #241 fix(monitoring): don't false-fire the WAL-stalled alert on an idle database 2026-07-10 14:31:57 +00:00

Merged #240 In-game UX: board highlight + score badge, full-width rack, bag badge, zoom setting 2026-07-10 14:06:20 +00:00

Merged #239 Release v1.14.1 — ansible certs-dir fix + Robokassa go-live 2026-07-10 10:58:38 +00:00

Merged #238 fix(deploy): provision the certs dir traversable by the nonroot gateway 2026-07-10 10:39:06 +00:00

Merged #237 Release v1.14.0 — monetization launch (E5-E8) 2026-07-10 10:11:02 +00:00

Merged #236 fix(deploy): wire the Robokassa direct rail into the prod deploy + rollback 2026-07-10 10:04:03 +00:00

Merged #235 feat(ui): per-kind active-game limit lock on the New Game screen 2026-07-10 09:11:40 +00:00

Merged #234 feat(backend): per-tier, per-kind active-game limits with a guest funnel 2026-07-10 07:17:55 +00:00

Merged #233 feat(admin): manual full-order refund + ledger CSV export 2026-07-10 04:52:49 +00:00

Merged #232 feat(admin): admin grant — raw benefits and by-product reward bundles 2026-07-10 04:37:43 +00:00

Merged #231 feat(admin): product catalog editor 2026-07-10 03:26:27 +00:00

Merged #230 feat(admin): per-user finance panel — balances, benefits, risk, ledger 2026-07-10 03:03:46 +00:00

Merged #229 feat(ads): VK post-move interstitial + retire deprecated hint_balance/paid_account 2026-07-10 01:48:11 +00:00

Merged #228 feat(ads): rewarded video (VK) — client-attested credit + daily/hourly caps 2026-07-09 23:33:10 +00:00

Merged #227 feat(payments): refund engine (best-effort revoke, never negative) 2026-07-09 21:26:33 +00:00

Merged #226 feat(payments): Telegram Stars payment rail 2026-07-09 20:44:06 +00:00

Merged #225 fix(ui): VK-iOS store link from the deployment origin 2026-07-09 18:30:55 +00:00

Merged #224 feat(payments): VK Votes payment rail 2026-07-09 18:23:24 +00:00

Merged #223 feat(payments): Robokassa direct-rail payment intake 2026-07-09 16:33:12 +00:00

Merged #222 feat(ui): public offer page at /offer/ with a landing footer link 2026-07-09 14:12:28 +00:00

Merged #221 fix(deploy): run the base-backup timer's pgBackRest as the postgres role 2026-07-09 00:07:52 +00:00

Merged #220 release v1.13.0: payments wallet mechanics + database point-in-time recovery 2026-07-08 23:42:15 +00:00

Merged #219 feat(deploy): continuous WAL archiving to S3 for point-in-time recovery 2026-07-08 23:35:07 +00:00

Merged #218 feat(payments): wallet screen with balances, benefits and storefront 2026-07-08 16:44:06 +00:00

Merged #217 feat(payments): chip wallet, store-compliance gate and benefit application 2026-07-08 05:53:24 +00:00

Merged #216 feat(payments): trusted platform signal on the session 2026-07-08 01:37:39 +00:00

Merged #215 feat(payments): payments schema, currency domain and money type 2026-07-07 23:21:43 +00:00

Merged #213 docs(payments): monetization spec and implementation plan 2026-07-07 21:31:31 +00:00

Merged #214 ci: skip the test-contour deploy on a no-code change 2026-07-07 21:27:47 +00:00

Merged #212 release: offline mode + local pass-and-play (hotseat) — proposed v1.12.0 2026-07-07 14:40:43 +00:00

Merged #211 feat(offline): local pass-and-play (hotseat) — 2-4 players, seat/host PINs 2026-07-07 14:27:57 +00:00

Merged #210 fix(router): sync route in navigate() — kill boot lobby-flash + offline e2e flake 2026-07-06 23:51:21 +00:00

Merged #209 feat(hint): unify the vs_ai idle hint online + offline (server-enforced, monotonic) 2026-07-06 23:04:38 +00:00

Merged #207 feat(hint): idle-gated wallet-free vs_ai hint on a monotonic clock (B4) 2026-07-06 21:46:19 +00:00

Merged #208 fix(offline): zero tile weights on cold boot + wrong-mode game in the lobby 2026-07-06 21:21:19 +00:00

Merged #206 test(offline): mock e2e for a device-local vs_ai game (C8) 2026-07-06 19:07:40 +00:00

Merged #205 feat(offline): gate the offline toggle on dictionary readiness 2026-07-06 18:12:02 +00:00

Merged #204 docs(offline): connectivity auto-detect + kill switch user story 2026-07-06 17:47:55 +00:00

Merged #203 feat(offline): mid-session flight-mode reactivity [PR2] 2026-07-06 17:31:17 +00:00

Merged #202 feat(offline): auto-detect no network at cold start + go-offline dialog [PR1] 2026-07-06 16:11:17 +00:00

Merged #201 fix(offline): delete a finished local game from the device, not the network 2026-07-06 15:06:17 +00:00

Merged #200 fix(pwa): network-first navigation so a new deploy loads online immediately 2026-07-06 15:05:37 +00:00

Merged #199 fix(offline): cold-boot offline from the persisted session + profile 2026-07-06 14:25:11 +00:00

Merged #198 feat(offline): offline lobby — list + create + play local vs_ai games [C6] 2026-07-06 12:43:23 +00:00

Merged #197 feat(offline): app-shell precache service worker (vite-plugin-pwa) [C1] 2026-07-06 09:13:57 +00:00

Merged #196 feat(offline): advertise dict versions + background dictionary preload 2026-07-06 08:45:41 +00:00

Merged #195 feat(offline): offline-mode state, Settings toggle + blue chrome (Phase C) 2026-07-06 07:48:49 +00:00

Merged #194 feat(offline): wire the local game source into the game screen (Phase B3.2) 2026-07-06 07:31:06 +00:00

Merged #193 feat(offline): local game source (Phase B3.1) 2026-07-06 07:13:27 +00:00

Merged #192 feat(offline): local game persistence + replay (Phase B2) 2026-07-06 06:34:57 +00:00

Merged #191 feat(offline): local game engine (Phase B1) 2026-07-06 06:15:56 +00:00

Merged #190 test(offline): real-dictionary move-generator conformance in CI 2026-07-06 00:20:58 +00:00

Merged #189 feat(offline): robot move-choice strategy in TS (parity-pinned) 2026-07-05 23:59:07 +00:00

Merged #188 feat(offline): DAWG cursor + move generator in TS (parity-pinned) 2026-07-05 23:42:58 +00:00

Merged #187 Release v1.11.0: PWA install + code-only PWA login + email/metrics fixes 2026-07-05 21:02:09 +00:00

Merged #186 fix(metrics): second-scale buckets for edge_request_duration 2026-07-05 20:55:31 +00:00

Merged #185 feat(email): PWA login sends code only; drop admin link from alert emails 2026-07-05 20:26:04 +00:00

Merged #184 feat(pwa): installable web app + landing web entry 2026-07-05 19:36:37 +00:00

Merged #183 Release v1.10.0: banner colours + urgent, and 3 UI fixes 2026-07-05 14:10:25 +00:00

Merged #182 feat(banner): per-campaign colour overrides and urgent alerts 2026-07-05 13:57:32 +00:00

Merged #181 fix(ui): hold info toast ~1s before it rises and fades 2026-07-05 12:24:08 +00:00

Merged #180 fix(ui): poll for out-of-band email confirmation 2026-07-05 12:20:38 +00:00

Merged #179 feat(ui): hide current-host sign-in row in profile 2026-07-05 12:16:22 +00:00

Merged #178 Release: promote development → master (old Android WebView support + unsupported-engine telemetry) 2026-07-04 21:23:30 +00:00

Merged #177 feat(gateway): unsupported-engine telemetry beacon + Grafana counter 2026-07-04 21:16:23 +00:00

Merged #176 chore(ui): temporary Android WebView boot diagnostic (test contour only) 2026-07-04 20:36:05 +00:00

Merged #175 Release v1.8.0: prod build fix (re-promote) 2026-07-03 21:48:13 +00:00

Merged #174 fix(ci): prod build needs EXPORT_SIGN_KEY for compose interpolation 2026-07-03 21:42:05 +00:00

Merged #173 Release v1.8.0: promote development → master 2026-07-03 21:31:25 +00:00

Merged #172 fix(ci): arm the maintenance flag on the test-contour deploy 2026-07-03 21:10:14 +00:00

Merged #171 feat(ui): in-session maintenance overlay on the edge 503 marker 2026-07-03 20:52:05 +00:00

Merged #170 feat(deploy): prod OOM swap cushion + edge maintenance page 2026-07-03 20:28:29 +00:00

Merged #169 feat(gateway): enable GATEWAY_HONEYTOKEN + GF_SMTP_ENABLED on both contours 2026-07-03 20:16:44 +00:00

Merged #168 chore(deploy): dedupe & regroup Gitea CI variables/secrets 2026-07-03 19:16:33 +00:00

Merged #167 fix(account): dedupe colliding identities on merge, journaling to the dossier 2026-07-03 17:48:49 +00:00

Merged #166 feat(account): VK ID web login to link a VK identity from a browser 2026-07-03 16:09:57 +00:00

Merged #165 feat(observability): Grafana infra alerts + admin email notifications (PR4) 2026-07-03 14:05:45 +00:00

Merged #164 feat(account): deletion = legal retention, not erasure (PR3) 2026-07-03 12:19:13 +00:00

Merged #163 feat(account): provider linking, unlink & email change (PR2) 2026-07-03 09:16:04 +00:00

Merged #162 feat(email): one-tap confirm deeplink + client language (PR1b) 2026-07-03 06:58:12 +00:00

Merged #161 feat(email): make transactional email live — branded relay, rate-limit, squat fix (PR1a) 2026-07-03 01:56:55 +00:00

Merged #160 feat(export): server-rendered artifacts behind one signed download URL 2026-07-02 21:58:07 +00:00

Merged #159 feat(game): finished-game export as a PNG image behind a format chooser 2026-07-02 15:29:41 +00:00

Merged #158 fix(game): no placement auto-zoom in landscape 2026-07-02 15:19:25 +00:00

Merged #157 feat(landing): Russian default + SEO head, icons and OG card 2026-07-01 23:29:28 +00:00

Merged #156 fix(ui): VK Android external links + landing VK entry + drop 1️⃣ badge 2026-07-01 22:39:26 +00:00

Merged #155 feat(telemetry): local move-preview adoption metrics (Phase 4) 2026-07-01 21:39:59 +00:00

Merged #154 feat: on-device move preview (local eval) with network fallback 2026-07-01 21:02:09 +00:00

Merged #153 build(ui): drop sourcemaps from prod bundle 2026-07-01 15:00:44 +00:00

Merged #152 feat(ui): paint VK status bar to the app theme (VKWebAppSetViewSettings) 2026-07-01 12:39:11 +00:00

Merged #151 fix(ui): copy GCG to clipboard on Android in-app WebViews 2026-07-01 11:24:00 +00:00

Merged #148 fix(game): clear nudges on game completion 2026-07-01 11:23:39 +00:00

Merged #149 fix(ui): mobile WebView polish — tap-flash, VK haptics, VK swipe-back 2026-07-01 11:23:29 +00:00

Merged #147 feat(ui): first-run onboarding coachmarks 2026-06-30 20:09:33 +00:00

Merged #146 feat(assets): VK loading-screen Lottie — bouncing Erudit tile 2026-06-30 16:37:26 +00:00

Merged #145 docs: sync FUNCTIONAL/UI_DESIGN/.claude with the shipped VK + landscape behaviour (#140-#142 follow-up) 2026-06-30 06:07:37 +00:00

Merged #144 release: VK Mini App + landscape UI + dict v1.3.1 seed (development→master) 2026-06-30 05:37:43 +00:00

Merged #143 chore(ci): bump dictionary test-suite seed to v1.3.1 2026-06-30 05:29:44 +00:00

Merged #142 feat(vk): native share/copy, auto theme, friend-code deep link, home-bar safe area 2026-06-29 21:04:53 +00:00

Merged #141 fix(ui): landscape board zoom/pan + rack tile rendering + mobile block label 2026-06-29 19:11:05 +00:00

Merged #140 feat(vk): embed the game as a VK Mini App 2026-06-27 11:23:44 +00:00

Merged #139 chore: track the deploy-check skill in the repo 2026-06-24 13:07:22 +00:00

Merged #138 release: v1.7.0 — Telegram Mini App embedding enhancements 2026-06-24 11:49:44 +00:00

Merged #137 feat(telegram): native dialogs (experimental, stacked on #136) 2026-06-24 11:41:28 +00:00

Merged #136 feat(telegram): Mini App embedding enhancements 2026-06-24 11:41:15 +00:00

Merged #135 release: v1.6.0 — promo deep-link seeds EN variant (+ UI nits) 2026-06-23 21:02:19 +00:00

Merged #134 feat(telegram): promo deep-link seeds EN variant (+ UI: share label, header padding) 2026-06-23 20:50:14 +00:00

Merged #133 release v1.5.1: support-relay card + topic-reopen fixes 2026-06-23 16:54:01 +00:00

Merged #132 fix(telegram): support relay — text_mention card + reopen deleted topic 2026-06-23 16:51:04 +00:00

Merged #131 release v1.5.0: Telegram bot support relay 2026-06-23 16:16:04 +00:00

Merged #130 feat(telegram): bot support relay — per-user forum topics 2026-06-23 16:08:19 +00:00

Merged #129 release: v1.4.1 — Telegram nav (windowed, own back button, debug panel) 2026-06-23 13:27:31 +00:00

Merged #128 fix(ui): Android Telegram nav — windowed mode, no close guard 2026-06-23 13:14:05 +00:00

Merged #127 release: v1.4.0 — Telegram launch diagnostic + dynamic SDK load 2026-06-23 08:40:10 +00:00

Merged #126 feat(ui): diagnostic screen on /telegram/ instead of the landing bounce 2026-06-23 08:32:18 +00:00

Merged #125 Release: development → master 2026-06-22 22:36:42 +00:00

Merged #123 feat(ui): friends list as lobby-style rows with kebab + confirm modals 2026-06-22 22:28:25 +00:00

Merged #122 fix(deploy): force-recreate caddy on its roll so config-only changes apply 2026-06-22 20:09:43 +00:00

Merged #121 release v1.2.2: edge HTTP/3 stall fix + db-size dashboard threshold 2026-06-22 19:50:58 +00:00

Merged #120 fix(grafana): real byte thresholds for the Database size stat 2026-06-22 19:41:42 +00:00

Merged #119 fix(edge): suppress dead HTTP/3 advert with Alt-Svc: clear 2026-06-22 19:41:16 +00:00

Merged #114 Promote development → master: banner tip set + banner/push language fix 2026-06-22 18:28:01 +00:00

Merged #118 fix(i18n): banner/push follow the interface language even without a Settings change 2026-06-22 18:17:03 +00:00

Merged #117 feat(telegram): localized /start welcome with channel & chat follow links 2026-06-22 18:16:53 +00:00

Merged #116 feat(account): seed the time zone from the client's detected offset at creation 2026-06-22 17:07:53 +00:00

Merged #115 feat(feedback): capture app version + browser zone; Filed time in three zones 2026-06-22 17:07:21 +00:00

Merged #113 fix(i18n): banner/push language follows the device's saved choice 2026-06-22 14:26:38 +00:00

Merged #112 feat(ads): seed the house banner with the curated tip set 2026-06-22 14:26:29 +00:00

Merged #111 Promote development → master: Erudit blank star + dictionary v1.3.0 pin 2026-06-22 13:12:01 +00:00

Merged #110 chore(deploy): pin dictionary seed to v1.3.0 2026-06-22 13:06:26 +00:00

Merged #109 feat(ui): Erudit blank tiles carry the star (✻) mark 2026-06-22 11:06:22 +00:00

Merged #108 Promote development → master (docs finalize + UI tweaks + Telegram name fallback) 2026-06-22 07:27:41 +00:00

Merged #107 Finalize docs to production + lobby/new-game UI tweaks + Telegram name fallback 2026-06-22 07:15:38 +00:00

Merged #106 Promote development → master (deploy v2: versioning + visible jobs + rollback) 2026-06-22 06:01:04 +00:00

Merged #105 Deploy v2 — release versioning + visible deploy jobs + manual rollback 2026-06-22 05:40:55 +00:00

Merged #104 Promote development → master (initial production release: pre-release line + Stage 18) 2026-06-22 05:05:48 +00:00

Merged #103 Stage 18 — prod contour deploy (two-host registry rollout, rolling + auto-rollback) 2026-06-22 04:59:46 +00:00

Merged #102 fix(ui): retry Mini App launch on backend failure; hide account linking 2026-06-21 19:38:37 +00:00

Merged #101 perf(gateway): pool backend conns; loadtest evaluate hot path 2026-06-21 18:51:59 +00:00

Merged #100 fix(telegram): reply to /start only in private chats 2026-06-21 15:32:11 +00:00

Merged #99 feat(telegram): promo bot + channel-chat moderation gate 2026-06-21 15:21:23 +00:00

Merged #98 feat(ui): tile-crossword loading splash for cold lobby open 2026-06-21 10:19:15 +00:00

Merged #97 feat(gateway): temporary IP ban (fail2ban) + honeypot/honeytoken (PRERELEASE AG) 2026-06-21 07:28:31 +00:00

Merged #96 feat(telegram): split connector into home validator + remote bot (mTLS bot-link) 2026-06-21 05:35:02 +00:00

Merged #95 fix(ui): green both lobby scores on a tie, mute a 0:0 board 2026-06-20 19:33:07 +00:00

Merged #94 ci(deploy): probe backend /readyz so a dead backend fails the deploy 2026-06-20 19:04:52 +00:00

Merged #93 fix(engine): make .seed_version marker authoritative (no boot refusal) 2026-06-20 18:25:12 +00:00

Merged #92 feat(engine,deploy): seed-drift guard + track current dictionary release (v1.2.1) 2026-06-20 17:39:02 +00:00

Merged #91 refactor(db): squash migrations into a single baseline 2026-06-20 13:23:44 +00:00

Merged #90 feat(telegram,game): single bot + per-user variant preferences 2026-06-20 12:48:11 +00:00

Merged #89 feat(game): official first-move tile draw + admin step-by-step replay 2026-06-20 08:42:51 +00:00

Merged #88 feat(social): per-game friend request to disguised robots + lobby/stats/tile cosmetics 2026-06-19 20:06:20 +00:00

Merged #87 feat: sparser robot nudges, typed unread badge, lobby unread bump 2026-06-19 18:36:34 +00:00

Merged #86 feat(robot): shrink endgame think time when both sides pass 2026-06-19 14:00:59 +00:00

Merged #85 perf(ui): reuse hint result as move preview, skip redundant evaluate 2026-06-19 10:18:14 +00:00

Merged #84 feat(ui): UI polish batch (toast, gestures, lobby, settings, admin count) 2026-06-19 08:17:51 +00:00

Merged #83 feat(social): asymmetric per-user block, in-game block control, admin lists 2026-06-19 06:15:15 +00:00

Merged #82 fix(matchmaking): re-enqueue opens a new game, not the caller's own 2026-06-18 08:38:41 +00:00

Merged #81 feat(stats): show the best move word per game variant 2026-06-17 22:17:27 +00:00

Merged #80 feat: AI-game & resign UX cleanup (lobby drop, board reveal, GCG share fix, hide AI export) 2026-06-17 12:11:24 +00:00

Merged #79 fix(ui): pin the in-game ad-banner height on a short viewport 2026-06-17 10:28:53 +00:00

Merged #78 feat(observability): Scrabble — Messages Grafana dashboard 2026-06-17 10:05:16 +00:00

Merged #77 feat(chat): unread read-receipts — lobby/game dot, history-open ack, admin + metrics 2026-06-17 09:52:23 +00:00

Merged #76 feat(lobby): cap simultaneous quick games at 10 2026-06-16 21:00:41 +00:00

Merged #75 feat(nudge): name the sender; blink lobby cards; re-animate toasts 2026-06-16 19:33:57 +00:00

Merged #74 fix(robot): rare dot between handle words, prefer underscore 2026-06-16 14:20:37 +00:00

Merged #73 feat(robot): per-game opponent names from a wide corpus + frozen seat-name snapshot 2026-06-16 13:58:35 +00:00

Merged #72 docs(ui): correct the banner section to the shipped rotation behaviour 2026-06-16 05:57:14 +00:00

Merged #71 feat(ads): client banner rotation, fade UX & live toggle (PR2) 2026-06-16 05:45:01 +00:00

Merged #70 feat(ads): server-driven ad-banner backend, wire & admin console (PR1) 2026-06-15 21:09:29 +00:00

Merged #69 feat(robot): occasional off-strategy deviation, strict in the endgame 2026-06-15 19:49:28 +00:00

Merged #68 feat: honest AI opponent in quick game 2026-06-15 19:05:23 +00:00

Merged #67 feat(ui): external dictionary lookup link on the word-check tool 2026-06-15 16:32:23 +00:00

Merged #66 feat(ui): настоящий share friend-code + ссылка по текущему боту (service_language) 2026-06-15 15:42:19 +00:00

Merged #65 fix(ui): язык интерфейса по системе (не по боту) + pinch-zoom не триггерит back 2026-06-15 15:42:03 +00:00

Merged #64 feat(feedback): обратная связь от пользователей с разбором в админке и ролями 2026-06-15 11:30:09 +00:00

Merged #63 feat(admin): выдача подсказок в кошелёк пользователя из админки 2026-06-14 21:32:41 +00:00

Merged #62 feat(ui): тост «Ваш ход» называет предыдущего игрока 2026-06-14 20:57:19 +00:00

Merged #61 feat(admin): ручная блокировка пользователей в админке 2026-06-14 20:28:12 +00:00

Merged #60 feat(chat): лимит внутриигрового чата — 1 сообщение за ход 2026-06-14 18:33:01 +00:00

Merged #59 feat(ui): горизонтальная раскладка игрового экрана — доска по высоте + левая панель 2026-06-14 17:44:49 +00:00

Merged #58 feat(ui): мгновенное открытие партии — предзагрузка идущих партий + кэш черновика без «прыжка» 2026-06-14 16:08:20 +00:00

Merged #57 fix(engine): single-word rule connects along the play line 2026-06-14 15:02:32 +00:00

Merged #56 feat(ui): cross-screen caches + invitation delta channel + hint recenter on a zoomed board 2026-06-14 10:57:37 +00:00

Merged #55 fix(ui): keep lobby/game caches fresh across screens (no stale-status flash) 2026-06-14 08:51:23 +00:00

Merged #54 fix(ui): poll/refetch fallback for a missed opponent_joined in the open-game wait 2026-06-13 22:21:03 +00:00

Merged #53 feat(admin): online dictionary update — upload archive, preview word diff, install & activate 2026-06-13 21:41:01 +00:00

Merged #52 feat(ui): merge Exchange/Pass into one action; drop dead Tournaments tab 2026-06-13 19:58:37 +00:00

Merged #51 feat(lobby): enter the game immediately and wait for the opponent inside it 2026-06-13 09:14:51 +00:00

Merged #50 feat(ui): last-word letter highlight + dark bonus-square contrast 2026-06-12 11:12:05 +00:00

Merged #49 fix(admin): keep the filter query intact in console pager and export links 2026-06-12 09:41:37 +00:00

Merged #48 fix(engine): EvaluatePlay honors the single-word rule 2026-06-12 09:23:45 +00:00

Merged #47 Single-word rule indicators + auto-match select redesign 2026-06-12 08:45:00 +00:00

Merged #46 Multiple words per turn rule for Russian games 2026-06-12 07:22:55 +00:00

Merged #45 UI: drop tab-bar tap highlight; don't slide the first screen on launch 2026-06-11 21:55:21 +00:00

Merged #44 Backend infers play direction; UI previews words and gates submit on legality 2026-06-11 21:02:47 +00:00

Merged #43 UI: move history as a per-seat column grid + swipe-down to open 2026-06-11 19:10:59 +00:00

Merged #42 UI: fix last-move highlight, localize move history, clamp zoom overscroll 2026-06-11 17:32:34 +00:00

Merged #41 UI: widen the edge-swipe-back activation band 2026-06-11 15:39:28 +00:00

Merged #39 UI: tab-bar navigation — drop the hamburger 2026-06-11 13:46:41 +00:00

Merged #38 R7: final stress run + tuning 2026-06-11 09:35:15 +00:00

Merged #37 R6: refactor + docs reconciliation + de-staging 2026-06-10 16:03:18 +00:00

Merged #36 R5: bundle slimming — retarget the budget to the app, no code slimming 2026-06-10 13:18:27 +00:00

Merged #35 R4: push enrichment — events carry a state delta, kill the last poll 2026-06-10 10:30:49 +00:00

Merged #34 R3: edge hardening — body cap, rate-limit observability, auto-flag, landing split 2026-06-10 03:38:52 +00:00

Merged #33 R2: stress harness + contour resource observability + early run 2026-06-09 23:01:30 +00:00

Merged #32 R1: mark done in PRERELEASE.md (post-merge close-out) 2026-06-09 20:38:48 +00:00

Merged #31 R1: schema & naming reset — squash migrations, rename variants 2026-06-09 14:09:31 +00:00

Merged #30 Stage 17: robot-nudge frequency + per-game push language 2026-06-09 06:12:11 +00:00

Merged #29 Stage 17 #2: Connecting indicator + auto-retry (no more red toasts) 2026-06-09 05:46:43 +00:00

Merged #28 Stage 17 #4: enrich the out-of-app your-turn push + add game-over 2026-06-08 23:29:16 +00:00

Merged #27 Stage 17 #5: hide finished games from your own lobby list 2026-06-08 22:45:07 +00:00

Merged #26 Round-6 follow-up: UX polish + client-IP fix 2026-06-08 21:40:13 +00:00

Merged #25 Stage 17 round 6 (#18, PR D): admin Messages moderation section 2026-06-08 18:28:30 +00:00

Merged #24 Stage 17 round 6 (#16/#17, PR C): lobby sort + server-derived in-game friend state 2026-06-08 18:28:26 +00:00

Merged #23 Game/Telegram review polish: USSR flag, touch drag ghost, TG fullscreen header 2026-06-08 18:28:21 +00:00

Merged #22 Landing v2: icon switchers, ephemeral theme, channel link, drop browser CTA 2026-06-08 18:28:17 +00:00

Merged #21 Stage 17 round 6 (#16-20): landing page, /app/ move, cache + stream fixes 2026-06-08 14:07:50 +00:00

Merged #20 Stage 17 round 6 (#4/#5/#6): draft persistence wire + gateway + UI 2026-06-08 11:08:42 +00:00

Merged #19 Stage 17: test-contour verification & defect fixes 2026-06-07 19:20:40 +00:00

Merged #18 Fix Grafana dashboards mount; connector OTLP via AWG_CONF (no DNS=) 2026-06-05 15:46:59 +00:00

Merged #17 Stage 16: deploy infra & test contour 2026-06-05 15:00:46 +00:00

Merged #16 Stage 15: dual Telegram bots & language-gated variants 2026-06-05 07:40:53 +00:00

Merged #15 Stage 14: solver & dictionary split (publish solver + scrabble-dictionary artifact) 2026-06-05 06:03:36 +00:00

Merged #14 Stage 13: alphabet on the wire (UI alphabet-agnostic, TODO-4) 2026-06-04 15:00:57 +00:00

Merged #13 Stage 12: observability & performance (OTel/OTLP, metrics, guest GC) 2026-06-04 12:57:53 +00:00

Merged #12 Stage 11: account linking & merge (email + Telegram Login Widget) 2026-06-04 09:18:17 +00:00

Merged #11 Stage 10: admin console & dictionary ops (complaint review, hot-reload, broadcasts) 2026-06-04 07:27:49 +00:00

Merged #10 Stage 9: Telegram integration (connector, Mini App, out-of-app push) 2026-06-04 05:12:54 +00:00

Merged #9 Stage 8: UI social/account/history surfaces 2026-06-03 21:25:28 +00:00

Merged #8 Stage 7 polish: UI/UX refinements (shell, board zoom, hint-on-board, history, ...) 2026-06-03 15:39:41 +00:00

Merged #7 Stage 7: UI playable slice + remaining edge ops 2026-06-03 10:20:32 +00:00

Merged #6 Stage 6: gateway edge (Connect/FB, platform auth, sessions, push bridge, admin) 2026-06-02 20:43:00 +00:00

Merged #5 Stage 5: robot opponent (pool, seed-derived strategy, move driver, matchmaker substitution) 2026-06-02 19:05:18 +00:00

Merged #4 Stage 4: lobby & social (matchmaking, friends, blocks, chat+nudge, invitations, profile, email, multi-player drop-out) 2026-06-02 17:33:39 +00:00

Merged #3 Stage 3: game domain (lifecycle, rules, hint, word-check, history+GCG, stats) 2026-06-02 15:40:16 +00:00

Merged #2 Stage 2: engine package over scrabble-solver 2026-06-02 13:12:56 +00:00

Merged #1 Stage 1: backend foundation (Postgres, sessions, accounts, OTel) 2026-06-02 12:00:46 +00:00

1 Pull request proposed by 1 user