From 59e8993a249acf14c483887fe455b4d1c66924fd Mon Sep 17 00:00:00 2001 From: Joao Henrique Machado Silva Date: Mon, 11 May 2026 19:15:35 +0200 Subject: [PATCH 1/2] chore: untrack accidental .claude/worktrees/ gitlinks + add to .gitignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The v0.10.0 release commit (937f8b4) captured 8 worktree directories as gitlinks (mode 160000) because `scripts/bump-version.sh` ran `git add -A` while the per-phase worktrees were live in .claude/worktrees/. They aren't real submodules — no `.gitmodules`, no remote — just orphan gitlink references to commits on the now-deleted `worktree-phase-*` branches. Removing the gitlink entries from the index now that the worktrees have been cleaned up. Adding .claude/worktrees/ to .gitignore so the next round of phase worktrees doesn't repeat the issue. Not rewriting v0.10.0's history — the release tag is already published, and the orphan gitlinks there don't break anything for consumers (no .gitmodules → git won't try to fetch them on clone). Forward state is clean from this commit on. Co-Authored-By: Claude Opus 4.7 (1M context) --- .claude/worktrees/exciting-sanderson-31d3c9 | 1 - .claude/worktrees/phase-10-1-multi-conn | 1 - .claude/worktrees/phase-11-2-logical-clock | 1 - .claude/worktrees/phase-11-3-mvstore | 1 - .claude/worktrees/phase-11-4-begin-concurrent | 1 - .claude/worktrees/phase-11-5-read-path | 1 - .claude/worktrees/phase-11-6-gc | 1 - .claude/worktrees/phase-11-7-sdk-busy | 1 - .claude/worktrees/phase-11-8-multi-handle-sdk | 1 - .gitignore | 9 +++++++++ 10 files changed, 9 insertions(+), 9 deletions(-) delete mode 160000 .claude/worktrees/exciting-sanderson-31d3c9 delete mode 160000 .claude/worktrees/phase-10-1-multi-conn delete mode 160000 .claude/worktrees/phase-11-2-logical-clock delete mode 160000 .claude/worktrees/phase-11-3-mvstore delete mode 160000 .claude/worktrees/phase-11-4-begin-concurrent delete mode 160000 .claude/worktrees/phase-11-5-read-path delete mode 160000 .claude/worktrees/phase-11-6-gc delete mode 160000 .claude/worktrees/phase-11-7-sdk-busy delete mode 160000 .claude/worktrees/phase-11-8-multi-handle-sdk diff --git a/.claude/worktrees/exciting-sanderson-31d3c9 b/.claude/worktrees/exciting-sanderson-31d3c9 deleted file mode 160000 index 9d733dd..0000000 --- a/.claude/worktrees/exciting-sanderson-31d3c9 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 9d733dd6f0589c29f6c531073b052b63ebfbc715 diff --git a/.claude/worktrees/phase-10-1-multi-conn b/.claude/worktrees/phase-10-1-multi-conn deleted file mode 160000 index d4ba5fa..0000000 --- a/.claude/worktrees/phase-10-1-multi-conn +++ /dev/null @@ -1 +0,0 @@ -Subproject commit d4ba5faaacfd1d10c8d5f6ff08c27ebf006aef97 diff --git a/.claude/worktrees/phase-11-2-logical-clock b/.claude/worktrees/phase-11-2-logical-clock deleted file mode 160000 index 77b51c8..0000000 --- a/.claude/worktrees/phase-11-2-logical-clock +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 77b51c8d1225ace8ab868e8a0e4414307f8aab43 diff --git a/.claude/worktrees/phase-11-3-mvstore b/.claude/worktrees/phase-11-3-mvstore deleted file mode 160000 index 8c9c745..0000000 --- a/.claude/worktrees/phase-11-3-mvstore +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8c9c745e911f57b411395716cc6bb0fb8b8ba0c4 diff --git a/.claude/worktrees/phase-11-4-begin-concurrent b/.claude/worktrees/phase-11-4-begin-concurrent deleted file mode 160000 index e7befda..0000000 --- a/.claude/worktrees/phase-11-4-begin-concurrent +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e7befda852466d46d43a21e52a031f4b137c1238 diff --git a/.claude/worktrees/phase-11-5-read-path b/.claude/worktrees/phase-11-5-read-path deleted file mode 160000 index 7cadb35..0000000 --- a/.claude/worktrees/phase-11-5-read-path +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7cadb35313cab2db5c9f2eed9a98e5bd75b672e9 diff --git a/.claude/worktrees/phase-11-6-gc b/.claude/worktrees/phase-11-6-gc deleted file mode 160000 index 6e4acaf..0000000 --- a/.claude/worktrees/phase-11-6-gc +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 6e4acaf6fe5a23abd80322388824b2e1031eb59c diff --git a/.claude/worktrees/phase-11-7-sdk-busy b/.claude/worktrees/phase-11-7-sdk-busy deleted file mode 160000 index c1336be..0000000 --- a/.claude/worktrees/phase-11-7-sdk-busy +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c1336beb0c8205e2e69b156203be72949d54874a diff --git a/.claude/worktrees/phase-11-8-multi-handle-sdk b/.claude/worktrees/phase-11-8-multi-handle-sdk deleted file mode 160000 index a57cf0f..0000000 --- a/.claude/worktrees/phase-11-8-multi-handle-sdk +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a57cf0fdb95090c4300798caf4bc273b2fe35504 diff --git a/.gitignore b/.gitignore index 428becf..6941c84 100644 --- a/.gitignore +++ b/.gitignore @@ -44,3 +44,12 @@ examples/wasm/pkg # macOS .DS_Store + +# Local agent / Claude Code worktrees. These shouldn't ever get +# committed — but `git add -A` from main while a worktree is live +# under .claude/worktrees// will capture it as a gitlink +# (mode 160000) because the worktree dir looks like a submodule to +# the parent index. Ignoring the whole tree prevents that whole +# class of accident. (The release commit 937f8b4 hit exactly this +# bug; the next commit untracks the leftover gitlinks.) +.claude/worktrees/ From 35426a66bba8b08b8177e4dff9e718571aa360d1 Mon Sep 17 00:00:00 2001 From: Joao Henrique Machado Silva Date: Mon, 11 May 2026 19:20:58 +0200 Subject: [PATCH 2/2] chore(release): bump-version.sh prints the workflow-expected commit message Followup from the v0.10.0 release misfire. `scripts/bump-version.sh` correctly bumps all 11 manifests but doesn't tell the user what to do next, so a freshly-run script + a manual `git commit -m "chore(release): bump to "` is a natural shape that silently skips the publish pipeline (the release workflow's detect regex is ^release: v[0-9]+\.[0-9]+\.[0-9]+$ and rejects everything else). The release-pr.yml workflow path (the "happy" path) already emits the right commit message; this fix is for the manual-fallback path that the v0.10.0 release used. - Print the exact `git commit -am 'release: v'` line. - Print the recovery command (`gh workflow run release.yml -f version=`) for cases when the wrong commit message has already been pushed. Also includes the .claude/worktrees/ gitlink cleanup that was an unrelated side-effect of the v0.10.0 bump commit picking up live worktree directories as gitlinks (mode 160000) via `git add -A`. Adds .claude/worktrees/ to .gitignore so the next round of phase worktrees doesn't repeat the issue, and untracks the 8 orphan gitlink entries. Co-Authored-By: Claude Opus 4.7 (1M context) --- scripts/bump-version.sh | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/scripts/bump-version.sh b/scripts/bump-version.sh index dda5c8e..d699811 100755 --- a/scripts/bump-version.sh +++ b/scripts/bump-version.sh @@ -222,6 +222,21 @@ fi echo echo "Done. Next steps:" -echo " cargo build # refresh Cargo.lock with the new versions" -echo " git diff # inspect the twelve-file bump" -echo " git checkout . # or back out if it looks wrong" +echo " cargo build # refresh Cargo.lock with the new versions" +echo " git diff # inspect the twelve-file bump" +echo " git checkout . # or back out if it looks wrong" +echo +echo "When the diff looks right, commit + tag with the EXACT message the" +echo "release workflow's detect job expects (regex" +echo " ^release: v[0-9]+\\.[0-9]+\\.[0-9]+\$" +echo "in .github/workflows/release.yml). Any other message and the" +echo "release pipeline silently skips publish:" +echo +echo " git commit -am 'release: v${VERSION}'" +echo " git tag v${VERSION}" +echo " git push && git push --tags" +echo +echo "If a push lands with a different commit-message format, the" +echo "release workflow can be retriggered manually:" +echo +echo " gh workflow run release.yml -f version=${VERSION}"