diff --git a/src/logging/console-capture.test.ts b/src/logging/console-capture.test.ts index fe10a6da4..312fb189a 100644 --- a/src/logging/console-capture.test.ts +++ b/src/logging/console-capture.test.ts @@ -92,6 +92,17 @@ describe("enableConsoleCapture", () => { vi.useRealTimers(); }); + it("suppresses discord EventQueue slow listener duplicates", () => { + setLoggerOverride({ level: "info", file: tempLogPath() }); + const warn = vi.fn(); + console.warn = warn; + enableConsoleCapture(); + console.warn( + "[EventQueue] Slow listener detected: DiscordMessageListener took 12.3 seconds for event MESSAGE_CREATE", + ); + expect(warn).not.toHaveBeenCalled(); + }); + it("does not double-prefix timestamps", () => { setLoggerOverride({ level: "info", file: tempLogPath() }); const warn = vi.fn(); diff --git a/src/logging/console.ts b/src/logging/console.ts index 2cd649d15..92f4a4235 100644 --- a/src/logging/console.ts +++ b/src/logging/console.ts @@ -90,7 +90,16 @@ const SUPPRESSED_CONSOLE_PREFIXES = [ function shouldSuppressConsoleMessage(message: string): boolean { if (isVerbose()) return false; - return SUPPRESSED_CONSOLE_PREFIXES.some((prefix) => message.startsWith(prefix)); + if (SUPPRESSED_CONSOLE_PREFIXES.some((prefix) => message.startsWith(prefix))) { + return true; + } + if ( + message.startsWith("[EventQueue] Slow listener detected") && + message.includes("DiscordMessageListener") + ) { + return true; + } + return false; } function isEpipeError(err: unknown): boolean {