From cd71fe71f3b0d6f34d1ec61d59f0f9cdfd368137 Mon Sep 17 00:00:00 2001 From: Will Gordon Date: Fri, 31 Jul 2026 22:27:40 -0400 Subject: [PATCH] fix(cursor): adds SIGKILL follow-up to the status-check spawn Matches the nudge spawn's existing SIGTERM+SIGKILL pattern so an unresponsive cursor-agent status check can't leak a lingering process if it ignores SIGTERM. --- src/lib/cursor/renewal.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/cursor/renewal.ts b/src/lib/cursor/renewal.ts index 1ab5071965..78294f1340 100644 --- a/src/lib/cursor/renewal.ts +++ b/src/lib/cursor/renewal.ts @@ -83,7 +83,9 @@ export async function checkCursorAgentAvailability(): Promise<{ let result: { stdout: string; stderr: string }; try { result = await runLockedCursorAgentSpawn("status", () => - runCursorAgent(binary, ["status", "--format", "json"], CURSOR_AGENT_STATUS_TIMEOUT_MS) + runCursorAgent(binary, ["status", "--format", "json"], CURSOR_AGENT_STATUS_TIMEOUT_MS, { + sigkillFollowupMs: Math.max(1, Math.floor(CURSOR_AGENT_STATUS_TIMEOUT_MS / 2)), + }) ); } catch { // Spawn itself failed (e.g. binary vanished between resolve and spawn) —