instar 1.3.1334 → 1.3.1336

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 (31) hide show
  1. package/dist/commands/test-as-self.d.ts +23 -0
  2. package/dist/commands/test-as-self.d.ts.map +1 -1
  3. package/dist/commands/test-as-self.js +144 -9
  4. package/dist/commands/test-as-self.js.map +1 -1
  5. package/dist/commands/testAsSelfValidation.d.ts +8 -1
  6. package/dist/commands/testAsSelfValidation.d.ts.map +1 -1
  7. package/dist/commands/testAsSelfValidation.js +50 -0
  8. package/dist/commands/testAsSelfValidation.js.map +1 -1
  9. package/dist/data/standards-guard-index.json +1 -1
  10. package/dist/data/standards-guard-index.meta.json +2 -2
  11. package/dist/data/standards-registry.meta.json +1 -1
  12. package/dist/identity/IdentityManager.d.ts.map +1 -1
  13. package/dist/identity/IdentityManager.js +15 -3
  14. package/dist/identity/IdentityManager.js.map +1 -1
  15. package/dist/scheduler/JevJobCompletionAudit.d.ts +6 -0
  16. package/dist/scheduler/JevJobCompletionAudit.d.ts.map +1 -1
  17. package/dist/scheduler/JevJobCompletionAudit.js +11 -2
  18. package/dist/scheduler/JevJobCompletionAudit.js.map +1 -1
  19. package/dist/server/routes.d.ts.map +1 -1
  20. package/dist/server/routes.js +23 -2
  21. package/dist/server/routes.js.map +1 -1
  22. package/package.json +1 -1
  23. package/scripts/lib/standards-enforcement-measurement.mjs +44 -12
  24. package/src/data/builtin-manifest.json +46 -46
  25. package/src/data/standards-guard-index.json +1 -1
  26. package/src/data/standards-guard-index.meta.json +2 -2
  27. package/src/data/standards-registry.meta.json +1 -1
  28. package/upgrades/1.3.1335.md +26 -0
  29. package/upgrades/1.3.1336.md +23 -0
  30. package/upgrades/side-effects/flaky-tests-and-harness.md +104 -0
  31. package/upgrades/side-effects/joined-machine-unified-trust.md +98 -0
@@ -31,6 +31,14 @@ export interface TestAsSelfOptions {
31
31
  /** Protected agent names that may never be a target. */
32
32
  protectedNames?: string[];
33
33
  }
34
+ /**
35
+ * Locate the deterministic step-6 verifier. Resolved from THIS module's own
36
+ * location first (dist/commands → package root → .claude/skills/…), so the
37
+ * harness works from any cwd (ACT-064: it used to resolve against cwd and failed
38
+ * unless run from the repo root). Falls back to the canonical agent home for an
39
+ * install whose package does not carry the skill. Exported + pure for tests.
40
+ */
41
+ export declare function resolveVerifierPath(moduleDir: string, canonicalHome: string, exists?: (p: string) => boolean): string;
34
42
  /**
35
43
  * The `instar init` invocation that deploys + initializes the throwaway home at
36
44
  * an arbitrary `--dir`. Exported + pure so the decision is unit-testable.
@@ -75,4 +83,19 @@ export declare function runTestAsSelfSlack(opts?: {
75
83
  report: object;
76
84
  exitCode: number;
77
85
  }>;
86
+ /**
87
+ * Processes that belong to the throwaway: any whose command line names the
88
+ * throwaway home (its server, boot wrapper, lifeline, MCP children, and the
89
+ * public quick tunnel, which runs `cloudflared … --config <target>/.instar/cloudflared-quick.yml`).
90
+ * The target is guard-validated (validateTarget refuses a target that is, contains,
91
+ * or shares a basename with any agent home), so matching on it cannot select a real agent. The harness's OWN ancestor chain is always
92
+ * excluded — the shell that launched `test-as-self --target <path>` names the
93
+ * path too. Input is `ps -axo pid=,ppid=,command=`. Exported + pure for tests.
94
+ */
95
+ export declare function selectTargetPids(psOutput: string, target: string, selfPid: number): number[];
96
+ /**
97
+ * tmux sessions the throwaway spawned (SessionManager names them
98
+ * `<basename(projectDir)>-<name>`, e.g. a dispatch session). Exported + pure.
99
+ */
100
+ export declare function selectTargetTmuxSessions(sessionNames: string[], target: string): string[];
78
101
  //# sourceMappingURL=test-as-self.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-as-self.d.ts","sourceRoot":"","sources":["../../src/commands/test-as-self.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAWH,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AA4BD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAEtD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAK5E;AA0ED;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAgG1G;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAkD1H"}
1
+ {"version":3,"file":"test-as-self.d.ts","sourceRoot":"","sources":["../../src/commands/test-as-self.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAWH,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAuBD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,MAAM,GAAE,CAAC,CAAC,EAAE,MAAM,KAAK,OAAuB,GAC7C,MAAM,CAMR;AAOD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAEtD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAK5E;AA0ED;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAkH1G;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAkD1H;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAY5F;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAGzF"}
@@ -36,6 +36,21 @@ function resolveDistCli() {
36
36
  const here = path.dirname(fileURLToPath(import.meta.url));
37
37
  return path.resolve(here, '..', 'cli.js');
38
38
  }
39
+ /**
40
+ * Locate the deterministic step-6 verifier. Resolved from THIS module's own
41
+ * location first (dist/commands → package root → .claude/skills/…), so the
42
+ * harness works from any cwd (ACT-064: it used to resolve against cwd and failed
43
+ * unless run from the repo root). Falls back to the canonical agent home for an
44
+ * install whose package does not carry the skill. Exported + pure for tests.
45
+ */
46
+ export function resolveVerifierPath(moduleDir, canonicalHome, exists = fs.existsSync) {
47
+ const rel = path.join('.claude', 'skills', 'test-as-self', 'scripts', 'verify.mjs');
48
+ const candidates = [path.resolve(moduleDir, '..', '..', rel), path.join(canonicalHome, rel)];
49
+ const found = candidates.find((c) => exists(c));
50
+ if (!found)
51
+ throw new Error(`verify.mjs not found (looked in: ${candidates.join(', ')})`);
52
+ return found;
53
+ }
39
54
  /** The canonical (running) agent home — never a valid target. */
40
55
  function resolveCanonicalHome() {
41
56
  return process.env.INSTAR_PROJECT_DIR || process.cwd();
@@ -149,7 +164,13 @@ export async function runTestAsSelf(opts) {
149
164
  return { report: { error: tokenGuard.code }, exitCode: 12 };
150
165
  }
151
166
  const target = opts.target || path.join(os.homedir(), '.instar', 'test-deploys', new Date().toISOString().replace(/[:.]/g, '-'));
152
- const targetGuard = validateTarget(target, { canonicalHome, protectedNames });
167
+ const agentsRoot = path.join(os.homedir(), '.instar', 'agents');
168
+ let agentHomes = [];
169
+ try {
170
+ agentHomes = fs.readdirSync(agentsRoot, { withFileTypes: true }).filter((d) => d.isDirectory()).map((d) => path.join(agentsRoot, d.name));
171
+ }
172
+ catch { /* no agents dir */ }
173
+ const targetGuard = validateTarget(target, { canonicalHome, protectedNames, agentHomes });
153
174
  if (!targetGuard.ok) {
154
175
  console.error(pc.red(` ${targetGuard.reason}`));
155
176
  return { report: { error: targetGuard.code }, exitCode: 11 };
@@ -227,16 +248,31 @@ export async function runTestAsSelf(opts) {
227
248
  }
228
249
  // Step 6 — crash + lease verification (deterministic verify.mjs).
229
250
  if (!await runStep('6. verify', async () => {
230
- const verifier = path.join(canonicalHome, '.claude', 'skills', 'test-as-self', 'scripts', 'verify.mjs');
231
- const out = execFileSync('node', [verifier, '--dir', ctx.target, '--quiet'], { encoding: 'utf-8' });
232
- return `verify.mjs PASS (${out.trim().slice(0, 60)}…)`;
251
+ const verifier = resolveVerifierPath(path.dirname(fileURLToPath(import.meta.url)), canonicalHome);
252
+ const args = [verifier, '--dir', ctx.target, ...(ctx.botToken ? [] : ['--no-lease'])];
253
+ try {
254
+ execFileSync('node', args, { encoding: 'utf-8' });
255
+ }
256
+ catch (err) {
257
+ // Name the failing checks instead of a bare "Command failed".
258
+ // RULE 3: EXEMPT — parses Instar's own verify.mjs JSON report (a contract we ship), not provider/CLI state; a parse failure only drops the check names from the error.
259
+ const stdout = err.stdout ?? '';
260
+ let failed = '';
261
+ try {
262
+ const rep = JSON.parse(stdout);
263
+ failed = Object.entries(rep.checks ?? {}).filter(([, c]) => !c.pass).map(([k]) => k).join(', ');
264
+ }
265
+ catch { /* non-JSON output */ }
266
+ throw new Error(`verify.mjs FAIL${failed ? ` (${failed})` : ''}`);
267
+ }
268
+ return `verify.mjs PASS${ctx.botToken ? '' : ' (crash checks; lease skipped: no lifeline)'}`;
233
269
  }))
234
270
  return finish(ctx, opts, 6);
235
271
  return finish(ctx, opts, 0);
236
272
  }
237
273
  finally {
238
274
  if (!opts.keep)
239
- teardown(ctx);
275
+ await teardown(ctx, canonicalHome);
240
276
  }
241
277
  }
242
278
  /**
@@ -296,8 +332,86 @@ export async function runTestAsSelfSlack(opts = {}) {
296
332
  : pc.red(` VERDICT: FAIL — ${suite.summary.failed}/${suite.summary.total} rows did not enforce the expected decision+audit`));
297
333
  return { report, exitCode: allOk ? 0 : 1 };
298
334
  }
299
- /** Signal-safe teardown: stop processes, remove the throwaway home. */
300
- function teardown(ctx) {
335
+ /**
336
+ * Processes that belong to the throwaway: any whose command line names the
337
+ * throwaway home (its server, boot wrapper, lifeline, MCP children, and the
338
+ * public quick tunnel, which runs `cloudflared … --config <target>/.instar/cloudflared-quick.yml`).
339
+ * The target is guard-validated (validateTarget refuses a target that is, contains,
340
+ * or shares a basename with any agent home), so matching on it cannot select a real agent. The harness's OWN ancestor chain is always
341
+ * excluded — the shell that launched `test-as-self --target <path>` names the
342
+ * path too. Input is `ps -axo pid=,ppid=,command=`. Exported + pure for tests.
343
+ */
344
+ export function selectTargetPids(psOutput, target, selfPid) {
345
+ const root = path.resolve(target);
346
+ const needle = new RegExp(`${root.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}(?=[/\\s'"]|$)`);
347
+ const rows = [];
348
+ for (const line of psOutput.split('\n')) {
349
+ const m = line.match(/^\s*(\d+)\s+(\d+)\s+(.*)$/);
350
+ if (m)
351
+ rows.push({ pid: Number(m[1]), ppid: Number(m[2]), cmd: m[3] });
352
+ }
353
+ const parent = new Map(rows.map((r) => [r.pid, r.ppid]));
354
+ const ancestors = new Set();
355
+ for (let p = selfPid; p !== undefined && p > 1 && !ancestors.has(p); p = parent.get(p))
356
+ ancestors.add(p);
357
+ return rows.filter((r) => r.pid > 1 && !ancestors.has(r.pid) && needle.test(r.cmd)).map((r) => r.pid);
358
+ }
359
+ /**
360
+ * tmux sessions the throwaway spawned (SessionManager names them
361
+ * `<basename(projectDir)>-<name>`, e.g. a dispatch session). Exported + pure.
362
+ */
363
+ export function selectTargetTmuxSessions(sessionNames, target) {
364
+ const prefix = `${path.basename(path.resolve(target))}-`;
365
+ return sessionNames.filter((n) => n.startsWith(prefix));
366
+ }
367
+ function targetPidsNow(target) {
368
+ try {
369
+ const ps = execFileSync('ps', ['-axo', 'pid=,ppid=,command='], { encoding: 'utf-8', timeout: 5_000, maxBuffer: 32 * 1024 * 1024 });
370
+ return selectTargetPids(ps, target, process.pid);
371
+ }
372
+ catch {
373
+ return [];
374
+ }
375
+ }
376
+ function signalAll(pids, sig) {
377
+ for (const pid of pids) {
378
+ try {
379
+ process.kill(pid, sig);
380
+ }
381
+ catch { /* gone */ }
382
+ }
383
+ }
384
+ /**
385
+ * Signal-safe teardown (ACT-064: the launchd job, the public tunnel and the
386
+ * dispatch sessions all used to survive it). Order matters, because a server
387
+ * that is still shutting down keeps self-healing: it re-installs its autostart
388
+ * plist and restarts its tunnel. So: boot out the autostart (no KeepAlive
389
+ * respawn), stop every throwaway process and WAIT until none is left (SIGKILL
390
+ * after a deadline), and only then remove the autostart again, reap the tmux
391
+ * sessions, and sweep anything still naming the home.
392
+ */
393
+ async function teardown(ctx, canonicalHome) {
394
+ let uninstall = null;
395
+ try {
396
+ const cfg = JSON.parse(fs.readFileSync(path.join(ctx.target, '.instar', 'config.json'), 'utf-8'));
397
+ let canonicalName;
398
+ try {
399
+ canonicalName = JSON.parse(fs.readFileSync(path.join(canonicalHome, '.instar', 'config.json'), 'utf-8')).projectName;
400
+ }
401
+ catch { /* no canonical config — the name guard below still holds */ }
402
+ const name = cfg.projectName;
403
+ if (name && name !== canonicalName) {
404
+ const { uninstallAutoStart } = await import('./setup.js');
405
+ uninstall = () => { try {
406
+ uninstallAutoStart(name);
407
+ }
408
+ catch { /* best-effort */ } };
409
+ }
410
+ }
411
+ catch { /* no config — nothing was installed */ }
412
+ // 1. Boot out + remove the throwaway's autostart (launchctl bootout + plist removal).
413
+ uninstall?.();
414
+ // 2. Stop the processes, then wait until every throwaway process has exited.
301
415
  try {
302
416
  ctx.lifelineProc?.kill('SIGTERM');
303
417
  }
@@ -306,15 +420,36 @@ function teardown(ctx) {
306
420
  ctx.serverProc?.kill('SIGTERM');
307
421
  }
308
422
  catch { /* */ }
309
- // Best-effort: stop any launchd/lifeline the deploy self-installed, then remove the home.
310
423
  try {
311
424
  execFileSync('node', [ctx.distCli, 'server', 'stop', '--dir', ctx.target], { encoding: 'utf-8', timeout: 15_000, env: sanitizedSpawnEnv(process.env) });
312
425
  }
313
426
  catch { /* may not be running */ }
427
+ signalAll(targetPidsNow(ctx.target), 'SIGTERM');
428
+ const deadline = nowMs() + 20_000;
429
+ while (nowMs() < deadline && targetPidsNow(ctx.target).length > 0)
430
+ await sleep(500);
431
+ signalAll(targetPidsNow(ctx.target), 'SIGKILL');
432
+ // 3. The dying server may have re-installed its autostart: remove it again.
433
+ uninstall?.();
434
+ // 4. Reap the throwaway's tmux sessions (dispatch/job sessions).
435
+ try {
436
+ const list = execFileSync('tmux', ['list-sessions', '-F', '#{session_name}'], { encoding: 'utf-8', timeout: 5_000, stdio: ['ignore', 'pipe', 'ignore'] });
437
+ for (const name of selectTargetTmuxSessions(list.split('\n').filter(Boolean), ctx.target)) {
438
+ try {
439
+ execFileSync('tmux', ['kill-session', '-t', `=${name}`], { stdio: 'ignore', timeout: 5_000 });
440
+ }
441
+ catch { /* gone */ }
442
+ }
443
+ }
444
+ catch { /* no tmux server */ }
445
+ // 5. Final sweep: anything still naming the home (a late-started tunnel).
446
+ await sleep(500);
447
+ signalAll(targetPidsNow(ctx.target), 'SIGKILL');
314
448
  // NOTE: the throwaway home removal is intentionally left to the caller / --keep
315
449
  // semantics rather than an rm here — SafeFsExecutor is the only sanctioned
316
450
  // deletion path and the home is under ~/.instar/test-deploys, safe to leave for inspection.
317
- console.log(pc.dim(` teardown: processes signaled; home left at ${ctx.target} (remove manually or it's a dated test-deploys dir)`));
451
+ const left = targetPidsNow(ctx.target).length;
452
+ console.log(pc.dim(` teardown: autostart removed, processes + tunnel + sessions stopped${left ? ` (${left} process(es) still exiting)` : ''}; home left at ${ctx.target}`));
318
453
  }
319
454
  function finish(ctx, opts, failedStep) {
320
455
  const allOk = ctx.steps.every((s) => s.ok);
@@ -1 +1 @@
1
- {"version":3,"file":"test-as-self.js","sourceRoot":"","sources":["../../src/commands/test-as-self.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-as-self.js","sourceRoot":"","sources":["../../src/commands/test-as-self.ts"],"names":[],"mappings":"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"}
@@ -17,11 +17,18 @@ export interface TargetGuardOptions {
17
17
  protectedNames: string[];
18
18
  /** Optional: absolute homes that are off-limits regardless of name (e.g. a known Bob path). */
19
19
  protectedHomes?: string[];
20
+ /**
21
+ * Optional: every live agent home on this machine (e.g. each ~/.instar/agents/*).
22
+ * The teardown sweeps processes naming the target path and tmux sessions named
23
+ * `<basename(target)>-*`, so a target may be neither an ANCESTOR of any of these
24
+ * homes nor share a basename with one (ACT-064 second-pass review).
25
+ */
26
+ agentHomes?: string[];
20
27
  }
21
28
  export interface GuardResult {
22
29
  ok: boolean;
23
30
  /** Stable machine-readable reason code (also the suggested process exit semantics). */
24
- code: 'ok' | 'target-is-canonical' | 'target-is-protected' | 'raw-token-on-cli' | 'empty-target';
31
+ code: 'ok' | 'target-is-canonical' | 'target-is-protected' | 'target-is-ancestor' | 'target-name-collides' | 'raw-token-on-cli' | 'empty-target';
25
32
  reason?: string;
26
33
  }
27
34
  /** True if `value` looks like a raw secret token (must NOT be accepted on argv). */
@@ -1 +1 @@
1
- {"version":3,"file":"testAsSelfValidation.d.ts","sourceRoot":"","sources":["../../src/commands/testAsSelfValidation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,WAAW,kBAAkB;IACjC,oFAAoF;IACpF,aAAa,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,+FAA+F;IAC/F,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,uFAAuF;IACvF,IAAI,EAAE,IAAI,GAAG,qBAAqB,GAAG,qBAAqB,GAAG,kBAAkB,GAAG,cAAc,CAAC;IACjG,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAQD,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGjD;AAQD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,kBAAkB,GAAG,WAAW,CAmChG;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAUxE"}
1
+ {"version":3,"file":"testAsSelfValidation.d.ts","sourceRoot":"","sources":["../../src/commands/testAsSelfValidation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,MAAM,WAAW,kBAAkB;IACjC,oFAAoF;IACpF,aAAa,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,+FAA+F;IAC/F,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,uFAAuF;IACvF,IAAI,EAAE,IAAI,GAAG,qBAAqB,GAAG,qBAAqB,GAAG,oBAAoB,GAAG,sBAAsB,GAAG,kBAAkB,GAAG,cAAc,CAAC;IACjJ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAQD,oFAAoF;AACpF,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGjD;AAwBD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,kBAAkB,GAAG,WAAW,CAoEhG;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAUxE"}
@@ -10,6 +10,7 @@
10
10
  * Spec: MULTI-MACHINE-BOOTSTRAP-ROBUSTNESS §Track F (the Part 2.1 harness),
11
11
  * "Forbidden inputs".
12
12
  */
13
+ import fs from 'node:fs';
13
14
  import path from 'node:path';
14
15
  /** Telegram bot tokens look like `<8-10 digits>:<35+ url-safe chars>`. */
15
16
  const RAW_TELEGRAM_TOKEN = /^\d{8,10}:[A-Za-z0-9_-]{30,}$/;
@@ -21,6 +22,23 @@ export function isRawToken(value) {
21
22
  return RAW_TELEGRAM_TOKEN.test(v) || RAW_OTHER_TOKEN.test(v);
22
23
  }
23
24
  /** Normalize a path for comparison (resolve + strip trailing sep). */
25
+ /** Resolve symlinks for the longest existing prefix; the remainder is appended unchanged. */
26
+ function realOrSelf(p) {
27
+ let head = p;
28
+ const tail = [];
29
+ for (;;) {
30
+ try {
31
+ return path.join(fs.realpathSync(head), ...tail);
32
+ }
33
+ catch {
34
+ const parent = path.dirname(head);
35
+ if (parent === head)
36
+ return p;
37
+ tail.unshift(path.basename(head));
38
+ head = parent;
39
+ }
40
+ }
41
+ }
24
42
  function norm(p) {
25
43
  const r = path.resolve(p);
26
44
  return r.length > 1 && r.endsWith(path.sep) ? r.slice(0, -1) : r;
@@ -62,6 +80,38 @@ export function validateTarget(target, opts) {
62
80
  };
63
81
  }
64
82
  }
83
+ // The teardown signals every process whose argv names a path under the target,
84
+ // and every tmux session prefixed `<basename>-`. Refuse targets for which that
85
+ // sweep could reach a real agent.
86
+ const homes = [canonical, ...(opts.protectedHomes ?? []), ...(opts.agentHomes ?? [])].map(norm);
87
+ const tReal = realOrSelf(t);
88
+ for (const h of homes) {
89
+ const hReal = realOrSelf(h);
90
+ if (tReal === hReal) {
91
+ return {
92
+ ok: false,
93
+ code: 'target-is-canonical',
94
+ reason: `Refusing target ${t}: it resolves to the agent home ${h}.`,
95
+ };
96
+ }
97
+ if (t === path.parse(t).root || h.startsWith(t + path.sep) || hReal.startsWith(tReal + path.sep)) {
98
+ return {
99
+ ok: false,
100
+ code: 'target-is-ancestor',
101
+ reason: `Refusing target ${t}: it contains a real agent home (${h}); teardown would stop that agent's processes.`,
102
+ };
103
+ }
104
+ // tmux sessions are `<agentBase>-*`; the reaper kills `<base>-*`. They
105
+ // overlap when the names are equal or either is a dash-prefix of the other.
106
+ const hb = path.basename(h).toLowerCase();
107
+ if (hb === base || hb.startsWith(base + '-') || base.startsWith(hb + '-')) {
108
+ return {
109
+ ok: false,
110
+ code: 'target-name-collides',
111
+ reason: `Refusing target ${t}: its name "${base}" matches the agent home ${h}; teardown would stop that agent's sessions.`,
112
+ };
113
+ }
114
+ }
65
115
  return { ok: true, code: 'ok' };
66
116
  }
67
117
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"testAsSelfValidation.js","sourceRoot":"","sources":["../../src/commands/testAsSelfValidation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testAsSelfValidation.js","sourceRoot":"","sources":["../../src/commands/testAsSelfValidation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAyB7B,0EAA0E;AAC1E,MAAM,kBAAkB,GAAG,+BAA+B,CAAC;AAE3D,yEAAyE;AACzE,MAAM,eAAe,GAAG,uKAAuK,CAAC;AAEhM,oFAAoF;AACpF,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACvB,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,sEAAsE;AACtE,6FAA6F;AAC7F,SAAS,UAAU,CAAC,CAAS;IAC3B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,SAAS,CAAC;QACR,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO,CAAC,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAClC,IAAI,GAAG,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,IAAI,CAAC,CAAS;IACrB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1B,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,MAA0B,EAAE,IAAwB;IACjF,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAC9B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,qDAAqD,EAAE,CAAC;IAC5G,CAAC;IACD,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE3C,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACpB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,qBAAqB;YAC3B,MAAM,EAAE,6CAA6C,SAAS,sDAAsD;SACrH,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5C,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnE,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,qBAAqB;YAC3B,MAAM,EAAE,iDAAiD,IAAI,2BAA2B;SACzF,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;QAC3C,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACnB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,qBAAqB;gBAC3B,MAAM,EAAE,kCAAkC,IAAI,CAAC,EAAE,CAAC,yBAAyB;aAC5E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,+EAA+E;IAC/E,kCAAkC;IAClC,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChG,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC5B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACpB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,qBAAqB;gBAC3B,MAAM,EAAE,mBAAmB,CAAC,mCAAmC,CAAC,GAAG;aACpE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACjG,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,oBAAoB;gBAC1B,MAAM,EAAE,mBAAmB,CAAC,oCAAoC,CAAC,gDAAgD;aAClH,CAAC;QACJ,CAAC;QACD,uEAAuE;QACvE,4EAA4E;QAC5E,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;YAC1E,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,sBAAsB;gBAC5B,MAAM,EAAE,mBAAmB,CAAC,eAAe,IAAI,4BAA4B,CAAC,8CAA8C;aAC3H,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAuB;IACzD,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,mDAAmD;IAC9F,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,wHAAwH;SACjI,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAClC,CAAC"}
@@ -2,7 +2,7 @@
2
2
  "schemaVersion": 1,
3
3
  "generatedFrom": "source-tree",
4
4
  "registrySha256": "35448db940d659661ebdfb09761439033f93a15157540ee2f6eecf825488e1e6",
5
- "packageVersion": "1.3.1334",
5
+ "packageVersion": "1.3.1336",
6
6
  "guards": [
7
7
  {
8
8
  "ref": "docs/audits/phase-b/f10-triage.md",
@@ -1,5 +1,5 @@
1
1
  {
2
- "sha256": "7f360103e94642982a4913a6bea73cf0b2ff614e7971d63afb835c75a2c6c43d",
2
+ "sha256": "aca43025a5acfdf9c9a6eee3c9fc8a023d94ca429fcf36c65993528a00272429",
3
3
  "registrySha256": "35448db940d659661ebdfb09761439033f93a15157540ee2f6eecf825488e1e6",
4
- "packageVersion": "1.3.1334"
4
+ "packageVersion": "1.3.1336"
5
5
  }
@@ -2,5 +2,5 @@
2
2
  "sha256": "35448db940d659661ebdfb09761439033f93a15157540ee2f6eecf825488e1e6",
3
3
  "articleCount": 92,
4
4
  "generatedFrom": "docs/STANDARDS-REGISTRY.md",
5
- "packageVersion": "1.3.1334"
5
+ "packageVersion": "1.3.1336"
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"IdentityManager.d.ts","sourceRoot":"","sources":["../../src/identity/IdentityManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAqBH,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAElB,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,qBAAqB;IACpC,gGAAgG;IAChG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,+FAA+F;IAC/F,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAkC;gBAEtC,QAAQ,EAAE,MAAM;IAK5B;;;;;;;;;OASG;IACH,MAAM,CAAC,OAAO,GAAE,qBAA0B,GAAG,oBAAoB;IA8DjE;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,GAAE,mBAAwB,GAAG,iBAAiB,GAAG,IAAI;IAqDjE;;OAEG;IACH,GAAG,IAAI,iBAAiB,GAAG,IAAI;IAI/B;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;;OAGG;IACH,OAAO,IAAI,YAAY,GAAG,IAAI;IAM9B,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,WAAW;CAGpB"}
1
+ {"version":3,"file":"IdentityManager.d.ts","sourceRoot":"","sources":["../../src/identity/IdentityManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAqBH,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAElB,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,qBAAqB;IACpC,gGAAgG;IAChG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,+FAA+F;IAC/F,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAkC;gBAEtC,QAAQ,EAAE,MAAM;IAK5B;;;;;;;;;OASG;IACH,MAAM,CAAC,OAAO,GAAE,qBAA0B,GAAG,oBAAoB;IA8DjE;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,GAAE,mBAAwB,GAAG,iBAAiB,GAAG,IAAI;IAmEjE;;OAEG;IACH,GAAG,IAAI,iBAAiB,GAAG,IAAI;IAI/B;;OAEG;IACH,MAAM,IAAI,OAAO;IAIjB;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;;OAGG;IACH,OAAO,IAAI,YAAY,GAAG,IAAI;IAM9B,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,WAAW;CAGpB"}
@@ -107,7 +107,15 @@ export class CanonicalIdentityManager {
107
107
  return null;
108
108
  const file = loaded.raw;
109
109
  let privateKey;
110
- if (file.privateKeyEncryption === 'none') {
110
+ // The pairing installer (installAgentIdentityFromPairing) writes a
111
+ // plaintext key with no `privateKeyEncryption` field (spec:
112
+ // joined-machine-unified-trust). An ABSENT field therefore means 'none'.
113
+ // readIdentityKeyFile has already validated that file as a plaintext pair
114
+ // (32-byte seed whose public key matches), so a ciphertext key without the
115
+ // field never reaches here. A field that is present but holds anything
116
+ // other than the two known methods is still refused below.
117
+ const declaresNoEncryption = file.privateKeyEncryption === 'none' || !('privateKeyEncryption' in loaded.raw);
118
+ if (declaresNoEncryption) {
111
119
  privateKey = loaded.privateKey;
112
120
  }
113
121
  else if (file.privateKeyEncryption === 'xchacha20-poly1305+argon2id') {
@@ -129,13 +137,17 @@ export class CanonicalIdentityManager {
129
137
  else {
130
138
  throw new Error(`Unknown encryption method: ${file.privateKeyEncryption}`);
131
139
  }
140
+ // The installer shape also carries no canonicalId / displayFingerprint.
141
+ // Both are pure functions of the public key, so derive them when absent
142
+ // (or empty).
143
+ const canonicalId = file.canonicalId || computeCanonicalId(loaded.publicKey);
132
144
  const identity = {
133
145
  version: file.version,
134
146
  publicKey: loaded.publicKey,
135
147
  privateKey,
136
148
  x25519PublicKey: deriveX25519PublicKey(privateKey),
137
- canonicalId: file.canonicalId,
138
- displayFingerprint: file.displayFingerprint,
149
+ canonicalId,
150
+ displayFingerprint: file.displayFingerprint || computeDisplayFingerprint(canonicalId),
139
151
  createdAt: file.createdAt,
140
152
  recoveryCommitment: file.recoveryCommitment,
141
153
  migrationComplete: file.migrationComplete,
@@ -1 +1 @@
1
- {"version":3,"file":"IdentityManager.js","sourceRoot":"","sources":["../../src/identity/IdentityManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IdentityManager.js","sourceRoot":"","sources":["../../src/identity/IdentityManager.ts"],"names":[],"mappings":"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"}
@@ -136,6 +136,12 @@ export declare class JevJobCompletionAudit {
136
136
  private readonly audit;
137
137
  /** Test seam: resolves when the latest detached capture settles. */
138
138
  lastCapture: Promise<void>;
139
+ /**
140
+ * Every detached capture still in flight. flush() must wait on ALL of them —
141
+ * awaiting only the latest let an earlier, slower capture land after flush()
142
+ * returned (ACT-074: a batch run right after flush() missed that pack).
143
+ */
144
+ private readonly pendingCaptures;
139
145
  constructor(deps: JevAuditDeps);
140
146
  private nowMs;
141
147
  private refreshKey;
@@ -1 +1 @@
1
- {"version":3,"file":"JevJobCompletionAudit.d.ts","sourceRoot":"","sources":["../../src/scheduler/JevJobCompletionAudit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"JevJobCompletionAudit.d.ts","sourceRoot":"","sources":["../../src/scheduler/JevJobCompletionAudit.ts"],"names":[],"mappings":"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"}
@@ -98,6 +98,12 @@ export class JevJobCompletionAudit {
98
98
  audit;
99
99
  /** Test seam: resolves when the latest detached capture settles. */
100
100
  lastCapture = Promise.resolve();
101
+ /**
102
+ * Every detached capture still in flight. flush() must wait on ALL of them —
103
+ * awaiting only the latest let an earlier, slower capture land after flush()
104
+ * returned (ACT-074: a batch run right after flush() missed that pack).
105
+ */
106
+ pendingCaptures = new Set();
101
107
  constructor(deps) {
102
108
  this.deps = deps;
103
109
  this.audit = new BoundedJsonlAudit({ file: deps.logPath, log: deps.log ?? (() => { }) });
@@ -158,11 +164,14 @@ export class JevJobCompletionAudit {
158
164
  }
159
165
  const rawTail = input.output.slice(-(TAIL_CAP_BYTES * 2)); // O(1)-ish pre-slice; exact clamp is detached
160
166
  this.capturesInFlight++;
161
- this.lastCapture = this.captureDetached(input, rawTail)
167
+ const p = this.captureDetached(input, rawTail)
162
168
  .catch(() => this.metric('capture-failed', { reason: 'error' }))
163
169
  .finally(() => {
164
170
  this.capturesInFlight--;
171
+ this.pendingCaptures.delete(p);
165
172
  });
173
+ this.pendingCaptures.add(p);
174
+ this.lastCapture = p;
166
175
  }
167
176
  catch {
168
177
  // @silent-fallback-ok — the audit must never touch the completion path; a lost capture surfaces in the reconciliation.
@@ -591,7 +600,7 @@ export class JevJobCompletionAudit {
591
600
  }
592
601
  /** Test/shutdown seam. */
593
602
  async flush() {
594
- await this.lastCapture;
603
+ await Promise.all([...this.pendingCaptures, this.lastCapture]);
595
604
  await this.audit.flush?.();
596
605
  }
597
606
  }