@grackle-ai/core 0.85.1 → 0.86.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.
Files changed (44) hide show
  1. package/dist/environment-handlers.d.ts.map +1 -1
  2. package/dist/environment-handlers.js +5 -0
  3. package/dist/environment-handlers.js.map +1 -1
  4. package/dist/event-processor.d.ts +2 -0
  5. package/dist/event-processor.d.ts.map +1 -1
  6. package/dist/event-processor.js +12 -3
  7. package/dist/event-processor.js.map +1 -1
  8. package/dist/index.d.ts +7 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +6 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/knowledge-handlers.d.ts.map +1 -1
  13. package/dist/knowledge-handlers.js +114 -50
  14. package/dist/knowledge-handlers.js.map +1 -1
  15. package/dist/knowledge-health.d.ts +53 -0
  16. package/dist/knowledge-health.d.ts.map +1 -0
  17. package/dist/knowledge-health.js +92 -0
  18. package/dist/knowledge-health.js.map +1 -0
  19. package/dist/knowledge-init.d.ts +3 -1
  20. package/dist/knowledge-init.d.ts.map +1 -1
  21. package/dist/knowledge-init.js +9 -1
  22. package/dist/knowledge-init.js.map +1 -1
  23. package/dist/logger.d.ts +2 -0
  24. package/dist/logger.d.ts.map +1 -1
  25. package/dist/logger.js +7 -0
  26. package/dist/logger.js.map +1 -1
  27. package/dist/root-task-boot.d.ts +58 -0
  28. package/dist/root-task-boot.d.ts.map +1 -0
  29. package/dist/root-task-boot.js +199 -0
  30. package/dist/root-task-boot.js.map +1 -0
  31. package/dist/session-handlers.d.ts.map +1 -1
  32. package/dist/session-handlers.js +6 -0
  33. package/dist/session-handlers.js.map +1 -1
  34. package/dist/task-handlers.d.ts.map +1 -1
  35. package/dist/task-handlers.js +10 -0
  36. package/dist/task-handlers.js.map +1 -1
  37. package/dist/trace-context.d.ts +13 -0
  38. package/dist/trace-context.d.ts.map +1 -0
  39. package/dist/trace-context.js +51 -0
  40. package/dist/trace-context.js.map +1 -0
  41. package/dist/workspace-handlers.d.ts.map +1 -1
  42. package/dist/workspace-handlers.js +3 -0
  43. package/dist/workspace-handlers.js.map +1 -1
  44. package/package.json +7 -7
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Knowledge graph health monitoring.
3
+ *
4
+ * Provides a {@link ReconciliationPhase} that periodically checks Neo4j
5
+ * connectivity and tracks state transitions. Exposes the current health
6
+ * state for use by gRPC handlers, the event sync circuit breaker, and
7
+ * the `/readyz` endpoint.
8
+ *
9
+ * @module
10
+ */
11
+ import { logger } from "./logger.js";
12
+ // ---------------------------------------------------------------------------
13
+ // Module-level state
14
+ // ---------------------------------------------------------------------------
15
+ /**
16
+ * Whether Neo4j was healthy on the last check.
17
+ *
18
+ * Defaults to `true` (optimistic) because `initKnowledge()` verifies
19
+ * connectivity via `openNeo4j()` before subscribing to events. This
20
+ * avoids a startup gap where events would be dropped before the first
21
+ * reconciliation tick (~10s).
22
+ */
23
+ let healthy = true;
24
+ /** Whether at least one health check has completed. */
25
+ let initialized = false;
26
+ /**
27
+ * Create a reconciliation phase that monitors Neo4j health.
28
+ *
29
+ * Calls `healthCheck()` on every tick and updates the module-level state.
30
+ * Logs only on state transitions (healthy to unhealthy or vice versa) to
31
+ * avoid log flooding during sustained outages.
32
+ */
33
+ export function createKnowledgeHealthPhase(deps) {
34
+ return {
35
+ name: "knowledge-health",
36
+ execute: async () => {
37
+ let result;
38
+ try {
39
+ result = await deps.healthCheck();
40
+ }
41
+ catch {
42
+ result = false;
43
+ }
44
+ const previous = healthy;
45
+ const wasInitialized = initialized;
46
+ healthy = result;
47
+ initialized = true;
48
+ // Log on state transitions and on first-check failures
49
+ if (previous && !result) {
50
+ logger.warn("Neo4j became unreachable — knowledge graph operations will be skipped");
51
+ }
52
+ else if (wasInitialized && !previous && result) {
53
+ logger.info("Neo4j recovered — knowledge graph operations resumed");
54
+ }
55
+ },
56
+ };
57
+ }
58
+ /**
59
+ * Whether Neo4j is currently considered healthy.
60
+ *
61
+ * Returns `true` before the first health check has completed (optimistic
62
+ * default — `initKnowledge()` verifies connectivity at startup).
63
+ */
64
+ export function isNeo4jHealthy() {
65
+ return healthy;
66
+ }
67
+ /**
68
+ * Get a readiness check result for the `/readyz` endpoint.
69
+ *
70
+ * Returns `{ ok: true }` when Neo4j is reachable (or before the first check
71
+ * completes, using the optimistic default), or `{ ok: false, message }` when
72
+ * Neo4j has been observed unreachable.
73
+ */
74
+ export function getKnowledgeReadinessCheck() {
75
+ if (!initialized) {
76
+ return { ok: true, message: "Neo4j health check has not run yet" };
77
+ }
78
+ if (!healthy) {
79
+ return { ok: false, message: "Neo4j is unreachable" };
80
+ }
81
+ return { ok: true };
82
+ }
83
+ /**
84
+ * Reset health state for testing.
85
+ *
86
+ * @internal
87
+ */
88
+ export function resetKnowledgeHealthState() {
89
+ healthy = true;
90
+ initialized = false;
91
+ }
92
+ //# sourceMappingURL=knowledge-health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-health.js","sourceRoot":"","sources":["../src/knowledge-health.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E;;;;;;;GAOG;AACH,IAAI,OAAO,GAAY,IAAI,CAAC;AAE5B,uDAAuD;AACvD,IAAI,WAAW,GAAY,KAAK,CAAC;AAoBjC;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CACxC,IAA8B;IAE9B,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,KAAK,IAAmB,EAAE;YACjC,IAAI,MAAe,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YACpC,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,GAAG,KAAK,CAAC;YACjB,CAAC;YAED,MAAM,QAAQ,GAAY,OAAO,CAAC;YAClC,MAAM,cAAc,GAAY,WAAW,CAAC;YAC5C,OAAO,GAAG,MAAM,CAAC;YACjB,WAAW,GAAG,IAAI,CAAC;YAEnB,uDAAuD;YACvD,IAAI,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;YACvF,CAAC;iBAAM,IAAI,cAAc,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAE,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B;IACxC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC;IACrE,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;IACxD,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB;IACvC,OAAO,GAAG,IAAI,CAAC;IACf,WAAW,GAAG,KAAK,CAAC;AACtB,CAAC"}
@@ -6,7 +6,9 @@
6
6
  *
7
7
  * @module
8
8
  */
9
- import { type Embedder } from "@grackle-ai/knowledge";
9
+ import { healthCheck as neo4jHealthCheck, type Embedder } from "@grackle-ai/knowledge";
10
+ /** Re-export Neo4j health check for use by the reconciliation health phase. */
11
+ export { neo4jHealthCheck };
10
12
  /** Whether the knowledge graph subsystem is enabled. */
11
13
  export declare function isKnowledgeEnabled(): boolean;
12
14
  /** Get the knowledge embedder. Returns undefined if knowledge is not initialized. */
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge-init.d.ts","sourceRoot":"","sources":["../src/knowledge-init.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAYL,KAAK,QAAQ,EACd,MAAM,uBAAuB,CAAC;AAS/B,wDAAwD;AACxD,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAKD,qFAAqF;AACrF,wBAAgB,oBAAoB,IAAI,QAAQ,GAAG,SAAS,CAE3D;AAgLD;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CA6BlE"}
1
+ {"version":3,"file":"knowledge-init.d.ts","sourceRoot":"","sources":["../src/knowledge-init.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAIL,WAAW,IAAI,gBAAgB,EAS/B,KAAK,QAAQ,EACd,MAAM,uBAAuB,CAAC;AAU/B,+EAA+E;AAC/E,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,wDAAwD;AACxD,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAKD,qFAAqF;AACrF,wBAAgB,oBAAoB,IAAI,QAAQ,GAAG,SAAS,CAE3D;AAsLD;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CA6BlE"}
@@ -6,13 +6,16 @@
6
6
  *
7
7
  * @module
8
8
  */
9
- import { openNeo4j, initSchema, closeNeo4j, createLocalEmbedder, syncReferenceNode, deleteReferenceNodeBySource, findReferenceNodeBySource, createEdge, deriveTaskText, deriveFindingText, EDGE_TYPE, } from "@grackle-ai/knowledge";
9
+ import { openNeo4j, initSchema, closeNeo4j, healthCheck as neo4jHealthCheck, createLocalEmbedder, syncReferenceNode, deleteReferenceNodeBySource, findReferenceNodeBySource, createEdge, deriveTaskText, deriveFindingText, EDGE_TYPE, } from "@grackle-ai/knowledge";
10
10
  import { subscribe } from "./event-bus.js";
11
11
  import { taskStore, findingStore, safeParseJsonArray } from "@grackle-ai/database";
12
12
  import { logger } from "./logger.js";
13
+ import { isNeo4jHealthy } from "./knowledge-health.js";
13
14
  // ---------------------------------------------------------------------------
14
15
  // Configuration
15
16
  // ---------------------------------------------------------------------------
17
+ /** Re-export Neo4j health check for use by the reconciliation health phase. */
18
+ export { neo4jHealthCheck };
16
19
  /** Whether the knowledge graph subsystem is enabled. */
17
20
  export function isKnowledgeEnabled() {
18
21
  return process.env.GRACKLE_KNOWLEDGE_ENABLED === "true";
@@ -95,6 +98,11 @@ async function syncTaskEdges(embedder, taskNodeId, task) {
95
98
  }
96
99
  /** Handle a single entity event. */
97
100
  async function handleEvent(embedder, event) {
101
+ // Circuit breaker: skip sync when Neo4j is known-unreachable
102
+ if (!isNeo4jHealthy()) {
103
+ logger.debug({ eventType: event.type }, "Knowledge sync skipped — Neo4j unhealthy");
104
+ return;
105
+ }
98
106
  try {
99
107
  const payload = event.payload;
100
108
  switch (event.type) {
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge-init.js","sourceRoot":"","sources":["../src/knowledge-init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knowledge-init.js","sourceRoot":"","sources":["../src/knowledge-init.ts"],"names":[],"mappings":"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"}
package/dist/logger.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  import { type Logger } from "pino";
2
+ /** Pino mixin that auto-injects the active traceId into every log line. */
3
+ export declare function createLoggerMixin(): object;
2
4
  /** Application logger for the Grackle server. */
3
5
  export declare const logger: Logger;
4
6
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAa,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAEzC,iDAAiD;AACjD,eAAO,MAAM,MAAM,EAAE,MAMnB,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAa,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAGzC,2EAA2E;AAC3E,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C;AAED,iDAAiD;AACjD,eAAO,MAAM,MAAM,EAAE,MAOnB,CAAC"}
package/dist/logger.js CHANGED
@@ -1,8 +1,15 @@
1
1
  import pino from "pino";
2
+ import { getTraceId } from "./trace-context.js";
3
+ /** Pino mixin that auto-injects the active traceId into every log line. */
4
+ export function createLoggerMixin() {
5
+ const traceId = getTraceId();
6
+ return traceId ? { traceId } : {};
7
+ }
2
8
  /** Application logger for the Grackle server. */
3
9
  export const logger = pino({
4
10
  name: "grackle-server",
5
11
  level: process.env.LOG_LEVEL || "info",
12
+ mixin: createLoggerMixin,
6
13
  transport: process.env.NODE_ENV !== "production"
7
14
  ? { target: "pino/file", options: { destination: 1 } }
8
15
  : undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,IAAqB,MAAM,MAAM,CAAC;AAEzC,iDAAiD;AACjD,MAAM,CAAC,MAAM,MAAM,GAAW,IAAI,CAAC;IACjC,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM;IACtC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;QAC9C,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE;QACtD,CAAC,CAAC,SAAS;CACd,CAAC,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,IAAqB,MAAM,MAAM,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,2EAA2E;AAC3E,MAAM,UAAU,iBAAiB;IAC/B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACpC,CAAC;AAED,iDAAiD;AACjD,MAAM,CAAC,MAAM,MAAM,GAAW,IAAI,CAAC;IACjC,IAAI,EAAE,gBAAgB;IACtB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM;IACtC,KAAK,EAAE,iBAAiB;IACxB,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;QAC9C,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE;QACtD,CAAC,CAAC,SAAS;CACd,CAAC,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Root task boot with reanimate-first strategy and exponential backoff.
3
+ *
4
+ * Extracted from the inline closure in `server/src/index.ts` so it can be
5
+ * unit tested. Follows the dependency-injection pattern established by
6
+ * `cron-phase.ts`.
7
+ *
8
+ * On each invocation (triggered by `environment.changed` events):
9
+ * 1. Checks if the root task is already running — if so, tracks stability.
10
+ * 2. If not running, attempts to reanimate the most recent session (preserving
11
+ * conversation history) before falling back to a fresh spawn.
12
+ * 3. Applies exponential backoff after consecutive failures to prevent
13
+ * crash-loop resource waste.
14
+ *
15
+ * @module
16
+ */
17
+ import type { TaskRow, SessionRow, EnvironmentRow } from "@grackle-ai/database";
18
+ import type { TaskStatusResult } from "./compute-task-status.js";
19
+ /** Dependencies injected into the root task boot module for testability. */
20
+ export interface RootTaskBootDeps {
21
+ /** Look up a task by ID. */
22
+ getTask: (id: string) => TaskRow | undefined;
23
+ /** List all sessions for a task. */
24
+ listSessionsForTask: (taskId: string) => Pick<SessionRow, "id" | "status" | "startedAt">[];
25
+ /** Get the most recent session for a task (by startedAt DESC). */
26
+ getLatestSessionForTask: (taskId: string) => SessionRow | undefined;
27
+ /** Compute effective task status from stored status + session history. */
28
+ computeTaskStatus: (storedStatus: string, sessions: Pick<SessionRow, "id" | "status" | "startedAt">[]) => TaskStatusResult;
29
+ /** Find the first connected environment, preferring local. */
30
+ findFirstConnectedEnvironment: () => EnvironmentRow | undefined;
31
+ /** Start a new agent session for a task. Returns error string on failure, undefined on success. */
32
+ startTaskSession: (task: TaskRow, options?: {
33
+ environmentId?: string;
34
+ notes?: string;
35
+ }) => Promise<string | undefined>;
36
+ /** Reanimate a terminal session by resuming it on PowerLine. Throws on failure. */
37
+ reanimateAgent: (sessionId: string) => SessionRow;
38
+ /** Whether onboarding is complete. Boot is deferred until the user has chosen a runtime (#1031). */
39
+ isOnboarded?: () => boolean;
40
+ }
41
+ /**
42
+ * Create the root task boot handler.
43
+ *
44
+ * Returns a callable async function that can be wired to `environment.changed`
45
+ * event subscriptions. Each call checks whether the root task needs starting
46
+ * and applies reanimate-first + exponential backoff logic.
47
+ *
48
+ * @param deps - Injected dependencies for testability.
49
+ * @returns An async function to call on each `environment.changed` event.
50
+ */
51
+ export declare function createRootTaskBoot(deps: RootTaskBootDeps): () => Promise<void>;
52
+ /**
53
+ * Reset in-memory backoff state. For use in tests only.
54
+ *
55
+ * @internal
56
+ */
57
+ export declare function _resetForTesting(): void;
58
+ //# sourceMappingURL=root-task-boot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root-task-boot.d.ts","sourceRoot":"","sources":["../src/root-task-boot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAsBjE,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,4BAA4B;IAC5B,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,GAAG,SAAS,CAAC;IAC7C,oCAAoC;IACpC,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,QAAQ,GAAG,WAAW,CAAC,EAAE,CAAC;IAC3F,kEAAkE;IAClE,uBAAuB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,UAAU,GAAG,SAAS,CAAC;IACpE,0EAA0E;IAC1E,iBAAiB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,QAAQ,GAAG,WAAW,CAAC,EAAE,KAAK,gBAAgB,CAAC;IAC3H,8DAA8D;IAC9D,6BAA6B,EAAE,MAAM,cAAc,GAAG,SAAS,CAAC;IAChE,mGAAmG;IACnG,gBAAgB,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACvH,mFAAmF;IACnF,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,UAAU,CAAC;IAClD,oGAAoG;IACpG,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;CAC7B;AA6BD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAiB9E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
@@ -0,0 +1,199 @@
1
+ /**
2
+ * Root task boot with reanimate-first strategy and exponential backoff.
3
+ *
4
+ * Extracted from the inline closure in `server/src/index.ts` so it can be
5
+ * unit tested. Follows the dependency-injection pattern established by
6
+ * `cron-phase.ts`.
7
+ *
8
+ * On each invocation (triggered by `environment.changed` events):
9
+ * 1. Checks if the root task is already running — if so, tracks stability.
10
+ * 2. If not running, attempts to reanimate the most recent session (preserving
11
+ * conversation history) before falling back to a fresh spawn.
12
+ * 3. Applies exponential backoff after consecutive failures to prevent
13
+ * crash-loop resource waste.
14
+ *
15
+ * @module
16
+ */
17
+ import { ROOT_TASK_ID, ROOT_TASK_INITIAL_PROMPT, TASK_STATUS } from "@grackle-ai/common";
18
+ import { logger } from "./logger.js";
19
+ // ─── Constants ──────────────────────────────────────────────
20
+ /** Initial delay before the first retry after a failed boot (milliseconds). */
21
+ const BOOT_INITIAL_DELAY_MS = 1_000;
22
+ /** Multiplier for exponential backoff between boot retries. */
23
+ const BOOT_BACKOFF_MULTIPLIER = 2;
24
+ /** Maximum delay between boot retries (milliseconds). */
25
+ const BOOT_MAX_DELAY_MS = 60_000;
26
+ /** Maximum consecutive boot failures before giving up until server restart. */
27
+ const BOOT_MAX_FAILURES = 10;
28
+ /** Minimum time a session must survive (ms) to be considered stable and reset backoff. */
29
+ const BOOT_STABLE_THRESHOLD_MS = 30_000;
30
+ // ─── State ──────────────────────────────────────────────────
31
+ let state = createInitialState();
32
+ function createInitialState() {
33
+ return {
34
+ failures: 0,
35
+ lastFailureAt: 0,
36
+ inProgress: false,
37
+ lastSessionStartedAt: 0,
38
+ };
39
+ }
40
+ // ─── Public API ─────────────────────────────────────────────
41
+ /**
42
+ * Create the root task boot handler.
43
+ *
44
+ * Returns a callable async function that can be wired to `environment.changed`
45
+ * event subscriptions. Each call checks whether the root task needs starting
46
+ * and applies reanimate-first + exponential backoff logic.
47
+ *
48
+ * @param deps - Injected dependencies for testability.
49
+ * @returns An async function to call on each `environment.changed` event.
50
+ */
51
+ export function createRootTaskBoot(deps) {
52
+ return async () => {
53
+ // Guard: prevent concurrent boot attempts
54
+ if (state.inProgress) {
55
+ return;
56
+ }
57
+ state.inProgress = true;
58
+ try {
59
+ await attemptBoot(deps);
60
+ }
61
+ catch (err) {
62
+ recordFailure();
63
+ logger.warn({ err }, "Root task boot failed with unexpected exception");
64
+ }
65
+ finally {
66
+ state.inProgress = false; // eslint-disable-line require-atomic-updates -- single-threaded, flag guards re-entry
67
+ }
68
+ };
69
+ }
70
+ /**
71
+ * Reset in-memory backoff state. For use in tests only.
72
+ *
73
+ * @internal
74
+ */
75
+ export function _resetForTesting() {
76
+ state = createInitialState();
77
+ }
78
+ // ─── Internal ───────────────────────────────────────────────
79
+ /** Core boot logic — separated from the guard/error wrapper for clarity. */
80
+ async function attemptBoot(deps) {
81
+ // 0. Don't auto-start before onboarding — the user hasn't chosen their
82
+ // runtime yet, so the root task would launch with the default "claude-code".
83
+ if (deps.isOnboarded && !deps.isOnboarded()) {
84
+ return;
85
+ }
86
+ // 1. Look up root task
87
+ const rootTask = deps.getTask(ROOT_TASK_ID);
88
+ if (!rootTask) {
89
+ return;
90
+ }
91
+ // 2. Check if already working
92
+ const sessions = deps.listSessionsForTask(ROOT_TASK_ID);
93
+ const { status } = deps.computeTaskStatus(rootTask.status, sessions);
94
+ if (status === TASK_STATUS.WORKING) {
95
+ checkStabilityReset();
96
+ return;
97
+ }
98
+ // 2b. Crash-loop detection: if we recently started a session but the task
99
+ // is no longer working before the stability threshold, count it as a failure.
100
+ // This catches the case where startTaskSession succeeded but the session
101
+ // crashed shortly after (the main crash-loop scenario from issue #959).
102
+ if (state.lastSessionStartedAt > 0) {
103
+ const sinceLastStart = Date.now() - state.lastSessionStartedAt;
104
+ if (sinceLastStart < BOOT_STABLE_THRESHOLD_MS) {
105
+ // Session crashed before reaching stability — record as failure
106
+ if (state.lastFailureAt < state.lastSessionStartedAt) {
107
+ // Only record once per start (guard against multiple environment.changed events)
108
+ recordFailure();
109
+ logger.info({ survivedMs: sinceLastStart, failures: state.failures }, "Root task session crashed before stability threshold — recording failure");
110
+ }
111
+ }
112
+ else {
113
+ // Session survived past stability threshold but is now stopped — reset backoff
114
+ resetBackoff(sinceLastStart);
115
+ }
116
+ state.lastSessionStartedAt = 0;
117
+ }
118
+ // 3. Find connected environment
119
+ const connectedEnv = deps.findFirstConnectedEnvironment();
120
+ if (!connectedEnv) {
121
+ return;
122
+ }
123
+ // 4. Check backoff
124
+ if (state.failures >= BOOT_MAX_FAILURES) {
125
+ // Log only once when the threshold is first reached to avoid spam
126
+ if (state.failures === BOOT_MAX_FAILURES) {
127
+ logger.error({ failures: state.failures }, "Root task boot exhausted all retries (%d failures) — giving up until server restart", state.failures);
128
+ }
129
+ return;
130
+ }
131
+ if (state.failures > 0) {
132
+ const delay = Math.min(BOOT_INITIAL_DELAY_MS * Math.pow(BOOT_BACKOFF_MULTIPLIER, state.failures - 1), BOOT_MAX_DELAY_MS);
133
+ const elapsed = Date.now() - state.lastFailureAt;
134
+ if (elapsed < delay) {
135
+ return; // backoff not elapsed yet
136
+ }
137
+ }
138
+ // 5. Reanimate-first: try to resume the latest session
139
+ let booted = false;
140
+ const latestSession = deps.getLatestSessionForTask(ROOT_TASK_ID);
141
+ if (latestSession?.runtimeSessionId) {
142
+ try {
143
+ deps.reanimateAgent(latestSession.id);
144
+ booted = true;
145
+ logger.info({ sessionId: latestSession.id, environmentId: latestSession.environmentId }, "Root task reanimated existing session");
146
+ }
147
+ catch (reanimateErr) {
148
+ logger.info({ sessionId: latestSession.id, err: reanimateErr }, "Root task reanimate failed — falling back to fresh spawn");
149
+ }
150
+ }
151
+ // 6. Fresh spawn (fallback)
152
+ if (!booted) {
153
+ const err = await deps.startTaskSession(rootTask, {
154
+ environmentId: connectedEnv.id,
155
+ notes: ROOT_TASK_INITIAL_PROMPT,
156
+ });
157
+ if (err) {
158
+ recordFailure();
159
+ logger.warn({ err }, "Root task auto-start failed");
160
+ return;
161
+ }
162
+ logger.info({ environmentId: connectedEnv.id }, "Root task auto-started (fresh spawn)");
163
+ }
164
+ // 7. Track session start time for stability detection
165
+ state.lastSessionStartedAt = Date.now(); // eslint-disable-line require-atomic-updates -- single-threaded
166
+ }
167
+ /** Record a boot failure: increment counter and timestamp. */
168
+ function recordFailure() {
169
+ state.failures++;
170
+ state.lastFailureAt = Date.now();
171
+ }
172
+ /**
173
+ * If the root task has been WORKING long enough (past the stability threshold),
174
+ * reset the backoff counter. Called when we detect the task is already running.
175
+ */
176
+ function checkStabilityReset() {
177
+ if (state.failures === 0) {
178
+ return;
179
+ }
180
+ if (state.lastSessionStartedAt > 0) {
181
+ const elapsed = Date.now() - state.lastSessionStartedAt;
182
+ if (elapsed >= BOOT_STABLE_THRESHOLD_MS) {
183
+ resetBackoff(elapsed);
184
+ }
185
+ }
186
+ else {
187
+ // Task is WORKING but we didn't start it (e.g., session recovery
188
+ // reanimated it externally). Begin tracking stability from now so
189
+ // backoff can eventually reset — otherwise MAX_FAILURES is permanent.
190
+ state.lastSessionStartedAt = Date.now();
191
+ }
192
+ }
193
+ /** Zero out the backoff state after a session has proven stable. */
194
+ function resetBackoff(survivedMs) {
195
+ logger.info({ survivedMs, previousFailures: state.failures }, "Root task session stable — resetting backoff");
196
+ state.failures = 0;
197
+ state.lastFailureAt = 0;
198
+ }
199
+ //# sourceMappingURL=root-task-boot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root-task-boot.js","sourceRoot":"","sources":["../src/root-task-boot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGzF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,+DAA+D;AAE/D,+EAA+E;AAC/E,MAAM,qBAAqB,GAAW,KAAK,CAAC;AAE5C,+DAA+D;AAC/D,MAAM,uBAAuB,GAAW,CAAC,CAAC;AAE1C,yDAAyD;AACzD,MAAM,iBAAiB,GAAW,MAAM,CAAC;AAEzC,+EAA+E;AAC/E,MAAM,iBAAiB,GAAW,EAAE,CAAC;AAErC,0FAA0F;AAC1F,MAAM,wBAAwB,GAAW,MAAM,CAAC;AAoChD,+DAA+D;AAE/D,IAAI,KAAK,GAAc,kBAAkB,EAAE,CAAC;AAE5C,SAAS,kBAAkB;IACzB,OAAO;QACL,QAAQ,EAAE,CAAC;QACX,aAAa,EAAE,CAAC;QAChB,UAAU,EAAE,KAAK;QACjB,oBAAoB,EAAE,CAAC;KACxB,CAAC;AACJ,CAAC;AAED,+DAA+D;AAE/D;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAsB;IACvD,OAAO,KAAK,IAAmB,EAAE;QAC/B,0CAA0C;QAC1C,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,aAAa,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,iDAAiD,CAAC,CAAC;QAC1E,CAAC;gBAAS,CAAC;YACT,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,sFAAsF;QAClH,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,KAAK,GAAG,kBAAkB,EAAE,CAAC;AAC/B,CAAC;AAED,+DAA+D;AAE/D,4EAA4E;AAC5E,KAAK,UAAU,WAAW,CAAC,IAAsB;IAC/C,uEAAuE;IACvE,6EAA6E;IAC7E,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QAC5C,OAAO;IACT,CAAC;IAED,uBAAuB;IACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;IACT,CAAC;IAED,8BAA8B;IAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;IACxD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrE,IAAI,MAAM,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC;QACnC,mBAAmB,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IAED,0EAA0E;IAC1E,8EAA8E;IAC9E,yEAAyE;IACzE,wEAAwE;IACxE,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,oBAAoB,CAAC;QAC/D,IAAI,cAAc,GAAG,wBAAwB,EAAE,CAAC;YAC9C,gEAAgE;YAChE,IAAI,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,oBAAoB,EAAE,CAAC;gBACrD,iFAAiF;gBACjF,aAAa,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,CACT,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,EACxD,0EAA0E,CAC3E,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,+EAA+E;YAC/E,YAAY,CAAC,cAAc,CAAC,CAAC;QAC/B,CAAC;QACD,KAAK,CAAC,oBAAoB,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,gCAAgC;IAChC,MAAM,YAAY,GAAG,IAAI,CAAC,6BAA6B,EAAE,CAAC;IAC1D,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO;IACT,CAAC;IAED,mBAAmB;IACnB,IAAI,KAAK,CAAC,QAAQ,IAAI,iBAAiB,EAAE,CAAC;QACxC,kEAAkE;QAClE,IAAI,KAAK,CAAC,QAAQ,KAAK,iBAAiB,EAAE,CAAC;YACzC,MAAM,CAAC,KAAK,CACV,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,EAC5B,qFAAqF,EACrF,KAAK,CAAC,QAAQ,CACf,CAAC;QACJ,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,EAC7E,iBAAiB,CAClB,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC;QACjD,IAAI,OAAO,GAAG,KAAK,EAAE,CAAC;YACpB,OAAO,CAAC,0BAA0B;QACpC,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,MAAM,aAAa,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAEjE,IAAI,aAAa,EAAE,gBAAgB,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YACtC,MAAM,GAAG,IAAI,CAAC;YACd,MAAM,CAAC,IAAI,CACT,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,EAAE,aAAa,EAAE,aAAa,CAAC,aAAa,EAAE,EAC3E,uCAAuC,CACxC,CAAC;QACJ,CAAC;QAAC,OAAO,YAAY,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CACT,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,EAClD,0DAA0D,CAC3D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE;YAChD,aAAa,EAAE,YAAY,CAAC,EAAE;YAC9B,KAAK,EAAE,wBAAwB;SAChC,CAAC,CAAC;QACH,IAAI,GAAG,EAAE,CAAC;YACR,aAAa,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,6BAA6B,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,sCAAsC,CAAC,CAAC;IAC1F,CAAC;IAED,sDAAsD;IACtD,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,gEAAgE;AAC3G,CAAC;AAED,8DAA8D;AAC9D,SAAS,aAAa;IACpB,KAAK,CAAC,QAAQ,EAAE,CAAC;IACjB,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB;IAC1B,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IACD,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,oBAAoB,CAAC;QACxD,IAAI,OAAO,IAAI,wBAAwB,EAAE,CAAC;YACxC,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,iEAAiE;QACjE,kEAAkE;QAClE,sEAAsE;QACtE,KAAK,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,oEAAoE;AACpE,SAAS,YAAY,CAAC,UAAkB;IACtC,MAAM,CAAC,IAAI,CACT,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,CAAC,QAAQ,EAAE,EAChD,8CAA8C,CAC/C,CAAC;IACF,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;IACnB,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC;AAC1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-handlers.d.ts","sourceRoot":"","sources":["../src/session-handlers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAa,MAAM,oBAAoB,CAAC;AAoCxD,0DAA0D;AAC1D,wBAAsB,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CA4LpF;AAED,mDAAmD;AACnD,wBAAsB,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAGtF;AAED,4CAA4C;AAC5C,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAsCjF;AAED,kDAAkD;AAClD,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAmCrF;AAED,4FAA4F;AAC5F,wBAAsB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CA0CxF;AAED,6DAA6D;AAC7D,wBAAsB,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAsCvG;AAED,oCAAoC;AACpC,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAyCrF;AAED,wEAAwE;AACxE,wBAAsB,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAkD3F;AAED,mDAAmD;AACnD,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,CAuBxE;AAED,2CAA2C;AAC3C,wBAAsB,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAK3F;AAED,2BAA2B;AAC3B,wBAAsB,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAMjF;AAED,6CAA6C;AAC7C,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAwBhG;AAED,mCAAmC;AACnC,wBAAsB,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAQvF;AAED,2CAA2C;AAC3C,wBAAuB,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,CASjG;AAED,qDAAqD;AACrD,wBAAuB,SAAS,IAAI,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,CASvE;AAED,oEAAoE;AACpE,wBAAuB,YAAY,IAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CASzE"}
1
+ {"version":3,"file":"session-handlers.d.ts","sourceRoot":"","sources":["../src/session-handlers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAa,MAAM,oBAAoB,CAAC;AAqCxD,0DAA0D;AAC1D,wBAAsB,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CA+LpF;AAED,mDAAmD;AACnD,wBAAsB,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAItF;AAED,4CAA4C;AAC5C,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAwCjF;AAED,kDAAkD;AAClD,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAoCrF;AAED,4FAA4F;AAC5F,wBAAsB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CA0CxF;AAED,6DAA6D;AAC7D,wBAAsB,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAsCvG;AAED,oCAAoC;AACpC,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAyCrF;AAED,wEAAwE;AACxE,wBAAsB,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAkD3F;AAED,mDAAmD;AACnD,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,UAAU,CAuBxE;AAED,2CAA2C;AAC3C,wBAAsB,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAK3F;AAED,2BAA2B;AAC3B,wBAAsB,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAMjF;AAED,6CAA6C;AAC7C,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAwBhG;AAED,mCAAmC;AACnC,wBAAsB,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAQvF;AAED,2CAA2C;AAC3C,wBAAuB,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,CASjG;AAED,qDAAqD;AACrD,wBAAuB,SAAS,IAAI,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,CASvE;AAED,oEAAoE;AACpE,wBAAuB,YAAY,IAAI,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CASzE"}
@@ -26,6 +26,7 @@ import { createEventStream } from "./event-hub.js";
26
26
  import { sessionRowToProto } from "./grpc-proto-converters.js";
27
27
  import { validatePipeInputs, toDialableHost, killSessionAndCleanup } from "./grpc-shared.js";
28
28
  import { personaMcpServersToJson } from "./grpc-mcp-config.js";
29
+ import { getTraceId } from "./trace-context.js";
29
30
  import { resolveBootstrapRuntime } from "./resolve-bootstrap-runtime.js";
30
31
  /** Spawn a new agent session in the given environment. */
31
32
  export async function spawnAgent(req) {
@@ -157,7 +158,9 @@ export async function spawnAgent(req) {
157
158
  logPath,
158
159
  systemContext,
159
160
  prompt: req.prompt,
161
+ traceId: getTraceId(),
160
162
  });
163
+ logger.info({ sessionId, environmentId: req.environmentId }, "Session spawned");
161
164
  const row = sessionStore.getSession(sessionId);
162
165
  const proto = sessionRowToProto(row);
163
166
  proto.pipeFd = pipeFd;
@@ -166,6 +169,7 @@ export async function spawnAgent(req) {
166
169
  /** Resume a previously suspended agent session. */
167
170
  export async function resumeAgent(req) {
168
171
  const row = reanimateAgent(req.sessionId);
172
+ logger.info({ sessionId: req.sessionId }, "Session resumed");
169
173
  return sessionRowToProto(row);
170
174
  }
171
175
  /** Send text input to a running session. */
@@ -193,6 +197,7 @@ export async function sendInput(req) {
193
197
  logWriter.writeEvent(session.logPath, userInputEvent);
194
198
  }
195
199
  streamHub.publish(userInputEvent);
200
+ logger.debug({ sessionId: req.sessionId }, "User input received");
196
201
  await conn.client.sendInput(create(powerline.InputMessageSchema, {
197
202
  sessionId: req.sessionId,
198
203
  text: req.text,
@@ -230,6 +235,7 @@ export async function killAgent(req) {
230
235
  // the orphan callback would see IDLE → reason="completed", which is wrong
231
236
  // for an explicit kill.
232
237
  killSessionAndCleanup(session);
238
+ logger.info({ sessionId: req.id }, "Session killed");
233
239
  return create(grackle.EmptySchema, {});
234
240
  }
235
241
  /** Get aggregated usage stats for a session, task, task tree, workspace, or environment. */
@@ -1 +1 @@
1
- {"version":3,"file":"session-handlers.js","sourceRoot":"","sources":["../src/session-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-handlers.js","sourceRoot":"","sources":["../src/session-handlers.ts"],"names":[],"mappings":"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"}