Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
6 changes: 5 additions & 1 deletion SPECS/ARCHIVE/INDEX.md
Original file line number Diff line number Diff line change
@@ -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

Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -231,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

Expand Down Expand Up @@ -417,3 +419,5 @@
| 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) |
| 2026-02-20 | P14-T2 | Archived REVIEW_P14-T2_release_metadata_changelog report |
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# 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.

---
**Archived:** 2026-02-20
**Verdict:** PASS
Original file line number Diff line number Diff line change
@@ -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`
Original file line number Diff line number Diff line change
@@ -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.
4 changes: 2 additions & 2 deletions SPECS/INPROGRESS/next.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

## Recently Archived

- **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)
- **P14-T3** — Reconcile declared Python support with tested matrix (2026-02-20, PASS)

## Suggested Next Tasks

- **P14-T2** — Align release metadata and changelog for 0.4.0 (P1, now unblocked)
- None currently ready.
8 changes: 4 additions & 4 deletions SPECS/Workplan.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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

---

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
4 changes: 2 additions & 2 deletions server.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -13,7 +13,7 @@
{
"registryType": "pypi",
"identifier": "mcpbridge-wrapper",
"version": "0.3.3",
"version": "0.4.0",
"transport": {
"type": "stdio"
},
Expand Down