@chllming/wave-orchestration 0.9.0 → 0.9.1
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.
- package/CHANGELOG.md +28 -0
- package/README.md +119 -18
- package/docs/README.md +7 -3
- package/docs/architecture/README.md +1498 -0
- package/docs/concepts/operating-modes.md +2 -2
- package/docs/guides/author-and-run-waves.md +14 -4
- package/docs/guides/planner.md +2 -2
- package/docs/guides/{recommendations-0.9.0.md → recommendations-0.9.1.md} +8 -7
- package/docs/guides/sandboxed-environments.md +158 -0
- package/docs/guides/terminal-surfaces.md +14 -12
- package/docs/plans/current-state.md +5 -3
- package/docs/plans/end-state-architecture.md +3 -1
- package/docs/plans/examples/wave-example-design-handoff.md +1 -1
- package/docs/plans/examples/wave-example-live-proof.md +1 -1
- package/docs/plans/migration.md +46 -19
- package/docs/plans/sandbox-end-state-architecture.md +153 -0
- package/docs/reference/cli-reference.md +71 -7
- package/docs/reference/coordination-and-closure.md +1 -1
- package/docs/reference/github-packages-setup.md +1 -1
- package/docs/reference/migration-0.2-to-0.5.md +9 -7
- package/docs/reference/npmjs-token-publishing.md +53 -0
- package/docs/reference/npmjs-trusted-publishing.md +4 -50
- package/docs/reference/package-publishing-flow.md +272 -0
- package/docs/reference/runtime-config/README.md +2 -2
- package/docs/reference/sample-waves.md +5 -5
- package/docs/reference/skills.md +1 -1
- package/docs/roadmap.md +43 -201
- package/package.json +1 -1
- package/releases/manifest.json +19 -0
- package/scripts/wave-orchestrator/agent-process-runner.mjs +344 -0
- package/scripts/wave-orchestrator/agent-state.mjs +0 -1
- package/scripts/wave-orchestrator/artifact-schemas.mjs +7 -0
- package/scripts/wave-orchestrator/autonomous.mjs +47 -14
- package/scripts/wave-orchestrator/closure-engine.mjs +138 -17
- package/scripts/wave-orchestrator/control-cli.mjs +42 -5
- package/scripts/wave-orchestrator/dashboard-renderer.mjs +115 -43
- package/scripts/wave-orchestrator/derived-state-engine.mjs +6 -3
- package/scripts/wave-orchestrator/gate-engine.mjs +106 -38
- package/scripts/wave-orchestrator/install.mjs +13 -0
- package/scripts/wave-orchestrator/launcher-progress.mjs +91 -0
- package/scripts/wave-orchestrator/launcher-runtime.mjs +179 -68
- package/scripts/wave-orchestrator/launcher.mjs +201 -53
- package/scripts/wave-orchestrator/ledger.mjs +7 -2
- package/scripts/wave-orchestrator/projection-writer.mjs +13 -1
- package/scripts/wave-orchestrator/reducer-snapshot.mjs +6 -0
- package/scripts/wave-orchestrator/retry-control.mjs +3 -3
- package/scripts/wave-orchestrator/retry-engine.mjs +93 -6
- package/scripts/wave-orchestrator/role-helpers.mjs +30 -0
- package/scripts/wave-orchestrator/session-supervisor.mjs +94 -85
- package/scripts/wave-orchestrator/supervisor-cli.mjs +1306 -0
- package/scripts/wave-orchestrator/terminals.mjs +12 -32
- package/scripts/wave-orchestrator/tmux-adapter.mjs +300 -0
- package/scripts/wave-orchestrator/wave-files.mjs +38 -5
- package/scripts/wave.mjs +13 -0
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
# Package Publishing Flow
|
|
2
|
+
|
|
3
|
+
This document describes how this repo publishes `@chllming/wave-orchestration` end to end, including the scripts, workflows, release artifacts, and verification steps involved.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
The package publish flow has two layers:
|
|
8
|
+
|
|
9
|
+
1. repo-owned release preparation
|
|
10
|
+
2. tag-triggered registry publishing
|
|
11
|
+
|
|
12
|
+
Release preparation happens in the repository itself:
|
|
13
|
+
|
|
14
|
+
- bump `package.json`
|
|
15
|
+
- update release-surface docs and fixtures
|
|
16
|
+
- validate the repo
|
|
17
|
+
- merge the release changes to `main`
|
|
18
|
+
- push a version tag such as `v0.9.1`
|
|
19
|
+
|
|
20
|
+
Registry publishing happens in GitHub Actions after the tag push:
|
|
21
|
+
|
|
22
|
+
- [publish-npm.yml](../../.github/workflows/publish-npm.yml) publishes to npmjs
|
|
23
|
+
- [publish-package.yml](../../.github/workflows/publish-package.yml) publishes to GitHub Packages
|
|
24
|
+
- [npmjs-token-publishing.md](./npmjs-token-publishing.md) documents the npm token setup used by `publish-npm.yml`
|
|
25
|
+
|
|
26
|
+
Both workflows run on tag pushes matching `v*`, and each workflow now fails fast unless `github.ref_name` exactly matches `v${package.json.version}`.
|
|
27
|
+
|
|
28
|
+
## Release Artifacts That Move Together
|
|
29
|
+
|
|
30
|
+
These files are part of the release surface and should be updated in the same change when the package version changes:
|
|
31
|
+
|
|
32
|
+
- `package.json`
|
|
33
|
+
- `README.md`
|
|
34
|
+
- `CHANGELOG.md`
|
|
35
|
+
- `docs/README.md`
|
|
36
|
+
- `docs/plans/current-state.md`
|
|
37
|
+
- `docs/plans/migration.md`
|
|
38
|
+
- `docs/guides/sandboxed-environments.md`
|
|
39
|
+
- `docs/reference/coordination-and-closure.md`
|
|
40
|
+
- `docs/reference/runtime-config/README.md`
|
|
41
|
+
- `releases/manifest.json`
|
|
42
|
+
- `.wave/install-state.json`
|
|
43
|
+
- tracked `.wave/upgrade-history/*`
|
|
44
|
+
- versioned docs such as `docs/guides/recommendations-<version>.md`
|
|
45
|
+
- `AGENTS.md`
|
|
46
|
+
|
|
47
|
+
This repo treats those files as part of the package-facing release contract, not just internal documentation.
|
|
48
|
+
|
|
49
|
+
## Scripts And Commands Involved
|
|
50
|
+
|
|
51
|
+
### Main CLI entrypoint
|
|
52
|
+
|
|
53
|
+
- `scripts/wave.mjs`
|
|
54
|
+
Routes install and lifecycle commands into `scripts/wave-orchestrator/install.mjs`.
|
|
55
|
+
|
|
56
|
+
The lifecycle commands relevant to publishing are:
|
|
57
|
+
|
|
58
|
+
- `wave doctor`
|
|
59
|
+
- `wave changelog`
|
|
60
|
+
- `wave upgrade`
|
|
61
|
+
- `wave self-update`
|
|
62
|
+
|
|
63
|
+
### Install and release-state module
|
|
64
|
+
|
|
65
|
+
- `scripts/wave-orchestrator/install.mjs`
|
|
66
|
+
|
|
67
|
+
This module owns the local package-lifecycle surfaces:
|
|
68
|
+
|
|
69
|
+
- `wave init`
|
|
70
|
+
Seeds or adopts starter workspace files.
|
|
71
|
+
- `wave doctor`
|
|
72
|
+
Validates that the current workspace matches the installed package expectations.
|
|
73
|
+
- `wave changelog`
|
|
74
|
+
Reads `releases/manifest.json` and prints release notes.
|
|
75
|
+
- `wave upgrade`
|
|
76
|
+
Writes `.wave/install-state.json` and a markdown/json report into `.wave/upgrade-history/`.
|
|
77
|
+
- `wave self-update`
|
|
78
|
+
Updates the dependency in the target workspace, prints changelog deltas, and then runs `wave upgrade`.
|
|
79
|
+
|
|
80
|
+
### Release-validation commands
|
|
81
|
+
|
|
82
|
+
These are the normal validation commands before tagging:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
pnpm test
|
|
86
|
+
pnpm test -- test/wave-orchestrator/release-surface.test.ts
|
|
87
|
+
node scripts/wave.mjs doctor --json
|
|
88
|
+
node scripts/wave.mjs launch --lane main --dry-run --no-dashboard
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Registry verification commands
|
|
92
|
+
|
|
93
|
+
After publish:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
npm view @chllming/wave-orchestration version dist-tags --json
|
|
97
|
+
gh run list --limit 10
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## End-to-End Flow
|
|
101
|
+
|
|
102
|
+
### 1. Prepare the release change
|
|
103
|
+
|
|
104
|
+
Update the release artifacts together, then validate locally.
|
|
105
|
+
|
|
106
|
+
Typical local flow:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
pnpm test -- test/wave-orchestrator/release-surface.test.ts
|
|
110
|
+
node scripts/wave.mjs doctor --json
|
|
111
|
+
node scripts/wave.mjs launch --lane main --dry-run --no-dashboard
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
If the version changed, also refresh the tracked workspace lifecycle state:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
pnpm exec wave upgrade
|
|
118
|
+
pnpm exec wave changelog --since-installed
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
In this source repo, `.wave/install-state.json` and tracked `.wave/upgrade-history/` records are intentionally part of the release surface.
|
|
122
|
+
|
|
123
|
+
### 2. Merge the release change to `main`
|
|
124
|
+
|
|
125
|
+
This repository protects `main`, so release changes must land through a pull request rather than a direct push.
|
|
126
|
+
|
|
127
|
+
Typical git flow:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
git checkout -b release/0.9.1
|
|
131
|
+
git push -u origin release/0.9.1
|
|
132
|
+
gh pr create --base main --head release/0.9.1
|
|
133
|
+
gh pr merge <pr-number> --merge --delete-branch
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### 3. Push the release tag
|
|
137
|
+
|
|
138
|
+
After the release commit is on `main`, push the version tag:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
git tag v0.9.1
|
|
142
|
+
git push origin v0.9.1
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
That tag push is the event that starts both publishing workflows.
|
|
146
|
+
|
|
147
|
+
The tag must match the checked-in package version exactly. Example: if `package.json.version` is `0.9.1`, the pushed tag must be `v0.9.1`.
|
|
148
|
+
|
|
149
|
+
## GitHub Actions Workflows
|
|
150
|
+
|
|
151
|
+
### npmjs publish
|
|
152
|
+
|
|
153
|
+
- workflow: [publish-npm.yml](../../.github/workflows/publish-npm.yml)
|
|
154
|
+
- trigger: push tags matching `v*`
|
|
155
|
+
- runtime: Node 22
|
|
156
|
+
- auth secret: `NPM_TOKEN`
|
|
157
|
+
- publish command:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
pnpm publish --access public --no-git-checks
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
The workflow does:
|
|
164
|
+
|
|
165
|
+
1. `actions/checkout`
|
|
166
|
+
2. `pnpm/action-setup`
|
|
167
|
+
3. `actions/setup-node` with `registry-url: https://registry.npmjs.org`
|
|
168
|
+
4. verify `github.ref_name === "v" + package.json.version`
|
|
169
|
+
5. `pnpm install --frozen-lockfile`
|
|
170
|
+
6. `pnpm test`
|
|
171
|
+
7. `pnpm publish --access public --no-git-checks`
|
|
172
|
+
|
|
173
|
+
### GitHub Packages publish
|
|
174
|
+
|
|
175
|
+
- workflow: [publish-package.yml](../../.github/workflows/publish-package.yml)
|
|
176
|
+
- trigger: push tags matching `v*`
|
|
177
|
+
- runtime: Node 22
|
|
178
|
+
- auth token: `GITHUB_TOKEN`
|
|
179
|
+
- publish command:
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
pnpm publish --registry=https://npm.pkg.github.com --no-git-checks
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
The workflow does:
|
|
186
|
+
|
|
187
|
+
1. `actions/checkout`
|
|
188
|
+
2. `pnpm/action-setup`
|
|
189
|
+
3. `actions/setup-node` with `registry-url: https://npm.pkg.github.com`
|
|
190
|
+
4. verify `github.ref_name === "v" + package.json.version`
|
|
191
|
+
5. `pnpm install --frozen-lockfile`
|
|
192
|
+
6. `pnpm test`
|
|
193
|
+
7. `pnpm publish --registry=https://npm.pkg.github.com --no-git-checks`
|
|
194
|
+
|
|
195
|
+
## Verification After Tag Push
|
|
196
|
+
|
|
197
|
+
Use GitHub Actions first:
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
gh run list --limit 10 --json workflowName,headBranch,headSha,status,conclusion,url
|
|
201
|
+
gh run watch <run-id> --exit-status
|
|
202
|
+
gh run view <run-id> --log-failed
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Then verify the public registry:
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
npm view @chllming/wave-orchestration version dist-tags --json
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Expected result after a successful publish:
|
|
212
|
+
|
|
213
|
+
```json
|
|
214
|
+
{
|
|
215
|
+
"version": "0.9.1",
|
|
216
|
+
"dist-tags": {
|
|
217
|
+
"latest": "0.9.1"
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
## Repair Flow When Publish Fails
|
|
223
|
+
|
|
224
|
+
If a tag-triggered publish fails before the package is actually published, the fastest repair path is:
|
|
225
|
+
|
|
226
|
+
1. fix the repo issue in a new commit
|
|
227
|
+
2. move the tag to the fixed commit
|
|
228
|
+
3. force-push the tag
|
|
229
|
+
4. watch the rerun
|
|
230
|
+
|
|
231
|
+
Example:
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
git tag -f v0.9.1 <fixed-commit>
|
|
235
|
+
git push origin refs/tags/v0.9.1 --force
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
Use that only before the package is live on npmjs. Once npmjs has accepted a version, do not try to republish the same version; cut a new version instead.
|
|
239
|
+
|
|
240
|
+
Common failure classes:
|
|
241
|
+
|
|
242
|
+
- release-surface drift
|
|
243
|
+
A versioned doc or fixture did not move with `package.json`.
|
|
244
|
+
- workflow-environment drift
|
|
245
|
+
The CI runtime differs from the runtime that was locally validated.
|
|
246
|
+
- missing secrets
|
|
247
|
+
`NPM_TOKEN` is missing or invalid for npmjs.
|
|
248
|
+
- test assumptions on ignored files
|
|
249
|
+
CI cannot see local-only workstation files such as `.vscode/terminals.json`.
|
|
250
|
+
|
|
251
|
+
## Security And Secrets
|
|
252
|
+
|
|
253
|
+
For npmjs publishing:
|
|
254
|
+
|
|
255
|
+
- keep `NPM_TOKEN` scoped as narrowly as possible
|
|
256
|
+
- use `Read and write` only for the target package or scope
|
|
257
|
+
- rotate the token periodically
|
|
258
|
+
- revoke temporary or emergency tokens after use
|
|
259
|
+
|
|
260
|
+
GitHub Packages publishing uses the workflow `GITHUB_TOKEN`, so it does not require a separate package-publish secret.
|
|
261
|
+
|
|
262
|
+
## What This Flow Does Not Do
|
|
263
|
+
|
|
264
|
+
There is no dedicated local `release` shell script in this repo that bumps versions, tags commits, and publishes in one command.
|
|
265
|
+
|
|
266
|
+
The flow today is intentionally split:
|
|
267
|
+
|
|
268
|
+
- repo release preparation is explicit and reviewable
|
|
269
|
+
- package lifecycle state is recorded by `wave upgrade`
|
|
270
|
+
- actual registry publishing is delegated to tag-triggered GitHub Actions
|
|
271
|
+
|
|
272
|
+
That split keeps release metadata, workspace upgrade history, and package publication visible and auditable.
|
|
@@ -190,7 +190,7 @@ Practical guidance:
|
|
|
190
190
|
- prefer `budget.minutes` for normal synthesis, integration, and closure work
|
|
191
191
|
- use generic `budget.turns` as a planning hint, not a hard failure trigger
|
|
192
192
|
- only set `claude.maxTurns` or `opencode.steps` when you deliberately want a hard ceiling for that runtime
|
|
193
|
-
- see [../../guides/recommendations-0.9.
|
|
193
|
+
- see [../../guides/recommendations-0.9.1.md](../../guides/recommendations-0.9.1.md) for the recommended `0.9.1` operating stance that combines advisory turn budgets with softer non-proof coordination states
|
|
194
194
|
|
|
195
195
|
## Runtime Pages
|
|
196
196
|
|
|
@@ -202,7 +202,7 @@ Practical guidance:
|
|
|
202
202
|
|
|
203
203
|
`wave.config.json` may also declare a `waveControl` block for local-first telemetry delivery.
|
|
204
204
|
|
|
205
|
-
Packaged defaults in `@chllming/wave-orchestration@0.9.
|
|
205
|
+
Packaged defaults in `@chllming/wave-orchestration@0.9.1`:
|
|
206
206
|
|
|
207
207
|
- `endpoint`: `https://wave-control.up.railway.app/api/v1`
|
|
208
208
|
- `reportMode`: `metadata-only`
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Sample Waves"
|
|
3
|
-
summary: "Showcase-first sample waves that demonstrate the shipped 0.9.
|
|
3
|
+
summary: "Showcase-first sample waves that demonstrate the shipped 0.9.1 authored surface, including the optional design-role path."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Sample Waves
|
|
7
7
|
|
|
8
|
-
This guide points to showcase-first sample waves that demonstrate the shipped `0.9.
|
|
8
|
+
This guide points to showcase-first sample waves that demonstrate the shipped `0.9.1` authored Wave surface.
|
|
9
9
|
|
|
10
10
|
The examples are intentionally denser than typical production waves. Their job is to teach the current authoring and runtime surface quickly, not to be the smallest possible launch-ready files.
|
|
11
11
|
|
|
@@ -17,7 +17,7 @@ All example `.tmp/main-wave-launcher/...` paths assume the implicit default proj
|
|
|
17
17
|
Shows what a good `repo-landed` outcome looks like when one promoted component only closes honestly if desired-state records, reconcile-loop substrate, and cluster-view surfaces land together. It emphasizes maturity discipline, explicit deliverables, and shared-plan closure without drifting into `pilot-live` claims.
|
|
18
18
|
|
|
19
19
|
- [Full modern sample wave](../plans/examples/wave-example-live-proof.md)
|
|
20
|
-
Shows the combined `0.9.
|
|
20
|
+
Shows the combined `0.9.1` authored surface in one file: closure roles, `E0`, optional security review, delegated and pinned benchmark targets, richer executor config, `### Skills`, `### Capabilities`, `### Deliverables`, `### Exit contract`, `### Proof artifacts`, sticky retry, deploy environments, and proof-first live-wave structure.
|
|
21
21
|
|
|
22
22
|
- [Optional design-steward handoff wave](../plans/examples/wave-example-design-handoff.md)
|
|
23
23
|
Shows the shipped design-role surface: one pre-implementation design steward publishes a design packet, downstream implementation owners read that packet before coding, and normal closure roles still decide final completion. For terminal or operator-surface work, pair that shape with explicit `tui-design` in the design steward's `### Skills`. For the hybrid variant, explicitly give that same design agent implementation-owned paths and the normal implementation contract sections.
|
|
@@ -46,7 +46,7 @@ All example `.tmp/main-wave-launcher/...` paths assume the implicit default proj
|
|
|
46
46
|
|
|
47
47
|
## Feature Coverage Map
|
|
48
48
|
|
|
49
|
-
Together these samples cover the main surfaces added or hardened through `0.9.
|
|
49
|
+
Together these samples cover the main surfaces added or hardened through `0.9.1`:
|
|
50
50
|
|
|
51
51
|
- repo-landed maturity discipline and anti-overclaim framing
|
|
52
52
|
- explicit shared-plan closure for future-wave safety
|
|
@@ -184,7 +184,7 @@ Adapt more aggressively when:
|
|
|
184
184
|
## Suggested Reading Order
|
|
185
185
|
|
|
186
186
|
1. Start with [High-fidelity repo-landed rollout wave](../plans/examples/wave-example-rollout-fidelity.md) if you want the clearest example of good closure-ready wave fidelity for a repo-only outcome.
|
|
187
|
-
2. Read [Full modern sample wave](../plans/examples/wave-example-live-proof.md) if you want the denser proof-first and eval-heavy `0.9.
|
|
187
|
+
2. Read [Full modern sample wave](../plans/examples/wave-example-live-proof.md) if you want the denser proof-first and eval-heavy `0.9.1` surface.
|
|
188
188
|
3. Read [Optional design-steward handoff wave](../plans/examples/wave-example-design-handoff.md) if the task needs a design packet before implementation fan-out.
|
|
189
189
|
4. Read [docs/evals/README.md](../evals/README.md) if you want more background on benchmark target selection.
|
|
190
190
|
5. Read [docs/reference/live-proof-waves.md](./live-proof-waves.md) if you want more detail on proof-first `pilot-live` authoring.
|
package/docs/reference/skills.md
CHANGED
|
@@ -124,7 +124,7 @@ Top-level and lane-local skill attachment use the same shape:
|
|
|
124
124
|
|
|
125
125
|
Lane-local `lanes.<lane>.skills` extends the global config instead of replacing it.
|
|
126
126
|
|
|
127
|
-
Optional design workers in the shipped `0.9.
|
|
127
|
+
Optional design workers in the shipped `0.9.1` surface normally attach `role-design`. That bundle is intended for docs/spec-first design packets and explicit implementation handoff work before implementation starts. When the design packet covers terminal UX, dashboards, or other operator surfaces, add `tui-design` explicitly in the wave's `### Skills`.
|
|
128
128
|
|
|
129
129
|
Long-running agents that should stay resident and react only to orchestrator signal changes can add `signal-hygiene` explicitly in `### Skills`. That bundle is not auto-attached and is not meant for normal one-shot implementation agents.
|
|
130
130
|
|
package/docs/roadmap.md
CHANGED
|
@@ -1,226 +1,68 @@
|
|
|
1
1
|
# Wave Orchestrator Roadmap
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
This roadmap is intentionally short and current. The older planner-foundation and ad-hoc-run phase list has been removed because that work no longer describes the actual shipping direction for this package.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Current Release: 0.9.1
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
`0.9.1` is the runtime-hardening release.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
It focuses on:
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
- detached process-backed agent execution instead of tmux-heavy live execution
|
|
12
|
+
- lower steady-state memory pressure and less terminal churn during long runs
|
|
13
|
+
- better behavior in constrained sandboxes such as LEAPclaw, OpenClaw, Nemoshell, and Docker-based operator environments
|
|
14
|
+
- a safer `submit -> supervise -> status/wait -> attach` control path for long-running agentic orchestration
|
|
15
|
+
- tighter supervisor recovery, progress journaling, and closure/retry correctness
|
|
12
16
|
|
|
13
|
-
|
|
14
|
-
- wave parsing and validation
|
|
15
|
-
- role-based execution with cont-qa, integration, and documentation stewards
|
|
16
|
-
- executor profiles and lane runtime policy
|
|
17
|
-
- compiled inboxes, ledgers, docs queues, dependency snapshots, and trace bundles
|
|
18
|
-
- orchestrator-first clarification handling and human feedback workflows
|
|
17
|
+
## Next Release: Final Planned Feature Release On This Line
|
|
19
18
|
|
|
20
|
-
The
|
|
19
|
+
The next planned release after `0.9.1`, aside from bug fixes and release-surface maintenance, is the final feature release for this standalone Node-based line.
|
|
21
20
|
|
|
22
|
-
|
|
21
|
+
That release is focused on Wave Control authentication:
|
|
23
22
|
|
|
24
|
-
|
|
23
|
+
- token-based auth for `wave-control`
|
|
24
|
+
- web auth for the Wave Control operator surface
|
|
25
|
+
- a cleaner control-plane boundary between the local orchestrator runtime and authenticated operator access
|
|
26
|
+
- documentation and setup guidance for protected control surfaces in local, containerized, and hosted environments
|
|
25
27
|
|
|
26
|
-
|
|
27
|
-
- What exact components are being promoted and why now?
|
|
28
|
-
- What is the required runtime mix and fallback policy?
|
|
29
|
-
- Which deploy environment or infra substrate is in scope?
|
|
30
|
-
- Is the run `oversight` or `dark-factory`?
|
|
31
|
-
- What exact validation commands must pass?
|
|
32
|
-
- What exact artifact closes the role?
|
|
28
|
+
After that release, this package should move into maintenance mode:
|
|
33
29
|
|
|
34
|
-
|
|
30
|
+
- bug fixes
|
|
31
|
+
- compatibility updates
|
|
32
|
+
- documentation updates
|
|
33
|
+
- release-surface alignment work
|
|
35
34
|
|
|
36
|
-
|
|
37
|
-
- reference rule or source-of-truth note
|
|
38
|
-
- project bootstrap context
|
|
39
|
-
- deploy environments
|
|
40
|
-
- component promotions
|
|
41
|
-
- Context7 defaults
|
|
42
|
-
- per-agent required context
|
|
43
|
-
- earlier-wave outputs to read
|
|
44
|
-
- requirements
|
|
45
|
-
- validation
|
|
46
|
-
- output or closure contract
|
|
35
|
+
## Strategic Direction: LEAPclaw Execution Model
|
|
47
36
|
|
|
48
|
-
|
|
37
|
+
After the Wave Control auth release, the main execution roadmap moves away from expanding this Node runtime and toward the LEAPclaw execution model.
|
|
49
38
|
|
|
50
|
-
|
|
39
|
+
The target shape is:
|
|
51
40
|
|
|
52
|
-
-
|
|
53
|
-
-
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
|
|
57
|
-
- `docs/plans/waves/wave-<n>.md`
|
|
58
|
-
- Treat the JSON draft spec as the canonical authoring artifact and render markdown from it.
|
|
59
|
-
- Keep generated waves fully compatible with the current parser and launcher.
|
|
60
|
-
- Add `wave launch --terminal-surface vscode|tmux|none`.
|
|
61
|
-
- Support a tmux-only operator mode that never touches `.vscode/terminals.json`.
|
|
41
|
+
- LEAPclaw-native execution semantics for agent orchestration and management
|
|
42
|
+
- Go-based runtime ownership for the long-running execution layer
|
|
43
|
+
- Temporal-backed workflow and recovery coordination
|
|
44
|
+
- LEAPclaw nodes as the durable execution substrate for orchestrated agent work
|
|
45
|
+
- Wave Control acting as an authenticated control and observability surface rather than the long-term primary execution engine
|
|
62
46
|
|
|
63
|
-
|
|
47
|
+
This direction matches the broader local platform work in the sibling `slowfast.ai` repository, where the support-service and runtime direction already points toward LEAPclaw support services, Go runtime ownership, and Temporal-backed orchestration.
|
|
64
48
|
|
|
65
|
-
|
|
66
|
-
- The repo already has strong runtime and closure machinery.
|
|
67
|
-
- Project memory removes repeated setup questions and gives future planner steps a durable baseline.
|
|
49
|
+
## Future Standalone Runtime Direction
|
|
68
50
|
|
|
69
|
-
|
|
51
|
+
For future standalone Wave Orchestrator versions, the preferred implementation direction is the Rust runtime at:
|
|
70
52
|
|
|
71
|
-
|
|
53
|
+
- `https://github.com/chllming/agent-wave-orchestrator`
|
|
72
54
|
|
|
73
|
-
|
|
55
|
+
That line is expected to carry:
|
|
74
56
|
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
-
|
|
78
|
-
- `wave adhoc show --run <id>`
|
|
79
|
-
- `wave adhoc promote --run <id> --wave <n>`
|
|
57
|
+
- its own runtime implementation
|
|
58
|
+
- its own terminal-native/TUI operator surface
|
|
59
|
+
- the longer-term standalone execution model once the Node package settles into maintenance mode
|
|
80
60
|
|
|
81
|
-
|
|
61
|
+
## Practical Guidance
|
|
82
62
|
|
|
83
|
-
|
|
84
|
-
- normalize them into a single transient plan or spec
|
|
85
|
-
- synthesize the worker roles needed for the request while still preserving cont-qa, integration, and documentation closure when relevant
|
|
86
|
-
- run that transient plan through the existing launcher, coordination, inbox, ledger, docs queue, integration, and trace machinery
|
|
87
|
-
- keep ad-hoc runs logged, inspectable, and replayable with the same basic operator surfaces as roadmap waves
|
|
88
|
-
- route shared-plan documentation deltas into the canonical shared docs queue, plus an ad-hoc closure report for the run
|
|
89
|
-
- treat only repo-local paths as ownership hints and ignore external references such as URLs
|
|
63
|
+
For this repository, the practical sequence is:
|
|
90
64
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
- keep runtime state isolated under `.tmp/<lane>-wave-launcher/adhoc/<run-id>/`
|
|
96
|
-
- extend trace metadata with `runKind: adhoc` and `runId`
|
|
97
|
-
|
|
98
|
-
Design constraints:
|
|
99
|
-
|
|
100
|
-
- reuse the planner and launcher instead of building a second runtime
|
|
101
|
-
- treat ad-hoc as a transient single-run execution unit, not a fake roadmap wave
|
|
102
|
-
- do not let ad-hoc completion mutate normal `completedWaves` lane state
|
|
103
|
-
- give `wave coord`, `wave feedback`, and future replay or reporting flows a way to target `--run <id>`
|
|
104
|
-
- promote numbered roadmap artifacts from the stored ad-hoc spec instead of recomputing them from the current project profile
|
|
105
|
-
|
|
106
|
-
Why this matters:
|
|
107
|
-
|
|
108
|
-
- many real operator requests are one-off bugfix, investigation, doc, infra, or release tasks
|
|
109
|
-
- the framework's coordination, closure, and traceability should apply to ad-hoc work too
|
|
110
|
-
- isolated ad-hoc runs preserve auditability without polluting the long-lived roadmap
|
|
111
|
-
|
|
112
|
-
## Phase 3: Forward Replanning
|
|
113
|
-
|
|
114
|
-
Add `wave update --from-wave <n>`.
|
|
115
|
-
|
|
116
|
-
Rules:
|
|
117
|
-
|
|
118
|
-
- closed waves are immutable
|
|
119
|
-
- the current open wave and later waves may be regenerated
|
|
120
|
-
- replanning must record what changed and why
|
|
121
|
-
- new repo state, new user intent, and refreshed research may all trigger a replan
|
|
122
|
-
|
|
123
|
-
Outputs:
|
|
124
|
-
|
|
125
|
-
- updated draft JSON specs
|
|
126
|
-
- regenerated markdown waves
|
|
127
|
-
- a short replan summary for operator review
|
|
128
|
-
|
|
129
|
-
Why this matters:
|
|
130
|
-
|
|
131
|
-
- multi-wave plans drift as code lands
|
|
132
|
-
- research and infra assumptions change
|
|
133
|
-
- forward-only replanning preserves auditability without pretending older waves never existed
|
|
134
|
-
|
|
135
|
-
## Phase 4: Infra and Deploy-Aware Planning
|
|
136
|
-
|
|
137
|
-
Infra and deploy roles need typed environment context, not free-form prompt notes only.
|
|
138
|
-
|
|
139
|
-
Project profile should support typed deploy providers with a `custom` escape hatch:
|
|
140
|
-
|
|
141
|
-
- `railway-mcp`
|
|
142
|
-
- `railway-cli`
|
|
143
|
-
- `docker-compose`
|
|
144
|
-
- `kubernetes`
|
|
145
|
-
- `ssh-manual`
|
|
146
|
-
- `custom`
|
|
147
|
-
|
|
148
|
-
Planner-generated infra or deploy roles should know:
|
|
149
|
-
|
|
150
|
-
- which environment they own
|
|
151
|
-
- which substrate is authoritative
|
|
152
|
-
- what credentials or executors are expected
|
|
153
|
-
- what validation commands prove readiness
|
|
154
|
-
- what rollback or recovery guidance applies
|
|
155
|
-
|
|
156
|
-
This is especially important for `dark-factory` mode. Fully autonomous infra work should require stronger environment modeling than human-overseen work.
|
|
157
|
-
|
|
158
|
-
## Phase 5: Oversight and Dark-Factory Modes
|
|
159
|
-
|
|
160
|
-
Execution posture must be explicit plan data.
|
|
161
|
-
|
|
162
|
-
Default:
|
|
163
|
-
|
|
164
|
-
- `oversight`
|
|
165
|
-
|
|
166
|
-
Opt-in:
|
|
167
|
-
|
|
168
|
-
- `dark-factory`
|
|
169
|
-
|
|
170
|
-
`oversight` means:
|
|
171
|
-
|
|
172
|
-
- human checkpoints remain normal for live mutation, deploy, release, or risky infra work
|
|
173
|
-
- the planner should generate explicit review gates
|
|
174
|
-
|
|
175
|
-
`dark-factory` means:
|
|
176
|
-
|
|
177
|
-
- the wave is intended to run end-to-end without routine human approvals
|
|
178
|
-
- deploy environment, validation, rollback, and closure signals must be stricter
|
|
179
|
-
- missing environment context is a planning error, not a runtime surprise
|
|
180
|
-
|
|
181
|
-
## Phase 6: Coordination and Integration Upgrades
|
|
182
|
-
|
|
183
|
-
The runtime already has strong coordination primitives, but the roadmap should still push these areas:
|
|
184
|
-
|
|
185
|
-
- keep the canonical authority set explicit and the markdown board as a rendered view
|
|
186
|
-
- keep compiled per-agent inboxes and shared summaries central to prompt construction
|
|
187
|
-
- strengthen the integration steward output as the single closure-ready synthesis artifact
|
|
188
|
-
- add `wave lint` for ownership, component promotion, runtime mix, deploy environment, and closure completeness
|
|
189
|
-
- expand replay scenarios for replanning, autonomy modes, and infra-heavy waves
|
|
190
|
-
|
|
191
|
-
## Additional Features Worth Scheduling
|
|
192
|
-
|
|
193
|
-
- template packs for common wave shapes: implementation, QA, infra, release, migration
|
|
194
|
-
- doc-delta extraction plus changelog or release-note queues when waves change public behavior
|
|
195
|
-
- executor and credential preflight checks before launch
|
|
196
|
-
- project-profile-aware defaults for lane, template, terminal surface, and oversight mode
|
|
197
|
-
- richer branch and PR guidance in draft specs when the wave is release or deploy oriented
|
|
198
|
-
- benchmark scenarios that compare oversight vs dark-factory outcomes
|
|
199
|
-
|
|
200
|
-
## Research Notes
|
|
201
|
-
|
|
202
|
-
The direction above is consistent with the local source set and the current external references:
|
|
203
|
-
|
|
204
|
-
- OpenAI, “Harness engineering: leveraging Codex in an agent-first world”
|
|
205
|
-
- repository-local plans and environment design matter more than prompt-only control
|
|
206
|
-
- Anthropic, “Effective harnesses for long-running agents”
|
|
207
|
-
- first-run initialization and durable progress artifacts are critical
|
|
208
|
-
- DOVA
|
|
209
|
-
- deliberation-first orchestration and transparent intermediate state support better refinement loops
|
|
210
|
-
- Silo-Bench
|
|
211
|
-
- communication alone is not enough; integration quality is the real bottleneck
|
|
212
|
-
- Evaluating AGENTS.md
|
|
213
|
-
- repository-level context files help, but they should complement executable and versioned planning artifacts rather than replace them
|
|
214
|
-
|
|
215
|
-
## Immediate Recommendation
|
|
216
|
-
|
|
217
|
-
The next shipping sequence should be:
|
|
218
|
-
|
|
219
|
-
1. planner foundation
|
|
220
|
-
2. ad-hoc task runs on the same substrate
|
|
221
|
-
3. forward replanning
|
|
222
|
-
4. typed infra and deploy planning
|
|
223
|
-
5. explicit oversight vs dark-factory workflows
|
|
224
|
-
6. stronger linting, replay, and benchmark coverage
|
|
225
|
-
|
|
226
|
-
That sequence keeps the current harness intact while making planning, execution posture, and infra ownership much more explicit and durable.
|
|
65
|
+
1. Ship `0.9.1` with the sandbox/runtime hardening and aligned docs.
|
|
66
|
+
2. Ship the Wave Control token/web auth release as the last planned feature release on this Node line.
|
|
67
|
+
3. Keep this package maintained for bug fixes, compatibility, and release-surface sync.
|
|
68
|
+
4. Move long-term execution investment to the LEAPclaw + Go + Temporal architecture and the Rust standalone runtime.
|
package/package.json
CHANGED
package/releases/manifest.json
CHANGED
|
@@ -2,6 +2,25 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"packageName": "@chllming/wave-orchestration",
|
|
4
4
|
"releases": [
|
|
5
|
+
{
|
|
6
|
+
"version": "0.9.1",
|
|
7
|
+
"date": "2026-03-29",
|
|
8
|
+
"summary": "Detached process-backed agent execution, sandbox-safe supervisor hardening, lower memory pressure, and 0.9.1 release-surface alignment.",
|
|
9
|
+
"features": [
|
|
10
|
+
"Live agent execution now uses detached process runners by default instead of per-agent tmux execution sessions, which reduces tmux churn and lowers memory use during wide orchestration bursts while keeping tmux as an optional dashboard projection layer.",
|
|
11
|
+
"The sandbox-facing path is now `wave submit`, `wave supervise`, `wave status`, `wave wait`, and `wave attach`, with exact-context lookup, read-side launcher-status reconciliation, progress journaling, degraded-run handling, and log-follow attach behavior suited to LEAPclaw, OpenClaw, Nemoshell, and similar short-lived exec environments.",
|
|
12
|
+
"Supervisor recovery now relies on run-owned terminal artifacts and finalized progress instead of lane-global completion history, preserving the correct remaining wave range and final active wave during multi-wave reruns and launcher-loss recovery.",
|
|
13
|
+
"Ordinary runs, closure runs, and resident orchestrator runs now all preserve process-runtime metadata for timeout and cleanup, while process-backed resident orchestrators terminate cleanly and rate-limit retry detection stays scoped to the current attempt output.",
|
|
14
|
+
"Planner migration guidance and the `planner-agentic` bundle placeholder remain part of the shipped current-surface docs so adopted repos still have one aligned upgrade target.",
|
|
15
|
+
"A dedicated setup guide now ships for sandboxed and containerized operation, including Nemoshell and Docker guidance, while README, migration docs, terminal-surface docs, runtime-config docs, coordination docs, and the renamed recommendations guide `docs/guides/recommendations-0.9.1.md` now describe the same sandbox-safe release surface."
|
|
16
|
+
],
|
|
17
|
+
"manualSteps": [
|
|
18
|
+
"Run `pnpm exec wave doctor` and `pnpm exec wave launch --lane main --dry-run --no-dashboard` after upgrading so the repo validates against the `0.9.1` release surface.",
|
|
19
|
+
"If your repo runs Wave inside LEAPclaw, OpenClaw, Nemoshell, Docker, or another short-lived exec sandbox, move long-running orchestration to `wave supervise`, use `wave submit/status/wait/attach` from disposable clients, and set Codex sandbox defaults in `wave.config.json` instead of relying on per-command overrides.",
|
|
20
|
+
"If your repo copied starter docs or runbooks, sync `README.md`, `docs/README.md`, `docs/plans/current-state.md`, `docs/plans/migration.md`, `docs/reference/coordination-and-closure.md`, `docs/reference/runtime-config/README.md`, `docs/guides/sandboxed-environments.md`, `docs/guides/terminal-surfaces.md`, and `docs/guides/recommendations-0.9.1.md` so local guidance matches the packaged release."
|
|
21
|
+
],
|
|
22
|
+
"breaking": false
|
|
23
|
+
},
|
|
5
24
|
{
|
|
6
25
|
"version": "0.9.0",
|
|
7
26
|
"date": "2026-03-28",
|