@synaplink/orqlaude 0.7.2 → 0.9.1

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.
@@ -2,9 +2,11 @@ import { z } from "zod";
2
2
  import { findPlan, findTask } from "../lib/state.js";
3
3
  import { jsonlPathFor, snapshotSession } from "../lib/jsonl_tail.js";
4
4
  import { detectHallucination, extractToolUses } from "../lib/hallucination.js";
5
- import { spawnAgnetViaCli, findGitRoot, cleanupPlanWorktrees } from "../lib/spawn_cli.js";
5
+ import { spawnAgnetViaCli, findGitRoot, cleanupPlanWorktrees, readChildExitRecord } from "../lib/spawn_cli.js";
6
6
  import { isProcessAlive } from "../lib/process_lib.js";
7
7
  import { resolveStateDir } from "../lib/state_dir.js";
8
+ import { probeTelegramStatus } from "../lib/telegram_status.js";
9
+ import { VERSION } from "../lib/version.js";
8
10
  import { promises as fs } from "node:fs";
9
11
  /**
10
12
  * Dispatch-phase tools: next_task, register_spawn, status, collect.
@@ -124,6 +126,7 @@ export function registerDispatch(server, store, audit) {
124
126
  task.commandLine = spawn.commandLine;
125
127
  task.stderrPath = spawn.stderrPath;
126
128
  task.stdoutPath = spawn.stdoutPath;
129
+ task.exitJsonPath = spawn.exitJsonPath;
127
130
  task.status = "running";
128
131
  task.startedAt = Date.now();
129
132
  return {
@@ -145,13 +148,50 @@ export function registerDispatch(server, store, audit) {
145
148
  return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
146
149
  }, ({ plan_id }) => ({ planId: plan_id })));
147
150
  // ---- cleanup_worktrees (companion to spawn_via_cli, v0.5.3+) -------------
148
- server.tool("cleanup_worktrees", "Remove all orqlaude-managed worktrees for a plan (typically called after `collect`). Only touches paths under <project>/.orqlaude-worktrees/<plan_short>-*. Force-removes via `git worktree remove --force` then falls back to rm -rf if git refuses.", {
151
+ server.tool("cleanup_worktrees", "Remove all orqlaude-managed worktrees for a plan (typically called after `collect`). Only touches paths under <project>/.orqlaude-worktrees/<plan_short>-*. Force-removes via `git worktree remove --force` then falls back to rm -rf if git refuses. v0.9.0: also releases the spawn locks on every task whose worktree was removed - so the orchestrator can re-spawn against the same plan_id + task_id without create_plan churn.", {
149
152
  plan_id: z.string(),
150
153
  project_root: z.string().optional(),
151
154
  }, audit.wrap("cleanup_worktrees", async ({ plan_id, project_root }) => {
152
155
  const root = project_root ?? findGitRoot(process.cwd());
153
156
  const removed = await cleanupPlanWorktrees(root, plan_id);
154
- return { content: [{ type: "text", text: JSON.stringify({ plan_id, removed_count: removed.length, removed }, null, 2) }] };
157
+ // v0.9.0: walk the plan's tasks and release any spawn lock whose
158
+ // worktreePath was just removed. This makes cleanup_worktrees the
159
+ // canonical "reset this plan, let me re-spawn fresh" entry point.
160
+ const released = await store.update((state) => {
161
+ const plan = findPlan(state, plan_id);
162
+ const releasedIds = [];
163
+ for (const t of plan.tasks) {
164
+ if (t.worktreePath && removed.includes(t.worktreePath)) {
165
+ t.spawnedSessionId = undefined;
166
+ t.pid = undefined;
167
+ t.exitJsonPath = undefined;
168
+ // Reset to pending so next_task / spawn_via_cli treat it fresh.
169
+ // Preserve worktreePath/branch for audit but they'll be
170
+ // overwritten on the next spawn.
171
+ if (t.status === "running" || t.status === "dispatched" || t.status === "died_at_launch") {
172
+ t.status = "pending";
173
+ }
174
+ releasedIds.push(t.id);
175
+ }
176
+ }
177
+ return releasedIds;
178
+ });
179
+ return {
180
+ content: [
181
+ {
182
+ type: "text",
183
+ text: JSON.stringify({
184
+ plan_id,
185
+ removed_count: removed.length,
186
+ removed,
187
+ released_task_ids: released,
188
+ next_step: released.length > 0
189
+ ? `Released ${released.length} spawn lock(s). You can call spawn_via_cli on the same task_ids to re-fire.`
190
+ : undefined,
191
+ }, null, 2),
192
+ },
193
+ ],
194
+ };
155
195
  }, ({ plan_id }) => ({ planId: plan_id })));
156
196
  // ---- register_spawn (MANUAL FALLBACK; rarely needed) ---------------------
157
197
  server.tool("register_spawn", "MANUAL FALLBACK ONLY. Normally the spawned agent self-registers on its first `checkin` call (the prompt next_task generates instructs it to). Only call this if a child fails to self-register within ~30s — symptom: status() shows the task as `dispatched` long after spawn_task succeeded.", {
@@ -185,7 +225,13 @@ export function registerDispatch(server, store, audit) {
185
225
  note: "Not yet spawned (waiting for chip click + self-registration).",
186
226
  };
187
227
  }
188
- const snap = await snapshotSession(cwd, t.spawnedSessionId);
228
+ const snap = await snapshotSession(cwd, t.spawnedSessionId, t.stdoutPath);
229
+ // v0.9.0: fast-path terminal-state read. If the child wrote an
230
+ // exit record via the spawn_via_cli on('exit') handler, surface
231
+ // it - the orchestrator doesn't have to re-poll until isProcessAlive
232
+ // ticks over. Falls through to the regular PID/snapshot path if
233
+ // the file is missing (server restart after spawn, etc).
234
+ const exitRecord = t.exitJsonPath ? await readChildExitRecord(t.exitJsonPath) : null;
189
235
  const toolUses = await extractToolUses(jsonlPathFor(cwd, t.spawnedSessionId));
190
236
  const hallu = await detectHallucination(toolUses, cwd);
191
237
  const taskWarnings = [];
@@ -195,10 +241,39 @@ export function registerDispatch(server, store, audit) {
195
241
  // stops polling a corpse.
196
242
  let derivedStatus = snap.terminated ? "done" : t.status;
197
243
  let stderrExcerpt = null;
244
+ // v0.9.0: terminal-state precedence:
245
+ // 1. exit-record file (most authoritative; written by the
246
+ // parent's on('exit') handler).
247
+ // 2. snap.terminated (result row in the event stream).
248
+ // 3. PID liveness + empty stream = died_at_launch.
249
+ if (exitRecord) {
250
+ derivedStatus = exitRecord.success ? "done" : "failed";
251
+ if (!exitRecord.success && t.stderrPath) {
252
+ try {
253
+ const buf = await fs.readFile(t.stderrPath, "utf8");
254
+ stderrExcerpt = buf.slice(0, 1000);
255
+ }
256
+ catch {
257
+ /* file missing */
258
+ }
259
+ }
260
+ t.status = derivedStatus;
261
+ if (!t.finishedAt)
262
+ t.finishedAt = exitRecord.terminated_at;
263
+ }
264
+ // died_at_launch is now defined as "PID dead AND no event was
265
+ // ever parsed from either stream source." Earlier versions
266
+ // checked `!snap.exists` which broke once we started creating
267
+ // the stdout log file at spawn time (the file exists but is
268
+ // empty when the child exits before writing). Use
269
+ // lastActivityAt + tokens-used == 0 as the canonical signal.
270
+ const producedNothing = !snap.lastActivityAt &&
271
+ snap.totalEffectiveTokens === 0 &&
272
+ !snap.lastAssistantText &&
273
+ !snap.lastToolUse;
198
274
  if (t.pid &&
199
275
  !isProcessAlive(t.pid) &&
200
- !snap.exists &&
201
- !snap.lastActivityAt &&
276
+ producedNothing &&
202
277
  (t.status === "running" || t.status === "dispatched")) {
203
278
  derivedStatus = "died_at_launch";
204
279
  if (t.stderrPath) {
@@ -210,7 +285,7 @@ export function registerDispatch(server, store, audit) {
210
285
  /* file missing or unreadable */
211
286
  }
212
287
  }
213
- taskWarnings.push(`Child PID ${t.pid} is dead and no JSONL was written. ` +
288
+ taskWarnings.push(`Child PID ${t.pid} is dead and no events were parsed from either the Desktop JSONL or the spawn_via_cli stdout log. ` +
214
289
  `Inspect stderr at ${t.stderrPath ?? "(unknown)"} or re-run the command: ${t.commandLine ?? "(unknown)"}`);
215
290
  // Persist the new status so subsequent calls don't redo this.
216
291
  t.status = "died_at_launch";
@@ -243,6 +318,9 @@ export function registerDispatch(server, store, audit) {
243
318
  stop_requested: t.stopRequested ?? null,
244
319
  stderr_excerpt: stderrExcerpt,
245
320
  stderr_path: t.stderrPath ?? null,
321
+ stdout_path: t.stdoutPath ?? null,
322
+ stream_source: snap.source,
323
+ exit_record: exitRecord,
246
324
  command_line: t.commandLine ?? null,
247
325
  };
248
326
  }));
@@ -332,6 +410,146 @@ export function registerDispatch(server, store, audit) {
332
410
  ],
333
411
  };
334
412
  }, ({ plan_id }) => ({ planId: plan_id })));
413
+ // ---- wait_for_status_change (long-poll) ----------------------------------
414
+ // v0.9.0: replaces the orchestrator's polling-loop pattern. Blocks for up
415
+ // to `timeout_sec` (default 60s) until ANY task in the plan transitions
416
+ // state, finishes, opens a PR, dies at launch, or chews through a
417
+ // material slice of its token budget. Cheap internal poll (every 2s
418
+ // file-stat + tiny snapshot read), but holds the connection open so the
419
+ // primary Claude can sleep without waking up to call status() every 90s.
420
+ server.tool("wait_for_status_change", "Long-poll: blocks up to `timeout_sec` (default 60, max 600) and returns as soon as the fleet state changes (task transition, new PR url, exit-record, +1 KB token delta) - OR returns the unchanged state when the timeout elapses. Use this INSTEAD of ScheduleWakeup + status() polling: pass the `fingerprint` from the prior response as `since_fingerprint` and the call returns the moment something useful happens. v0.9.0+.", {
421
+ plan_id: z.string(),
422
+ since_fingerprint: z.string().optional().describe("The `fingerprint` field from the prior wait_for_status_change (or status) response. Omit on first call - the server returns immediately with the current snapshot + the fresh fingerprint to thread through subsequent calls."),
423
+ timeout_sec: z.number().int().positive().max(600).default(60).describe("Max seconds the call blocks before returning the unchanged state. Default 60. Cap 600 (10 min)."),
424
+ }, audit.wrap("wait_for_status_change", async ({ plan_id, since_fingerprint, timeout_sec }) => {
425
+ const cwd = process.cwd();
426
+ const POLL_INTERVAL_MS = 2_000;
427
+ const deadline = Date.now() + timeout_sec * 1000;
428
+ const buildSnapshot = async () => {
429
+ const plan = await store.read((state) => findPlan(state, plan_id));
430
+ const agents = await Promise.all(plan.tasks.map(async (t) => {
431
+ if (!t.spawnedSessionId) {
432
+ return {
433
+ task_id: t.id,
434
+ title: t.title,
435
+ status: t.status,
436
+ tokens_used: 0,
437
+ pr_url: t.prUrl ?? null,
438
+ pid_alive: null,
439
+ exit_record: null,
440
+ terminated: false,
441
+ stop_kind: t.stopRequested?.kind ?? null,
442
+ };
443
+ }
444
+ const snap = await snapshotSession(cwd, t.spawnedSessionId, t.stdoutPath);
445
+ const exitRecord = t.exitJsonPath ? await readChildExitRecord(t.exitJsonPath) : null;
446
+ return {
447
+ task_id: t.id,
448
+ title: t.title,
449
+ status: exitRecord ? (exitRecord.success ? "done" : "failed") : t.status,
450
+ tokens_used: snap.totalEffectiveTokens,
451
+ pr_url: t.prUrl ?? null,
452
+ pid_alive: t.pid ? isProcessAlive(t.pid) : null,
453
+ exit_record: exitRecord,
454
+ terminated: snap.terminated || !!exitRecord,
455
+ stop_kind: t.stopRequested?.kind ?? null,
456
+ };
457
+ }));
458
+ return {
459
+ plan_id,
460
+ plan_status: plan.status,
461
+ agents,
462
+ };
463
+ };
464
+ const computeFingerprint = (snap) => {
465
+ // v0.9.1: hash-safe encoding via JSON.stringify. The previous
466
+ // pipe-joined / colon-separated form was fragile if a task_id or
467
+ // pr_url ever contained a `|` or `:` (today both are sanitized
468
+ // UUIDs / GitHub URLs, but pinning the structure costs nothing).
469
+ // Also includes `stop_kind` so kill_task / request_stop transitions
470
+ // wake the long-poll without waiting for the child to actually
471
+ // terminate - useful when a soft-stop is in flight.
472
+ const parts = [snap.plan_status];
473
+ for (const a of snap.agents) {
474
+ // Round token count to KB so per-token churn doesn't trip the
475
+ // fingerprint - only material progress does.
476
+ const kb = Math.floor(a.tokens_used / 1024);
477
+ parts.push([
478
+ a.task_id,
479
+ a.status,
480
+ a.pr_url ?? null,
481
+ kb,
482
+ a.exit_record
483
+ ? { code: a.exit_record.exit_code, sig: a.exit_record.signal }
484
+ : null,
485
+ a.terminated,
486
+ a.pid_alive,
487
+ a.stop_kind,
488
+ ]);
489
+ }
490
+ return JSON.stringify(parts);
491
+ };
492
+ // First read - if no fingerprint, return immediately with the
493
+ // current state (still useful as a fresh dispatch).
494
+ let snapshot = await buildSnapshot();
495
+ let fingerprint = computeFingerprint(snapshot);
496
+ if (!since_fingerprint || fingerprint !== since_fingerprint) {
497
+ return {
498
+ content: [
499
+ {
500
+ type: "text",
501
+ text: JSON.stringify({
502
+ ...snapshot,
503
+ fingerprint,
504
+ changed: !!since_fingerprint,
505
+ elapsed_sec: 0,
506
+ timed_out: false,
507
+ next_step: "Call wait_for_status_change again with this `fingerprint` as `since_fingerprint` to block until the next transition.",
508
+ }, null, 2),
509
+ },
510
+ ],
511
+ };
512
+ }
513
+ // Poll loop until fingerprint changes or deadline hits.
514
+ const startedAt = Date.now();
515
+ while (Date.now() < deadline) {
516
+ await new Promise((r) => setTimeout(r, POLL_INTERVAL_MS));
517
+ snapshot = await buildSnapshot();
518
+ fingerprint = computeFingerprint(snapshot);
519
+ if (fingerprint !== since_fingerprint) {
520
+ return {
521
+ content: [
522
+ {
523
+ type: "text",
524
+ text: JSON.stringify({
525
+ ...snapshot,
526
+ fingerprint,
527
+ changed: true,
528
+ elapsed_sec: Math.round((Date.now() - startedAt) / 1000),
529
+ timed_out: false,
530
+ }, null, 2),
531
+ },
532
+ ],
533
+ };
534
+ }
535
+ }
536
+ // Timeout - return unchanged state.
537
+ return {
538
+ content: [
539
+ {
540
+ type: "text",
541
+ text: JSON.stringify({
542
+ ...snapshot,
543
+ fingerprint,
544
+ changed: false,
545
+ elapsed_sec: Math.round((Date.now() - startedAt) / 1000),
546
+ timed_out: true,
547
+ next_step: "Nothing changed during the wait window. Call wait_for_status_change again with the same `since_fingerprint` to keep waiting, OR call status() for a deeper read.",
548
+ }, null, 2),
549
+ },
550
+ ],
551
+ };
552
+ }, ({ plan_id }) => ({ planId: plan_id })));
335
553
  // ---- collect --------------------------------------------------------------
336
554
  server.tool("collect", "Final result aggregation: per-task summary, PR URLs, total tokens+cost, exit reasons. Call once all agents have terminated. The result includes a `ready_for_review` flag suggesting you call `review_prs` (when available) to spawn reviewers.", { plan_id: z.string() }, audit.wrap("collect", async ({ plan_id }) => {
337
555
  const plan = await store.update((state) => {
@@ -343,7 +561,9 @@ export function registerDispatch(server, store, audit) {
343
561
  });
344
562
  const cwd = process.cwd();
345
563
  const results = await Promise.all(plan.tasks.map(async (t) => {
346
- const snap = t.spawnedSessionId ? await snapshotSession(cwd, t.spawnedSessionId) : null;
564
+ const snap = t.spawnedSessionId
565
+ ? await snapshotSession(cwd, t.spawnedSessionId, t.stdoutPath)
566
+ : null;
347
567
  return {
348
568
  task_id: t.id,
349
569
  title: t.title,
@@ -380,6 +600,99 @@ export function registerDispatch(server, store, audit) {
380
600
  ],
381
601
  };
382
602
  }, ({ plan_id }) => ({ planId: plan_id })));
603
+ // ---- fleet_summary (v0.9.0 dashboard, one-tool aggregation) --------------
604
+ // Single-call replacement for ping + status + list_plans + telegram probe.
605
+ // Use this at the START of a fresh session ("what's in flight?") and any
606
+ // time you want a wide view of every active plan without making 4 round
607
+ // trips. Returns:
608
+ // - server health (version, cwd, state dir, telegram status)
609
+ // - per-plan rollup (counts of pending/running/done/failed, PR list)
610
+ // - cross-plan totals (active Agnets, total tokens spent today)
611
+ server.tool("fleet_summary", "Single-call dashboard for the entire orqlaude state. Returns server health + per-plan rollup + cross-plan totals. Use at session start to discover in-flight fleets; use mid-fleet for a wide view without ping + status + list_plans round-trips. v0.9.0+.", {}, audit.wrap("fleet_summary", async () => {
612
+ const cwd = process.cwd();
613
+ const stateDir = resolveStateDir().path;
614
+ const tg = await probeTelegramStatus(stateDir);
615
+ const { plans, orphanNotificationCount, orphanResponseCount } = await store.read((s) => ({
616
+ plans: Object.values(s.plans),
617
+ orphanNotificationCount: (s.orphanNotifications ?? []).length,
618
+ orphanResponseCount: (s.orphanResponseRequests ?? []).length,
619
+ }));
620
+ const planRollups = await Promise.all(plans.map(async (p) => {
621
+ // Fast per-task counts WITHOUT the full snapshotSession read.
622
+ const counts = { pending: 0, dispatched: 0, running: 0, done: 0, failed: 0, cancelled: 0, died_at_launch: 0 };
623
+ const prs = [];
624
+ // v0.9.1: parallelize the per-task snapshot reads. The first
625
+ // post-restart call is O(plans × tasks) IO; the inner Promise.all
626
+ // makes the per-plan inner loop concurrent. Cache makes
627
+ // subsequent calls cheap regardless.
628
+ for (const t of p.tasks) {
629
+ const status = t.status ?? "pending";
630
+ counts[status] = (counts[status] ?? 0) + 1;
631
+ if (t.prUrl)
632
+ prs.push(t.prUrl);
633
+ }
634
+ const taskTokens = await Promise.all(p.tasks.map(async (t) => {
635
+ if (!t.spawnedSessionId)
636
+ return 0;
637
+ const snap = await snapshotSession(cwd, t.spawnedSessionId, t.stdoutPath);
638
+ return snap.totalEffectiveTokens;
639
+ }));
640
+ const tokensTotal = taskTokens.reduce((s, v) => s + v, 0);
641
+ const allDone = p.tasks.length > 0 && p.tasks.every((t) => t.status === "done" || t.status === "failed" || t.status === "cancelled");
642
+ return {
643
+ plan_id: p.id,
644
+ status: p.status,
645
+ created_at: p.createdAt,
646
+ root_task: p.rootTask.slice(0, 120),
647
+ task_count: p.tasks.length,
648
+ task_status_counts: counts,
649
+ tokens_used: tokensTotal,
650
+ budget_cap_tokens: p.budgetCapTokens,
651
+ budget_pct: p.budgetCapTokens ? Math.round((tokensTotal / p.budgetCapTokens) * 100) : 0,
652
+ prs,
653
+ all_terminal: allDone,
654
+ suggested_next: p.status === "draft"
655
+ ? "request_approval + confirm"
656
+ : counts.pending > 0
657
+ ? "spawn_via_cli (per-task) or next_task"
658
+ : counts.running + counts.dispatched > 0
659
+ ? "wait_for_status_change"
660
+ : allDone
661
+ ? "collect + cleanup_worktrees"
662
+ : "status",
663
+ };
664
+ }));
665
+ const activeAgnets = planRollups.reduce((sum, r) => sum + (r.task_status_counts.running ?? 0) + (r.task_status_counts.dispatched ?? 0), 0);
666
+ const grandTokens = planRollups.reduce((sum, r) => sum + r.tokens_used, 0);
667
+ return {
668
+ content: [
669
+ {
670
+ type: "text",
671
+ text: JSON.stringify({
672
+ server: { version: VERSION, cwd, state_dir: stateDir },
673
+ telegram: tg,
674
+ plans: planRollups.sort((a, b) => b.created_at - a.created_at),
675
+ totals: {
676
+ plan_count: plans.length,
677
+ active_agnets: activeAgnets,
678
+ grand_total_tokens: grandTokens,
679
+ },
680
+ orphan_queue: {
681
+ notifications: orphanNotificationCount,
682
+ response_requests: orphanResponseCount,
683
+ },
684
+ next_step: activeAgnets > 0
685
+ ? `${activeAgnets} Agnet(s) actively running. Call wait_for_status_change(<plan_id>) to block until any transitions.`
686
+ : planRollups.some((r) => r.status === "draft")
687
+ ? "One or more plans are draft - confirm or cancel."
688
+ : planRollups.some((r) => r.all_terminal && r.status !== "collected")
689
+ ? "All Agnets on at least one plan are terminal. Call collect + cleanup_worktrees."
690
+ : "Idle.",
691
+ }, null, 2),
692
+ },
693
+ ],
694
+ };
695
+ }, () => ({})));
383
696
  }
384
697
  function buildSpawnPrompt(planId, taskId, userPrompt, branchHint) {
385
698
  const branchSection = branchHint ? `\n\nSuggested branch: \`${branchHint}\`.` : "";
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/tools/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../src/tools/dispatch.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ import { z } from "zod";
2
2
  import { randomUUID } from "node:crypto";
3
3
  import { findPlan, findTask } from "../lib/state.js";
4
4
  import { snapshotSession } from "../lib/jsonl_tail.js";
5
+ import { isProcessAlive } from "../lib/process_lib.js";
6
+ import { readChildExitRecord } from "../lib/spawn_cli.js";
5
7
  /**
6
8
  * Lifecycle tools: kill_task, resume_plan, list_plans.
7
9
  *
@@ -18,11 +20,30 @@ import { snapshotSession } from "../lib/jsonl_tail.js";
18
20
  */
19
21
  export function registerLifecycle(server, store, audit) {
20
22
  // ---- kill_task (HARD STOP) ----------------------------------------------
21
- server.tool("kill_task", "HARD STOP a running task. Queues a STOP broker message saying 'commit what you have and exit immediately', and returns the session id ready for `mcp__ccd_session_mgmt__archive_session` if the agent doesn't comply within ~30s. Use this when an agent is hallucinating, looping, or otherwise off the rails. For a polite 'we don't need this anymore, please wind down' alternative, use `request_stop`.", {
23
+ server.tool("kill_task", "HARD STOP a running task. Queues a STOP broker message saying 'commit what you have and exit immediately', and returns the session id ready for `mcp__ccd_session_mgmt__archive_session` if the agent doesn't comply within ~30s. v0.9.0: if the Agnet is already dead (PID gone OR exit record present), the spawn lock is released so the task can be re-spawned without creating a fresh plan. Use this when an agent is hallucinating, looping, or otherwise off the rails. For a polite 'we don't need this anymore, please wind down' alternative, use `request_stop`.", {
22
24
  plan_id: z.string(),
23
25
  task_id: z.string(),
24
26
  reason: z.string().describe("Why you're killing this task. Surfaced to the agent and stored in audit log."),
25
27
  }, audit.wrap("kill_task", async ({ plan_id, task_id, reason }) => {
28
+ // v0.9.0: check liveness OUTSIDE store.update (it's IO-bound and
29
+ // shouldn't be inside the state critical section).
30
+ let isCorpse = false;
31
+ const preCheck = await store.read((state) => {
32
+ const plan = findPlan(state, plan_id);
33
+ const task = findTask(plan, task_id);
34
+ return {
35
+ spawnedSessionId: task.spawnedSessionId,
36
+ pid: task.pid,
37
+ exitJsonPath: task.exitJsonPath,
38
+ };
39
+ });
40
+ if (preCheck.spawnedSessionId) {
41
+ const pidDead = preCheck.pid ? !isProcessAlive(preCheck.pid) : false;
42
+ const exitRecord = preCheck.exitJsonPath
43
+ ? await readChildExitRecord(preCheck.exitJsonPath)
44
+ : null;
45
+ isCorpse = pidDead || !!exitRecord;
46
+ }
26
47
  const result = await store.update((state) => {
27
48
  const plan = findPlan(state, plan_id);
28
49
  const task = findTask(plan, task_id);
@@ -30,6 +51,25 @@ export function registerLifecycle(server, store, audit) {
30
51
  task.status = "cancelled";
31
52
  return { plan_id, task_id, status: "cancelled_before_spawn", session_id: null };
32
53
  }
54
+ // v0.9.0: if the Agnet is already dead, queuing a STOP message
55
+ // is pointless - the agent will never read it. Release the
56
+ // spawn lock so a re-spawn doesn't require create_plan churn.
57
+ if (isCorpse) {
58
+ const releasedSessionId = task.spawnedSessionId;
59
+ task.status = "cancelled";
60
+ task.stopRequested = { reason, requestedAt: Date.now(), kind: "hard" };
61
+ task.spawnedSessionId = undefined;
62
+ task.pid = undefined;
63
+ task.finishedAt = task.finishedAt ?? Date.now();
64
+ return {
65
+ plan_id,
66
+ task_id,
67
+ session_id: releasedSessionId,
68
+ released_spawn_lock: true,
69
+ reason_released: "Agnet was already dead (PID gone or exit-record present); STOP message would not be delivered. Lock cleared so spawn_via_cli can re-fire this task without creating a fresh plan.",
70
+ next_step: "Call spawn_via_cli with the same plan_id + task_id to re-attempt. If the corpse was a died_at_launch case, fix whatever the stderr surfaced first.",
71
+ };
72
+ }
33
73
  task.stopRequested = { reason, requestedAt: Date.now(), kind: "hard" };
34
74
  plan.messages.push({
35
75
  id: randomUUID(),
@@ -86,7 +126,9 @@ export function registerLifecycle(server, store, audit) {
86
126
  const plan = await store.read((state) => findPlan(state, plan_id));
87
127
  const cwd = process.cwd();
88
128
  const tasks = await Promise.all(plan.tasks.map(async (t) => {
89
- const snap = t.spawnedSessionId ? await snapshotSession(cwd, t.spawnedSessionId) : null;
129
+ const snap = t.spawnedSessionId
130
+ ? await snapshotSession(cwd, t.spawnedSessionId, t.stdoutPath)
131
+ : null;
90
132
  return {
91
133
  task_id: t.id,
92
134
  title: t.title,
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/tools/lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/tools/lifecycle.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  import { resolveStateDir } from "../lib/state_dir.js";
3
3
  import { probeTelegramStatus } from "../lib/telegram_status.js";
4
+ import { VERSION } from "../lib/version.js";
4
5
  export function registerPing(server) {
5
6
  server.tool("ping", "Health check — returns version, cwd, resolved state directory, AND Telegram bot status (configured/active/stale). Use this once after installing orqlaude, and consult it before relying on Telegram-bound tools (notify_user / request_user_response).", {
6
7
  echo: z.string().optional().describe("Optional string echoed back in the response"),
@@ -21,7 +22,7 @@ export function registerPing(server) {
21
22
  const payload = {
22
23
  ok: warnings.length === 0,
23
24
  server: "orqlaude",
24
- version: "0.7.2",
25
+ version: VERSION,
25
26
  cwd: realCwd,
26
27
  cwd_source: stateRes.cwdSource,
27
28
  state_dir: stateRes.path,