Skip to content

feat(agent): connect Vana through native local MCP OAuth - #1313

Open
AnthonyRonning wants to merge 2 commits into
masterfrom
codex-vana-poc-maple
Open

AnthonyRonning wants to merge 2 commits into
masterfrom
codex-vana-poc-maple

Conversation

@AnthonyRonning

@AnthonyRonning AnthonyRonning commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Maple Agent can now connect to Vana Desktop’s Local MCP endpoint, approve selected data in Vana, and enable Vana per chat. MCP traffic stays on loopback without requiring Vana’s remote tunnel or a Node/wallet-signing helper.

Changes

  • Add a standard-size Vana card at the bottom of Integrations, under Supported MCP integrations. Link to Vana Desktop and the local-agent setup guide; keep custom MCP servers separate, with advanced editing and removal available in Manage. Vana owns data-scope approval; Maple controls per-chat selection and defaults.
  • Implement native OAuth/PKCE, a bounded loopback callback, refresh and revocation handling. Discovery, registration, token and data requests stay on the exact local origin, without redirects or inherited proxies. Remote-origin setup is rejected.
  • Keep credentials in the authoritative host, bound to account, endpoint and connection generation. Add the Store migration, integrity catalog, recovery handling for valid credentials/revoked-session markers, and bounded account cleanup.
  • Include portable setup documentation and explicitly fictional ChatGPT/Oura fixtures. Debug bundle staging also drains Mach-O load-command input during its rpath checks.

Validation

  • nix develop --no-update-lock-file -c just ci passed locally: formatting, metadata tests, all four warning-denied Clippy variants, warning-denied builds, workspace tests and headless tests. Core: 788 passed; native app: 1,066 passed; headless app: 326 passed. Existing ignored tests remain ignored.
  • macOS debug bundle built and its ad-hoc signature verified. Live smoke against Vana 1.63.0 exercised native consent, approved ChatGPT memory/conversation reads, Oura denial, revocation, reconnect and saved-credential reuse after restart, with the tunnel disabled. Fresh approved/denied reads were repeated on the final bundle after the Store fixes.
  • Plain/encrypted disposable-store tests cover credential binding, rotation races, integrity checks, recovery preservation/refusal and cleanup limits.
  • Native UI smoke confirmed the compact bottom card, separate supported/custom sections, official Vana information/download and setup links, retained local configuration, and advanced editing without saving changes. Application Vim coverage includes the new control order and editing access.

Known limits

The legacy external-wallet test identity can time out during Vana Desktop’s background server registration. A normal Server Retry restored its consent screen; approved local reads continued after the warning recurred. That test identity still needs registration repair for repeatable startup. The setup guide records this observation.

Live smoke was macOS-only. Token-expiry refresh is covered by automated tests; a live expiry cycle was not specifically forced or inspected. Local MCP does not imply offline Vana account/grant/storage services or on-device model processing.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@AnthonyRonning
AnthonyRonning force-pushed the codex-vana-poc-maple branch 2 times, most recently from eb1704a to 1362f21 Compare October 27, 2026 05:00

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant