feat: sparser robot nudges, typed unread badge, lobby unread bump
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Successful in 9s
CI / integration (pull_request) Successful in 13s
CI / ui (pull_request) Successful in 53s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m26s
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Successful in 9s
CI / integration (pull_request) Successful in 13s
CI / ui (pull_request) Successful in 53s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m26s
Three owner-requested polish changes: - robot: replace the lengthening 60-90 min -> 6 h proactive-nudge ramp with a flat uniform 9-12 h wait before every nudge; the existing sleep-window gate still skips and defers a nudge that would land in the robot's night. - ui: colour the lobby/in-game unread dot by type -- the regular danger colour when a chat message is unread, a softer amber (--warn) when only nudges are. Adds a per-viewer unread_messages flag (chat_messages.kind='message') across the backend DTO, FlatBuffers wire, gateway transcode and the UI store. - ui: float games with any unread notification to the top of the lobby's your-turn and opponent-turn sections (finished keeps its order), reusing the existing unread_chat flag. Docs (ARCHITECTURE 7, FUNCTIONAL + _ru) updated. No DB migration; the new wire field is backward-compatible.
This commit is contained in:
@@ -75,8 +75,9 @@ nudge) приходят от бота **этой партии** — по язы
|
||||
Список **мои игры** разбит на три секции —
|
||||
*твой ход*, *ход соперника* и *завершённые* (пустые секции скрыты) — и упорядочен так,
|
||||
что игры, ждущие твоего хода, идут первыми, дольше всего ждущие сверху, а игры на ходу
|
||||
соперника и завершённые — самые свежие сверху; отображается компактным списком с
|
||||
линиями-разделителями. Пока лобби открыто и партия из списка **переходит на твой ход или
|
||||
соперника и завершённые — самые свежие сверху; внутри секций «твой ход» и «ход соперника»
|
||||
игра с любым непрочитанным уведомлением всплывает наверх (секция «завершённые» сохраняет
|
||||
свой порядок). Отображается компактным списком с линиями-разделителями. Пока лобби открыто и партия из списка **переходит на твой ход или
|
||||
завершается**, её значок статуса **дважды моргает**, привлекая внимание (переход на ход
|
||||
соперника — без моргания, применяется на месте). Завершённую партию можно **убрать из своего списка**:
|
||||
проведи по строке завершённой партии влево (или, на десктопе, нажми её **⋮**), чтобы открыть
|
||||
@@ -166,8 +167,9 @@ nudge) приходят от бота **этой партии** — по язы
|
||||
человеческим темпом — чаще короткие раздумья, изредка долгие, и ночная пауза,
|
||||
подстроенная под день игрока; когда партия уже явно решена и обе стороны только пасуют,
|
||||
он перестаёт её затягивать — отвечает на вынужденные пасы примерно в темпе самого игрока,
|
||||
а не после долгого раздумья. На nudge отвечает за несколько минут и
|
||||
сам шлёт nudge, когда игрок надолго пропал. Носит человекоподобное имя, подходящее
|
||||
а не после долгого раздумья. На nudge отвечает за несколько минут и, когда игрок
|
||||
держит его в ожидании, сам шлёт nudge редко — примерно раз в 9-12 часов и никогда во время
|
||||
своей ночной паузы. Носит человекоподобное имя, подходящее
|
||||
языку партии — каждую партию новое, из широкого международного пула реальных имён и
|
||||
никнеймов, так что арена кажется полной разных игроков (в русской партии — в основном
|
||||
русские имена, без восточноазиатских письменностей; в международной — весь спектр); не общается в чате и
|
||||
@@ -222,8 +224,9 @@ nudge) приходят от бота **этой партии** — по язы
|
||||
открываемый по 💬 в шапке истории ходов (с кнопкой «назад» в партию). В ИИ-партии чата нет, поэтому её
|
||||
экран связи — только проверка слова; а после завершения ИИ-партии (чата нет, словарь закрыт) сам вход
|
||||
💬 исчезает. Непрочитанная запись чата —
|
||||
сообщение **или nudge** от соперника — зажигает маленькую **красную точку** рядом с партией в
|
||||
**лобби** и на **строке счёта** партии. Открытие **истории ходов** считается прочтением чата, даже
|
||||
сообщение **или nudge** от соперника — зажигает маленькую **точку** рядом с партией в
|
||||
**лобби** и на **строке счёта** партии, **красную при непрочитанном сообщении и мягкую жёлтую,
|
||||
когда непрочитаны только nudge'и**. Открытие **истории ходов** считается прочтением чата, даже
|
||||
без захода в него: точка гаснет, а значок 💬 **дважды мигает**. Nudge также гаснет в момент, когда
|
||||
его получатель **делает ход**.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user