Repository navigation
feat(mcp): resolve room-scoped servers at native OMP connection startup - #854
Closed
bandzalkin wants to merge 75 commits into
Closed
bandzalkin wants to merge 75 commits into
bandzalkin wants to merge 75 commits into
Conversation
Give the repeated tool-completion and privacy checks one helper, and name the ACP call record so activity identity is not a bare tuple. Co-authored-by: Cursor <cursoragent@cursor.com>
This was referenced Oct 19, 2026
github-actions Bot
pushed a commit
to bandzalkin/band-sdk-python
that referenced
this pull request
Oct 19, 2026
Source-Base: 0d851ac Source-Head: 873a59a Upstream-PR: band-ai#854
bandzalkin
force-pushed
the
feat/omp-owned-mcp-resolver
branch
from
October 20, 2026 06:36
873a59a to
a72bd7e
Compare
bandzalkin
requested review from
AlexanderZ-Band and
amit-gazal-band
as code owners
October 20, 2026 06:36
github-actions Bot
pushed a commit
to bandzalkin/band-sdk-python
that referenced
this pull request
Oct 20, 2026
Source-Base: d87d7c5 Source-Head: a72bd7e Upstream-PR: band-ai#854
…t-activity-detail-to-the-platform-INT-1744 Keep main's BackendTurns ownership of OpenCode cancellation and register the watcher as a turn worker so activity reporting outlives the handler. Reporter unit tests move to tests/runtime/workingreporter; main's workingstate package keeps the execution-level tests. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AgnNR4uiqD787Bg3yKdZpL
bandzalkin
added a commit
to bandzalkin/band-sdk-python
that referenced
this pull request
Oct 20, 2026
Select upstream band-ai#841 (activity producers, carrying band-ai#839/band-ai#840 via forward merges), band-ai#874 after 841 (tool-name emit gate with the I-08 name clamp), the host stack ahead of band-ai#763, band-ai#763 after 874 (native OMP with the tool/permission activity hooks and omp_acp retirement), and band-ai#854/band-ai#795/band-ai#848 after 763. Replayed from the branches' live heads.
github-actions Bot
pushed a commit
to bandzalkin/band-sdk-python
that referenced
this pull request
Oct 21, 2026
Select upstream band-ai#841 (activity producers, carrying band-ai#839/band-ai#840 via forward merges), band-ai#874 after 841 (tool-name emit gate with the I-08 name clamp), the host stack ahead of band-ai#763, band-ai#763 after 874 (native OMP with the tool/permission activity hooks and omp_acp retirement), and band-ai#854/band-ai#795/band-ai#848 after 763. Replayed from the branches' live heads.
github-actions Bot
pushed a commit
to bandzalkin/band-sdk-python
that referenced
this pull request
Oct 21, 2026
Source-Base: 2dc539a Source-Head: 3bd7f14 Upstream-PR: band-ai#854
Live capture on the platform showed the OMP hooks posting tool_call activity details even when Emit.TOOL_CALLS was off: the activity channel is separate from event narration, so the hook sites need the same gate the narration already had. I-01/I-02: with tool reporting off, no tool kind or name may reach the reporter. Tests now pin the gate directly (activity follows the switch) instead of the incorrect independence premise. Co-Authored-By: Claude <noreply@anthropic.com>
github-actions Bot
pushed a commit
to bandzalkin/band-sdk-python
that referenced
this pull request
Oct 21, 2026
Select upstream band-ai#841 (activity producers, carrying band-ai#839/band-ai#840 via forward merges), band-ai#874 after 841 (tool-name emit gate with the I-08 name clamp), the host stack ahead of band-ai#763, band-ai#763 after 874 (native OMP with the tool/permission activity hooks and omp_acp retirement), and band-ai#854/band-ai#795/band-ai#848 after 763. Replayed from the branches' live heads.
github-actions Bot
pushed a commit
to bandzalkin/band-sdk-python
that referenced
this pull request
Oct 21, 2026
Source-Base: 41fb96e Source-Head: 2cf7482 Upstream-PR: band-ai#854
The mask wrapper was attached only when the flag was already off, so an adapter that binds its observer before the emit sync (codex's item/started path) kept reporting named tool_calls after the choice was turned off. The observer now always wraps and reads the live flag on every report; the hook site gates on the OMP branch remain as the second guard. Red-first test: observer bound with names on, choice flipped off mid-turn, tool report must arrive nameless. Co-Authored-By: Claude <noreply@anthropic.com>
github-actions Bot
pushed a commit
to bandzalkin/band-sdk-python
that referenced
this pull request
Oct 21, 2026
Select upstream band-ai#841 (activity producers, carrying band-ai#839/band-ai#840 via forward merges), band-ai#874 after 841 (tool-name emit gate with the I-08 name clamp), the host stack ahead of band-ai#763, band-ai#763 after 874 (native OMP with the tool/permission activity hooks and omp_acp retirement), and band-ai#854/band-ai#795/band-ai#848 after 763. Replayed from the branches' live heads.
github-actions Bot
pushed a commit
to bandzalkin/band-sdk-python
that referenced
this pull request
Oct 21, 2026
Source-Base: 3098914 Source-Head: 45a012b Upstream-PR: band-ai#854
F-8 closure evidence: an observer bound at turn start now reads the gate flag at report time (d764959, covered by the flip-after-binding test), and a stale continuation report after the next turn takes activity ownership is fenced before it can name anything. The two guards seal R-02 for OMP background-yield continuations; no production change is required.
Contributor
Author
|
Closing: superseded by in-repo PR(s) #899 with the same content, one concern each and a clean single-author history. |
bandzalkin
added a commit
to bandzalkin/band-sdk-python
that referenced
this pull request
Oct 21, 2026
Select upstream band-ai#841 (activity producers, carrying band-ai#839/band-ai#840 via forward merges), band-ai#874 after 841 (tool-name emit gate with the I-08 name clamp), the host stack ahead of band-ai#763, band-ai#763 after 874 (native OMP with the tool/permission activity hooks and omp_acp retirement), and band-ai#854/band-ai#795/band-ai#848 after 763. Replayed from the branches' live heads.
bandzalkin
added a commit
to bandzalkin/band-sdk-python
that referenced
this pull request
Oct 21, 2026
Select upstream band-ai#841 (activity producers, carrying band-ai#839/band-ai#840 via forward merges), band-ai#874 after 841 (tool-name emit gate with the I-08 name clamp), the host stack ahead of band-ai#763, band-ai#763 after 874 (native OMP with the tool/permission activity hooks and omp_acp retirement), and band-ai#854/band-ai#795/band-ai#848 after 763. Replayed from the branches' live heads.
github-actions Bot
pushed a commit
to bandzalkin/band-sdk-python
that referenced
this pull request
Oct 21, 2026
Select upstream band-ai#841 (activity producers, carrying band-ai#839/band-ai#840 via forward merges), band-ai#874 after 841 (tool-name emit gate with the I-08 name clamp), the host stack ahead of band-ai#763, band-ai#763 after 874 (native OMP with the tool/permission activity hooks and omp_acp retirement), and band-ai#854/band-ai#795/band-ai#848 after 763. Replayed from the branches' live heads.
github-actions Bot
pushed a commit
to bandzalkin/band-sdk-python
that referenced
this pull request
Oct 21, 2026
Select upstream band-ai#841 (activity producers, carrying band-ai#839/band-ai#840 via forward merges), band-ai#874 after 841 (tool-name emit gate with the I-08 name clamp), the host stack ahead of band-ai#763, band-ai#763 after 874 (native OMP with the tool/permission activity hooks and omp_acp retirement), and band-ai#854/band-ai#795/band-ai#848 after 763. Replayed from the branches' live heads.
github-actions Bot
pushed a commit
to bandzalkin/band-sdk-python
that referenced
this pull request
Oct 21, 2026
Select upstream band-ai#841 (activity producers, carrying band-ai#839/band-ai#840 via forward merges), band-ai#874 after 841 (tool-name emit gate with the I-08 name clamp), the host stack ahead of band-ai#763, band-ai#763 after 874 (native OMP with the tool/permission activity hooks and omp_acp retirement), and band-ai#854/band-ai#795/band-ai#848 after 763. Replayed from the branches' live heads.
github-actions Bot
pushed a commit
to bandzalkin/band-sdk-python
that referenced
this pull request
Oct 22, 2026
Select upstream band-ai#841 (activity producers, carrying band-ai#839/band-ai#840 via forward merges), band-ai#874 after 841 (tool-name emit gate with the I-08 name clamp), the host stack ahead of band-ai#763, band-ai#763 after 874 (native OMP with the tool/permission activity hooks and omp_acp retirement), and band-ai#854/band-ai#795/band-ai#848 after 763. Replayed from the branches' live heads.
github-actions Bot
pushed a commit
to bandzalkin/band-sdk-python
that referenced
this pull request
Oct 22, 2026
Select upstream band-ai#841 (activity producers, carrying band-ai#839/band-ai#840 via forward merges), band-ai#874 after 841 (tool-name emit gate with the I-08 name clamp), the host stack ahead of band-ai#763, band-ai#763 after 874 (native OMP with the tool/permission activity hooks and omp_acp retirement), and band-ai#854/band-ai#795/band-ai#848 after 763. Replayed from the branches' live heads.
github-actions Bot
pushed a commit
to bandzalkin/band-sdk-python
that referenced
this pull request
Oct 22, 2026
Select upstream band-ai#841 (activity producers, carrying band-ai#839/band-ai#840 via forward merges), band-ai#874 after 841 (tool-name emit gate with the I-08 name clamp), the host stack ahead of band-ai#763, band-ai#763 after 874 (native OMP with the tool/permission activity hooks and omp_acp retirement), and band-ai#854/band-ai#795/band-ai#848 after 763. Replayed from the branches' live heads.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This resolves external MCP servers when each native OMP room connection starts, so a new connection uses the current room-scoped servers and credentials rather than a static adapter-wide snapshot. Resolution runs under the same owner that acquires and retires the connection.
resolve_mcp_serversconstructor callback, an async(workspace: str) -> Mapping[str, OmpMcpServer]. Call it with the claimed room workspace before creating an overlay or process, and use the same snapshot for the overlay and native readiness checks.bandendpoint alongside the resolved external set, and reject resolver results that use that reserved name. Keep provider-environment precedence, owner-only overlays, relative workspace paths and session restoration intact.Depends on #763. This does not extend retry guarantees to arbitrary overlay-deletion callback failures.
Validation
Regression coverage includes credential rotation between connections, live-session reuse, empty/error results, matching readiness snapshots, reserved Band names, restored sessions, shutdown during resolution, deadline/cancellation races and failed-native-close retries.