From 77ba40d9bfd1684ec29e1617cdee47d2727d4bf1 Mon Sep 17 00:00:00 2001 From: "Pawla Abdul (Bot)" Date: Mon, 13 Apr 2026 10:34:41 +0000 Subject: [PATCH] Reconnect K8s log stream on silent API disconnects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The adapter opened a single follow-stream to the K8s API for pod logs. If that TCP connection silently dropped (API server hiccup, network timeout, load-balancer idle cut), streamPodLogs returned early and no more real Claude output reached the UI — only keepalive pings. The pod kept running and producing logs (visible via kubectl), but the adapter never reconnected. Splits streamPodLogs into streamPodLogsOnce (single follow attempt) and a reconnecting wrapper that retries with sinceSeconds until a shared stop signal fires when waitForJobCompletion resolves. On reconnect, requests logs from the original stream start time (+5s overlap) so no output is lost; the UI deduplicates chunks. Bumps version to 0.1.12. Co-Authored-By: Paperclip --- dist/server/execute.d.ts.map | 2 +- dist/server/execute.js | 18 +++++++++- dist/server/execute.js.map | 2 +- package.json | 2 +- src/server/execute.ts | 67 ++++++++++++++++++++++++++++++++---- 5 files changed, 80 insertions(+), 11 deletions(-) diff --git a/dist/server/execute.d.ts.map b/dist/server/execute.d.ts.map index 32ac9f6..d51c542 100644 --- a/dist/server/execute.d.ts.map +++ b/dist/server/execute.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/server/execute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AA4PlG,wBAAsB,OAAO,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA4O3F"} \ No newline at end of file +{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/server/execute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AA6PlG,wBAAsB,OAAO,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA2P3F"} \ No newline at end of file diff --git a/dist/server/execute.js b/dist/server/execute.js index b1029f2..0ae70b0 100644 --- a/dist/server/execute.js +++ b/dist/server/execute.js @@ -4,6 +4,7 @@ import { getSelfPodInfo, getBatchApi, getCoreApi, getLogApi } from "./k8s-client import { buildJobManifest } from "./job-manifest.js"; import { Writable } from "node:stream"; const POLL_INTERVAL_MS = 2000; +const KEEPALIVE_INTERVAL_MS = 15_000; /** * Wait for the Job's pod to reach a terminal or running state. * Returns the pod name once logs can be streamed, or throws on failure. @@ -270,6 +271,7 @@ export async function execute(ctx) { let stdout = ""; let exitCode = null; let jobTimedOut = false; + let keepaliveTimer = null; try { // Wait for pod to be ready for log streaming const scheduleTimeoutMs = 120_000; // 2 minutes for scheduling @@ -294,8 +296,20 @@ export async function execute(ctx) { // We also poll the Job status to detect deadline exceeded. // 0 = no timeout (run indefinitely, matching claude_local behavior) const completionTimeoutMs = timeoutSec > 0 ? (timeoutSec + graceSec) * 1000 : 0; + // Keepalive: periodically send a status line via onLog so the + // Paperclip server knows the adapter is still alive even when the + // pod produces no output (e.g. Claude is in a long thinking phase). + let lastLogAt = Date.now(); + keepaliveTimer = setInterval(() => { + const silenceSec = Math.round((Date.now() - lastLogAt) / 1000); + void onLog("stdout", `[paperclip] keepalive — job ${jobName} running (${silenceSec}s since last output)\n`); + }, KEEPALIVE_INTERVAL_MS); + const wrappedOnLog = async (stream, chunk) => { + lastLogAt = Date.now(); + return onLog(stream, chunk); + }; const [logResult, completionResult] = await Promise.allSettled([ - streamPodLogs(namespace, podName, onLog, kubeconfigPath), + streamPodLogs(namespace, podName, wrappedOnLog, kubeconfigPath), waitForJobCompletion(namespace, jobName, completionTimeoutMs, kubeconfigPath), ]); if (logResult.status === "fulfilled") { @@ -319,6 +333,8 @@ export async function execute(ctx) { exitCode = await getPodExitCode(namespace, jobName, kubeconfigPath); } finally { + if (keepaliveTimer) + clearInterval(keepaliveTimer); if (!retainJobs) { await cleanupJob(namespace, jobName, onLog, kubeconfigPath); } diff --git a/dist/server/execute.js.map b/dist/server/execute.js.map index 75965e5..8201939 100644 --- a/dist/server/execute.js.map +++ b/dist/server/execute.js.map @@ -1 +1 @@ -{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/server/execute.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACrG,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAE9B;;;GAGG;AACH,KAAK,UAAU,UAAU,CACvB,SAAiB,EACjB,OAAe,EACf,SAAiB,EACjB,KAAuC,EACvC,cAAuB;IAEvB,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,MAAM,aAAa,GAAG,YAAY,OAAO,EAAE,CAAC;IAE5C,MAAM,KAAK,CAAC,QAAQ,EAAE,qDAAqD,OAAO,QAAQ,CAAC,CAAC;IAE5F,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC;YAC9C,SAAS;YACT,aAAa;SACd,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE7B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAC5B,MAAM,KAAK,CAAC,QAAQ,EAAE,2DAA2D,CAAC,CAAC;gBACnF,UAAU,GAAG,QAAQ,CAAC;YACxB,CAAC;YACD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACtE,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,EAAE,IAAI,IAAI,SAAS,CAAC;QAChD,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,SAAS,CAAC;QAC7C,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,qBAAqB,IAAI,EAAE,CAAC;QAC7D,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,iBAAiB,IAAI,EAAE,CAAC;QAE9D,wBAAwB;QACxB,MAAM,SAAS,GAAG,GAAG,KAAK,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnP,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAa,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC;YAC7C,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAChC,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO;oBAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,cAAc,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,SAAS,GAAG,CAAC,CAAC;qBAC3G,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO;oBAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,WAAW,CAAC,CAAC;qBACpE,IAAI,IAAI,CAAC,KAAK,EAAE,UAAU;oBAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,gBAAgB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,CAAC;YACpH,CAAC;YACD,KAAK,MAAM,EAAE,IAAI,iBAAiB,EAAE,CAAC;gBACnC,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO;oBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,cAAc,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,SAAS,GAAG,CAAC,CAAC;qBAChG,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO;oBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,WAAW,CAAC,CAAC;YAClE,CAAC;YACD,MAAM,KAAK,CAAC,QAAQ,EAAE,mBAAmB,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7E,UAAU,GAAG,SAAS,CAAC;QACzB,CAAC;QAED,uBAAuB;QACvB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvE,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,4EAA4E;QAC5E,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,KAAK,CAChE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,KAAK,CAAC,CAC3C,CAAC;QACF,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACpE,IAAI,YAAY,IAAI,WAAW,EAAE,CAAC;YAChC,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,oCAAoC;QACpC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC;YAC1C,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnD,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,IAAI,2BAA2B,UAAU,CAAC,QAAQ,KAAK,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC;YACzJ,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;YACpC,IAAI,OAAO,EAAE,MAAM,KAAK,cAAc,IAAI,OAAO,EAAE,MAAM,KAAK,kBAAkB,EAAE,CAAC;gBACjF,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,IAAI,wBAAwB,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3G,CAAC;YACD,IAAI,OAAO,EAAE,MAAM,KAAK,kBAAkB,EAAE,CAAC;gBAC3C,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,IAAI,iBAAiB,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACpG,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,IAAI,EAAE,CAAC;QAChD,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,CAAC,MAAM,KAAK,eAAe,CACzF,CAAC;QACF,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,sBAAsB,aAAa,CAAC,OAAO,IAAI,wBAAwB,EAAE,CAAC,CAAC;QAC7F,CAAC;QAED,6CAA6C;QAC7C,KAAK,MAAM,EAAE,IAAI,iBAAiB,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC;YAClC,IAAI,OAAO,EAAE,MAAM,KAAK,cAAc,IAAI,OAAO,EAAE,MAAM,KAAK,kBAAkB,EAAE,CAAC;gBACjF,MAAM,IAAI,KAAK,CAAC,0BAA0B,EAAE,CAAC,IAAI,MAAM,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9F,CAAC;YACD,IAAI,OAAO,EAAE,MAAM,KAAK,kBAAkB,EAAE,CAAC;gBAC3C,MAAM,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC,IAAI,iBAAiB,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC;QAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,8CAA8C,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AAClG,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,aAAa,CAC1B,SAAiB,EACjB,OAAe,EACf,KAAuC,EACvC,cAAuB;IAEvB,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;IACzC,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC;QAC5B,KAAK,CAAC,KAAa,EAAE,SAAS,EAAE,QAAQ;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,KAAK,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC9D,CAAC;KACF,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE;YACvD,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,+DAA+D;QAC/D,kCAAkC;IACpC,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,WAAW,CACxB,SAAiB,EACjB,OAAe,EACf,cAAuB;IAEvB,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,oBAAoB,CAAC;YAC7C,IAAI,EAAE,OAAO;YACb,SAAS;YACT,SAAS,EAAE,QAAQ;SACpB,CAAC,CAAC;QACH,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,oBAAoB,CACjC,SAAiB,EACjB,OAAe,EACf,SAAiB,EACjB,cAAuB;IAEvB,MAAM,QAAQ,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5D,OAAO,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC/C,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,IAAI,EAAE,CAAC;QAEhD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QACtF,IAAI,QAAQ;YAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAE1D,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;QAClF,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,KAAK,kBAAkB,CAAC;YAChE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,SAAiB,EAAE,OAAe,EAAE,cAAuB;IACvF,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAC3C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC;QAC9C,SAAS;QACT,aAAa,EAAE,YAAY,OAAO,EAAE;KACrC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACxF,OAAO,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,IAAI,IAAI,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,UAAU,CACvB,SAAiB,EACjB,OAAe,EACf,KAAuC,EACvC,cAAuB;IAEvB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;QAC7C,MAAM,QAAQ,CAAC,mBAAmB,CAAC;YACjC,IAAI,EAAE,OAAO;YACb,SAAS;YACT,IAAI,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE;SAC1C,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,KAAK,CAAC,QAAQ,EAAE,8CAA8C,OAAO,KAAK,GAAG,IAAI,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAA4B;IACxD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACjE,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC;IAEpE,sFAAsF;IACtF,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,cAAc,CAAC,CAAC;IACrD,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC;IAC3E,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC;YAChD,SAAS,EAAE,cAAc;YACzB,aAAa,EAAE,yBAAyB,OAAO,uCAAuC;SACvF,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CACjH,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9D,MAAM,KAAK,CAAC,QAAQ,EAAE,qFAAqF,KAAK,IAAI,CAAC,CAAC;YACtH,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE,+BAA+B,KAAK,kCAAkC;gBACpF,SAAS,EAAE,4BAA4B;aACxC,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,8EAA8E;IAChF,CAAC;IAED,qBAAqB;IACrB,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC;QACtF,GAAG;QACH,OAAO;KACR,CAAC,CAAC;IAEH,6BAA6B;IAC7B,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,MAAM,CAAC;YACX,WAAW,EAAE,YAAY;YACzB,OAAO,EAAE,eAAe,OAAO,EAAE;YACjC,GAAG,EAAE,SAAS;YACd,WAAW,EAAE,UAAU;YACvB,YAAY,EAAE;gBACZ,UAAU,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,SAAS,EAAE;gBACtE,cAAc,SAAS,EAAE;gBACzB,YAAY,UAAU,GAAG;aAC1B;YACD,MAAM;YACN,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,OAAO,EAAE,GAAG,CAAC,OAAO;SACW,CAAC,CAAC;IACrC,CAAC;IAED,iBAAiB;IACjB,MAAM,QAAQ,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,KAAK,CAAC,QAAQ,EAAE,yCAAyC,GAAG,IAAI,CAAC,CAAC;QACxE,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,oCAAoC,GAAG,EAAE;YACvD,SAAS,EAAE,uBAAuB;SACnC,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,CAAC,QAAQ,EAAE,gCAAgC,OAAO,iBAAiB,SAAS,eAAe,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IAEvJ,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,IAAI,CAAC;QACH,6CAA6C;QAC7C,MAAM,iBAAiB,GAAG,OAAO,CAAC,CAAC,2BAA2B;QAC9D,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;YACzF,MAAM,KAAK,CAAC,QAAQ,EAAE,4BAA4B,OAAO,IAAI,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,MAAM,KAAK,CAAC,QAAQ,EAAE,sCAAsC,GAAG,IAAI,CAAC,CAAC;YACrE,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,KAAK;gBACf,YAAY,EAAE,0BAA0B,GAAG,EAAE;gBAC7C,SAAS,EAAE,yBAAyB;aACrC,CAAC;QACJ,CAAC;QAED,oDAAoD;QACpD,oDAAoD;QACpD,2DAA2D;QAC3D,oEAAoE;QACpE,MAAM,mBAAmB,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhF,MAAM,CAAC,SAAS,EAAE,gBAAgB,CAAC,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;YAC7D,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC;YACxD,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE,cAAc,CAAC;SAC9E,CAAC,CAAC;QAEH,IAAI,SAAS,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACrC,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC;QAC3B,CAAC;QAED,sEAAsE;QACtE,8DAA8D;QAC9D,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YACnB,MAAM,KAAK,CAAC,QAAQ,EAAE,wEAAwE,CAAC,CAAC;YAChG,MAAM,GAAG,MAAM,WAAW,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;YAC/D,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBAClB,MAAM,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,IAAI,gBAAgB,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAC5C,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,QAAQ,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IACtE,CAAC;YAAS,CAAC;QACT,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,CAAC,QAAQ,EAAE,6BAA6B,OAAO,oCAAoC,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO;YACL,QAAQ;YACR,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,mBAAmB,UAAU,GAAG;YAC9C,SAAS,EAAE,SAAS;SACrB,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC;IAEvC,wEAAwE;IACxE,IAAI,MAAM,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,2BAA2B,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,MAAM,KAAK,CAAC,QAAQ,EAAE,qEAAqE,CAAC,CAAC;QAC7F,OAAO;YACL,QAAQ;YACR,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,qBAAqB,CAAC,MAAM,CAAC,IAAI,qBAAqB;YACpE,SAAS,EAAE,qBAAqB;YAChC,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,MAAM;SACnB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAClF,OAAO;YACL,QAAQ;YACR,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,QAAQ,KAAK,CAAC;gBAC1B,CAAC,CAAC,oCAAoC;gBACtC,CAAC,CAAC,UAAU;oBACV,CAAC,CAAC,2BAA2B,QAAQ,IAAI,CAAC,CAAC,KAAK,UAAU,EAAE;oBAC5D,CAAC,CAAC,2BAA2B,QAAQ,IAAI,CAAC,CAAC,EAAE;YACjD,UAAU,EAAE,EAAE,MAAM,EAAE;SACvB,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE;QACxC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,KAAgC,CAAC,CAAC;QACtE,OAAO;YACL,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;YAC/C,iBAAiB,EAAE,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,EAAE,CAAC,CAAC;YAChE,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;SAClD,CAAC;IACJ,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,oBAAoB,GAAG,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAChE,MAAM,iBAAiB,GAAG,QAAQ,CAAC,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAC5F,MAAM,iBAAiB,GAAG,YAAY,CAAC,SAAS;WAC3C,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAoB,EAAE,iBAAiB,CAAC,IAAI,iBAAiB,CAAC,CAAC;IACrF,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzC,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;IACvE,MAAM,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;IACxE,MAAM,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;IACxE,MAAM,GAAG,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAE/C,MAAM,qBAAqB,GAAG,iBAAiB;QAC7C,CAAC,CAAC;YACE,SAAS,EAAE,iBAAiB;YAC5B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvB,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChC;QAC9B,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,uBAAuB,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAE/D,OAAO;QACL,QAAQ;QACR,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,KAAK;QACf,YAAY,EACV,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC;YACnB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,2BAA2B,QAAQ,IAAI,CAAC,CAAC,EAAE;QAClF,KAAK;QACL,SAAS,EAAE,iBAAiB,IAAI,IAAI;QACpC,aAAa,EAAE,qBAAqB;QACpC,gBAAgB,EAAE,iBAAiB,IAAI,IAAI;QAC3C,QAAQ,EAAE,WAAW;QACrB,KAAK,EAAE,YAAY,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAe,EAAE,KAAK,CAAC;QACpE,WAAW,EAAE,KAAK;QAClB,OAAO,EAAE,YAAY,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;QACnE,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,YAAY,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAgB,EAAE,EAAE,CAAC;QACtE,YAAY,EAAE,uBAAuB;KACZ,CAAC;AAC9B,CAAC"} \ No newline at end of file +{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/server/execute.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 4dc7dfd..39e5668 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@farhoodliquor/paperclip-adapter-claude-k8s", - "version": "0.1.11", + "version": "0.1.12", "description": "Paperclip adapter plugin that runs Claude Code agents as Kubernetes Jobs", "license": "MIT", "repository": { diff --git a/src/server/execute.ts b/src/server/execute.ts index 64e5170..1f6ed60 100644 --- a/src/server/execute.ts +++ b/src/server/execute.ts @@ -13,6 +13,7 @@ import { Writable } from "node:stream"; const POLL_INTERVAL_MS = 2000; const KEEPALIVE_INTERVAL_MS = 15_000; +const LOG_STREAM_RECONNECT_DELAY_MS = 3_000; /** * Wait for the Job's pod to reach a terminal or running state. @@ -126,14 +127,15 @@ async function waitForPod( } /** - * Stream pod logs and accumulate stdout for result parsing. - * Returns accumulated stdout when the stream ends. + * Stream pod logs once via follow. Returns accumulated stdout when the + * stream ends (container exit, API disconnect, or abort signal). */ -async function streamPodLogs( +async function streamPodLogsOnce( namespace: string, podName: string, onLog: AdapterExecutionContext["onLog"], kubeconfigPath?: string, + sinceSeconds?: number, ): Promise { const logApi = getLogApi(kubeconfigPath); const chunks: string[] = []; @@ -150,15 +152,59 @@ async function streamPodLogs( await logApi.log(namespace, podName, "claude", writable, { follow: true, pretty: false, + ...(sinceSeconds ? { sinceSeconds } : {}), }); } catch { - // follow may fail if the container already exited — not fatal, - // we'll try a one-shot read below + // follow may fail if the container already exited or the API + // connection dropped — not fatal, caller decides whether to retry. } return chunks.join(""); } +/** + * Stream pod logs with automatic reconnection. Keeps retrying the log + * stream until the stop signal fires (job completed) or the container + * exits normally. This handles silent K8s API connection drops that + * would otherwise cause the UI to stop receiving real output. + */ +async function streamPodLogs( + namespace: string, + podName: string, + onLog: AdapterExecutionContext["onLog"], + kubeconfigPath?: string, + stopSignal?: { stopped: boolean }, +): Promise { + const allChunks: string[] = []; + let attempt = 0; + const streamStartedAt = Math.floor(Date.now() / 1000); + + while (!stopSignal?.stopped) { + // On reconnect, ask for logs since the stream originally started to + // avoid missing output during the reconnect gap. Duplicates are + // tolerable — the UI deduplicates log chunks. + const sinceSeconds = attempt > 0 + ? Math.max(1, Math.floor(Date.now() / 1000) - streamStartedAt + 5) + : undefined; + + if (attempt > 0) { + await onLog("stdout", `[paperclip] Log stream disconnected — reconnecting (attempt ${attempt})...\n`); + } + + const result = await streamPodLogsOnce(namespace, podName, onLog, kubeconfigPath, sinceSeconds); + if (result) allChunks.push(result); + attempt++; + + // If the job is done or the container exited, no need to reconnect. + if (stopSignal?.stopped) break; + + // Brief pause before reconnecting to avoid tight loops. + await new Promise((resolve) => setTimeout(resolve, LOG_STREAM_RECONNECT_DELAY_MS)); + } + + return allChunks.join(""); +} + /** * One-shot read of pod logs (no follow). Used as fallback when the * follow stream missed output because the container exited quickly. @@ -372,9 +418,16 @@ export async function execute(ctx: AdapterExecutionContext): Promise { + logStopSignal.stopped = true; + return r; + }), ]); if (logResult.status === "fulfilled") {