Skip to content

feat(mcp): resolve room-scoped servers at native OMP connection startup - #798

Open
bandzalkin wants to merge 2 commits into
mainfrom
feat/omp-owned-mcp-resolver
Open

bandzalkin wants to merge 2 commits into
mainfrom
feat/omp-owned-mcp-resolver

Conversation

@bandzalkin

@bandzalkin bandzalkin commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Rebased onto main d7ab3429cbdb (2026-10-15)

Rebased onto current main (after #709, #804, #789/#775, #796 and #802) as its prerequisite's commit plus one commit; head 4c393d0625a0d2d50b205b9d76d2452b3b8b36f6. Applied cleanly on rebased #763.

CHANGELOG.md edits are dropped: Release Please generates it.

Verified at the new head (macOS, Python 3.13): uv sync --all-packages --locked --extra dev, all pre-commit hooks, and the full pytest -q: 8686 passed, 739 skipped. Verification notes further down refer to the previous head.


Summary

Resolve room-scoped external MCP servers at native OMP connection startup, under the same owner that creates and retires the connection. Related: #709.

Changes

  • Resolve one snapshot for each fresh owned connection rather than caching room-dependent ambient servers across connections.
  • Preserve Band's endpoint and secret-safe launch precedence, native RPC readiness, session restoration and cancellation behavior.
  • Retain resolver/startup/cleanup ownership so interrupted startup cannot publish stale state or release resources still owned by a child.
  • Update native OMP configuration documentation and user-facing Unreleased entries. Native migration and protected permission/tool envelopes belong to fix(integrations): preserve native OMP lifecycle and prompt authority #763, not this feature-only delta.

Stack and merge order

Prerequisite: #763 at 242a3c96268ee7f322213656a658ac5bb1c75133.
Exact feature-only range: 242a3c96268ee7f322213656a658ac5bb1c75133..4c393d0625a0d2d50b205b9d76d2452b3b8b36f6.
Merge #763, then #798. This main-targeted branch includes its prerequisite until that merge; the range above is resolver-only. Copilot and Codex/Claude lanes are independent.
All eight feature patches rebased unchanged. The inherited portability corrections calibrate natural decoder depth and prove positive peer/root/descendant settlement instead of requiring exit zero. The Windows launcher-hosted forced-close limit is disclosed in #763 and docs/acp.md; this PR does not make close graceful.

Testing

Prepared head differs from approved/tested ab77e212 only in CHANGELOG.md. At that tested head, permission/RPC/OMP-adapter scope: 142 passed on managed Python 3.13. The prerequisite correction scope passed managed 3.11/3.12/3.13 and fresh non-privileged Linux, with an explicit positively proved no-natural-window skip on 3.11. All five static hooks passed freshly at the prepared head.
Historical pre-correction all-adapter/OMP/registry scope at dd7181bf: 2827 passed, 3 skipped, 56 warnings; not a new-head full-suite claim. Source/index-delta stable patch ID remains 50b5b6044975fc3940661f78580c05438135e3d3, excluding only changelog/fork metadata. No new numeric fork graph is claimed.
send_event remains best-effort, not durable delivery. Local evidence is not native-provider/live-room acceptance or a remote matrix receipt; every new-head CI lane is awaited separately.

@bandzalkin
bandzalkin force-pushed the feat/omp-owned-mcp-resolver branch from dd7181b to a625466 Compare October 14, 2026 00:59
bandzalkin added a commit to bandzalkin/band-sdk-python that referenced this pull request Oct 14, 2026
Source-Base: 4184abb
Source-Head: a625466
Applied-Over: 8fd9ca6
Conflict-Notes: None; exact feature delta, excluding CHANGELOG.md and FORK-CHANGES.md
Upstream-PR: band-ai#798
github-actions Bot pushed a commit to bandzalkin/band-sdk-python that referenced this pull request Oct 14, 2026
Source-Base: 4184abb
Source-Head: a625466
Applied-Over: 8fd9ca6
Conflict-Notes: None; exact feature delta, excluding CHANGELOG.md and FORK-CHANGES.md
Upstream-PR: band-ai#798
bandzalkin added a commit to bandzalkin/band-sdk-python that referenced this pull request Oct 15, 2026
Source-Base: 4184abb
Source-Head: a625466
Applied-Over: fda806c
Conflict-Notes: None; exact feature delta over the ported native OMP lifecycle; retained upstream band-ai#709 and band-ai#804 adaptations from the prerequisite. CHANGELOG.md and FORK-CHANGES.md excluded.
Upstream-PR: band-ai#798
bandzalkin added a commit to bandzalkin/band-sdk-python that referenced this pull request Oct 15, 2026
Source-Base: 4184abb
Source-Head: a625466
Applied-Over: 00f3dfb
Conflict-Notes: None; exact feature delta over the ported native OMP lifecycle; retained upstream band-ai#709 and band-ai#804 adaptations from the prerequisite. CHANGELOG.md and FORK-CHANGES.md excluded.
Upstream-PR: band-ai#798
github-actions Bot pushed a commit to bandzalkin/band-sdk-python that referenced this pull request Oct 15, 2026
Source-Base: 4184abb
Source-Head: a625466
Applied-Over: 00f3dfb
Conflict-Notes: None; exact feature delta over the ported native OMP lifecycle; retained upstream band-ai#709 and band-ai#804 adaptations from the prerequisite. CHANGELOG.md and FORK-CHANGES.md excluded.
Upstream-PR: band-ai#798
@bandzalkin
bandzalkin force-pushed the feat/omp-owned-mcp-resolver branch from a625466 to 4c393d0 Compare October 15, 2026 03:43
@bandzalkin

Copy link
Copy Markdown
Contributor Author

Rebased onto current main (d7ab3429) at 4c393d0625a0; the description's new first section lists the conflict resolutions and the verification at this head.

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

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