feat(dashboard): chat flags queue

Staff flag chat for review (chat_flag): one message or several from one
conversation, with who it is about and a note. The flag keeps a copy of the
messages and 10 before and after. The Chat Flags page (Inbox, badge for open
flags) filters by status, character and account; a flag links to the character,
the account (mute, warn, ban), their player reports, their other flags and the
conversation, and shows its history. Reviewers (chat_flag_review) mark it
actioned or dismissed, change the note, link a player report or comment; all of
it is in the flag's history and the audit log. The sidebar adds Team Chat.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Aaron Kimbrell
2026-09-29 18:22:43 -05:00
parent f3a49991d4
commit 6c43753fb2
10 changed files with 470 additions and 6 deletions

View File

@@ -25,7 +25,8 @@ namespace {
{"pendingGuildNames", snapshot.pendingGuildNames},
{"pendingProperties", snapshot.pendingProperties},
{"unresolvedBugReports", snapshot.unresolvedBugReports},
{"openEconomyFlags", snapshot.openEconomyFlags}
{"openEconomyFlags", snapshot.openEconomyFlags},
{"openChatFlags", snapshot.openChatFlags}
};
}
@@ -47,6 +48,7 @@ namespace {
changed("command_log", previous.commandLogMaxId != current.commandLogMaxId);
changed("audit_log", previous.auditLogMaxId != current.auditLogMaxId);
changed("economy_flags", previous.openEconomyFlags != current.openEconomyFlags || previous.economyFlagsMaxId != current.economyFlagsMaxId);
changed("chat_flags", previous.openChatFlags != current.openChatFlags || previous.chatFlagsMaxId != current.chatFlagsMaxId || previous.chatFlagsUpdatedAt != current.chatFlagsUpdatedAt);
}
}