Skip to content

chore(release): 0.16.0#38

Merged
MANVENDRA-github merged 1 commit into
mainfrom
chore/release-0.16.0
Jul 8, 2026
Merged

chore(release): 0.16.0#38
MANVENDRA-github merged 1 commit into
mainfrom
chore/release-0.16.0

Conversation

@MANVENDRA-github

Copy link
Copy Markdown
Owner

Why now

$ git rev-list --count v0.15.0..main
19
$ grep -c '^## \[Unreleased\]' CHANGELOG.md
0

Nineteen commits since v0.15.0, none of them in the changelog — which opens by claiming "All notable changes to agentry are documented here" and cites Keep a Changelog.

Two of the nineteen are real defects. Anyone cloning at the v0.15.0 tag still has both:

  • syncCursor deletes every file the user keeps in .cursor/, including .cursor/environment.json
  • protect-generated-dirs never guarded .opencode/, whose three subdirectories are wiped on every sync

Why minor, not patch

Sync's wipe behavior changed, package.json is now private with derived plugin-manifest metadata, and the suite went 98 → 243.

This bump is one commit — it used to take two

The old flow was chore(release): X (bump package.json) → docs(changelog)chore(sync): regenerate harness outputs for X, because scripts/sync-harnesses.js held its own copy of the version. Only that last commit was sync-clean, so only that one could be tagged — the trap that made back-filling v0.12–v0.14 fail until each release's true tip was found.

PR #29 made package.json the single source. Bumping it now carries the manifest automatically:

$ node -e "...version='0.16.0'..." && npm run sync
package.json: 0.16.0
plugin.json:  0.16.0   <- followed, no second edit

So the release commit is itself sync-clean, and release.yml's determinism gate passes on it. Verified:

$ npm run sync && git status --porcelain
(empty)

Verification

$ npm run lint   # PASS
$ npm test       # 243 pass, 0 fail
$ npm run sync   # clean, no drift

# release.yml extracts notes with this exact awk — it must find the section:
$ awk -v ver="0.16.0" 'index($0,"## [" ver "]")==1{g=1;print;next} ...' CHANGELOG.md | wc -l
39

README's status line moves to v0.16.0. Its one other mention of 0.15.0 is historical ("the v0.15.0 batch came from auditing the corpus") and stays.

After merge

Tag the merge commit v0.16.0 and push it. release.yml gates on sync-determinism + lint + tests, extracts the section above, and cuts the GitHub Release.

Nineteen commits landed since v0.15.0 and none of them reached the changelog,
which opens by claiming "all notable changes to agentry are documented here."
Two of the nineteen are real defects: syncCursor deleting the user's .cursor/
state, and protect-generated-dirs never guarding .opencode/. Anyone cloning at
the v0.15.0 tag still has both.

Minor rather than patch: sync's wipe behavior changed, package.json is now
private with derived plugin-manifest metadata, and the suite went from 98 to
243 tests.

The bump is a single sync-clean commit. It used to take two -- `chore(release)`
bumped package.json while `scripts/sync-harnesses.js` held its own copy of the
version, so the regenerated manifest landed in a following `chore(sync)` commit
and only that one could be tagged. PR #29 made package.json the single source,
so bumping it and running sync is one commit that CI's determinism gate passes.
@MANVENDRA-github
MANVENDRA-github merged commit f0c753d into main Jul 8, 2026
3 checks passed
@MANVENDRA-github
MANVENDRA-github deleted the chore/release-0.16.0 branch July 8, 2026 19:31
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