Skip to content

feat: connect managed MCP clients through independent Nova.app - #39

Merged
bigduu merged 1 commit into
masterfrom
nova/feat/33-managed-mcp
Sep 5, 2026
Merged

bigduu merged 1 commit into
masterfrom
nova/feat/33-managed-mcp

Conversation

@bigduu

@bigduu bigduu commented Sep 5, 2026

Copy link
Copy Markdown
Owner

Summary

The Nova plugin previously ran desktop APIs directly in Bamboo/Bodhi's process chain on macOS. It now runs nova mcp: macOS connects to the independently installed Nova.app before any desktop initialization or permission request; Windows and Linux retain the existing stdio server.

An unavailable app fails with installation and Nova-only reconnection guidance instead of falling back to host-owned desktop APIs. Existing direct CLI, --connect, HTTP, and the optional Chrome DevTools launcher remain compatible. Documentation explains independent app installation, keeping Bodhi open during reconnection, and the remaining signed-release/TCC upgrade acceptance gates. The published v0.2.1 release is unchanged and predates this entrypoint.

Closes #33. Part of bigduu/Zenith#185.

Test Plan

  • Real connector processes complete initialize/tools-list/ping while stdin remains open; two different plugin connector PIDs reuse one test-owned service.
  • Missing-service tests fail closed without launching installed apps, touching desktop APIs, or corrupting MCP stdout. CLI tests reject conflicting modes; Linux CI now executes the managed stdio path.
  • Local: library 106, CLI 3, managed transport 3, DevTools launcher 2, extension 122, and native-host 30 tests passed.
  • Formatting, diff checks, strict macOS and Windows ARM64 all-target Clippy, and release/static/mock packaging checks passed.
  • Full existing macOS app/stdio suites and Linux execution are covered by CI. Windows validation here is cross-compilation, not Windows GUI execution.
  • Real signed installation, permission grants, and Bodhi/Nova upgrade acceptance are tracked separately in [nova] feat: verify signed app distribution and host upgrade permissions #36; they are not claimed by the hermetic transport tests.

Screenshots

Not applicable: this slice changes CLI/plugin routing and documentation; no graphical UI is changed.

@bigduu

bigduu commented Sep 5, 2026

Copy link
Copy Markdown
Owner Author

Independent agent review completed for exact head 7f18e07a01cbed78b32b4f0c008c53bb49eb1557 against 67831322dbed19de754f31768c3231ee582c1aa8.

No blocking finding introduced by the diff or required for #33's acceptance slice. The reviewer traced macOS's early pure-connector return, non-macOS stdio, manifest compatibility, ongoing streaming, independent service lifetime and the explicit source/release/TCC limits in documentation.

Independent local verification: 3 CLI tests and 3 managed transport tests passed. Additional real-process fixture probes passed for simultaneous connectors, keeping the second usable after the first exits, and insecure-runtime-directory rejection with clean MCP stdout.

Current exact-head CI: all six jobs passed in https://github.com/bigduu/Nova/actions/runs/33946225704, including the existing macOS app-service/stdio suite and the new native Linux managed-stdio test.

The pre-existing connector EOF / blocking stdin lifetime issue was reproduced through both the new entrypoint and unchanged --connect; it is recorded separately in #40. It does not change this PR's explicit manual-reconnection contract. Signed installation and real TCC upgrade verification remain in #36.

@bigduu bigduu added review:agent Agent review complete; human final review may proceed and removed review:needed Waiting for review labels Sep 5, 2026
@bigduu
bigduu merged commit 8f029d2 into master Sep 5, 2026
6 checks passed
@bigduu
bigduu deleted the nova/feat/33-managed-mcp branch September 5, 2026 05:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

review:agent Agent review complete; human final review may proceed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[nova] feat: connect managed MCP clients through independent Nova.app

1 participant