@detergent-software/conductor 3.5.0-dev.9 → 3.5.1-dev.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.
Files changed (51) hide show
  1. package/CHANGELOG.md +177 -0
  2. package/README.md +7 -4
  3. package/build/blocking.js +53 -0
  4. package/build/blocking.js.map +1 -0
  5. package/build/brief.js +9 -2
  6. package/build/brief.js.map +1 -1
  7. package/build/cli.js +12 -4
  8. package/build/cli.js.map +1 -1
  9. package/build/client.js +18 -8
  10. package/build/client.js.map +1 -1
  11. package/build/config.js +4 -0
  12. package/build/config.js.map +1 -1
  13. package/build/daemon.js +100 -26
  14. package/build/daemon.js.map +1 -1
  15. package/build/help.js +1 -1
  16. package/build/help.js.map +1 -1
  17. package/build/host/worktree-processes.js.map +1 -1
  18. package/build/inbox.js +74 -4
  19. package/build/inbox.js.map +1 -1
  20. package/build/loop-lag.js +97 -9
  21. package/build/loop-lag.js.map +1 -1
  22. package/build/manager.js +237 -48
  23. package/build/manager.js.map +1 -1
  24. package/build/notes.js +132 -21
  25. package/build/notes.js.map +1 -1
  26. package/build/plugin.js +9 -3
  27. package/build/plugin.js.map +1 -1
  28. package/build/profile-layers.js +2 -1
  29. package/build/profile-layers.js.map +1 -1
  30. package/build/run.js +11 -1
  31. package/build/run.js.map +1 -1
  32. package/build/scheduler.js +8 -2
  33. package/build/scheduler.js.map +1 -1
  34. package/build/server.js +1 -1
  35. package/build/server.js.map +1 -1
  36. package/build/store.js +6 -1
  37. package/build/store.js.map +1 -1
  38. package/build/watchers/linear-api.js +73 -13
  39. package/build/watchers/linear-api.js.map +1 -1
  40. package/build/watchers/linear-queue.js +11 -4
  41. package/build/watchers/linear-queue.js.map +1 -1
  42. package/build/watchers/linear.js +18 -17
  43. package/build/watchers/linear.js.map +1 -1
  44. package/build/worktrees.js +18 -6
  45. package/build/worktrees.js.map +1 -1
  46. package/package.json +1 -1
  47. package/plugin/.claude-plugin/plugin.json +4 -2
  48. package/plugin/hooks/model.ts +45 -11
  49. package/plugin/hooks/register.tsx +54 -22
  50. package/plugin/skills/work-item/SKILL.md +3 -3
  51. package/plugin/types/index.d.ts +5 -1
package/build/inbox.js CHANGED
@@ -2,6 +2,7 @@ import { z } from 'zod';
2
2
  import { formatCondition, parseCondition } from "./conditions.js";
3
3
  import { loginText } from "./credentials.js";
4
4
  import { ConductorError } from "./errors.js";
5
+ import { killCommand, processesText } from "./host/worktree-processes.js";
5
6
  import { inboxLinkSchema, link, uniqueLinks } from "./links.js";
6
7
  import { handoffKindSchema } from "./protocol.js";
7
8
  import { RELEASE_GATES, releaseAsk, releaseGate } from "./release-kinds.js";
@@ -111,8 +112,14 @@ const checksData = z.looseObject({
111
112
  resolution: z.string(),
112
113
  worker: z.number(),
113
114
  });
115
+ const processData = z.looseObject({ command: z.string(), pid: z.number() });
114
116
  const workerData = z.looseObject({
115
117
  error: z.string().optional(),
118
+ // A long park's held processes that have exited (worker.processes-exited, ATK-880).
119
+ exited: z.array(processData).optional().catch(undefined),
120
+ // The processes a long park couldn't stop (worker.processes-stopped, ATK-879), or those of them
121
+ // still running (worker.processes-exited).
122
+ held: z.array(processData).optional().catch(undefined),
116
123
  // The worktree a retire kept, because its PR hadn't merged (worker.retired), and the repository it
117
124
  // belongs to: the project's clone, or for one made before clones the person's checkout.
118
125
  kept: z
@@ -133,6 +140,8 @@ const workerData = z.looseObject({
133
140
  pending: pendingCallSchema.optional().catch(undefined),
134
141
  // The plugin folder a worker's session didn't load (worker.plugin-missing).
135
142
  plugin: z.string().optional(),
143
+ // An attach that resumed a parked worker (worker.attached).
144
+ resumed: z.boolean().optional(),
136
145
  retryMinutes: z.number().optional(),
137
146
  step: z.string().optional(),
138
147
  threshold: z.number().optional(),
@@ -542,15 +551,40 @@ export function inboxService({ onWaitResolved, store, tracker }) {
542
551
  const { name, worker } = data.data;
543
552
  const attach = `conduct attach ${name}`;
544
553
  // Red checks are the PR's, and a failed Handoff the worker's, not the session's: a lost session
545
- // still raises its own failure.
554
+ // still raises its own failure. So does one beside a long park's held processes (ATK-879).
546
555
  const own = (kind, text, commands) => {
547
- if (openOf(worker, [kind]).some((i) => !isChecksFailure(i) && !answeredOnItem(i) && !isGoneItem(i)))
556
+ if (openOf(worker, [kind]).some((i) => !isChecksFailure(i) && !answeredOnItem(i) && !isGoneItem(i) && !isParkHeld(i)))
548
557
  return;
549
558
  raise({ commands, condition: null, item: event.subject, kind, links: [], project: event.project, text, worker });
550
559
  };
560
+ // A long park's processes that wouldn't stop, raised beside the worker's other failures, unless an
561
+ // open one gives these kill commands already, such as a half-done retire's item naming the same
562
+ // processes.
563
+ const raiseParkHeld = (held, minutes) => {
564
+ if (held.length === 0)
565
+ return;
566
+ const commands = held.map((p) => killCommand(p.pid));
567
+ if (openOf(worker, ['failed']).some((i) => commands.every((c) => i.commands.includes(c))))
568
+ return;
569
+ raise({
570
+ commands,
571
+ condition: null,
572
+ item: event.subject,
573
+ kind: 'failed',
574
+ links: [],
575
+ project: event.project,
576
+ text: `${parkHeldText(name, minutes)}${processesText(held)}. Stop them; it stays parked`,
577
+ worker,
578
+ });
579
+ };
551
580
  // A new launch of the same worker name answers an earlier one that failed, whether it ran or not.
552
581
  const earlierFailures = () => openOn(event.project, event.subject, ['failed']).filter((i) => i.worker !== null && i.worker !== worker && store.getWorker(i.worker)?.name === name);
553
582
  switch (event.kind) {
583
+ case 'worker.attached':
584
+ // An attach resumes a parked worker with no worker.resumed of its own.
585
+ if (data.data.resumed === true)
586
+ resolveAll(openOf(worker, ['failed']).filter(isParkHeld), `${name} attached`);
587
+ return;
554
588
  case 'worker.compact-failed':
555
589
  // The manager tries a worker once a run (ATK-497): a session it couldn't compact is the operator's
556
590
  // to compact or retire. A rule's own `inbox context` item is another matter.
@@ -602,6 +636,27 @@ export function inboxService({ onWaitResolved, store, tracker }) {
602
636
  `conduct launch ${event.subject ?? name}${name.startsWith('probe-') ? ' --probe' : ''}`,
603
637
  ]);
604
638
  return;
639
+ case 'worker.processes-exited': {
640
+ // Some of a long park's held processes have exited (ATK-880). The park's items that name one
641
+ // resolve, and those still held are raised again on their own, so no kill command is left for
642
+ // a PID the OS may give to another process. Only the park's items: a half-done retire's item
643
+ // naming the same processes is the scheduler's, which its retry resolves.
644
+ const { exited = [], held = [], minutes } = data.data;
645
+ const gone = new Set(exited.map((p) => killCommand(p.pid)));
646
+ const items = openOf(worker, ['failed']).filter((i) => isParkHeld(i) && i.commands.some((c) => gone.has(c)));
647
+ if (items.length === 0)
648
+ return;
649
+ resolveAll(items, `${name}'s held processes exited: ${exited.map((p) => p.pid).join(', ')}`);
650
+ raiseParkHeld(held, minutes);
651
+ return;
652
+ }
653
+ case 'worker.processes-stopped':
654
+ // A process a long park couldn't stop holds its memory through the wait (ATK-879). The worker
655
+ // stays parked on its waits; its resume or retire resolves the item, as do the processes
656
+ // exiting (worker.processes-exited, ATK-880), and a retire that stops part way raises its own
657
+ // in its place (scheduler.ts).
658
+ raiseParkHeld(data.data.held ?? [], data.data.minutes);
659
+ return;
605
660
  case 'worker.resumed':
606
661
  case 'worker.revived':
607
662
  case 'worker.running-again':
@@ -792,12 +847,23 @@ export function inboxService({ onWaitResolved, store, tracker }) {
792
847
  raise,
793
848
  resolve,
794
849
  // Session clocks, conflict and login spells were in memory, and the rules were read again at
795
- // start (a file still refused raises its item again), so the items of all four start over.
850
+ // start (a file still refused raises its item again), so the items of all four start over. So
851
+ // does a long park's held processes: the check that would see them exit was in memory, and the
852
+ // restart checks each long park again, which raises the item again while they still run (ATK-880).
796
853
  start: () => resolveAll(store
797
854
  .openInbox()
798
- .filter((i) => SESSION_KINDS.includes(i.kind) || i.kind === 'conflict' || i.kind === 'login' || isRulesItem(i)), 'the daemon restarted; raised again if it persists'),
855
+ .filter((i) => SESSION_KINDS.includes(i.kind) ||
856
+ i.kind === 'conflict' ||
857
+ i.kind === 'login' ||
858
+ isRulesItem(i) ||
859
+ isParkHeld(i)), 'the daemon restarted; raised again if it persists'),
799
860
  };
800
861
  }
862
+ // A failure about processes a long park couldn't stop (onWorker raises them, ATK-879).
863
+ export function isParkHeld(item) {
864
+ return (item.kind === 'failed' &&
865
+ /^\S+ has been parked \S+ min, and its worktree's processes wouldn't stop: /.test(item.text));
866
+ }
801
867
  // A push's body: the item, then the ask, within PushNotification's 200 characters.
802
868
  export function pushMessage(item) {
803
869
  const message = item.item === null || item.text.includes(item.item) ? item.text : `${item.item} · ${item.text}`;
@@ -868,6 +934,10 @@ function noteKindOf(kind) {
868
934
  const parsed = handoffKindSchema.safeParse(kind);
869
935
  return parsed.success && parsed.data !== 'conductor' ? NOTE_KINDS[parsed.data] : undefined;
870
936
  }
937
+ // How a long park's held processes start (onWorker raises them), which also marks them as one.
938
+ function parkHeldText(name, minutes) {
939
+ return `${name} has been parked ${minutes ?? '?'} min, and its worktree's processes wouldn't stop: `;
940
+ }
871
941
  function planCommands(item) {
872
942
  return [`conduct approve ${item}`, `conduct revise ${item} "<what to change>"`];
873
943
  }
@@ -1 +1 @@
1
- {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../src/inbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../src/inbox.ts"],"names":[],"mappings":"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"}
package/build/loop-lag.js CHANGED
@@ -1,19 +1,41 @@
1
- export function loopLagMonitor({ context = () => ({}), intervalMs = 500, log, now = () => new Date(), thresholdMs = 2000, }) {
1
+ import { cpus, freemem } from 'node:os';
2
+ import { Worker } from 'node:worker_threads';
3
+ import { callsSince } from "./blocking.js";
4
+ // Runs in the worker: element 0 holds its worst lateness since the main thread last took it, and
5
+ // element 1 its last tick (clockMs), which says how late it is now even before it ticks again; 0
6
+ // until its first tick, so a worker slow to boot isn't counted late.
7
+ const OFF_THREAD_SCRIPT = `
8
+ const { workerData } = require('node:worker_threads');
9
+ const { intervalMs, shared } = workerData;
10
+ const clockMs = () => Math.round(performance.timeOrigin + performance.now());
11
+ let expected = performance.now() + intervalMs;
12
+ setInterval(() => {
13
+ const now = performance.now();
14
+ const late = BigInt(Math.max(0, Math.round(now - expected)));
15
+ expected = now + intervalMs;
16
+ Atomics.store(shared, 1, BigInt(clockMs()));
17
+ if (late > Atomics.load(shared, 0)) Atomics.store(shared, 0, late);
18
+ }, intervalMs);
19
+ `;
20
+ export function loopLagMonitor({ context = () => ({}), intervalMs = 500, log, now = () => new Date(), offThread = offThreadTimer, thresholdMs = 2000, }) {
2
21
  let timer;
22
+ let other = null;
3
23
  let stats = { blocked: 0, last: null, maxLateMs: 0, since: null };
4
24
  let expected = 0;
5
- let cpu = process.cpuUsage();
25
+ let before = snapshot();
6
26
  const tick = () => {
7
27
  const lateMs = Math.max(0, Math.round(performance.now() - expected));
8
- const used = process.cpuUsage(cpu);
9
- cpu = process.cpuUsage();
28
+ const after = snapshot();
29
+ const gap = { after, before };
30
+ before = after;
10
31
  expected = performance.now() + intervalMs;
32
+ const offThreadLateMs = other?.take() ?? null;
11
33
  stats.maxLateMs = Math.max(stats.maxLateMs, lateMs);
12
34
  if (lateMs < thresholdMs)
13
35
  return;
14
- const block = { at: now().toISOString(), cpuMs: Math.round((used.user + used.system) / 1000), lateMs };
36
+ const data = gapOf(gap, lateMs, offThreadLateMs);
15
37
  stats.blocked++;
16
- stats.last = block;
38
+ stats.last = { at: now().toISOString(), ...data };
17
39
  let running;
18
40
  try {
19
41
  running = context();
@@ -21,23 +43,89 @@ export function loopLagMonitor({ context = () => ({}), intervalMs = 500, log, no
21
43
  catch (error) {
22
44
  running = { contextError: String(error) };
23
45
  }
24
- log.log('warn', 'the event loop was blocked', { cpuMs: block.cpuMs, lateMs, ...running });
46
+ log.log('warn', 'the event loop was blocked', { ...data, ...running });
25
47
  };
26
48
  return {
27
49
  start: () => {
28
50
  if (timer)
29
51
  return;
30
52
  stats = { blocked: 0, last: null, maxLateMs: 0, since: now().toISOString() };
31
- cpu = process.cpuUsage();
53
+ before = snapshot();
32
54
  expected = performance.now() + intervalMs;
55
+ other = offThread(intervalMs);
33
56
  timer = setInterval(tick, intervalMs);
34
57
  timer.unref();
35
58
  },
36
- stats: () => ({ ...stats, last: stats.last && { ...stats.last } }),
59
+ stats: () => ({ ...stats, last: stats.last && structuredClone(stats.last) }),
37
60
  stop: () => {
38
61
  clearInterval(timer);
39
62
  timer = undefined;
63
+ other?.stop();
64
+ other = null;
40
65
  },
41
66
  };
42
67
  }
68
+ // A worker thread with a timer of its own; null when it can't start.
69
+ export function offThreadTimer(intervalMs) {
70
+ const shared = new BigInt64Array(new SharedArrayBuffer(16));
71
+ let worker;
72
+ try {
73
+ worker = new Worker(OFF_THREAD_SCRIPT, { eval: true, workerData: { intervalMs, shared } });
74
+ }
75
+ catch {
76
+ return null;
77
+ }
78
+ // A worker that died ticks no more: its time since a tick would read as a process that never ran.
79
+ let running = true;
80
+ worker.on('error', () => (running = false));
81
+ worker.on('exit', () => (running = false));
82
+ worker.unref();
83
+ return {
84
+ stop: () => {
85
+ running = false;
86
+ void worker.terminate();
87
+ },
88
+ take: () => {
89
+ if (!running)
90
+ return null;
91
+ const lastTick = Number(Atomics.load(shared, 1));
92
+ const sinceTick = lastTick === 0 ? 0 : clockMs() - lastTick - intervalMs;
93
+ const worst = Number(Atomics.exchange(shared, 0, 0n));
94
+ return Math.max(0, worst, sinceTick);
95
+ },
96
+ };
97
+ }
98
+ // Monotonic milliseconds that every thread reads alike: Date.now() jumps with a clock change.
99
+ function clockMs() {
100
+ return Math.round(performance.timeOrigin + performance.now());
101
+ }
102
+ function gapOf({ after, before }, lateMs, offThreadLateMs) {
103
+ const cpuMicros = after.cpu.user - before.cpu.user + (after.cpu.system - before.cpu.system);
104
+ const total = after.machine.total - before.machine.total;
105
+ const idle = after.machine.idle - before.machine.idle;
106
+ return {
107
+ cpuMs: Math.round(cpuMicros / 1000),
108
+ faults: after.usage.majorPageFault -
109
+ before.usage.majorPageFault +
110
+ (after.usage.minorPageFault - before.usage.minorPageFault),
111
+ fsReads: after.usage.fsRead - before.usage.fsRead,
112
+ fsWrites: after.usage.fsWrite - before.usage.fsWrite,
113
+ lateMs,
114
+ machine: {
115
+ busyPct: total > 0 ? Math.round((1 - idle / total) * 100) : 0,
116
+ freeMb: Math.round(freemem() / 1024 / 1024),
117
+ },
118
+ offThreadLateMs,
119
+ ops: callsSince(before.tick),
120
+ };
121
+ }
122
+ function snapshot() {
123
+ let idle = 0;
124
+ let total = 0;
125
+ for (const { times } of cpus()) {
126
+ idle += times.idle;
127
+ total += times.idle + times.irq + times.nice + times.sys + times.user;
128
+ }
129
+ return { cpu: process.cpuUsage(), machine: { idle, total }, tick: performance.now(), usage: process.resourceUsage() };
130
+ }
43
131
  //# sourceMappingURL=loop-lag.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loop-lag.js","sourceRoot":"","sources":["../src/loop-lag.ts"],"names":[],"mappings":"AA+BA,MAAM,UAAU,cAAc,CAAC,EAC7B,OAAO,GAAG,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EACpB,UAAU,GAAG,GAAG,EAChB,GAAG,EACH,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EACtB,WAAW,GAAG,IAAI,GAQnB;IACC,IAAI,KAAiC,CAAC;IACtC,IAAI,KAAK,GAAc,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IAC7E,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAE7B,MAAM,IAAI,GAAG,GAAS,EAAE;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnC,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzB,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;QAC1C,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACpD,IAAI,MAAM,GAAG,WAAW;YAAE,OAAO;QACjC,MAAM,KAAK,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QACvG,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;QACnB,IAAI,OAAgC,CAAC;QACrC,IAAI,CAAC;YACH,OAAO,GAAG,OAAO,EAAE,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5C,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,4BAA4B,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC5F,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,GAAG,EAAE;YACV,IAAI,KAAK;gBAAE,OAAO;YAClB,KAAK,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YAC7E,GAAG,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;YACzB,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;YAC1C,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACtC,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAClE,IAAI,EAAE,GAAG,EAAE;YACT,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,KAAK,GAAG,SAAS,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"loop-lag.js","sourceRoot":"","sources":["../src/loop-lag.ts"],"names":[],"mappings":"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"}