Skip to content

Release 1.6.5: join waves - #31

Merged
noderaven merged 22 commits into
mainfrom
release-1.6.5
Oct 16, 2026
Merged

noderaven merged 22 commits into
mainfrom
release-1.6.5

Conversation

@noderaven

@noderaven noderaven commented Oct 16, 2026 •

Copy link
Copy Markdown
Owner

Release 1.6.5: join waves.

Until now the join ran its tasks one after another on the feature branch after the lanes were merged; on d1a it was 274 of 630 minutes, all on the critical path. Now, in the launch that starts the join, tasks whose depends_on allow it run side by side, each on its own branch in a lane worktree, and each wave is merged back by recorded sha (scripts/merge-wave) before the next one starts. A join task without depends_on waits for every earlier one, so older manifests keep a serial join. On d1a's join the waves are 1-2-4 (task-slots 17 to 13).

Also in this release:

  • One check after the last wave with more than one task: one fix, a re-review and a recheck; an autonomous run hands a remaining failure to the final review and verify, a supervised run stops.
  • A merge conflict goes to a resolver (Opus) in an autonomous run; a supervised run stops and gives the exact git merge --no-ff command to run by hand.
  • Pre-flight sees the waves and can move a task to a later wave (preflight.wave_moves).
  • A relaunch is safe whatever the join's state: setup returns lane worktrees to their lane branches (saving uncommitted changes under the abandoned refs), a recovery merge brings in the finished and reviewed tasks, and the rest of the join runs serially from that tip; a merged task whose approval went stale is reviewed again in place.
  • PL_PHASE for project scripts (run-checks --phase, task-checks --phase), so a check script can tell a join task in a lane worktree from a lane's own work.
  • The ledger takes concurrent writers (the lane file's OS lock; 4 of 400 concurrent appends were lost on Windows without it) and skips a half-written last line.
  • Dry run, owners, worth-it (--join-deps), the back-test (--waves) and autopsy know the waves.
  • Lane ids may no longer start with u-.
  • CI: a job pinned to Python 3.15, no Node 22 job; the test suite needs Node 24 or later. Two test-only faults CI found are fixed: the platform test faked Windows before importing the new lock module, and the waves tests used load_module, which Python 3.15 removed.

Testing: built directly, test first (15 plan tasks); a builder check and four adversarial checks of the design by fresh agents testing the git mechanics in scratch repos; an end-to-end test on real git (a two-task wave, then a stop and a relaunch); a final review by a fresh reviewer (one critical and three important findings fixed test-first, seven minors deferred). Back-test of 31 archived runs: same verdicts at threshold 1 with or without waves. Full suite on Windows (Python 3.14 and 3.15): 1685 tests, 1669 pass, 16 skipped, 0 fail; CI passes on Ubuntu (Node 24, and Node 24 with Python 3.15), macOS (Node 24, Python 3.15) and Windows (Node 24, Python 3.12). Not run: a validation run on a real project.

@noderaven
noderaven merged commit 25bccea into main Oct 16, 2026
4 checks passed
@noderaven
noderaven deleted the release-1.6.5 branch October 16, 2026 02:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant