feat(ai-moderation): reset offensive nickname instead of deleting message

When the ONLY violation is offensive_username (message content clean):
- Message is NOT deleted (nickname-only violation bypasses auto-delete)
- Member's server nickname is reset to default username via
  setNickname(null) (Discord shows the global username again)
- Action 'reset_nickname' logged to moderation_actions; cooldown
  10min per guild:user (LRU) so repeated messages by same member
  don't hammer the Discord PATCH
- Config: AUTO_NICKNAME_RESET_ENABLED / AUTO_NICKNAME_RESET_COOLDOWN_MS
This commit is contained in:
asepharyana
2026-08-10 11:48:27 +07:00
parent ecbb538c9f
commit 185d81f0e0
6 changed files with 260 additions and 2 deletions
@@ -615,6 +615,7 @@ export const pgModerationActionsTable = pgTable(
"warn_user",
"kick_user",
"ban_user",
"reset_nickname",
],
}).notNull(),
reason: pgText("reason"),