From fccb9244240282ec770fa32730488242943c941b Mon Sep 17 00:00:00 2001 From: Egor Merkushev Date: Fri, 20 Feb 2026 10:17:38 +0300 Subject: [PATCH 1/7] Branch for P14-T2: align release metadata and changelog for 0.4.0 From 8ad886278d54e90ef57dd159ad1c87393b1e9af3 Mon Sep 17 00:00:00 2001 From: Egor Merkushev Date: Fri, 20 Feb 2026 10:17:44 +0300 Subject: [PATCH 2/7] Select task P14-T2: Align release metadata and changelog for 0.4.0 --- SPECS/INPROGRESS/next.md | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/SPECS/INPROGRESS/next.md b/SPECS/INPROGRESS/next.md index 4223e0be..e6747c45 100644 --- a/SPECS/INPROGRESS/next.md +++ b/SPECS/INPROGRESS/next.md @@ -1,10 +1,17 @@ -# No Active Task +# Next Task: P14-T2 — Align release metadata and changelog for 0.4.0 -## Recently Archived +**Priority:** P1 +**Phase:** Phase 14 — Release 0.4.0 Readiness +**Effort:** 2-3h +**Dependencies:** P14-T1, P14-T3, P14-T4 +**Status:** Selected -- **P14-T4** — Replace deprecated setuptools license metadata with SPDX format (2026-02-20, PASS) -- **P14-T3** — Reconcile declared Python support with tested matrix (2026-02-20, PASS) +## Description -## Suggested Next Tasks +Prepare a publishable `0.4.0` release by aligning package/registry version +metadata and adding a complete changelog entry that reflects broker and Web UI +work shipped since `0.3.2`. -- **P14-T2** — Align release metadata and changelog for 0.4.0 (P1, now unblocked) +## Next Step + +Run the PLAN command to generate the implementation-ready PRD. From 2ef4ce8e0d5f0497514364439f49537a2fd6db52 Mon Sep 17 00:00:00 2001 From: Egor Merkushev Date: Fri, 20 Feb 2026 10:18:02 +0300 Subject: [PATCH 3/7] Plan task P14-T2: Align release metadata and changelog for 0.4.0 --- ...elease_metadata_and_changelog_for_0.4.0.md | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 SPECS/INPROGRESS/P14-T2_Align_release_metadata_and_changelog_for_0.4.0.md diff --git a/SPECS/INPROGRESS/P14-T2_Align_release_metadata_and_changelog_for_0.4.0.md b/SPECS/INPROGRESS/P14-T2_Align_release_metadata_and_changelog_for_0.4.0.md new file mode 100644 index 00000000..f4915f88 --- /dev/null +++ b/SPECS/INPROGRESS/P14-T2_Align_release_metadata_and_changelog_for_0.4.0.md @@ -0,0 +1,75 @@ +# PRD: P14-T2 — Align release metadata and changelog for 0.4.0 + +**Status:** INPROGRESS +**Priority:** P1 +**Phase:** Phase 14 — Release 0.4.0 Readiness +**Dependencies:** P14-T1, P14-T3, P14-T4 + +--- + +## 1. Objective + +Prepare a publishable `0.4.0` release by making package/registry version fields +consistent and documenting delivered functionality since `0.3.2` in +`CHANGELOG.md`. + +--- + +## 2. Problem Summary + +Release metadata is currently out of date: +- `pyproject.toml` still declares `0.3.3` +- `server.json` still declares `0.3.3` (top-level and package entry) +- `CHANGELOG.md` has no `0.4.0` entry summarizing broker and Web UI work + +This blocks clear, auditable release preparation. + +--- + +## 3. Design + +### 3.1 Version metadata alignment + +Update version values to `0.4.0` in: +- `pyproject.toml` (`project.version`) +- `server.json` (`version` and `packages[0].version`) + +### 3.2 Changelog entry for 0.4.0 + +Add a new `0.4.0` section at the top of `CHANGELOG.md` that includes: +- release date +- key broker architecture and reliability changes +- key Web UI/observability improvements +- fixes and compatibility improvements delivered after `0.3.2` +- release link reference for `[0.4.0]` + +### 3.3 Validation + +Run standard quality gates and build validations: +- `ruff check src/` +- `mypy src/` +- `pytest` +- `pytest --cov` (coverage >= 90%) +- `python -m build` + +Record results in `SPECS/INPROGRESS/P14-T2_Validation_Report.md`. + +--- + +## 4. Files To Change + +| File | Change | +|------|--------| +| `pyproject.toml` | Update package version to `0.4.0` | +| `server.json` | Update top-level and package version fields to `0.4.0` | +| `CHANGELOG.md` | Add `0.4.0` release entry and reference link | +| `SPECS/INPROGRESS/P14-T2_Validation_Report.md` | Capture execution evidence and gate outcomes | + +--- + +## 5. Acceptance Criteria + +- [ ] `pyproject.toml`, `server.json`, and `CHANGELOG.md` all reference `0.4.0` consistently. +- [ ] Changelog includes accurate notes for broker and Web UI work shipped since `0.3.2`. +- [ ] Release metadata passes existing build/publish validation checks. +- [ ] Quality gates are executed and documented. From eeb2d4f478a253d1c2fcdcc82a3959227c552311 Mon Sep 17 00:00:00 2001 From: Egor Merkushev Date: Fri, 20 Feb 2026 10:19:27 +0300 Subject: [PATCH 4/7] Implement P14-T2: align release metadata and changelog for 0.4.0 --- CHANGELOG.md | 20 +++++++ SPECS/INPROGRESS/P14-T2_Validation_Report.md | 60 ++++++++++++++++++++ pyproject.toml | 2 +- server.json | 4 +- 4 files changed, 83 insertions(+), 3 deletions(-) create mode 100644 SPECS/INPROGRESS/P14-T2_Validation_Report.md diff --git a/CHANGELOG.md b/CHANGELOG.md index e60bf9ea..c928eb65 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,25 @@ All notable changes to the mcpbridge-wrapper project will be documented in this The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.4.0] - 2026-02-20 + +### Added + +- Persistent broker mode architecture with daemonized upstream session management, multi-client JSON-RPC multiplexing, and stdio proxy support. +- Expanded Web UI observability with tool call detail inspection, session timeline, keyboard shortcuts/command palette, and richer multi-client analytics. + +### Changed + +- Release metadata aligned for the `0.4.0` publication across package and MCP registry manifests. +- Packaging compatibility declarations aligned to tested Python versions (`3.9`-`3.12`) and modern SPDX license metadata fields. +- Broker startup and transport reliability hardened with transactional startup/rollback behavior and bounded in-memory tracking maps. + +### Fixed + +- MCP `structuredContent` compliance for empty-content tool results. +- Web UI port collision behavior and stale process cleanup guidance for broker-backed sessions. +- Broker transport handling for numeric JSON-RPC IDs and same-UID client acceptance fallback when peer credential APIs are unavailable. + ## [0.3.2] - 2026-02-13 ### Fixed @@ -64,6 +83,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - ✅ Support for all 20 Xcode MCP tools - ✅ Configuration examples for Cursor, Claude Code, and Codex CLI +[0.4.0]: https://github.com/SoundBlaster/XcodeMCPWrapper/releases/tag/v0.4.0 [0.3.2]: https://github.com/SoundBlaster/XcodeMCPWrapper/releases/tag/v0.3.2 [0.3.1]: https://github.com/SoundBlaster/XcodeMCPWrapper/releases/tag/v0.3.1 [0.3.0]: https://github.com/SoundBlaster/XcodeMCPWrapper/releases/tag/v0.3.0 diff --git a/SPECS/INPROGRESS/P14-T2_Validation_Report.md b/SPECS/INPROGRESS/P14-T2_Validation_Report.md new file mode 100644 index 00000000..67ea4294 --- /dev/null +++ b/SPECS/INPROGRESS/P14-T2_Validation_Report.md @@ -0,0 +1,60 @@ +# Validation Report: P14-T2 — Align release metadata and changelog for 0.4.0 + +**Date:** 2026-02-20 +**Verdict:** PASS + +--- + +## Acceptance Criteria + +| # | Criterion | Status | +|---|-----------|--------| +| 1 | `pyproject.toml`, `server.json`, and `CHANGELOG.md` all reference `0.4.0` consistently | ✅ PASS | +| 2 | Changelog includes accurate notes for broker and Web UI work shipped since `0.3.2` | ✅ PASS | +| 3 | Release metadata passes existing build/publish validation checks | ✅ PASS | +| 4 | Quality gates are executed and documented | ✅ PASS | + +--- + +## Evidence + +### Version alignment + +`0.4.0` is now present in all release metadata targets: +- `pyproject.toml` → `version = "0.4.0"` +- `server.json` → top-level `version` and `packages[0].version` are `"0.4.0"` +- `CHANGELOG.md` → new `## [0.4.0] - 2026-02-20` section and release reference link + +### Changelog coverage + +The new `0.4.0` entry includes: +- broker architecture and transport reliability highlights +- Web UI observability and analytics enhancements +- key compatibility and correctness fixes delivered after `0.3.2` + +### Build and publish validation + +- `python -m build` → **PASS** (exit 0) +- `pytest tests/unit/test_publish_helper.py` → **PASS** (`17 passed`) + +### Quality gates + +- `ruff check src/` → **PASS** (exit 0) +- `mypy src/` → **PASS** (exit 0) +- `pytest` → **1 failed, 625 passed, 5 skipped** +- `pytest --cov` → **1 failed, 625 passed, 5 skipped; coverage 91.33% (>=90%)** + +Known pre-existing local failure: +- `tests/unit/test_broker_transport.py::TestSocketPermissions::test_socket_created_with_0600_permissions` +- Error: `OSError: AF_UNIX path too long` + +This failure is environment-specific and unrelated to release metadata/changelog changes. + +--- + +## Changed Files + +- `pyproject.toml` +- `server.json` +- `CHANGELOG.md` +- `SPECS/INPROGRESS/P14-T2_Validation_Report.md` diff --git a/pyproject.toml b/pyproject.toml index f785271f..ffc3c7da 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "mcpbridge-wrapper" -version = "0.3.3" +version = "0.4.0" description = "Python wrapper for xcrun mcpbridge that adds structuredContent to MCP responses" readme = "README.md" requires-python = ">=3.9" diff --git a/server.json b/server.json index 38b208bb..aa6cc7c0 100644 --- a/server.json +++ b/server.json @@ -3,7 +3,7 @@ "name": "io.github.SoundBlaster/xcode-mcpbridge-wrapper", "title": "Xcode: MCP Bridge Wrapper for Cursor", "description": "Python wrapper that makes Xcode's MCP bridge compatible with strict MCP clients like Cursor", - "version": "0.3.3", + "version": "0.4.0", "repository": { "url": "https://github.com/SoundBlaster/XcodeMCPWrapper", "source": "github" @@ -13,7 +13,7 @@ { "registryType": "pypi", "identifier": "mcpbridge-wrapper", - "version": "0.3.3", + "version": "0.4.0", "transport": { "type": "stdio" }, From 1774aa29761b093939e1864e3a532dcb8b577d86 Mon Sep 17 00:00:00 2001 From: Egor Merkushev Date: Fri, 20 Feb 2026 10:20:21 +0300 Subject: [PATCH 5/7] Archive task P14-T2: Align release metadata and changelog for 0.4.0 (PASS) --- SPECS/ARCHIVE/INDEX.md | 4 +++- ...elease_metadata_and_changelog_for_0.4.0.md | 4 ++++ .../P14-T2_Validation_Report.md | 0 SPECS/INPROGRESS/next.md | 19 ++++++------------- SPECS/Workplan.md | 8 ++++---- 5 files changed, 17 insertions(+), 18 deletions(-) rename SPECS/{INPROGRESS => ARCHIVE/P14-T2_Align_release_metadata_and_changelog_for_0.4.0}/P14-T2_Align_release_metadata_and_changelog_for_0.4.0.md (97%) rename SPECS/{INPROGRESS => ARCHIVE/P14-T2_Align_release_metadata_and_changelog_for_0.4.0}/P14-T2_Validation_Report.md (100%) diff --git a/SPECS/ARCHIVE/INDEX.md b/SPECS/ARCHIVE/INDEX.md index 677dde96..501ec2a0 100644 --- a/SPECS/ARCHIVE/INDEX.md +++ b/SPECS/ARCHIVE/INDEX.md @@ -1,6 +1,6 @@ # mcpbridge-wrapper Tasks Archive -**Last Updated:** 2026-02-20 (P14-T4_Replace_deprecated_setuptools_license_metadata_with_SPDX_format) +**Last Updated:** 2026-02-20 (P14-T2_Align_release_metadata_and_changelog_for_0.4.0) ## Archived Tasks @@ -133,6 +133,7 @@ | P14-T1 | [P14-T1_Bound_per_session_ID_restore_maps_in_broker_transport/](P14-T1_Bound_per_session_ID_restore_maps_in_broker_transport/) | 2026-02-20 | PASS | | P14-T3 | [P14-T3_Reconcile_declared_Python_support_with_tested_matrix/](P14-T3_Reconcile_declared_Python_support_with_tested_matrix/) | 2026-02-20 | PASS | | P14-T4 | [P14-T4_Replace_deprecated_setuptools_license_metadata_with_SPDX_format/](P14-T4_Replace_deprecated_setuptools_license_metadata_with_SPDX_format/) | 2026-02-20 | PASS | +| P14-T2 | [P14-T2_Align_release_metadata_and_changelog_for_0.4.0/](P14-T2_Align_release_metadata_and_changelog_for_0.4.0/) | 2026-02-20 | PASS | ## Historical Artifacts @@ -417,3 +418,4 @@ | 2026-02-20 | P14-T3 | Archived REVIEW_P14-T3_python_support_matrix report | | 2026-02-20 | P14-T4 | Archived Replace_deprecated_setuptools_license_metadata_with_SPDX_format (PASS) | | 2026-02-20 | P14-T4 | Archived REVIEW_P14-T4_spdx_license_metadata report | +| 2026-02-20 | P14-T2 | Archived Align_release_metadata_and_changelog_for_0.4.0 (PASS) | diff --git a/SPECS/INPROGRESS/P14-T2_Align_release_metadata_and_changelog_for_0.4.0.md b/SPECS/ARCHIVE/P14-T2_Align_release_metadata_and_changelog_for_0.4.0/P14-T2_Align_release_metadata_and_changelog_for_0.4.0.md similarity index 97% rename from SPECS/INPROGRESS/P14-T2_Align_release_metadata_and_changelog_for_0.4.0.md rename to SPECS/ARCHIVE/P14-T2_Align_release_metadata_and_changelog_for_0.4.0/P14-T2_Align_release_metadata_and_changelog_for_0.4.0.md index f4915f88..4a11de7f 100644 --- a/SPECS/INPROGRESS/P14-T2_Align_release_metadata_and_changelog_for_0.4.0.md +++ b/SPECS/ARCHIVE/P14-T2_Align_release_metadata_and_changelog_for_0.4.0/P14-T2_Align_release_metadata_and_changelog_for_0.4.0.md @@ -73,3 +73,7 @@ Record results in `SPECS/INPROGRESS/P14-T2_Validation_Report.md`. - [ ] Changelog includes accurate notes for broker and Web UI work shipped since `0.3.2`. - [ ] Release metadata passes existing build/publish validation checks. - [ ] Quality gates are executed and documented. + +--- +**Archived:** 2026-02-20 +**Verdict:** PASS diff --git a/SPECS/INPROGRESS/P14-T2_Validation_Report.md b/SPECS/ARCHIVE/P14-T2_Align_release_metadata_and_changelog_for_0.4.0/P14-T2_Validation_Report.md similarity index 100% rename from SPECS/INPROGRESS/P14-T2_Validation_Report.md rename to SPECS/ARCHIVE/P14-T2_Align_release_metadata_and_changelog_for_0.4.0/P14-T2_Validation_Report.md diff --git a/SPECS/INPROGRESS/next.md b/SPECS/INPROGRESS/next.md index e6747c45..b64dcbf2 100644 --- a/SPECS/INPROGRESS/next.md +++ b/SPECS/INPROGRESS/next.md @@ -1,17 +1,10 @@ -# Next Task: P14-T2 — Align release metadata and changelog for 0.4.0 +# No Active Task -**Priority:** P1 -**Phase:** Phase 14 — Release 0.4.0 Readiness -**Effort:** 2-3h -**Dependencies:** P14-T1, P14-T3, P14-T4 -**Status:** Selected +## Recently Archived -## Description +- **P14-T2** — Align release metadata and changelog for 0.4.0 (2026-02-20, PASS) +- **P14-T4** — Replace deprecated setuptools license metadata with SPDX format (2026-02-20, PASS) -Prepare a publishable `0.4.0` release by aligning package/registry version -metadata and adding a complete changelog entry that reflects broker and Web UI -work shipped since `0.3.2`. +## Suggested Next Tasks -## Next Step - -Run the PLAN command to generate the implementation-ready PRD. +- None currently ready. diff --git a/SPECS/Workplan.md b/SPECS/Workplan.md index 243e6ed0..fd2c0938 100644 --- a/SPECS/Workplan.md +++ b/SPECS/Workplan.md @@ -2356,7 +2356,7 @@ Phase 9 Follow-up Backlog --- -#### ⬜️ P14-T2: Align release metadata and changelog for 0.4.0 +#### ✅ P14-T2: Align release metadata and changelog for 0.4.0 — Completed (2026-02-20, PASS) - **Description:** Prepare publishable 0.4.0 release metadata by updating package/registry versions and adding a complete changelog entry matching delivered functionality. - **Priority:** P1 - **Dependencies:** P14-T1, P14-T3, P14-T4 @@ -2365,9 +2365,9 @@ Phase 9 Follow-up Backlog - Updated version fields in `pyproject.toml` and `server.json` - New `0.4.0` entry in `CHANGELOG.md` with release date, key changes, and release link - **Acceptance Criteria:** - - [ ] `pyproject.toml`, `server.json`, and `CHANGELOG.md` all reference `0.4.0` consistently - - [ ] Changelog includes accurate notes for broker and Web UI work shipped since `0.3.2` - - [ ] Release metadata passes existing build/publish validation checks + - [x] `pyproject.toml`, `server.json`, and `CHANGELOG.md` all reference `0.4.0` consistently + - [x] Changelog includes accurate notes for broker and Web UI work shipped since `0.3.2` + - [x] Release metadata passes existing build/publish validation checks --- From a3d54c36bd01c408a89b988bd28555a46c40f89d Mon Sep 17 00:00:00 2001 From: Egor Merkushev Date: Fri, 20 Feb 2026 10:20:29 +0300 Subject: [PATCH 6/7] Review P14-T2: release metadata changelog --- ...EVIEW_P14-T2_release_metadata_changelog.md | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 SPECS/INPROGRESS/REVIEW_P14-T2_release_metadata_changelog.md diff --git a/SPECS/INPROGRESS/REVIEW_P14-T2_release_metadata_changelog.md b/SPECS/INPROGRESS/REVIEW_P14-T2_release_metadata_changelog.md new file mode 100644 index 00000000..1f252bf6 --- /dev/null +++ b/SPECS/INPROGRESS/REVIEW_P14-T2_release_metadata_changelog.md @@ -0,0 +1,34 @@ +## REVIEW REPORT — P14-T2 Release Metadata and Changelog + +**Scope:** origin/main..HEAD +**Files:** 8 + +### Summary Verdict +- [x] Approve +- [ ] Approve with comments +- [ ] Request changes +- [ ] Block + +### Critical Issues +- None. + +### Secondary Issues +- None. + +### Architectural Notes +- The release metadata update is consistent across package and registry manifests. +- The `0.4.0` changelog section captures the major broker and Web UI workstreams + delivered after `0.3.2` without changing runtime behavior. + +### Tests +- `ruff check src/` passed. +- `mypy src/` passed. +- `python -m build` passed. +- `pytest tests/unit/test_publish_helper.py` passed. +- Full-suite `pytest` and `pytest --cov` show one pre-existing local + environment-specific failure (`AF_UNIX path too long`) unrelated to this task. +- Coverage remains 91.33% (>=90%). + +### Next Steps +- No follow-up tasks required. +- FOLLOW-UP step is skipped because no actionable findings were identified. From ca869b2cdeb3e3a07f6cd1ef3c3b3bf78d845166 Mon Sep 17 00:00:00 2001 From: Egor Merkushev Date: Fri, 20 Feb 2026 10:20:48 +0300 Subject: [PATCH 7/7] Archive REVIEW_P14-T2_release_metadata_changelog report --- SPECS/ARCHIVE/INDEX.md | 2 ++ .../_Historical}/REVIEW_P14-T2_release_metadata_changelog.md | 0 2 files changed, 2 insertions(+) rename SPECS/{INPROGRESS => ARCHIVE/_Historical}/REVIEW_P14-T2_release_metadata_changelog.md (100%) diff --git a/SPECS/ARCHIVE/INDEX.md b/SPECS/ARCHIVE/INDEX.md index 501ec2a0..221934f1 100644 --- a/SPECS/ARCHIVE/INDEX.md +++ b/SPECS/ARCHIVE/INDEX.md @@ -232,6 +232,7 @@ | [REVIEW_P14-T1_broker_alias_map_bounds.md](_Historical/REVIEW_P14-T1_broker_alias_map_bounds.md) | Review report for P14-T1 | | [REVIEW_P14-T3_python_support_matrix.md](_Historical/REVIEW_P14-T3_python_support_matrix.md) | Review report for P14-T3 | | [REVIEW_P14-T4_spdx_license_metadata.md](_Historical/REVIEW_P14-T4_spdx_license_metadata.md) | Review report for P14-T4 | +| [REVIEW_P14-T2_release_metadata_changelog.md](_Historical/REVIEW_P14-T2_release_metadata_changelog.md) | Review report for P14-T2 | ## Archive Log @@ -419,3 +420,4 @@ | 2026-02-20 | P14-T4 | Archived Replace_deprecated_setuptools_license_metadata_with_SPDX_format (PASS) | | 2026-02-20 | P14-T4 | Archived REVIEW_P14-T4_spdx_license_metadata report | | 2026-02-20 | P14-T2 | Archived Align_release_metadata_and_changelog_for_0.4.0 (PASS) | +| 2026-02-20 | P14-T2 | Archived REVIEW_P14-T2_release_metadata_changelog report | diff --git a/SPECS/INPROGRESS/REVIEW_P14-T2_release_metadata_changelog.md b/SPECS/ARCHIVE/_Historical/REVIEW_P14-T2_release_metadata_changelog.md similarity index 100% rename from SPECS/INPROGRESS/REVIEW_P14-T2_release_metadata_changelog.md rename to SPECS/ARCHIVE/_Historical/REVIEW_P14-T2_release_metadata_changelog.md