fix: align plugin manifests with release tags and guard future drift (#874)#876
Merged
fix: align plugin manifests with release tags and guard future drift (#874)#876
Conversation
Aligns marketplace.json and both plugin.json files with version.py / pyproject.toml (already at 3.3.0) so `/plugin update` reflects the v3.1.0/v3.2.0/v3.3.0 tags that had been landing without manifest bumps. Also updates marketplace.json `owner.url` from the stale github.com/milla-jovovich path to the current github.com/MemPalace org. Refs #874
Fails a tag push if `vX.Y.Z` does not match `mempalace/version.py` (the single source of truth per CLAUDE.md), and fails PRs that touch any version file without keeping all five in sync (pyproject.toml, version.py, .claude-plugin/marketplace.json, .claude-plugin/plugin.json, .codex-plugin/plugin.json). Prevents the class of bug described in #874, where v3.1.0/v3.2.0/v3.3.0 tags all landed pointing at commits that still carried manifest version 3.0.14, blocking `/plugin update` for end users. Refs #874
Tags matching `vX.Y.Z-*` (e.g. v3.4.0-rc1, v1.0.0-beta.2) are treated as internal/staging builds. They skip the tag-vs-manifest check because pre-releases do not flow to end users via `/plugin update`, which reads the manifest on the default branch. Stable tags `vX.Y.Z` still require all five version sources to match exactly, so the protection against the #874 drift remains intact. The cross-file consistency check on PRs is unchanged — all manifests must still agree with mempalace/version.py whenever any version file moves.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #874.
Summary
.claude-plugin/marketplace.json,.claude-plugin/plugin.json, and.codex-plugin/plugin.jsonfrom3.0.14to3.3.0so they agree withmempalace/version.pyandpyproject.toml. This unblocks/plugin updatefor users who have been stuck on3.0.14through the v3.1.0, v3.2.0, and v3.3.0 tags.owner.urlinmarketplace.json(github.com/milla-jovovich→github.com/MemPalace).owner.name/author.nameare preserved as creator attribution..github/workflows/version-guard.ymlso this drift cannot happen again silently:version.py,pyproject.toml, both.claude-plugin/*.json,.codex-plugin/plugin.json) don't all agree withversion.py.vX.Y.Z): fails if the tag doesn't matchversion.py.vX.Y.Z-rc1,-beta.2, etc.): skips the strict match. Pre-releases don't flow to end users via/plugin update— they're distributed through PyPI / direct GitHub install — so the manifest isn't required to track them.Test plan
3.3.0locally (jq/grepsanity check).jq .).vX.Y.Z-*pre-release → skip.v3.3.1(or chosen target) and confirm the guard's tag-push job runs green./plugin update mempalacesurfaces3.3.0after merge todevelop→main.Notes for reviewer
milla-jovovich/*URLs inpyproject.toml,README.md,.github/CODEOWNERSwere not touched — they're a separate cleanup (pyproject.toml still points to old repo owner in project URLs #787 addressed a prior wave but missed those).3.3.1to mark a fresh release cut rather than retroactively reusing3.3.0), happy to adjust — just let me know before merge.