diff --git a/apps/server/events/bus.ts b/apps/server/events/bus.ts index bce73ef..6843533 100644 --- a/apps/server/events/bus.ts +++ b/apps/server/events/bus.ts @@ -22,8 +22,9 @@ export class EventEmitterBus implements EventBus { constructor() { this.emitter = new EventEmitter(); - // Allow more listeners for complex systems - this.emitter.setMaxListeners(100); + // SSE subscriptions register per-event-type listeners (30+ types × N clients). + // Listeners are properly cleaned up on disconnect, so disable the warning. + this.emitter.setMaxListeners(0); } /** diff --git a/apps/server/test/integration/real-providers/harness.ts b/apps/server/test/integration/real-providers/harness.ts index f872229..34545f0 100644 --- a/apps/server/test/integration/real-providers/harness.ts +++ b/apps/server/test/integration/real-providers/harness.ts @@ -205,7 +205,7 @@ export async function createRealProviderHarness( const accountRepository = new DrizzleAccountRepository(db); const initiativeRepository = new DrizzleInitiativeRepository(db); - // Create event bus with capture (parent class already sets maxListeners to 100) + // Create event bus with capture (parent class disables maxListeners warning) const eventBus = new CapturingEventBus(); // Create REAL agent manager (not mock!)