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:
@@ -46,6 +46,9 @@ type GameView struct {
|
||||
VsAI bool
|
||||
// UnreadChat is a per-viewer flag: the requesting player has unread chat in this game.
|
||||
UnreadChat bool
|
||||
// UnreadMessages is a per-viewer flag: at least one unread entry is a real message (not just
|
||||
// a nudge), so the badge can be coloured apart from the nudge-only case.
|
||||
UnreadMessages bool
|
||||
}
|
||||
|
||||
// TileRecord is one tile in a decoded MoveRecord (the concrete letter, "?" for a blank
|
||||
@@ -165,6 +168,7 @@ func BuildGameView(b *flatbuffers.Builder, g GameView) flatbuffers.UOffsetT {
|
||||
fb.GameViewAddLastActivityUnix(b, g.LastActivityUnix)
|
||||
fb.GameViewAddVsAi(b, g.VsAI)
|
||||
fb.GameViewAddUnreadChat(b, g.UnreadChat)
|
||||
fb.GameViewAddUnreadMessages(b, g.UnreadMessages)
|
||||
return fb.GameViewEnd(b)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user