Skip to content
Merged
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
65 changes: 65 additions & 0 deletions SPECS/Workplan.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,9 @@ Create a Python-based protocol compatibility wrapper that intercepts MCP respons
### Phase 13: Persistent Broker & Shared Xcode Session
**Intent:** Introduce a long-lived broker connection to Xcode MCP so multiple short-lived clients can reuse one upstream session and reduce repeated Xcode permission prompts.

### Phase 14: Release 0.4.0 Readiness
**Intent:** Close release-blocking findings from the 0.4.0 readiness review across broker runtime safety, package metadata, versioning, and build compliance.

---

## 3. Tasks
Expand Down Expand Up @@ -2306,6 +2309,68 @@ Phase 9 Follow-up Backlog

---

### Phase 14: Release 0.4.0 Readiness

#### ⬜️ P14-T1: Bound per-session ID restore maps in broker transport
- **Description:** Prevent unbounded memory growth in long-lived broker sessions by pruning/removing alias/restore entries once responses are routed (and define safe behavior when local ID space wraps).
- **Priority:** P1
- **Dependencies:** FU-P13-T11, FU-P13-T15
- **Parallelizable:** no
- **Outputs/Artifacts:**
- Updated `src/mcpbridge_wrapper/broker/transport.py` map lifecycle management for `id_restore`, `string_id_map`, and `int_id_map`
- Regression tests in `tests/unit/test_broker_transport.py` for long-lived/large-ID request streams
- **Acceptance Criteria:**
- [ ] Per-session restore/alias maps do not grow unbounded for completed requests
- [ ] Existing ID round-trip fidelity guarantees remain intact for int and string IDs
- [ ] Tests cover wrap/prune behavior and pass in CI

---

#### ⬜️ P14-T3: Reconcile declared Python support with tested matrix
- **Description:** Resolve mismatch between declared Python compatibility and CI coverage by aligning `requires-python`/classifiers/docs with supported and continuously-tested interpreter versions.
- **Priority:** P1
- **Dependencies:** none
- **Parallelizable:** yes
- **Outputs/Artifacts:**
- Updated compatibility declarations in `pyproject.toml` and documentation badges/text
- Updated `.github/workflows/ci.yml` matrix and/or version floor to match declared support
- **Acceptance Criteria:**
- [ ] Declared Python support exactly matches tested CI versions
- [ ] README and packaging metadata communicate the same minimum Python version
- [ ] CI passes on the finalized support matrix

---

#### ⬜️ P14-T4: Replace deprecated setuptools license metadata with SPDX format
- **Description:** Remove packaging deprecation warnings by migrating license metadata to modern SPDX-based fields and dropping deprecated classifiers/structures.
- **Priority:** P2
- **Dependencies:** none
- **Parallelizable:** yes
- **Outputs/Artifacts:**
- Updated `pyproject.toml` license metadata (`project.license` / `license-files` / classifiers as needed)
- Validation evidence from `python -m build` showing deprecation warnings are resolved
- **Acceptance Criteria:**
- [ ] Build output no longer emits setuptools license deprecation warnings
- [ ] Package metadata remains valid for PyPI and MCP registry publication
- [ ] Existing `make check` pipeline remains green

---

#### ⬜️ P14-T2: Align release metadata and changelog for 0.4.0
- **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
- **Parallelizable:** no
- **Outputs/Artifacts:**
- 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

---


#### ✅ FU-BUG-T7-1: Cap `pending_methods` map to guard against unbounded growth
- **Status:** ✅ Completed (2026-02-18)
Expand Down