[3/3] Add thin structured-action adapters with explicit resumable conversation binding - #2993
Draft
George Ng (GeorgeNgMsft) wants to merge 3 commits into
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Preserve the shared Dispatcher contracts, user interactions and result envelopes across MCP, Direct mode and the native command consumer. Add offline protocol integration and lifecycle coverage. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
George Ng (GeorgeNgMsft)
added this pull request to stack #2994
September 11, 2026 07:20
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.
This PR lets Copilot find and run TypeAgent actions directly, passing details such as names, lists, and file paths without turning them into command text. Actions that need permission pause for the user's answer, and Copilot receives the full results or a clear explanation of what failed. It also keeps each connection tied to the right conversation and avoids accidentally repeating an action after a connection drops. Normal natural-language requests and recording commands continue to work through their existing path.
This final layer connects the shared structured-action service to the existing Copilot MCP server, Direct mode's persistent structured bridge, and the native command consumer. Copilot can discover compact summaries, fetch one closed contract, and execute concrete typed inputs without command-string serialization or mandatory status/schema-list stages. Ordinary Direct natural-language prompts and recording directives remain on their existing intent-resolution path. This PR is based on
georgengmsft-guarded-action-execution(#2992); it does not supersede or close #2973 by itself.Validation
eff2a883c63fb96f58909f64657eafefa4bc83eband ultimate basec9eeb933b317afe2e29a432b325eabf02e8c1871. No new violations, cycles, focused tests or skips. Existing 11 circular baseline exceptions retained. Pinned changed-file formatting passed across the full stack.Explicit limits
Stdio has no intrinsic Copilot conversation identity. Direct's structured caller is the existing persistent MCP bridge, not the one-shot NL hook. A fresh process cannot recover a previous process's capability from public conversation text. Shutdown does not assert cancellation or rollback. Raw PowerShell flow steps,
system.config.toggleAgent, andsystem.config.enterAgentPriorityModeremain explicitly unsupported on the structured path. Legacy NL interactions cannot be continued with structured operation IDs. The existing unauthenticated loopback host trust model is unchanged.