From 27e20bb895ce54a555af267e6fdbf09932131bd5 Mon Sep 17 00:00:00 2001 From: "cmeans-claude-dev[bot]" <272174644+cmeans-claude-dev[bot]@users.noreply.github.com> Date: Thu, 7 May 2026 15:05:49 -0500 Subject: [PATCH 1/2] chore: release v2.5.2 Aggregates the changes that have landed on `main` since v2.5.1: - fix(windows): UTF-8 stdin encoding on PowerShell write paths so non-ASCII characters (em dash, curly quotes, non-Latin scripts) are no longer corrupted by `clipboard_copy` / `clipboard_copy_markdown`. Found and fixed via a QEMU Windows guest reproduction (#129, #131). - feat(cli): `--version`, `--help`, `--check` flags on the `mcp-clipboard` binary so users can verify their install before any MCP-host wiring (#130, #134). - ci: `github-release` job in `publish.yml` auto-creates the GitHub Release on tag push, with notes pulled from this CHANGELOG section. First firing of this workflow lands with v2.5.2 (#127). - docs: README `## Setup` rewritten into a five-step quick-start that acknowledges both `pipx` and `uv` as install runners; platform status corrected to reflect that Windows has been exercised on a QEMU guest as of v2.5.x (#130, #134). Three-file release commit per repo convention: `pyproject.toml` (version bump), `CHANGELOG.md` (date stamp + new `## [Unreleased]` shell), and `server.json` (synced via `scripts/sync-server-json.py`). Local verification: 610 tests pass, ruff clean, mypy clean, server.json in sync, wheel builds cleanly to `dist/mcp_clipboard-2.5.2-py3-none-any.whl`. Co-Authored-By: Claude Opus 4.7 (1M context) --- CHANGELOG.md | 2 ++ pyproject.toml | 2 +- server.json | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a0c90ca..dcc61e7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ All notable changes to this project will be documented here. ## [Unreleased] +## [2.5.2] - 2026-05-07 + ### Fixed - Windows: non-ASCII characters (em dash, en dash, curly quotes, non-Latin scripts, etc.) are no longer corrupted on diff --git a/pyproject.toml b/pyproject.toml index 5cc6946..5eb5c87 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "mcp-clipboard" -version = "2.5.1" +version = "2.5.2" description = "MCP server that reads and writes the system clipboard — tables, text, code, JSON, URLs, images, and more." readme = "README.md" license = {text = "Apache-2.0"} diff --git a/server.json b/server.json index 8868ca2..bcf5b87 100644 --- a/server.json +++ b/server.json @@ -3,7 +3,7 @@ "name": "io.github.cmeans/mcp-clipboard", "title": "Clipboard", "description": "Read and write the system clipboard — tables, text, code, JSON, URLs, images, and more.", - "version": "2.5.1", + "version": "2.5.2", "repository": { "url": "https://github.com/cmeans/mcp-clipboard", "source": "github" @@ -12,7 +12,7 @@ { "registryType": "pypi", "identifier": "mcp-clipboard", - "version": "2.5.1", + "version": "2.5.2", "transport": { "type": "stdio" } From e9d7553465ce1a8e3f5dcef6fe44529613a7dbf9 Mon Sep 17 00:00:00 2001 From: "cmeans-claude-dev[bot]" <272174644+cmeans-claude-dev[bot]@users.noreply.github.com> Date: Thu, 7 May 2026 15:19:39 -0500 Subject: [PATCH 2/2] chore(release): bump 2.5.2 -> 2.6.0 per QA Round 1 F1 (semver minor) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit QA reviewer flagged the bump level: this release contains two `### Added` entries (CLI flags --version/--help/--check via #134, and the github-release job via #127), both of which are backwards-compatible feature additions. Per semver §6, that's a MINOR bump trigger, not patch. This repo's own precedent confirms the convention: - v2.5.0 (2026-05-05): minor bump for the same release shape (Added + Changed + Fixed aggregated). Direct precedent. - v2.5.1 (2026-05-05): patch bump for fix-only release. - v2.5.2 (proposed): mismatched -- patch bump for an Added-bearing release. Concrete consumer impact of getting it wrong: a `~=2.5.0` pin would silently auto-upgrade across this release and pull in the new --check surface unannounced. With 2.6.0, that pin correctly does not match. Mechanical fix: - pyproject.toml: version "2.5.2" -> "2.6.0" - server.json: top-level + packages[0] versions synced to 2.6.0 via scripts/sync-server-json.py - CHANGELOG.md: heading "## [2.5.2] - 2026-05-07" -> "## [2.6.0] - 2026-05-07" Branch name `release/v2.5.2` is now a cosmetic mismatch -- preserved to keep PR #135's QA review history intact rather than re-opening a fresh PR. The squash-merge will collapse this commit into the release commit and the branch will be deleted. Local verification at this commit: - python scripts/sync-server-json.py --check: in sync at 2.6.0 - uv run pytest -q: 610 passed, 19 deselected, 5 xfailed - uv run ruff check src tests: clean - uv run mypy src: clean - uv build --wheel: dist/mcp_clipboard-2.6.0-py3-none-any.whl built cleanly - grep "2.5.2" across pyproject.toml + server.json + CHANGELOG.md: zero hits Co-Authored-By: Claude Opus 4.7 (1M context) --- CHANGELOG.md | 2 +- pyproject.toml | 2 +- server.json | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dcc61e7..e406410 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ All notable changes to this project will be documented here. ## [Unreleased] -## [2.5.2] - 2026-05-07 +## [2.6.0] - 2026-05-07 ### Fixed - Windows: non-ASCII characters (em dash, en dash, curly quotes, diff --git a/pyproject.toml b/pyproject.toml index 5eb5c87..1fa8e7f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "mcp-clipboard" -version = "2.5.2" +version = "2.6.0" description = "MCP server that reads and writes the system clipboard — tables, text, code, JSON, URLs, images, and more." readme = "README.md" license = {text = "Apache-2.0"} diff --git a/server.json b/server.json index bcf5b87..d32c536 100644 --- a/server.json +++ b/server.json @@ -3,7 +3,7 @@ "name": "io.github.cmeans/mcp-clipboard", "title": "Clipboard", "description": "Read and write the system clipboard — tables, text, code, JSON, URLs, images, and more.", - "version": "2.5.2", + "version": "2.6.0", "repository": { "url": "https://github.com/cmeans/mcp-clipboard", "source": "github" @@ -12,7 +12,7 @@ { "registryType": "pypi", "identifier": "mcp-clipboard", - "version": "2.5.2", + "version": "2.6.0", "transport": { "type": "stdio" }