Skip to content

feat(mcp): resolve room-scoped servers for Copilot connections - #853

Closed
bandzalkin wants to merge 6 commits into
band-ai:mainfrom
bandzalkin:feat/copilot-acp-mcp-resolver
Closed

bandzalkin wants to merge 6 commits into
band-ai:mainfrom
bandzalkin:feat/copilot-acp-mcp-resolver

Conversation

@bandzalkin

@bandzalkin bandzalkin commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Why

Copilot and Cursor need a current room-scoped MCP configuration when an ACP connection starts. A process-wide startup snapshot cannot reflect refreshed credentials or changes to the servers available to a room. Resolving that configuration also needs the same cancellation and cleanup ownership as native session setup.

What changes

  • Add an optional asynchronous MCP resolver to the shared ACP client and expose it through the Copilot and Cursor adapters. Resolve and freeze the external server snapshot inside the shared connection initializer, while preserving Band's reserved endpoint and capability checks.
  • Keep concurrent setup callers on one owned initializer. Cancellation, abandoned setup, and failed close retain custody of the native runtime until cleanup settles.
  • Preserve accepted same-room work when a setup callback requests cleanup: the callback and its accepted caller can unwind, unrelated sibling work still cancels, and final release waits for accepted work to finish.
  • Require open admission before launching or resolving MCP configuration. Configuration of an already-created session may finish only on the same resident generation, with runtime identity, cancellation, and abandonment checks intact.

Validation

Regression coverage includes MCP capabilities and snapshot isolation, concurrent setup, cancellation, self-stop, wake, and physical process reaping. I also exercised an actual ACP subprocess with a loopback MCP server through callback-triggered cleanup.

github-actions Bot pushed a commit to bandzalkin/band-sdk-python that referenced this pull request Oct 20, 2026
github-actions Bot pushed a commit to bandzalkin/band-sdk-python that referenced this pull request Oct 21, 2026
github-actions Bot pushed a commit to bandzalkin/band-sdk-python that referenced this pull request Oct 21, 2026
github-actions Bot pushed a commit to bandzalkin/band-sdk-python that referenced this pull request Oct 21, 2026
@bandzalkin

Copy link
Copy Markdown
Contributor Author

Closing: superseded by in-repo PR(s) #896 with the same content, one concern each and a clean single-author history.

@bandzalkin bandzalkin closed this Oct 21, 2026
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.

2 participants