@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 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.2`
20
+ - `@chllming/wave-orchestration@0.5.3`
21
21
  - Primary public registry: `https://registry.npmjs.org`
22
- - Release: [v0.5.2](https://github.com/chllming/wave-orchestration/releases/tag/v0.5.2)
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chllming/wave-orchestration",
3
- "version": "0.5.2",
3
+ "version": "0.5.3",
4
4
  "license": "MIT",
5
5
  "description": "Generic wave-based multi-agent orchestration for repository work.",
6
6
  "repository": {
@@ -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 = agentRuns.filter((run) => !preCompletedAgentIds.has(run.agent.agentId));
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
- agentRuns,
3284
+ runsToLaunch,
3275
3285
  options.timeoutMinutes,
3276
3286
  ({ pendingAgentIds }) => {
3277
- refreshWaveDashboardAgentStates(dashboardState, agentRuns, pendingAgentIds, (event) =>
3278
- recordCombinedEvent(event),
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,