cool-workflow 0.1.80 → 0.1.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 (110) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codex-plugin/plugin.json +1 -1
  3. package/README.md +42 -2
  4. package/apps/architecture-review/app.json +1 -1
  5. package/apps/architecture-review-fast/app.json +1 -1
  6. package/apps/end-to-end-golden-path/app.json +1 -1
  7. package/apps/pr-review-fix-ci/app.json +1 -1
  8. package/apps/release-cut/app.json +1 -1
  9. package/apps/research-synthesis/app.json +1 -1
  10. package/dist/agent-config.js +21 -7
  11. package/dist/candidate-scoring.js +42 -22
  12. package/dist/capability-core.js +94 -17
  13. package/dist/capability-registry.js +138 -171
  14. package/dist/cli.js +90 -100
  15. package/dist/collaboration.js +5 -6
  16. package/dist/commit.js +20 -6
  17. package/dist/compare.js +18 -0
  18. package/dist/coordinator/classify.js +45 -0
  19. package/dist/coordinator/paths.js +42 -0
  20. package/dist/coordinator/util.js +129 -0
  21. package/dist/coordinator.js +127 -300
  22. package/dist/dispatch.js +35 -0
  23. package/dist/drive.js +7 -7
  24. package/dist/error-feedback.js +8 -4
  25. package/dist/evidence-reasoning.js +1 -1
  26. package/dist/execution-backend/agent.js +331 -0
  27. package/dist/execution-backend/probes.js +96 -0
  28. package/dist/execution-backend/util.js +47 -0
  29. package/dist/execution-backend.js +67 -420
  30. package/dist/mcp-server.js +34 -173
  31. package/dist/multi-agent/graph.js +84 -0
  32. package/dist/multi-agent/helpers.js +145 -0
  33. package/dist/multi-agent/paths.js +22 -0
  34. package/dist/multi-agent-eval/format.js +194 -0
  35. package/dist/multi-agent-eval/normalize.js +51 -0
  36. package/dist/multi-agent-eval.js +39 -244
  37. package/dist/multi-agent-host.js +0 -19
  38. package/dist/multi-agent.js +125 -314
  39. package/dist/node-snapshot.js +3 -3
  40. package/dist/observability/format.js +61 -0
  41. package/dist/observability/intake.js +98 -0
  42. package/dist/observability.js +14 -160
  43. package/dist/operator-ux/format.js +364 -0
  44. package/dist/operator-ux.js +22 -363
  45. package/dist/orchestrator/report.js +8 -0
  46. package/dist/orchestrator.js +25 -8
  47. package/dist/reclamation.js +26 -21
  48. package/dist/run-export.js +138 -14
  49. package/dist/run-registry/derive.js +172 -0
  50. package/dist/run-registry/format.js +124 -0
  51. package/dist/run-registry/gc.js +251 -0
  52. package/dist/run-registry/policy.js +16 -0
  53. package/dist/run-registry/queue.js +116 -0
  54. package/dist/run-registry.js +78 -593
  55. package/dist/run-state-schema.js +1 -0
  56. package/dist/sandbox-profile.js +43 -2
  57. package/dist/state-explosion/format.js +159 -0
  58. package/dist/state-explosion/helpers.js +82 -0
  59. package/dist/state-explosion.js +65 -283
  60. package/dist/state-node.js +19 -4
  61. package/dist/telemetry-attestation.js +55 -0
  62. package/dist/telemetry-demo.js +15 -3
  63. package/dist/telemetry-ledger.js +60 -15
  64. package/dist/topology.js +25 -8
  65. package/dist/triggers.js +33 -14
  66. package/dist/trust-audit.js +145 -33
  67. package/dist/version.js +1 -1
  68. package/dist/worker-isolation/helpers.js +51 -0
  69. package/dist/worker-isolation/paths.js +46 -0
  70. package/dist/worker-isolation.js +39 -115
  71. package/docs/agent-delegation-drive.7.md +13 -0
  72. package/docs/cli-mcp-parity.7.md +4 -0
  73. package/docs/contract-migration-tooling.7.md +2 -0
  74. package/docs/control-plane-scheduling.7.md +2 -0
  75. package/docs/dogfood/resume-drive-real-agent-2026-06-14.md +40 -0
  76. package/docs/durable-state-and-locking.7.md +4 -0
  77. package/docs/evidence-adoption-reasoning-chain.7.md +2 -0
  78. package/docs/execution-backends.7.md +2 -0
  79. package/docs/index.md +1 -0
  80. package/docs/launch/launch-kit.md +46 -23
  81. package/docs/launch/pre-launch-checklist.md +14 -14
  82. package/docs/multi-agent-cli-mcp-surface.7.md +4 -0
  83. package/docs/multi-agent-eval-replay-harness.7.md +2 -0
  84. package/docs/multi-agent-operator-ux.7.md +2 -0
  85. package/docs/multi-agent-trust-policy-audit.7.md +27 -0
  86. package/docs/node-snapshot-diff-replay.7.md +2 -0
  87. package/docs/observability-cost-accounting.7.md +2 -0
  88. package/docs/project-index.md +18 -5
  89. package/docs/real-execution-backends.7.md +2 -0
  90. package/docs/release-and-migration.7.md +4 -0
  91. package/docs/release-tooling.7.md +2 -0
  92. package/docs/run-registry-control-plane.7.md +54 -8
  93. package/docs/run-retention-reclamation.7.md +4 -0
  94. package/docs/state-explosion-management.7.md +2 -0
  95. package/docs/team-collaboration.7.md +2 -0
  96. package/docs/trust-model.md +267 -0
  97. package/docs/vendor-manifest-loadability.7.md +43 -0
  98. package/docs/web-desktop-workbench.7.md +2 -0
  99. package/manifest/plugin.manifest.json +1 -1
  100. package/package.json +4 -2
  101. package/scripts/agents/builtin-templates.json +7 -0
  102. package/scripts/bump-version.js +5 -11
  103. package/scripts/canonical-apps-list.js +64 -0
  104. package/scripts/canonical-apps.js +19 -4
  105. package/scripts/dogfood-release.js +1 -1
  106. package/scripts/golden-path.js +4 -4
  107. package/scripts/parity-check.js +5 -0
  108. package/scripts/release-check.js +5 -1
  109. package/scripts/version-sync-check.js +5 -8
  110. package/dist/capability-dispatcher.js +0 -86
@@ -1,26 +1,20 @@
1
1
  # Pre-Launch Checklist — Cool Workflow Show HN
2
2
 
3
- Tick top to bottom; when it's done, post. The one non-negotiable gate is ③.
3
+ Tick top to bottom; when it's done, post. The one non-negotiable gate is ②.
4
4
  Copy for the post itself lives in [launch-kit.md](launch-kit.md) (the **✅ FINAL**
5
5
  block).
6
6
 
7
- ## ① Fix the machine (prerequisite)
8
-
9
- - [ ] **Reboot the Mac** — clears the leaked ptys (`kern.tty.ptmx_max` was 511 with
10
- 527 allocated), so Terminal / VS Code can spawn shells again. Required before
11
- the verification below.
12
-
13
- ## ② Prepare assets (optional, recommended)
7
+ ## ① Prepare assets (optional, recommended)
14
8
 
15
9
  - [ ] Install [vhs](https://github.com/charmbracelet/vhs) (`brew install vhs`).
16
10
  - [ ] Record the GIF: `vhs plugins/cool-workflow/docs/launch/demo.tape` →
17
11
  `docs/launch/demo-tamper.gif`.
18
- - [ ] Swap it into the README hero (replace the fenced demo output block with
19
- `![demo](plugins/cool-workflow/docs/launch/demo-tamper.gif)`), commit + push.
12
+ - [ ] Add it to the README hero (insert
13
+ `![demo](plugins/cool-workflow/docs/launch/demo-tamper.gif)` near the badges/intro), commit + push.
20
14
  > Shippable without the GIF — the README's text `✗ DETECTED` hook already stands;
21
15
  > the GIF is upside, not a blocker.
22
16
 
23
- ## Verify — the make-or-break gate (do not skip)
17
+ ## Verify — the make-or-break gate (do not skip)
24
18
 
25
19
  - [ ] On a **clean machine / fresh terminal**: `npx cool-workflow demo tamper`
26
20
  prints `VERDICT: tamper-evidence holds ✓`.
@@ -28,20 +22,26 @@ block).
28
22
  > non-negotiable check.
29
23
  - [ ] Sanity: `npx cool-workflow quickstart architecture-review --repo . --question "risks?"`
30
24
  → `status: blocked` with no agent configured (fails closed, no crash).
25
+ - [ ] Resumable sanity: `cw quickstart architecture-review --resume` advances one step
26
+ then stops; `cw run resume <run-id> --drive` continues a stopped run — proving
27
+ runs break at dispatch and replay from disk.
31
28
 
32
- ## Post (US morning, ~9–11am ET is peak)
29
+ ## Post (US morning, ~9–11am ET is peak)
33
30
 
34
31
  - [ ] Open the **✅ FINAL** block in [launch-kit.md](launch-kit.md).
35
32
  - [ ] HN title: `Show HN: Cool Workflow – tamper-evident telemetry for agent pipelines (npx demo)`
36
33
  - [ ] URL field: `https://github.com/coo1white/cool-workflow`
37
34
  - [ ] Immediately after posting, paste the FINAL "first comment" as the first reply.
38
35
 
39
- ## First hour (decides the outcome)
36
+ ## First hour (decides the outcome)
40
37
 
41
38
  - [ ] Watch and reply fast — early engagement weighs most on HN.
42
39
  - [ ] On the "single key holder / no second party" critique (the audit flagged it
43
40
  too): concede it honestly and frame it as exactly why you're looking for early
44
41
  integration partners. **Turn the critique into an invitation; don't argue.**
42
+ > The canned, linkable answer is already written: [docs/trust-model.md](../trust-model.md)
43
+ > states the ceiling plainly (integrity ≠ source honesty; one party holding both
44
+ > roles; full local re-chain) and frames the partner ask. Link it; don't re-argue it.
45
45
  - [ ] No vote-rigging, no asking friends to upvote, no deleting critical comments —
46
46
  HN's anti-abuse will sink the post.
47
47
 
@@ -49,5 +49,5 @@ block).
49
49
 
50
50
  ### Go / no-go
51
51
 
52
- > If **③ — `npx cool-workflow demo tamper` prints `✓` on a clean machine** — passes,
52
+ > If **② — `npx cool-workflow demo tamper` prints `✓` on a clean machine** — passes,
53
53
  > you can post. Everything else is upside.
@@ -269,3 +269,7 @@ Migration DAG with reversible edges (v0.1.45), capability auto-discovery (v0.1.4
269
269
  ## Fast Architecture Review (v0.1.80)
270
270
 
271
271
  Adds the opt-in fast architecture-review lane: scoped JSONL source contexts, diff-aware exports, reusable Map and Assess results, measurable wrapper metrics, actionable background full-review handoff, and userland model policy flags for routing fast/strong workers without changing the full review contract.
272
+
273
+ ## New Both-Surface Verbs (v0.1.81)
274
+
275
+ v0.1.81 adds `audit verify` (`cw_audit_verify`) and `run inspect-archive` (`cw_run_inspect_archive`) — both declared once in the capability registry and exposed identically on the CLI and MCP, fail-closed (non-zero exit / `ok:false` on an unverified chain or a tampered archive).
@@ -306,3 +306,5 @@ Migration DAG with reversible edges (v0.1.45), capability auto-discovery (v0.1.4
306
306
  ## Fast Architecture Review (v0.1.80)
307
307
 
308
308
  Adds the opt-in fast architecture-review lane: scoped JSONL source contexts, diff-aware exports, reusable Map and Assess results, measurable wrapper metrics, actionable background full-review handoff, and userland model policy flags for routing fast/strong workers without changing the full review contract.
309
+
310
+ _No changes to the multi-agent eval/replay harness in v0.1.81 (the multi-agent-eval module was carved into behavior-preserving siblings; replay output is byte-identical)._
@@ -318,3 +318,5 @@ Migration DAG with reversible edges (v0.1.45), capability auto-discovery (v0.1.4
318
318
  ## Fast Architecture Review (v0.1.80)
319
319
 
320
320
  Adds the opt-in fast architecture-review lane: scoped JSONL source contexts, diff-aware exports, reusable Map and Assess results, measurable wrapper metrics, actionable background full-review handoff, and userland model policy flags for routing fast/strong workers without changing the full review contract.
321
+
322
+ _No changes to the multi-agent operator UX surface in v0.1.81 (the operator-ux module was carved into behavior-preserving siblings; output is byte-identical)._
@@ -115,6 +115,32 @@ Human output includes stable panels:
115
115
  - Policy Violations
116
116
  - Next Action
117
117
 
118
+ ## Verify (fail-closed)
119
+
120
+ `audit summary` embeds an `integrity` field but is a *reader* — it always exits 0,
121
+ so it cannot gate a script. `audit verify` is the gate:
122
+
123
+ ```bash
124
+ node scripts/cw.js audit verify <run-id> # exit 1 if the chain is forged
125
+ node scripts/cw.js audit verify <run-id> --json
126
+ ```
127
+
128
+ It re-proves the run's trust-audit hash chain offline: it recomputes every event
129
+ hash from genesis, checks `prevEventHash` linkage, and catches the unchained-event
130
+ forgery (an `eventHash`-less line slipped into a chained log to be waved through as
131
+ "legacy"). The JSON reports `present`, `verified`, `eventCount`, `chained`,
132
+ `unchained`, `corruptLines`, and `failedChecks[]`.
133
+
134
+ Exit-code contract (the peer of `telemetry verify`):
135
+
136
+ - ANY **unverified** chain exits **1** — forged / edited / truncated / unchained-injected,
137
+ *and* a fully-corrupt log (every line unparseable, which reports `present:false` but
138
+ `verified:false`). The gate keys on `verified`, not `present`, so the most severe
139
+ tamper — garbling the whole log — cannot escape by looking "absent". So
140
+ `cw audit verify <run> && deploy` stops on tampering.
141
+ - Only a truly **absent / empty** chain is `verified:true` / exit **0** — a run with
142
+ no audit log (or a blank one) has nothing to prove (no false-red).
143
+
118
144
  ## MCP
119
145
 
120
146
  MCP parity tools:
@@ -128,6 +154,7 @@ MCP parity tools:
128
154
  The older audit tools remain available:
129
155
 
130
156
  - `cw_audit_summary`
157
+ - `cw_audit_verify` — fail-closed re-prove of the trust-audit hash chain (peer of `cw_telemetry_verify`)
131
158
  - `cw_audit_worker`
132
159
  - `cw_audit_provenance`
133
160
  - `cw_audit_attest`
@@ -139,3 +139,5 @@ Migration DAG with reversible edges (v0.1.45), capability auto-discovery (v0.1.4
139
139
  ## Fast Architecture Review (v0.1.80)
140
140
 
141
141
  Adds the opt-in fast architecture-review lane: scoped JSONL source contexts, diff-aware exports, reusable Map and Assess results, measurable wrapper metrics, actionable background full-review handoff, and userland model policy flags for routing fast/strong workers without changing the full review contract.
142
+
143
+ _No changes to node-snapshot diff/replay in v0.1.81._
@@ -198,3 +198,5 @@ Migration DAG with reversible edges (v0.1.45), capability auto-discovery (v0.1.4
198
198
  ## Fast Architecture Review (v0.1.80)
199
199
 
200
200
  Adds the opt-in fast architecture-review lane: scoped JSONL source contexts, diff-aware exports, reusable Map and Assess results, measurable wrapper metrics, actionable background full-review handoff, and userland model policy flags for routing fast/strong workers without changing the full review contract.
201
+
202
+ _No changes to the observability + cost-accounting surface in v0.1.81 (the observability module was carved into behavior-preserving siblings; output is byte-identical)._
@@ -1,15 +1,15 @@
1
1
  # Cool Workflow Project Index
2
2
 
3
- Generated from the current repository code on 2026-06-13 by `npm run sync:project-index`.
3
+ Generated from the current repository code on 2026-06-14 by `npm run sync:project-index`.
4
4
 
5
5
  ## Snapshot
6
6
 
7
7
  - Package: `cool-workflow`
8
- - Version: `0.1.80`
8
+ - Version: `0.1.81`
9
9
  - Source modules: `58`
10
10
  - Workflow apps: `7`
11
- - Docs: `47`
12
- - Smoke tests: `75`
11
+ - Docs: `49`
12
+ - Smoke tests: `86`
13
13
  - Repository: https://github.com/coo1white/cool-workflow
14
14
 
15
15
  ## Architecture
@@ -82,9 +82,9 @@ multi-agent host -> topology -> blackboard/coordinator
82
82
 
83
83
  - [agent-config.ts](../src/agent-config.ts)
84
84
  - [capability-core.ts](../src/capability-core.ts)
85
- - [capability-dispatcher.ts](../src/capability-dispatcher.ts)
86
85
  - [capability-registry.ts](../src/capability-registry.ts)
87
86
  - [collaboration.ts](../src/collaboration.ts)
87
+ - [compare.ts](../src/compare.ts)
88
88
  - [contract-migration.ts](../src/contract-migration.ts)
89
89
  - [drive.ts](../src/drive.ts)
90
90
  - [evidence-grounding.ts](../src/evidence-grounding.ts)
@@ -167,7 +167,9 @@ multi-agent host -> topology -> blackboard/coordinator
167
167
  - [State Explosion Management](state-explosion-management.7.md)
168
168
  - [STATE-NODE(7)](state-node.7.md)
169
169
  - [Team Collaboration](team-collaboration.7.md)
170
+ - [Trust Model & Limitations](trust-model.md)
170
171
  - [Unix-Inspired Workflow Principles](unix-principles.md)
172
+ - [Vendor Manifest Loadability](vendor-manifest-loadability.7.md)
171
173
  - [VERIFIER-GATED-COMMIT(7)](verifier-gated-commit.7.md)
172
174
  - [Web / Desktop Workbench](web-desktop-workbench.7.md)
173
175
  - [WORKER-ISOLATION(7)](worker-isolation.7.md)
@@ -181,17 +183,20 @@ Smoke tests mirror the public contracts. The high-signal suites are:
181
183
  - [architecture-review-fast-automation-smoke.js](../test/architecture-review-fast-automation-smoke.js)
182
184
  - [architecture-review-fast-smoke.js](../test/architecture-review-fast-smoke.js)
183
185
  - [artifact-integrity-smoke.js](../test/artifact-integrity-smoke.js)
186
+ - [audit-verify-smoke.js](../test/audit-verify-smoke.js)
184
187
  - [backend-registry-smoke.js](../test/backend-registry-smoke.js)
185
188
  - [block-unapproved-tag-smoke.js](../test/block-unapproved-tag-smoke.js)
186
189
  - [candidate-scoring-smoke.js](../test/candidate-scoring-smoke.js)
187
190
  - [canonical-workflow-apps-smoke.js](../test/canonical-workflow-apps-smoke.js)
188
191
  - [claude-p-agent-wrapper-smoke.js](../test/claude-p-agent-wrapper-smoke.js)
192
+ - [cli-jsonmode-parity-smoke.js](../test/cli-jsonmode-parity-smoke.js)
189
193
  - [cli-mcp-parity-smoke.js](../test/cli-mcp-parity-smoke.js)
190
194
  - [concurrent-failure-semantics-smoke.js](../test/concurrent-failure-semantics-smoke.js)
191
195
  - [concurrent-workflow-dsl-smoke.js](../test/concurrent-workflow-dsl-smoke.js)
192
196
  - [contract-migration-tooling-smoke.js](../test/contract-migration-tooling-smoke.js)
193
197
  - [control-plane-scheduling-smoke.js](../test/control-plane-scheduling-smoke.js)
194
198
  - [coordinator-blackboard-smoke.js](../test/coordinator-blackboard-smoke.js)
199
+ - [det-ids-b-smoke.js](../test/det-ids-b-smoke.js)
195
200
  - [dogfood-release-smoke.js](../test/dogfood-release-smoke.js)
196
201
  - [durable-atomic-write-smoke.js](../test/durable-atomic-write-smoke.js)
197
202
  - [end-to-end-demo-smoke.js](../test/end-to-end-demo-smoke.js)
@@ -201,6 +206,8 @@ Smoke tests mirror the public contracts. The high-signal suites are:
201
206
  - [evidence-adoption-reasoning-smoke.js](../test/evidence-adoption-reasoning-smoke.js)
202
207
  - [evidence-content-extraction-smoke.js](../test/evidence-content-extraction-smoke.js)
203
208
  - [execution-backends-smoke.js](../test/execution-backends-smoke.js)
209
+ - [freebsd-audit-fixes-smoke.js](../test/freebsd-audit-fixes-smoke.js)
210
+ - [h7-custom-profile-persist-smoke.js](../test/h7-custom-profile-persist-smoke.js)
204
211
  - [mcp-app-surface-smoke.js](../test/mcp-app-surface-smoke.js)
205
212
  - [multi-agent-cli-mcp-surface-smoke.js](../test/multi-agent-cli-mcp-surface-smoke.js)
206
213
  - [multi-agent-eval-replay-harness-smoke.js](../test/multi-agent-eval-replay-harness-smoke.js)
@@ -229,7 +236,10 @@ Smoke tests mirror the public contracts. The high-signal suites are:
229
236
  - [run-export-restore-rerun-smoke.js](../test/run-export-restore-rerun-smoke.js)
230
237
  - [run-export-restore-resume-smoke.js](../test/run-export-restore-resume-smoke.js)
231
238
  - [run-fixture-compat-smoke.js](../test/run-fixture-compat-smoke.js)
239
+ - [run-import-tamper-failclosed-smoke.js](../test/run-import-tamper-failclosed-smoke.js)
240
+ - [run-inspect-archive-smoke.js](../test/run-inspect-archive-smoke.js)
232
241
  - [run-registry-control-plane-smoke.js](../test/run-registry-control-plane-smoke.js)
242
+ - [run-resume-drive-smoke.js](../test/run-resume-drive-smoke.js)
233
243
  - [run-retention-reclamation-smoke.js](../test/run-retention-reclamation-smoke.js)
234
244
  - [sandbox-profile-smoke.js](../test/sandbox-profile-smoke.js)
235
245
  - [schedule-routine-daemon-smoke.js](../test/schedule-routine-daemon-smoke.js)
@@ -246,8 +256,11 @@ Smoke tests mirror the public contracts. The high-signal suites are:
246
256
  - [telemetry-fail-closed-smoke.js](../test/telemetry-fail-closed-smoke.js)
247
257
  - [telemetry-ledger-smoke.js](../test/telemetry-ledger-smoke.js)
248
258
  - [telemetry-metrics-coverage-smoke.js](../test/telemetry-metrics-coverage-smoke.js)
259
+ - [telemetry-verify-signatures-smoke.js](../test/telemetry-verify-signatures-smoke.js)
249
260
  - [token-budget-enforcement-smoke.js](../test/token-budget-enforcement-smoke.js)
261
+ - [vendor-manifest-load-smoke.js](../test/vendor-manifest-load-smoke.js)
250
262
  - [verifier-gated-commit-smoke.js](../test/verifier-gated-commit-smoke.js)
263
+ - [verify-import-audit-chain-smoke.js](../test/verify-import-audit-chain-smoke.js)
251
264
  - [web-desktop-workbench-smoke.js](../test/web-desktop-workbench-smoke.js)
252
265
  - [worker-isolation-smoke.js](../test/worker-isolation-smoke.js)
253
266
  - [worker-retry-count-smoke.js](../test/worker-retry-count-smoke.js)
@@ -146,3 +146,5 @@ Migration DAG with reversible edges (v0.1.45), capability auto-discovery (v0.1.4
146
146
  ## Fast Architecture Review (v0.1.80)
147
147
 
148
148
  Adds the opt-in fast architecture-review lane: scoped JSONL source contexts, diff-aware exports, reusable Map and Assess results, measurable wrapper metrics, actionable background full-review handoff, and userland model policy flags for routing fast/strong workers without changing the full review contract.
149
+
150
+ _No changes to the real execution backends in v0.1.81._
@@ -284,3 +284,7 @@ Migration DAG with reversible edges (v0.1.45), capability auto-discovery (v0.1.4
284
284
  ## Fast Architecture Review (v0.1.80)
285
285
 
286
286
  Adds the opt-in fast architecture-review lane: scoped JSONL source contexts, diff-aware exports, reusable Map and Assess results, measurable wrapper metrics, actionable background full-review handoff, and userland model policy flags for routing fast/strong workers without changing the full review contract.
287
+
288
+ ## Migration Compatibility (v0.1.81)
289
+
290
+ v0.1.81 is additive: every change is a new flag/verb/env (`audit verify`, `run inspect-archive`, `verify-import --strict`, `CW_REQUIRE_ARCHIVE_INTEGRITY`, `quickstart --resume`, `run resume --drive`) or an internal behavior-preserving carve. Run-state schema, existing outputs, files, and exit codes are byte-identical, so runs and archives from prior versions load and verify unchanged. No migration action is required.
@@ -163,3 +163,5 @@ also get generated MCP manifests (`.gemini-plugin/`, `.opencode-plugin/`) so the
163
163
  ## Fast Architecture Review (v0.1.80)
164
164
 
165
165
  Adds the opt-in fast architecture-review lane: scoped JSONL source contexts, diff-aware exports, reusable Map and Assess results, measurable wrapper metrics, actionable background full-review handoff, and userland model policy flags for routing fast/strong workers without changing the full review contract.
166
+
167
+ _No changes to the release-flow tooling in v0.1.81; this release was cut through the existing gate->review->tag flow._
@@ -115,6 +115,14 @@ cwd — loads its durable state, and returns the next runnable tasks and next
115
115
  actions for the host to execute. Resume is read-only over source: it never
116
116
  mutates `state.json` and never un-archives a run.
117
117
 
118
+ `run resume <run-id> --drive` (or `--once` for a single step) hands the resolved
119
+ run straight to the existing agent-delegation drive loop — it re-plans nothing and
120
+ picks up the pending/running tasks deterministically from durable state — and
121
+ augments the result with the drive outcome under a `drive` field. The default (no
122
+ `--drive`) payload and `nextActions` stay byte-identical. An unconfigured agent
123
+ yields `drive.status="blocked"` (fail-closed, never a fabricated completion); CW
124
+ delegates worker execution to your agent and never runs a model itself.
125
+
118
126
  ## Queue
119
127
 
120
128
  `queue add` appends a durable entry to `$CW_HOME/registry/queue.json` with an
@@ -160,14 +168,47 @@ resumed from the target repo; restored failed runs remain discoverable from the
160
168
  home registry and can be rerun as new linked runs. The import does not alter the
161
169
  source repository or the source run.
162
170
 
163
- `run verify-import <run-id> [--cwd DIR]` re-reads the restore manifest, recomputes
164
- every restored file digest, checks the manifest digest, and verifies the
165
- telemetry ledger when one was restored. Missing manifests, digest mismatches,
166
- path escapes, unsupported archive schemas, unreadable files, or telemetry-chain
167
- failures return explicit failed checks instead of a fabricated success.
171
+ **Import-time refusal (fail-closed before any write).** Import verifies every
172
+ file digest, every file size, the file count, and the manifest digest *before*
173
+ creating the target run directory so a tampered archive is refused with a
174
+ non-zero exit and a single `cw:` stderr line, leaving nothing on disk (no partial
175
+ restore). Set `CW_REQUIRE_ARCHIVE_INTEGRITY=1` to additionally refuse an archive
176
+ whose top-level integrity block is *absent* — closing the legacy fail-open seam
177
+ where a stripped-integrity archive imported unverified. Unset (the default) keeps
178
+ legacy integrity-less archives byte-identical; the flag is mechanism, not policy.
168
179
 
169
- MCP exposes the same mechanisms as `cw_run_export`, `cw_run_import`, and
170
- `cw_run_verify_import`; the CLI and MCP paths share the same runtime functions.
180
+ `run verify-import <run-id> [--cwd DIR]` re-reads the restore manifest, recomputes
181
+ every restored file digest, checks the manifest digest, verifies the telemetry
182
+ ledger when one was restored, and re-proves the **trust-audit hash chain** (the
183
+ decisions / sandbox / commit-gate log, also restored under `audit/`). Missing
184
+ manifests, digest mismatches, path escapes, unsupported archive schemas, unreadable
185
+ files, telemetry-chain failures, or a forged audit chain (`trust-audit-invalid`)
186
+ return explicit failed checks instead of a fabricated success. An archive with no
187
+ audit log yields a passing `trust-audit` check (nothing to prove — no false-red).
188
+
189
+ By default `verify-import` prints the result and exits 0 even when a check fails
190
+ (it is a report). Pass `--strict` to make any failed restore check exit non-zero,
191
+ so `cw run verify-import <run> --strict && restore` stops on a tampered archive.
192
+
193
+ **Inspect an archive before restoring.** `run inspect-archive PATH [--json]`
194
+ re-proves a portable archive's integrity *without writing anything* — contrast
195
+ with `run import`, which validates as a side-effect of restoring a full
196
+ `.cw/runs/<id>/` tree. It re-computes every embedded file's sha256 and size, the
197
+ `integrity.fileCount` and manifest digest, and the whole-archive sha256, returning
198
+ a structured `checks[]` — each failure names the offending `relativePath` with a
199
+ `digest-mismatch` / `size-mismatch` / `manifest-digest-mismatch` /
200
+ `file-count-mismatch` code. It never throws: an unreadable path, invalid JSON, or an
201
+ unknown `schemaVersion` (`schemaSupported:false`) is reported as a check, not a
202
+ stacktrace — stdout is always valid JSON, diagnostics go to stderr. It exits `1`
203
+ when `ok:false`, so `cw run inspect-archive <path> && cw run import <path>` stops
204
+ before importing a bad archive. It is a faithful preview of import: under
205
+ `CW_REQUIRE_ARCHIVE_INTEGRITY=1` a stripped-integrity archive (which import would
206
+ refuse) also inspects as `ok:false`; with the env unset (default) an absent integrity
207
+ block is merely reported, not failed.
208
+
209
+ MCP exposes the same mechanisms as `cw_run_export`, `cw_run_import`,
210
+ `cw_run_verify_import`, and `cw_run_inspect_archive`; the CLI and MCP paths share
211
+ the same runtime functions.
171
212
 
172
213
  ## Cross-repo history
173
214
 
@@ -184,13 +225,14 @@ node scripts/cw.js registry show [--scope repo|home] [--json]
184
225
  node scripts/cw.js run search [--app ID] [--status STATE] [--text Q] [--repo PATH] [--since ISO] [--until ISO] [--limit N] [--offset N] [--scope repo|home] [--json]
185
226
  node scripts/cw.js run list [--scope repo|home] [--json]
186
227
  node scripts/cw.js run show <run-id> [--scope repo|home] [--json]
187
- node scripts/cw.js run resume <run-id> [--limit N] [--json]
228
+ node scripts/cw.js run resume <run-id> [--limit N] [--drive [--once]] [--json]
188
229
  node scripts/cw.js run archive <run-id> [--reason TEXT] [--unarchive]
189
230
  node scripts/cw.js run archive --older-than-days N [--state completed --state failed]
190
231
  node scripts/cw.js run rerun <run-id> [--reason TEXT]
191
232
  node scripts/cw.js run export <run-id> --output PATH
192
233
  node scripts/cw.js run import PATH --target DIR
193
234
  node scripts/cw.js run verify-import <run-id> [--cwd DIR]
235
+ node scripts/cw.js run inspect-archive PATH [--json]
194
236
  node scripts/cw.js queue add [--app ID|--workflow ID|--runId ID] [--repo PATH] [--priority N] [--note TEXT]
195
237
  node scripts/cw.js queue list [--status STATE] [--repo PATH] [--json]
196
238
  node scripts/cw.js queue show <queue-id>
@@ -353,3 +395,7 @@ Migration DAG with reversible edges (v0.1.45), capability auto-discovery (v0.1.4
353
395
  ## Fast Architecture Review (v0.1.80)
354
396
 
355
397
  Adds the opt-in fast architecture-review lane: scoped JSONL source contexts, diff-aware exports, reusable Map and Assess results, measurable wrapper metrics, actionable background full-review handoff, and userland model policy flags for routing fast/strong workers without changing the full review contract.
398
+
399
+ ## Resume Drive, Inspect-Archive & Restore Re-Prove (v0.1.81)
400
+
401
+ v0.1.81 adds `run resume <id> --drive/--once` (continue an interrupted run via the agent-drive loop; default resume stays read-only and byte-identical), `run inspect-archive PATH` (read-only archive integrity check that names any offending file without importing), and restore-time hardening: `verify-import` now re-proves the trust-audit chain on restore and gains `--strict`, and `CW_REQUIRE_ARCHIVE_INTEGRITY=1` refuses a stripped-integrity archive before any write.
@@ -195,3 +195,7 @@ Migration DAG with reversible edges (v0.1.45), capability auto-discovery (v0.1.4
195
195
  ## Fast Architecture Review (v0.1.80)
196
196
 
197
197
  Adds the opt-in fast architecture-review lane: scoped JSONL source contexts, diff-aware exports, reusable Map and Assess results, measurable wrapper metrics, actionable background full-review handoff, and userland model policy flags for routing fast/strong workers without changing the full review contract.
198
+
199
+ ## Deterministic Freed Manifest (v0.1.81)
200
+
201
+ The freed manifest is path-sorted before it feeds `tombstoneHash`, so reclamation's write-ahead tombstone hash-chain is reproducible across hosts regardless of filesystem enumeration order. Reclaimed tiers, the re-point seam, and the default (reclaim-nothing) policy are unchanged.
@@ -275,3 +275,5 @@ Migration DAG with reversible edges (v0.1.45), capability auto-discovery (v0.1.4
275
275
  ## Fast Architecture Review (v0.1.80)
276
276
 
277
277
  Adds the opt-in fast architecture-review lane: scoped JSONL source contexts, diff-aware exports, reusable Map and Assess results, measurable wrapper metrics, actionable background full-review handoff, and userland model policy flags for routing fast/strong workers without changing the full review contract.
278
+
279
+ _No changes to the state-explosion management surface in v0.1.81 (the module was carved into behavior-preserving siblings; output is byte-identical)._
@@ -211,3 +211,5 @@ Migration DAG with reversible edges (v0.1.45), capability auto-discovery (v0.1.4
211
211
  ## Fast Architecture Review (v0.1.80)
212
212
 
213
213
  Adds the opt-in fast architecture-review lane: scoped JSONL source contexts, diff-aware exports, reusable Map and Assess results, measurable wrapper metrics, actionable background full-review handoff, and userland model policy flags for routing fast/strong workers without changing the full review contract.
214
+
215
+ _No changes to the team-collaboration surface in v0.1.81._