@ai-dossier/sched 0.28.0 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -403,6 +403,52 @@ on the trail yet, gh unreachable, no fencer configured) the redispatch proceeds
403
403
  and journals `fence-failed`. Stranding a stalled unit forever would be the worse failure —
404
404
  but the unprotected redispatch is never silent.
405
405
 
406
+ ### Fence lifecycle: write → bind → release (#683)
407
+
408
+ A fence used to outlive its owner. A run killed abnormally (engine kill, #679's cgroup
409
+ teardown, reboot, OOM) left its fence standing, and every successor dispatched to that
410
+ issue then read the fence, correctly stepped aside to avoid duplicating the owner's work,
411
+ and was classified `unverified-exit` — escalating a tier for being polite, until
412
+ `unverified-exit-at-strongest-tier`. The fence was doing its job; the only broken part was
413
+ that it outlived the run it granted ownership to. Three records on the trail now close
414
+ that loop, and a fourth classification keeps the ladder honest:
415
+
416
+ - **Write** — unchanged (#504): `runstate fence` posts the `status=superseded` milestone
417
+ with `gen=<n>` and `takeover=<label>`. The label comes from one helper
418
+ (`takeoverLabelFor`), is descriptive only, and is **never matched**: ownership is
419
+ decided by run id + generation, because slot labels rotate.
420
+ - **Bind** — right after spawning the takeover, the engine calls
421
+ `runstate fence-bind --pid <pid> --pid-start <start>`, posting a `bound=true` record at
422
+ the fence's own generation. The pid + `/proc` start-time pair is what lets every later
423
+ reader (`runstate check`, `post`'s guard) tell a **live owner from a ghost** using the
424
+ same identity rule the engine itself uses (#472: a reused pid is not the old process).
425
+ A fence with no bind still fences — fail-closed, exactly as before #683; the bind is a
426
+ liveness witness, never the fence itself.
427
+ - **Release** — when the engine's `exit-detected` hook sees the owning dispatch end
428
+ (abnormally or not), it calls `runstate fence --release --gen <n>`, posting a
429
+ `released=true` record: every fence of that run up to generation n is lifted. Release
430
+ is best-effort (gh down → `fence-release-failed`, and the stale-on-read backstop below
431
+ still unblocks successors). Released generations are never reused — the generation
432
+ arithmetic keeps counting them — so a takeover of a takeover cannot collide with a
433
+ released fence.
434
+ - **Stale on read** — the backstop for a release that was missed: an active fence whose
435
+ bound pid is dead is STALE. `runstate check` reports the run as live (exit 0) with a
436
+ stderr note naming the ignored fence, and `post`'s guard passes while saying why. An
437
+ **unbound** fence never reads as stale — with no pid on record, no reader can tell a
438
+ live owner from a ghost, so it keeps fencing.
439
+
440
+ The fence-driven abort itself is reclassified: an agent whose dispatch log carries its own
441
+ supersession-checkpoint verdict (`runstate check`'s `SUPERSEDED` output for the trail's
442
+ run id) is journalled **`deferred-to-owner`**, not `unverified-exit` — a deliberate,
443
+ correct no-op that counts as a healthy dispatch and redispatches at the **same tier
444
+ without consuming an escalation rung** (the #629 unescalated rail). The
445
+ `runstate check --comment` abort comment names the owning run, its generation, its
446
+ takeover label, its bound pid, and that pid's liveness, so a human reading the issue can
447
+ tell a live owner from a ghost. Distinct from #679: those agents died with
448
+ `run-log-no-usage` before doing anything, while a deferring agent ran, recorded, and
449
+ exited cleanly — and `KillMode=process` fixes neither the stranded fence nor the
450
+ misclassification.
451
+
406
452
  ## Batch failure recovery (#472)
407
453
 
408
454
  What happens when a batch's aggregate suite goes red, or its PR will not merge
@@ -279,14 +279,14 @@ export declare function journalCmdModelFields(spawn: TierSpawn): {
279
279
  * accepted (the CLI refuses a lower generation), and CHECK before the expensive phases so
280
280
  * it discovers its own supersession early if it is itself replaced later.
281
281
  */
282
- export declare function takeoverInstruction(issue: number, gen: number): string;
282
+ export declare function takeoverInstruction(issue: number, gen: number, slotLabel?: string): string;
283
283
  /**
284
284
  * Build the child's stdin prompt for one dispatch.
285
285
  *
286
286
  * `gen` is the runstate generation the agent owns; 0 (the default) is a first dispatch
287
287
  * and produces today's prompt unchanged.
288
288
  */
289
- export declare function buildPrompt(template: string, issue: number, gen?: number): string;
289
+ export declare function buildPrompt(template: string, issue: number, gen?: number, slotLabel?: string): string;
290
290
  /**
291
291
  * Build the report agent's stdin prompt (#468): `{issue}`/`{pr}`/`{cleanup}`/`{gen}`
292
292
  * substituted, with the takeover instruction appended for `gen > 0` (#504).
@@ -296,7 +296,7 @@ export declare function buildPrompt(template: string, issue: number, gen?: numbe
296
296
  * have its `report done` milestone refused, recovering to the escalation cap on a PR
297
297
  * that already merged.
298
298
  */
299
- export declare function buildReportPrompt(template: string, issue: number, pr: number, cleanup: string, gen?: number): string;
299
+ export declare function buildReportPrompt(template: string, issue: number, pr: number, cleanup: string, gen?: number, slotLabel?: string): string;
300
300
  export declare function buildFixPrompt(template: string, issue: number, batch: string, tests: readonly string[]): string;
301
301
  /**
302
302
  * Build one batch member's stdin prompt (#523 AC1): `{issue}`, `{batch}` and
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"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"}
package/dist/dispatch.js CHANGED
@@ -505,13 +505,18 @@ function journalCmdModelFields(spawn) {
505
505
  * accepted (the CLI refuses a lower generation), and CHECK before the expensive phases so
506
506
  * it discovers its own supersession early if it is itself replaced later.
507
507
  */
508
- function takeoverInstruction(issue, gen) {
509
- return (`TAKEOVER — you are generation ${gen} of the run on issue #${issue}: an earlier agent was ` +
508
+ function takeoverInstruction(issue, gen, slotLabel) {
509
+ const identity = slotLabel !== undefined ? ` (your takeover label is '${slotLabel}')` : '';
510
+ return (`TAKEOVER — you are generation ${gen} of the run on issue #${issue}${identity}: an earlier agent was ` +
510
511
  'superseded and fenced out of the runstate trail. Pass `--gen ' +
511
512
  `${gen}\` on EVERY \`ai-dossier runstate post\` for this issue, or the post is refused. ` +
512
513
  `Before implement, before review, and before ship, run \`ai-dossier runstate check --issue ${issue} ` +
513
514
  `--run <run_id> --gen ${gen}\`; a non-zero exit means YOU have been superseded in turn — stop ` +
514
- 'immediately, do not push, and do not open a PR. Resume the existing work rather than ' +
515
+ 'immediately, do not push, and do not open a PR. ' +
516
+ `A fence at YOUR generation (${gen}) is your own — only a HIGHER generation fences you, never ` +
517
+ 'a lower one and never a slot label (#683: owners are identified by run id + generation, and a ' +
518
+ 'fence whose owner is dead is reported stale and does not block you). ' +
519
+ 'Resume the existing work rather than ' +
515
520
  'restarting it: the trail and the pushed branch are the durable state.');
516
521
  }
517
522
  /**
@@ -520,9 +525,9 @@ function takeoverInstruction(issue, gen) {
520
525
  * `gen` is the runstate generation the agent owns; 0 (the default) is a first dispatch
521
526
  * and produces today's prompt unchanged.
522
527
  */
523
- function buildPrompt(template, issue, gen = 0) {
528
+ function buildPrompt(template, issue, gen = 0, slotLabel) {
524
529
  const rendered = renderTemplate(template, { issue, gen });
525
- return gen > 0 ? `${rendered}\n\n${takeoverInstruction(issue, gen)}` : rendered;
530
+ return gen > 0 ? `${rendered}\n\n${takeoverInstruction(issue, gen, slotLabel)}` : rendered;
526
531
  }
527
532
  /**
528
533
  * Build the report agent's stdin prompt (#468): `{issue}`/`{pr}`/`{cleanup}`/`{gen}`
@@ -533,9 +538,9 @@ function buildPrompt(template, issue, gen = 0) {
533
538
  * have its `report done` milestone refused, recovering to the escalation cap on a PR
534
539
  * that already merged.
535
540
  */
536
- function buildReportPrompt(template, issue, pr, cleanup, gen = 0) {
541
+ function buildReportPrompt(template, issue, pr, cleanup, gen = 0, slotLabel) {
537
542
  const rendered = renderTemplate(template, { issue, pr, cleanup, gen });
538
- return gen > 0 ? `${rendered}\n\n${takeoverInstruction(issue, gen)}` : rendered;
543
+ return gen > 0 ? `${rendered}\n\n${takeoverInstruction(issue, gen, slotLabel)}` : rendered;
539
544
  }
540
545
  /**
541
546
  * Build the fix agent's stdin prompt (#472): `{issue}`, `{batch}` and the
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoVH,0CA2CC;AAkED,oDAKC;AAUD,kDAOC;AASD,oDAmBC;AASD,8CAOC;AASD,4CAOC;AASD,4CAMC;AAqBD,sCAYC;AAQD,0CAIC;AAGD,sDAEC;AAUD,kDAeC;AAQD,kCAGC;AAWD,8CAUC;AA+BD,wCAqBC;AASD,8CAWC;AAOD,oDAaC;AAMD,wDAOC;AAGD,oCAEC;AAQD,sCAEC;AAiCD,kCAEC;AAQD,0CAEC;AAWD,gDAOC;AAED,4CAEC;AAaD,4CAUC;AAED,gDAEC;AAED,0CAEC;AAQD,wCAkBC;AAYD,sCAcC;AAcD,0CAoHC;AA3hCD,2DAA2C;AAC3C,4CAA8B;AAC9B,gDAAkC;AAClC,2CAAwD;AACxD,uCAAyC;AACzC,mCAaiB;AAEjB,8EAA8E;AACjE,QAAA,mBAAmB,GAAwC;IACtE,UAAU,EAAE,OAAO;IACnB,GAAG,EAAE,QAAQ;IACb,MAAM,EAAE,MAAM;CACf,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACU,QAAA,wBAAwB,GAAsB;IACzD,QAAQ;IACR,IAAI;IACJ,iBAAiB;IACjB,aAAa;IACb,WAAW;IACX,SAAS;IACT,SAAS;CACV,CAAC;AAEF,oEAAoE;AACvD,QAAA,yBAAyB,GAAsB;IAC1D,UAAU;IACV,KAAK;IACL,QAAQ;IACR,UAAU;IACV,MAAM;IACN,SAAS;IACT,SAAS;CACV,CAAC;AAEF;;;;;;;;;;GAUG;AACU,QAAA,wBAAwB,GAAsB,CAAC,SAAS,CAAC,CAAC;AAEvE;;;;;;;;;;;;;GAaG;AACH,SAAS,mBAAmB,CAAC,QAA2B,EAAE,KAAwB;IAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC;IAC/D,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAC9B,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,mBAAmB,IAAI,GAAG,KAAK,oBAAoB,CACrE,CAAC;IACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,UAAU;QAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,QAAQ,EAAE,mBAAmB,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;;;;;GAUG;AACU,QAAA,8BAA8B,GACzC,+FAA+F;IAC/F,gGAAgG;IAChG,0FAA0F;IAC1F,mBAAmB,CAAC;AAEtB,mGAAmG;AACnG,SAAS,oBAAoB,CAAC,QAAgB;IAC5C,OAAO,GAAG,QAAQ,OAAO,sCAA8B,EAAE,CAAC;AAC5D,CAAC;AAED;;;;;;;;;;;;;GAaG;AACU,QAAA,mCAAmC,GAC9C,kFAAkF;IAClF,+FAA+F;IAC/F,8FAA8F;IAC9F,4FAA4F;IAC5F,6FAA6F;IAC7F,uCAAuC,CAAC;AAE1C;;;;;;;GAOG;AACH,SAAS,0BAA0B,CAAC,QAAgB;IAClD,OAAO,QAAQ,CAAC,QAAQ,CAAC,2CAAmC,CAAC;QAC3D,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,GAAG,QAAQ,OAAO,2CAAmC,EAAE,CAAC;AAC9D,CAAC;AAED;;;;;;;GAOG;AACU,QAAA,uBAAuB,GAAG,0BAA0B,CAC/D,oBAAoB,CAClB,qFAAqF;IACnF,2FAA2F;IAC3F,iGAAiG;IACjG,iGAAiG;IACjG,+FAA+F;IAC/F,+FAA+F,CAClG,CACF,CAAC;AAEF;;;GAGG;AACU,QAAA,8BAA8B,GACzC,wEAAwE;IACxE,uFAAuF;IACvF,iGAAiG;IACjG,uFAAuF;IACvF,iGAAiG;IACjG,kCAAkC;IAClC,oFAAoF;IACpF,qFAAqF;IACrF,+EAA+E;IAC/E,2FAA2F;IAC3F,yFAAyF;IACzF,oDAAoD,CAAC;AAEvD;;;;;;GAMG;AACU,QAAA,2BAA2B,GAAG,oBAAoB,CAC7D,6FAA6F;IAC3F,8FAA8F;IAC9F,2FAA2F;IAC3F,+FAA+F;IAC/F,+FAA+F;IAC/F,+FAA+F;IAC/F,2FAA2F;IAC3F,kFAAkF,CACrF,CAAC;AAEF;;;;GAIG;AACU,QAAA,8BAA8B,GAAG,oBAAoB,CAChE,4FAA4F;IAC1F,6BAA6B;IAC7B,qFAAqF;IACrF,4FAA4F;IAC5F,2FAA2F;IAC3F,yDAAyD,CAC5D,CAAC;AAEF;;;;;GAKG;AACU,QAAA,kCAAkC,GAAG,0BAA0B,CAC1E,oBAAoB,CAClB,8FAA8F;IAC5F,uDAAuD;IACvD,2FAA2F;IAC3F,qDAAqD;IACrD,8FAA8F;IAC9F,8FAA8F;IAC9F,8FAA8F;IAC9F,+FAA+F;IAC/F,iFAAiF,CACpF,CACF,CAAC;AAEF;;;;GAIG;AACU,QAAA,oCAAoC,GAC/C,+FAA+F;IAC/F,uFAAuF;IACvF,gGAAgG;IAChG,4FAA4F;IAC5F,4FAA4F;IAC5F,YAAY,CAAC;AAEf;;;;GAIG;AACH,SAAS,cAAc,CAAC,QAAgB,EAAE,IAAqC;IAC7E,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAChC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAChE,QAAQ,CACT,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B,4CAA4C;AAC5C,MAAM,sBAAsB,GAAG,GAAG,CAAC;AA8DnC,0EAA0E;AAC1E,SAAgB,eAAe,CAAC,MAAmB;IACjD,MAAM,QAAQ,GAAmB,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;IACvD,MAAM,UAAU,GAAqC;QACnD,UAAU,EAAE,QAAQ,CAAC,WAAW,EAAE,UAAU,IAAI,2BAAmB,CAAC,UAAU;QAC9E,GAAG,EAAE,QAAQ,CAAC,WAAW,EAAE,GAAG,IAAI,2BAAmB,CAAC,GAAG;QACzD,MAAM,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,IAAI,2BAAmB,CAAC,MAAM;KACnE,CAAC;IACF,MAAM,eAAe,GAAG,QAAQ,CAAC,gBAAgB,IAAI,CAAC,GAAG,gCAAwB,CAAC,CAAC;IACnF,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,GAAG,gCAAwB,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,0BAA0B,CAAC,QAAQ,CAAC,MAAM,IAAI,+BAAuB,CAAC,CAAC;IACtF,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAC9B,kBAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACvB,IAAI;QACJ,mBAAmB,CACjB,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EACtB,IAAI,EACJ,UAAU,EACV,UAAU,EACV,MAAM,EACN,eAAe,CAChB;KACF,CAAC,CACwC,CAAC;IAC7C,OAAO;QACL,OAAO;QACP,+EAA+E;QAC/E,wCAAwC;QACxC,MAAM;QACN,YAAY,EAAE,QAAQ,CAAC,aAAa,IAAI,sCAA8B;QACtE,SAAS,EAAE,QAAQ,CAAC,UAAU,IAAI,mCAA2B;QAC7D,YAAY,EAAE,QAAQ,CAAC,aAAa,IAAI,sCAA8B;QACtE,eAAe,EAAE,QAAQ,CAAC,iBAAiB,IAAI,0CAAkC;QACjF,iBAAiB,EAAE,QAAQ,CAAC,mBAAmB,IAAI,4CAAoC;QACvF,UAAU;QACV,KAAK;QACL,cAAc,EAAE,MAAM,CAAC,gBAAgB,IAAI,gCAAwB;QACnE,mBAAmB,EAAE,yBAAyB,CAAC,MAAM,CAAC;QACtD,mBAAmB,EAAE,MAAM,CAAC,qBAAqB,IAAI,qCAA6B;QAClF,gBAAgB,EAAE,MAAM,CAAC,mBAAmB,IAAI,mCAA2B;QAC3E,mBAAmB,EAAE,MAAM,CAAC,sBAAsB,IAAI,sCAA8B;QACpF,sBAAsB,EAAE,QAAQ,CAAC,yBAAyB,IAAI,yCAAiC;KAChG,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAC1B,IAAkC,EAClC,IAAe,EACf,eAAkC,EAClC,kBAA8D,EAC9D,cAAsB,EACtB,eAAkC;IAElC,OAAO;QACL,uEAAuE;QACvE,8EAA8E;QAC9E,6EAA6E;QAC7E,eAAe,EAAE,mBAAmB,CAAC,IAAI,EAAE,OAAO,IAAI,eAAe,EAAE,eAAe,CAAC;QACvF,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,kBAAkB,CAAC,IAAI,CAAC;QAC9C,0EAA0E;QAC1E,qEAAqE;QACrE,mEAAmE;QACnE,oCAAoC;QACpC,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc;KAC9F,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,yBAAyB,CAAC,MAAmB;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,IAAI,gCAAwB,CAAC;IACrE,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CACjC,MAAM,CAAC,OAAO,CAAC,sCAA8B,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAClE,KAAK;QACL,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC;KACvB,CAAC,CACH,CAAC;IACF,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,sBAAsB,EAAE,CAAC;AACrE,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,oBAAoB,CAAC,QAA0B,EAAE,KAAoB;IACnF,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC;QACzE,OAAO,QAAQ,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,QAAQ,CAAC,cAAc,CAAC;AACjC,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CACjC,QAA0B,EAC1B,KAAoB,EACpB,QAAuB;IAEvB,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACtD,OAAO,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC;AAC1F,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAClC,QAA2B,EAC3B,KAAoB,EACpB,KAAa;IAEb,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,sDAAsD;gBACtD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC1E,SAAS;YACX,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAC/B,QAA2B,EAC3B,IAAe,EACf,KAAa,EACb,UAAsD;IAEtD,OAAO,oBAAoB,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC;AACzE,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAC9B,QAAyC,EACzC,IAAe,EACf,KAAa;IAEb,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,OAAO,oBAAoB,CAAC,YAAY,CAAC,eAAe,EAAE,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACvF,CAAC;AAQD,gMAAgM;AAChM,SAAgB,gBAAgB,CAC9B,QAAyC,EACzC,IAAe,EACf,KAAa;IAEb,OAAO,EAAE,GAAG,EAAE,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;AAC7F,CAAC;AAcD;;;;;;GAMG;AACH,SAAgB,aAAa,CAC3B,QAAyC;IAEzC,OAAO,MAAM,CAAC,WAAW,CACvB,kBAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACvB,IAAI;QACJ;YACE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACnE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK;SAClC;KACF,CAAC,CACgC,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,KAAsC;IACpE,OAAO,kBAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,GAAG,EAAE,CAAC,CAAC,IAAI,CAC9F,GAAG,CACJ,CAAC;AACJ,CAAC;AAED,oLAAoL;AACpL,SAAgB,qBAAqB,CAAC,KAAgB;IACpD,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/F,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CAAC,KAAa,EAAE,GAAW,EAAE,SAAkB;IAChF,MAAM,QAAQ,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,6BAA6B,SAAS,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3F,OAAO,CACL,iCAAiC,GAAG,yBAAyB,KAAK,GAAG,QAAQ,yBAAyB;QACtG,+DAA+D;QAC/D,GAAG,GAAG,mFAAmF;QACzF,6FAA6F,KAAK,GAAG;QACrG,wBAAwB,GAAG,oEAAoE;QAC/F,kDAAkD;QAClD,+BAA+B,GAAG,6DAA6D;QAC/F,gGAAgG;QAChG,uEAAuE;QACvE,uCAAuC;QACvC,uEAAuE,CACxE,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,QAAgB,EAAE,KAAa,EAAE,GAAG,GAAG,CAAC,EAAE,SAAkB;IACtF,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1D,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,OAAO,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7F,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,iBAAiB,CAC/B,QAAgB,EAChB,KAAa,EACb,EAAU,EACV,OAAe,EACf,GAAG,GAAG,CAAC,EACP,SAAkB;IAElB,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IACvE,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,OAAO,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC7F,CAAC;AAED;;;;;;;;;;GAUG;AACH;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,CACL,KAAK;QACH,sGAAsG;SACrG,OAAO,CAAC,wBAAwB,EAAE,GAAG,CAAC;SACtC,KAAK,CAAC,CAAC,EAAE,sBAAsB,CAAC,CACpC,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc,CAC5B,QAAgB,EAChB,KAAa,EACb,KAAa,EACb,KAAwB;IAExB,MAAM,OAAO,GAAG,kBAAkB,CAAC;IACnC,MAAM,QAAQ,GACZ,KAAK,CAAC,MAAM,GAAG,CAAC;QACd,CAAC,CAAC,KAAK;aACF,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC;aAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;aAC7B,IAAI,CAAC,IAAI,CAAC;QACf,CAAC,CAAC,mBAAmB,CAAC;IAC1B,MAAM,SAAS,GACb,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,MAAM,GAAG,gBAAgB,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5F,OAAO,cAAc,CAAC,QAAQ,EAAE;QAC9B,KAAK;QACL,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;QACrB,KAAK,EAAE,QAAQ,GAAG,SAAS;KAC5B,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,iBAAiB,CAC/B,QAAgB,EAChB,KAAa,EACb,KAAa,EACb,QAAgB;IAEhB,OAAO,cAAc,CAAC,QAAQ,EAAE;QAC9B,KAAK;QACL,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC;QAChC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC;KACvC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB,CAClC,QAAgB,EAChB,KAAa,EACb,MAAc,EACd,OAA0B,EAC1B,QAAgB;IAEhB,OAAO,cAAc,CAAC,QAAQ,EAAE;QAC9B,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC;QAChC,MAAM;QACN,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAC1B,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC;KACvC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAgB,sBAAsB,CACpC,QAAgB,EAChB,KAAa,EACb,MAAc,EACd,EAAU;IAEV,OAAO,cAAc,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;AACpF,CAAC;AAED,2EAA2E;AAC3E,SAAgB,YAAY,CAAC,IAAe;IAC1C,OAAO,mBAAW,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,UAAkB;IAC9C,OAAO,kBAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;AACxC,CAAC;AAgCD,+EAA+E;AAC/E,SAAgB,WAAW,CAAC,IAAY;IACtC,OAAO,IAAA,sBAAY,EAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAAC,OAAe,EAAE,IAAY;IAC3D,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,kBAAkB,CAChC,OAAe,EACf,OAAe,EACf,MAAc,EACd,KAAa;IAEb,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC,SAAS,OAAO,EAAE,CAAC,KAAK,MAAM,IAAI,KAAK,MAAM,CAAC,CAAC;AAC1F,CAAC;AAED,SAAgB,gBAAgB,CAAC,OAAe,EAAE,OAAe;IAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC,SAAS,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,gBAAgB,CAC9B,OAAe,EACf,OAAe,EACf,YAAoB,EACpB,KAAa;IAEb,OAAO,IAAI,CAAC,IAAI,CACd,OAAO,EACP,GAAG,WAAW,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,IAAA,sBAAY,EAAC,YAAY,CAAC,IAAI,KAAK,MAAM,CACrF,CAAC;AACJ,CAAC;AAED,SAAgB,kBAAkB,CAAC,OAAe,EAAE,OAAe;IACjE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC,SAAS,OAAO,EAAE,CAAC,aAAa,CAAC,CAAC;AAC7E,CAAC;AAED,SAAgB,eAAe,CAAC,OAAe,EAAE,OAAe,EAAE,QAAgB;IAChF,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC,SAAS,OAAO,EAAE,CAAC,QAAQ,QAAQ,MAAM,CAAC,CAAC;AACtF,CAAC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,IAAY;IACzC,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IAChC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,0EAA0E;QAC1E,kEAAkE;QAClE,kEAAkE;QAClE,sEAAsE;QACtE,uDAAuD;QACvD,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;QACjD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,wCAAwC,IAAI,KAAK,IAAI,6BAA6B;gBAChF,yCAAyC,CAC5C,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,2EAA2E;AAC9D,QAAA,gBAAgB,GAAG,GAAG,CAAC;AACvB,QAAA,gBAAgB,GAAG,IAAI,CAAC;AAErC;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,GAAW;IACvC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC;QAC3D,sEAAsE;QACtE,sDAAsD;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChD,8EAA8E;QAC9E,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,eAAe,CAAC,GAAY;IAC1C,uEAAuE;IACvE,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEhD,qEAAqE;IACrE,SAAS,oBAAoB,CAAC,GAAW,EAAE,aAAiC;QAC1E,MAAM,QAAQ,GAAG,aAAa,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzD,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,CAAC,qCAAqC;QAC9E,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC,CAAC,wDAAwD;QAC3F,OAAO,OAAO,KAAK,QAAQ,CAAC;IAC9B,CAAC;IAED,OAAO;QACL,KAAK,CAAC,GAAa,EAAE,MAAc,EAAE,OAAe;YAClD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACtE,sEAAsE;YACtE,mEAAmE;YACnE,8DAA8D;YAC9D,wEAAwE;YACxE,qEAAqE;YACrE,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC7C,IAAI,CAAC;gBACH,qEAAqE;gBACrE,kEAAkE;gBAClE,kEAAkE;gBAClE,mEAAmE;gBACnE,qEAAqE;gBACrE,mDAAmD;gBACnD,kEAAkE;gBAClE,mEAAmE;gBACnE,mDAAmD;gBACnD,IAAI,CAAC;oBACH,EAAE,CAAC,SAAS,CACV,GAAG,EACH,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,2BAAoB,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CACzF,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,qEAAqE;oBACrE,mEAAmE;oBACnE,4DAA4D;oBAC5D,mEAAmE;oBACnE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,iDAAiD,OAAO,KAAM,GAAa,CAAC,OAAO,IAAI,CACxF,CAAC;gBACJ,CAAC;gBACD,MAAM,KAAK,GAAG,IAAA,0BAAK,EAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;oBACxC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACvB,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC;iBAC1B,CAAC,CAAC;gBACH,oEAAoE;gBACpE,mEAAmE;gBACnE,yEAAyE;gBACzE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;oBACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;gBAC9E,CAAC,CAAC,CAAC;gBACH,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;oBACzB,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;oBAClC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC1B,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBACpB,CAAC;gBACD,6DAA6D;gBAC7D,mEAAmE;gBACnE,iEAAiE;gBACjE,gCAAgC;gBAChC,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;oBAC5B,IAAI,CAAC;wBACH,EAAE,CAAC,SAAS,CACV,GAAG,EACH,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,2BAAoB,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CACtH,CAAC;oBACJ,CAAC;oBAAC,MAAM,CAAC;wBACP,+DAA+D;wBAC/D,mEAAmE;oBACrE,CAAC;gBACH,CAAC;gBACD,KAAK,CAAC,KAAK,EAAE,CAAC;gBACd,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;oBAC5B,MAAM,IAAI,KAAK,CACb,oBAAoB,GAAG,CAAC,CAAC,CAAC,gCAAgC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAC3E,CAAC;gBACJ,CAAC;gBACD,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,KAAK,KAAK,IAAI;oBAAE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACxD,OAAO,KAAK,CAAC,GAAG,CAAC;YACnB,CAAC;oBAAS,CAAC;gBACT,wEAAwE;gBACxE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,GAAW,EAAE,aAAsB;YACtC,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,CAAC;gBAC9C,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC1B,OAAO,KAAK,CAAC,CAAC,oDAAoD;YACpE,CAAC;YACD,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBAC7B,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC1B,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAW,EAAE,aAAsB;YACzC,IAAI,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBACrB,OAAO,oBAAoB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;YAClD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAQ,GAA6B,CAAC,IAAI,KAAK,OAAO,CAAC;YACzD,CAAC;QACH,CAAC;QACD,YAAY,CAAC,GAAW;YACtB,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;KACF,CAAC;AACJ,CAAC"}
package/dist/engine.d.ts CHANGED
@@ -68,7 +68,7 @@
68
68
  */
69
69
  import type { BatchDispatchDeps } from './batch-dispatch';
70
70
  import { type SpawnDeps } from './dispatch';
71
- import type { RunFencer } from './fence';
71
+ import type { RunFenceBinder, RunFenceReleaser, RunFencer } from './fence';
72
72
  import { type GroundTruth } from './groundtruth';
73
73
  import { type Journal } from './journal';
74
74
  import type { SchedStore } from './persist';
@@ -90,6 +90,21 @@ export interface EngineDeps {
90
90
  * existed, journaling `fence-failed` so the gap is visible rather than silent.
91
91
  */
92
92
  fencer?: RunFencer;
93
+ /**
94
+ * Binds a just-written fence to the takeover's spawned process (#683 AC2) — pid +
95
+ * `/proc` start-time, so every later reader of the trail can tell a live owner from a
96
+ * ghost whose release was missed. Optional like `fencer`: an engine without one
97
+ * leaves its fences unbound, which reads fail-closed (an unbound fence still fences),
98
+ * and journals `fence-bind-failed` so the gap is visible.
99
+ */
100
+ fenceBinder?: RunFenceBinder;
101
+ /**
102
+ * Releases a run's fences when the engine detects the owning dispatch's exit
103
+ * (#683 AC1) — the `exit-detected` hook. Optional like `fencer`: an engine without
104
+ * one never releases, and successors then rely on the bind-based stale-on-read
105
+ * backstop; failures journal `fence-release-failed`.
106
+ */
107
+ fenceReleaser?: RunFenceReleaser;
93
108
  /**
94
109
  * Home directory `runs.jsonl` telemetry (#524) is written under —
95
110
  * `<homeDir>/.dossier/runs.jsonl`, the same file `cli`'s `ai-dossier run`
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
package/dist/engine.js CHANGED
@@ -74,6 +74,7 @@ const core_1 = require("@ai-dossier/core");
74
74
  const batch_dispatch_1 = require("./batch-dispatch");
75
75
  const dispatch_1 = require("./dispatch");
76
76
  const dispatch_health_1 = require("./dispatch-health");
77
+ const fence_1 = require("./fence");
77
78
  const groundtruth_1 = require("./groundtruth");
78
79
  const journal_1 = require("./journal");
79
80
  const labels_1 = require("./labels");
@@ -458,9 +459,15 @@ function spawnAndRecord(ctx, state, unit, slot, opts) {
458
459
  return failUnit(ctx, state, unit, `spawn-error: ${err.message}`, opts.failOpts);
459
460
  }
460
461
  const now = ctx.deps.now();
462
+ const pidStart = ctx.deps.spawnDeps.processStart(pid);
463
+ // #683 AC2: the takeover owns a fence from the moment it was fenced in — bind the
464
+ // fence to this process so later reads can verify the owner is real. Runs BEFORE the
465
+ // patch/transition below (which don't touch run_id/fence_phase), against the
466
+ // PRE-spawn slot snapshot that already carries this dispatch's fence coordinates.
467
+ bindFenceToSpawn(ctx, unit, (0, journal_1.issueOfUnit)(unit) ?? 0, slot, pid, pidStart);
461
468
  const patch = {
462
469
  pid,
463
- pid_start: ctx.deps.spawnDeps.processStart(pid),
470
+ pid_start: pidStart,
464
471
  phase: opts.phase,
465
472
  last_progress_at: now.toISOString(),
466
473
  // #524: distinct from last_progress_at, which later progress signals
@@ -515,7 +522,12 @@ function spawnUnit(ctx, state, unit) {
515
522
  // replaced is refused. A first dispatch is generation 0 and reads as it always did.
516
523
  // The tier's own resolved prompt (#527) — falls back to the global
517
524
  // dispatch.prompt when the tier has no override.
518
- prompt: (0, dispatch_1.buildPrompt)(ctx.dispatch.tiers[entry.tier].prompt, issue, slot.gen),
525
+ prompt: (0, dispatch_1.buildPrompt)(ctx.dispatch.tiers[entry.tier].prompt, issue, slot.gen,
526
+ // #683 AC6: the takeover is told its slot identity alongside the generation —
527
+ // the same label the fence announced and the bind names (one spelling,
528
+ // `takeoverLabelFor`). Descriptive only: ownership is decided by run id +
529
+ // generation, never by matching this label (AC7).
530
+ slot.gen > 0 ? (0, fence_1.takeoverLabelFor)(slot.id, slot.recoveries) : undefined),
519
531
  phase: 'gate',
520
532
  ...(slot.gen > 0 ? { journalExtra: { detail: `takeover gen=${slot.gen}` } } : {}),
521
533
  });
@@ -547,7 +559,9 @@ function spawnReportAgent(ctx, state, unit) {
547
559
  // (#504): a report slot is fenced by the same ladder, and a report agent that did
548
560
  // not know its generation would have its `report done` milestone refused by the
549
561
  // CLI — recovering forever on a PR that already merged.
550
- prompt: (0, dispatch_1.buildReportPrompt)(ctx.dispatch.reportPrompt, issue, entry.pr, entry.cleanup, slot.gen),
562
+ prompt: (0, dispatch_1.buildReportPrompt)(ctx.dispatch.reportPrompt, issue, entry.pr, entry.cleanup, slot.gen,
563
+ // #683 AC6, same rule as the cycle-agent prompt above.
564
+ slot.gen > 0 ? (0, fence_1.takeoverLabelFor)(slot.id, slot.recoveries) : undefined),
551
565
  phase: 'report',
552
566
  // Merged-aware: the PR is merged — a report spawn failure never blocks
553
567
  // dependents (gating already released at `shipped`).
@@ -660,7 +674,7 @@ const RUN_ID_FOR_ISSUE_RE = /^r-(\d+)-[0-9a-f]{4,}$/;
660
674
  const PHASE_TOKEN_RE = /^[a-z][a-z0-9-]{0,31}$/;
661
675
  /**
662
676
  * Post the takeover record for a unit about to be redispatched (#504 AC1), returning the
663
- * generation the fence installed — or null when no fence could be written.
677
+ * fence it installed — or null when no fence could be written.
664
678
  *
665
679
  * Every null is journaled as `fence-failed` WITH its cause, and every one is DEGRADED
666
680
  * rather than fatal:
@@ -699,7 +713,11 @@ function writeFence(ctx, unit, issue, slot, truth) {
699
713
  // is preferred over spending the attempt on it.
700
714
  const claimed = truth.milestone?.phase ?? '';
701
715
  const phase = PHASE_TOKEN_RE.test(claimed) ? claimed : (slot.phase ?? 'gate');
702
- const takeover = `slot-${slot.id}-r${slot.recoveries + 1}`;
716
+ // The label of the dispatch ABOUT to spawn: `recoveries + 1` here, because the
717
+ // slot's counter is bumped by this recovery's transition right after. Every later
718
+ // reader of the same dispatch (the spawn-path bind, the exit-path release) derives
719
+ // the label from the BUMPED counter via `takeoverLabelFor`, so both spellings agree.
720
+ const takeover = (0, fence_1.takeoverLabelFor)(slot.id, slot.recoveries + 1);
703
721
  const outcome = ctx.deps.fencer(issue, run, phase, takeover);
704
722
  if (!outcome.ok) {
705
723
  return failed(`${outcome.reason} — redispatching at gen=${slot.gen}`);
@@ -708,7 +726,60 @@ function writeFence(ctx, unit, issue, slot, truth) {
708
726
  slot: slot.id,
709
727
  detail: `${run} gen=${outcome.gen} takeover=${takeover}`,
710
728
  });
711
- return outcome.gen;
729
+ return { gen: outcome.gen, run, phase, takeover };
730
+ }
731
+ /**
732
+ * Bind the slot's fence to the process just spawned for its takeover (#683 AC2).
733
+ *
734
+ * Called from `spawnAndRecord` right after the spawn resolved, while pid and
735
+ * `/proc` start-time are in hand: the bind is what lets every later READER of the trail
736
+ * (`runstate check`, `post`'s guard) tell a live owner from a ghost whose release was
737
+ * missed. Best-effort by design — no binder configured (an older engine), no fence on
738
+ * this slot (`gen === 0`), or a failed post all degrade to an UNBOUND fence, which
739
+ * reads fail-closed (still fences) exactly as fences did before #683; a failure
740
+ * journals `fence-bind-failed` so the gap is visible.
741
+ */
742
+ function bindFenceToSpawn(ctx, unit, issue, slot, pid, pidStart) {
743
+ const binder = ctx.deps.fenceBinder;
744
+ if (binder === undefined || slot.gen <= 0 || slot.run_id === null)
745
+ return;
746
+ const phase = slot.fence_phase ?? slot.phase ?? 'gate';
747
+ const takeover = (0, fence_1.takeoverLabelFor)(slot.id, slot.recoveries);
748
+ const outcome = binder(issue, slot.run_id, phase, takeover, slot.gen, pid, pidStart);
749
+ journal(ctx, outcome.ok ? 'fence-bound' : 'fence-bind-failed', unit, {
750
+ slot: slot.id,
751
+ pid,
752
+ fence_gen: slot.gen,
753
+ detail: outcome.ok
754
+ ? `${slot.run_id} gen=${slot.gen} owner pid=${pid}${pidStart !== null ? ` pid_start=${pidStart}` : ''}`
755
+ : outcome.reason,
756
+ });
757
+ }
758
+ /**
759
+ * Release the slot's fence because its owning dispatch ENDED (#683 AC1) — the
760
+ * `exit-detected` hook, called only from `reconcileRunning`'s dead-pid branch, the one
761
+ * place the engine already learns "this run's owner just ended", abnormally or not.
762
+ *
763
+ * Best-effort like the bind: no releaser configured, no fence on the slot, or a failed
764
+ * post all leave the fence on the trail, and successors then fall back to the
765
+ * bind-based stale-on-read check — the belt-and-suspenders the issue asks for. A
766
+ * failure journals `fence-release-failed`; a success journals the release so the trail
767
+ * reads "owner ended, fence lifted" without diffing comments.
768
+ */
769
+ function releaseFenceOnExit(ctx, unit, issue, slot) {
770
+ const releaser = ctx.deps.fenceReleaser;
771
+ if (releaser === undefined || slot.gen <= 0 || slot.run_id === null)
772
+ return;
773
+ const phase = slot.fence_phase ?? slot.phase ?? 'gate';
774
+ const takeover = (0, fence_1.takeoverLabelFor)(slot.id, slot.recoveries);
775
+ const outcome = releaser(issue, slot.run_id, phase, takeover, slot.gen);
776
+ journal(ctx, outcome.ok ? 'fence-released' : 'fence-release-failed', unit, {
777
+ slot: slot.id,
778
+ fence_gen: slot.gen,
779
+ detail: outcome.ok
780
+ ? `${slot.run_id} gen=${slot.gen} released — owner exit detected`
781
+ : outcome.reason,
782
+ });
712
783
  }
713
784
  /**
714
785
  * The end of the ladder: the unit has no stronger tier left, so it fails —
@@ -822,6 +893,9 @@ options = {}) {
822
893
  const slot = slotOf(state, unit);
823
894
  if (!entry || !slot)
824
895
  return state;
896
+ // #683 AC3: a `deferred-to-owner` cause arrives AFTER the agent's exit was
897
+ // already detected and recorded by the dead-pid branch of `reconcileRunning`
898
+ // — same contract as `verify-incomplete` (#524), never re-recorded here.
825
899
  killUnitAgent(ctx, state, unit);
826
900
  // #524: only the STALL path kills a still-live, not-yet-recorded agent —
827
901
  // `causeEvent === 'verify-incomplete'`/`'dispatch-failure'` arrive from
@@ -840,10 +914,11 @@ options = {}) {
840
914
  if (escalate) {
841
915
  const escalated = report ? (0, dispatch_1.reportTierFor)(slot.recoveries + 1) : (0, dispatch_1.escalateTier)(entry.tier);
842
916
  if (slot.recoveries >= types_1.ESCALATION_CAP || escalated === null) {
843
- // #629: unreachable with `causeEvent === 'dispatch-failure'` — that
844
- // cause always passes `escalate: false` above, so this branch (and the
845
- // narrower `causeEvent` type `failOrAdoptOpenPr` declares) is never
846
- // actually asked to terminally fail a unit over a provider wall.
917
+ // #629: unreachable with `causeEvent === 'dispatch-failure'` or
918
+ // `'deferred-to-owner'` (#683) — both causes always pass
919
+ // `escalate: false` above, so this branch (and the narrower
920
+ // `causeEvent` type `failOrAdoptOpenPr` declares) is never actually
921
+ // asked to terminally fail a unit over a provider wall or a defer.
847
922
  return failOrAdoptOpenPr(ctx, state, unit, slot, report, causeEvent, cause, evidence);
848
923
  }
849
924
  resolvedTier = escalated;
@@ -863,11 +938,17 @@ options = {}) {
863
938
  let next = (0, state_1.transitionSlot)(state, slot.id, 'recovering', {
864
939
  pid: null,
865
940
  recoveries: escalate ? slot.recoveries + 1 : slot.recoveries,
866
- gen: fenced ?? slot.gen,
941
+ gen: fenced !== null ? fenced.gen : slot.gen,
867
942
  // Only a fence that actually landed starts the short takeover watch: an
868
943
  // unfenced redispatch is already degraded, and cutting its allowance down
869
944
  // would compound one failure with another.
870
945
  fenced_at: fenced === null ? null : now.toISOString(),
946
+ // #683: record the fence's trail coordinates so the spawn-path bind and the
947
+ // exit-path release can name the same record without a trail read. A degraded
948
+ // fence keeps whatever the slot already recorded (the same run's earlier fence,
949
+ // if any — the coordinates are per-dispatch, and the spawn that follows an
950
+ // unfenced recovery is not bound to anything).
951
+ ...(fenced !== null ? { run_id: fenced.run, fence_phase: fenced.phase } : {}),
871
952
  }, now);
872
953
  if (!report && escalate) {
873
954
  next = {
@@ -1269,10 +1350,15 @@ function journalStaleMilestoneIfIgnored(ctx, state, unit, slot, truth, verifiedC
1269
1350
  });
1270
1351
  return (0, state_1.patchSlot)(state, slot.id, { stale_milestone_ignored_for: slot.spawned_at }, now);
1271
1352
  }
1272
- const NO_DISPATCH_SIGNALS = { lastTool: null, apiError: null };
1353
+ const NO_DISPATCH_SIGNALS = {
1354
+ lastTool: null,
1355
+ apiError: null,
1356
+ fenceAbort: null,
1357
+ };
1273
1358
  /**
1274
- * Read THIS dispatch's last tool call and API-error classification (#591,
1275
- * #620, #629) from its log slice — a pure, side-effect-free parse, safe to
1359
+ * Read THIS dispatch's last tool call, API-error classification (#591,
1360
+ * #620, #629), and fence-abort evidence (#683 AC3) from its log slice — a
1361
+ * pure, side-effect-free parse, safe to
1276
1362
  * call from any slot status and any number of times: unlike
1277
1363
  * `recordDispatchRunLog` below, it writes nothing to `runs.jsonl`, so it
1278
1364
  * carries no exactly-once constraint. Exists because a `verify-incomplete`/
@@ -1281,12 +1367,23 @@ const NO_DISPATCH_SIGNALS = { lastTool: null, apiError: null };
1281
1367
  * then the slot has moved past `running` and `recordDispatchRunLog`'s guard
1282
1368
  * refuses to re-read, but the dispatch's log file is static once the agent
1283
1369
  * has exited, so re-parsing it here yields the same answer every time.
1370
+ *
1371
+ * `run` is the trail run id the fence check must name to count as THIS
1372
+ * dispatch's checkpoint: the slot's own `run_id` when it holds one, else the
1373
+ * trail's current run (a gen-0 dispatch fenced out by a recovery's fence —
1374
+ * the #4153 shape). Doc text quoting HISTORICAL run ids never matches, which
1375
+ * is what keeps the defer classification from being faked by an agent that
1376
+ * merely read `docs/agent-traps.md`.
1284
1377
  */
1285
- function readDispatchSignalsForSlot(ctx, slot, unit) {
1378
+ function readDispatchSignalsForSlot(ctx, slot, unit, run) {
1286
1379
  if (slot.spawned_at === null)
1287
1380
  return NO_DISPATCH_SIGNALS;
1288
1381
  const { content } = dispatchLogSlice(ctx, slot, unit);
1289
- return { lastTool: (0, core_1.parseLastToolUse)(content), apiError: (0, core_1.parseDispatchApiError)(content) };
1382
+ return {
1383
+ lastTool: (0, core_1.parseLastToolUse)(content),
1384
+ apiError: (0, core_1.parseDispatchApiError)(content),
1385
+ fenceAbort: (0, run_log_1.parseFenceAbort)(content, run),
1386
+ };
1290
1387
  }
1291
1388
  /**
1292
1389
  * THIS dispatch's slice of the per-unit log: path, start offset, contents.
@@ -1318,7 +1415,12 @@ function dispatchLogSlice(ctx, slot, unit) {
1318
1415
  * `running` and actually spawned), not by the call sites' ordering — two of
1319
1416
  * the four reach slots in any non-idle status.
1320
1417
  */
1321
- function recordDispatchRunLog(ctx, state, slot, unit) {
1418
+ function recordDispatchRunLog(ctx, state, slot, unit,
1419
+ // #683 AC3: the trail run id a fence-abort marker in THIS dispatch's log slice must
1420
+ // name to count as evidence (callers with a polled truth pass its run; a kill whose
1421
+ // signals are discarded passes ''). Doc text quotes historical run ids, so without
1422
+ // this match an agent that merely READ docs could be classified as having deferred.
1423
+ run = '') {
1322
1424
  // Enforce the once-per-dispatch invariant HERE rather than restating it in
1323
1425
  // prose at four call sites (#524 review). `blockTransitiveDependents` and
1324
1426
  // `enterRecovery` reach slots in any non-idle status: a slot already moved
@@ -1375,8 +1477,15 @@ function recordDispatchRunLog(ctx, state, slot, unit) {
1375
1477
  // #591: the last tool this dispatch called, so an unverified exit attributes to a
1376
1478
  // concrete cause (e.g. `Monitor`) without opening the transcript — see `enterRecovery`.
1377
1479
  // #629: whether this SAME dispatch was a confirmed provider API error — see
1378
- // `completeUnitOrRecover`.
1379
- return { lastTool: (0, core_1.parseLastToolUse)(logContent), apiError: (0, core_1.parseDispatchApiError)(logContent) };
1480
+ // `completeUnitOrRecover`. #683 AC3: whether it ended because a fence told it to —
1481
+ // `run` names the trail run id the fence check must have answered to; with no run
1482
+ // known, no fence-abort evidence can be this dispatch's own and the parse is skipped.
1483
+ const fenceRun = run !== '' ? run : (slot.run_id ?? '');
1484
+ return {
1485
+ lastTool: (0, core_1.parseLastToolUse)(logContent),
1486
+ apiError: (0, core_1.parseDispatchApiError)(logContent),
1487
+ fenceAbort: (0, run_log_1.parseFenceAbort)(logContent, fenceRun),
1488
+ };
1380
1489
  }
1381
1490
  /** Reconcile one running slot against its polled ground truth. */
1382
1491
  function reconcileRunning(ctx, state, slot, truth, unit) {
@@ -1385,7 +1494,19 @@ function reconcileRunning(ctx, state, slot, truth, unit) {
1385
1494
  // is DETECTED, never trusted as completion (AC2/AC3).
1386
1495
  if (slot.pid !== null && !ctx.deps.spawnDeps.isAlive(slot.pid, slot.pid_start ?? undefined)) {
1387
1496
  journal(ctx, 'exit-detected', unit, { pid: slot.pid, slot: slot.id });
1388
- const signals = recordDispatchRunLog(ctx, state, slot, unit);
1497
+ // #683 AC1: the owning run just ended — release its fence here, BEFORE the
1498
+ // classification below decides between completion and a (re-fencing) recovery, so
1499
+ // no path can leave a dead run's fence governing the trail. A recovery re-fences
1500
+ // at gen+1 right after, which dominates the released generation as before.
1501
+ releaseFenceOnExit(ctx, unit, (0, journal_1.issueOfUnit)(unit) ?? 0, slot);
1502
+ // #683 AC3: the defer classification must recognize THIS dispatch's own
1503
+ // checkpoint output. A gen>0 takeover's slot carries its fence's run_id; a
1504
+ // gen-0 dispatch (re-enqueued fresh, fenced out by an earlier recovery —
1505
+ // the #4153 shape) carries none, so the trail's current run — the run id
1506
+ // the checkpoint instruction tells every dispatch to check under — is the
1507
+ // match key. Wrong-run markers never match (docs quote historical ids),
1508
+ // which is what keeps the classification unfakeable by read text alone.
1509
+ const signals = recordDispatchRunLog(ctx, state, slot, unit, truth.milestone?.run ?? '');
1389
1510
  const exited = (0, state_1.transitionSlot)(state, slot.id, 'exited', {}, now);
1390
1511
  return completeUnitOrRecover(ctx, exited, unit, truth, 'verify-complete', signals);
1391
1512
  }
@@ -1608,6 +1729,27 @@ dispatchSignals = NO_DISPATCH_SIGNALS) {
1608
1729
  return enterRecovery(ctx, recorded, unit, 'dispatch-failure', (0, dispatch_health_1.dispatchApiErrorDetail)(resolved.apiError), truth, (0, dispatch_health_1.dispatchApiErrorFields)(resolved.apiError), { escalate: false });
1609
1730
  }
1610
1731
  const suspect = msSinceLastProgress(slot, now) < types_1.SUSPECT_DISPATCH_WINDOW_MS;
1732
+ // #683 AC3: the dispatch's own log carries its supersession-checkpoint
1733
+ // verdict for THIS trail run — the agent checked, found an owner, and
1734
+ // stepped aside. That is a deliberate, CORRECT no-op: never an
1735
+ // `unverified-exit`, never an escalation rung. Classified deterministically
1736
+ // off the CLI's exact output (the #629 lesson — never a heuristic on exit
1737
+ // codes), recorded as a HEALTHY dispatch (no `suspect-dispatch`), and
1738
+ // redispatched at the same tier via the #629 unescalated rail — the fence
1739
+ // `enterRecovery` writes lands at the next generation and its takeover gets
1740
+ // the pid bind, so the #4153 livelock self-heals in one step instead of
1741
+ // climbing to `unverified-exit-at-strongest-tier`. Checked AFTER
1742
+ // `recordDispatchApiError`'s branch: a confirmed provider wall (num_turns 1,
1743
+ // no check output) cannot also be a defer, and its rail owns that shape.
1744
+ if (resolved.fenceAbort !== null) {
1745
+ const recorded = recordDispatchOutcome(ctx, next, unit, slot, false);
1746
+ return enterRecovery(ctx, recorded, unit, 'deferred-to-owner', 'deferred to the fence owner — deliberate supersession-checkpoint abort, no escalation rung consumed', truth, {
1747
+ fence_gen: resolved.fenceAbort.gen,
1748
+ ...(resolved.fenceAbort.takeover !== null
1749
+ ? { fence_takeover: resolved.fenceAbort.takeover }
1750
+ : {}),
1751
+ }, { escalate: false });
1752
+ }
1611
1753
  next = recordDispatchOutcome(ctx, next, unit, slot, suspect);
1612
1754
  return enterRecovery(ctx, next, unit, 'verify-incomplete', 'unverified-exit', truth, {
1613
1755
  observed: truth.milestone
@@ -1683,7 +1825,7 @@ function reconcileSlots(ctx, state, polled) {
1683
1825
  // whatever `reconcileRunning` saw. Passed as a thunk so the read
1684
1826
  // happens only on the tick that actually reaches the unverified-exit
1685
1827
  // decision, not on every tick an outage holds the slot here.
1686
- next = completeUnitOrRecover(ctx, next, unit, truth, 'verify-complete', () => readDispatchSignalsForSlot(ctx, slot, unit));
1828
+ next = completeUnitOrRecover(ctx, next, unit, truth, 'verify-complete', () => readDispatchSignalsForSlot(ctx, slot, unit, truth.milestone?.run ?? ''));
1687
1829
  break;
1688
1830
  case 'recovering':
1689
1831
  next = reconcileRecovering(ctx, next, unit);