devharness 0.9.14 → 0.9.15

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.
@@ -40,11 +40,43 @@ import { NdjsonReader } from './supervisor/ndjson-reader.js';
40
40
  import { recordOwnSupervisor, removeOwnPidFile } from './supervisor/pidfile.js';
41
41
  import { ClientWatcher } from './supervisor/client-watcher.js';
42
42
  import { readSupervisorSessionConfig, idleCheckIntervalMs } from './supervisor/idle-config.js';
43
+ import { createStderrLog } from './supervisor/stderr-log.js';
43
44
  import { runCli, isCliCommand, isVersionFlag, readPackageVersion, CLI_COMMANDS } from './cli/index.js';
44
45
  const __filename = fileURLToPath(import.meta.url);
45
46
  const __dirname = path.dirname(__filename);
47
+ // Set once main() has a shutdown to run. A write that fails on either host
48
+ // pipe means the host's end closed, which is the client being gone.
49
+ let onHostPipeBroken;
50
+ const stderrLog = createStderrLog('[mcp-supervisor]', process.stderr, () => {
51
+ if (onHostPipeBroken)
52
+ onHostPipeBroken();
53
+ });
54
+ // The host holds the read end of stdout. Its exit closes that end and the next
55
+ // frame write returns EPIPE, which without a listener reaches the
56
+ // uncaughtException handler - the same loop the stderr latch closes. This
57
+ // listener takes it off that path; the latch bounds the writes that follow.
58
+ let hostStdoutBroken = false;
59
+ process.stdout.on('error', () => {
60
+ if (hostStdoutBroken)
61
+ return;
62
+ hostStdoutBroken = true;
63
+ if (onHostPipeBroken)
64
+ onHostPipeBroken();
65
+ });
66
+ function writeToHostStdout(line) {
67
+ if (hostStdoutBroken)
68
+ return;
69
+ try {
70
+ process.stdout.write(line.endsWith('\n') ? line : line + '\n');
71
+ }
72
+ catch {
73
+ hostStdoutBroken = true;
74
+ if (onHostPipeBroken)
75
+ onHostPipeBroken();
76
+ }
77
+ }
46
78
  function logStderr(message) {
47
- process.stderr.write(`[mcp-supervisor] ${message}\n`);
79
+ stderrLog.write(message);
48
80
  }
49
81
  async function main() {
50
82
  // A CLI command runs here, in this process, and exits. Supervising a child
@@ -125,7 +157,7 @@ async function main() {
125
157
  // call that runs longer than the idle threshold isn't suspended the
126
158
  // moment it finally answers.
127
159
  lastActivityAt = Date.now();
128
- process.stdout.write(line.endsWith('\n') ? line : line + '\n');
160
+ writeToHostStdout(line);
129
161
  },
130
162
  killChild: () => childManager.kill(),
131
163
  suspendChild: () => childManager.suspend(),
@@ -238,7 +270,33 @@ async function main() {
238
270
  // Claude Code exiting without sending a signal still closes its end of stdin.
239
271
  process.stdin.on('end', () => void shutdown('host stdin ended'));
240
272
  process.stdin.on('close', () => void shutdown('host stdin closed'));
273
+ // A closed host pipe - stderr or stdout - means the session that launched
274
+ // this supervisor is gone. Shutdown from here releases the child and its
275
+ // dev servers and removes the pidfile entry, in place of running on
276
+ // unattached: 12 such
277
+ // supervisors were found alive on one machine, the oldest 5 days 16 hours
278
+ // past its session's exit, each holding a pidfile slot and a child slot.
279
+ onHostPipeBroken = () => void shutdown('host pipe closed');
280
+ // Repeats of one exception are counted and capped. The stderr latch already
281
+ // bounds the EPIPE loop this handler used to feed, so a storm reaching this
282
+ // count originates elsewhere; the exit stops it holding a core either way.
283
+ // Same shape as the child's handler in index.ts (issue #74).
284
+ let lastUncaughtMessage = '';
285
+ let lastUncaughtAt = 0;
286
+ let repeatCount = 0;
241
287
  process.on('uncaughtException', (error) => {
288
+ const now = Date.now();
289
+ const message = error?.message ?? String(error);
290
+ if (message === lastUncaughtMessage && now - lastUncaughtAt < 1000) {
291
+ if (++repeatCount > 50) {
292
+ logStderr('Same uncaught exception >50x in <1s, exiting to break the loop');
293
+ process.exit(1);
294
+ }
295
+ return;
296
+ }
297
+ lastUncaughtMessage = message;
298
+ lastUncaughtAt = now;
299
+ repeatCount = 0;
242
300
  logStderr(`Uncaught exception: ${error?.stack || error}`);
243
301
  });
244
302
  process.on('unhandledRejection', (reason) => {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-supervisor.js","sourceRoot":"","sources":["../src/mcp-supervisor.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAC/F,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEvG,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,OAAO,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,2EAA2E;IAC3E,4EAA4E;IAC5E,yEAAyE;IACzE,yEAAyE;IACzE,qBAAqB;IACrB,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,2EAA2E;IAC3E,wEAAwE;IACxE,6EAA6E;IAC7E,0EAA0E;IAC1E,yCAAyC;IACzC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B;YACxD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;YACtE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;YAC5E,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QACzE,OAAO;IACT,CAAC;IAED,2EAA2E;IAC3E,2EAA2E;IAC3E,4EAA4E;IAC5E,EAAE;IACF,6EAA6E;IAC7E,2EAA2E;IAC3E,wDAAwD;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/E,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gCAAgC,QAAQ,KAAK;YAC7C,aAAa,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB;YACxD,qDAAqD,CACtD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B;QACxD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;QACtE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAExC,MAAM,WAAW,GAAG,aAAa,CAAC,oBAAoB,CAAC,CAAC;IACxD,0EAA0E;IAC1E,oEAAoE;IACpE,MAAM,mBAAmB,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IAEjF,0EAA0E;IAC1E,kEAAkE;IAClE,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAEtE,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;QACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,UAAU;QACV,SAAS;QACT,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;QAClB,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;KACnG,CAAC,CAAC;IAEH,wEAAwE;IACxE,2DAA2D;IAC3D,IAAI,iBAAiB,GAAiC,IAAI,CAAC;IAE3D,6EAA6E;IAC7E,uCAAuC;IACvC,IAAI,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEhC,MAAM,WAAW,GAAuB,IAAI,kBAAkB,CAC5D;QACE,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE;YACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACvB,SAAS,CAAC,kEAAkE,CAAC,CAAC;gBAC9E,OAAO;YACT,CAAC;YACD,iBAAiB,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE;YACpB,sEAAsE;YACtE,oEAAoE;YACpE,6BAA6B;YAC7B,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;QACjE,CAAC;QACD,SAAS,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE;QACpC,YAAY,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE;QAC1C,UAAU,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE;QACrC,SAAS;KACV,EACD,EAAE,CACH,CAAC;IAEF,SAAS,iBAAiB;QACxB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;QAC/C,iBAAiB,GAAG,KAAK,CAAC;QAC1B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC,CAAC;QAE7E,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAClC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAClC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC;gBACzC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACpC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACtB,IAAI,iBAAiB,KAAK,KAAK,EAAE,CAAC;gBAChC,iBAAiB,GAAG,IAAI,CAAC;YAC3B,CAAC;YACD,WAAW,CAAC,mBAAmB,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QACvC,SAAS,CAAC,sBAAsB,IAAI,YAAY,MAAM,GAAG,CAAC,CAAC;QAC3D,WAAW,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,4CAA4C;IAC5C,MAAM,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;IACtC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QACzC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC;YAC7C,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5B,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,2BAA2B,CAAC;QAChD,UAAU,EAAE,aAAa,EAAE;QAC3B,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,aAAa,CAAC;KAC5D,CAAC,CAAC;IAEH,6EAA6E;IAC7E,2EAA2E;IAC3E,yEAAyE;IACzE,0EAA0E;IAC1E,6CAA6C;IAC7C,IAAI,cAAc,GAA0C,IAAI,CAAC;IACjE,IAAI,aAAa,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC;QACzC,MAAM,eAAe,GAAG,aAAa,CAAC,kBAAkB,GAAG,MAAM,CAAC;QAClE,MAAM,eAAe,GAAG,mBAAmB,CAAC,eAAe,CAAC,CAAC;QAC7D,SAAS,CAAC,sBAAsB,aAAa,CAAC,kBAAkB,kCAAkC,CAAC,CAAC;QAEpG,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;gBAAE,OAAO;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC;YAC3C,IAAI,MAAM,GAAG,eAAe;gBAAE,OAAO;YACrC,WAAW,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3E,CAAC,EAAE,eAAe,CAAC,CAAC;QACpB,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC;IAC3B,CAAC;SAAM,CAAC;QACN,SAAS,CAAC,iCAAiC,CAAC,CAAC;IAC/C,CAAC;IAED,sEAAsE;IACtE,0EAA0E;IAC1E,2EAA2E;IAC3E,sEAAsE;IACtE,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC;QACtC,cAAc,EAAE,aAAa,CAAC,iBAAiB,GAAG,IAAI;QACtD,SAAS;KACV,CAAC,CAAC;IACH,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE;QAC1C,KAAK,QAAQ,CAAC,cAAc,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,SAAS,CAAC,oCAAoC,CAAC,CAAC;QAChD,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAc,EAAiB,EAAE;QACvD,IAAI,YAAY;YAAE,OAAO;QACzB,YAAY,GAAG,IAAI,CAAC;QACpB,SAAS,CAAC,kBAAkB,MAAM,GAAG,CAAC,CAAC;QACvC,aAAa,CAAC,IAAI,EAAE,CAAC;QACrB,IAAI,cAAc;YAAE,aAAa,CAAC,cAAc,CAAC,CAAC;QAClD,WAAW,CAAC,kBAAkB,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,wEAAwE;YACxE,yEAAyE;YACzE,yEAAyE;YACzE,0EAA0E;YAC1E,0EAA0E;YAC1E,MAAM,YAAY,CAAC,OAAO,EAAE,CAAC;QAC/B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,SAAS,CAAC,yCAAyC,GAAG,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,sEAAsE;QACtE,iEAAiE;QACjE,MAAM,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,8EAA8E;IAC9E,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAEpE,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;QACxC,SAAS,CAAC,uBAAuB,KAAK,EAAE,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE;QAC1C,SAAS,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,kBAAkB,OAAO,CAAC,GAAG,oBAAoB,UAAU,EAAE,CAAC,CAAC;IACzE,iBAAiB,EAAE,CAAC;AACtB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,SAAS,CAAC,+BAA+B,KAAK,EAAE,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC;IAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"mcp-supervisor.js","sourceRoot":"","sources":["../src/mcp-supervisor.ts"],"names":[],"mappings":"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"}
@@ -5,15 +5,24 @@ export interface ProcessInfo {
5
5
  export interface ProcessProbe {
6
6
  /** Parent pid + command for a pid, or null if the pid is gone/unreadable. */
7
7
  info(pid: number): ProcessInfo | null;
8
- /** Whether the pid still exists. */
9
- isAlive(pid: number): boolean;
10
8
  }
11
9
  export interface ClientIdentity {
12
10
  pid: number;
13
11
  command: string;
14
12
  }
13
+ export declare function parseProcessLine(line: string): ProcessInfo | null;
15
14
  /** Reads process info via `ps`. Unavailable on Windows, which has no `ps`. */
16
15
  export declare const systemProcessProbe: ProcessProbe;
16
+ /** Consecutive polls that must miss the client before the tree comes down. */
17
+ export declare const MISSES_BEFORE_SHUTDOWN = 3;
18
+ /**
19
+ * True while a fresh walk from `startPid` lands on the same client.
20
+ *
21
+ * The client's exit reparents the tree onto init, so the walk stops at ppid 1
22
+ * and returns null however the pid is reused afterwards. A different pid, or
23
+ * the same pid carrying a different command, is the same reading.
24
+ */
25
+ export declare function clientStillPresent(startPid: number, client: ClientIdentity, probe: ProcessProbe): boolean;
17
26
  /**
18
27
  * Walk up from `startPid`'s parent and return the first ancestor that isn't
19
28
  * launch plumbing, or null if there is none.
@@ -36,6 +45,8 @@ export declare class ClientWatcher {
36
45
  private readonly pollIntervalMs;
37
46
  private readonly logStderr;
38
47
  private client;
48
+ /** Consecutive polls that have not found the client. */
49
+ private misses;
39
50
  constructor(options?: ClientWatcherOptions);
40
51
  getClient(): ClientIdentity | null;
41
52
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"client-watcher.d.ts","sourceRoot":"","sources":["../../src/supervisor/client-watcher.ts"],"names":[],"mappings":"AA+BA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,6EAA6E;IAC7E,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAC;IACtC,oCAAoC;IACpC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AA4DD,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,EAAE,YAwBhC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,YAAY,EACnB,QAAQ,SAAK,GACZ,cAAc,GAAG,IAAI,CAYvB;AAED,MAAM,WAAW,oBAAoB;IACnC,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED;;;GAGG;AACH,qBAAa,aAAa;IAOZ,OAAO,CAAC,QAAQ,CAAC,OAAO;IANpC,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;IACtD,OAAO,CAAC,MAAM,CAA+B;gBAEhB,OAAO,GAAE,oBAAyB;IAM/D,SAAS,IAAI,cAAc,GAAG,IAAI;IAIlC;;;OAGG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,GAAG,cAAc,GAAG,IAAI;IA0B9F,IAAI,IAAI,IAAI;CAMb"}
1
+ {"version":3,"file":"client-watcher.d.ts","sourceRoot":"","sources":["../../src/supervisor/client-watcher.ts"],"names":[],"mappings":"AAiDA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,6EAA6E;IAC7E,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAuED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAIjE;AAED,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,EAAE,YAahC,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,YAAY,GAClB,OAAO,CAIT;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,YAAY,EACnB,QAAQ,SAAK,GACZ,cAAc,GAAG,IAAI,CAYvB;AAED,MAAM,WAAW,oBAAoB;IACnC,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED;;;GAGG;AACH,qBAAa,aAAa;IASZ,OAAO,CAAC,QAAQ,CAAC,OAAO;IARpC,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;IACtD,OAAO,CAAC,MAAM,CAA+B;IAC7C,wDAAwD;IACxD,OAAO,CAAC,MAAM,CAAK;gBAEU,OAAO,GAAE,oBAAyB;IAM/D,SAAS,IAAI,cAAc,GAAG,IAAI;IAIlC;;;OAGG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,GAAG,cAAc,GAAG,IAAI;IAmC9F,IAAI,IAAI,IAAI;CAMb"}
@@ -26,6 +26,24 @@
26
26
  * If the walk finds nothing but plumbing all the way to pid 1, there is no
27
27
  * client to watch and reaping is disabled - better to leak than to kill a tree
28
28
  * that is still serving someone.
29
+ *
30
+ * IDENTIFYING THE CLIENT ACROSS DAYS
31
+ * A pid alone does not identify a process for the length of a session. The
32
+ * client exits, the OS recycles its pid onto an unrelated process, and a
33
+ * liveness check on that number reports alive forever. Twelve supervisors were
34
+ * found in exactly that state, the oldest 5 days 16 hours past its session,
35
+ * each consuming CPU linear in its age at about 1.4 ms per 60-second poll -
36
+ * that poll and nothing else.
37
+ *
38
+ * So each poll re-walks the ancestry instead of testing a number. The client's
39
+ * death reparents everything below it onto init, so the walk hits ppid 1 and
40
+ * yields null - a reading that holds however the pid is later reused. A walk
41
+ * that lands on a different pid, or the same pid running a different command,
42
+ * reads as gone for the same reason.
43
+ *
44
+ * `ps` failing is indistinguishable from an exit in a single reading, so the
45
+ * tree comes down on the third consecutive miss. A transient probe failure
46
+ * costs two poll intervals; a real exit costs the same delay.
29
47
  */
30
48
  import { execFileSync } from 'child_process';
31
49
  /**
@@ -81,6 +99,22 @@ function isPlumbing(command) {
81
99
  }
82
100
  return false;
83
101
  }
102
+ /**
103
+ * Parses one `ps -o ppid=,command=` line: leading spaces, the numeric ppid,
104
+ * then the command as the rest of the line.
105
+ *
106
+ * `ps` prints start times in a locale-shaped form - this machine gives
107
+ * `Sat 5 Sep 11:04:52 2026`, where another gives `Sat Sep 5 11:04:52 2026` -
108
+ * so no start-time column is requested. A mis-parsed date would land inside
109
+ * the command string and defeat the plumbing check that finds the client.
110
+ */
111
+ const PS_LINE = /^\s*(\d+)\s+(.*)$/;
112
+ export function parseProcessLine(line) {
113
+ const match = line.match(PS_LINE);
114
+ if (!match)
115
+ return null;
116
+ return { ppid: Number(match[1]), command: match[2] };
117
+ }
84
118
  /** Reads process info via `ps`. Unavailable on Windows, which has no `ps`. */
85
119
  export const systemProcessProbe = {
86
120
  info(pid) {
@@ -91,26 +125,28 @@ export const systemProcessProbe = {
91
125
  }).trim();
92
126
  if (!out)
93
127
  return null;
94
- const match = out.match(/^\s*(\d+)\s+(.*)$/);
95
- if (!match)
96
- return null;
97
- return { ppid: Number(match[1]), command: match[2] };
128
+ return parseProcessLine(out);
98
129
  }
99
130
  catch {
100
131
  return null;
101
132
  }
102
133
  },
103
- isAlive(pid) {
104
- try {
105
- process.kill(pid, 0);
106
- return true;
107
- }
108
- catch (err) {
109
- // EPERM means it exists but belongs to another user - still alive.
110
- return err?.code === 'EPERM';
111
- }
112
- },
113
134
  };
135
+ /** Consecutive polls that must miss the client before the tree comes down. */
136
+ export const MISSES_BEFORE_SHUTDOWN = 3;
137
+ /**
138
+ * True while a fresh walk from `startPid` lands on the same client.
139
+ *
140
+ * The client's exit reparents the tree onto init, so the walk stops at ppid 1
141
+ * and returns null however the pid is reused afterwards. A different pid, or
142
+ * the same pid carrying a different command, is the same reading.
143
+ */
144
+ export function clientStillPresent(startPid, client, probe) {
145
+ const current = resolveClientIdentity(startPid, probe);
146
+ if (!current)
147
+ return false;
148
+ return current.pid === client.pid && current.command === client.command;
149
+ }
114
150
  /**
115
151
  * Walk up from `startPid`'s parent and return the first ancestor that isn't
116
152
  * launch plumbing, or null if there is none.
@@ -126,7 +162,7 @@ export function resolveClientIdentity(startPid, probe, maxDepth = 12) {
126
162
  if (!isPlumbing(parent.command)) {
127
163
  return { pid: current.ppid, command: parent.command };
128
164
  }
129
- current = { ppid: parent.ppid, command: parent.command };
165
+ current = parent;
130
166
  }
131
167
  return null;
132
168
  }
@@ -141,6 +177,8 @@ export class ClientWatcher {
141
177
  pollIntervalMs;
142
178
  logStderr;
143
179
  client = null;
180
+ /** Consecutive polls that have not found the client. */
181
+ misses = 0;
144
182
  constructor(options = {}) {
145
183
  this.options = options;
146
184
  this.probe = options.probe ?? systemProcessProbe;
@@ -167,8 +205,14 @@ export class ClientWatcher {
167
205
  const client = this.client;
168
206
  this.logStderr(`Watching client PID ${client.pid} (${client.command.slice(0, 80)})`);
169
207
  this.timer = setInterval(() => {
170
- if (this.probe.isAlive(client.pid))
208
+ if (clientStillPresent(startPid, client, this.probe)) {
209
+ this.misses = 0;
210
+ return;
211
+ }
212
+ if (++this.misses < MISSES_BEFORE_SHUTDOWN) {
213
+ this.logStderr(`Client PID ${client.pid} not found (${this.misses}/${MISSES_BEFORE_SHUTDOWN})`);
171
214
  return;
215
+ }
172
216
  this.stop();
173
217
  this.logStderr(`Client PID ${client.pid} is gone; shutting down`);
174
218
  onClientGone(client);
@@ -1 +1 @@
1
- {"version":3,"file":"client-watcher.js","sourceRoot":"","sources":["../../src/supervisor/client-watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-watcher.js","sourceRoot":"","sources":["../../src/supervisor/client-watcher.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,9 @@
1
1
  import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
- import { ClientWatcher, resolveClientIdentity } from './client-watcher.js';
2
+ import { ClientWatcher, clientStillPresent, MISSES_BEFORE_SHUTDOWN, parseProcessLine, resolveClientIdentity, } from './client-watcher.js';
3
3
  /** Builds a probe over a fake process table: pid -> { ppid, command }. */
4
4
  function makeProbe(table, dead = new Set()) {
5
5
  return {
6
6
  info: (pid) => (dead.has(pid) ? null : table[pid] ?? null),
7
- isAlive: (pid) => !dead.has(pid) && pid in table,
8
7
  };
9
8
  }
10
9
  describe('resolveClientIdentity', () => {
@@ -93,7 +92,7 @@ describe('ClientWatcher', () => {
93
92
  vi.advanceTimersByTime(3000);
94
93
  expect(onGone).not.toHaveBeenCalled();
95
94
  dead.add(300);
96
- vi.advanceTimersByTime(1000);
95
+ vi.advanceTimersByTime(1000 * MISSES_BEFORE_SHUTDOWN);
97
96
  expect(onGone).toHaveBeenCalledTimes(1);
98
97
  expect(onGone).toHaveBeenCalledWith({ pid: 300, command: 'claude' });
99
98
  // Stops polling after firing - one shutdown is enough.
@@ -118,4 +117,112 @@ describe('ClientWatcher', () => {
118
117
  expect(onGone).not.toHaveBeenCalled();
119
118
  });
120
119
  });
120
+ /**
121
+ * Twelve supervisors were found alive with their sessions days gone, each
122
+ * burning CPU linear in its age at about 1.4 ms per 60-second poll - that poll
123
+ * and nothing else. A pid-only liveness check on a recycled pid reads alive
124
+ * forever, so the reaper never fired.
125
+ */
126
+ describe('clientStillPresent', () => {
127
+ const TREE = {
128
+ 100: { ppid: 200, command: 'node .bin/devharness' },
129
+ 200: { ppid: 300, command: 'npm exec devharness@0.9.14' },
130
+ 300: { ppid: 1, command: 'claude' },
131
+ };
132
+ const CLIENT = { pid: 300, command: 'claude' };
133
+ it('holds while the whole ancestry is intact', () => {
134
+ expect(clientStillPresent(100, CLIENT, makeProbe(TREE))).toBe(true);
135
+ });
136
+ it('fails once the client exits and the wrapper reparents onto init', () => {
137
+ // What `npm exec` surviving its client actually looks like: the wrapper
138
+ // lives on with ppid 1, so the walk stops there instead of finding a client.
139
+ const orphaned = {
140
+ 100: { ppid: 200, command: 'node .bin/devharness' },
141
+ 200: { ppid: 1, command: 'npm exec devharness@0.9.14' },
142
+ };
143
+ expect(clientStillPresent(100, CLIENT, makeProbe(orphaned))).toBe(false);
144
+ });
145
+ it('fails when the client pid was recycled onto another process', () => {
146
+ // The pid is alive and would pass a kill(pid, 0) check; the ancestry no
147
+ // longer runs through it, which is what the twelve orphans missed.
148
+ const recycled = {
149
+ 100: { ppid: 200, command: 'node .bin/devharness' },
150
+ 200: { ppid: 1, command: 'npm exec devharness@0.9.14' },
151
+ 300: { ppid: 1, command: '/usr/sbin/cupsd' },
152
+ };
153
+ expect(clientStillPresent(100, CLIENT, makeProbe(recycled))).toBe(false);
154
+ });
155
+ it('fails when the walk lands on a different pid', () => {
156
+ const moved = {
157
+ 100: { ppid: 200, command: 'node .bin/devharness' },
158
+ 200: { ppid: 999, command: 'npm exec devharness@0.9.14' },
159
+ 999: { ppid: 1, command: 'claude' },
160
+ };
161
+ expect(clientStillPresent(100, CLIENT, makeProbe(moved))).toBe(false);
162
+ });
163
+ it('fails when the pid carries a different command', () => {
164
+ const swapped = {
165
+ ...TREE,
166
+ 300: { ppid: 1, command: 'code helper' },
167
+ };
168
+ expect(clientStillPresent(100, CLIENT, makeProbe(swapped))).toBe(false);
169
+ });
170
+ });
171
+ describe('ClientWatcher miss tolerance', () => {
172
+ beforeEach(() => vi.useFakeTimers());
173
+ afterEach(() => vi.useRealTimers());
174
+ const TREE = {
175
+ 100: { ppid: 200, command: 'node .bin/devharness' },
176
+ 200: { ppid: 300, command: 'npm exec devharness@0.9.14' },
177
+ 300: { ppid: 1, command: 'claude' },
178
+ };
179
+ it('waits for three consecutive misses before shutting the tree down', () => {
180
+ const dead = new Set();
181
+ const watcher = new ClientWatcher({ pollIntervalMs: 1000, probe: makeProbe(TREE, dead) });
182
+ const onGone = vi.fn();
183
+ watcher.start(100, onGone);
184
+ dead.add(300);
185
+ for (let poll = 1; poll < MISSES_BEFORE_SHUTDOWN; poll++) {
186
+ vi.advanceTimersByTime(1000);
187
+ expect(onGone).not.toHaveBeenCalled();
188
+ }
189
+ vi.advanceTimersByTime(1000);
190
+ expect(onGone).toHaveBeenCalledTimes(1);
191
+ });
192
+ it('forgets earlier misses once the client is found again', () => {
193
+ // A `ps` that times out reads exactly like an exit. Without the reset, two
194
+ // unrelated timeouts days apart would add up to a shutdown.
195
+ const dead = new Set();
196
+ const watcher = new ClientWatcher({ pollIntervalMs: 1000, probe: makeProbe(TREE, dead) });
197
+ const onGone = vi.fn();
198
+ watcher.start(100, onGone);
199
+ dead.add(300);
200
+ vi.advanceTimersByTime(2000);
201
+ dead.delete(300);
202
+ vi.advanceTimersByTime(1000);
203
+ dead.add(300);
204
+ vi.advanceTimersByTime(2000);
205
+ expect(onGone).not.toHaveBeenCalled();
206
+ vi.advanceTimersByTime(1000);
207
+ expect(onGone).toHaveBeenCalledTimes(1);
208
+ });
209
+ });
210
+ describe('parseProcessLine', () => {
211
+ it('reads ppid and command from a ps line', () => {
212
+ expect(parseProcessLine(' 40544 node /opt/homebrew/bin/devharness')).toEqual({
213
+ ppid: 40544,
214
+ command: 'node /opt/homebrew/bin/devharness',
215
+ });
216
+ });
217
+ it('keeps the whole command including its arguments', () => {
218
+ expect(parseProcessLine('81785 claude --resume d100b5ed-ecf8')).toEqual({
219
+ ppid: 81785,
220
+ command: 'claude --resume d100b5ed-ecf8',
221
+ });
222
+ });
223
+ it('returns null for a line carrying no pid', () => {
224
+ expect(parseProcessLine('')).toBeNull();
225
+ expect(parseProcessLine('no numbers here')).toBeNull();
226
+ });
227
+ });
121
228
  //# sourceMappingURL=client-watcher.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-watcher.test.js","sourceRoot":"","sources":["../../src/supervisor/client-watcher.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAuC,MAAM,qBAAqB,CAAC;AAEhH,0EAA0E;AAC1E,SAAS,SAAS,CAAC,KAAkC,EAAE,OAAO,IAAI,GAAG,EAAU;IAC7E,OAAO;QACL,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;QAC1D,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,KAAK;KACjD,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,2EAA2E;QAC3E,MAAM,KAAK,GAAG,SAAS,CAAC;YACtB,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,6CAA6C,EAAE;YAC1E,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,+BAA+B,EAAE;YAC5D,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE;YACrC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE;SACtC,CAAC,CAAC;QAEH,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,KAAK,GAAG,SAAS,CAAC;YACtB,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,yBAAyB,EAAE;YACtD,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,+BAA+B,EAAE;YAC5D,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,sDAAsD,EAAE;YACnF,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,gDAAgD,EAAE;SAC5E,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,0EAA0E;QAC1E,wEAAwE;QACxE,iDAAiD;QACjD,MAAM,KAAK,GAAG,SAAS,CAAC;YACtB,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,6DAA6D,EAAE;YAC1F,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,+BAA+B,EAAE;YAC5D,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,mEAAmE,EAAE;YAChG,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa,EAAE;YAC1C,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,+CAA+C,EAAE;SAC3E,CAAC,CAAC;QAEH,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,KAAK,GAAG,SAAS,CAAC;YACtB,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,4CAA4C,EAAE;YACzE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,6DAA6D,EAAE;YAC1F,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE;SACpC,CAAC,CAAC;QAEH,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,KAAK,GAAG,SAAS,CAAC;YACtB,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,+BAA+B,EAAE;YAC5D,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE;YACnC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE;SACzC,CAAC,CAAC;QAEH,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,KAAK,GAAG,SAAS,CAAC;YACtB,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,4CAA4C,EAAE;YACzE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,+BAA+B,EAAE;YAC5D,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE;SACvC,CAAC,CAAC;QAEH,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,8EAA8E;QAC9E,MAAM,KAAK,GAAgC,EAAE,CAAC;QAC9C,KAAK,IAAI,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;YACrC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;QAChE,CAAC;QACD,MAAM,CAAC,qBAAqB,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;IACrC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;IAEpC,MAAM,KAAK,GAAgC;QACzC,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,yBAAyB,EAAE;QACtD,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,+BAA+B,EAAE;QAC5D,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE;KACpC,CAAC;IAEF,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3F,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAEvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE5E,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAEtC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAErE,uDAAuD;QACvD,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAClF,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAEvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9C,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3F,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAEvB,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC3B,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEd,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"client-watcher.test.js","sourceRoot":"","sources":["../../src/supervisor/client-watcher.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Guarded stderr writer for the supervisor.
3
+ *
4
+ * The supervisor's stderr is a pipe held by the Claude Code host. The host
5
+ * exits and closes its end; the supervisor's next write to fd 2 returns
6
+ * errno 32, EPIPE. Node delivers that as an `error` event on the stream, and a
7
+ * stream with no `error` listener raises it as an `uncaughtException`. The
8
+ * supervisor's `uncaughtException` handler logs the exception, which writes to
9
+ * the same closed pipe, which raises the same EPIPE: a write loop with no pause
10
+ * that holds a core until the process is killed. Two such supervisors were
11
+ * measured at about 89,000 write calls a second each, every call returning
12
+ * errno 32, five days after their sessions ended.
13
+ *
14
+ * Two guards break that chain. An `error` listener on the stream takes the
15
+ * EPIPE off the `uncaughtException` path, so a failed write raises nothing. A
16
+ * `broken` latch turns every later write into a no-op, so the count of writes
17
+ * to a closed pipe is bounded at one.
18
+ *
19
+ * `isBroken()` reports the latch. A closed host pipe means the host is gone,
20
+ * which is the supervisor's signal to shut down rather than run on unattached.
21
+ */
22
+ export interface StderrLog {
23
+ /** Writes one prefixed line. A latched-broken stream consumes nothing. */
24
+ write(message: string): void;
25
+ /** True once a write to the stream has failed. */
26
+ isBroken(): boolean;
27
+ }
28
+ export declare function createStderrLog(prefix: string, stream?: NodeJS.WriteStream | NodeJS.WritableStream, onBroken?: () => void): StderrLog;
29
+ //# sourceMappingURL=stderr-log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stderr-log.d.ts","sourceRoot":"","sources":["../../src/supervisor/stderr-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,SAAS;IACxB,0EAA0E;IAC1E,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,kDAAkD;IAClD,QAAQ,IAAI,OAAO,CAAC;CACrB;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,cAA+B,EACnE,QAAQ,CAAC,EAAE,MAAM,IAAI,GACpB,SAAS,CA4BX"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Guarded stderr writer for the supervisor.
3
+ *
4
+ * The supervisor's stderr is a pipe held by the Claude Code host. The host
5
+ * exits and closes its end; the supervisor's next write to fd 2 returns
6
+ * errno 32, EPIPE. Node delivers that as an `error` event on the stream, and a
7
+ * stream with no `error` listener raises it as an `uncaughtException`. The
8
+ * supervisor's `uncaughtException` handler logs the exception, which writes to
9
+ * the same closed pipe, which raises the same EPIPE: a write loop with no pause
10
+ * that holds a core until the process is killed. Two such supervisors were
11
+ * measured at about 89,000 write calls a second each, every call returning
12
+ * errno 32, five days after their sessions ended.
13
+ *
14
+ * Two guards break that chain. An `error` listener on the stream takes the
15
+ * EPIPE off the `uncaughtException` path, so a failed write raises nothing. A
16
+ * `broken` latch turns every later write into a no-op, so the count of writes
17
+ * to a closed pipe is bounded at one.
18
+ *
19
+ * `isBroken()` reports the latch. A closed host pipe means the host is gone,
20
+ * which is the supervisor's signal to shut down rather than run on unattached.
21
+ */
22
+ export function createStderrLog(prefix, stream = process.stderr, onBroken) {
23
+ let broken = false;
24
+ const latch = () => {
25
+ if (broken)
26
+ return;
27
+ broken = true;
28
+ if (onBroken)
29
+ onBroken();
30
+ };
31
+ // Attached once, for the lifetime of the process: an EPIPE that arrives
32
+ // asynchronously lands here instead of on the uncaughtException path.
33
+ stream.on('error', latch);
34
+ return {
35
+ write(message) {
36
+ if (broken)
37
+ return;
38
+ try {
39
+ stream.write(`${prefix} ${message}\n`);
40
+ }
41
+ catch {
42
+ // A synchronous throw covers the case where the write fails inline
43
+ // rather than through the stream's error event.
44
+ latch();
45
+ }
46
+ },
47
+ isBroken() {
48
+ return broken;
49
+ },
50
+ };
51
+ }
52
+ //# sourceMappingURL=stderr-log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stderr-log.js","sourceRoot":"","sources":["../../src/supervisor/stderr-log.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AASH,MAAM,UAAU,eAAe,CAC7B,MAAc,EACd,SAAqD,OAAO,CAAC,MAAM,EACnE,QAAqB;IAErB,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,IAAI,MAAM;YAAE,OAAO;QACnB,MAAM,GAAG,IAAI,CAAC;QACd,IAAI,QAAQ;YAAE,QAAQ,EAAE,CAAC;IAC3B,CAAC,CAAC;IAEF,wEAAwE;IACxE,sEAAsE;IACtE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAE1B,OAAO;QACL,KAAK,CAAC,OAAe;YACnB,IAAI,MAAM;gBAAE,OAAO;YACnB,IAAI,CAAC;gBACH,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,OAAO,IAAI,CAAC,CAAC;YACzC,CAAC;YAAC,MAAM,CAAC;gBACP,mEAAmE;gBACnE,gDAAgD;gBAChD,KAAK,EAAE,CAAC;YACV,CAAC;QACH,CAAC;QACD,QAAQ;YACN,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Observed for real: two supervisors from sessions that had ended days earlier
3
+ * were each issuing about 89,000 write calls a second to fd 2, every call
4
+ * returning errno 32 (EPIPE), together accounting for 96.8% of the machine's
5
+ * filesystem syscalls. The loop is the supervisor's uncaughtException handler
6
+ * logging to the closed host pipe, which raises the next uncaughtException.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=stderr-log.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stderr-log.test.d.ts","sourceRoot":"","sources":["../../src/supervisor/stderr-log.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Observed for real: two supervisors from sessions that had ended days earlier
3
+ * were each issuing about 89,000 write calls a second to fd 2, every call
4
+ * returning errno 32 (EPIPE), together accounting for 96.8% of the machine's
5
+ * filesystem syscalls. The loop is the supervisor's uncaughtException handler
6
+ * logging to the closed host pipe, which raises the next uncaughtException.
7
+ */
8
+ import { describe, it, expect, vi } from 'vitest';
9
+ import { EventEmitter } from 'events';
10
+ import { createStderrLog } from './stderr-log.js';
11
+ /** A stream whose write throws inline, the synchronous EPIPE shape. */
12
+ function throwingStream() {
13
+ const stream = new EventEmitter();
14
+ stream.write = (() => {
15
+ const err = new Error('write EPIPE');
16
+ err.code = 'EPIPE';
17
+ throw err;
18
+ });
19
+ return stream;
20
+ }
21
+ /** A stream that accepts writes and emits errors on demand, the async shape. */
22
+ function emittingStream() {
23
+ const lines = [];
24
+ const stream = new EventEmitter();
25
+ stream.write = ((chunk) => {
26
+ lines.push(String(chunk));
27
+ return true;
28
+ });
29
+ return { stream, lines };
30
+ }
31
+ describe('createStderrLog', () => {
32
+ it('writes prefixed lines while the stream accepts them', () => {
33
+ const { stream, lines } = emittingStream();
34
+ const log = createStderrLog('[mcp-supervisor]', stream);
35
+ log.write('Starting (PID: 1)');
36
+ log.write('Shutting down (host stdin closed)');
37
+ expect(lines).toEqual([
38
+ '[mcp-supervisor] Starting (PID: 1)\n',
39
+ '[mcp-supervisor] Shutting down (host stdin closed)\n',
40
+ ]);
41
+ expect(log.isBroken()).toBe(false);
42
+ });
43
+ it('writes to a synchronously failing stream exactly once', () => {
44
+ const stream = throwingStream();
45
+ const write = vi.spyOn(stream, 'write');
46
+ const log = createStderrLog('[mcp-supervisor]', stream);
47
+ for (let i = 0; i < 1000; i++)
48
+ log.write('Uncaught exception: write EPIPE');
49
+ expect(write).toHaveBeenCalledTimes(1);
50
+ expect(log.isBroken()).toBe(true);
51
+ });
52
+ it('stops writing after the stream emits an error', () => {
53
+ const { stream, lines } = emittingStream();
54
+ const log = createStderrLog('[mcp-supervisor]', stream);
55
+ log.write('before');
56
+ stream.emit('error', Object.assign(new Error('write EPIPE'), { code: 'EPIPE' }));
57
+ for (let i = 0; i < 1000; i++)
58
+ log.write('after');
59
+ expect(lines).toEqual(['[mcp-supervisor] before\n']);
60
+ expect(log.isBroken()).toBe(true);
61
+ });
62
+ it('keeps an emitted error off the uncaughtException path', () => {
63
+ const { stream } = emittingStream();
64
+ createStderrLog('[mcp-supervisor]', stream);
65
+ // An EventEmitter with no 'error' listener throws on emit; the listener the
66
+ // log attaches is what makes this emit return instead of throwing.
67
+ expect(() => stream.emit('error', new Error('write EPIPE'))).not.toThrow();
68
+ });
69
+ it('calls onBroken once, on the first failure', () => {
70
+ const stream = throwingStream();
71
+ const onBroken = vi.fn();
72
+ const log = createStderrLog('[mcp-supervisor]', stream, onBroken);
73
+ log.write('one');
74
+ log.write('two');
75
+ log.write('three');
76
+ expect(onBroken).toHaveBeenCalledTimes(1);
77
+ expect(log.isBroken()).toBe(true);
78
+ });
79
+ });
80
+ //# sourceMappingURL=stderr-log.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stderr-log.test.js","sourceRoot":"","sources":["../../src/supervisor/stderr-log.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"issues-tools.d.ts","sourceRoot":"","sources":["../../src/tools/issues-tools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAgGnD;;;;;;;;GAQG;AACH,eAAO,MAAM,uCAAuC,SAAU,CAAC;AAkI/D,wBAAgB,iBAAiB,CAC/B,eAAe,EAAE,eAAe,EAChC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,EAC1D,oBAAoB,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,EACjE,iBAAiB,CAAC,EAAE,MAAM,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwuBnC"}
1
+ {"version":3,"file":"issues-tools.d.ts","sourceRoot":"","sources":["../../src/tools/issues-tools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAgGnD;;;;;;;;GAQG;AACH,eAAO,MAAM,uCAAuC,SAAU,CAAC;AAqI/D,wBAAgB,iBAAiB,CAC/B,eAAe,EAAE,eAAe,EAChC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,EAC1D,oBAAoB,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,EACjE,iBAAiB,CAAC,EAAE,MAAM,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkwBnC"}
@@ -27,9 +27,9 @@ function isGithubEnabled() {
27
27
  const issuesSchema = z.object({
28
28
  action: z.enum(['list', 'create', 'workOn', 'resolve', 'acknowledge', 'comment',
29
29
  'publish', 'sync', 'import', 'link', 'pullSequence'])
30
- .describe('Issue action: list (list all issues), create (create new issue), workOn (start working on issue), resolve (opens an interactive browser verification flow and waits for a PERSON to click Fixed/Not Fixed - a human must physically confirm before the issue is marked fixed/implemented, so an agent cannot close an issue this way and should use `comment` to record findings instead), acknowledge (acknowledge pending bugs), comment (append a comment to an issue)'),
30
+ .describe('Issue action: list (list all issues, or one issue in full by id), create (create new issue), workOn (start working on issue), resolve (opens an interactive browser verification flow and waits for a PERSON to click Fixed/Not Fixed - a human must physically confirm before the issue is marked fixed/implemented, so an agent cannot close an issue this way and should use `comment` to record findings instead), acknowledge (acknowledge pending bugs), comment (append a comment to an issue)'),
31
31
  id: z.number().optional()
32
- .describe('Issue ID (for workOn, resolve, comment actions)'),
32
+ .describe('Issue ID (list, workOn, resolve, comment, publish, link, pullSequence). On list it returns that one issue in full and the other filters do not apply.'),
33
33
  type: z.enum(['bug', 'feature']).optional()
34
34
  .describe('Issue type (required for create, optional filter for list)'),
35
35
  status: z.enum(['pending', 'acknowledged', 'in_progress', 'fixed', 'implemented']).optional()
@@ -146,6 +146,8 @@ function getStatusIcon(status) {
146
146
  default: return '•';
147
147
  }
148
148
  }
149
+ /** A listing renders bodies when it holds this many issues or fewer; above it, titles only. */
150
+ const DETAIL_RENDER_LIMIT = 1;
149
151
  function formatIssueDetails(issue) {
150
152
  const typeIcon = issue.type === 'bug' ? '🐛' : '✨';
151
153
  const statusIcon = getStatusIcon(issue.status);
@@ -191,11 +193,32 @@ function formatCommentTimeline(issue) {
191
193
  // =============================================================================
192
194
  export function createIssuesTools(executeToolCall, getSequencePath, getPageForConnection, getKnownToolNames) {
193
195
  return {
194
- issues: createTool('Track and manage bugs and features as Markdown issues (title, Markdown body, labels, comments). Actions: list (show all issues with optional filters), create (create new issue with title/body/labels, optionally linking a sequence), workOn (start working on issue with auto-replay), resolve (HUMAN-ONLY interactive verification: opens a browser overlay and waits for a person to confirm the fix before marking fixed/implemented - agents are refused immediately, use `comment` instead), acknowledge (acknowledge pending bugs to unblock tools), comment (append a Markdown comment to an issue), publish/sync/import/link/pullSequence (GitHub, via the gh CLI; only publish and sync use the network)', issuesSchema, async (args, abortSignal) => {
196
+ issues: createTool('Track and manage bugs and features as Markdown issues (title, Markdown body, labels, comments). Actions: list (show all issues with optional filters, or one issue in full by id), create (create new issue with title/body/labels, optionally linking a sequence), workOn (start working on issue with auto-replay), resolve (HUMAN-ONLY interactive verification: opens a browser overlay and waits for a person to confirm the fix before marking fixed/implemented - agents are refused immediately, use `comment` instead), acknowledge (acknowledge pending bugs to unblock tools), comment (append a Markdown comment to an issue), publish/sync/import/link/pullSequence (GitHub, via the gh CLI; only publish and sync use the network)', issuesSchema, async (args, abortSignal) => {
195
197
  // Initialize tracker on first use
196
198
  await initializeTracker();
197
199
  switch (args.action) {
198
200
  case 'list': {
201
+ // An id names one issue: it returns in full, and the other filters do not apply.
202
+ if (args.id !== undefined) {
203
+ const issue = (await getIssues({ includeCompleted: true })).find(i => i.id === args.id);
204
+ if (!issue) {
205
+ return createErrorResponse('ISSUES_NOT_FOUND', {
206
+ id: args.id,
207
+ message: 'No issue carries that ID.',
208
+ });
209
+ }
210
+ return createSuccessResponse('ISSUES_LIST', {
211
+ count: 1,
212
+ bugCount: issue.type === 'bug' ? 1 : 0,
213
+ featureCount: issue.type === 'feature' ? 1 : 0,
214
+ pendingCount: issue.status === 'pending' ? 1 : 0,
215
+ issuesList: formatIssuesList([issue]),
216
+ details: formatIssueDetails(issue),
217
+ bodiesOmitted: false,
218
+ search: null,
219
+ includeCompleted: true,
220
+ });
221
+ }
199
222
  const filter = {};
200
223
  if (args.type)
201
224
  filter.type = args.type;
@@ -219,12 +242,15 @@ export function createIssuesTools(executeToolCall, getSequencePath, getPageForCo
219
242
  const bugCount = issues.filter(i => i.type === 'bug').length;
220
243
  const featureCount = issues.filter(i => i.type === 'feature').length;
221
244
  const pendingCount = issues.filter(i => i.status === 'pending').length;
245
+ const rendersDetails = issues.length > 0 && issues.length <= DETAIL_RENDER_LIMIT;
222
246
  return createSuccessResponse('ISSUES_LIST', {
223
247
  count: issues.length,
224
248
  bugCount,
225
249
  featureCount,
226
250
  pendingCount,
227
251
  issuesList: formatIssuesList(issues),
252
+ details: rendersDetails ? issues.map(formatIssueDetails).join('\n\n---\n\n') : null,
253
+ bodiesOmitted: !rendersDetails && issues.length > 0,
228
254
  search: args.search || null,
229
255
  includeCompleted: args.includeCompleted || false,
230
256
  });
@@ -1 +1 @@
1
- {"version":3,"file":"issues-tools.js","sourceRoot":"","sources":["../../src/tools/issues-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"issues-tools.js","sourceRoot":"","sources":["../../src/tools/issues-tools.ts"],"names":[],"mappings":"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"}
@@ -181,4 +181,90 @@ describe('issues resolve - verification outcome comes from _meta', () => {
181
181
  expect(result.isError).toBeUndefined();
182
182
  });
183
183
  });
184
+ /**
185
+ * A body used to be reachable only through workOn, which writes in_progress and
186
+ * opens a browser - so reading what an issue says cost a state change and a
187
+ * Chrome launch that the read itself does not need.
188
+ */
189
+ describe('issues list - reading a body', () => {
190
+ it('returns the named issue in full, changing no state and opening no browser', async () => {
191
+ const issue = await addIssue({
192
+ type: 'bug',
193
+ title: 'ServerFileWatcher can silently miss a change',
194
+ body: 'fs.watch delivery is not guaranteed.',
195
+ initialStatus: 'acknowledged',
196
+ });
197
+ const { tools, executeToolCall, getPageForConnection } = buildTools();
198
+ const result = await tools.issues.handler({ action: 'list', id: issue.id }, undefined);
199
+ expect(result.content[0].text).toContain('fs.watch delivery is not guaranteed.');
200
+ expect(executeToolCall).not.toHaveBeenCalled();
201
+ expect(getPageForConnection).not.toHaveBeenCalled();
202
+ const reloaded = await getIssue(issue.id);
203
+ expect(reloaded.status).toBe('acknowledged');
204
+ expect(reloaded.startedAt).toBeUndefined();
205
+ });
206
+ it('reaches an issue the default filter drops, so an id needs no includeCompleted', async () => {
207
+ const issue = await addIssue({
208
+ type: 'feature',
209
+ title: 'GitHub issue sync via the gh CLI',
210
+ body: 'Body of an issue already implemented.',
211
+ initialStatus: 'implemented',
212
+ });
213
+ const { tools } = buildTools();
214
+ const result = await tools.issues.handler({ action: 'list', id: issue.id }, undefined);
215
+ expect(result.content[0].text).toContain('Body of an issue already implemented.');
216
+ });
217
+ it('returns ISSUES_NOT_FOUND for an id no issue carries', async () => {
218
+ const { tools } = buildTools();
219
+ const result = await tools.issues.handler({ action: 'list', id: 4242 }, undefined);
220
+ expect(result.isError).toBe(true);
221
+ expect(result._errorId).toBe('ISSUES_NOT_FOUND');
222
+ expect(result.content[0].text).toContain('4242');
223
+ });
224
+ it('renders the body when a search narrows the listing to one issue', async () => {
225
+ await addIssue({ type: 'bug', title: 'relocateRoot has no reentrancy guard', body: 'A rebind that throws leaves no rollback.' });
226
+ await addIssue({ type: 'bug', title: 'Unrelated watcher bug', body: 'Nothing to do with rebinding.' });
227
+ const { tools } = buildTools();
228
+ const result = await tools.issues.handler({ action: 'list', search: 'reentrancy' }, undefined);
229
+ expect(result.content[0].text).toContain('A rebind that throws leaves no rollback.');
230
+ });
231
+ it('omits bodies above the cap and names the call that reads one', async () => {
232
+ await addIssue({ type: 'bug', title: 'First routing bug', body: 'BODY MARKER ONE' });
233
+ await addIssue({ type: 'bug', title: 'Second routing bug', body: 'BODY MARKER TWO' });
234
+ const { tools } = buildTools();
235
+ const result = await tools.issues.handler({ action: 'list', search: 'routing' }, undefined);
236
+ const text = result.content[0].text;
237
+ expect(text).not.toContain('BODY MARKER ONE');
238
+ expect(text).not.toContain('BODY MARKER TWO');
239
+ expect(text).toContain("action: 'list', id:");
240
+ });
241
+ });
242
+ /**
243
+ * A body is arbitrary Markdown written by users and agents, and it now reaches
244
+ * the response through a template variable. Variable values enter in one final
245
+ * replace pass and are never rescanned, so template syntax inside a body is
246
+ * inert - these pin that, because a rewrite of the substitution loop would
247
+ * otherwise silently mangle or hide what a body says.
248
+ */
249
+ describe('issues list - a body is data, not template', () => {
250
+ it('renders template syntax inside a body verbatim', async () => {
251
+ const hostile = 'Counts {{count}} and {{^details}}HIDDEN{{/details}} and {{#each x}}L{{/each}} and a bare {{ brace.';
252
+ const issue = await addIssue({ type: 'bug', title: 'Body carries braces', body: hostile });
253
+ const { tools } = buildTools();
254
+ const result = await tools.issues.handler({ action: 'list', id: issue.id }, undefined);
255
+ expect(result.content[0].text).toContain(hostile);
256
+ });
257
+ it('omits the read-one pointer when nothing matched', async () => {
258
+ await addIssue({ type: 'bug', title: 'Present but unmatched', body: 'x' });
259
+ const { tools } = buildTools();
260
+ const result = await tools.issues.handler({ action: 'list', search: 'nothing-matches-this' }, undefined);
261
+ expect(result.content[0].text).not.toContain("action: 'list', id:");
262
+ });
263
+ it('returns the named issue when the other filters contradict it', async () => {
264
+ const issue = await addIssue({ type: 'bug', title: 'Contradicted', body: 'BODY OF THE NAMED ISSUE', initialStatus: 'acknowledged' });
265
+ const { tools } = buildTools();
266
+ const result = await tools.issues.handler({ action: 'list', id: issue.id, type: 'feature', status: 'pending', search: 'no-such-text', labels: ['absent'] }, undefined);
267
+ expect(result.content[0].text).toContain('BODY OF THE NAMED ISSUE');
268
+ });
269
+ });
184
270
  //# sourceMappingURL=issues-tools.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"issues-tools.test.js","sourceRoot":"","sources":["../../src/tools/issues-tools.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"issues-tools.test.js","sourceRoot":"","sources":["../../src/tools/issues-tools.test.ts"],"names":[],"mappings":"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"}
@@ -218,6 +218,7 @@ runs against (see Quick Start).
218
218
 
219
219
  **Issues**: `issues` (actions: list, create, workOn, resolve, acknowledge, comment, publish, sync, import, link, pullSequence)
220
220
  - `create`/`comment`: track bugs and features as Markdown issues, optionally linked to a replay sequence
221
+ - `list`: `search` matches body and comment text. A listing holding one issue renders it in full, so `issues({ action: 'list', id: N })` returns body, labels, comments and timestamps and leaves the issue's own status and timestamps untouched - reading an issue does not need `workOn`
221
222
  - `workOn`: start on an issue, auto-replaying its linked sequence
222
223
  - `resolve` is **human-gated**: it opens a browser overlay and only a person clicking Fixed/Not Fixed can close the issue. Don't call it unattended - it will wait ~150s and then fail with `ISSUES_RESOLVE_TIMEOUT`. Record what you found with `comment` and ask the user to run `resolve` themselves
223
224
  - `acknowledge`: acknowledge pending bugs to unblock other tools
package/docs/messages.md CHANGED
@@ -2421,9 +2421,10 @@ Use `issues({ action: 'acknowledge' })` to acknowledge.
2421
2421
  **Type:** success
2422
2422
  **Summary:** Issues list
2423
2423
 
2424
- {{issuesList}}
2424
+ {{#details}}{{details}}{{/details}}{{^details}}{{issuesList}}{{/details}}
2425
2425
 
2426
- {{count}} issues: {{bugCount}} bugs, {{featureCount}} features{{#pendingCount}}, {{pendingCount}} pending{{/pendingCount}}
2426
+ {{count}} issues: {{bugCount}} bugs, {{featureCount}} features{{#pendingCount}}, {{pendingCount}} pending{{/pendingCount}}{{#bodiesOmitted}}
2427
+ A listing this wide omits bodies. Narrow the filters, or read one issue in full with `issues({ action: 'list', id: <ID> })`.{{/bodiesOmitted}}
2427
2428
 
2428
2429
  ---
2429
2430
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devharness",
3
- "version": "0.9.14",
3
+ "version": "0.9.15",
4
4
  "description": "MCP server that connects AI assistants to Chrome DevTools Protocol for runtime debugging - set breakpoints, inspect variables, monitor network traffic, and automate browser interactions",
5
5
  "type": "module",
6
6
  "main": "build/index.js",
@@ -2,7 +2,7 @@
2
2
  name: devharness
3
3
  description: Drive and debug a running app via the devharness MCP server - launch or attach to Chrome and Node.js, set breakpoints and logpoints, inspect call stacks and variables, watch console and network, manage dev servers, replay any earlier tool call by its history index, and record reproduction sequences that verify a fix. Use whenever a task involves running or debugging a live app, reproducing or verifying a bug, re-driving setup you already did (relaunching, re-logging in, refilling a form), or the user mentions breakpoints, Chrome DevTools, CDP, replay sequences, or devharness tools (launchChrome, navigate, breakpoint, inspect, replay, server, issues, etc.).
4
4
  compatibility: Requires the devharness MCP server to be connected (tools such as launchChrome, breakpoint, inspect, replay, server, issues). The shell commands need `devharness` on PATH (`npm i -g devharness`); without it use `npx -y devharness@<version> <command>`. Previously published as cdp-tools-mcp.
5
- version: 0.9.14
5
+ version: 0.9.15
6
6
  ---
7
7
 
8
8
  # devharness
@@ -65,6 +65,7 @@ runs against (see the skill's Quick Start).
65
65
 
66
66
  **Issues**: `issues` (actions: list, create, workOn, resolve, acknowledge, comment, publish, sync, import, link, pullSequence)
67
67
  - `create`/`comment`: track bugs and features as Markdown issues, optionally linked to a replay sequence
68
+ - `list`: `search` matches body and comment text. A listing holding one issue renders it in full, so `issues({ action: 'list', id: N })` returns body, labels, comments and timestamps and leaves the issue's own status and timestamps untouched - reading an issue does not need `workOn`
68
69
  - `workOn`: start on an issue, auto-replaying its linked sequence
69
70
  - **Comment as you go.** When working an issue, `comment` on it at the start (what you're about to change and why) and again when done (what you actually changed, files touched, tests added, and anything you found that contradicts the issue as written). The issue becomes the durable record - someone reviewing later reads the timeline, not your diff. Comment on surprises too: a repro that doesn't reproduce, a root cause elsewhere, or a fix you rejected and why
70
71
  - `resolve` is **human-gated**: it opens a browser overlay and only a person clicking Fixed/Not Fixed can close the issue. Don't call it unattended - it will wait ~150s and then fail with `ISSUES_RESOLVE_TIMEOUT`. Record what you found with `comment` and ask the user to run `resolve` themselves