fix: require explicit system event session keys

This commit is contained in:
Peter Steinberger
2026-01-09 21:58:55 +01:00
parent cb2a365594
commit 42a0089b3b
14 changed files with 123 additions and 53 deletions

View File

@@ -4,6 +4,8 @@ import os from "node:os";
import path from "node:path";
import { afterEach, beforeEach, expect, vi } from "vitest";
import { WebSocket } from "ws";
import { loadConfig } from "../config/config.js";
import { resolveMainSessionKey } from "../config/sessions.js";
import { resetAgentRunContextForTest } from "../infra/agent-events.js";
import { drainSystemEvents, peekSystemEvents } from "../infra/system-events.js";
import { rawDataToString } from "../infra/ws.js";
@@ -373,7 +375,7 @@ export function installGatewayTestHooks() {
embeddedRunMock.abortCalls = [];
embeddedRunMock.waitCalls = [];
embeddedRunMock.waitResults.clear();
drainSystemEvents();
drainSystemEvents(resolveMainSessionKey(loadConfig()));
resetAgentRunContextForTest();
const mod = await import("./server.js");
mod.__resetModelCatalogCacheForTest();
@@ -553,9 +555,10 @@ export async function rpcReq<T = unknown>(
}
export async function waitForSystemEvent(timeoutMs = 2000) {
const sessionKey = resolveMainSessionKey(loadConfig());
const deadline = Date.now() + timeoutMs;
while (Date.now() < deadline) {
const events = peekSystemEvents();
const events = peekSystemEvents(sessionKey);
if (events.length > 0) return events;
await new Promise((resolve) => setTimeout(resolve, 10));
}