@fideliosai/server 0.0.11 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -12
- package/dist/index.js.map +1 -1
- package/dist/onboarding-assets/ceo/HEARTBEAT.md +1 -0
- package/dist/routes/agents.d.ts.map +1 -1
- package/dist/routes/agents.js +1 -0
- package/dist/routes/agents.js.map +1 -1
- package/dist/services/heartbeat.d.ts +6 -0
- package/dist/services/heartbeat.d.ts.map +1 -1
- package/dist/services/heartbeat.js +152 -19
- package/dist/services/heartbeat.js.map +1 -1
- package/dist/services/issues.d.ts +17 -0
- package/dist/services/issues.d.ts.map +1 -1
- package/dist/services/issues.js +133 -0
- package/dist/services/issues.js.map +1 -1
- package/dist/services/routines.d.ts.map +1 -1
- package/dist/services/routines.js +15 -1
- package/dist/services/routines.js.map +1 -1
- package/package.json +13 -13
- package/ui-dist/assets/{_basePickBy-aCZUIqgz.js → _basePickBy-Bz1lMRr1.js} +1 -1
- package/ui-dist/assets/{_baseUniq-BLy-h0im.js → _baseUniq-Cz0DIzBh.js} +1 -1
- package/ui-dist/assets/{arc-DORcpZ2v.js → arc-B03KhCd2.js} +1 -1
- package/ui-dist/assets/{architectureDiagram-VXUJARFQ-CrC43GAv.js → architectureDiagram-VXUJARFQ-Bd-fd33T.js} +1 -1
- package/ui-dist/assets/{blockDiagram-VD42YOAC-xTdotV4a.js → blockDiagram-VD42YOAC-CXaFl4cP.js} +1 -1
- package/ui-dist/assets/{c4Diagram-YG6GDRKO-Dz1ltwa_.js → c4Diagram-YG6GDRKO-DaDthSB7.js} +1 -1
- package/ui-dist/assets/channel-DyOjp3LQ.js +1 -0
- package/ui-dist/assets/{chunk-4BX2VUAB-0yJ60N67.js → chunk-4BX2VUAB-CJnPL87r.js} +1 -1
- package/ui-dist/assets/{chunk-55IACEB6-CaykP-lI.js → chunk-55IACEB6-CJNMJX2n.js} +1 -1
- package/ui-dist/assets/{chunk-B4BG7PRW-KHME69me.js → chunk-B4BG7PRW-DIkK9Mlj.js} +1 -1
- package/ui-dist/assets/{chunk-DI55MBZ5-B0usDtdN.js → chunk-DI55MBZ5-DSmF2iXg.js} +1 -1
- package/ui-dist/assets/{chunk-FMBD7UC4-DzvV4HxO.js → chunk-FMBD7UC4-gfze-lvJ.js} +1 -1
- package/ui-dist/assets/{chunk-QN33PNHL-lQSWl0lp.js → chunk-QN33PNHL-Ddo3zVqT.js} +1 -1
- package/ui-dist/assets/{chunk-QZHKN3VN-CNSl5CP7.js → chunk-QZHKN3VN-BPSHvZyX.js} +1 -1
- package/ui-dist/assets/{chunk-TZMSLE5B-DGMwf-PG.js → chunk-TZMSLE5B-C7wuUAs7.js} +1 -1
- package/ui-dist/assets/classDiagram-2ON5EDUG-BtJMQosd.js +1 -0
- package/ui-dist/assets/classDiagram-v2-WZHVMYZB-BtJMQosd.js +1 -0
- package/ui-dist/assets/clone-CXFUP-5d.js +1 -0
- package/ui-dist/assets/{cose-bilkent-S5V4N54A-DHdl31U9.js → cose-bilkent-S5V4N54A-io2ht7Tg.js} +1 -1
- package/ui-dist/assets/{dagre-6UL2VRFP-qya_P88Y.js → dagre-6UL2VRFP-CFH5DFm7.js} +1 -1
- package/ui-dist/assets/{diagram-PSM6KHXK-r6VT3OaH.js → diagram-PSM6KHXK-CPQXpnTx.js} +1 -1
- package/ui-dist/assets/{diagram-QEK2KX5R-B_q3SrYe.js → diagram-QEK2KX5R-BbyOPiaB.js} +1 -1
- package/ui-dist/assets/{diagram-S2PKOQOG-fUd6aDqY.js → diagram-S2PKOQOG-D6BCeM_j.js} +1 -1
- package/ui-dist/assets/{erDiagram-Q2GNP2WA-C4GVHjeF.js → erDiagram-Q2GNP2WA-C69wMd1X.js} +1 -1
- package/ui-dist/assets/{flowDiagram-NV44I4VS-NJOvXcsO.js → flowDiagram-NV44I4VS-CKJK9Bqb.js} +1 -1
- package/ui-dist/assets/{ganttDiagram-JELNMOA3-CR6i8bw3.js → ganttDiagram-JELNMOA3-CPfA5Aye.js} +1 -1
- package/ui-dist/assets/{gitGraphDiagram-V2S2FVAM-KuUBqBCF.js → gitGraphDiagram-V2S2FVAM-DZaZg_GO.js} +1 -1
- package/ui-dist/assets/{graph-C2ndFxK0.js → graph-DhWILner.js} +1 -1
- package/ui-dist/assets/{index-C0zpXTd4.js → index-0wF5nWs7.js} +1 -1
- package/ui-dist/assets/{index-2E9SUYYV.js → index-BA22JOVS.js} +1 -1
- package/ui-dist/assets/{index-BCxeL4sC.js → index-BYLf-CL8.js} +1 -1
- package/ui-dist/assets/{index-BXJ3uZW7.js → index-BYNiNvTL.js} +1 -1
- package/ui-dist/assets/{index-BX559d7s.js → index-BpI5gD12.js} +1 -1
- package/ui-dist/assets/{index-iwCaKqyH.js → index-Bw34OrlI.js} +1 -1
- package/ui-dist/assets/{index-BpmpzDnz.js → index-C0eJUuhF.js} +1 -1
- package/ui-dist/assets/{index-DG8bzLmY.js → index-CDX_vTiv.js} +1 -1
- package/ui-dist/assets/{index-B7IYeGcu.js → index-CE0NQXcf.js} +1 -1
- package/ui-dist/assets/{index-8u8n9Pq4.js → index-CHuh0SWm.js} +1 -1
- package/ui-dist/assets/{index-dlwMuMNB.js → index-CPbbQZoC.js} +1 -1
- package/ui-dist/assets/{index-COKsPUYc.js → index-ChbF-4_t.js} +1 -1
- package/ui-dist/assets/{index-B0NynVYx.js → index-CoA6TNOP.js} +1 -1
- package/ui-dist/assets/{index-DRYxIzsk.js → index-D2T0iIrx.js} +1 -1
- package/ui-dist/assets/{index-BgKIv3L-.js → index-DErU01-2.js} +1 -1
- package/ui-dist/assets/{index-CbtLpvDh.js → index-DM_ccx3O.js} +1 -1
- package/ui-dist/assets/{index-vwVAOsXL.js → index-DOD72BH5.js} +1 -1
- package/ui-dist/assets/{index-Chz5Zuq6.js → index-DnxtFtFx.js} +1 -1
- package/ui-dist/assets/{index-BY05NZdH.js → index-IWMCpuKI.js} +1 -1
- package/ui-dist/assets/{index-cDG_QEmf.js → index-T3Zr4GMI.js} +1 -1
- package/ui-dist/assets/{index-CiAa-OcP.js → index-lCZF_3wT.js} +1 -1
- package/ui-dist/assets/{index-C_pLB968.js → index-samEGEZm.js} +1 -1
- package/ui-dist/assets/{index-CZ5YNJWm.js → index-ypuEcx6t.js} +107 -107
- package/ui-dist/assets/{infoDiagram-HS3SLOUP-DEFCtERi.js → infoDiagram-HS3SLOUP-LnZP2Iev.js} +1 -1
- package/ui-dist/assets/{journeyDiagram-XKPGCS4Q-R88Ohnwu.js → journeyDiagram-XKPGCS4Q-TeWCkroV.js} +1 -1
- package/ui-dist/assets/{kanban-definition-3W4ZIXB7-DNRXkJwN.js → kanban-definition-3W4ZIXB7-BnVAyHyB.js} +1 -1
- package/ui-dist/assets/{layout-DoH9I_tz.js → layout-B6TLG_zF.js} +1 -1
- package/ui-dist/assets/{linear-D4V-ctT5.js → linear-Dyb-7GvO.js} +1 -1
- package/ui-dist/assets/{mermaid.core-D9TAWwGC.js → mermaid.core-CpCDuAY2.js} +4 -4
- package/ui-dist/assets/{mindmap-definition-VGOIOE7T-B3z_zJUb.js → mindmap-definition-VGOIOE7T-YN4fDnoi.js} +1 -1
- package/ui-dist/assets/{pieDiagram-ADFJNKIX-QMtcHwNj.js → pieDiagram-ADFJNKIX-Jt-577aV.js} +1 -1
- package/ui-dist/assets/{quadrantDiagram-AYHSOK5B-CLELWbCb.js → quadrantDiagram-AYHSOK5B-CGgFva_d.js} +1 -1
- package/ui-dist/assets/{requirementDiagram-UZGBJVZJ-CPKqi-aD.js → requirementDiagram-UZGBJVZJ-DdBYxuTR.js} +1 -1
- package/ui-dist/assets/{sankeyDiagram-TZEHDZUN-Dd8dy8DO.js → sankeyDiagram-TZEHDZUN-CykYs1PD.js} +1 -1
- package/ui-dist/assets/{sequenceDiagram-WL72ISMW-DgwQ1CPY.js → sequenceDiagram-WL72ISMW-CDK1H21a.js} +1 -1
- package/ui-dist/assets/{stateDiagram-FKZM4ZOC-DeI2cgrU.js → stateDiagram-FKZM4ZOC-CUqmB-ze.js} +1 -1
- package/ui-dist/assets/stateDiagram-v2-4FDKWEC3-ST-nIdhL.js +1 -0
- package/ui-dist/assets/{timeline-definition-IT6M3QCI-CMPp7ApP.js → timeline-definition-IT6M3QCI-CM3R1w9U.js} +1 -1
- package/ui-dist/assets/{treemap-GDKQZRPO-C1Fv7Xlx.js → treemap-GDKQZRPO-Ddo-4aIO.js} +1 -1
- package/ui-dist/assets/{xychartDiagram-PRI3JC2R-Dr7tKPcx.js → xychartDiagram-PRI3JC2R-BBxPoZv5.js} +1 -1
- package/ui-dist/index.html +1 -1
- package/ui-dist/assets/channel-N7GASpcu.js +0 -1
- package/ui-dist/assets/classDiagram-2ON5EDUG-875mZmmv.js +0 -1
- package/ui-dist/assets/classDiagram-v2-WZHVMYZB-875mZmmv.js +0 -1
- package/ui-dist/assets/clone-CKZ8Y0-n.js +0 -1
- package/ui-dist/assets/stateDiagram-v2-4FDKWEC3-DGSG2WeT.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../src/services/heartbeat.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../src/services/heartbeat.ts"],"names":[],"mappings":"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"}
|
|
@@ -727,13 +727,20 @@ export function heartbeatService(db) {
|
|
|
727
727
|
readNonEmptyString(latestSummary?.result) ??
|
|
728
728
|
readNonEmptyString(latestSummary?.message) ??
|
|
729
729
|
readNonEmptyString(latestRun.error);
|
|
730
|
+
const agentHome = resolveDefaultAgentWorkspaceDir(agent.id);
|
|
731
|
+
const today = new Date().toISOString().slice(0, 10);
|
|
730
732
|
const handoffMarkdown = [
|
|
731
733
|
"FideliOS session handoff:",
|
|
732
734
|
`- Previous session: ${sessionId}`,
|
|
733
735
|
issueId ? `- Issue: ${issueId}` : "",
|
|
734
736
|
`- Rotation reason: ${reason}`,
|
|
735
737
|
latestTextSummary ? `- Last run summary: ${latestTextSummary}` : "",
|
|
736
|
-
"
|
|
738
|
+
"",
|
|
739
|
+
"Your persistent memory (if you have written any) survives session rotation:",
|
|
740
|
+
`- Daily notes: ${agentHome}/memory/ (check for ${today}.md or recent dates)`,
|
|
741
|
+
`- Knowledge graph: ${agentHome}/life/ (PARA structure)`,
|
|
742
|
+
`- Lessons learned: ${agentHome}/MEMORY.md (may not exist yet)`,
|
|
743
|
+
"Use glob or ls to check which memory files exist before reading. Do NOT assume files exist — create them if missing.",
|
|
737
744
|
]
|
|
738
745
|
.filter(Boolean)
|
|
739
746
|
.join("\n");
|
|
@@ -979,6 +986,7 @@ export function heartbeatService(db) {
|
|
|
979
986
|
sessionDisplayId: input.sessionDisplayId,
|
|
980
987
|
lastRunId: input.lastRunId,
|
|
981
988
|
lastError: input.lastError,
|
|
989
|
+
...(input.lastSeenCommentId !== undefined ? { lastSeenCommentId: input.lastSeenCommentId } : {}),
|
|
982
990
|
updatedAt: new Date(),
|
|
983
991
|
})
|
|
984
992
|
.where(eq(agentTaskSessions.id, existing.id))
|
|
@@ -996,6 +1004,7 @@ export function heartbeatService(db) {
|
|
|
996
1004
|
sessionDisplayId: input.sessionDisplayId,
|
|
997
1005
|
lastRunId: input.lastRunId,
|
|
998
1006
|
lastError: input.lastError,
|
|
1007
|
+
...(input.lastSeenCommentId !== undefined ? { lastSeenCommentId: input.lastSeenCommentId } : {}),
|
|
999
1008
|
})
|
|
1000
1009
|
.returning()
|
|
1001
1010
|
.then((rows) => rows[0] ?? null);
|
|
@@ -1364,25 +1373,21 @@ export function heartbeatService(db) {
|
|
|
1364
1373
|
}
|
|
1365
1374
|
const tracksLocalChild = isTrackedLocalChildProcessAdapter(adapterType);
|
|
1366
1375
|
if (tracksLocalChild && run.processPid && isProcessAlive(run.processPid)) {
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
});
|
|
1373
|
-
if (detachedRun) {
|
|
1374
|
-
await appendRunEvent(detachedRun, await nextRunEventSeq(detachedRun.id), {
|
|
1375
|
-
eventType: "lifecycle",
|
|
1376
|
-
stream: "system",
|
|
1377
|
-
level: "warn",
|
|
1378
|
-
message: detachedMessage,
|
|
1379
|
-
payload: {
|
|
1380
|
-
processPid: run.processPid,
|
|
1381
|
-
},
|
|
1382
|
-
});
|
|
1383
|
-
}
|
|
1376
|
+
// Kill the orphaned process instead of letting it hang forever
|
|
1377
|
+
const detachedMessage = `Lost in-memory process handle, but child pid ${run.processPid} is still alive — killing and marking failed`;
|
|
1378
|
+
logger.info({ runId: run.id, pid: run.processPid }, detachedMessage);
|
|
1379
|
+
try {
|
|
1380
|
+
process.kill(run.processPid, "SIGTERM");
|
|
1384
1381
|
}
|
|
1385
|
-
|
|
1382
|
+
catch { }
|
|
1383
|
+
setTimeout(() => {
|
|
1384
|
+
try {
|
|
1385
|
+
if (isProcessAlive(run.processPid))
|
|
1386
|
+
process.kill(run.processPid, "SIGKILL");
|
|
1387
|
+
}
|
|
1388
|
+
catch { }
|
|
1389
|
+
}, 5000);
|
|
1390
|
+
// Fall through to the same fail+retry logic below (don't continue)
|
|
1386
1391
|
}
|
|
1387
1392
|
const shouldRetry = tracksLocalChild && !!run.processPid && (run.processLossRetryCount ?? 0) < 1;
|
|
1388
1393
|
const baseMessage = run.processPid
|
|
@@ -2046,6 +2051,23 @@ export function heartbeatService(db) {
|
|
|
2046
2051
|
payload: meta,
|
|
2047
2052
|
});
|
|
2048
2053
|
};
|
|
2054
|
+
// --- Pre-compiled heartbeat context bundle (Level 2 CAG) ---
|
|
2055
|
+
if (issueId) {
|
|
2056
|
+
try {
|
|
2057
|
+
const lastSeenCommentId = taskSessionForRun?.lastSeenCommentId ?? null;
|
|
2058
|
+
const bundle = await issuesSvc.buildHeartbeatContextBundle(issueId, {
|
|
2059
|
+
lastSeenCommentId,
|
|
2060
|
+
maxComments: 30,
|
|
2061
|
+
});
|
|
2062
|
+
if (bundle) {
|
|
2063
|
+
context.fideliosHeartbeatContext = bundle.markdown;
|
|
2064
|
+
context.fideliosHeartbeatContextCommentCursor = bundle.commentCursor;
|
|
2065
|
+
}
|
|
2066
|
+
}
|
|
2067
|
+
catch (err) {
|
|
2068
|
+
logger.warn({ err, runId: run.id, issueId }, "failed to build heartbeat context bundle; agent will fall back to API calls");
|
|
2069
|
+
}
|
|
2070
|
+
}
|
|
2049
2071
|
const adapter = getServerAdapter(agent.adapterType);
|
|
2050
2072
|
const authToken = adapter.supportsLocalAgentJwt
|
|
2051
2073
|
? createLocalAgentJwt(agent.id, agent.companyId, agent.adapterType, run.id)
|
|
@@ -2230,6 +2252,9 @@ export function heartbeatService(db) {
|
|
|
2230
2252
|
});
|
|
2231
2253
|
}
|
|
2232
2254
|
else {
|
|
2255
|
+
// Persist comment cursor from pre-compiled context bundle
|
|
2256
|
+
const bundleCursor = parseObject(context.fideliosHeartbeatContextCommentCursor);
|
|
2257
|
+
const lastSeenCommentId = readNonEmptyString(bundleCursor.latestCommentId) ?? undefined;
|
|
2233
2258
|
await upsertTaskSession({
|
|
2234
2259
|
companyId: agent.companyId,
|
|
2235
2260
|
agentId: agent.id,
|
|
@@ -2239,11 +2264,50 @@ export function heartbeatService(db) {
|
|
|
2239
2264
|
sessionDisplayId: nextSessionState.displayId,
|
|
2240
2265
|
lastRunId: finalizedRun.id,
|
|
2241
2266
|
lastError: outcome === "succeeded" ? null : (adapterResult.errorMessage ?? "run_failed"),
|
|
2267
|
+
lastSeenCommentId,
|
|
2242
2268
|
});
|
|
2243
2269
|
}
|
|
2244
2270
|
}
|
|
2245
2271
|
}
|
|
2246
2272
|
await finalizeAgentStatus(agent.id, outcome);
|
|
2273
|
+
// Auto-retry for transient errors (MCP timeout, rate limit, network errors)
|
|
2274
|
+
if (outcome === "failed" && finalizedRun && issueId) {
|
|
2275
|
+
const errorMsg = adapterResult.errorMessage ?? "";
|
|
2276
|
+
const errorCode = adapterResult.errorCode ?? "";
|
|
2277
|
+
const exitCode = adapterResult.exitCode ?? -1;
|
|
2278
|
+
const isTransient = errorMsg.includes("timed out") ||
|
|
2279
|
+
errorMsg.includes("Request timed out") ||
|
|
2280
|
+
errorMsg.includes("MCP error") ||
|
|
2281
|
+
errorMsg.includes("rate limit") ||
|
|
2282
|
+
errorMsg.includes("429") ||
|
|
2283
|
+
errorMsg.includes("503") ||
|
|
2284
|
+
errorMsg.includes("ECONNRESET") ||
|
|
2285
|
+
errorMsg.includes("ETIMEDOUT") ||
|
|
2286
|
+
errorCode === "claude_auth_required" ||
|
|
2287
|
+
exitCode === 143;
|
|
2288
|
+
if (isTransient) {
|
|
2289
|
+
const retryDelaySec = 30;
|
|
2290
|
+
logger.info({ runId: run.id, agentId: agent.id, error: errorMsg.slice(0, 100), retryDelaySec }, "transient error detected; scheduling auto-retry");
|
|
2291
|
+
setTimeout(() => {
|
|
2292
|
+
void enqueueWakeup(agent.id, {
|
|
2293
|
+
source: "automation",
|
|
2294
|
+
triggerDetail: "system",
|
|
2295
|
+
reason: "retry_transient_error",
|
|
2296
|
+
requestedByActorType: "system",
|
|
2297
|
+
requestedByActorId: "transient-retry",
|
|
2298
|
+
contextSnapshot: {
|
|
2299
|
+
issueId,
|
|
2300
|
+
taskId: issueId,
|
|
2301
|
+
taskKey: readNonEmptyString(context.taskKey) ?? issueId,
|
|
2302
|
+
wakeReason: "retry_transient_error",
|
|
2303
|
+
retriedFromRunId: run.id,
|
|
2304
|
+
},
|
|
2305
|
+
}).catch((retryErr) => {
|
|
2306
|
+
logger.warn({ err: retryErr, runId: run.id }, "failed to enqueue transient retry");
|
|
2307
|
+
});
|
|
2308
|
+
}, retryDelaySec * 1000);
|
|
2309
|
+
}
|
|
2310
|
+
}
|
|
2247
2311
|
}
|
|
2248
2312
|
catch (err) {
|
|
2249
2313
|
const message = redactCurrentUserText(err instanceof Error ? err.message : "Unknown adapter failure", await getCurrentUserRedactionOptions());
|
|
@@ -2937,6 +3001,21 @@ export function heartbeatService(db) {
|
|
|
2937
3001
|
}
|
|
2938
3002
|
}, graceMs);
|
|
2939
3003
|
}
|
|
3004
|
+
else if (run.processPid && isProcessAlive(run.processPid)) {
|
|
3005
|
+
// Fallback: kill by PID when in-memory handle is lost (e.g. after server restart)
|
|
3006
|
+
logger.info({ runId, pid: run.processPid }, "Killing detached process by PID (no in-memory handle)");
|
|
3007
|
+
try {
|
|
3008
|
+
process.kill(run.processPid, "SIGTERM");
|
|
3009
|
+
}
|
|
3010
|
+
catch { }
|
|
3011
|
+
setTimeout(() => {
|
|
3012
|
+
try {
|
|
3013
|
+
if (isProcessAlive(run.processPid))
|
|
3014
|
+
process.kill(run.processPid, "SIGKILL");
|
|
3015
|
+
}
|
|
3016
|
+
catch { }
|
|
3017
|
+
}, 5000);
|
|
3018
|
+
}
|
|
2940
3019
|
const cancelled = await setRunStatus(run.id, "cancelled", {
|
|
2941
3020
|
finishedAt: new Date(),
|
|
2942
3021
|
error: reason,
|
|
@@ -3159,6 +3238,60 @@ export function heartbeatService(db) {
|
|
|
3159
3238
|
.limit(1);
|
|
3160
3239
|
return run ?? null;
|
|
3161
3240
|
},
|
|
3241
|
+
/**
|
|
3242
|
+
* On server startup, kill any orphaned processes from a previous server lifetime
|
|
3243
|
+
* and mark their runs as failed. This prevents "process_detached" hangs.
|
|
3244
|
+
*/
|
|
3245
|
+
reconcileOrphanedRunsOnStartup: async () => {
|
|
3246
|
+
const staleRuns = await db
|
|
3247
|
+
.select({
|
|
3248
|
+
id: heartbeatRuns.id,
|
|
3249
|
+
agentId: heartbeatRuns.agentId,
|
|
3250
|
+
processPid: heartbeatRuns.processPid,
|
|
3251
|
+
wakeupRequestId: heartbeatRuns.wakeupRequestId,
|
|
3252
|
+
processLossRetryCount: heartbeatRuns.processLossRetryCount,
|
|
3253
|
+
})
|
|
3254
|
+
.from(heartbeatRuns)
|
|
3255
|
+
.innerJoin(agents, eq(heartbeatRuns.agentId, agents.id))
|
|
3256
|
+
.where(eq(heartbeatRuns.status, "running"));
|
|
3257
|
+
if (staleRuns.length === 0)
|
|
3258
|
+
return;
|
|
3259
|
+
const now = new Date();
|
|
3260
|
+
logger.info({ count: staleRuns.length }, "Reconciling stale running heartbeat runs from previous server lifetime");
|
|
3261
|
+
for (const run of staleRuns) {
|
|
3262
|
+
// Kill orphaned process if still alive
|
|
3263
|
+
if (run.processPid && isProcessAlive(run.processPid)) {
|
|
3264
|
+
logger.info({ runId: run.id, pid: run.processPid }, "Killing orphaned process from previous server lifetime");
|
|
3265
|
+
try {
|
|
3266
|
+
process.kill(run.processPid, "SIGTERM");
|
|
3267
|
+
}
|
|
3268
|
+
catch { }
|
|
3269
|
+
// SIGKILL will follow from reapOrphanedRuns if needed
|
|
3270
|
+
}
|
|
3271
|
+
const message = run.processPid
|
|
3272
|
+
? `Orphaned run from previous server lifetime — pid ${run.processPid} killed`
|
|
3273
|
+
: "Stale running run from previous server lifetime";
|
|
3274
|
+
await setRunStatus(run.id, "failed", {
|
|
3275
|
+
error: message,
|
|
3276
|
+
errorCode: "process_lost",
|
|
3277
|
+
finishedAt: now,
|
|
3278
|
+
});
|
|
3279
|
+
await setWakeupStatus(run.wakeupRequestId, "failed", {
|
|
3280
|
+
finishedAt: now,
|
|
3281
|
+
error: message,
|
|
3282
|
+
});
|
|
3283
|
+
// Queue retry if under limit
|
|
3284
|
+
if ((run.processLossRetryCount ?? 0) < 1) {
|
|
3285
|
+
const agent = await getAgent(run.agentId);
|
|
3286
|
+
const fullRun = await getRun(run.id);
|
|
3287
|
+
if (agent && fullRun) {
|
|
3288
|
+
await enqueueProcessLossRetry(fullRun, agent, now);
|
|
3289
|
+
}
|
|
3290
|
+
}
|
|
3291
|
+
await finalizeAgentStatus(run.agentId, "failed");
|
|
3292
|
+
}
|
|
3293
|
+
logger.info({ reconciled: staleRuns.length }, "Startup reconciliation complete");
|
|
3294
|
+
},
|
|
3162
3295
|
};
|
|
3163
3296
|
}
|
|
3164
3297
|
//# sourceMappingURL=heartbeat.js.map
|