Commit Graph

  • 115c92b39a fix(ads): pulse a lone banner message through the fade cycle Ilia Denisov 2026-06-16 06:39:12 +02:00
  • 9f83962bf7 feat(ads): carry the banner scroll position across navigation Ilia Denisov 2026-06-16 06:26:12 +02:00
  • dc582e9f73 fix(ads): restore reliable banner fades + keep banner on profile update Ilia Denisov 2026-06-16 06:09:35 +02:00
  • 5fb0daa746 fix(ads): banner truly continuous across navigation + re-measure on resize Ilia Denisov 2026-06-16 05:45:38 +02:00
  • 3b20abe0bd feat(ads): banner under the header, continuous across navigation, robust fades Ilia Denisov 2026-06-16 00:35:11 +02:00
  • 9e72e2c799 feat(ads): banner message editor — top help aside + multi-line fields Ilia Denisov 2026-06-15 23:53:42 +02:00
  • 53c6e34c13 feat(ads): add a link-formatting help aside to the banner message editor Ilia Denisov 2026-06-15 23:35:52 +02:00
  • cb4a31a860 feat(ads): client banner rotation, fade UX & live toggle (PR2) Ilia Denisov 2026-06-15 23:25:27 +02:00
  • a5f066224c Merge pull request 'feat(ads): server-driven ad-banner backend, wire & admin console (PR1)' (#70) from feature/ad-network-backend into development developer 2026-06-15 21:09:29 +00:00
  • 00a33c227b fix(ads): verify a message belongs to its campaign before edit/delete Ilia Denisov 2026-06-15 23:05:41 +02:00
  • 0946a3f66c feat(ads): server-driven ad-banner backend, wire & admin console (PR1) Ilia Denisov 2026-06-15 23:00:19 +02:00
  • f59c8dcd43 Merge pull request 'feat(robot): occasional off-strategy deviation, strict in the endgame' (#69) from feature/ai-strategy-deviation into development developer 2026-06-15 19:49:28 +00:00
  • 3bceafbc12 feat(robot): occasional off-strategy deviation, strict in the endgame Ilia Denisov 2026-06-15 21:37:23 +02:00
  • 9e6899bb7d Merge pull request 'feat: honest AI opponent in quick game' (#68) from feature/ai-opponent into development developer 2026-06-15 19:05:23 +00:00
  • d2a9441287 feat: AI-game refinements (GCG, your_turn, admin, metrics) Ilia Denisov 2026-06-15 20:49:49 +02:00
  • aa765a0c06 feat: honest AI opponent in quick game Ilia Denisov 2026-06-15 20:14:24 +02:00
  • 91d5c341ef Merge pull request 'feat(ui): external dictionary lookup link on the word-check tool' (#67) from feat/dict-lookup-link into development developer 2026-06-15 16:32:23 +00:00
  • bd0482c376 feat(ui): route all in-app external links through Telegram openLink Ilia Denisov 2026-06-15 18:29:53 +02:00
  • 8e0d7f9e17 feat(ui): external dictionary lookup link on the word-check tool Ilia Denisov 2026-06-15 18:14:19 +02:00
  • 4d6df4bd8b Merge pull request 'feat(ui): настоящий share friend-code + ссылка по текущему боту (service_language)' (#66) from feat/friend-invite-share into development developer 2026-06-15 15:42:19 +00:00
  • 4b454db219 Merge pull request 'fix(ui): язык интерфейса по системе (не по боту) + pinch-zoom не триггерит back' (#65) from fix/locale-and-pinch-swipe into development developer 2026-06-15 15:42:03 +00:00
  • 8073971fca docs: bake Telegram invite & launch refinements into ARCHITECTURE/UI_DESIGN Ilia Denisov 2026-06-15 17:39:35 +02:00
  • 00129414e5 feat(ui): force Mini App fullscreen on mobile, not via the share link Ilia Denisov 2026-06-15 17:34:07 +02:00
  • 853730823b feat(ui): refine Telegram invite & close UX Ilia Denisov 2026-06-15 17:22:09 +02:00
  • 01d2d1f368 fix(ui): per-bot invite caption + friendly self-redeem note Ilia Denisov 2026-06-15 16:09:10 +02:00
  • 03eb8044ff feat(ui): real friend-invite share with a per-bot link Ilia Denisov 2026-06-15 15:49:36 +02:00
  • 6679260d0a feat(session): carry the bot service_language on the Session wire Ilia Denisov 2026-06-15 15:49:26 +02:00
  • 800a692766 fix(ui): a board pinch-zoom no longer triggers swipe-back Ilia Denisov 2026-06-15 13:52:52 +02:00
  • 30a7c24140 fix(ui): interface language follows the device, not the Telegram bot Ilia Denisov 2026-06-15 13:52:52 +02:00
  • 711fe6e594 Merge pull request 'feat(feedback): обратная связь от пользователей с разбором в админке и ролями' (#64) from feature/feedback into development developer 2026-06-15 11:30:09 +00:00
  • 277954c47f feat(feedback): render links in the operator reply (open in a new tab) Ilia Denisov 2026-06-15 13:25:36 +02:00
  • 55ed87fb11 feat(feedback): snapshot the sender's language and connector bot at submit Ilia Denisov 2026-06-15 13:25:27 +02:00
  • 49b67a0354 docs(feedback): note interface language + connector bot in the admin detail Ilia Denisov 2026-06-15 13:11:13 +02:00
  • 2a4ce319d9 feat(feedback): show the sender's interface language and connector bot in admin Ilia Denisov 2026-06-15 13:07:47 +02:00
  • 1ae43080ec fix(feedback): show the operator reply only on the player's latest message Ilia Denisov 2026-06-15 12:59:18 +02:00
  • 5287794a72 fix(feedback): theme buttons, badge the Info button, simplify admin actions Ilia Denisov 2026-06-15 12:45:00 +02:00
  • 419ea11b14 feat(feedback): in-app user feedback with admin review and account roles Ilia Denisov 2026-06-15 12:23:10 +02:00
  • fc848157d6 Merge pull request 'feat(admin): выдача подсказок в кошелёк пользователя из админки' (#63) from feature/admin-grant-hints into development developer 2026-06-14 21:32:40 +00:00
  • 192e4a2433 feat(admin): grant hints to a user's wallet from the console Ilia Denisov 2026-06-14 23:21:30 +02:00
  • d3bedbb5b6 Merge pull request 'feat(ui): тост «Ваш ход» называет предыдущего игрока' (#62) from feature/your-turn-toast-opponent-name into development developer 2026-06-14 20:57:19 +00:00
  • ac62d29ef7 feat(ui): name the previous player in the your-turn toast Ilia Denisov 2026-06-14 22:52:15 +02:00
  • a80952a835 Merge pull request 'feat(admin): ручная блокировка пользователей в админке' (#61) from feature/admin-user-blocking into development developer 2026-06-14 20:28:12 +00:00
  • 290874720f perf(admin): cache the suspension gate lookup Ilia Denisov 2026-06-14 22:24:57 +02:00
  • d1ba666495 feat(admin): manual account blocking (suspensions) Ilia Denisov 2026-06-14 21:55:59 +02:00
  • 9d85090075 Merge pull request 'feat(chat): лимит внутриигрового чата — 1 сообщение за ход' (#60) from feature/chat-one-message-per-turn into development developer 2026-06-14 18:33:01 +00:00
  • 5f53ec81b9 fix(chat): no chat field or nudge on a finished game Ilia Denisov 2026-06-14 20:29:47 +02:00
  • 02681ae9e0 feat(chat): limit in-game chat to one message per turn Ilia Denisov 2026-06-14 20:18:58 +02:00
  • fc28e43e43 Merge pull request 'feat(ui): горизонтальная раскладка игрового экрана — доска по высоте + левая панель' (#59) from feature/landscape-game-layout into development developer 2026-06-14 17:44:49 +00:00
  • 02ef31c464 feat(ui): landscape iteration — reorder left panel, enable board zoom Ilia Denisov 2026-06-14 19:39:06 +02:00
  • 9ec72c8377 feat(ui): landscape two-column game layout, board fitted by height Ilia Denisov 2026-06-14 19:06:35 +02:00
  • 7716353f84 Merge pull request 'feat(ui): мгновенное открытие партии — предзагрузка идущих партий + кэш черновика без «прыжка»' (#58) from feature/instant-game-open into development developer 2026-06-14 16:08:20 +00:00
  • c9021fc070 feat(ui): preload ongoing games and cache the draft for an instant, jump-free game open Ilia Denisov 2026-06-14 17:53:03 +02:00
  • 4f2fc795ec Merge pull request 'fix(engine): single-word rule connects along the play line' (#57) from feature/single-word-connectivity into development developer 2026-06-14 15:02:32 +00:00
  • 222eaf730f feat(game): void unreplayable games as a draw instead of erroring Ilia Denisov 2026-06-14 16:57:27 +02:00
  • ff87a3bf62 fix(engine): single-word rule connects along the play line Ilia Denisov 2026-06-14 14:49:16 +02:00
  • c7e177f911 Merge pull request 'feat(ui): cross-screen caches + invitation delta channel + hint recenter on a zoomed board' (#56) from feature/lobby-cache-any-screen-invitation-delta into development developer 2026-06-14 10:57:37 +00:00
  • abe1038333 test(ui): run e2e against the minified vite build, not the dev server Ilia Denisov 2026-06-14 12:54:44 +02:00
  • 553152e195 refactor(ui): harden the board's recenter dependency and gate it on a real bump Ilia Denisov 2026-06-14 12:40:08 +02:00
  • 1cc6c0d56e fix(ui): stop the game-screen freeze when an opponent joins (reactive self-loop) Ilia Denisov 2026-06-14 12:39:57 +02:00
  • f3914af793 fix(ui): recentre the board on a hint taken while already zoomed in Ilia Denisov 2026-06-14 11:44:04 +02:00
  • 56dbf86472 feat(lobby): keep lobby/game caches fresh from any screen + invitation delta channel Ilia Denisov 2026-06-14 11:22:47 +02:00
  • 5312b11f0e Merge pull request 'fix(ui): keep lobby/game caches fresh across screens (no stale-status flash)' (#55) from feature/ui-cross-screen-cache-freshness into development developer 2026-06-14 08:51:23 +00:00
  • cf70e6b1fc fix(ui): keep lobby/game caches fresh across screens (no stale-status flash) Ilia Denisov 2026-06-14 10:42:43 +02:00
  • 38fa104f7f Merge pull request 'fix(ui): poll/refetch fallback for a missed opponent_joined in the open-game wait' (#54) from feature/open-game-wait-poll-fallback into development developer 2026-06-13 22:21:03 +00:00
  • 4409253dce fix(ui): also resync an open game on a foreground regain without a stream drop Ilia Denisov 2026-06-14 00:14:49 +02:00
  • 16402e64c0 fix(ui): poll/refetch fallback for a missed opponent_joined in the open-game wait Ilia Denisov 2026-06-14 00:02:57 +02:00
  • 315bcf75ae Merge pull request 'feat(admin): online dictionary update — upload archive, preview word diff, install & activate' (#53) from feature/dict-admin-online-upload into development developer 2026-06-13 21:41:01 +00:00
  • 0f3671f42d feat(admin): online dictionary update — upload archive, preview word diff, install & activate Ilia Denisov 2026-06-13 23:29:06 +02:00
  • 5ff07da025 Merge pull request 'feat(ui): merge Exchange/Pass into one action; drop dead Tournaments tab' (#52) from feature/ui-merge-exchange-pass into development developer 2026-06-13 19:58:37 +00:00
  • a4e6727c70 feat(ui): merge Exchange/Pass into one action; drop dead Tournaments tab Ilia Denisov 2026-06-13 16:41:55 +02:00
  • 1d41cf8222 Merge pull request 'feat(lobby): enter the game immediately and wait for the opponent inside it' (#51) from feature/quick-game-open-wait into development developer 2026-06-13 09:14:51 +00:00
  • 94534ad0f2 feat(admin): add an 'open' filter to the console games list Ilia Denisov 2026-06-13 11:08:57 +02:00
  • efaf633691 fix(gateway): put the opened game on the wire even when the enqueue is not yet matched Ilia Denisov 2026-06-13 10:50:16 +02:00
  • a3cb917ec7 fix(lobby): land in the opened game on enqueue + keep open games active in the lobby Ilia Denisov 2026-06-13 10:29:56 +02:00
  • c305363ccd feat(lobby): enter the game immediately and wait for the opponent inside it Ilia Denisov 2026-06-12 16:00:22 +02:00
  • 10dc1f0d48 Merge pull request 'feat(ui): last-word letter highlight + dark bonus-square contrast' (#50) from feature/board-recent-highlight-and-dark-bonus into development developer 2026-06-12 11:12:04 +00:00
  • cb75623677 feat(ui): lighten the light-theme last-word highlight to a brighter burgundy Ilia Denisov 2026-06-12 13:07:47 +02:00
  • 107add13b6 feat(ui): use a warm burgundy for the last-word highlight in both themes Ilia Denisov 2026-06-12 12:59:39 +02:00
  • 359758a01a feat(ui): tint last-word letters for the recent highlight; lift dark bonus contrast Ilia Denisov 2026-06-12 12:31:39 +02:00
  • f67a357e62 Merge pull request 'fix(admin): keep the filter query intact in console pager and export links' (#49) from feature/admin-pager-filter-encoding into development developer 2026-06-12 09:41:37 +00:00
  • eeb078d528 fix(admin): keep the filter query intact in console pager and export links Ilia Denisov 2026-06-12 11:38:26 +02:00
  • 641ac88b2d Merge pull request 'fix(engine): EvaluatePlay honors the single-word rule' (#48) from feature/single-word-evaluate-fix into development developer 2026-06-12 09:23:45 +00:00
  • 5fa51d04d9 fix(engine): EvaluatePlay honors the single-word rule Ilia Denisov 2026-06-12 11:14:20 +02:00
  • f1e77b5826 Merge pull request 'Single-word rule indicators + auto-match select redesign' (#47) from feature/rule-indicators-newgame into development developer 2026-06-12 08:44:59 +00:00
  • f73f76220d test(ui): cover the invitation-card single-word indicator Ilia Denisov 2026-06-12 10:36:13 +02:00
  • 0b57400c6f feat(ui): single-word rule indicators + auto-match select redesign Ilia Denisov 2026-06-12 10:28:29 +02:00
  • b56a45f0e0 Merge pull request 'Multiple words per turn rule for Russian games' (#46) from feature/single-word-rule into development developer 2026-06-12 07:22:55 +00:00
  • 74455c7b12 feat: "multiple words per turn" rule for Russian games Ilia Denisov 2026-06-12 02:17:30 +02:00
  • d4a1616d03 Merge pull request 'UI: drop tab-bar tap highlight; don't slide the first screen on launch' (#45) from feature/ui-tap-startup-polish into development developer 2026-06-11 21:55:21 +00:00
  • 390b4c756f UI: soften the board checkerboard's dark cells Ilia Denisov 2026-06-11 23:51:39 +02:00
  • c32a15730a UI: fix the lobby slide on Telegram cold launch (correct the cause) Ilia Denisov 2026-06-11 23:40:40 +02:00
  • 9277a70565 UI: drop tab-bar tap highlight; don't slide the first screen on launch Ilia Denisov 2026-06-11 23:19:16 +02:00
  • 5648f4a0bb Merge pull request 'Backend infers play direction; UI previews words and gates submit on legality' (#44) from feature/auto-play-direction into development developer 2026-06-11 21:02:47 +00:00
  • 883212f9d1 UI: remove the lobby game-row tap highlight Ilia Denisov 2026-06-11 22:58:37 +02:00
  • 92f48a3b12 Backend infers play direction; UI previews words and gates submit on legality Ilia Denisov 2026-06-11 22:42:33 +02:00
  • feee3d6511 Merge pull request 'UI: move history as a per-seat column grid + swipe-down to open' (#43) from feature/ui-history-grid into development developer 2026-06-11 19:10:59 +00:00
  • a41c35d5f9 UI: gesture & history polish — pinch/swipe fix, wider back-swipe, nudge align, history overscroll Ilia Denisov 2026-06-11 21:01:43 +02:00
  • 6268b9d2a2 UI: pin the SPA document so iOS/WKWebView cannot rubber-band the page Ilia Denisov 2026-06-11 20:43:12 +02:00
  • e68fe61e39 UI: render move history as a per-seat column grid + swipe-down to open Ilia Denisov 2026-06-11 20:18:23 +02:00
  • 4c65923544 Merge pull request 'UI: fix last-move highlight, localize move history, clamp zoom overscroll' (#42) from feature/ui-recent-highlight-fixes into development developer 2026-06-11 17:32:34 +00:00