@grackle-ai/server 0.65.0 → 0.67.0
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/compute-task-status.d.ts.map +1 -1
- package/dist/compute-task-status.js +1 -0
- package/dist/compute-task-status.js.map +1 -1
- package/dist/event-processor.d.ts +1 -2
- package/dist/event-processor.d.ts.map +1 -1
- package/dist/event-processor.js +17 -24
- package/dist/event-processor.js.map +1 -1
- package/dist/grpc-service.d.ts.map +1 -1
- package/dist/grpc-service.js +53 -39
- package/dist/grpc-service.js.map +1 -1
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -1
- package/dist/knowledge-init.d.ts +24 -0
- package/dist/knowledge-init.d.ts.map +1 -0
- package/dist/knowledge-init.js +140 -0
- package/dist/knowledge-init.js.map +1 -0
- package/dist/lifecycle.d.ts +35 -0
- package/dist/lifecycle.d.ts.map +1 -0
- package/dist/lifecycle.js +94 -0
- package/dist/lifecycle.js.map +1 -0
- package/dist/session-recovery.d.ts +16 -0
- package/dist/session-recovery.d.ts.map +1 -0
- package/dist/session-recovery.js +115 -0
- package/dist/session-recovery.js.map +1 -0
- package/dist/session-store.d.ts +4 -0
- package/dist/session-store.d.ts.map +1 -1
- package/dist/session-store.js +18 -0
- package/dist/session-store.js.map +1 -1
- package/dist/stream-registry.d.ts +8 -0
- package/dist/stream-registry.d.ts.map +1 -1
- package/dist/stream-registry.js +22 -1
- package/dist/stream-registry.js.map +1 -1
- package/dist/ws-bridge.d.ts.map +1 -1
- package/dist/ws-bridge.js +9 -11
- package/dist/ws-bridge.js.map +1 -1
- package/package.json +7 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compute-task-status.d.ts","sourceRoot":"","sources":["../src/compute-task-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,8EAA8E;AAC9E,MAAM,WAAW,gBAAgB;IAC/B,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,eAAe,EAAE,MAAM,CAAC;CACzB;AASD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,QAAQ,GAAG,WAAW,CAAC,EAAE,GAC1D,gBAAgB,
|
|
1
|
+
{"version":3,"file":"compute-task-status.d.ts","sourceRoot":"","sources":["../src/compute-task-status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,8EAA8E;AAC9E,MAAM,WAAW,gBAAgB;IAC/B,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,eAAe,EAAE,MAAM,CAAC;CACzB;AASD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,QAAQ,GAAG,WAAW,CAAC,EAAE,GAC1D,gBAAgB,CAwDlB"}
|
|
@@ -61,6 +61,7 @@ export function computeTaskStatus(storedStatus, sessions) {
|
|
|
61
61
|
switch (latest.status) {
|
|
62
62
|
case SESSION_STATUS.COMPLETED:
|
|
63
63
|
case SESSION_STATUS.HIBERNATING:
|
|
64
|
+
case SESSION_STATUS.SUSPENDED:
|
|
64
65
|
status = TASK_STATUS.PAUSED;
|
|
65
66
|
break;
|
|
66
67
|
case SESSION_STATUS.FAILED:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compute-task-status.js","sourceRoot":"","sources":["../src/compute-task-status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAUjE,sEAAsE;AACtE,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CAAC;IAC3D,cAAc,CAAC,OAAO;IACtB,cAAc,CAAC,OAAO;IACtB,cAAc,CAAC,IAAI;CACpB,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAoB,EACpB,QAA2D;IAE3D,uFAAuF;IACvF,IAAI,YAAY,KAAK,WAAW,CAAC,QAAQ,IAAI,YAAY,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;QACjF,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC;YACzC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAAE;YAC/B,CAAC,CAAC,EAAE,CAAC;QACP,oFAAoF;QACpF,IAAI,YAAY,KAAK,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC1C,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC;QAC3D,CAAC;QACD,6EAA6E;QAC7E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,WAAW,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC;IAClE,CAAC;IAED,gCAAgC;IAChC,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3C,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CACtC,CAAC;IAEF,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC;QAC7E,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO;YAC1D,eAAe,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAAE;SAC/C,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE1C,IAAI,MAAc,CAAC;IACnB,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,cAAc,CAAC,SAAS,CAAC;QAC9B,KAAK,cAAc,CAAC,WAAW;
|
|
1
|
+
{"version":3,"file":"compute-task-status.js","sourceRoot":"","sources":["../src/compute-task-status.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,6 @@ export interface EventStreamOptions {
|
|
|
10
10
|
systemContext?: string;
|
|
11
11
|
/** Initial user prompt sent to the agent. Emitted as a user_input event after systemContext. */
|
|
12
12
|
prompt?: string;
|
|
13
|
-
onError?: (error: unknown) => void;
|
|
14
13
|
}
|
|
15
14
|
/**
|
|
16
15
|
* Process a finding event, storing it in the finding store and broadcasting.
|
|
@@ -27,7 +26,7 @@ export declare function processSubtaskEvent(ctx: ProcessorContext, content: stri
|
|
|
27
26
|
* Handles event transformation, logging, finding interception, status updates, and cleanup.
|
|
28
27
|
*
|
|
29
28
|
* This function is fire-and-forget: it runs in the background and does not throw.
|
|
30
|
-
* Callers should use `onComplete`
|
|
29
|
+
* Callers should use `onComplete` callback for post-processing.
|
|
31
30
|
*
|
|
32
31
|
* Supports late-binding: if a task is associated with the session after the stream starts,
|
|
33
32
|
* the processor registry notifies this function via a bind listener, and pre-association
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-processor.d.ts","sourceRoot":"","sources":["../src/event-processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,SAAS,EAAmC,MAAM,oBAAoB,CAAC;AAczF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAKhE,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gGAAgG;IAChG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gGAAgG;IAChG,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"event-processor.d.ts","sourceRoot":"","sources":["../src/event-processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,SAAS,EAAmC,MAAM,oBAAoB,CAAC;AAczF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAKhE,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gGAAgG;IAChG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gGAAgG;IAChG,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,IAAI,CAmBN;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,IAAI,CA6FN;AAsCD;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,EAC3C,OAAO,EAAE,kBAAkB,GAC1B,IAAI,CAiLN"}
|
package/dist/event-processor.js
CHANGED
|
@@ -142,14 +142,14 @@ function replayLoggedEvents(ctx, subtaskLocalIdMap) {
|
|
|
142
142
|
* Handles event transformation, logging, finding interception, status updates, and cleanup.
|
|
143
143
|
*
|
|
144
144
|
* This function is fire-and-forget: it runs in the background and does not throw.
|
|
145
|
-
* Callers should use `onComplete`
|
|
145
|
+
* Callers should use `onComplete` callback for post-processing.
|
|
146
146
|
*
|
|
147
147
|
* Supports late-binding: if a task is associated with the session after the stream starts,
|
|
148
148
|
* the processor registry notifies this function via a bind listener, and pre-association
|
|
149
149
|
* events are replayed from the session log.
|
|
150
150
|
*/
|
|
151
151
|
export function processEventStream(events, options) {
|
|
152
|
-
const { sessionId, logPath
|
|
152
|
+
const { sessionId, logPath } = options;
|
|
153
153
|
// Create a mutable context that can be updated via the processor registry
|
|
154
154
|
const ctx = {
|
|
155
155
|
sessionId,
|
|
@@ -261,7 +261,10 @@ export function processEventStream(events, options) {
|
|
|
261
261
|
else if (event.content === "hibernating") {
|
|
262
262
|
sessionStore.updateSession(sessionId, SESSION_STATUS.HIBERNATING);
|
|
263
263
|
}
|
|
264
|
-
//
|
|
264
|
+
// On terminal status: publish child completion to IPC pipe stream.
|
|
265
|
+
// Note: lifecycle streams are NOT cleaned up here — they persist until
|
|
266
|
+
// the spawner explicitly closes the fd (killAgent, closeFd). This is the
|
|
267
|
+
// emergent lifecycle model: fd closure drives hibernation, not status events.
|
|
265
268
|
if (["completed", "failed", "killed", "hibernating"].includes(event.content)) {
|
|
266
269
|
publishChildCompletion(sessionId, event.content);
|
|
267
270
|
}
|
|
@@ -273,9 +276,10 @@ export function processEventStream(events, options) {
|
|
|
273
276
|
}
|
|
274
277
|
}
|
|
275
278
|
}
|
|
276
|
-
// Fallback: if stream ended without a terminal status event, mark completed
|
|
279
|
+
// Fallback: if stream ended without a terminal status event, mark completed.
|
|
280
|
+
// Guard against overwriting SUSPENDED (set by heartbeat sweep during disconnect).
|
|
277
281
|
const current = sessionStore.getSession(sessionId);
|
|
278
|
-
if (current && !TERMINAL_STATUSES.includes(current.status)) {
|
|
282
|
+
if (current && !TERMINAL_STATUSES.includes(current.status) && current.status !== SESSION_STATUS.SUSPENDED) {
|
|
279
283
|
sessionStore.updateSession(sessionId, SESSION_STATUS.COMPLETED);
|
|
280
284
|
publishChildCompletion(sessionId, "completed");
|
|
281
285
|
if (ctx.taskId) {
|
|
@@ -285,31 +289,20 @@ export function processEventStream(events, options) {
|
|
|
285
289
|
}
|
|
286
290
|
catch (err) {
|
|
287
291
|
const current = sessionStore.getSession(sessionId);
|
|
288
|
-
if (current
|
|
289
|
-
//
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
streamHub.publish(create(grackle.SessionEventSchema, {
|
|
294
|
-
sessionId,
|
|
295
|
-
type: grackle.EventType.STATUS,
|
|
296
|
-
timestamp: new Date().toISOString(),
|
|
297
|
-
content: SESSION_STATUS.COMPLETED,
|
|
298
|
-
}));
|
|
299
|
-
}
|
|
300
|
-
else {
|
|
301
|
-
// Genuine failure during active work.
|
|
302
|
-
sessionStore.updateSession(sessionId, SESSION_STATUS.FAILED, undefined, String(err));
|
|
303
|
-
publishChildCompletion(sessionId, "failed");
|
|
292
|
+
if (current && !TERMINAL_STATUSES.includes(current.status)) {
|
|
293
|
+
// Transport error during active or idle session — suspend for auto-recovery
|
|
294
|
+
// on reconnect. Don't publish child completion (session will resume).
|
|
295
|
+
logger.info({ sessionId, err: String(err) }, "Stream lost — suspending session for recovery");
|
|
296
|
+
sessionStore.suspendSession(sessionId);
|
|
304
297
|
streamHub.publish(create(grackle.SessionEventSchema, {
|
|
305
298
|
sessionId,
|
|
306
299
|
type: grackle.EventType.STATUS,
|
|
307
300
|
timestamp: new Date().toISOString(),
|
|
308
|
-
content: SESSION_STATUS.
|
|
309
|
-
raw: String(err),
|
|
301
|
+
content: SESSION_STATUS.SUSPENDED,
|
|
310
302
|
}));
|
|
311
|
-
onError?.(err);
|
|
312
303
|
}
|
|
304
|
+
// If already terminal (agent pushed completed/failed/etc. before transport
|
|
305
|
+
// died), the session is already in its correct final state — nothing to do.
|
|
313
306
|
if (ctx.taskId) {
|
|
314
307
|
emit("task.updated", { taskId: ctx.taskId, workspaceId: ctx.workspaceId });
|
|
315
308
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-processor.js","sourceRoot":"","sources":["../src/event-processor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"event-processor.js","sourceRoot":"","sources":["../src/event-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpc-service.d.ts","sourceRoot":"","sources":["../src/grpc-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"grpc-service.d.ts","sourceRoot":"","sources":["../src/grpc-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AA+E7E;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAYvD;AAqLD,gFAAgF;AAChF,wBAAgB,mBAAmB,CACjC,UAAU,EAAE;IACV,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB,EAAE,GACF,MAAM,CAUR;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAczE;AAED,iFAAiF;AACjF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CA46CjE"}
|
package/dist/grpc-service.js
CHANGED
|
@@ -15,6 +15,7 @@ import * as personaStore from "./persona-store.js";
|
|
|
15
15
|
import { emit } from "./event-bus.js";
|
|
16
16
|
import { processEventStream } from "./event-processor.js";
|
|
17
17
|
import * as processorRegistry from "./processor-registry.js";
|
|
18
|
+
import { recoverSuspendedSessions } from "./session-recovery.js";
|
|
18
19
|
import { join } from "node:path";
|
|
19
20
|
import { LOGS_DIR, DEFAULT_WEB_PORT, DEFAULT_MCP_PORT, MAX_TASK_DEPTH, SESSION_STATUS, TERMINAL_SESSION_STATUSES, TASK_STATUS, ROOT_TASK_ID, taskStatusToEnum, taskStatusToString, workspaceStatusToEnum, claudeProviderModeToEnum, providerToggleToEnum, } from "@grackle-ai/common";
|
|
20
21
|
import { resolvePersona } from "./resolve-persona.js";
|
|
@@ -37,6 +38,7 @@ import * as credentialProviders from "./credential-providers.js";
|
|
|
37
38
|
import * as streamRegistry from "./stream-registry.js";
|
|
38
39
|
import * as pipeDelivery from "./pipe-delivery.js";
|
|
39
40
|
import { ensureAsyncDeliveryListener } from "./pipe-delivery.js";
|
|
41
|
+
import { cleanupLifecycleStream } from "./lifecycle.js";
|
|
40
42
|
/** Valid pipe mode values for SpawnRequest and StartTaskRequest. */
|
|
41
43
|
const VALID_PIPE_MODES = new Set(["", "sync", "async", "detach"]);
|
|
42
44
|
/** Validate pipe mode and parentSessionId. Throws ConnectError on invalid input. */
|
|
@@ -340,6 +342,10 @@ export function registerGrackleRoutes(router) {
|
|
|
340
342
|
envRegistry.updateEnvironmentStatus(req.id, "connected");
|
|
341
343
|
envRegistry.markBootstrapped(req.id);
|
|
342
344
|
emit("environment.changed", {});
|
|
345
|
+
// Auto-recover suspended sessions (fire-and-forget)
|
|
346
|
+
recoverSuspendedSessions(req.id, conn).catch((err) => {
|
|
347
|
+
logger.error({ environmentId: req.id, err }, "Session recovery failed");
|
|
348
|
+
});
|
|
343
349
|
yield create(grackle.ProvisionEventSchema, {
|
|
344
350
|
stage: "ready",
|
|
345
351
|
message: "Environment connected",
|
|
@@ -440,8 +446,13 @@ export function registerGrackleRoutes(router) {
|
|
|
440
446
|
scriptContent: resolved.type === "script" ? resolved.script : "",
|
|
441
447
|
pipe: req.pipe,
|
|
442
448
|
});
|
|
443
|
-
//
|
|
444
|
-
//
|
|
449
|
+
// Create lifecycle stream — every session gets one. The spawner holds
|
|
450
|
+
// a lifecycle fd; when it's closed, the session auto-hibernates.
|
|
451
|
+
const lifecycleStream = streamRegistry.createStream(`lifecycle:${sessionId}`);
|
|
452
|
+
const spawnerId = req.parentSessionId || "__server__";
|
|
453
|
+
streamRegistry.subscribe(lifecycleStream.id, spawnerId, "rw", "detach", true);
|
|
454
|
+
streamRegistry.subscribe(lifecycleStream.id, sessionId, "rw", "detach", false);
|
|
455
|
+
// Set up IPC pipe stream (optional, on top of lifecycle stream)
|
|
445
456
|
let pipeFd = 0;
|
|
446
457
|
if (pipeMode && pipeMode !== "detach" && req.parentSessionId) {
|
|
447
458
|
const ipcStream = streamRegistry.createStream(`pipe:${sessionId}`);
|
|
@@ -607,25 +618,16 @@ export function registerGrackleRoutes(router) {
|
|
|
607
618
|
}
|
|
608
619
|
// Unsubscribe the caller
|
|
609
620
|
streamRegistry.unsubscribe(sub.id);
|
|
610
|
-
// Also unsubscribe children
|
|
611
|
-
//
|
|
621
|
+
// Also unsubscribe children — when their last subscription is removed,
|
|
622
|
+
// the lifecycle manager's orphan callback auto-hibernates them.
|
|
612
623
|
let hibernated = false;
|
|
613
624
|
for (const child of childSubs) {
|
|
614
625
|
streamRegistry.unsubscribe(child.subId);
|
|
615
|
-
|
|
626
|
+
// Check if the child was orphaned (auto-hibernated)
|
|
616
627
|
const childSession = sessionStore.getSession(child.sessionId);
|
|
617
|
-
if (childSession) {
|
|
618
|
-
|
|
619
|
-
if (conn) {
|
|
620
|
-
try {
|
|
621
|
-
await conn.client.kill(create(powerline.SessionIdSchema, { id: child.sessionId }));
|
|
622
|
-
}
|
|
623
|
-
catch {
|
|
624
|
-
// Best-effort kill — child may have already exited
|
|
625
|
-
}
|
|
626
|
-
}
|
|
628
|
+
if (childSession?.status === SESSION_STATUS.HIBERNATING) {
|
|
629
|
+
hibernated = true;
|
|
627
630
|
}
|
|
628
|
-
hibernated = true;
|
|
629
631
|
}
|
|
630
632
|
// Clean up async listeners for caller and any unsubscribed children
|
|
631
633
|
pipeDelivery.cleanupAsyncListenerIfEmpty(req.sessionId);
|
|
@@ -663,28 +665,35 @@ export function registerGrackleRoutes(router) {
|
|
|
663
665
|
if (!session) {
|
|
664
666
|
throw new ConnectError(`Session not found: ${req.id}`, Code.NotFound);
|
|
665
667
|
}
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
668
|
+
// Delete the lifecycle stream FIRST — this triggers auto-hibernate via
|
|
669
|
+
// the orphan callback (which also kills the PowerLine process).
|
|
670
|
+
// Must happen before any direct kill to avoid a race where the event
|
|
671
|
+
// processor marks the session terminal before the orphan fires.
|
|
672
|
+
cleanupLifecycleStream(req.id);
|
|
673
|
+
// Also close any other subscriptions (pipe streams etc.)
|
|
674
|
+
const subs = streamRegistry.getSubscriptionsForSession(req.id);
|
|
675
|
+
for (const sub of subs) {
|
|
676
|
+
streamRegistry.unsubscribe(sub.id);
|
|
677
|
+
}
|
|
678
|
+
// Fallback for legacy sessions without lifecycle streams.
|
|
679
|
+
// Check current status — orphan callback may have already set HIBERNATING
|
|
680
|
+
// via lifecycle stream deletion or pipe subscription removal.
|
|
681
|
+
const currentSession = sessionStore.getSession(req.id);
|
|
682
|
+
const alreadyTerminal = currentSession && TERMINAL_SESSION_STATUSES.has(currentSession.status);
|
|
683
|
+
if (!alreadyTerminal && currentSession) {
|
|
684
|
+
sessionStore.updateSession(req.id, SESSION_STATUS.INTERRUPTED);
|
|
685
|
+
streamHub.publish(create(grackle.SessionEventSchema, {
|
|
686
|
+
sessionId: req.id,
|
|
687
|
+
type: grackle.EventType.STATUS,
|
|
688
|
+
timestamp: new Date().toISOString(),
|
|
689
|
+
content: SESSION_STATUS.INTERRUPTED,
|
|
690
|
+
raw: "",
|
|
691
|
+
}));
|
|
692
|
+
if (session.taskId) {
|
|
693
|
+
const task = taskStore.getTask(session.taskId);
|
|
694
|
+
if (task) {
|
|
695
|
+
emit("task.updated", { taskId: task.id, workspaceId: task.workspaceId || "" });
|
|
696
|
+
}
|
|
688
697
|
}
|
|
689
698
|
}
|
|
690
699
|
return create(grackle.EmptySchema, {});
|
|
@@ -1049,7 +1058,12 @@ export function registerGrackleRoutes(router) {
|
|
|
1049
1058
|
scriptContent: resolved.type === "script" ? resolved.script : "",
|
|
1050
1059
|
pipe: req.pipe,
|
|
1051
1060
|
});
|
|
1052
|
-
//
|
|
1061
|
+
// Create lifecycle stream for the task session
|
|
1062
|
+
const taskLifecycleStream = streamRegistry.createStream(`lifecycle:${sessionId}`);
|
|
1063
|
+
const taskSpawnerId = req.parentSessionId || "__server__";
|
|
1064
|
+
streamRegistry.subscribe(taskLifecycleStream.id, taskSpawnerId, "rw", "detach", true);
|
|
1065
|
+
streamRegistry.subscribe(taskLifecycleStream.id, sessionId, "rw", "detach", false);
|
|
1066
|
+
// Set up IPC pipe stream (optional)
|
|
1053
1067
|
let taskPipeFd = 0;
|
|
1054
1068
|
if (taskPipeMode && taskPipeMode !== "detach" && req.parentSessionId) {
|
|
1055
1069
|
const ipcStream = streamRegistry.createStream(`pipe:${sessionId}`);
|