# BCC Roadmap — v1.2.0 readiness + what's next (Cowork planning, 2026-07-07) Written by the Cowork supervisor session. Captures (1) what's ready for the next release, (2) the remaining tracked backlog, and (3) genuinely-missing features worth planning. Priorities are suggestions for AJ, not commitments. --- ## 1. v1.2.0 — ready to ship Five feature branches landed as green, isolated, reviewed PRs (all approved by the supervisor session; each touches only `bcc.py` / `bcc_core.py` / `tests/test_core.py` and passes CI): | PR | Issue | Feature | CI | |----|-------|---------|----| | #25 | #18 + #19 | About dialog (Help menu, repo/issues/license links) + notify-only update checker (`__version__`, numeric version-compare, fail-quiet Gitea releases fetch, throttled once/day startup check) | run 160 ✓ | | #24 | #9 | Restart Claude Desktop button (post-save, Desktop-profile-only, platform-abstracted `restart_claude_desktop()`) | run 159 ✓ | | #23 | #6 | In-app MCP server log viewer (`server_log_path()`, read-only auto-tailing panel per server) | run 158 ✓ | | #22 | #17 | Stale-file detection hardened with size (`ConfigStat` mtime+size fingerprint) | run 157 ✓ | | #21 | #8 | Duplicate-name collision fix — closes a real silent-overwrite on drag-and-drop import | run 164 ✓ | Combined they take the suite from 92 tests toward ~130+ (each PR adds 3–20 tests). ### Merge / release checklist (needs AJ — this is the open decision) The five branches all edit overlapping regions of `bcc.py`/`bcc_core.py`, so they will **not** merge cleanly in sequence without conflict resolution: - **Shared conflict:** #22/#23/#24/#25 each rewrote the one `_normalize_unicode` non-breaking-space line (all behavior-identical). Merge one, then take that line from any branch for the rest. - **Save-flow region:** #21 (import prompt), #22 (stale fingerprint), #24 (restart button) all touch the save path in `bcc.py` — review the merged result once. - **Version bump:** at cut, set both `__version__` (bcc_core.py) and `pyproject.toml` to `1.2.0` and update `test_dunder_version_matches_pyproject`. - **Release is tag-triggered:** push a `v1.2.0` tag → `.github/workflows/release.yml` builds macOS/Windows/Linux and publishes. Don't hand-create the release. Suggested merge order (least- to most-conflict-prone): **#21 → #22 → #23 → #24 → #25**. Recommend AJ does the merges + conflict resolution locally (cleaner than the Gitea API for overlapping diffs), or greenlights the supervisor to merge sequentially and patch conflicts on each branch via the API. --- ## 2. Remaining tracked backlog (open issues) **Windows-specific — deferred (can't build/test in the Linux/mac sandbox):** - **#20** Windows release shows no app icon (P?) — build-config fix in `bcc.spec` / `release.yml`; needs a Windows build to verify. Low risk, cosmetic. - **#7** Windows MSIX virtualized-path detection (P1) — config edits silently ignored on MSIX installs. Core path-detection is unit-testable; the runtime behavior needs a real MSIX Windows box. Genuinely valuable (silent failure class). - **#13** Windows process-tree kill is best-effort (P1) — follow-up refinement to #9; hard to verify without Windows. **Deferred by design:** - **#5** Cross-client support (Cursor `.cursor/mcp.json`, Windsurf `~/.codeium/windsurf/mcp_config.json`, VS Code `servers` key) — P1 but a behemoth; its own branch, revisit after single-client UX is solid. Not a v1.2 item. - **#10** Server catalog / one-click add — P2, design-first. See §3 overlap with search. --- ## 3. Genuinely-missing features (not yet tracked) — planning candidates Grounded against what already exists (enable/disable toggle, duplicate-server, `_disabledMcpServers` round-trip, backup/restore, spawn-test, secret masking, JSON repair pipeline — all shipped, so not repeated here). **P1 candidates** 1. **Server search / filter box.** Once a user has many servers (and especially once #10's catalog lands), there's no way to filter the list. Small, high-utility: a `QLineEdit` above the table filtering by name/command. Pure-ish; testable filter fn in core. 2. **"Test all" / health column.** Extends spawn-test (#2) + log viewer (#6): a status dot per server (untested / ok / crashed) and a one-click "test all". Turns three separate features into an at-a-glance dashboard — the single biggest "is my config actually working?" answer. 3. **Project-level `.mcp.json` discovery (Claude Code).** Claude Code reads project `.mcp.json` files; BCC only sees the global config. Detect and offer to edit the project file when relevant. Previously listed "not in backlog" — worth reconsidering now that Claude Code support is solid. **P2 candidates** 4. **`${VAR}` / `.env` environment-variable expansion.** Previously declined (AJ's call). Revisit only if secret-handling demand grows — pairs with keychain below. 5. **OS keychain integration for secrets.** Previously declined. Bigger lift; would let env secrets live outside the JSON entirely. Design-first if pursued. 6. **Config schema/lint for well-known servers.** Warn on obvious mistakes (missing `command`, `args` not a list, unknown top-level keys) beyond the JSON-repair layer. 7. **Theming / dark-mode follow-through.** Style constants (`MUTED`/`ACCENT`/`GOOD`) already exist; a proper light/dark toggle is a polish item. **Explicitly out (recorded decisions):** renaming BCC (deferred until cross-client actually ships — do not raise before then). --- ## 4. Suggested next sprint (after v1.2.0 ships) 1. Merge + release v1.2.0 (decision above). 2. **#7 MSIX detection** — highest-value untracked-runtime P1; land the testable core path-detection now, gate the runtime behavior behind a Windows verification. 3. **Server search/filter (§3.1)** + **Test-all health column (§3.2)** — small, high daily-utility, and they compound with the log viewer/spawn-test already in 1.2. 4. Design pass on **#10 catalog** and **#5 cross-client** (both need design before code).