@deksden-com/dd-flow-cli 0.9.0-beta.9 → 0.9.0-beta.90

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 (143) hide show
  1. package/CHANGELOG.md +460 -0
  2. package/README.md +65 -0
  3. package/dist/build-info.json +8 -8
  4. package/dist/cli/command-inputs.js +304 -0
  5. package/dist/cli/help.js +89 -13
  6. package/dist/cli/hook-ingress.js +82 -0
  7. package/dist/cli/input-preparation.js +115 -0
  8. package/dist/cli/run-cli.js +1409 -382
  9. package/dist/cli.js +6 -2
  10. package/dist/harness-runtime/bin/dd-agy.mjs +37 -0
  11. package/dist/harness-runtime/bin/dd-codex.mjs +25 -0
  12. package/dist/harness-runtime/bin/dd-droid.mjs +33 -0
  13. package/dist/harness-runtime/bin/dd-grok.mjs +30 -0
  14. package/dist/harness-runtime/bin/dd-opencode.mjs +21 -0
  15. package/dist/harness-runtime/bin/dd-zcode.mjs +83 -0
  16. package/dist/harness-runtime/lib/daemon-operations.mjs +215 -0
  17. package/dist/harness-runtime/lib/dd-agy-daemon.mjs +423 -0
  18. package/dist/harness-runtime/lib/dd-agy.mjs +59 -0
  19. package/dist/harness-runtime/lib/dd-codex-daemon.d.mts +1 -0
  20. package/dist/harness-runtime/lib/dd-codex-daemon.mjs +146 -0
  21. package/dist/harness-runtime/lib/dd-codex.mjs +562 -0
  22. package/dist/harness-runtime/lib/dd-droid-daemon.mjs +125 -0
  23. package/dist/harness-runtime/lib/dd-droid.mjs +471 -0
  24. package/dist/harness-runtime/lib/dd-grok-daemon.mjs +274 -0
  25. package/dist/harness-runtime/lib/dd-grok.mjs +174 -0
  26. package/dist/harness-runtime/lib/dd-opencode-daemon.mjs +198 -0
  27. package/dist/harness-runtime/lib/dd-opencode.mjs +98 -0
  28. package/dist/harness-runtime/lib/dd-zcode-daemon.mjs +644 -0
  29. package/dist/harness-runtime/lib/dd-zcode.mjs +910 -0
  30. package/dist/harness-runtime/lib/delegation-instructions.d.mts +10 -0
  31. package/dist/harness-runtime/lib/delegation-instructions.mjs +130 -0
  32. package/dist/harness-runtime/lib/dispatch-fence.mjs +14 -0
  33. package/dist/harness-runtime/lib/driver-recovery.mjs +129 -0
  34. package/dist/harness-runtime/lib/droid-observation.mjs +66 -0
  35. package/dist/harness-runtime/lib/managed-daemon.mjs +260 -0
  36. package/dist/harness-runtime/lib/model-observations.mjs +77 -0
  37. package/dist/harness-runtime/lib/native-hook-command.d.mts +1 -0
  38. package/dist/harness-runtime/lib/native-hook-command.mjs +34 -0
  39. package/dist/harness-runtime/lib/observation-clock.mjs +36 -0
  40. package/dist/harness-runtime/lib/operation-context.mjs +5 -0
  41. package/dist/harness-runtime/lib/operation-errors.mjs +19 -0
  42. package/dist/harness-runtime/lib/process-json.mjs +70 -0
  43. package/dist/harness-runtime/lib/process-snapshot.mjs +10 -0
  44. package/dist/harness-runtime/lib/runner-events.mjs +200 -0
  45. package/dist/harness-runtime/lib/runner-lock.mjs +42 -0
  46. package/dist/harness-runtime/lib/session-settlement.mjs +30 -0
  47. package/dist/harness-runtime/lib/tool-observations.d.mts +17 -0
  48. package/dist/harness-runtime/lib/tool-observations.mjs +153 -0
  49. package/dist/schemas/agent-profile.schema.json +1 -1
  50. package/dist/schemas/code-review-result.schema.json +2 -2
  51. package/dist/schemas/code-work-batch.schema.json +4 -3
  52. package/dist/schemas/code-work-result.schema.json +4 -4
  53. package/dist/schemas/plan-review-result.schema.json +2 -2
  54. package/dist/schemas/run-control-receipt.schema.json +99 -0
  55. package/dist/schemas/run-control-request.schema.json +36 -0
  56. package/dist/schemas/vnext-protocol-plan.schema.json +2 -2
  57. package/dist/services/canon.js +11 -8
  58. package/dist/services/cleanup.js +57 -13
  59. package/dist/services/cli-operation-classifier.js +22 -24
  60. package/dist/services/code-checks.js +543 -96
  61. package/dist/services/codex-hook-delivery.js +28 -0
  62. package/dist/services/command-context.js +80 -0
  63. package/dist/services/config.js +11 -8
  64. package/dist/services/continuation-outcome.js +20 -0
  65. package/dist/services/controller-fanout.js +132 -0
  66. package/dist/services/dashboard.js +103 -31
  67. package/dist/services/engines.js +121 -76
  68. package/dist/services/eval-snapshots.js +750 -73
  69. package/dist/services/execution-policy.js +170 -0
  70. package/dist/services/external-work-launch.js +110 -0
  71. package/dist/services/harness-adapter.js +147 -24
  72. package/dist/services/harness-config.js +2 -0
  73. package/dist/services/hooks.js +587 -299
  74. package/dist/services/lanes.js +61 -53
  75. package/dist/services/lifecycle-command.js +118 -7
  76. package/dist/services/lifecycle-invocations.js +1055 -0
  77. package/dist/services/managed-daemon-binding.js +38 -0
  78. package/dist/services/managed-processes.js +283 -27
  79. package/dist/services/merge-queue.js +179 -104
  80. package/dist/services/merge-server.js +73 -28
  81. package/dist/services/migrations.js +14 -9
  82. package/dist/services/native-daemon-history.js +49 -0
  83. package/dist/services/native-session-control.js +39 -0
  84. package/dist/services/plan-runtime.js +19 -8
  85. package/dist/services/plans.js +28 -25
  86. package/dist/services/projects.js +18 -5
  87. package/dist/services/prompts.js +23 -16
  88. package/dist/services/protocols.js +64 -20
  89. package/dist/services/recovery-observation-budget.js +61 -0
  90. package/dist/services/recovery-snapshot-database.js +107 -0
  91. package/dist/services/repair-intents.js +40 -0
  92. package/dist/services/run-control-receipt.js +56 -0
  93. package/dist/services/run-control-worker.js +363 -0
  94. package/dist/services/run-control.js +876 -0
  95. package/dist/services/run-controller-adapter.js +222 -0
  96. package/dist/services/run-controller-capture.js +134 -0
  97. package/dist/services/run-controller-process.js +189 -0
  98. package/dist/services/run-controller-recovery.js +222 -0
  99. package/dist/services/run-controller-state.js +36 -0
  100. package/dist/services/run-controller.js +789 -0
  101. package/dist/services/run-engine-bindings.js +1 -1
  102. package/dist/services/run-fork.js +138 -0
  103. package/dist/services/run-observations.js +112 -0
  104. package/dist/services/run-recovery-runtime.js +69 -0
  105. package/dist/services/run-recovery.js +343 -0
  106. package/dist/services/runs.js +368 -74
  107. package/dist/services/runtime-budget.js +434 -0
  108. package/dist/services/runtime-command.js +43 -0
  109. package/dist/services/runtime-scope-capture.js +50 -0
  110. package/dist/services/runtime-scope-control.js +450 -0
  111. package/dist/services/runtime-scope-resume.js +565 -0
  112. package/dist/services/runtime-scope-stop.js +99 -0
  113. package/dist/services/runtime-scope-worker.js +243 -0
  114. package/dist/services/runtime-service.js +97 -0
  115. package/dist/services/schema-validation.js +10 -8
  116. package/dist/services/sessions.js +35 -69
  117. package/dist/services/stage-blocker.js +17 -7
  118. package/dist/services/stage-context.js +44 -18
  119. package/dist/services/stage-lifecycle.js +99 -102
  120. package/dist/services/stage-pause.js +84 -55
  121. package/dist/services/stage-work-graph.js +35 -0
  122. package/dist/services/usage.js +37 -93
  123. package/dist/services/vnext-code-review.js +195 -88
  124. package/dist/services/vnext-code.js +285 -252
  125. package/dist/services/vnext-execution-profile.js +5 -3
  126. package/dist/services/vnext-fanout.js +160 -17
  127. package/dist/services/vnext-merge.js +291 -104
  128. package/dist/services/vnext-plan-review.js +139 -81
  129. package/dist/services/vnext-plan.js +138 -69
  130. package/dist/services/vnext-protocolize.js +129 -56
  131. package/dist/services/vnext-specify.js +88 -65
  132. package/dist/services/work-registry.js +716 -168
  133. package/dist/services/workspace-bootstrap.js +76 -0
  134. package/dist/services/worktrees.js +85 -35
  135. package/dist/shared/entity-references.js +8 -0
  136. package/dist/shared/errors.js +12 -0
  137. package/dist/storage/database.js +459 -32
  138. package/dist/storage/paths.js +17 -4
  139. package/dist/storage/work-references.js +23 -0
  140. package/dist/storage/writer-contract.js +77 -0
  141. package/dist/storage/writer-migration.js +102 -0
  142. package/package.json +24 -13
  143. package/tools/repair-paused-run-status.mjs +59 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,464 @@
1
1
  # @deksden-com/dd-flow-cli
2
2
 
3
+ ## 0.9.0-beta.90
4
+
5
+ ### Patch Changes
6
+
7
+ - 18e2627: Require settled fan-out stages to complete their semantic decision and invoke
8
+ the authoritative finish command before assuming a repair exists. Report the
9
+ controller action that failed to make progress, and hand off repair Work only
10
+ after an actual lifecycle response registers it.
11
+ - 954c676: Publish the exact CI-tested tarball through a credential-isolated release job, with deterministic test shards, package smoke, trusted candidate receipts, and safe lost-reply recovery.
12
+
13
+ ## 0.9.0-beta.89
14
+
15
+ ### Minor Changes
16
+
17
+ - Register aggregate CODE and CODE-REVIEW repairs atomically from all failed receipts, with stable replay identity and stage/attempt/cycle membership. Resolve declared contextual file paths independently of lifecycle authority, retain exact native command rejection causes, and emit shell-safe commands with explicit JSON recovery inputs. Keep historical Work out of current dispatch and block ambiguous legacy fanout execution.
18
+
19
+ ## 0.9.0-beta.88
20
+
21
+ ### Patch Changes
22
+
23
+ - 5f3806c: Keep managed HITL answer paths inside retained runtime authority, preserve early
24
+ native CLI failures, and fail controllers conclusively when an answer turn does
25
+ not resume its assigned pause.
26
+
27
+ ## 0.9.0-beta.87
28
+
29
+ ### Patch Changes
30
+
31
+ - a49655a: Use separate files for model-authored lifecycle payloads and preserve native
32
+ shell-composition diagnostics instead of reporting a missing hook receipt.
33
+
34
+ ## 0.9.0-beta.86
35
+
36
+ ### Patch Changes
37
+
38
+ - 8abe471: Settle invalid managed lifecycle arguments atomically before dispatch and return one safe corrected command.
39
+
40
+ ## 0.9.0-beta.85
41
+
42
+ ### Patch Changes
43
+
44
+ - fe8f493: Restore runtime-owned response publication options before dispatching a managed lifecycle command, and update the controller fixture to validate the public command contract.
45
+
46
+ ## 0.9.0-beta.84
47
+
48
+ ### Patch Changes
49
+
50
+ - 644d181: Keep RUN identity, project paths, context files, response destinations and
51
+ integrity hashes inside retained lifecycle authority instead of asking agents
52
+ to copy them. Restore those inputs deterministically when the observed command
53
+ executes, including MERGE apply and repair commands.
54
+
55
+ ## 0.9.0-beta.83
56
+
57
+ ### Patch Changes
58
+
59
+ - bf69c56: Accept shell-escaped lifecycle path aliases deterministically and render model-facing aliases with stable quoting.
60
+
61
+ ## 0.9.0-beta.82
62
+
63
+ ### Patch Changes
64
+
65
+ - Keep release registry readback running through delayed npm propagation while still failing authorization errors immediately.
66
+
67
+ ## 0.9.0-beta.81
68
+
69
+ ### Patch Changes
70
+
71
+ - a48e3de: Canonicalize short and full RUN/Work references across native hook receipts, lifecycle admission, Work settlement, and HITL pause/resume. Keep model-facing commands short while preserving scoped ownership checks and report precise receipt mismatch reasons.
72
+
73
+ ## 0.9.0-beta.75
74
+
75
+ ### Patch Changes
76
+
77
+ - Use adapter-owned native delegation instructions for Codex and the other
78
+ supported harnesses, preserving independent child Work ownership and clearer
79
+ native-session diagnostics across fan-out and recovery.
80
+
81
+ ## 0.9.0-beta.64
82
+
83
+ ### Patch Changes
84
+
85
+ - Reserve SQLite writes explicitly, retain trusted lifecycle outcomes across harnesses,
86
+ continuously fence failed managed runs, and recover committed Work start packets and
87
+ replies without repeating effects. Revalidate stage inputs before acceptance and keep
88
+ the causal failure when adapter, publication or cleanup also fails. Writer contract 2
89
+ requires fresh campaign and resource homes; historical contract-1 stores are not
90
+ implicitly upgraded. Recovery-generation Work starts keep separate immutable packets
91
+ per WorkSession, preserving the interrupted attempt's evidence.
92
+
93
+ ## 0.9.0-beta.63
94
+
95
+ ### Patch Changes
96
+
97
+ - Accept the qualified retained-subagent ZCode bridge and settle a control only
98
+ when a durable startup rejection proves that it created no native resources.
99
+
100
+ ## 0.9.0-beta.62
101
+
102
+ ### Patch Changes
103
+
104
+ - Verify a controlled native Session with a fresh inspection after cancellation before treating its tree as settled.
105
+
106
+ ## 0.9.0-beta.61
107
+
108
+ ### Patch Changes
109
+
110
+ - Keep the scope reconciliation contract test type-safe.
111
+
112
+ ## 0.9.0-beta.60
113
+
114
+ ### Patch Changes
115
+
116
+ - Document and verify explicit reconciliation of a drained runtime scope without automatic observer respawn.
117
+
118
+ ## 0.9.0-beta.59
119
+
120
+ ### Patch Changes
121
+
122
+ - Keep bundled ZCode close-contract fixtures aligned with retained native topology checks.
123
+
124
+ ## 0.9.0-beta.58
125
+
126
+ ### Patch Changes
127
+
128
+ - Keep local task artifacts outside the release lint scope.
129
+
130
+ ## 0.9.0-beta.57
131
+
132
+ ### Patch Changes
133
+
134
+ - Bound recovery observation, expose safe external reconciliation, and require
135
+ complete non-resident ZCode session-tree evidence before a stopped run settles.
136
+
137
+ ## 0.9.0-beta.56
138
+
139
+ ### Patch Changes
140
+
141
+ - Keep RUN database and runtime status aligned with pause, stop, controller failures and trusted recovery. Preserve real Stage pauses and terminal results, reject late revival under a recovery fence, roll back status changes after persistence failures, and provide an explicit backed-up legacy status repair tool.
142
+
143
+ ## 0.9.0-beta.55
144
+
145
+ ### Patch Changes
146
+
147
+ - Require autonomous check evidence, preflight commands in their actual workspace, bind final retry arguments, and settle ZCode cancellation through verified native residency. Retain closed sessions without implicit resume and store growing transcripts in reusable content-addressed chunks.
148
+
149
+ ## 0.9.0-beta.54
150
+
151
+ ### Patch Changes
152
+
153
+ - Preserve current lifecycle command input, atomically settle retry authority, select current resume commands, and stop ZCode productive admission immediately on fatal identity errors. Reject ambiguous result inputs and keep diagnostic commands read-only.
154
+
155
+ ## 0.9.0-beta.53
156
+
157
+ ### Patch Changes
158
+
159
+ - Admit managed ZCode lifecycle commands through durable invocation receipts, with exact native identity, bounded waits, retained outcomes and explicit validated retries. Preserve recovery generations, cooperative settlement, immutable recovery evidence and scoped snapshots. Keep Grok native hook responses and stable parent identity, and qualify the installed ZCode native event contract without requiring child hooks. Use Node 26 for the guarded release workflow.
160
+
161
+ ## 0.9.0-beta.52
162
+
163
+ ### Patch Changes
164
+
165
+ - Distinguish released workspace leases from physical processes during stage-boundary capture, RUN settlement and runtime-scope stop/drain. Preserve active-lease, child-process, physical-identity and exact registration checks instead of waiting forever for a PID on a logical gate.
166
+
167
+ ## 0.9.0-beta.51
168
+
169
+ ### Patch Changes
170
+
171
+ - Settle a check receipt when its confirmed process identity has exited, even if an older registration has no parent-owner PID.
172
+
173
+ ## 0.9.0-beta.50
174
+
175
+ ### Patch Changes
176
+
177
+ - 422413d: Keep PLAN, PLAN-REVIEW, CODE and CODE-REVIEW settlement atomic across Work, Session and RUN state, including successor Work registration. Recover accepted CODE stage completion without repeating checks. Enforce coordinator ownership on repeated CODE start and exact reviewer coverage while preserving protocol-local aspect scopes.
178
+ - 422413d: Reuse completed check evidence consistently across CODE, CODE-REVIEW and MERGE,
179
+ with validated inputs, artifacts, retry handling and concurrent execution guards.
180
+
181
+ ## 0.9.0-beta.49
182
+
183
+ ### Patch Changes
184
+
185
+ - Treat a completed CODE gate command that returns `code_gate_failed` as terminal
186
+ recovery evidence, so the coordinator creates the returned repair Work instead
187
+ of waiting indefinitely or duplicating the aggregate gate.
188
+
189
+ ## 0.9.0-beta.48
190
+
191
+ ### Patch Changes
192
+
193
+ - Recheck a controller lease after a transient runtime-registry write failure before
194
+ dispatching more work, while retaining the hard stop for an explicit lease loss.
195
+
196
+ ## 0.9.0-beta.47
197
+
198
+ ### Patch Changes
199
+
200
+ - Initialize the managed Codex hook home for external worker sessions so their
201
+ first `work start` receives a trusted session binding.
202
+
203
+ ## 0.9.0-beta.44
204
+
205
+ ### Patch Changes
206
+
207
+ - Allow a managed native session prompt to run for two hours before the outer
208
+ adapter watchdog cancels it, while retaining the existing short timeout for
209
+ non-productive adapter calls.
210
+
211
+ ## 0.9.0-beta.43
212
+
213
+ ### Patch Changes
214
+
215
+ - 78e3eaf: Keep Codex prompt and inspection receipts compact by returning historical turn
216
+ identities and statuses without duplicating their item transcripts. Preserve the
217
+ current result, final answer, native history reference, descendants and observed
218
+ profile so long-running sessions remain within the bounded adapter reply limit.
219
+
220
+ ## 0.9.0-beta.42
221
+
222
+ ### Patch Changes
223
+
224
+ - 3e1f87f: Reuse an already accepted RUN pause or stop when draining its EVAL scope, preserving the exact control identity and options without weakening stop or replaying work.
225
+
226
+ ## 0.9.0-beta.41
227
+
228
+ ### Patch Changes
229
+
230
+ - c30ae89: Run generated Codex hooks with the explicitly selected CLI, or the isolated runtime shim before global installations. Preserve hook input and fail without a global fallback when the selected CLI is unavailable.
231
+
232
+ ## 0.9.0-beta.40
233
+
234
+ ### Patch Changes
235
+
236
+ - 2b4b714: Admit ordinary managed HITL answers through their exact generation-bound native
237
+ prompt, preserving pause, Session, raw-answer and prompt integrity. Keep accepted
238
+ answer intent separate from physical delivery so stop drains native operations
239
+ and recovery can deliver an unanswered pause without replaying completed work.
240
+ - c5eeb6f: Capture owned Codex home configuration and evidence without copying shared host
241
+ history or ephemeral helper links. Reuse the provisioned shared-entry contract
242
+ and retain strict rejection of unrelated external recovery artifact links.
243
+
244
+ ## 0.9.0-beta.39
245
+
246
+ ### Patch Changes
247
+
248
+ - 803d2d0: Own managed Stage/Work execution, immutable boundary captures, mixed-profile handoffs and operator pause/stop/resume in the shared CLI runtime. Fence productive admission durably, reconcile exact native/process generations, preserve interrupted and unknown outcomes, and resume retained sessions without replaying completed work.
249
+
250
+ Control experiment-wide Subject, Judge and probe ownership through one retained resource registry, with detached control/recovery workers and explicit physical drain and release evidence. Require guarded shared-store migration and current runtime bindings; remove dependence on eval-owned productive adapters.
251
+
252
+ Discover native Codex children from spawn receipts and release terminal failed provider turns only after a fresh settled-tree observation.
253
+
254
+ ## 0.9.0-beta.38
255
+
256
+ ### Patch Changes
257
+
258
+ - 44e3c80: Allow control operations to recheck failed provider cleanup after a leaderless process group exits naturally. Coalesce concurrent finalization retries, preserve the original exit and process lease, and keep live or unproven groups blocked without sending them signals.
259
+
260
+ ## 0.9.0-beta.37
261
+
262
+ ### Patch Changes
263
+
264
+ - Wait for Antigravity provider-exit finalization before acknowledging clean shutdown or replacing the provider, preserving interrupted outcomes and cleanup failures. Treat signal-terminated process leaders as exited when checking remaining group ownership, and release completed initialization timers.
265
+
266
+ ## 0.9.0-beta.36
267
+
268
+ ### Patch Changes
269
+
270
+ - Scope retained Antigravity tree liveness to its verified daemon shutdown before same-session recovery, preserving native outcomes and immutable prior receipts. New native tool or step activity still blocks overlapping prompt admission.
271
+
272
+ ## 0.9.0-beta.35
273
+
274
+ ### Patch Changes
275
+
276
+ - Wait for npm registry propagation and verify the annotated tag created by Changesets before completing a guarded release.
277
+ - Keep AGY native outcomes separate from settlement, invalidate old child settlement on new activity, and reserve productive operations before persistence across adapters.
278
+ - Retain process-local native Stop observation in no-flow technical probes without installing project hooks or forwarding flow mutations.
279
+ - Publish Work receipts after the authoritative SQL commit with resumable publication intents; preserve conflicting bytes, resume partial retries, and retain non-restorable diagnostic snapshots when receipts disagree.
280
+ - Freeze the release source/canon tuple, reconcile uncertain publication, verify the isolated and exact global consumer, and retain phase receipts without creating another version on retry.
281
+
282
+ ## 0.9.0-beta.34
283
+
284
+ ### Patch Changes
285
+
286
+ - Create and verify the immutable annotated Git tag as part of the guarded release publication.
287
+
288
+ ## 0.9.0-beta.33
289
+
290
+ ### Patch Changes
291
+
292
+ - Add the guarded `release:publish` entrypoint that validates local npm auth,
293
+ checks the quality gate, verifies the published build metadata, and refreshes
294
+ the installed runtime before a release is considered complete.
295
+
296
+ ## 0.9.0-beta.32
297
+
298
+ ### Patch Changes
299
+
300
+ - Reject reviewer results without per-aspect evidence when the Work is finished, and distinguish missing evidence from an aspect-coverage mismatch in legacy stage validation.
301
+
302
+ ## 0.9.0-beta.31
303
+
304
+ ### Patch Changes
305
+
306
+ - Treat an authoritative fully-idle Antigravity root Stop as settlement evidence
307
+ for otherwise unobserved native children, while preserving their distinct
308
+ `settled_by_root` status rather than claiming individual completion.
309
+
310
+ ## 0.9.0-beta.30
311
+
312
+ ### Patch Changes
313
+
314
+ - Bound Antigravity prompt liveness from the most recent native activity and preserve clean recovery settlement after an expired prompt.
315
+
316
+ ## 0.9.0-beta.29
317
+
318
+ ### Patch Changes
319
+
320
+ - Recover completed stage boundaries without reopening accepted Work, and reject
321
+ stale coordinator identities and retired recovery generations.
322
+
323
+ Scope Antigravity terminal results and retained accounting to the current
324
+ conversation progress; preserve OpenCode and ACP provider errors for the actual
325
+ prompt. Keep configured adapter journals and bundled hook-denial behavior intact.
326
+
327
+ ## 0.9.0-beta.28
328
+
329
+ ### Patch Changes
330
+
331
+ - Accept an authoritative terminal Antigravity root result when the provider omits a root Stop hook, while retaining fail-closed behavior for an observed non-idle tree.
332
+
333
+ ## 0.9.0-beta.27
334
+
335
+ ### Patch Changes
336
+
337
+ - Resume retained native sessions from their active coordinator WorkSession, preserving the root launch record and rejecting lifecycle receipts from retired daemons.
338
+ - Propagate Antigravity lifecycle hooks to direct native children while preserving workspace hooks, and settle confirmed Codex system-error turns without losing provider failure evidence.
339
+
340
+ ## 0.9.0-beta.26
341
+
342
+ ### Patch Changes
343
+
344
+ - Reject interactive terminal input for Work and Stage result submission before routing or lifecycle dispatch. Require a pipe, input redirection, or result file so long JSON cannot be truncated by terminal input limits while progress appears to run indefinitely.
345
+
346
+ ## 0.9.0-beta.25
347
+
348
+ ### Patch Changes
349
+
350
+ - Publish the final serial CLI test isolation together with the current bundled harness fixes.
351
+
352
+ ## 0.9.0-beta.24
353
+
354
+ ### Patch Changes
355
+
356
+ - Retain supplemental files written to the check evidence directory in normal and recovered receipts. Keep required artifacts as minimum obligations and exclude symlinks.
357
+
358
+ Carry the verified cancellation guards, child settlement and process identity recovery fixes into the bundled harness adapters. Preserve native terminal events when an older Codex turn-page response arrives later.
359
+
360
+ - Run CLI tests in isolated, serial file processes so process-global test state cannot leak between suites.
361
+
362
+ ## 0.9.0-beta.23
363
+
364
+ ### Minor Changes
365
+
366
+ - bcfd8cb: Ship the six managed provider adapters with the CLI runtime, including their
367
+ daemon primitives and public adapter entrypoints. Add frozen mixed-execution
368
+ policy resolution and durable explicit external Work launch without changing a
369
+ same-profile external request into native delegation.
370
+
371
+ ## 0.9.0-beta.22
372
+
373
+ ### Patch Changes
374
+
375
+ - Reject conflicting or ambiguous lifecycle receipts before any harness can
376
+ mutate a Session binding. Restore a Work-start receipt when its binding
377
+ fails, so the same verified invocation remains safely retryable.
378
+
379
+ ## 0.9.0-beta.21
380
+
381
+ ### Patch Changes
382
+
383
+ - Validate every selected engine artifact and execute its pinned snapshot even when its version matches the router. Retain a new recovery interruption before root acknowledgement.
384
+
385
+ ## 0.9.0-beta.20
386
+
387
+ ### Patch Changes
388
+
389
+ - Verify recovery payloads and workspace drift before resuming, preserve staged Git changes, publish snapshots through a temporary directory, and allow explicit recovery restoration into fresh targets. Fence RUN mutations and late asynchronous Work completion while recovery is active.
390
+
391
+ ## 0.9.0-beta.19
392
+
393
+ ### Patch Changes
394
+
395
+ - Require a fresh trusted hook receipt from the physical Work owner before terminal stage or Work lifecycle commands can mutate a vNext RUN. Record terminal native-child observations at their originating Stage so unbound delegation is retained as a diagnostic instead of contaminating a later fan-out wave.
396
+
397
+ ## 0.9.0-beta.18
398
+
399
+ ### Patch Changes
400
+
401
+ - Add Factory Droid harness routing, native lifecycle receipts and physical Session usage ingestion. Preserve child identity and reject conflicting hook replays or inclusive Droid usage to prevent incorrect Work binding and double counting.
402
+
403
+ ## 0.9.0-beta.17
404
+
405
+ ### Patch Changes
406
+
407
+ - 0dd4da3: Verify current-attempt gate retries, deduplicate equivalent checks across gate references, retain archive locations across interrupted and repeated repairs, and align MERGE environment recovery guidance with source repair.
408
+
409
+ Snapshot SQLite consistently with VACUUM INTO and exclude local environment secrets, dependencies and caches from project/workspace snapshots.
410
+
411
+ Reconcile native child failures only against unique registered Work/Session attempts, retain non-restorable incomplete snapshots for failed evals, and expose unexpected merge-lane release failures for safe retry.
412
+
413
+ ## 0.9.0-beta.16
414
+
415
+ ### Patch Changes
416
+
417
+ - Make repair verification causal and retryable, preserve attempt-qualified
418
+ evidence, expose RUN continuation from persisted lifecycle state, and keep
419
+ native child ownership bound to the physical harness session.
420
+
421
+ ## 0.9.0-beta.15
422
+
423
+ ### Patch Changes
424
+
425
+ - Add owned temporary HTTP service supervision with allocated ports and readiness receipts. Prevent duplicate workspace bootstrap processes, retain resources when process ownership is uncertain, and share safe stop behavior between explicit stops and orphan reconciliation.
426
+
427
+ ## 0.9.0-beta.14
428
+
429
+ ### Patch Changes
430
+
431
+ - Audit runtime recovery: distinguish process owners from children, retain live check resources, await failed check startup cleanup, share managed workspace bootstrap between CODE/MERGE, correct assigned repair examples, and reject publication without canonical build provenance.
432
+
433
+ ## 0.9.0-beta.13
434
+
435
+ ### Patch Changes
436
+
437
+ - Make long-running CODE checks suspend-safe and prevent an expired lease from
438
+ stealing a live process. Publish `dd-flow/code-work-result@3`, which unifies
439
+ repair resolutions with evidence references assigned by the Work packet.
440
+
441
+ ## 0.9.0-beta.12
442
+
443
+ ### Patch Changes
444
+
445
+ - Return a failed integration gate to an explicit source CODE and independent
446
+ CODE-REVIEW repair cycle, instead of allowing product repairs in the
447
+ integration workspace.
448
+
449
+ ## 0.9.0-beta.11
450
+
451
+ ### Patch Changes
452
+
453
+ - Bind a native Codex subagent Work to the child Thread identifier supplied as
454
+ `agent_id`, rather than Codex's inherited root hook session identifier.
455
+
456
+ ## 0.9.0-beta.10
457
+
458
+ ### Patch Changes
459
+
460
+ - 4858f6d: Preserve complete CODE review findings through repair and require one evidenced resolution per assigned finding.
461
+
3
462
  ## 0.9.0-beta.9
4
463
 
5
464
  ### Patch Changes
@@ -829,6 +1288,7 @@ record` command with the bounded 15-probe contract.
829
1288
  - 16f68a3: Add router-native engine snapshot commands and routed project-command dispatch.
830
1289
 
831
1290
  Also include the runtime/dashboard compatibility wave needed by the current Memory Bank canon:
1291
+
832
1292
  - target-based dashboard `open`/`refresh` commands and related-command help;
833
1293
  - persisted FIFO lane waiters and merge wait-acquire specialization;
834
1294
  - `migration plan/report/verify` evidence helpers for controlled `mb-upgrade` runtime migrations;
package/README.md CHANGED
@@ -1,9 +1,52 @@
1
1
  # dd-flow-cli
2
2
 
3
+ ## Managed temporary HTTP services
4
+
5
+ For an interactive scenario, `runtime process start --run <RUN-ID>
6
+ --project-root <absolute-project> --command '<project command>' --ports api
7
+ --ready-port api --ready-path /health --json --progress-jsonl` runs a foreground
8
+ supervisor. The command receives `DD_FLOW_PORT_API`; use it instead of a fixed
9
+ port. Additional comma-separated names receive equivalent environment variables.
10
+ The ready event points to a receipt and logs under the RUN's `runtime/` folder.
11
+ Keep the tool invocation alive, run the scenario using the allocated ports,
12
+ then execute the exact `stop_command` in that receipt and await the supervisor.
13
+ Readiness is not a scenario pass. Keep semantic/scenario evidence separately.
14
+ Never use a broad `pkill`/`killall`. A failed owned stop retains resources.
15
+
3
16
  `dd-flow-cli` is the mechanical control layer for `dd-flow` workflows.
4
17
 
5
18
  It does not replace Memory Bank prompts and does not make product, design, merge, or verification judgments. Prompts own intent, route selection, planning depth, evidence meaning, and semantic readiness. The CLI owns explicit local state: projects, protocols, Codex session bindings, transitions, worktree records, lanes, locks, merge queue jobs, hook records, and audit events.
6
19
 
20
+ ## Factory Droid harness
21
+
22
+ Configure `droid-cli` in `~/.dd-flow/harnesses.json` with absolute
23
+ `adapter_command` (`dd-droid`) and `runtime_command` (`droid`) paths. Agent
24
+ profiles use the `droid` alias; the adapter receives `--droid-bin`.
25
+
26
+ The controlled adapter sends `dd-flow/droid-tool-event@1` JSON to
27
+ `dd-flow droid event handle --project-root <root> --json`. Events include a
28
+ stable `event_id`, `daemon_id`, `phase` (`before` or `after`), native Session
29
+ identity and parent, absolute Session directory, `Execute` input, observed
30
+ profile and transcript path. Before a lifecycle invocation, the returned
31
+ `hookSpecificOutput.updatedInput` adds its one-use `--hook-event-id` receipt.
32
+ The event ID belongs to the native hook invocation and is reused only for
33
+ transport retries. Session success is established by the Work contract.
34
+
35
+ `dd-flow droid usage ingest --project-root <root> --json` accepts cumulative
36
+ per-Session counters with explicit `usage_scope: physical_session` and
37
+ `completeness: complete|partial`. Inclusive root counters are rejected;
38
+ partial windows remain unavailable in RUN totals until complete evidence
39
+ arrives. Keep inclusive provider totals in adapter evidence for reconciliation.
40
+
41
+ ## Check evidence
42
+
43
+ Checks write evidence into their invocation's `DD_FLOW_EVIDENCE_DIR`. Receipts
44
+ retain and hash every regular file in that directory, including nested files.
45
+ `required_artifacts` specifies the minimum files needed to pass, so an empty
46
+ list still permits supplemental screenshots or reports. Missing required files
47
+ fail the check. Symlinks are not followed or registered. The same collection
48
+ rules apply when recovering a detached check from its completion marker.
49
+
7
50
  ## Runtime Model
8
51
 
9
52
  Root local database:
@@ -409,3 +452,25 @@ pnpm build
409
452
  ```
410
453
 
411
454
  Manual smoke checks should use a temporary `DD_FLOW_HOME` when they do not intentionally inspect the operator's real local state.
455
+
456
+ ### RUN status during recovery
457
+
458
+ A controller failure pauses the logical RUN without rewriting its Stage/Work
459
+ outcomes. Accepted pause/stop or recovery intent immediately persists `paused` in the RUN row,
460
+ `index_json`, and `run.json`. A trusted recovery acknowledgement restores the
461
+ operational status; an existing Stage/Work pause remains paused. Terminal RUNs
462
+ are never reopened. Physical tree settlement remains a separate control receipt.
463
+
464
+ Legacy stores with a fenced recovery may still contain `running`. After building,
465
+ inspect one exact RUN with:
466
+
467
+ ```sh
468
+ node tools/repair-paused-run-status.mjs --home /path/to/dd-flow-home --project PRJ-001-project --run RUN-001-eval-subject
469
+ ```
470
+
471
+ Add `--apply` to repair it. This requires the latest recovery to be draining, sealed or resuming, saves the original row and runtime JSON
472
+ beside `run.json`, and changes no schema, engine binding or recovery capture.
473
+ It does not claim physical settlement or alter its receipts. `--cancel-abandoned`
474
+ explicitly cancels an abandoned fixture only when the project directory is absent
475
+ and it has no Work, Session, controller or recovery history. Historical experiment
476
+ engine snapshots remain pinned; rebuild/release the engine for future executions.
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "cli_package": "@deksden-com/dd-flow-cli",
3
- "cli_version": "0.9.0-beta.9",
4
- "cli_commit": "7c6e37d05c8039349dee26fb7446abd6dcaef136",
5
- "built_at": "2026-09-04T15:11:45.164Z",
3
+ "cli_version": "0.9.0-beta.90",
4
+ "cli_commit": "a4e9733f871af5032fc372d324d8fd0dfd2ec44f",
5
+ "built_at": "2026-09-21T11:54:11.387Z",
6
6
  "built_with_canon": {
7
- "version": "4.0.1",
8
- "commit": "71c62fccbfa32c61ae77874ff42c8f9fb19e9f81",
7
+ "version": "4.1.1",
8
+ "commit": "d1a6081ab15ab92ac917ff5d037121a40c709db1",
9
9
  "flow_contract": "dd-flow-canonical-2026-08",
10
- "repo_root": "/Users/deksden/Documents/_Projects/dd-memorybank",
11
- "memorybank_root": "/Users/deksden/Documents/_Projects/dd-memorybank/.memory-bank",
12
- "flow_root": "/Users/deksden/Documents/_Projects/dd-memorybank/.memory-bank/dd-flow",
10
+ "repo_root": "/home/runner/work/dd-flow-cli/dd-flow-cli/dd-memorybank",
11
+ "memorybank_root": "/home/runner/work/dd-flow-cli/dd-flow-cli/dd-memorybank/.memory-bank",
12
+ "flow_root": "/home/runner/work/dd-flow-cli/dd-flow-cli/dd-memorybank/.memory-bank/dd-flow",
13
13
  "layout": "dot_memory_bank"
14
14
  }
15
15
  }