@deksden-com/dd-flow-cli 0.9.0-beta.8 → 0.9.0-beta.81

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 (138) hide show
  1. package/CHANGELOG.md +402 -0
  2. package/README.md +65 -0
  3. package/dist/build-info.json +8 -8
  4. package/dist/cli/command-inputs.js +300 -0
  5. package/dist/cli/help.js +81 -9
  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 +1344 -376
  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/config.js +11 -8
  63. package/dist/services/controller-fanout.js +116 -0
  64. package/dist/services/dashboard.js +103 -31
  65. package/dist/services/engines.js +121 -76
  66. package/dist/services/eval-snapshots.js +750 -73
  67. package/dist/services/execution-policy.js +170 -0
  68. package/dist/services/external-work-launch.js +110 -0
  69. package/dist/services/harness-adapter.js +147 -24
  70. package/dist/services/harness-config.js +2 -0
  71. package/dist/services/hooks.js +575 -293
  72. package/dist/services/lanes.js +61 -53
  73. package/dist/services/lifecycle-command.js +87 -7
  74. package/dist/services/lifecycle-invocations.js +835 -0
  75. package/dist/services/managed-daemon-binding.js +38 -0
  76. package/dist/services/managed-processes.js +283 -27
  77. package/dist/services/merge-queue.js +179 -104
  78. package/dist/services/merge-server.js +73 -28
  79. package/dist/services/migrations.js +14 -9
  80. package/dist/services/native-daemon-history.js +49 -0
  81. package/dist/services/native-session-control.js +39 -0
  82. package/dist/services/plan-runtime.js +19 -8
  83. package/dist/services/plans.js +28 -25
  84. package/dist/services/projects.js +18 -5
  85. package/dist/services/prompts.js +23 -16
  86. package/dist/services/protocols.js +64 -20
  87. package/dist/services/recovery-observation-budget.js +61 -0
  88. package/dist/services/recovery-snapshot-database.js +107 -0
  89. package/dist/services/run-control-receipt.js +56 -0
  90. package/dist/services/run-control-worker.js +363 -0
  91. package/dist/services/run-control.js +876 -0
  92. package/dist/services/run-controller-adapter.js +222 -0
  93. package/dist/services/run-controller-capture.js +134 -0
  94. package/dist/services/run-controller-process.js +189 -0
  95. package/dist/services/run-controller-recovery.js +222 -0
  96. package/dist/services/run-controller-state.js +36 -0
  97. package/dist/services/run-controller.js +779 -0
  98. package/dist/services/run-engine-bindings.js +1 -1
  99. package/dist/services/run-fork.js +138 -0
  100. package/dist/services/run-observations.js +112 -0
  101. package/dist/services/run-recovery-runtime.js +69 -0
  102. package/dist/services/run-recovery.js +343 -0
  103. package/dist/services/runs.js +368 -74
  104. package/dist/services/runtime-budget.js +434 -0
  105. package/dist/services/runtime-scope-capture.js +50 -0
  106. package/dist/services/runtime-scope-control.js +450 -0
  107. package/dist/services/runtime-scope-resume.js +565 -0
  108. package/dist/services/runtime-scope-stop.js +99 -0
  109. package/dist/services/runtime-scope-worker.js +243 -0
  110. package/dist/services/runtime-service.js +97 -0
  111. package/dist/services/schema-validation.js +10 -8
  112. package/dist/services/sessions.js +35 -69
  113. package/dist/services/stage-blocker.js +17 -7
  114. package/dist/services/stage-context.js +44 -18
  115. package/dist/services/stage-lifecycle.js +99 -102
  116. package/dist/services/stage-pause.js +69 -28
  117. package/dist/services/usage.js +37 -93
  118. package/dist/services/vnext-code-review.js +189 -85
  119. package/dist/services/vnext-code.js +257 -243
  120. package/dist/services/vnext-execution-profile.js +5 -3
  121. package/dist/services/vnext-fanout.js +134 -19
  122. package/dist/services/vnext-merge.js +285 -102
  123. package/dist/services/vnext-plan-review.js +148 -94
  124. package/dist/services/vnext-plan.js +141 -72
  125. package/dist/services/vnext-protocolize.js +129 -56
  126. package/dist/services/vnext-specify.js +87 -64
  127. package/dist/services/work-registry.js +701 -164
  128. package/dist/services/workspace-bootstrap.js +76 -0
  129. package/dist/services/worktrees.js +85 -35
  130. package/dist/shared/entity-references.js +8 -0
  131. package/dist/shared/errors.js +12 -0
  132. package/dist/storage/database.js +444 -32
  133. package/dist/storage/paths.js +17 -4
  134. package/dist/storage/work-references.js +23 -0
  135. package/dist/storage/writer-contract.js +77 -0
  136. package/dist/storage/writer-migration.js +102 -0
  137. package/package.json +11 -4
  138. package/tools/repair-paused-run-status.mjs +59 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,407 @@
1
1
  # @deksden-com/dd-flow-cli
2
2
 
3
+ ## 0.9.0-beta.81
4
+
5
+ ### Patch Changes
6
+
7
+ - 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.
8
+
9
+ ## 0.9.0-beta.75
10
+
11
+ ### Patch Changes
12
+
13
+ - Use adapter-owned native delegation instructions for Codex and the other
14
+ supported harnesses, preserving independent child Work ownership and clearer
15
+ native-session diagnostics across fan-out and recovery.
16
+
17
+ ## 0.9.0-beta.64
18
+
19
+ ### Patch Changes
20
+
21
+ - Reserve SQLite writes explicitly, retain trusted lifecycle outcomes across harnesses,
22
+ continuously fence failed managed runs, and recover committed Work start packets and
23
+ replies without repeating effects. Revalidate stage inputs before acceptance and keep
24
+ the causal failure when adapter, publication or cleanup also fails. Writer contract 2
25
+ requires fresh campaign and resource homes; historical contract-1 stores are not
26
+ implicitly upgraded. Recovery-generation Work starts keep separate immutable packets
27
+ per WorkSession, preserving the interrupted attempt's evidence.
28
+
29
+ ## 0.9.0-beta.63
30
+
31
+ ### Patch Changes
32
+
33
+ - Accept the qualified retained-subagent ZCode bridge and settle a control only
34
+ when a durable startup rejection proves that it created no native resources.
35
+
36
+ ## 0.9.0-beta.62
37
+
38
+ ### Patch Changes
39
+
40
+ - Verify a controlled native Session with a fresh inspection after cancellation before treating its tree as settled.
41
+
42
+ ## 0.9.0-beta.61
43
+
44
+ ### Patch Changes
45
+
46
+ - Keep the scope reconciliation contract test type-safe.
47
+
48
+ ## 0.9.0-beta.60
49
+
50
+ ### Patch Changes
51
+
52
+ - Document and verify explicit reconciliation of a drained runtime scope without automatic observer respawn.
53
+
54
+ ## 0.9.0-beta.59
55
+
56
+ ### Patch Changes
57
+
58
+ - Keep bundled ZCode close-contract fixtures aligned with retained native topology checks.
59
+
60
+ ## 0.9.0-beta.58
61
+
62
+ ### Patch Changes
63
+
64
+ - Keep local task artifacts outside the release lint scope.
65
+
66
+ ## 0.9.0-beta.57
67
+
68
+ ### Patch Changes
69
+
70
+ - Bound recovery observation, expose safe external reconciliation, and require
71
+ complete non-resident ZCode session-tree evidence before a stopped run settles.
72
+
73
+ ## 0.9.0-beta.56
74
+
75
+ ### Patch Changes
76
+
77
+ - 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.
78
+
79
+ ## 0.9.0-beta.55
80
+
81
+ ### Patch Changes
82
+
83
+ - 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.
84
+
85
+ ## 0.9.0-beta.54
86
+
87
+ ### Patch Changes
88
+
89
+ - 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.
90
+
91
+ ## 0.9.0-beta.53
92
+
93
+ ### Patch Changes
94
+
95
+ - 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.
96
+
97
+ ## 0.9.0-beta.52
98
+
99
+ ### Patch Changes
100
+
101
+ - 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.
102
+
103
+ ## 0.9.0-beta.51
104
+
105
+ ### Patch Changes
106
+
107
+ - Settle a check receipt when its confirmed process identity has exited, even if an older registration has no parent-owner PID.
108
+
109
+ ## 0.9.0-beta.50
110
+
111
+ ### Patch Changes
112
+
113
+ - 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.
114
+ - 422413d: Reuse completed check evidence consistently across CODE, CODE-REVIEW and MERGE,
115
+ with validated inputs, artifacts, retry handling and concurrent execution guards.
116
+
117
+ ## 0.9.0-beta.49
118
+
119
+ ### Patch Changes
120
+
121
+ - Treat a completed CODE gate command that returns `code_gate_failed` as terminal
122
+ recovery evidence, so the coordinator creates the returned repair Work instead
123
+ of waiting indefinitely or duplicating the aggregate gate.
124
+
125
+ ## 0.9.0-beta.48
126
+
127
+ ### Patch Changes
128
+
129
+ - Recheck a controller lease after a transient runtime-registry write failure before
130
+ dispatching more work, while retaining the hard stop for an explicit lease loss.
131
+
132
+ ## 0.9.0-beta.47
133
+
134
+ ### Patch Changes
135
+
136
+ - Initialize the managed Codex hook home for external worker sessions so their
137
+ first `work start` receives a trusted session binding.
138
+
139
+ ## 0.9.0-beta.44
140
+
141
+ ### Patch Changes
142
+
143
+ - Allow a managed native session prompt to run for two hours before the outer
144
+ adapter watchdog cancels it, while retaining the existing short timeout for
145
+ non-productive adapter calls.
146
+
147
+ ## 0.9.0-beta.43
148
+
149
+ ### Patch Changes
150
+
151
+ - 78e3eaf: Keep Codex prompt and inspection receipts compact by returning historical turn
152
+ identities and statuses without duplicating their item transcripts. Preserve the
153
+ current result, final answer, native history reference, descendants and observed
154
+ profile so long-running sessions remain within the bounded adapter reply limit.
155
+
156
+ ## 0.9.0-beta.42
157
+
158
+ ### Patch Changes
159
+
160
+ - 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.
161
+
162
+ ## 0.9.0-beta.41
163
+
164
+ ### Patch Changes
165
+
166
+ - 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.
167
+
168
+ ## 0.9.0-beta.40
169
+
170
+ ### Patch Changes
171
+
172
+ - 2b4b714: Admit ordinary managed HITL answers through their exact generation-bound native
173
+ prompt, preserving pause, Session, raw-answer and prompt integrity. Keep accepted
174
+ answer intent separate from physical delivery so stop drains native operations
175
+ and recovery can deliver an unanswered pause without replaying completed work.
176
+ - c5eeb6f: Capture owned Codex home configuration and evidence without copying shared host
177
+ history or ephemeral helper links. Reuse the provisioned shared-entry contract
178
+ and retain strict rejection of unrelated external recovery artifact links.
179
+
180
+ ## 0.9.0-beta.39
181
+
182
+ ### Patch Changes
183
+
184
+ - 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.
185
+
186
+ 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.
187
+
188
+ Discover native Codex children from spawn receipts and release terminal failed provider turns only after a fresh settled-tree observation.
189
+
190
+ ## 0.9.0-beta.38
191
+
192
+ ### Patch Changes
193
+
194
+ - 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.
195
+
196
+ ## 0.9.0-beta.37
197
+
198
+ ### Patch Changes
199
+
200
+ - 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.
201
+
202
+ ## 0.9.0-beta.36
203
+
204
+ ### Patch Changes
205
+
206
+ - 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.
207
+
208
+ ## 0.9.0-beta.35
209
+
210
+ ### Patch Changes
211
+
212
+ - Wait for npm registry propagation and verify the annotated tag created by Changesets before completing a guarded release.
213
+ - Keep AGY native outcomes separate from settlement, invalidate old child settlement on new activity, and reserve productive operations before persistence across adapters.
214
+ - Retain process-local native Stop observation in no-flow technical probes without installing project hooks or forwarding flow mutations.
215
+ - 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.
216
+ - 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.
217
+
218
+ ## 0.9.0-beta.34
219
+
220
+ ### Patch Changes
221
+
222
+ - Create and verify the immutable annotated Git tag as part of the guarded release publication.
223
+
224
+ ## 0.9.0-beta.33
225
+
226
+ ### Patch Changes
227
+
228
+ - Add the guarded `release:publish` entrypoint that validates local npm auth,
229
+ checks the quality gate, verifies the published build metadata, and refreshes
230
+ the installed runtime before a release is considered complete.
231
+
232
+ ## 0.9.0-beta.32
233
+
234
+ ### Patch Changes
235
+
236
+ - 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.
237
+
238
+ ## 0.9.0-beta.31
239
+
240
+ ### Patch Changes
241
+
242
+ - Treat an authoritative fully-idle Antigravity root Stop as settlement evidence
243
+ for otherwise unobserved native children, while preserving their distinct
244
+ `settled_by_root` status rather than claiming individual completion.
245
+
246
+ ## 0.9.0-beta.30
247
+
248
+ ### Patch Changes
249
+
250
+ - Bound Antigravity prompt liveness from the most recent native activity and preserve clean recovery settlement after an expired prompt.
251
+
252
+ ## 0.9.0-beta.29
253
+
254
+ ### Patch Changes
255
+
256
+ - Recover completed stage boundaries without reopening accepted Work, and reject
257
+ stale coordinator identities and retired recovery generations.
258
+
259
+ Scope Antigravity terminal results and retained accounting to the current
260
+ conversation progress; preserve OpenCode and ACP provider errors for the actual
261
+ prompt. Keep configured adapter journals and bundled hook-denial behavior intact.
262
+
263
+ ## 0.9.0-beta.28
264
+
265
+ ### Patch Changes
266
+
267
+ - 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.
268
+
269
+ ## 0.9.0-beta.27
270
+
271
+ ### Patch Changes
272
+
273
+ - Resume retained native sessions from their active coordinator WorkSession, preserving the root launch record and rejecting lifecycle receipts from retired daemons.
274
+ - Propagate Antigravity lifecycle hooks to direct native children while preserving workspace hooks, and settle confirmed Codex system-error turns without losing provider failure evidence.
275
+
276
+ ## 0.9.0-beta.26
277
+
278
+ ### Patch Changes
279
+
280
+ - 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.
281
+
282
+ ## 0.9.0-beta.25
283
+
284
+ ### Patch Changes
285
+
286
+ - Publish the final serial CLI test isolation together with the current bundled harness fixes.
287
+
288
+ ## 0.9.0-beta.24
289
+
290
+ ### Patch Changes
291
+
292
+ - Retain supplemental files written to the check evidence directory in normal and recovered receipts. Keep required artifacts as minimum obligations and exclude symlinks.
293
+
294
+ 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.
295
+
296
+ - Run CLI tests in isolated, serial file processes so process-global test state cannot leak between suites.
297
+
298
+ ## 0.9.0-beta.23
299
+
300
+ ### Minor Changes
301
+
302
+ - bcfd8cb: Ship the six managed provider adapters with the CLI runtime, including their
303
+ daemon primitives and public adapter entrypoints. Add frozen mixed-execution
304
+ policy resolution and durable explicit external Work launch without changing a
305
+ same-profile external request into native delegation.
306
+
307
+ ## 0.9.0-beta.22
308
+
309
+ ### Patch Changes
310
+
311
+ - Reject conflicting or ambiguous lifecycle receipts before any harness can
312
+ mutate a Session binding. Restore a Work-start receipt when its binding
313
+ fails, so the same verified invocation remains safely retryable.
314
+
315
+ ## 0.9.0-beta.21
316
+
317
+ ### Patch Changes
318
+
319
+ - 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.
320
+
321
+ ## 0.9.0-beta.20
322
+
323
+ ### Patch Changes
324
+
325
+ - 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.
326
+
327
+ ## 0.9.0-beta.19
328
+
329
+ ### Patch Changes
330
+
331
+ - 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.
332
+
333
+ ## 0.9.0-beta.18
334
+
335
+ ### Patch Changes
336
+
337
+ - 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.
338
+
339
+ ## 0.9.0-beta.17
340
+
341
+ ### Patch Changes
342
+
343
+ - 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.
344
+
345
+ Snapshot SQLite consistently with VACUUM INTO and exclude local environment secrets, dependencies and caches from project/workspace snapshots.
346
+
347
+ 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.
348
+
349
+ ## 0.9.0-beta.16
350
+
351
+ ### Patch Changes
352
+
353
+ - Make repair verification causal and retryable, preserve attempt-qualified
354
+ evidence, expose RUN continuation from persisted lifecycle state, and keep
355
+ native child ownership bound to the physical harness session.
356
+
357
+ ## 0.9.0-beta.15
358
+
359
+ ### Patch Changes
360
+
361
+ - 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.
362
+
363
+ ## 0.9.0-beta.14
364
+
365
+ ### Patch Changes
366
+
367
+ - 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.
368
+
369
+ ## 0.9.0-beta.13
370
+
371
+ ### Patch Changes
372
+
373
+ - Make long-running CODE checks suspend-safe and prevent an expired lease from
374
+ stealing a live process. Publish `dd-flow/code-work-result@3`, which unifies
375
+ repair resolutions with evidence references assigned by the Work packet.
376
+
377
+ ## 0.9.0-beta.12
378
+
379
+ ### Patch Changes
380
+
381
+ - Return a failed integration gate to an explicit source CODE and independent
382
+ CODE-REVIEW repair cycle, instead of allowing product repairs in the
383
+ integration workspace.
384
+
385
+ ## 0.9.0-beta.11
386
+
387
+ ### Patch Changes
388
+
389
+ - Bind a native Codex subagent Work to the child Thread identifier supplied as
390
+ `agent_id`, rather than Codex's inherited root hook session identifier.
391
+
392
+ ## 0.9.0-beta.10
393
+
394
+ ### Patch Changes
395
+
396
+ - 4858f6d: Preserve complete CODE review findings through repair and require one evidenced resolution per assigned finding.
397
+
398
+ ## 0.9.0-beta.9
399
+
400
+ ### Patch Changes
401
+
402
+ - f156ad8: Use harness-qualified native child capacity for PLAN-REVIEW, CODE and
403
+ CODE-REVIEW fan-out instead of creating flow-owned capacity probes.
404
+
3
405
  ## 0.9.0-beta.8
4
406
 
5
407
  ### Patch Changes
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.8",
4
- "cli_commit": "98af28f2e50816d1042ee2a75d2f8133b655ffcb",
5
- "built_at": "2026-09-04T09:50:57.779Z",
3
+ "cli_version": "0.9.0-beta.81",
4
+ "cli_commit": "0e1bd85b82868a501bc9e368e103fe288445370a",
5
+ "built_at": "2026-09-20T10:24:22.045Z",
6
6
  "built_with_canon": {
7
- "version": "4.0.1",
8
- "commit": "7bd6761e6bd4217ceec08e2f9e98387b60545661",
7
+ "version": "4.1.1",
8
+ "commit": "97f811d33c212ae3497020178b1ed825c7c3ebac",
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
  }