feat(chat): лимит внутриигрового чата — 1 сообщение за ход #60
Reference in New Issue
Block a user
Delete Branch "feature/chat-one-message-per-turn"
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?
Что сделано
Внутриигровой чат ограничен одним сообщением за ход на обоих концах.
PostMessageотклоняет второе сообщение за тот же ход (ErrChatAlreadySentThisTurn→ 409chat_already_sent). Граница хода — move-driventurn_started_at(новыйgame.TurnStartedAt, добавлен вsocial.GameReader); переиспользован существующийlastMessageAt.GameView.lastActivityUnix(lib/chatlimit.ts) — без счётчика, переживает переоткрытие чата, сбрасывается при смене хода. После лимита поле сменяется короткой подписью (не кнопкой «подтолкнуть»). Экран чата теперь дочитывает состояние на событиях смены хода (your_turn/opponent_moved/game_over/opponent_joined). Enter защищён!busyот двойной отправки в окне ожидания ответа.Решения (согласовано в интервью)
Тесты
TestChatOnePerTurn+ строка вdto_test; полный интеграционный слой зелёный; build/vet/gofmt чисто.chatlimit.test.ts; расширен чат e2e;pnpm check/test:unit/build/test:e2e(Chromium + WebKit) — всё зелёное.Доки обновлены: FUNCTIONAL (+ru), ARCHITECTURE, UI_DESIGN.