Stage 17 round 6 (#18, PR D): admin Messages moderation section
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Successful in 9s
CI / integration (pull_request) Successful in 11s
CI / ui (pull_request) Successful in 32s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m14s
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Successful in 9s
CI / integration (pull_request) Successful in 11s
CI / ui (pull_request) Successful in 32s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m14s
A new /_gm/messages console page lists posted chat messages (nudges excluded) newest-first — time, source (guest/robot/oldest identity kind), sender (linked to the user card), IP, body, game (linked to the game card) — searchable by sender name / external-id glob masks and pinnable to one game (?game=) or sender (?user=), linked from the game and user cards. The list query lives in social (raw SQL, kind='message', source via a SQL CASE), reusing the now-exported account.LikePattern. Server-rendered adminconsole MessagesView + messages.gohtml, 50/page via the shared pager. Tests: adminconsole render case; backend integration AdminListMessages (real Postgres) — nudge exclusion, game/sender pins, glob masks, source. Docs: ARCHITECTURE section 8 chat moderation, PLAN round-6.
This commit is contained in:
@@ -1378,6 +1378,15 @@ provided cert) at the contour caddy; prod VPN; rollback.
|
||||
sub-kind, decline) to the **original requester**, whose open game re-derives its friend state.
|
||||
Owner decisions: a declined request stays "request sent" (non-revealing); an accepted opponent
|
||||
reads "✓ in friends"; rack-tile reorder while tiles are placed stays disabled by design.
|
||||
- **Admin "Messages" moderation section (#18, PR D):** a new `/_gm/messages` console page lists
|
||||
posted chat messages (**nudges excluded**) newest-first — time · **source** (guest / robot /
|
||||
oldest identity kind) · sender (→ user card) · IP · body · game (→ game card) — searchable by
|
||||
sender name / external-id glob masks and pinnable to one game (`?game=`) or sender (`?user=`),
|
||||
linked from the game and user cards. Server-rendered (`adminconsole` `MessagesView` +
|
||||
`messages.gohtml`, 50/page via the shared pager); the list query lives in `social` (raw SQL,
|
||||
`kind='message'`, the source via a SQL `CASE`), reusing the now-exported `account.LikePattern`
|
||||
glob helper. Owner decisions: messages only (no nudges), separate name/ext masks (matching the
|
||||
Users section), a top-level nav entry plus the card deep-links.
|
||||
|
||||
## Deferred TODOs (cross-stage)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user