@deksden-com/dd-flow-cli 0.9.0-beta.10 → 0.9.0-beta.103

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 (151) hide show
  1. package/CHANGELOG.md +491 -0
  2. package/README.md +68 -0
  3. package/dist/build-info.json +8 -8
  4. package/dist/cli/command-inputs.js +305 -0
  5. package/dist/cli/help.js +89 -13
  6. package/dist/cli/hook-ingress.js +77 -0
  7. package/dist/cli/input-preparation.js +116 -0
  8. package/dist/cli/run-cli.js +1437 -384
  9. package/dist/cli.js +6 -2
  10. package/dist/harness-runtime/DD-ZCODE.md +99 -0
  11. package/dist/harness-runtime/bin/dd-agy.mjs +52 -0
  12. package/dist/harness-runtime/bin/dd-codex.mjs +25 -0
  13. package/dist/harness-runtime/bin/dd-droid.mjs +33 -0
  14. package/dist/harness-runtime/bin/dd-grok.mjs +30 -0
  15. package/dist/harness-runtime/bin/dd-opencode.mjs +21 -0
  16. package/dist/harness-runtime/bin/dd-zcode.mjs +83 -0
  17. package/dist/harness-runtime/lib/agy-hooks.d.mts +1 -0
  18. package/dist/harness-runtime/lib/agy-hooks.mjs +9 -0
  19. package/dist/harness-runtime/lib/daemon-operations.mjs +226 -0
  20. package/dist/harness-runtime/lib/dd-agy-daemon.d.mts +6 -0
  21. package/dist/harness-runtime/lib/dd-agy-daemon.mjs +502 -0
  22. package/dist/harness-runtime/lib/dd-agy.mjs +59 -0
  23. package/dist/harness-runtime/lib/dd-codex-daemon.d.mts +1 -0
  24. package/dist/harness-runtime/lib/dd-codex-daemon.mjs +149 -0
  25. package/dist/harness-runtime/lib/dd-codex.mjs +563 -0
  26. package/dist/harness-runtime/lib/dd-droid-daemon.mjs +125 -0
  27. package/dist/harness-runtime/lib/dd-droid.mjs +475 -0
  28. package/dist/harness-runtime/lib/dd-grok-daemon.mjs +387 -0
  29. package/dist/harness-runtime/lib/dd-grok.mjs +174 -0
  30. package/dist/harness-runtime/lib/dd-opencode-daemon.mjs +219 -0
  31. package/dist/harness-runtime/lib/dd-opencode.mjs +98 -0
  32. package/dist/harness-runtime/lib/dd-zcode-daemon.mjs +640 -0
  33. package/dist/harness-runtime/lib/dd-zcode.mjs +978 -0
  34. package/dist/harness-runtime/lib/delegation-instructions.d.mts +10 -0
  35. package/dist/harness-runtime/lib/delegation-instructions.mjs +135 -0
  36. package/dist/harness-runtime/lib/dispatch-fence.mjs +14 -0
  37. package/dist/harness-runtime/lib/driver-recovery.mjs +129 -0
  38. package/dist/harness-runtime/lib/droid-observation.mjs +66 -0
  39. package/dist/harness-runtime/lib/managed-daemon.mjs +296 -0
  40. package/dist/harness-runtime/lib/model-observations.mjs +77 -0
  41. package/dist/harness-runtime/lib/native-hook-command.d.mts +1 -0
  42. package/dist/harness-runtime/lib/native-hook-command.mjs +108 -0
  43. package/dist/harness-runtime/lib/observation-clock.mjs +36 -0
  44. package/dist/harness-runtime/lib/operation-context.mjs +5 -0
  45. package/dist/harness-runtime/lib/operation-errors.mjs +19 -0
  46. package/dist/harness-runtime/lib/process-json.mjs +71 -0
  47. package/dist/harness-runtime/lib/process-snapshot.mjs +10 -0
  48. package/dist/harness-runtime/lib/runner-events.mjs +200 -0
  49. package/dist/harness-runtime/lib/runner-lock.mjs +42 -0
  50. package/dist/harness-runtime/lib/session-settlement.mjs +30 -0
  51. package/dist/harness-runtime/lib/tool-observations.d.mts +17 -0
  52. package/dist/harness-runtime/lib/tool-observations.mjs +153 -0
  53. package/dist/harness-runtime/lib/zcode-usage.mjs +54 -0
  54. package/dist/schemas/agent-profile.schema.json +1 -1
  55. package/dist/schemas/code-review-result.schema.json +1 -1
  56. package/dist/schemas/code-work-batch.schema.json +3 -3
  57. package/dist/schemas/code-work-result.schema.json +3 -3
  58. package/dist/schemas/plan-review-result.schema.json +2 -2
  59. package/dist/schemas/run-control-receipt.schema.json +99 -0
  60. package/dist/schemas/run-control-request.schema.json +36 -0
  61. package/dist/schemas/vnext-protocol-plan.schema.json +2 -2
  62. package/dist/services/canon.js +11 -8
  63. package/dist/services/cleanup.js +57 -13
  64. package/dist/services/cli-operation-classifier.js +22 -24
  65. package/dist/services/code-checks.js +583 -99
  66. package/dist/services/codex-hook-delivery.js +28 -0
  67. package/dist/services/command-context.js +80 -0
  68. package/dist/services/config.js +11 -8
  69. package/dist/services/continuation-outcome.js +20 -0
  70. package/dist/services/controller-fanout.js +165 -0
  71. package/dist/services/dashboard.js +103 -31
  72. package/dist/services/engines.js +121 -76
  73. package/dist/services/eval-snapshots.js +952 -83
  74. package/dist/services/execution-policy.js +170 -0
  75. package/dist/services/external-work-launch.js +165 -0
  76. package/dist/services/harness-adapter.js +147 -24
  77. package/dist/services/harness-config.js +2 -0
  78. package/dist/services/hooks.js +596 -300
  79. package/dist/services/lanes.js +61 -53
  80. package/dist/services/lifecycle-command.js +103 -17
  81. package/dist/services/lifecycle-contract.js +30 -0
  82. package/dist/services/lifecycle-invocations.js +1128 -0
  83. package/dist/services/managed-daemon-binding.js +38 -0
  84. package/dist/services/managed-processes.js +283 -27
  85. package/dist/services/merge-queue.js +179 -104
  86. package/dist/services/merge-server.js +73 -28
  87. package/dist/services/migrations.js +14 -9
  88. package/dist/services/native-daemon-history.js +49 -0
  89. package/dist/services/native-session-control.js +39 -0
  90. package/dist/services/plan-runtime.js +19 -8
  91. package/dist/services/plans.js +28 -25
  92. package/dist/services/projects.js +18 -5
  93. package/dist/services/prompts.js +25 -16
  94. package/dist/services/protocols.js +64 -20
  95. package/dist/services/recovery-observation-budget.js +61 -0
  96. package/dist/services/recovery-snapshot-database.js +107 -0
  97. package/dist/services/repair-intents.js +40 -0
  98. package/dist/services/review-copy.js +136 -0
  99. package/dist/services/run-control-receipt.js +56 -0
  100. package/dist/services/run-control-worker.js +368 -0
  101. package/dist/services/run-control.js +876 -0
  102. package/dist/services/run-controller-adapter.js +231 -0
  103. package/dist/services/run-controller-capture.js +136 -0
  104. package/dist/services/run-controller-process.js +189 -0
  105. package/dist/services/run-controller-recovery.js +222 -0
  106. package/dist/services/run-controller-state.js +36 -0
  107. package/dist/services/run-controller.js +803 -0
  108. package/dist/services/run-engine-bindings.js +1 -1
  109. package/dist/services/run-fork.js +138 -0
  110. package/dist/services/run-observations.js +112 -0
  111. package/dist/services/run-recovery-runtime.js +69 -0
  112. package/dist/services/run-recovery.js +343 -0
  113. package/dist/services/runs.js +371 -74
  114. package/dist/services/runtime-budget.js +439 -0
  115. package/dist/services/runtime-command.js +43 -0
  116. package/dist/services/runtime-scope-capture.js +50 -0
  117. package/dist/services/runtime-scope-control.js +450 -0
  118. package/dist/services/runtime-scope-resume.js +565 -0
  119. package/dist/services/runtime-scope-stop.js +159 -0
  120. package/dist/services/runtime-scope-worker.js +243 -0
  121. package/dist/services/runtime-service.js +97 -0
  122. package/dist/services/schema-validation.js +10 -8
  123. package/dist/services/sessions.js +35 -69
  124. package/dist/services/stage-blocker.js +17 -7
  125. package/dist/services/stage-context.js +44 -18
  126. package/dist/services/stage-lifecycle.js +99 -102
  127. package/dist/services/stage-pause.js +84 -55
  128. package/dist/services/stage-work-graph.js +35 -0
  129. package/dist/services/usage.js +37 -93
  130. package/dist/services/vnext-code-review.js +190 -80
  131. package/dist/services/vnext-code.js +283 -248
  132. package/dist/services/vnext-execution-profile.js +5 -3
  133. package/dist/services/vnext-fanout.js +172 -17
  134. package/dist/services/vnext-merge.js +296 -105
  135. package/dist/services/vnext-plan-review.js +141 -94
  136. package/dist/services/vnext-plan.js +142 -69
  137. package/dist/services/vnext-protocolize.js +132 -57
  138. package/dist/services/vnext-specify.js +95 -65
  139. package/dist/services/work-registry.js +891 -162
  140. package/dist/services/workspace-bootstrap.js +76 -0
  141. package/dist/services/workspace-files.js +83 -0
  142. package/dist/services/worktrees.js +88 -36
  143. package/dist/shared/entity-references.js +8 -0
  144. package/dist/shared/errors.js +12 -0
  145. package/dist/storage/database.js +459 -32
  146. package/dist/storage/paths.js +17 -4
  147. package/dist/storage/work-references.js +23 -0
  148. package/dist/storage/writer-contract.js +77 -0
  149. package/dist/storage/writer-migration.js +102 -0
  150. package/package.json +24 -13
  151. package/tools/repair-paused-run-status.mjs +59 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,495 @@
1
1
  # @deksden-com/dd-flow-cli
2
2
 
3
+ ## 0.9.0-beta.96
4
+
5
+ ### Patch Changes
6
+
7
+ - 4769ad6: Settle early lifecycle rejections against their native calls, reconcile retained provider capacity before continuing, and preserve causal outcomes across AGY, Grok, Droid, OpenCode, Codex, and ZCode adapters.
8
+
9
+ ## 0.9.0-beta.95
10
+
11
+ ### Patch Changes
12
+
13
+ - Qualify the exact ZCode 0.16.9 / zcode-acp 0.46.7 contract @2 tuple after live public-command receipts, and reject inferred or failed native completion evidence.
14
+
15
+ ## 0.9.0-beta.94
16
+
17
+ ### Patch Changes
18
+
19
+ - Admit public ZCode lifecycle commands through their native receipt without exposing runtime-owned invocation IDs.
20
+
21
+ ## 0.9.0-beta.93
22
+
23
+ ### Patch Changes
24
+
25
+ - Move native ZCode request usage accounting into dd-zcode, preserve causal native errors, and distinguish bridge contract support from exact-tuple runtime qualification.
26
+
27
+ ## 0.9.0-beta.92
28
+
29
+ ### Patch Changes
30
+
31
+ - 03fea2a: Accept the behaviorally qualified ZCode 0.16.9 and zcode-acp 0.43.2 harness overlay tuple in the managed runtime gate.
32
+
33
+ ## 0.9.0-beta.91
34
+
35
+ ### Patch Changes
36
+
37
+ - 8650f0f: Unify managed lifecycle command syntax, preserve terminal preparation errors,
38
+ bound unchanged retries, and retain causal controller failures through MERGE.
39
+
40
+ ## 0.9.0-beta.90
41
+
42
+ ### Patch Changes
43
+
44
+ - 18e2627: Require settled fan-out stages to complete their semantic decision and invoke
45
+ the authoritative finish command before assuming a repair exists. Report the
46
+ controller action that failed to make progress, and hand off repair Work only
47
+ after an actual lifecycle response registers it.
48
+ - 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.
49
+
50
+ ## 0.9.0-beta.89
51
+
52
+ ### Minor Changes
53
+
54
+ - 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.
55
+
56
+ ## 0.9.0-beta.88
57
+
58
+ ### Patch Changes
59
+
60
+ - 5f3806c: Keep managed HITL answer paths inside retained runtime authority, preserve early
61
+ native CLI failures, and fail controllers conclusively when an answer turn does
62
+ not resume its assigned pause.
63
+
64
+ ## 0.9.0-beta.87
65
+
66
+ ### Patch Changes
67
+
68
+ - a49655a: Use separate files for model-authored lifecycle payloads and preserve native
69
+ shell-composition diagnostics instead of reporting a missing hook receipt.
70
+
71
+ ## 0.9.0-beta.86
72
+
73
+ ### Patch Changes
74
+
75
+ - 8abe471: Settle invalid managed lifecycle arguments atomically before dispatch and return one safe corrected command.
76
+
77
+ ## 0.9.0-beta.85
78
+
79
+ ### Patch Changes
80
+
81
+ - fe8f493: Restore runtime-owned response publication options before dispatching a managed lifecycle command, and update the controller fixture to validate the public command contract.
82
+
83
+ ## 0.9.0-beta.84
84
+
85
+ ### Patch Changes
86
+
87
+ - 644d181: Keep RUN identity, project paths, context files, response destinations and
88
+ integrity hashes inside retained lifecycle authority instead of asking agents
89
+ to copy them. Restore those inputs deterministically when the observed command
90
+ executes, including MERGE apply and repair commands.
91
+
92
+ ## 0.9.0-beta.83
93
+
94
+ ### Patch Changes
95
+
96
+ - bf69c56: Accept shell-escaped lifecycle path aliases deterministically and render model-facing aliases with stable quoting.
97
+
98
+ ## 0.9.0-beta.82
99
+
100
+ ### Patch Changes
101
+
102
+ - Keep release registry readback running through delayed npm propagation while still failing authorization errors immediately.
103
+
104
+ ## 0.9.0-beta.81
105
+
106
+ ### Patch Changes
107
+
108
+ - 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.
109
+
110
+ ## 0.9.0-beta.75
111
+
112
+ ### Patch Changes
113
+
114
+ - Use adapter-owned native delegation instructions for Codex and the other
115
+ supported harnesses, preserving independent child Work ownership and clearer
116
+ native-session diagnostics across fan-out and recovery.
117
+
118
+ ## 0.9.0-beta.64
119
+
120
+ ### Patch Changes
121
+
122
+ - Reserve SQLite writes explicitly, retain trusted lifecycle outcomes across harnesses,
123
+ continuously fence failed managed runs, and recover committed Work start packets and
124
+ replies without repeating effects. Revalidate stage inputs before acceptance and keep
125
+ the causal failure when adapter, publication or cleanup also fails. Writer contract 2
126
+ requires fresh campaign and resource homes; historical contract-1 stores are not
127
+ implicitly upgraded. Recovery-generation Work starts keep separate immutable packets
128
+ per WorkSession, preserving the interrupted attempt's evidence.
129
+
130
+ ## 0.9.0-beta.63
131
+
132
+ ### Patch Changes
133
+
134
+ - Accept the qualified retained-subagent ZCode bridge and settle a control only
135
+ when a durable startup rejection proves that it created no native resources.
136
+
137
+ ## 0.9.0-beta.62
138
+
139
+ ### Patch Changes
140
+
141
+ - Verify a controlled native Session with a fresh inspection after cancellation before treating its tree as settled.
142
+
143
+ ## 0.9.0-beta.61
144
+
145
+ ### Patch Changes
146
+
147
+ - Keep the scope reconciliation contract test type-safe.
148
+
149
+ ## 0.9.0-beta.60
150
+
151
+ ### Patch Changes
152
+
153
+ - Document and verify explicit reconciliation of a drained runtime scope without automatic observer respawn.
154
+
155
+ ## 0.9.0-beta.59
156
+
157
+ ### Patch Changes
158
+
159
+ - Keep bundled ZCode close-contract fixtures aligned with retained native topology checks.
160
+
161
+ ## 0.9.0-beta.58
162
+
163
+ ### Patch Changes
164
+
165
+ - Keep local task artifacts outside the release lint scope.
166
+
167
+ ## 0.9.0-beta.57
168
+
169
+ ### Patch Changes
170
+
171
+ - Bound recovery observation, expose safe external reconciliation, and require
172
+ complete non-resident ZCode session-tree evidence before a stopped run settles.
173
+
174
+ ## 0.9.0-beta.56
175
+
176
+ ### Patch Changes
177
+
178
+ - 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.
179
+
180
+ ## 0.9.0-beta.55
181
+
182
+ ### Patch Changes
183
+
184
+ - 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.
185
+
186
+ ## 0.9.0-beta.54
187
+
188
+ ### Patch Changes
189
+
190
+ - 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.
191
+
192
+ ## 0.9.0-beta.53
193
+
194
+ ### Patch Changes
195
+
196
+ - 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.
197
+
198
+ ## 0.9.0-beta.52
199
+
200
+ ### Patch Changes
201
+
202
+ - 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.
203
+
204
+ ## 0.9.0-beta.51
205
+
206
+ ### Patch Changes
207
+
208
+ - Settle a check receipt when its confirmed process identity has exited, even if an older registration has no parent-owner PID.
209
+
210
+ ## 0.9.0-beta.50
211
+
212
+ ### Patch Changes
213
+
214
+ - 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.
215
+ - 422413d: Reuse completed check evidence consistently across CODE, CODE-REVIEW and MERGE,
216
+ with validated inputs, artifacts, retry handling and concurrent execution guards.
217
+
218
+ ## 0.9.0-beta.49
219
+
220
+ ### Patch Changes
221
+
222
+ - Treat a completed CODE gate command that returns `code_gate_failed` as terminal
223
+ recovery evidence, so the coordinator creates the returned repair Work instead
224
+ of waiting indefinitely or duplicating the aggregate gate.
225
+
226
+ ## 0.9.0-beta.48
227
+
228
+ ### Patch Changes
229
+
230
+ - Recheck a controller lease after a transient runtime-registry write failure before
231
+ dispatching more work, while retaining the hard stop for an explicit lease loss.
232
+
233
+ ## 0.9.0-beta.47
234
+
235
+ ### Patch Changes
236
+
237
+ - Initialize the managed Codex hook home for external worker sessions so their
238
+ first `work start` receives a trusted session binding.
239
+
240
+ ## 0.9.0-beta.44
241
+
242
+ ### Patch Changes
243
+
244
+ - Allow a managed native session prompt to run for two hours before the outer
245
+ adapter watchdog cancels it, while retaining the existing short timeout for
246
+ non-productive adapter calls.
247
+
248
+ ## 0.9.0-beta.43
249
+
250
+ ### Patch Changes
251
+
252
+ - 78e3eaf: Keep Codex prompt and inspection receipts compact by returning historical turn
253
+ identities and statuses without duplicating their item transcripts. Preserve the
254
+ current result, final answer, native history reference, descendants and observed
255
+ profile so long-running sessions remain within the bounded adapter reply limit.
256
+
257
+ ## 0.9.0-beta.42
258
+
259
+ ### Patch Changes
260
+
261
+ - 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.
262
+
263
+ ## 0.9.0-beta.41
264
+
265
+ ### Patch Changes
266
+
267
+ - 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.
268
+
269
+ ## 0.9.0-beta.40
270
+
271
+ ### Patch Changes
272
+
273
+ - 2b4b714: Admit ordinary managed HITL answers through their exact generation-bound native
274
+ prompt, preserving pause, Session, raw-answer and prompt integrity. Keep accepted
275
+ answer intent separate from physical delivery so stop drains native operations
276
+ and recovery can deliver an unanswered pause without replaying completed work.
277
+ - c5eeb6f: Capture owned Codex home configuration and evidence without copying shared host
278
+ history or ephemeral helper links. Reuse the provisioned shared-entry contract
279
+ and retain strict rejection of unrelated external recovery artifact links.
280
+
281
+ ## 0.9.0-beta.39
282
+
283
+ ### Patch Changes
284
+
285
+ - 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.
286
+
287
+ 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.
288
+
289
+ Discover native Codex children from spawn receipts and release terminal failed provider turns only after a fresh settled-tree observation.
290
+
291
+ ## 0.9.0-beta.38
292
+
293
+ ### Patch Changes
294
+
295
+ - 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.
296
+
297
+ ## 0.9.0-beta.37
298
+
299
+ ### Patch Changes
300
+
301
+ - 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.
302
+
303
+ ## 0.9.0-beta.36
304
+
305
+ ### Patch Changes
306
+
307
+ - 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.
308
+
309
+ ## 0.9.0-beta.35
310
+
311
+ ### Patch Changes
312
+
313
+ - Wait for npm registry propagation and verify the annotated tag created by Changesets before completing a guarded release.
314
+ - Keep AGY native outcomes separate from settlement, invalidate old child settlement on new activity, and reserve productive operations before persistence across adapters.
315
+ - Retain process-local native Stop observation in no-flow technical probes without installing project hooks or forwarding flow mutations.
316
+ - 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.
317
+ - 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.
318
+
319
+ ## 0.9.0-beta.34
320
+
321
+ ### Patch Changes
322
+
323
+ - Create and verify the immutable annotated Git tag as part of the guarded release publication.
324
+
325
+ ## 0.9.0-beta.33
326
+
327
+ ### Patch Changes
328
+
329
+ - Add the guarded `release:publish` entrypoint that validates local npm auth,
330
+ checks the quality gate, verifies the published build metadata, and refreshes
331
+ the installed runtime before a release is considered complete.
332
+
333
+ ## 0.9.0-beta.32
334
+
335
+ ### Patch Changes
336
+
337
+ - 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.
338
+
339
+ ## 0.9.0-beta.31
340
+
341
+ ### Patch Changes
342
+
343
+ - Treat an authoritative fully-idle Antigravity root Stop as settlement evidence
344
+ for otherwise unobserved native children, while preserving their distinct
345
+ `settled_by_root` status rather than claiming individual completion.
346
+
347
+ ## 0.9.0-beta.30
348
+
349
+ ### Patch Changes
350
+
351
+ - Bound Antigravity prompt liveness from the most recent native activity and preserve clean recovery settlement after an expired prompt.
352
+
353
+ ## 0.9.0-beta.29
354
+
355
+ ### Patch Changes
356
+
357
+ - Recover completed stage boundaries without reopening accepted Work, and reject
358
+ stale coordinator identities and retired recovery generations.
359
+
360
+ Scope Antigravity terminal results and retained accounting to the current
361
+ conversation progress; preserve OpenCode and ACP provider errors for the actual
362
+ prompt. Keep configured adapter journals and bundled hook-denial behavior intact.
363
+
364
+ ## 0.9.0-beta.28
365
+
366
+ ### Patch Changes
367
+
368
+ - 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.
369
+
370
+ ## 0.9.0-beta.27
371
+
372
+ ### Patch Changes
373
+
374
+ - Resume retained native sessions from their active coordinator WorkSession, preserving the root launch record and rejecting lifecycle receipts from retired daemons.
375
+ - Propagate Antigravity lifecycle hooks to direct native children while preserving workspace hooks, and settle confirmed Codex system-error turns without losing provider failure evidence.
376
+
377
+ ## 0.9.0-beta.26
378
+
379
+ ### Patch Changes
380
+
381
+ - 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.
382
+
383
+ ## 0.9.0-beta.25
384
+
385
+ ### Patch Changes
386
+
387
+ - Publish the final serial CLI test isolation together with the current bundled harness fixes.
388
+
389
+ ## 0.9.0-beta.24
390
+
391
+ ### Patch Changes
392
+
393
+ - Retain supplemental files written to the check evidence directory in normal and recovered receipts. Keep required artifacts as minimum obligations and exclude symlinks.
394
+
395
+ 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.
396
+
397
+ - Run CLI tests in isolated, serial file processes so process-global test state cannot leak between suites.
398
+
399
+ ## 0.9.0-beta.23
400
+
401
+ ### Minor Changes
402
+
403
+ - bcfd8cb: Ship the six managed provider adapters with the CLI runtime, including their
404
+ daemon primitives and public adapter entrypoints. Add frozen mixed-execution
405
+ policy resolution and durable explicit external Work launch without changing a
406
+ same-profile external request into native delegation.
407
+
408
+ ## 0.9.0-beta.22
409
+
410
+ ### Patch Changes
411
+
412
+ - Reject conflicting or ambiguous lifecycle receipts before any harness can
413
+ mutate a Session binding. Restore a Work-start receipt when its binding
414
+ fails, so the same verified invocation remains safely retryable.
415
+
416
+ ## 0.9.0-beta.21
417
+
418
+ ### Patch Changes
419
+
420
+ - 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.
421
+
422
+ ## 0.9.0-beta.20
423
+
424
+ ### Patch Changes
425
+
426
+ - 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.
427
+
428
+ ## 0.9.0-beta.19
429
+
430
+ ### Patch Changes
431
+
432
+ - 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.
433
+
434
+ ## 0.9.0-beta.18
435
+
436
+ ### Patch Changes
437
+
438
+ - 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.
439
+
440
+ ## 0.9.0-beta.17
441
+
442
+ ### Patch Changes
443
+
444
+ - 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.
445
+
446
+ Snapshot SQLite consistently with VACUUM INTO and exclude local environment secrets, dependencies and caches from project/workspace snapshots.
447
+
448
+ 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.
449
+
450
+ ## 0.9.0-beta.16
451
+
452
+ ### Patch Changes
453
+
454
+ - Make repair verification causal and retryable, preserve attempt-qualified
455
+ evidence, expose RUN continuation from persisted lifecycle state, and keep
456
+ native child ownership bound to the physical harness session.
457
+
458
+ ## 0.9.0-beta.15
459
+
460
+ ### Patch Changes
461
+
462
+ - 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.
463
+
464
+ ## 0.9.0-beta.14
465
+
466
+ ### Patch Changes
467
+
468
+ - 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.
469
+
470
+ ## 0.9.0-beta.13
471
+
472
+ ### Patch Changes
473
+
474
+ - Make long-running CODE checks suspend-safe and prevent an expired lease from
475
+ stealing a live process. Publish `dd-flow/code-work-result@3`, which unifies
476
+ repair resolutions with evidence references assigned by the Work packet.
477
+
478
+ ## 0.9.0-beta.12
479
+
480
+ ### Patch Changes
481
+
482
+ - Return a failed integration gate to an explicit source CODE and independent
483
+ CODE-REVIEW repair cycle, instead of allowing product repairs in the
484
+ integration workspace.
485
+
486
+ ## 0.9.0-beta.11
487
+
488
+ ### Patch Changes
489
+
490
+ - Bind a native Codex subagent Work to the child Thread identifier supplied as
491
+ `agent_id`, rather than Codex's inherited root hook session identifier.
492
+
3
493
  ## 0.9.0-beta.10
4
494
 
5
495
  ### Patch Changes
@@ -835,6 +1325,7 @@ record` command with the bounded 15-probe contract.
835
1325
  - 16f68a3: Add router-native engine snapshot commands and routed project-command dispatch.
836
1326
 
837
1327
  Also include the runtime/dashboard compatibility wave needed by the current Memory Bank canon:
1328
+
838
1329
  - target-based dashboard `open`/`refresh` commands and related-command help;
839
1330
  - persisted FIFO lane waiters and merge wait-acquire specialization;
840
1331
  - `migration plan/report/verify` evidence helpers for controlled `mb-upgrade` runtime migrations;
package/README.md CHANGED
@@ -1,9 +1,55 @@
1
1
  # dd-flow-cli
2
2
 
3
+ See [dd-zcode integration](src/harness-runtime/DD-ZCODE.md) for native transport,
4
+ adapter ownership and the versioned bridge contract.
5
+
6
+ ## Managed temporary HTTP services
7
+
8
+ For an interactive scenario, `runtime process start --run <RUN-ID>
9
+ --project-root <absolute-project> --command '<project command>' --ports api
10
+ --ready-port api --ready-path /health --json --progress-jsonl` runs a foreground
11
+ supervisor. The command receives `DD_FLOW_PORT_API`; use it instead of a fixed
12
+ port. Additional comma-separated names receive equivalent environment variables.
13
+ The ready event points to a receipt and logs under the RUN's `runtime/` folder.
14
+ Keep the tool invocation alive, run the scenario using the allocated ports,
15
+ then execute the exact `stop_command` in that receipt and await the supervisor.
16
+ Readiness is not a scenario pass. Keep semantic/scenario evidence separately.
17
+ Never use a broad `pkill`/`killall`. A failed owned stop retains resources.
18
+
3
19
  `dd-flow-cli` is the mechanical control layer for `dd-flow` workflows.
4
20
 
5
21
  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
22
 
23
+ ## Factory Droid harness
24
+
25
+ Configure `droid-cli` in `~/.dd-flow/harnesses.json` with absolute
26
+ `adapter_command` (`dd-droid`) and `runtime_command` (`droid`) paths. Agent
27
+ profiles use the `droid` alias; the adapter receives `--droid-bin`.
28
+
29
+ The controlled adapter sends `dd-flow/droid-tool-event@1` JSON to
30
+ `dd-flow droid event handle --project-root <root> --json`. Events include a
31
+ stable `event_id`, `daemon_id`, `phase` (`before` or `after`), native Session
32
+ identity and parent, absolute Session directory, `Execute` input, observed
33
+ profile and transcript path. Before a lifecycle invocation, the returned
34
+ `hookSpecificOutput.updatedInput` adds its one-use `--hook-event-id` receipt.
35
+ The event ID belongs to the native hook invocation and is reused only for
36
+ transport retries. Session success is established by the Work contract.
37
+
38
+ `dd-flow droid usage ingest --project-root <root> --json` accepts cumulative
39
+ per-Session counters with explicit `usage_scope: physical_session` and
40
+ `completeness: complete|partial`. Inclusive root counters are rejected;
41
+ partial windows remain unavailable in RUN totals until complete evidence
42
+ arrives. Keep inclusive provider totals in adapter evidence for reconciliation.
43
+
44
+ ## Check evidence
45
+
46
+ Checks write evidence into their invocation's `DD_FLOW_EVIDENCE_DIR`. Receipts
47
+ retain and hash every regular file in that directory, including nested files.
48
+ `required_artifacts` specifies the minimum files needed to pass, so an empty
49
+ list still permits supplemental screenshots or reports. Missing required files
50
+ fail the check. Symlinks are not followed or registered. The same collection
51
+ rules apply when recovering a detached check from its completion marker.
52
+
7
53
  ## Runtime Model
8
54
 
9
55
  Root local database:
@@ -409,3 +455,25 @@ pnpm build
409
455
  ```
410
456
 
411
457
  Manual smoke checks should use a temporary `DD_FLOW_HOME` when they do not intentionally inspect the operator's real local state.
458
+
459
+ ### RUN status during recovery
460
+
461
+ A controller failure pauses the logical RUN without rewriting its Stage/Work
462
+ outcomes. Accepted pause/stop or recovery intent immediately persists `paused` in the RUN row,
463
+ `index_json`, and `run.json`. A trusted recovery acknowledgement restores the
464
+ operational status; an existing Stage/Work pause remains paused. Terminal RUNs
465
+ are never reopened. Physical tree settlement remains a separate control receipt.
466
+
467
+ Legacy stores with a fenced recovery may still contain `running`. After building,
468
+ inspect one exact RUN with:
469
+
470
+ ```sh
471
+ node tools/repair-paused-run-status.mjs --home /path/to/dd-flow-home --project PRJ-001-project --run RUN-001-eval-subject
472
+ ```
473
+
474
+ Add `--apply` to repair it. This requires the latest recovery to be draining, sealed or resuming, saves the original row and runtime JSON
475
+ beside `run.json`, and changes no schema, engine binding or recovery capture.
476
+ It does not claim physical settlement or alter its receipts. `--cancel-abandoned`
477
+ explicitly cancels an abandoned fixture only when the project directory is absent
478
+ and it has no Work, Session, controller or recovery history. Historical experiment
479
+ 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.10",
4
- "cli_commit": "460b71fed9e52e0be2cb95d3a565d9ec015d6da7",
5
- "built_at": "2026-09-04T16:11:29.424Z",
3
+ "cli_version": "0.9.0-beta.103",
4
+ "cli_commit": "26ffa3e3ac8382c8a83bae2593a91a3e922f10a9",
5
+ "built_at": "2026-09-25T12:03:44.786Z",
6
6
  "built_with_canon": {
7
- "version": "4.0.2",
8
- "commit": "fccdb9fe7359f2ba321eebace328fd18557dcd25",
7
+ "version": "4.1.1",
8
+ "commit": "678daa038287c948ada5b2d785a6dcc925c7b891",
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
  }