















@@ -79,7 +79,6 @@ describe("agent event handler", () => {
7979resolveSessionKeyForRun?: (runId: string) => string | undefined;
8080lifecycleErrorRetryGraceMs?: number;
8181isChatSendRunActive?: (runId: string) => boolean;
82-shouldBackoffLowPrioritySessionToolEvents?: () => boolean;
8382}) {
8483const nowSpy =
8584params?.now === undefined ? undefined : vi.spyOn(Date, "now").mockReturnValue(params.now);
@@ -107,7 +106,6 @@ describe("agent event handler", () => {
107106loadGatewaySessionRowForSnapshot: loadGatewaySessionRow,
108107lifecycleErrorRetryGraceMs: params?.lifecycleErrorRetryGraceMs,
109108isChatSendRunActive: params?.isChatSendRunActive,
110-shouldBackoffLowPrioritySessionToolEvents: params?.shouldBackoffLowPrioritySessionToolEvents,
111109});
112110113111return {
@@ -1564,96 +1562,6 @@ describe("agent event handler", () => {
15641562);
15651563});
156615641567-it("backs off session-scoped tool mirrors during queued gateway pressure", () => {
1568-const { broadcastToConnIds, sessionEventSubscribers, toolEventRecipients, handler } =
1569-createHarness({
1570-resolveSessionKeyForRun: () => "session-pressure",
1571-shouldBackoffLowPrioritySessionToolEvents: () => true,
1572-});
1573-1574-registerAgentRunContext("run-pressure-tool", {
1575-sessionKey: "session-pressure",
1576-verboseLevel: "off",
1577-});
1578-toolEventRecipients.add("run-pressure-tool", "conn-run");
1579-sessionEventSubscribers.subscribe("conn-session");
1580-1581-handler({
1582-runId: "run-pressure-tool",
1583-seq: 1,
1584-stream: "tool",
1585-ts: 1_234,
1586-data: {
1587-phase: "start",
1588-name: "exec",
1589-toolCallId: "tool-pressure-1",
1590-args: { command: "echo hi" },
1591-},
1592-});
1593-1594-expect(broadcastToConnIds).toHaveBeenCalledTimes(1);
1595-expect(requireMockArg(broadcastToConnIds, 0, 0, "run tool event")).toBe("agent");
1596-expect(requireMockArg(broadcastToConnIds, 0, 2, "run tool recipients")).toEqual(
1597-new Set(["conn-run"]),
1598-);
1599-});
1600-1601-it("keeps terminal session-scoped tool mirrors during queued gateway pressure", () => {
1602-let backoffActive = false;
1603-const { broadcastToConnIds, sessionEventSubscribers, handler } = createHarness({
1604-resolveSessionKeyForRun: () => "session-pressure-terminal",
1605-shouldBackoffLowPrioritySessionToolEvents: () => backoffActive,
1606-});
1607-1608-registerAgentRunContext("run-pressure-terminal-tool", {
1609-sessionKey: "session-pressure-terminal",
1610-verboseLevel: "off",
1611-});
1612-sessionEventSubscribers.subscribe("conn-session");
1613-1614-handler({
1615-runId: "run-pressure-terminal-tool",
1616-seq: 1,
1617-stream: "tool",
1618-ts: 1_234,
1619-data: {
1620-phase: "start",
1621-name: "exec",
1622-toolCallId: "tool-pressure-terminal-1",
1623-args: { command: "echo hi" },
1624-},
1625-});
1626-1627-backoffActive = true;
1628-handler({
1629-runId: "run-pressure-terminal-tool",
1630-seq: 2,
1631-stream: "tool",
1632-ts: 1_235,
1633-data: {
1634-phase: "result",
1635-name: "exec",
1636-toolCallId: "tool-pressure-terminal-1",
1637-result: { content: [{ type: "text", text: "done" }] },
1638-},
1639-});
1640-1641-expect(broadcastToConnIds).toHaveBeenCalledTimes(2);
1642-expect(requireMockArg(broadcastToConnIds, 0, 0, "session tool start event")).toBe(
1643-"session.tool",
1644-);
1645-expect(requireMockArg(broadcastToConnIds, 1, 0, "session tool result event")).toBe(
1646-"session.tool",
1647-);
1648-const resultPayload = requireMockPayload(broadcastToConnIds, 1, 1, "session tool result");
1649-expectRecordFields(requireRecord(resultPayload.data, "session tool result data"), {
1650-phase: "result",
1651-name: "exec",
1652-toolCallId: "tool-pressure-terminal-1",
1653-result: { content: [{ type: "text", text: "done" }] },
1654-});
1655-});
1656-16571565it("suppresses heartbeat tool events for Control UI and verbose node subscribers", () => {
16581566const {
16591567 broadcastToConnIds,
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。