feat: add stuck loop detection and exponential backoff infrastructure for agent polling (#17118)

Merged via /review-pr -> /prepare-pr -> /merge-pr.

Prepared head SHA: eebabf679b
Co-authored-by: akramcodez <179671552+akramcodez@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
This commit is contained in:
Sk Akram
2026-02-17 01:46:35 +05:30
committed by GitHub
parent 1f99d82712
commit e5eb5b3e43
11 changed files with 1769 additions and 2 deletions

View File

@@ -1,4 +1,5 @@
import { beforeEach, describe, expect, it, vi } from "vitest";
import { resetDiagnosticSessionStateForTest } from "../logging/diagnostic-session-state.js";
import { getGlobalHookRunner } from "../plugins/hook-runner-global.js";
import { toClientToolDefinitions, toToolDefinitions } from "./pi-tool-definition-adapter.js";
import { wrapToolWithBeforeToolCallHook } from "./pi-tools.before-tool-call.js";
@@ -14,6 +15,7 @@ describe("before_tool_call hook integration", () => {
};
beforeEach(() => {
resetDiagnosticSessionStateForTest();
hookRunner = {
hasHooks: vi.fn(),
runBeforeToolCall: vi.fn(),
@@ -115,6 +117,7 @@ describe("before_tool_call hook deduplication (#15502)", () => {
};
beforeEach(() => {
resetDiagnosticSessionStateForTest();
hookRunner = {
hasHooks: vi.fn(() => true),
runBeforeToolCall: vi.fn(async () => undefined),
@@ -153,6 +156,7 @@ describe("before_tool_call hook integration for client tools", () => {
};
beforeEach(() => {
resetDiagnosticSessionStateForTest();
hookRunner = {
hasHooks: vi.fn(),
runBeforeToolCall: vi.fn(),