Repository navigation
chore: v2.4.0 - #181
Merged
Merged
chore: v2.4.0#181
Conversation
Ships v12 UPDPATH: the package-identity gate on description freshness. Cached descriptions were paired with a server config by NAME and freshness decided on VERSION alone, at three sites, so swapping the configured package at an equal version served the wrong package's tool descriptions indefinitely. Minor bump -- --check-versions changes its output shape, refresh_all drops an unclassifiable entry when regeneration fails, and a cache written before this release refreshes once to record its package type. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XbREMUsxgJ8TDBLpJ56PWb
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.
Release cut for 2.4.0. Version bump only — no source behaviour changes in this PR.
Ships v12 UPDPATH (#179), already merged to main and unreleased. v12 is now complete: TRISTATE and FANOUT shipped in 2.3.0, UPDPATH ships here.
What's in it
package_type. A bare name cannot tell npmfoofrom pypifoo, and both produce orderable release versions socompare_versionsnever reports them incomparable. A cache written before this release has no type, reads as unknown, and refreshes once. No cache-format bump.pmcp refresh --check-versionshonours--cache-dir— it computed the path and then dropped it.--check-versionssplits its report. A server whose package cannot be classified (node /opt/srv.js) is reported as unconfirmable rather than stale, and without the--forceremedy that would never settle it.Closes #165 and #162 as part of the phase.
Why minor, not patch
Three user-visible behaviour changes:
--check-versionsoutput shape,refresh_alldropping an unclassifiable entry when regeneration fails, and a one-time refresh for pre-2.4 caches. All documented under### Changed.Known limitation, shipped knowingly
#180 —
detect_package_typecollapses distinct packages forregistry:port/imageandnpm exec pkgforms, so the identity gate can falsely confirm for those command shapes. Pre-existing; it only became consequential once package names were compared. The parser backs every version lookup in the codebase, so re-parsing it deserves its own plan rather than being appended to a release cut.Verification
The release-note extraction was dry-run with the workflow's own awk: 70 lines, two unique
###headings, terminates cleanly before the 2.3.0 section — no duplicate-heading bleed.Files:
pyproject.toml,src/pmcp/__init__.py,uv.lock, and theCHANGELOG.mdversion header dated 2026-08-25.🤖 Generated with Claude Code
https://claude.ai/code/session_01XbREMUsxgJ8TDBLpJ56PWb
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.