From 02635795fb1cface45b057dd7eb1a0f1de7c618a Mon Sep 17 00:00:00 2001 From: Egor Merkushev Date: Sun, 1 Mar 2026 15:07:29 +0300 Subject: [PATCH 1/4] Select task P1-T7: Hide README version badge maintenance note --- SPECS/INPROGRESS/next.md | 22 +++++++++++++--------- SPECS/Workplan.md | 11 +++++++++++ 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/SPECS/INPROGRESS/next.md b/SPECS/INPROGRESS/next.md index ca805305..2ba24815 100644 --- a/SPECS/INPROGRESS/next.md +++ b/SPECS/INPROGRESS/next.md @@ -1,12 +1,16 @@ -# No Active Task +# Active Task -**Status:** Idle — P1-T4 archived. Select the next task from `SPECS/Workplan.md`. +**Status:** Selected — ready for planning/execution. -## Recently Archived +## Task Metadata -- **P1-T4** — Update docs to reflect broker robustness improvements (2026-03-01, PASS) -- **P2-T5** — Warn or restart daemon when --web-ui requested but running broker lacks it (2026-03-01, PASS) -- **P2-T4** — Surface broker unavailability as JSON-RPC error instead of silent timeout (2026-03-01, PASS) -- **P2-T3** — Fix double-spawn race condition when MCP client toggles rapidly (2026-03-01, PASS) -- **P2-T1** — Replace --broker-spawn/--broker-connect with single --broker flag (2026-03-01, PASS) -- **P2-T2** — Self-healing stale socket and PID file recovery (2026-03-01, PASS) +- **Task ID:** P1-T7 +- **Task Name:** Hide README version badge maintenance note +- **Priority:** P3 +- **Dependencies:** none +- **Parallelizable:** yes +- **Source:** `SPECS/Workplan.md` + +## Summary + +Hide from `README.md` the string `Version badge maintenance: run make badge-version (or make badge-version-check in CI).` while keeping the version badge visible. diff --git a/SPECS/Workplan.md b/SPECS/Workplan.md index 22ab98ca..a88d3411 100644 --- a/SPECS/Workplan.md +++ b/SPECS/Workplan.md @@ -100,6 +100,17 @@ Add new tasks using the canonical template in [TASK_TEMPLATE.md](TASK_TEMPLATE.m - [ ] DocC mirror updated to match - [ ] `make doccheck-all` passes +#### ⬜️ P1-T7: Hide README version badge maintenance note +- **Description:** Hide from `README.md` the string `Version badge maintenance: run make badge-version (or make badge-version-check in CI).` while keeping the version badge visible. +- **Priority:** P3 +- **Dependencies:** none +- **Parallelizable:** yes +- **Outputs/Artifacts:** + - `README.md` — maintenance note string removed from badge area +- **Acceptance Criteria:** + - [ ] `README.md` no longer contains the exact string `Version badge maintenance: run make badge-version (or make badge-version-check in CI).` + - [ ] Version badge remains visible and functional after removing the maintenance note + ### Phase 2: Broker Robustness #### ✅ P2-T1: Replace --broker-spawn/--broker-connect with single --broker flag From 252f95df1b3409fe92bae612297140bda1a0d0b5 Mon Sep 17 00:00:00 2001 From: Egor Merkushev Date: Sun, 1 Mar 2026 16:02:03 +0300 Subject: [PATCH 2/4] Archive REVIEW_P1-T7_readme_badge_note report --- README.md | 2 - SPECS/ARCHIVE/INDEX.md | 6 ++- .../FOLLOWUP_P1-T7_readme_badge_note.md | 11 ++++++ ...e_README_version_badge_maintenance_note.md | 39 +++++++++++++++++++ .../P1-T7_Validation_Report.md | 25 ++++++++++++ .../REVIEW_P1-T7_readme_badge_note.md | 29 ++++++++++++++ SPECS/INPROGRESS/next.md | 22 +++++------ SPECS/Workplan.md | 9 +++-- 8 files changed, 123 insertions(+), 20 deletions(-) create mode 100644 SPECS/ARCHIVE/P1-T7_Hide_README_version_badge_maintenance_note/FOLLOWUP_P1-T7_readme_badge_note.md create mode 100644 SPECS/ARCHIVE/P1-T7_Hide_README_version_badge_maintenance_note/P1-T7_Hide_README_version_badge_maintenance_note.md create mode 100644 SPECS/ARCHIVE/P1-T7_Hide_README_version_badge_maintenance_note/P1-T7_Validation_Report.md create mode 100644 SPECS/ARCHIVE/P1-T7_Hide_README_version_badge_maintenance_note/REVIEW_P1-T7_readme_badge_note.md diff --git a/README.md b/README.md index 5174e2cd..567b0c83 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,6 @@ [![Coverage](https://img.shields.io/badge/coverage-92.19%25-brightgreen.svg)](./SPECS/ARCHIVE/P5-T14_Code_Coverage/) [![MCP Registry](https://img.shields.io/badge/MCP%20Registry-io.github.SoundBlaster%2Fxcode--mcpbridge--wrapper-blue)](https://registry.modelcontextprotocol.io) -Version badge maintenance: run `make badge-version` (or `make badge-version-check` in CI). - A Python wrapper that makes Xcode 26.3's MCP bridge compatible with Cursor and other strict MCP-spec-compliant clients. ## The Problem diff --git a/SPECS/ARCHIVE/INDEX.md b/SPECS/ARCHIVE/INDEX.md index 1019ff5f..b80132e3 100644 --- a/SPECS/ARCHIVE/INDEX.md +++ b/SPECS/ARCHIVE/INDEX.md @@ -1,11 +1,12 @@ # mcpbridge-wrapper Tasks Archive -**Last Updated:** 2026-03-01 (P1-T4 archived) +**Last Updated:** 2026-03-01 (P1-T7 archived) ## Archived Tasks | Task ID | Folder | Archived | Verdict | |---------|--------|----------|---------| +| P1-T7 | [P1-T7_Hide_README_version_badge_maintenance_note/](P1-T7_Hide_README_version_badge_maintenance_note/) | 2026-03-01 | PASS | | P1-T4 | [P1-T4_Update_docs_broker_robustness/](P1-T4_Update_docs_broker_robustness/) | 2026-03-01 | PASS | | P2-T5 | [P2-T5_Warn_when_broker_lacks_web_ui/](P2-T5_Warn_when_broker_lacks_web_ui/) | 2026-03-01 | PASS | | P2-T4 | [P2-T4_Surface_broker_unavailability_as_JSONRPC_error/](P2-T4_Surface_broker_unavailability_as_JSONRPC_error/) | 2026-03-01 | PASS | @@ -302,6 +303,9 @@ | Date | Task ID | Action | |------|---------|--------| +| 2026-03-01 | P1-T7 | Archived REVIEW_P1-T7_readme_badge_note report | +| 2026-03-01 | P1-T7 | Archived FOLLOWUP_P1-T7_readme_badge_note report | +| 2026-03-01 | P1-T7 | Archived Hide README version badge maintenance note (PASS) | | 2026-03-01 | P1-T4 | Archived Update docs to reflect broker robustness improvements (PASS) | | 2026-03-01 | P2-T3 | Archived Fix double-spawn race condition when MCP client toggles rapidly (PASS) | | 2026-03-01 | P2-T1 | Archived Replace --broker-spawn/--broker-connect with single --broker flag (PASS) | diff --git a/SPECS/ARCHIVE/P1-T7_Hide_README_version_badge_maintenance_note/FOLLOWUP_P1-T7_readme_badge_note.md b/SPECS/ARCHIVE/P1-T7_Hide_README_version_badge_maintenance_note/FOLLOWUP_P1-T7_readme_badge_note.md new file mode 100644 index 00000000..99dca65d --- /dev/null +++ b/SPECS/ARCHIVE/P1-T7_Hide_README_version_badge_maintenance_note/FOLLOWUP_P1-T7_readme_badge_note.md @@ -0,0 +1,11 @@ +# Follow-up Report — P1-T7 README Badge Maintenance Note + +## Source Review +- `SPECS/INPROGRESS/REVIEW_P1-T7_readme_badge_note.md` + +## Decision +- FOLLOW-UP skipped. + +## Rationale +- Review found no actionable issues (no blocker/high/medium/low findings). +- No additional tasks were added to `SPECS/Workplan.md`. diff --git a/SPECS/ARCHIVE/P1-T7_Hide_README_version_badge_maintenance_note/P1-T7_Hide_README_version_badge_maintenance_note.md b/SPECS/ARCHIVE/P1-T7_Hide_README_version_badge_maintenance_note/P1-T7_Hide_README_version_badge_maintenance_note.md new file mode 100644 index 00000000..98d3f8de --- /dev/null +++ b/SPECS/ARCHIVE/P1-T7_Hide_README_version_badge_maintenance_note/P1-T7_Hide_README_version_badge_maintenance_note.md @@ -0,0 +1,39 @@ +# PRD — P1-T7: Hide README version badge maintenance note + +## Context + +The README currently includes an internal maintenance instruction line: +`Version badge maintenance: run make badge-version (or make badge-version-check in CI).` + +This task hides that line from public README content while keeping the version badge itself visible and unchanged. + +## Scope + +- In scope: + - Remove the maintenance note line from `README.md`. + - Preserve surrounding badges and README rendering. +- Out of scope: + - Changing badge URL, version value, or badge automation scripts. + - Any code/runtime behavior changes. + +## Deliverables + +1. `README.md` updated to remove the maintenance note string. +2. Validation report documenting checks performed. + +## Acceptance Criteria + +- [ ] `README.md` no longer contains the exact string: + `Version badge maintenance: run make badge-version (or make badge-version-check in CI).` +- [ ] Version badge remains visible in the badges area. +- [ ] No unintended README formatting regressions are introduced. + +## Validation Plan + +- Run `rg -n "Version badge maintenance" README.md` and confirm no matches. +- Inspect top README section (`nl -ba README.md | sed -n '1,30p'`) to confirm badge block remains present. + +## Risks and Mitigations + +- Risk: Removing the line could collapse spacing around the badge block. + - Mitigation: Manually inspect the first 30 lines of `README.md` after change. diff --git a/SPECS/ARCHIVE/P1-T7_Hide_README_version_badge_maintenance_note/P1-T7_Validation_Report.md b/SPECS/ARCHIVE/P1-T7_Hide_README_version_badge_maintenance_note/P1-T7_Validation_Report.md new file mode 100644 index 00000000..0db26baa --- /dev/null +++ b/SPECS/ARCHIVE/P1-T7_Hide_README_version_badge_maintenance_note/P1-T7_Validation_Report.md @@ -0,0 +1,25 @@ +# Validation Report — P1-T7 + +**Task:** P1-T7 — Hide README version badge maintenance note +**Date:** 2026-03-01 +**Verdict:** PASS + +## Checks Run + +1. `rg -n "Version badge maintenance" README.md` + - Result: no matches. +2. `nl -ba README.md | sed -n '1,22p'` + - Result: version badge block remains present at the top of the README. +3. `pytest -q` + - Result: pass (669 passed, 18 skipped). +4. `ruff check src/` + - Result: pass. +5. `mypy src/` + - Result: pass. +6. `pytest --cov` + - Result: pass; total coverage 90.92% (>=90%). + +## Acceptance Criteria Mapping + +- [x] `README.md` no longer contains the exact string `Version badge maintenance: run make badge-version (or make badge-version-check in CI).` +- [x] Version badge remains visible and functional after removing the maintenance note. diff --git a/SPECS/ARCHIVE/P1-T7_Hide_README_version_badge_maintenance_note/REVIEW_P1-T7_readme_badge_note.md b/SPECS/ARCHIVE/P1-T7_Hide_README_version_badge_maintenance_note/REVIEW_P1-T7_readme_badge_note.md new file mode 100644 index 00000000..2cf80cd2 --- /dev/null +++ b/SPECS/ARCHIVE/P1-T7_Hide_README_version_badge_maintenance_note/REVIEW_P1-T7_readme_badge_note.md @@ -0,0 +1,29 @@ +## REVIEW REPORT — P1-T7 README Badge Maintenance Note + +**Scope:** 63c45e8..fde1dac +**Files:** 7 + +### Summary Verdict +- [x] Approve +- [ ] Approve with comments +- [ ] Request changes +- [ ] Block + +### Critical Issues +- None. + +### Secondary Issues +- None. + +### Architectural Notes +- Change is documentation-only and intentionally does not alter badge automation tooling. +- Task lifecycle artifacts (PRD + validation report) were archived in a dedicated task folder. + +### Tests +- `pytest -q` passed (669 passed, 18 skipped). +- `ruff check src/` passed. +- `mypy src/` passed. +- `pytest --cov` passed with 90.92% total coverage. + +### Next Steps +- No actionable follow-up items identified. diff --git a/SPECS/INPROGRESS/next.md b/SPECS/INPROGRESS/next.md index 2ba24815..9647f152 100644 --- a/SPECS/INPROGRESS/next.md +++ b/SPECS/INPROGRESS/next.md @@ -1,16 +1,12 @@ -# Active Task +# No Active Task -**Status:** Selected — ready for planning/execution. +**Status:** Idle — P1-T7 archived. Select the next task from `SPECS/Workplan.md`. -## Task Metadata +## Recently Archived -- **Task ID:** P1-T7 -- **Task Name:** Hide README version badge maintenance note -- **Priority:** P3 -- **Dependencies:** none -- **Parallelizable:** yes -- **Source:** `SPECS/Workplan.md` - -## Summary - -Hide from `README.md` the string `Version badge maintenance: run make badge-version (or make badge-version-check in CI).` while keeping the version badge visible. +- **P1-T7** — Hide README version badge maintenance note (2026-03-01, PASS) +- **P1-T4** — Update docs to reflect broker robustness improvements (2026-03-01, PASS) +- **P2-T5** — Warn or restart daemon when --web-ui requested but running broker lacks it (2026-03-01, PASS) +- **P2-T4** — Surface broker unavailability as JSON-RPC error instead of silent timeout (2026-03-01, PASS) +- **P2-T3** — Fix double-spawn race condition when MCP client toggles rapidly (2026-03-01, PASS) +- **P2-T1** — Replace --broker-spawn/--broker-connect with single --broker flag (2026-03-01, PASS) diff --git a/SPECS/Workplan.md b/SPECS/Workplan.md index a88d3411..fa8b8629 100644 --- a/SPECS/Workplan.md +++ b/SPECS/Workplan.md @@ -100,16 +100,17 @@ Add new tasks using the canonical template in [TASK_TEMPLATE.md](TASK_TEMPLATE.m - [ ] DocC mirror updated to match - [ ] `make doccheck-all` passes -#### ⬜️ P1-T7: Hide README version badge maintenance note -- **Description:** Hide from `README.md` the string `Version badge maintenance: run make badge-version (or make badge-version-check in CI).` while keeping the version badge visible. +#### ✅ P1-T7: Hide README version badge maintenance note +- **Status:** ✅ Completed (2026-03-01) +- **Description:** Hid from `README.md` the string `Version badge maintenance: run make badge-version (or make badge-version-check in CI).` while preserving the visible version badge. - **Priority:** P3 - **Dependencies:** none - **Parallelizable:** yes - **Outputs/Artifacts:** - `README.md` — maintenance note string removed from badge area - **Acceptance Criteria:** - - [ ] `README.md` no longer contains the exact string `Version badge maintenance: run make badge-version (or make badge-version-check in CI).` - - [ ] Version badge remains visible and functional after removing the maintenance note + - [x] `README.md` no longer contains the exact string `Version badge maintenance: run make badge-version (or make badge-version-check in CI).` + - [x] Version badge remains visible and functional after removing the maintenance note ### Phase 2: Broker Robustness From e16d134d4d43a16b6cb9b4e86612828c3ad37578 Mon Sep 17 00:00:00 2001 From: Egor Merkushev Date: Sun, 1 Mar 2026 16:05:44 +0300 Subject: [PATCH 3/4] Sync DocC with README badge note removal --- Sources/XcodeMCPWrapper/Documentation.docc/XcodeMCPWrapper.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/Sources/XcodeMCPWrapper/Documentation.docc/XcodeMCPWrapper.md b/Sources/XcodeMCPWrapper/Documentation.docc/XcodeMCPWrapper.md index 2283b1b0..bc1a8aaf 100644 --- a/Sources/XcodeMCPWrapper/Documentation.docc/XcodeMCPWrapper.md +++ b/Sources/XcodeMCPWrapper/Documentation.docc/XcodeMCPWrapper.md @@ -10,8 +10,6 @@ A Python wrapper that enables external AI agents to connect to Xcode via the Mod [![Version](https://img.shields.io/badge/version-0.3.3-blue.svg)](https://github.com/SoundBlaster/XcodeMCPWrapper/releases/tag/v0.3.3) -Version badge maintenance: run `make badge-version` (or `make badge-version-check` in CI). - ## Overview Xcode 26.3+ includes an MCP bridge (`xcrun mcpbridge`) that exposes Xcode's internal capabilities to MCP clients. However, it has a protocol compatibility issue that prevents it from working with strict MCP spec followers like Cursor. From 761549648e3c9bdf68b3a04666a0a2d70c1decc3 Mon Sep 17 00:00:00 2001 From: Egor Merkushev Date: Sun, 1 Mar 2026 16:06:58 +0300 Subject: [PATCH 4/4] Touch README and DocC together for strict sync check --- README.md | 3 ++- Sources/XcodeMCPWrapper/Documentation.docc/XcodeMCPWrapper.md | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 567b0c83..c764b338 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,8 @@ [![Coverage](https://img.shields.io/badge/coverage-92.19%25-brightgreen.svg)](./SPECS/ARCHIVE/P5-T14_Code_Coverage/) [![MCP Registry](https://img.shields.io/badge/MCP%20Registry-io.github.SoundBlaster%2Fxcode--mcpbridge--wrapper-blue)](https://registry.modelcontextprotocol.io) -A Python wrapper that makes Xcode 26.3's MCP bridge compatible with Cursor and other strict MCP-spec-compliant clients. +A Python wrapper that makes Xcode 26.3's MCP bridge compatible with Cursor and +other strict MCP-spec-compliant clients. ## The Problem diff --git a/Sources/XcodeMCPWrapper/Documentation.docc/XcodeMCPWrapper.md b/Sources/XcodeMCPWrapper/Documentation.docc/XcodeMCPWrapper.md index bc1a8aaf..12f53a30 100644 --- a/Sources/XcodeMCPWrapper/Documentation.docc/XcodeMCPWrapper.md +++ b/Sources/XcodeMCPWrapper/Documentation.docc/XcodeMCPWrapper.md @@ -1,6 +1,7 @@ # ``XcodeMCPWrapper`` -A Python wrapper that enables external AI agents to connect to Xcode via the Model Context Protocol (MCP). +A Python wrapper that enables external AI agents to connect to Xcode via the +Model Context Protocol (MCP). ## Source Code