[pull] main from microsoft:main - #1657
Merged
Merged
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
chat: limit file completion search results Cap file completion searches at 100 results in both the workbench and Agents Window to avoid materializing excessively large suggestion lists. (Written by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* agentHost: sync linked skill files Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * agentHost: sync complete skill directories Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d60c8636-9aaa-42ee-b94f-e7daba0c32aa * agentHost: hash synced files as binary Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d60c8636-9aaa-42ee-b94f-e7daba0c32aa * test: compare synced origins by URI value Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d60c8636-9aaa-42ee-b94f-e7daba0c32aa * Address skill sync review feedback Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 54febce8-3c95-4100-bf37-0e38cca467d1 * Harden synced skill directory traversal Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 54febce8-3c95-4100-bf37-0e38cca467d1 --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: d60c8636-9aaa-42ee-b94f-e7daba0c32aa Copilot-Session: 54febce8-3c95-4100-bf37-0e38cca467d1
* sessions: refine single-pane details behavior Keep the side-pane boundary stable when toggling docked details, align new-session editor closing with existing sessions, and reveal details when Empty Files opens. Also order the details action before maximize and allow workspace-backed draft sessions to open Changes. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * sessions: preserve hidden details after Empty Files Reveal docked Details only when Empty Files becomes active or visible, rather than on unrelated reactive updates, and clarify the last-editor close contract. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Show execution subagent turns remaining Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 62f6758b-a71d-4533-8f3d-9028975772bf
* sessions: preserve background layouts per color scheme Store and restore dark and light Agents chat background image layouts independently. Keep layout persistence machine-local alongside the corresponding image settings and cover theme switching and preview restoration. Fixes #333690 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * sessions: restore active background layout after preview Restore the configured layout for the color scheme that is active when the background layout picker is cancelled. This avoids applying a stale preview if automatic theme detection switches schemes while the picker is open. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * sessions: simplify background layout preview restoration Keep cancellation tied to the layout captured when the picker opens instead of exposing configuration restoration through the background service. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
chat: skip redundant customization location picker Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
agentHost: disable flaky Codex plugin discovery E2E (Written by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep the last complete all-folder summary when any repository diff is unavailable instead of publishing and persisting a partial aggregate.\n\nRefs #332694 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* remote tunnels: unify agent window access Use one Remote Tunnel Access state for the editor and Agents window. - Route the Agents window toggle through the Remote Tunnel commands. - Use GitHub authentication without extra pickers or service installation. - Keep tunnel rename UI and synchronize tunnel status across both surfaces. - Remove separate Agent Host tunnel hosting services and process modes. - Preserve web discovery with a browser-safe Remote Tunnel service. (Commit message generated by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * remote tunnels: fix agent window initialization Prevent early command execution and false connection notifications in the Agents window. - Register the titlebar action after Remote Tunnel commands are available. - Seed the initial sharing state before enabling transition notifications. - Add tests for initial snapshots and status events during initialization. (Commit message generated by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Agent Host changes for osortega/agents/sandbox-permission-prompt-review * Address review on sandbox write permission rendering Translate the write permission's invocationMessage, not just the confirmation message. AgentSessionApprovalModel reads invocationMessage for non-terminal approvals, so the sessions list showed the host's generic "Edit file" while the confirmation card showed the file. Both now derive from the same value. Normalize a Windows host path before formatting the link. URI.file only rewrites separators when the client runs Windows, so a Windows host paired with a non-Windows client collapsed C:\repo\file.ts into a single-segment basename and an unresolvable URI. Revert the chatToolConfirmationSubPart change. It surfaced the raw input for plain-string confirmations, but that editor is writable while agent-host approval dispatch never sends editedToolInput, so edits were silently discarded. Translating the message removes the need for it, and this no longer touches shared rendering code. Also stop emitting the raw input for writes: it repeated the file the message already names. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Drop the write permission adaptation The write path restated the host's file name as a markdown link so the confirmation card and sessions list would show a file pill. That duplicates information a host can supply directly, so it would have become dead code rather than a lasting fix. Tracked separately with the agent host team. The command path stays. It is not compensating for a host deviation: the Agent Host Protocol has no field that identifies a pending tool call as a shell command, so `_meta.toolKind` (a VS Code-private hint a remote host has no reason to set) is the only signal, and without the fallback a sandbox command approval shows the agent's intention instead of the command being approved. Reverts the getEditFileMessage extraction, the write branch and its Windows path normalization, the write fields on the permission meta reader, and the three write tests. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
#333902) * agentHost: do not revoke shared credentials when a client has no token The agent host keeps one credential for each protected resource, and all connected clients share it. A client that starts before its authentication provider is ready resolves no token and sends an empty token. An empty token means revocation. A new window therefore removed a credential that another window supplied. All local providers lost the credential and stopped advertising models. The host also stayed silent about the loss. It published an empty model list and waited. Nothing told the other clients to supply a token again, so the model picker stayed empty until the user reloaded the window. - Replace the token lookup result with three states: resolved, signed out, and unavailable. The authentication pass now sends no `authenticate` request unless it resolves a token. This needs no protocol change and is correct against an unchanged host. - Drive revocation from an explicit session removal instead of an empty read. An absent token cannot show the difference between "not loaded yet" and "signed out". - Re-resolve the credential after a session removal. A provider can hold more than one account, so the removal of one account must not revoke a credential that another account still supplies. - Retry authentication when an authentication provider registers, so a deferred token is sent as soon as the provider is ready. - Set `authenticationRequired` when the Copilot agent loses its GitHub credential. This is the only moment the agent knows for certain that it is unauthenticated. The resulting SDK failure is a local `InvalidArg` and not a 401, so it never reached the existing 401 path. - Move the authentication listeners to the connection store. They were registered for each agent, which made one duplicate listener pair for every registered agent. The `auth/required` notification and the client recovery path already existed, and the recovery path already clears the token cache. The host now raises that notification, so a client that still holds a valid token repairs the shared state without a window reload. Validated against a live agent host with two protocol clients. A client that sends an empty token and disconnects makes the host raise `auth/required` after 3ms. The remaining client answers it, and the model count returns from 0 to 23 after 1.76 seconds, with no reload. Fixes #332020 (Commit message generated by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * agentHost: narrow credential revocation to the removed session Applies review feedback on the shared-credential revocation path. - Reconcile only the resources that a removed session could satisfy. One provider commonly serves several resources with different scope sets, and a resource the removed session never covered must not be re-evaluated against this client's view. Another client can be the one that supplies its credential. - Keep the Copilot authentication requirement raised when a second revocation arrives while the agent is already tokenless. `authenticate` cleared the requirement before `_applyGitHubToken`, which returns early for an unchanged token, so a duplicate revocation silenced the recovery notification. The host forwards every revocation to every provider, so duplicates are normal. - Send the empty revocation token to remote hosts without a connection token transform. The cloud sandbox customization replaces an unsealed token with the current sealed token, which turned a sign-out into a re-authentication and left the sandbox with a credential the user had revoked. (Commit message generated by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * agentHost: report a revoked Copilot credential as expired The equired reason means the client has not authenticated yet. A cleared credential was valid before, which is what the �xpired reason describes, and it matches the reason the session auth-rejection path already reports. (Commit message generated by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
) * Agent Host changes for osortega/agents/vscode-sandbox-vs-copilot-analysis * Address review feedback on sandbox model enrichment Wait for a pending sandbox model catalog before the first turn. A freshly connected sandbox publishes its models asynchronously, so an empty snapshot is "not yet" rather than "no": resolve via `desiredModelResolution` and await `onDidChangeModels` while it reports `pending`, falling back to the agent host's default only on `unavailable` or after a bound. The identifier is now built from the snapshot's `modelTarget` so resolution matches how sandbox models are actually published. Republish on any Copilot catalogue change instead of fingerprinting a subset of the enriched fields, which silently swallowed a CAPI price refresh that left ids and token limits untouched. Filtering the event by vendor is enough to prevent a republish loop: a host's own vendor is always a session-type id. Forward `ConfigPropertySchema.readOnly` again, and give it a declared home on `ILanguageModelConfigurationSchema` so a host-declared immutable option can no longer be dropped silently. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Highlight generic tool output by content type Use tool result MIME types to select the generic output editor language, with Agent Host JSON classification for object-shaped text output. Preserve separate editors for adjacent outputs with different languages. (Written by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Normalize tool output MIME whitespace Trim the normalized media-type token so valid MIME values with surrounding whitespace still select the expected editor language. Cover leading whitespace and whitespace before parameters. (Written by Copilot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…333896) * Improve perf of legacy Copilot CLI session listing & migration * Feedback updates
* Add Agent Host prompt overrides Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Improve prompt override setting Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix YAML prompt override edge cases Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )