Repository navigation
fix(mcp): preserve open viewer pane when the app acknowledgement is lost (SW-10) - #30752
Merged
teamleaderleo merged 3 commits intoNov 2, 2026
Merged
Conversation
This was referenced Nov 1, 2026
|
Found 6 test failures on Blacksmith runners: Failures
|
teamleaderleo
temporarily deployed
to
artifacts
November 1, 2026 11:22 — with
GitHub Actions
Inactive
teamleaderleo
temporarily deployed
to
sentry-dsyms
November 1, 2026 11:22 — with
GitHub Actions
Inactive
Contributor
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
red: cmux-next checks (god files, concurrency, crash safety, l10n); NEW: Shipped in:
|
teamleaderleo
temporarily deployed
to
artifacts
November 1, 2026 11:43 — with
GitHub Actions
Inactive
teamleaderleo
temporarily deployed
to
artifacts
November 1, 2026 11:43 — with
GitHub Actions
Inactive
teamleaderleo
temporarily deployed
to
artifacts
November 1, 2026 12:06 — with
GitHub Actions
Inactive
Collaborator
Author
|
Owned by an agent session · session |
…cknowledgement (red first) Agent-Session: https://cmux.com/deeplink/agent?id=aid-fe81763482f9a057a498
teamleaderleo
force-pushed
the
sw10/mcp-open-preserve-uncertain-20261101
branch
from
November 2, 2026 01:33
ce8ce54 to
b340078
Compare
teamleaderleo
temporarily deployed
to
ci-routing-agent
November 2, 2026 01:33 — with
GitHub Actions
Inactive
teamleaderleo
marked this pull request as ready for review
November 2, 2026 02:01
teamleaderleo
temporarily deployed
to
ci-routing-agent
November 2, 2026 02:05 — with
GitHub Actions
Inactive
teamleaderleo
added a commit
that referenced
this pull request
Nov 2, 2026
…n open retries [carry of #30752 + #30766] (#31558) * test(mcp): keep a viewer pane when action.run applies but loses its acknowledgement (red first) * fix(mcp): retain a newly opened pane when the app outcome is uncertain * test(mcp): identical open IDs replay identical split and viewer action keys * feat(mcp): reuse stable stage keys for whole open retries * test(mcp): match the open recovery hint's actual wording Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-5cc5f183969be11a815e --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: cmux-bot[bot] <348531757+cmux-bot[bot]@users.noreply.github.com>
lawrencecchen
added a commit
that referenced
this pull request
Nov 3, 2026
The in_progress error of open keeps the app stage's idempotency_key, as #30752's open_splits_and_opens_in_one_call asserts; the retry key question goes to its author. Clippy: drop the unneeded super:: qualification.
This branch was previously deployed
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.
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
SW-10 — Preserve an MCP viewer when the app applied
openbut its acknowledgement was lostFixes the outstanding correctness review on merged #29080.
What was wrong
cmux mcp open({kind:"file", where:"below", ...})first splits a pane, then issues the app'saction.runto open a viewer. The MCP app transport can returnstate: "in_progress"when a reply is lost after the app accepted the action.open_tool.rs::call_openused to treat everyisError:trueas a definitive refusal and immediatelypane_closeits split, potentially deleting the viewer that successfully opened.The same danger exists when a sticky-column update's response is uncertain.
Fix
failed_open, which checks the existing typed MCP failure state.in_progress, preserve the created pane; includecreated_pane, the original appidempotency_key(if present), and a recovery instruction in the MCP error receipt. The content text and structuredContent are generated from the same envelope.undo_splitcleanup behavior.This is a deliberately bounded correctness repair. The separate larger improvement—stable whole-
openIDs, guarded cleanup after user content arrives, and resumable multi-stage split+open—remains open. This patch refuses to destroy a possibly successful viewer when an acknowledgement is uncertain.Test-first verification
The first commit (
af641e542a63c7007a3ba4e83ff16285f82bfd51) adds an explicit lost acknowledgement afteraction.runscenario to the existing MCP open integration-style unit test. It asserts:in_progressreceipt, original action key, created pane ID, recovery guidance and zeropane.closecalls. The test's original definite-refusal branch continues to assert pane cleanup. Implementation follows ince8ce541bdf09d1d89c9775293f0c70003afa13d.Source base:
feat-cmux-next@5f817fac2d9f8afa248f8be25064570c0f7677fd. Two files changed (MCP open code and MCP tests). No duplicate action registry, transport or global idempotency implementation.Current verification: exact GitHub code/diff reviewed. This chat cannot run Rust locally; hosted PR checks and independent review are required before landing. Suggested focused test:
cargo test -p cmux-tui --lib cli::mcp::tests::open_splits_and_opens_in_one_call, then the MCP test family and panic/clippy guard on the exact head.SW-10 issue