@chllming/wave-orchestration 0.5.2 → 0.5.3
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 +8 -0
- package/README.md +10 -2
- package/package.json +1 -1
- package/releases/manifest.json +15 -0
- package/scripts/wave-orchestrator/launcher.mjs +18 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.5.3 - 2026-03-22
|
|
4
|
+
|
|
5
|
+
- Deferred integration, documentation, and evaluator agents until the closure sweep whenever implementation work is still pending, so the runtime now matches the documented closure model.
|
|
6
|
+
- Scoped wave wait/progress and human-feedback monitoring to the runs actually launched in the current pass, preventing deferred closure agents from surfacing as false pending or missing-status failures.
|
|
7
|
+
- Added regression coverage for mixed implementation/closure waves and for closure-only retry waves.
|
|
8
|
+
- Published `@chllming/wave-orchestration@0.5.3` successfully to npmjs and GitHub Releases.
|
|
9
|
+
|
|
3
10
|
## 0.5.2 - 2026-03-22
|
|
4
11
|
|
|
5
12
|
- Hardened structured closure marker parsing so fenced or prose example `[wave-*]` lines no longer satisfy implementation, integration, documentation, or evaluator gates.
|
|
6
13
|
- Hardened `### Deliverables` so declared outputs must remain repo-relative file paths inside the implementation agent's declared file ownership before the exit contract can pass.
|
|
7
14
|
- Added regression coverage for the fenced-marker false-positive path and for deliverables that escape ownership boundaries.
|
|
15
|
+
- Published `@chllming/wave-orchestration@0.5.2` successfully to npmjs, making npmjs the working public install path instead of a pending rollout target.
|
|
8
16
|
|
|
9
17
|
## 0.5.1 - 2026-03-22
|
|
10
18
|
|
package/README.md
CHANGED
|
@@ -17,10 +17,11 @@ It includes:
|
|
|
17
17
|
## Quick Start
|
|
18
18
|
|
|
19
19
|
Published package:
|
|
20
|
-
- `@chllming/wave-orchestration@0.5.
|
|
20
|
+
- `@chllming/wave-orchestration@0.5.3`
|
|
21
21
|
- Primary public registry: `https://registry.npmjs.org`
|
|
22
|
-
- Release: [v0.5.
|
|
22
|
+
- Release: [v0.5.3](https://github.com/chllming/wave-orchestration/releases/tag/v0.5.3)
|
|
23
23
|
- npmjs publish workflow: [publish-npm.yml](./.github/workflows/publish-npm.yml)
|
|
24
|
+
- npmjs install is now live for `0.5.3`; GitHub Packages is the authenticated fallback path only.
|
|
24
25
|
|
|
25
26
|
Install from npmjs:
|
|
26
27
|
|
|
@@ -38,11 +39,18 @@ If your repo already has Wave config, docs, or waves you want to keep:
|
|
|
38
39
|
pnpm exec wave init --adopt-existing
|
|
39
40
|
```
|
|
40
41
|
|
|
42
|
+
## New In 0.5.3
|
|
43
|
+
|
|
44
|
+
- The launcher now starts only implementation agents in the initial wave pass when implementation work is still pending.
|
|
45
|
+
- Wait/progress tracking now scopes to the runs actually launched in the current pass, so deferred closure agents no longer look like missing or pending failures.
|
|
46
|
+
- Closure-only retries still run through the existing `A8` -> `A9` -> `A0` sweep, with regression coverage for both mixed and closure-only cases.
|
|
47
|
+
|
|
41
48
|
## New In 0.5.2
|
|
42
49
|
|
|
43
50
|
- Example `[wave-*]` markers inside fenced snippets or prose no longer satisfy closure; only real standalone structured signals count.
|
|
44
51
|
- `### Deliverables` is now enforced as an ownership-scoped file contract, so declared outputs must stay inside that agent's `File ownership` block.
|
|
45
52
|
- Regression coverage now includes both of those failure paths directly.
|
|
53
|
+
- The npmjs package release is now live, so `pnpm add -D @chllming/wave-orchestration` works from the public registry without the older GitHub Packages auth setup.
|
|
46
54
|
|
|
47
55
|
## New In 0.5.1
|
|
48
56
|
|
package/package.json
CHANGED
package/releases/manifest.json
CHANGED
|
@@ -2,6 +2,21 @@
|
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"packageName": "@chllming/wave-orchestration",
|
|
4
4
|
"releases": [
|
|
5
|
+
{
|
|
6
|
+
"version": "0.5.3",
|
|
7
|
+
"date": "2026-03-22",
|
|
8
|
+
"summary": "Closure-sweep launch ordering fix for implementation-first wave execution.",
|
|
9
|
+
"features": [
|
|
10
|
+
"The launcher now starts only implementation agents in the initial wave pass when implementation work remains, deferring integration, documentation, and evaluator roles until closure sweep order.",
|
|
11
|
+
"Wave waiting, dashboard progress refresh, and human-feedback monitoring now scope to the runs launched in the current pass so deferred closure agents no longer create false pending or missing-status failures.",
|
|
12
|
+
"Regression coverage now exercises both mixed implementation/closure waves and closure-only retry waves directly."
|
|
13
|
+
],
|
|
14
|
+
"manualSteps": [
|
|
15
|
+
"After upgrading, rerun `pnpm exec wave launch --lane main --dry-run --no-dashboard` on active lanes to confirm only implementation agents appear in the initial pass.",
|
|
16
|
+
"If a lane is mid-run, relaunch from the upgraded package so closure agents pick up the corrected launch ordering and wait behavior."
|
|
17
|
+
],
|
|
18
|
+
"breaking": false
|
|
19
|
+
},
|
|
5
20
|
{
|
|
6
21
|
"version": "0.5.2",
|
|
7
22
|
"date": "2026-03-22",
|
|
@@ -2133,6 +2133,13 @@ function isClosureAgentId(agentId, lanePaths) {
|
|
|
2133
2133
|
].includes(agentId);
|
|
2134
2134
|
}
|
|
2135
2135
|
|
|
2136
|
+
export function selectInitialWaveRuns(agentRuns, lanePaths) {
|
|
2137
|
+
const implementationRuns = (agentRuns || []).filter(
|
|
2138
|
+
(run) => !isClosureAgentId(run?.agent?.agentId, lanePaths),
|
|
2139
|
+
);
|
|
2140
|
+
return implementationRuns.length > 0 ? implementationRuns : agentRuns;
|
|
2141
|
+
}
|
|
2142
|
+
|
|
2136
2143
|
function isLauncherSeedRequest(record) {
|
|
2137
2144
|
return (
|
|
2138
2145
|
record?.source === "launcher" &&
|
|
@@ -3149,7 +3156,10 @@ export async function runLauncherCli(argv) {
|
|
|
3149
3156
|
});
|
|
3150
3157
|
}
|
|
3151
3158
|
|
|
3152
|
-
let runsToLaunch =
|
|
3159
|
+
let runsToLaunch = selectInitialWaveRuns(
|
|
3160
|
+
agentRuns.filter((run) => !preCompletedAgentIds.has(run.agent.agentId)),
|
|
3161
|
+
lanePaths,
|
|
3162
|
+
);
|
|
3153
3163
|
let attempt = 1;
|
|
3154
3164
|
const feedbackStateByRequestId = new Map();
|
|
3155
3165
|
|
|
@@ -3271,16 +3281,19 @@ export async function runLauncherCli(argv) {
|
|
|
3271
3281
|
|
|
3272
3282
|
const waitResult = await waitForWaveCompletion(
|
|
3273
3283
|
lanePaths,
|
|
3274
|
-
|
|
3284
|
+
runsToLaunch,
|
|
3275
3285
|
options.timeoutMinutes,
|
|
3276
3286
|
({ pendingAgentIds }) => {
|
|
3277
|
-
refreshWaveDashboardAgentStates(
|
|
3278
|
-
|
|
3287
|
+
refreshWaveDashboardAgentStates(
|
|
3288
|
+
dashboardState,
|
|
3289
|
+
runsToLaunch,
|
|
3290
|
+
pendingAgentIds,
|
|
3291
|
+
(event) => recordCombinedEvent(event),
|
|
3279
3292
|
);
|
|
3280
3293
|
monitorWaveHumanFeedback({
|
|
3281
3294
|
lanePaths,
|
|
3282
3295
|
waveNumber: wave.wave,
|
|
3283
|
-
agentRuns,
|
|
3296
|
+
agentRuns: runsToLaunch,
|
|
3284
3297
|
orchestratorId: options.orchestratorId,
|
|
3285
3298
|
coordinationLogPath: derivedState.coordinationLogPath,
|
|
3286
3299
|
feedbackStateByRequestId,
|