diff --git a/CHANGELOG.md b/CHANGELOG.md index d090b11..e2dcd06 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 0.45.0 - 2026-09-24 + +- Make the governed worktree capacity configurable per repository with an optional manifest block, `"governed_worktree_capacity": {"limit": 4, "enforcement": "error"}`. `limit` is a positive integer and defaults to 4. `enforcement` is `error` by default, which keeps the current refusal; `warn` opens the lane anyway and reports the capacity message, with its `stack add` queue commands, among the lane warnings. Lanes with an expired lease still count toward the limit, because a lease is set once at `worktree open` and never renewed. An invalid block is rejected when the manifest loads. + ## 0.44.0 - 2026-09-22 - Stop committing `.syncwheel/manifest.json` for local-only manifests without active-active coordination; drop an unpushed legacy control commit while keeping the file. Such a repository now gets no control commit after an integration rebuild, and an integration tree without the manifest is the convergent state, so reconcile stops planning a rebuild or a push to reach control-manifest parity. A control commit left by an earlier release is dropped the next time the branch is rebuilt. Before the rebuild resets the branch, Syncwheel records the bytes of every manifest source the reset can reach and untracks the file in the checkout that holds the integration branch; afterwards it puts back only the sources the reset removed, so the file survives byte for byte for a default, `--manifest` or `--personal` path, and no deletion is staged in a checkout on another branch. The previous tip stays reachable through the automatic backup ref, and a control commit that was already pushed still needs a reviewed force-push. diff --git a/README.md b/README.md index 519dc9b..172c9e0 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Keep many long-lived pull requests clean, rebuildable, and publishable from one manifest. -Current version: `0.44.0` +Current version: `0.45.0` `syncwheel` is a small CLI and workflow model for maintainers who carry several PR branches against an upstream repository and need those branches to stay @@ -331,7 +331,10 @@ the explicit, bounded choice when dependency installation, builds, tests, or debugging are necessary. It is a lifecycle declaration, not a sandbox: a raw shell can still bypass it, so agents must keep that boundary in their procedure. -Each clone permits four active lanes. The local registry records the owner, +Each clone permits four active lanes by default. A repository can change the limit, or +make reaching it a warning instead of a refusal, with the manifest block +`"governed_worktree_capacity": {"limit": 4, "enforcement": "error"}` (`enforcement`: +`error` or `warn`). The local registry records the owner, lease, base, branch, target stack, mode, and any recovery ref in Git's common directory, never in the shared manifest. Use `--into ` when the destination is already known. Otherwise, after committing, use the existing diff --git a/VERSION b/VERSION index a8ab6c9..bcce5d0 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.44.0 +0.45.0 diff --git a/docs/index.html b/docs/index.html index f9bc1ed..bbbe67a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1826,7 +1826,7 @@
- AI-ready Git coordination v0.44.0 + AI-ready Git coordination v0.45.0

Move atmachine speed.Stay in control.

Syncwheel coordinates every Git lane used by humans, AI agents, CI and delivery systems—without sacrificing review, safety or recovery.

@@ -2602,7 +2602,7 @@

Your first verified plan in minutes.