Skip to content

chore: v2.2.0 - #160

Merged
ViperJuice merged 1 commit into
mainfrom
release/2.2.0
Aug 20, 2026
Merged

ViperJuice merged 1 commit into
mainfrom
release/2.2.0

Conversation

@ViperJuice

@ViperJuice ViperJuice commented Aug 20, 2026 •

Copy link
Copy Markdown
Collaborator

Cuts 2.2.0 from the three merged fixes: #155, #157, #159.

Why minor, not patch

#159 removes four fields from public tool output — update_warning from describe/invoke/provision, and stale_updates from catalog_search. Those were emitted on the wire as explicit nulls (model_dump() runs without exclude_none), so a client doing a key-presence check sees a real change. That is a breaking change to the tool surface, so patch would be wrong.

What's in it

All three commits are one coherent theme — version handling that told the truth or said nothing:

I verified #155 and #157 are not made dead by #159: is_version_newer/is_version_orderable still back refresher.py (the pmcp refresh --check-versions path), and the probe fix still backs update_server. Nothing shipped here is unreachable.

What users get

gateway.update_server and pmcp refresh --check-versions still report versions on request. What's gone is the gateway volunteering a claim it could not substantiate.

Housekeeping folded in

  • Merged the two duplicate ### Fixed headings that accumulated under [Unreleased] from three separate PRs.
  • Synced src/pmcp/__init__.py:__version__, which was still 2.1.1 — bumping pyproject.toml alone would have shipped a runtime version that disagreed with the package metadata.

Verification

  • pytest -q → 2548 passed, 3 skipped, 0 failed
  • ruff check ., mypy src — clean
  • Version agreement asserted at runtime: pmcp.__version__ == pyproject version == 2.2.0

Known, deliberately not blocking

#156 (semver follow-ups) and #151 (update_server TOCTOU) are pre-existing and present in 2.1.1 — not regressions from these commits — so holding the release would delay the fabricated-notice fix without protecting anyone.

Worth flagging: #151 is more severe as of #159. With the notices gone, update_server is the sole update path, so a config-resolution race there no longer has a second mechanism around it. Recommend it as the next piece of work.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Minor rather than patch: #159 removes four fields from public tool output
(update_warning from describe/invoke/provision, stale_updates from
catalog_search), which is a breaking change for a client reading them.

Also merges the two duplicate '### Fixed' headings that accumulated under
[Unreleased] from three separate PRs, and syncs __init__.__version__, which
pyproject alone would have left at 2.1.1.
@ViperJuice
ViperJuice merged commit c326a4c into main Aug 20, 2026
11 checks passed
@ViperJuice
ViperJuice deleted the release/2.2.0 branch August 20, 2026 12:54
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