feat(moderation): update auto-delete logic to include 'warn' status for message eligibility

This commit is contained in:
MythEclipse
2026-05-30 02:48:27 +07:00
parent 29a186fea1
commit 6eb83b864f
3 changed files with 27 additions and 7 deletions
+1 -1
View File
@@ -40,7 +40,7 @@ function getModerationBroadcaster(): ModerationBroadcaster | undefined {
}
function scheduleAutoDelete(row: MessageRecord): void {
if (row.ai_status !== "flagged") return;
if (row.ai_status !== "flagged" && row.ai_status !== "warn") return;
const run = () => {
attemptAutoDeleteFlaggedMessage(moderationClient, row).catch((error) => {
logger.error(
+4 -4
View File
@@ -20,7 +20,7 @@ const parseStringList = (value?: string | null): string[] => {
};
function isAutoDeleteEligible(message: MessageRecord): boolean {
if (message.ai_status !== "flagged") return false;
if (message.ai_status !== "flagged" && message.ai_status !== "warn") return false;
const confidence = message.ai_confidence ?? message.ai_moderation_score ?? 0;
if (confidence < config.AUTO_DELETE_MIN_CONFIDENCE) {
@@ -31,7 +31,7 @@ function isAutoDeleteEligible(message: MessageRecord): boolean {
return false;
}
const allowedSeverities = config.AUTO_DELETE_ALLOWED_SEVERITIES
const allowedSeverities = (config.AUTO_DELETE_ALLOWED_SEVERITIES || "")
.split(",")
.map((s) => s.trim())
.filter(Boolean);
@@ -159,8 +159,8 @@ export async function attemptAutoDeleteFlaggedMessage(
return { deleted: false, skipped: true, reason: "disabled" };
}
if (message.ai_status !== "flagged") {
const result = { deleted: false, skipped: true, reason: "not_flagged" } as AutoDeleteResult;
if (message.ai_status !== "flagged" && message.ai_status !== "warn") {
const result = { deleted: false, skipped: true, reason: "not_flagged_or_warn" } as AutoDeleteResult;
await logAutoDeleteAttempt(message, result);
return result;
}