fix: false positive gambling detection + route collision + WS events (#1)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
MythEclipse
2026-06-02 10:44:27 +07:00
co-authored by Claude Opus 4.8
parent 34719d3366
commit f1ddca5eee
11 changed files with 285 additions and 33 deletions
@@ -3,6 +3,7 @@ import {
parseModerationResponse,
runModerationAnalysis,
} from "../../src/moderation/llmModerationClient";
import { buildGeneralImageVisionPrompt } from "../../src/moderation/stickerPrompt";
import type { MessageRecord } from "../../src/moderation/types";
vi.mock("../../src/retry", () => ({
@@ -1670,4 +1671,52 @@ describe("runModerationAnalysis", () => {
expect(result[0].score).toBe(0.0);
});
});
describe("Vision prompts", () => {
it("buildGeneralImageVisionPrompt includes gambling false positive prevention", () => {
const prompt = buildGeneralImageVisionPrompt(
"[gambar dari attachment food.jpg]",
"msg123",
);
// Should explicitly warn against false positives
expect(prompt).toContain("Cryptocurrency UI");
expect(prompt).toContain("Binance");
expect(prompt).toContain("BUKAN judi");
expect(prompt).toContain("finance apps");
// Should be clear about what IS gambling
expect(prompt).toContain("promosi atau antarmuka situs judi");
expect(prompt).toContain("BUKTI VISUAL JELAS");
// Should warn against hallucinations
expect(prompt).toContain("Jangan flag berdasarkan kecurigaan");
expect(prompt).toContain("BUKTI VISUAL JELAS");
});
it("buildGeneralImageVisionPrompt warns against hallucinating gambling from casual images", () => {
const prompt = buildGeneralImageVisionPrompt(
"[gambar nasgor/fried rice]",
"msg123",
);
// Should explicitly state casual images are not gambling
expect(prompt).toContain("Gambar makanan");
expect(prompt).toContain("TIDAK PERNAH gambling");
expect(prompt).toContain("bahkan jika ada teks finansial");
});
it("buildGeneralImageVisionPrompt warns against false positive crypto flagging", () => {
const prompt = buildGeneralImageVisionPrompt(
"[screenshot dari exchange]",
"msg123",
);
// Explicitly state crypto/finance UI is NOT gambling
expect(prompt).toContain("Cryptocurrency UI atau finance apps");
expect(prompt).toContain("Coinbase");
expect(prompt).toContain("exchange");
expect(prompt).toContain("BUKAN judi");
});
});
});