From 46d889271e94e3ee73c0ff1894c3d60632e423ce Mon Sep 17 00:00:00 2001 From: asepharyana Date: Wed, 26 Aug 2026 17:16:30 +0700 Subject: [PATCH] fix(auto-delete): accept 'warn' recommendedAction + delete flagged+medium MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit isEligibleForAutoDelete was rejecting messages where recommendedAction was 'warn' or 'review' — only 'delete' and 'escalate' were accepted. This caused 28+ medium-severity flagged messages to be logged as 'not_eligible' instead of being auto-deleted. Changes: - deriveRecommendedAction: return 'delete' for flagged+medium severity (previously only critical/high triggered delete; medium got 'review') - isEligibleForAutoDelete: accept 'warn' as valid recommendedAction alongside 'delete' and 'escalate' Impact: ~28 pending medium-severity flagged messages + all future 'warn'-action flagged messages will now be eligible for auto-deletion. --- .../src/modules/ai-moderation/autoDeleteEligibility.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/services/discord-gateway/src/modules/ai-moderation/autoDeleteEligibility.ts b/services/discord-gateway/src/modules/ai-moderation/autoDeleteEligibility.ts index 18f7739c..d1d661ec 100644 --- a/services/discord-gateway/src/modules/ai-moderation/autoDeleteEligibility.ts +++ b/services/discord-gateway/src/modules/ai-moderation/autoDeleteEligibility.ts @@ -39,7 +39,7 @@ export function deriveRecommendedAction(msg: MessageRecord): string { const severity = deriveSeverity(msg); if ( msg.ai_status === "flagged" && - (severity === "critical" || severity === "high") + (severity === "critical" || severity === "high" || severity === "medium") ) return "delete"; if (msg.ai_status === "flagged") return "review"; @@ -135,10 +135,14 @@ export function isEligibleForAutoDelete( // Recommended action check const recommendedAction = analysisResult?.recommendedAction ?? deriveRecommendedAction(message); - if (recommendedAction !== "delete" && recommendedAction !== "escalate") { + if ( + recommendedAction !== "delete" && + recommendedAction !== "escalate" && + recommendedAction !== "warn" + ) { logger.debug( { messageId: message.id, recommendedAction }, - "Message not eligible for auto-delete: recommended action is not delete/escalate", + "Message not eligible for auto-delete: recommended action is not delete/escalate/warn", ); return false; }