From 74a9a3c33b178c43256c06ad4dc973edbd32fec9 Mon Sep 17 00:00:00 2001 From: Mohamed Boudra Date: Sun, 22 Feb 2026 12:17:37 +0700 Subject: [PATCH] refactor: remove permission timeout logic and rely on abort handler (#62) --- .../src/server/agent/providers/claude-agent.ts | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/packages/server/src/server/agent/providers/claude-agent.ts b/packages/server/src/server/agent/providers/claude-agent.ts index 10b36a1c8..1489e70af 100644 --- a/packages/server/src/server/agent/providers/claude-agent.ts +++ b/packages/server/src/server/agent/providers/claude-agent.ts @@ -601,10 +601,8 @@ type SubAgentActionCandidate = { input: unknown; }; -const DEFAULT_PERMISSION_TIMEOUT_MS = 120_000; const MAX_SUB_AGENT_LOG_ENTRIES = 200; const MAX_SUB_AGENT_SUMMARY_CHARS = 160; - function isMetadata(value: unknown): value is AgentMetadata { return typeof value === "object" && value !== null; } @@ -1670,6 +1668,7 @@ class ClaudeAgentSession implements AgentSession { if (this.cancelCurrentTurn === requestCancel) { this.cancelCurrentTurn = null; } + this.rejectAllPendingPermissions(new Error("Permission request aborted")); this.cancelRun(run, { type: "turn_canceled", provider: "claude", @@ -3612,19 +3611,6 @@ class ClaudeAgentSession implements AgentSession { } } }; - const timeout = setTimeout(() => { - this.pendingPermissions.delete(requestId); - cleanup(); - const error = new Error("Permission request timed out"); - this.pushEvent({ - type: "permission_resolved", - provider: "claude", - requestId, - resolution: { behavior: "deny", message: "timeout" }, - }); - reject(error); - }, DEFAULT_PERMISSION_TIMEOUT_MS); - cleanupFns.push(() => clearTimeout(timeout)); const abortHandler = () => { this.pendingPermissions.delete(requestId);