dorfl 0.11.0 → 0.11.2

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 (72) hide show
  1. package/dist/arbiter-refs.d.ts +139 -0
  2. package/dist/arbiter-refs.d.ts.map +1 -0
  3. package/dist/arbiter-refs.js +114 -0
  4. package/dist/arbiter-refs.js.map +1 -0
  5. package/dist/cli.d.ts.map +1 -1
  6. package/dist/cli.js +32 -18
  7. package/dist/cli.js.map +1 -1
  8. package/dist/config.d.ts +73 -12
  9. package/dist/config.d.ts.map +1 -1
  10. package/dist/config.js +28 -0
  11. package/dist/config.js.map +1 -1
  12. package/dist/do-config.d.ts +21 -1
  13. package/dist/do-config.d.ts.map +1 -1
  14. package/dist/do-config.js +19 -0
  15. package/dist/do-config.js.map +1 -1
  16. package/dist/do.d.ts +14 -2
  17. package/dist/do.d.ts.map +1 -1
  18. package/dist/do.js +108 -14
  19. package/dist/do.js.map +1 -1
  20. package/dist/env-config.d.ts.map +1 -1
  21. package/dist/env-config.js +3 -0
  22. package/dist/env-config.js.map +1 -1
  23. package/dist/harness.d.ts +29 -0
  24. package/dist/harness.d.ts.map +1 -1
  25. package/dist/harness.js.map +1 -1
  26. package/dist/ledger-write.d.ts.map +1 -1
  27. package/dist/ledger-write.js +38 -3
  28. package/dist/ledger-write.js.map +1 -1
  29. package/dist/needs-attention.d.ts +43 -0
  30. package/dist/needs-attention.d.ts.map +1 -1
  31. package/dist/needs-attention.js +211 -50
  32. package/dist/needs-attention.js.map +1 -1
  33. package/dist/pi-harness.d.ts.map +1 -1
  34. package/dist/pi-harness.js +109 -13
  35. package/dist/pi-harness.js.map +1 -1
  36. package/dist/protocol/WORK-CONTRACT.md +11 -2
  37. package/dist/protocol/spec-template.md +1 -1
  38. package/dist/protocol/task-template.md +1 -1
  39. package/dist/reap-agent-tree.d.ts +108 -0
  40. package/dist/reap-agent-tree.d.ts.map +1 -0
  41. package/dist/reap-agent-tree.js +173 -0
  42. package/dist/reap-agent-tree.js.map +1 -0
  43. package/dist/repo-config.d.ts +1 -1
  44. package/dist/repo-config.d.ts.map +1 -1
  45. package/dist/repo-config.js +19 -2
  46. package/dist/repo-config.js.map +1 -1
  47. package/dist/run.d.ts.map +1 -1
  48. package/dist/run.js +4 -3
  49. package/dist/run.js.map +1 -1
  50. package/dist/skills/drive-tasks/SKILL.md +20 -2
  51. package/dist/skills/setup/protocol/WORK-CONTRACT.md +11 -2
  52. package/dist/skills/setup/protocol/spec-template.md +1 -1
  53. package/dist/skills/setup/protocol/task-template.md +1 -1
  54. package/dist/worktree-writer-lock.d.ts +99 -0
  55. package/dist/worktree-writer-lock.d.ts.map +1 -0
  56. package/dist/worktree-writer-lock.js +158 -0
  57. package/dist/worktree-writer-lock.js.map +1 -0
  58. package/package.json +1 -1
  59. package/src/arbiter-refs.ts +222 -0
  60. package/src/cli.ts +57 -17
  61. package/src/config.ts +90 -12
  62. package/src/do-config.ts +38 -0
  63. package/src/do.ts +158 -19
  64. package/src/env-config.ts +3 -0
  65. package/src/harness.ts +30 -0
  66. package/src/ledger-write.ts +41 -5
  67. package/src/needs-attention.ts +282 -59
  68. package/src/pi-harness.ts +109 -15
  69. package/src/reap-agent-tree.ts +221 -0
  70. package/src/repo-config.ts +19 -1
  71. package/src/run.ts +4 -3
  72. package/src/worktree-writer-lock.ts +217 -0
package/dist/config.d.ts CHANGED
@@ -508,9 +508,25 @@ export interface Config {
508
508
  * (`LaunchInput.model`); the ADAPTER decides HOW it reaches its tool — the pi
509
509
  * adapter passes `--model <model>` natively, the null/shell adapter substitutes
510
510
  * a `{model}` placeholder in `agentCmd`. Resolved per-repo like `integration`:
511
- * flag (`--model`) > env > per-repo > global > default (unset).
511
+ * flag (`--model`) > env > per-repo > global > default (unset). The fallback
512
+ * to this field from `buildModel` / `reviewModel` / `taskerLoopModel` is
513
+ * applied AFTER the full precedence chain resolves (in `applyModelFallbacks`),
514
+ * so a per-role knob set at ANY level (even global config) is NEVER reset by a
515
+ * higher-precedence `--model`.
512
516
  */
513
517
  model?: string;
518
+ /**
519
+ * The model the BUILD agent runs on (the builder-specific override of the
520
+ * general `model`). Optional with NO default so "unset" means "inherit the
521
+ * general `model`" (via `applyModelFallbacks`, applied at the resolution FINAL
522
+ * point — after the full flag > env > per-repo > global chain). Carried to the
523
+ * build launch through the same harness seam (`LaunchInput.model`). Resolved
524
+ * per-repo like `model`: flag (`--build-model`) > env (`DORFL_BUILD_MODEL`) >
525
+ * per-repo > global > fallback to `model` > default (unset). DISTINCT from
526
+ * `reviewModel` (Gate 2) and `taskerLoopModel` (the improver loop) — each has
527
+ * its OWN knob and each falls back to `model` independently.
528
+ */
529
+ buildModel?: string;
514
530
  /**
515
531
  * Which harness adapter launches + reports liveness for a job's agent (the
516
532
  * harness seam, ADR §5): `null` (default — shells out to `agentCmd`,
@@ -580,11 +596,14 @@ export interface Config {
580
596
  review: boolean;
581
597
  /**
582
598
  * The model the REVIEW agent runs on (de-correlation from the builder's
583
- * `model`). Optional with NO default so "unset" means "no forced review model"
584
- * (the harness's own default). Carried to the review-agent launch through the
585
- * EXISTING harness seam (`LaunchInput.model` / `substituteModel`) NOT a new
586
- * mechanism. Resolved like `model`: flag (`--review-model`) > env > per-repo >
587
- * global > default (unset). Distinct from the builder's `model`.
599
+ * `buildModel` when explicitly set). Optional with NO default so "unset" means
600
+ * "inherit the general `model`" (via `applyModelFallbacks`, applied at the
601
+ * resolution FINAL point after the full flag > env > per-repo > global chain).
602
+ * Carried to the review-agent launch through the EXISTING harness seam
603
+ * (`LaunchInput.model` / `substituteModel`) NOT a new mechanism. Resolved like
604
+ * `model`: flag (`--review-model`) > env > per-repo > global > fallback to
605
+ * `model` > default (unset). Distinct from the builder's `buildModel` — each
606
+ * has its OWN knob and each falls back to `model` independently.
588
607
  */
589
608
  reviewModel?: string;
590
609
  /**
@@ -630,14 +649,44 @@ export interface Config {
630
649
  taskerLoopMax: number;
631
650
  /**
632
651
  * The model the tasker IMPROVER loop's review agent runs on (de-correlation
633
- * from the tasker). Optional with NO default so "unset" means "no forced model"
634
- * (the harness's own default). Carried to the review-agent launch through the
635
- * EXISTING harness seam (`LaunchInput.model` / `substituteModel`). Resolved like
636
- * `model`: flag (`--tasker-loop-model`) > env > per-repo > global > default
637
- * (unset). DISTINCT from the acceptance gate's `reviewModel` (build
638
- * `--review-model`).
652
+ * from the tasker when explicitly set). Optional with NO default so "unset"
653
+ * means "inherit the general `model`" (via `applyModelFallbacks`, applied at
654
+ * the resolution FINAL point after the full flag > env > per-repo > global
655
+ * chain). Carried to the review-agent launch through the EXISTING harness seam
656
+ * (`LaunchInput.model` / `substituteModel`). Resolved like `model`: flag
657
+ * (`--tasker-loop-model`) > env > per-repo > global > fallback to `model` >
658
+ * default (unset). DISTINCT from the acceptance gate's `reviewModel` (build
659
+ * `--review-model`) and from `buildModel` — each has its OWN knob and each falls
660
+ * back to `model` independently.
639
661
  */
640
662
  taskerLoopModel?: string;
663
+ /**
664
+ * The model the ADVANCE LIFECYCLE GATES (surface, apply, triage) run on —
665
+ * the fresh-context judgement agents that surface questions from blocked work
666
+ * (`surface`), interpret answered questions and decide what to mint (`apply`),
667
+ * and auto-disposition no-question observations (`triage`). Optional with NO
668
+ * default so "unset" means "inherit the general `model`" (via
669
+ * `applyModelFallbacks`, applied at the resolution FINAL point). Carried to each
670
+ * gate's launch through the EXISTING harness seam (`LaunchInput.model`). Resolved
671
+ * like `model`: flag (`--triage-model`) > env (`DORFL_TRIAGE_MODEL`) > per-repo >
672
+ * global > fallback to `model` > default (unset). DISTINCT from `reviewModel`,
673
+ * `taskerLoopModel`, `buildModel`, and `intakeModel` — each has its OWN knob and
674
+ * each falls back to `model` independently.
675
+ */
676
+ triageModel?: string;
677
+ /**
678
+ * The model the INTAKE decision agent runs on — the front-door fresh-context
679
+ * agent that reads an issue/PR and decides whether to mint a task, mint a spec,
680
+ * or ask a follow-up question. Optional with NO default so "unset" means
681
+ * "inherit the general `model`" (via `applyModelFallbacks`, applied at the
682
+ * resolution FINAL point). Carried to the intake-agent launch through the
683
+ * EXISTING harness seam (`LaunchInput.model`). Resolved like `model`: flag
684
+ * (`--intake-model`) > env (`DORFL_INTAKE_MODEL`) > per-repo > global > fallback
685
+ * to `model` > default (unset). DISTINCT from the advance lifecycle gates'
686
+ * `triageModel` and from `buildModel`/`reviewModel`/`taskerLoopModel` — each has
687
+ * its OWN knob and each falls back to `model` independently.
688
+ */
689
+ intakeModel?: string;
641
690
  /**
642
691
  * **The fresh-worktree acceptance-gate toggle** (`--fresh-worktree-gate` /
643
692
  * `--no-fresh-worktree-gate`). When ON (the default), the acceptance gate
@@ -823,6 +872,18 @@ export declare function validateDorflCmdConfig(config: Config): void;
823
872
  export declare function defaultConfigPath(): string;
824
873
  /** Merge a partial config over the built-in defaults; arrays are replaced. */
825
874
  export declare function mergeConfig(overrides: PartialConfig): Config;
875
+ /**
876
+ * Apply the per-role model fallbacks IN PLACE on a FULLY RESOLVED {@link Config}:
877
+ * `buildModel`, `reviewModel`, and `taskerLoopModel` each inherit the general
878
+ * `model` when they are unset (i.e. were not set at ANY precedence level — flag,
879
+ * env, per-repo, or global). This is the single place the fallback lives; it is
880
+ * called at the resolution FINAL points (`resolveRepoConfigFromLoaded` for the
881
+ * per-repo chain; `resolveGlobalConfig` for the global-only chain) so the
882
+ * fallback uses the FINAL resolved `model`, never an intermediate layer's. A
883
+ * per-role knob set at ANY level is NEVER reset — `applyModelFallbacks` only
884
+ * touches fields that are still `undefined` after the full chain resolved.
885
+ */
886
+ export declare function applyModelFallbacks(config: Config): void;
826
887
  /**
827
888
  * Persist `config` to `path` as pretty JSON (creating the parent dir). Used by
828
889
  * `work-on` to SAVE the prompted `humanWorktreesDir` on first use so the human is
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -289,6 +289,34 @@ export function mergeConfig(overrides) {
289
289
  }
290
290
  return merged;
291
291
  }
292
+ /**
293
+ * Apply the per-role model fallbacks IN PLACE on a FULLY RESOLVED {@link Config}:
294
+ * `buildModel`, `reviewModel`, and `taskerLoopModel` each inherit the general
295
+ * `model` when they are unset (i.e. were not set at ANY precedence level — flag,
296
+ * env, per-repo, or global). This is the single place the fallback lives; it is
297
+ * called at the resolution FINAL points (`resolveRepoConfigFromLoaded` for the
298
+ * per-repo chain; `resolveGlobalConfig` for the global-only chain) so the
299
+ * fallback uses the FINAL resolved `model`, never an intermediate layer's. A
300
+ * per-role knob set at ANY level is NEVER reset — `applyModelFallbacks` only
301
+ * touches fields that are still `undefined` after the full chain resolved.
302
+ */
303
+ export function applyModelFallbacks(config) {
304
+ if (config.buildModel === undefined) {
305
+ config.buildModel = config.model;
306
+ }
307
+ if (config.reviewModel === undefined) {
308
+ config.reviewModel = config.model;
309
+ }
310
+ if (config.taskerLoopModel === undefined) {
311
+ config.taskerLoopModel = config.model;
312
+ }
313
+ if (config.triageModel === undefined) {
314
+ config.triageModel = config.model;
315
+ }
316
+ if (config.intakeModel === undefined) {
317
+ config.intakeModel = config.model;
318
+ }
319
+ }
292
320
  /**
293
321
  * Persist `config` to `path` as pretty JSON (creating the parent dir). Used by
294
322
  * `work-on` to SAVE the prompted `humanWorktreesDir` on first use so the human is
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ import type { Config, IntegrationMode, PartialConfig } from './config.js';
10
10
  export interface HarnessFlags {
11
11
  agentCmd?: string;
12
12
  model?: string;
13
+ /** `--build-model <id>` — the builder-specific model override (falls back to `--model`). */
14
+ buildModel?: string;
13
15
  harness?: string;
14
16
  piBin?: string;
15
17
  /**
@@ -38,7 +40,7 @@ export declare function harnessFlagOverrides(flags: HarnessFlags): PartialConfig
38
40
  * full set rides the same precedence chain (flag > env > per-repo > global >
39
41
  * default).
40
42
  */
41
- export declare function doFlagOverrides(flags: HarnessFlags & ReviewFlags & TaskerLoopFlags & FreshWorktreeGateFlags & SelectionOrderFlags & ObservationTriageFlags & SurfaceBlockersFlags & MergeQuestionsFlags & StrictMergeApprovalFlags & NoPRFlags & MergeRetriesFlags, integration?: IntegrationMode): PartialConfig;
43
+ export declare function doFlagOverrides(flags: HarnessFlags & ReviewFlags & TaskerLoopFlags & TriageModelFlags & FreshWorktreeGateFlags & SelectionOrderFlags & ObservationTriageFlags & SurfaceBlockersFlags & MergeQuestionsFlags & StrictMergeApprovalFlags & NoPRFlags & MergeRetriesFlags, integration?: IntegrationMode): PartialConfig;
42
44
  /**
43
45
  * The Gate-2 (PR/code review) CLI flags, offered by `do` AND `complete`
44
46
  * (`--review`/`--no-review`, `--review-model`, `--review-max-rounds`). Both commands resolve them through
@@ -94,6 +96,24 @@ export declare function reviewFlagOverrides(flags: ReviewFlags): PartialConfig;
94
96
  * resolves through the standard precedence into `config.taskerLoop`.
95
97
  */
96
98
  export declare function taskerLoopFlagOverrides(flags: TaskerLoopFlags): PartialConfig;
99
+ /**
100
+ * The `--triage-model` flag — the model the advance lifecycle gates (surface,
101
+ * apply, triage) run on. A single string flag, distinct from the harness
102
+ * `--model`/`--build-model` family and from `--review-model`/
103
+ * `--tasker-loop-model`. Resolved through the SAME `flag > env > per-repo >
104
+ * global > default` chain; falls back to `model` when unset at all levels (via
105
+ * `applyModelFallbacks`).
106
+ */
107
+ export interface TriageModelFlags {
108
+ /** `--triage-model <id>` — the advance lifecycle gates' model (routing intent). */
109
+ triageModel?: string;
110
+ }
111
+ /**
112
+ * Map the `--triage-model` flag into a {@link PartialConfig} override. Only
113
+ * contributes when the flag is actually present (absent flag => absent key), so
114
+ * the override layer never clobbers a lower-precedence source with `undefined`.
115
+ */
116
+ export declare function triageModelFlagOverrides(flags: TriageModelFlags): PartialConfig;
97
117
  /**
98
118
  * The fresh-worktree acceptance-gate CLI flag (`do`/`complete`/`run`):
99
119
  * `--fresh-worktree-gate` / `--no-fresh-worktree-gate`, the POSITIVE boolean
@@ -1 +1 @@
1
- {"version":3,"file":"do-config.d.ts","sourceRoot":"","sources":["../src/do-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"do-config.d.ts","sourceRoot":"","sources":["../src/do-config.ts"],"names":[],"mappings":"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"}
package/dist/do-config.js CHANGED
@@ -13,6 +13,9 @@ export function harnessFlagOverrides(flags) {
13
13
  if (flags.model !== undefined) {
14
14
  overrides.model = flags.model;
15
15
  }
16
+ if (flags.buildModel !== undefined) {
17
+ overrides.buildModel = flags.buildModel;
18
+ }
16
19
  if (flags.harness === 'null' || flags.harness === 'pi') {
17
20
  overrides.harness = flags.harness;
18
21
  }
@@ -71,6 +74,10 @@ export function doFlagOverrides(flags, integration) {
71
74
  // family from the gate's `--review*`, never sharing a flag/key/field name.
72
75
  // The flag fields bridge onto the `taskerLoop*` config keys.
73
76
  ...taskerLoopFlagOverrides(flags),
77
+ // `--triage-model <id>` (the advance lifecycle gates' model — surface, apply,
78
+ // triage) rides the SAME chain. DISTINCT from `--review-model`/
79
+ // `--tasker-loop-model`; falls back to `model` when unset at all levels.
80
+ ...triageModelFlagOverrides(flags),
74
81
  // `--fresh-worktree-gate`/`--no-fresh-worktree-gate` (run the acceptance gate
75
82
  // against the REBASED tip in a clean throwaway worktree, ON by default) rides
76
83
  // the SAME chain — a DISTINCT family from `--review*`/`--tasker-loop*`.
@@ -148,6 +155,18 @@ export function taskerLoopFlagOverrides(flags) {
148
155
  }
149
156
  return overrides;
150
157
  }
158
+ /**
159
+ * Map the `--triage-model` flag into a {@link PartialConfig} override. Only
160
+ * contributes when the flag is actually present (absent flag => absent key), so
161
+ * the override layer never clobbers a lower-precedence source with `undefined`.
162
+ */
163
+ export function triageModelFlagOverrides(flags) {
164
+ const overrides = {};
165
+ if (flags.triageModel !== undefined) {
166
+ overrides.triageModel = flags.triageModel;
167
+ }
168
+ return overrides;
169
+ }
151
170
  /**
152
171
  * Map the `--fresh-worktree-gate`/`--no-fresh-worktree-gate` flag into a
153
172
  * {@link PartialConfig} override. Only a present flag contributes (absent ⇒
@@ -1 +1 @@
1
- {"version":3,"file":"do-config.js","sourceRoot":"","sources":["../src/do-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"do-config.js","sourceRoot":"","sources":["../src/do-config.ts"],"names":[],"mappings":"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"}
package/dist/do.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { TaskReviewGate } from './tasker-review-loop.js';
2
- import { type Harness } from './harness.js';
2
+ import { type AgentTreeReap, type Harness } from './harness.js';
3
3
  import { type LedgerReadStrategy } from './ledger-read.js';
4
4
  import type { ReviewProvider } from './integrator.js';
5
5
  import type { IntegrationMode, PromptGuidance } from './config.js';
@@ -49,6 +49,16 @@ export type DoDorfl = (input: {
49
49
  * injected path — the real deadline race lives in `PiHarness.launchAsync`.
50
50
  */
51
51
  timedOut?: boolean;
52
+ /**
53
+ * **The simulated process-tree REAP verdict** for a {@link timedOut} stop
54
+ * (observation `checkpoint-releases-lock-while-predecessor-agent-still-writes`).
55
+ * Test-only signal, the sibling of `timedOut`, so an injected agent can drive
56
+ * the "predecessor could not be verified dead" routing — where the checkpoint
57
+ * must NOT release the item lock, because the next tick would then onboard a
58
+ * successor into a working tree the predecessor may still be writing to.
59
+ * Absent ⇒ nothing was left running (the pre-existing behaviour).
60
+ */
61
+ reap?: AgentTreeReap;
52
62
  };
53
63
  export interface DoOptions {
54
64
  /** The raw CLI slug argument: bare (= task), `task:<slug>`, or `spec:<slug>`. */
@@ -268,7 +278,9 @@ export interface DoOptions {
268
278
  watch?: boolean;
269
279
  /** The configured agent command the harness shells out to (null adapter). */
270
280
  agentCmd?: string;
271
- /** The model routing intent forwarded to the harness (ADR §13). */
281
+ /** The model routing intent forwarded to the harness (ADR §13). Sourced
282
+ * from `config.buildModel` (which inherits the general `config.model` when
283
+ * unset via `applyModelFallbacks`). */
272
284
  model?: string;
273
285
  /**
274
286
  * The HOST-ONLY root folder under which this run's pi session FILE is generated
package/dist/do.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"do.d.ts","sourceRoot":"","sources":["../src/do.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"do.d.ts","sourceRoot":"","sources":["../src/do.ts"],"names":[],"mappings":"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"}
package/dist/do.js CHANGED
@@ -7,6 +7,7 @@ import { resolveSlug, SlugResolutionError, workBranchRef, } from './slug-namespa
7
7
  import { performTask } from './tasking.js';
8
8
  import { resolveTask, buildAgentPrompt, resolveContinueContext, resolvePromptGuidanceForItem, PromptError, } from './prompt.js';
9
9
  import { NullHarness } from './harness.js';
10
+ import { acquireWorktreeWriterLock } from './worktree-writer-lock.js';
10
11
  import { PiHarness } from './pi-harness.js';
11
12
  import { launchWithOptionalWatch } from './agent-launch.js';
12
13
  import { ledgerRead } from './ledger-read.js';
@@ -98,6 +99,19 @@ function deadlineAutoContinueReason(params) {
98
99
  `tick continues from the branch tip.`);
99
100
  }
100
101
  function deadlineSurfaceReason(params) {
102
+ if (params.kind === 'unreaped') {
103
+ // The auto-continue path is BLOCKED, not merely skipped: releasing the lock
104
+ // would let a successor onboard into a worktree a live predecessor may still
105
+ // be writing to (observation
106
+ // `checkpoint-releases-lock-while-predecessor-agent-still-writes`). The work
107
+ // is saved and pushed; only the hand-off is withheld.
108
+ return (`deadline checkpoint (agent NOT verifiably stopped): '${params.slug}' hit ` +
109
+ 'the dorfl-internal deadline and its WIP was saved + pushed, but the agent ' +
110
+ 'process tree could not be confirmed dead, so the lock was NOT released and ' +
111
+ 'no successor was dispatched — a second agent in the same working tree can ' +
112
+ 'clobber or silently absorb the first one\u2019s edits. ' +
113
+ `${params.detail ?? ''}`.trim());
114
+ }
101
115
  if (params.kind === 'no-progress') {
102
116
  return (`deadline checkpoint (no progress / ceiling): '${params.slug}' hit ` +
103
117
  `the dorfl-internal deadline WITHOUT any work-branch progress this ` +
@@ -680,6 +694,7 @@ export async function performDo(options) {
680
694
  cwd: tree.dir,
681
695
  arbiter: tree.arbiterRemote,
682
696
  maxAutoCheckpoints: options.maxAutoCheckpoints ?? 5,
697
+ reap: agent.reap,
683
698
  env,
684
699
  note,
685
700
  });
@@ -1236,6 +1251,39 @@ async function runDoAgent(options, cwd, prompt, slug) {
1236
1251
  return options.dorfl({ cwd, prompt, slug, env: options.env });
1237
1252
  }
1238
1253
  const harness = options.harness ?? new NullHarness();
1254
+ // WORKING-TREE SENTINEL (observation
1255
+ // `checkpoint-releases-lock-while-predecessor-agent-still-writes`): the item
1256
+ // lock guards the ITEM; this guards the TREE. A deadline checkpoint releases the
1257
+ // item lock so the next tick can continue the task in the SAME worktree, so the
1258
+ // item lock alone cannot keep a successor out while a predecessor is still
1259
+ // alive. Refuse to launch a second agent into a tree that already has a LIVE
1260
+ // writer, independently of the reap. A dead holder's sentinel is stale and taken
1261
+ // over, so a crashed runner never poisons the worktree.
1262
+ const writer = acquireWorktreeWriterLock({ dir: cwd, slug, env: options.env });
1263
+ if (!writer.acquired) {
1264
+ return { ok: false, detail: writer.reason };
1265
+ }
1266
+ try {
1267
+ return await launchAgentUnderWriterLock({
1268
+ options,
1269
+ cwd,
1270
+ prompt,
1271
+ slug,
1272
+ harness,
1273
+ });
1274
+ }
1275
+ finally {
1276
+ writer.release();
1277
+ }
1278
+ }
1279
+ /**
1280
+ * The actual harness launch, run while this process holds the worktree writer
1281
+ * sentinel (see {@link runDoAgent}). Split out purely so the sentinel's
1282
+ * acquire/release brackets the launch in a `try/finally` without indenting the
1283
+ * whole body.
1284
+ */
1285
+ async function launchAgentUnderWriterLock(params) {
1286
+ const { options, cwd, prompt, slug, harness } = params;
1239
1287
  // Convert the dorfl-internal deadline (minutes) into a wall-clock epoch-ms so
1240
1288
  // the harness (`launchAsync`) can race the child against it (spec
1241
1289
  // `graceful-pre-timeout-wip-checkpoint`). Absent ⇒ no deadline; a run that
@@ -1269,6 +1317,10 @@ async function runDoAgent(options, cwd, prompt, slug) {
1269
1317
  detail: launched.detail,
1270
1318
  output: launched.output,
1271
1319
  timedOut: launched.timedOut,
1320
+ // The harness's PROOF that a deadline-stopped agent's process tree is gone.
1321
+ // Threaded to {@link routeDeadlineCheckpoint}, which refuses to release the
1322
+ // item lock without it.
1323
+ reap: launched.reap,
1272
1324
  };
1273
1325
  }
1274
1326
  /**
@@ -1280,7 +1332,24 @@ async function runDoAgent(options, cwd, prompt, slug) {
1280
1332
  * and remote forms route a deadline stop identically.
1281
1333
  */
1282
1334
  async function routeDeadlineCheckpoint(params) {
1283
- const { slug, branch, cwd, arbiter, maxAutoCheckpoints, env, note } = params;
1335
+ const { slug, branch, cwd, arbiter, maxAutoCheckpoints, reap, env, note } = params;
1336
+ // 0. THE PREDECESSOR MUST BE DEAD BEFORE THE LOCK CAN MOVE.
1337
+ //
1338
+ // The item lock guards the ITEM; nothing guards the WORKING TREE. So if we
1339
+ // released the lock while the checkpointed agent's tree were still alive, the
1340
+ // next tick would onboard a successor into the very worktree the predecessor is
1341
+ // still writing to — one lock, one working tree, two live writers. That was
1342
+ // observed in the field: a predecessor kept writing for four minutes into its
1343
+ // successor's run, and its last write landed on a file the successor had already
1344
+ // read as clean in its opening `git status`.
1345
+ //
1346
+ // A reap we could not VERIFY is therefore a hard stop for the auto-continue
1347
+ // path. We still SAVE the work below (never lose work) and still surface the
1348
+ // item, but we do not hand the tree to anybody else.
1349
+ const predecessorGone = reap === undefined || reap.reaped;
1350
+ if (reap !== undefined && reap.escalatedToSigkill && reap.reaped) {
1351
+ note(`Deadline checkpoint for '${slug}': ${reap.detail}`);
1352
+ }
1284
1353
  // 1. ALWAYS save the WIP first: commit any residue + push the work branch.
1285
1354
  const savedReason = `deadline checkpoint save for '${slug}'`;
1286
1355
  const saved = await saveDeadlineCheckpoint({
@@ -1305,7 +1374,9 @@ async function routeDeadlineCheckpoint(params) {
1305
1374
  branch,
1306
1375
  env,
1307
1376
  });
1308
- if (madeProgressThisSession && checkpointCount <= maxAutoCheckpoints) {
1377
+ if (predecessorGone &&
1378
+ madeProgressThisSession &&
1379
+ checkpointCount <= maxAutoCheckpoints) {
1309
1380
  // AUTO-CONTINUE: release the lock via the SAME default keep+continue path
1310
1381
  // `requeue` uses (no --reset, no --reconcile, no sidecar). The branch is
1311
1382
  // KEPT on the arbiter so the next claim continues from its tip.
@@ -1322,9 +1393,25 @@ async function routeDeadlineCheckpoint(params) {
1322
1393
  note,
1323
1394
  });
1324
1395
  if (returned.moved) {
1396
+ // Derive this line from the SINGLE state `returnToBacklog` resolved, never
1397
+ // from an independent assumption. It used to assert "the next tick continues
1398
+ // from <branch>" unconditionally, which contradicted the requeue's own
1399
+ // "'<slug>' has no work branch on <arbiter> — nothing to continue from" line
1400
+ // emitted two lines earlier. Both cannot be true, and acting on the wrong one
1401
+ // re-drives the task from scratch and discards the saved work (observation
1402
+ // `checkpoint-path-reports-its-own-write-as-absent`). One resolved state, one
1403
+ // story: mutually contradictory lines are worse than emitting nothing.
1404
+ const continueFrom = returned.continueBranch;
1405
+ const continuation = continueFrom === undefined || continueFrom.aheadOfMain
1406
+ ? `lock released so the next tick continues from ${continueFrom?.branch ?? branch}`
1407
+ : continueFrom.trustworthy
1408
+ ? 'lock released; the arbiter has no work to continue from, so the next ' +
1409
+ 'tick starts this item fresh'
1410
+ : `lock released; the arbiter could not be read to confirm ${continueFrom.branch}, ` +
1411
+ 'so do NOT assume the work is gone — check the branch before re-driving';
1325
1412
  const message = `Auto-continued '${slug}' at the dorfl-internal deadline (checkpoint ` +
1326
1413
  `${checkpointCount}/${maxAutoCheckpoints}): WIP saved + branch pushed, ` +
1327
- `lock released so the next tick continues from ${branch}. ${reason}`;
1414
+ `${continuation}. ${reason}`;
1328
1415
  note(message);
1329
1416
  return {
1330
1417
  exitCode: 0,
@@ -1341,14 +1428,16 @@ async function routeDeadlineCheckpoint(params) {
1341
1428
  // SURFACE: mark the lock stuck via the whole applyNeedsAttentionTransition
1342
1429
  // (save + push + stuck). The WIP was already saved above; a second save is
1343
1430
  // idempotent (empty commit is skipped inside routeToNeedsAttention).
1344
- const surfaceReason = madeProgressThisSession
1345
- ? deadlineSurfaceReason({
1346
- slug,
1347
- kind: 'ceiling',
1348
- count: checkpointCount,
1349
- max: maxAutoCheckpoints,
1350
- })
1351
- : deadlineSurfaceReason({ slug, kind: 'no-progress' });
1431
+ const surfaceReason = !predecessorGone
1432
+ ? deadlineSurfaceReason({ slug, kind: 'unreaped', detail: reap?.detail })
1433
+ : madeProgressThisSession
1434
+ ? deadlineSurfaceReason({
1435
+ slug,
1436
+ kind: 'ceiling',
1437
+ count: checkpointCount,
1438
+ max: maxAutoCheckpoints,
1439
+ })
1440
+ : deadlineSurfaceReason({ slug, kind: 'no-progress' });
1352
1441
  const routed = await ledgerWrite.applyNeedsAttentionTransition({
1353
1442
  cwd,
1354
1443
  slug,
@@ -1358,10 +1447,14 @@ async function routeDeadlineCheckpoint(params) {
1358
1447
  note,
1359
1448
  });
1360
1449
  const report = routed.moved ? routeReport(routed, branch) : undefined;
1361
- const message = routed.moved
1362
- ? `Surfaced '${slug}' at the deadline checkpoint (${madeProgressThisSession
1450
+ const why = !predecessorGone
1451
+ ? 'the checkpointed agent could not be verified dead'
1452
+ : madeProgressThisSession
1363
1453
  ? `ceiling ${checkpointCount}/${maxAutoCheckpoints}`
1364
- : 'no progress this session'}); ${report.fragment}. ${surfaceReason}`
1454
+ : 'no progress this session';
1455
+ const message = routed.moved
1456
+ ? `Surfaced '${slug}' at the deadline checkpoint (${why}); ` +
1457
+ `${report.fragment}. ${surfaceReason}`
1365
1458
  : `Could not surface '${slug}' at the deadline checkpoint ` +
1366
1459
  `(${routed.reasonNotMoved ?? 'unknown'}). ${surfaceReason}`;
1367
1460
  note(message);
@@ -1963,6 +2056,7 @@ async function runRemotePipeline(options, tree, slug, note, env) {
1963
2056
  cwd,
1964
2057
  arbiter: arbiterRemote,
1965
2058
  maxAutoCheckpoints: options.maxAutoCheckpoints ?? 5,
2059
+ reap: agent.reap,
1966
2060
  env,
1967
2061
  note,
1968
2062
  });