From 05ca0e30aca053a46dd15a477209fcbb6ecf34b2 Mon Sep 17 00:00:00 2001 From: Onur Solmaz <2453968+osolmaz@users.noreply.github.com> Date: Fri, 29 May 2026 15:43:49 +0800 Subject: [PATCH] refactor(gateway): trim chat abort cleanup inputs --- src/gateway/chat-abort.test.ts | 31 ++++++++++++------- src/gateway/chat-abort.ts | 6 ---- src/gateway/server-close.ts | 5 --- src/gateway/server-maintenance.ts | 5 --- src/gateway/server-methods/chat.ts | 5 --- .../server-methods/models-auth-status.ts | 5 --- 6 files changed, 20 insertions(+), 37 deletions(-) diff --git a/src/gateway/chat-abort.test.ts b/src/gateway/chat-abort.test.ts index 4c3a55e0400..b26366874dd 100644 --- a/src/gateway/chat-abort.test.ts +++ b/src/gateway/chat-abort.test.ts @@ -44,6 +44,13 @@ function createOps(params: { broadcast: ReturnType; nodeSendToSession: ReturnType; removeChatRun: ReturnType; + clearedState: { + chatDeltaSentAt: Map; + chatDeltaLastBroadcastLen: Map; + chatDeltaLastBroadcastText: Map; + agentDeltaSentAt: Map; + bufferedAgentEvents: Map; + }; } { const { runId, entry, buffer } = params; const broadcast = vi.fn(); @@ -54,7 +61,7 @@ function createOps(params: { const chatDeltaLastBroadcastLen = new Map([[runId, buffer?.length ?? 0]]); const chatDeltaLastBroadcastText = new Map(buffer !== undefined ? [[runId, buffer]] : []); const agentDeltaSentAt = new Map([[`${runId}:assistant`, Date.now()]]); - const bufferedAgentEvents: ChatAbortOps["bufferedAgentEvents"] = new Map([ + const bufferedAgentEvents = new Map([ [ `${runId}:assistant`, { @@ -72,11 +79,6 @@ function createOps(params: { return { chatAbortControllers: new Map([[runId, entry]]), chatRunBuffers, - chatDeltaSentAt, - chatDeltaLastBroadcastLen, - chatDeltaLastBroadcastText, - agentDeltaSentAt, - bufferedAgentEvents, chatAbortedRuns: new Map(), clearChatRunState: (id: string) => { chatRunBuffers.delete(id); @@ -92,6 +94,13 @@ function createOps(params: { agentRunSeq: new Map(), broadcast, nodeSendToSession, + clearedState: { + chatDeltaSentAt, + chatDeltaLastBroadcastLen, + chatDeltaLastBroadcastText, + agentDeltaSentAt, + bufferedAgentEvents, + }, }; } @@ -142,11 +151,11 @@ describe("abortChatRunById", () => { expect(entry.controller.signal.aborted).toBe(true); expect(ops.chatAbortControllers.has(runId)).toBe(false); expect(ops.chatRunBuffers.has(runId)).toBe(false); - expect(ops.chatDeltaSentAt.has(runId)).toBe(false); - expect(ops.chatDeltaLastBroadcastLen.has(runId)).toBe(false); - expect(ops.chatDeltaLastBroadcastText.has(runId)).toBe(false); - expect(ops.agentDeltaSentAt?.has(`${runId}:assistant`)).toBe(false); - expect(ops.bufferedAgentEvents?.has(`${runId}:assistant`)).toBe(false); + expect(ops.clearedState.chatDeltaSentAt.has(runId)).toBe(false); + expect(ops.clearedState.chatDeltaLastBroadcastLen.has(runId)).toBe(false); + expect(ops.clearedState.chatDeltaLastBroadcastText.has(runId)).toBe(false); + expect(ops.clearedState.agentDeltaSentAt.has(`${runId}:assistant`)).toBe(false); + expect(ops.clearedState.bufferedAgentEvents.has(`${runId}:assistant`)).toBe(false); expect(ops.removeChatRun).toHaveBeenCalledWith(runId, runId, sessionKey); expect(ops.agentRunSeq.has(runId)).toBe(false); expect(ops.agentRunSeq.has("client-run-1")).toBe(false); diff --git a/src/gateway/chat-abort.ts b/src/gateway/chat-abort.ts index a4d7e14fa72..fca6e01d4f5 100644 --- a/src/gateway/chat-abort.ts +++ b/src/gateway/chat-abort.ts @@ -1,6 +1,5 @@ import { isAbortRequestText } from "../auto-reply/reply/abort-primitives.js"; import { emitAgentEvent } from "../infra/agent-events.js"; -import type { BufferedAgentEvent } from "./server-chat-state.js"; const DEFAULT_CHAT_RUN_ABORT_GRACE_MS = 60_000; @@ -139,11 +138,6 @@ function normalizeProviderIdForActiveRun(providerId: string | undefined): string export type ChatAbortOps = { chatAbortControllers: Map; chatRunBuffers: Map; - chatDeltaSentAt: Map; - chatDeltaLastBroadcastLen: Map; - chatDeltaLastBroadcastText: Map; - agentDeltaSentAt: Map; - bufferedAgentEvents: Map; chatAbortedRuns: Map; clearChatRunState: (runId: string) => void; removeChatRun: ( diff --git a/src/gateway/server-close.ts b/src/gateway/server-close.ts index ee98a6dc380..8e877bb6f24 100644 --- a/src/gateway/server-close.ts +++ b/src/gateway/server-close.ts @@ -180,11 +180,6 @@ function abortActiveRunsForRestart(params: { { chatAbortControllers: params.chatAbortControllers, chatRunBuffers: params.chatRunState.buffers, - chatDeltaSentAt: params.chatRunState.deltaSentAt, - chatDeltaLastBroadcastLen: params.chatRunState.deltaLastBroadcastLen, - chatDeltaLastBroadcastText: params.chatRunState.deltaLastBroadcastText, - agentDeltaSentAt: params.chatRunState.agentDeltaSentAt, - bufferedAgentEvents: params.chatRunState.bufferedAgentEvents, chatAbortedRuns: params.chatRunState.abortedRuns, clearChatRunState: params.chatRunState.clearRun, removeChatRun: params.removeChatRun, diff --git a/src/gateway/server-maintenance.ts b/src/gateway/server-maintenance.ts index 19f8a3429d1..935f8a9dc8f 100644 --- a/src/gateway/server-maintenance.ts +++ b/src/gateway/server-maintenance.ts @@ -190,11 +190,6 @@ export function startGatewayMaintenanceTimers(params: { { chatAbortControllers: params.chatAbortControllers, chatRunBuffers: params.chatRunBuffers, - chatDeltaSentAt: params.chatDeltaSentAt, - chatDeltaLastBroadcastLen: params.chatDeltaLastBroadcastLen, - chatDeltaLastBroadcastText: params.chatRunState.deltaLastBroadcastText, - agentDeltaSentAt: params.chatRunState.agentDeltaSentAt, - bufferedAgentEvents: params.chatRunState.bufferedAgentEvents, chatAbortedRuns: params.chatRunState.abortedRuns, clearChatRunState: params.chatRunState.clearRun, removeChatRun: params.removeChatRun, diff --git a/src/gateway/server-methods/chat.ts b/src/gateway/server-methods/chat.ts index 0642d2b8c29..48c0e0317bf 100644 --- a/src/gateway/server-methods/chat.ts +++ b/src/gateway/server-methods/chat.ts @@ -1607,11 +1607,6 @@ function createChatAbortOps(context: GatewayRequestContext): ChatAbortOps { return { chatAbortControllers: context.chatAbortControllers, chatRunBuffers: context.chatRunBuffers, - chatDeltaSentAt: context.chatDeltaSentAt, - chatDeltaLastBroadcastLen: context.chatDeltaLastBroadcastLen, - chatDeltaLastBroadcastText: context.chatDeltaLastBroadcastText, - agentDeltaSentAt: context.agentDeltaSentAt, - bufferedAgentEvents: context.bufferedAgentEvents, chatAbortedRuns: context.chatAbortedRuns, clearChatRunState: context.clearChatRunState, removeChatRun: context.removeChatRun, diff --git a/src/gateway/server-methods/models-auth-status.ts b/src/gateway/server-methods/models-auth-status.ts index 1d636322aec..3fa8c331282 100644 --- a/src/gateway/server-methods/models-auth-status.ts +++ b/src/gateway/server-methods/models-auth-status.ts @@ -114,11 +114,6 @@ function createAuthLogoutAbortOps(context: GatewayRequestContext): ChatAbortOps return { chatAbortControllers: context.chatAbortControllers, chatRunBuffers: context.chatRunBuffers, - chatDeltaSentAt: context.chatDeltaSentAt, - chatDeltaLastBroadcastLen: context.chatDeltaLastBroadcastLen, - chatDeltaLastBroadcastText: context.chatDeltaLastBroadcastText, - agentDeltaSentAt: context.agentDeltaSentAt, - bufferedAgentEvents: context.bufferedAgentEvents, chatAbortedRuns: context.chatAbortedRuns, clearChatRunState: context.clearChatRunState, removeChatRun: context.removeChatRun,