Commit Graph

160291 Commits

Author SHA1 Message Date
vritant24
e45ed3dfd5 Agent Host changes for agents/investigate-unit-test-failure-root-cause-898cd05d 2026-06-30 12:00:32 -07:00
Don Jayamanne
2bdc0be5a2 Update @github/copilot and related dependencies to version 1.0.66-2 (#323657)
* Update @github/copilot and related dependencies to version 1.0.66-2

- Bumped @github/copilot to version 1.0.66-2 in package.json and package-lock.json.
- Updated optional dependencies for various platforms to match the new version.
- Adjusted @github/copilot-sdk to version 1.0.5-preview.0.
- Enhanced filtering logic in copilotCLITools.ts to include additional attachment types.

* Enhance attachment rendering in CopilotCLISession with additional GitHub attachment types

* Remove optional suppressResumeEvent property from ICopilotResumeSessionLaunchPlan interface

---------

Co-authored-by: Anthony Kim <62267334+anthonykim1@users.noreply.github.com>
2026-06-30 17:49:47 +00:00
Giuseppe Cianci
c04d3b4d48 Fix Copilot sanity tests (#323721)
* Make Copilot sanity tests mint their own token instead of using static copilot-token

The Copilot sanity tests resolve their Copilot token via
getOrCreateTestingCopilotTokenManager, which prefers VSCODE_COPILOT_CHAT_TOKEN
(set here from the `copilot-token` Key Vault secret) over GITHUB_OAUTH_TOKEN.

`copilot-token` holds a pre-minted Copilot token that is refreshed out-of-band
by a separate scheduled pipeline. When that refresher broke (the GitHub OAuth
secret it reads was rotated/removed during a security incident), `copilot-token`
silently went stale and expired. The static token manager hands the expired
token to CAPI `/models`, which returns 401, leaving no resolved model and
surfacing the misleading "server did not mark a chat fallback model" error.

Drop the static `copilot-token` so the tests fall through to GITHUB_OAUTH_TOKEN
(`capi-oauth-pipeline-token`) and exchange it for a fresh Copilot token on
demand. This path self-refreshes and removes the dependency on the external
refresher.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Re-enable sanity tests and surface model-fetch error

- Re-enable the three Copilot sanity tests that were temporarily skipped in
  #323684 now that token resolution is fixed.
- Surface the underlying model-fetch error (e.g. an expired-token 401) from
  ModelMetadataFetcher resolve methods instead of the misleading
  "server did not mark a chat fallback model" message.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Omit reasoning summary instead of sending invalid 'off' value

#323639 disabled Responses API reasoning summaries by hard-coding
`reasoning.summary = 'off'`, but the Responses API only accepts
'concise', 'detailed', or 'auto' (or omitting the field to disable).
Models such as gpt-5.3-codex reject 'off' with HTTP 400
invalid_request_body, which surfaced as failing Copilot sanity tests
once they could reach the model.

Set summary to undefined so the field is omitted (summaries stay
disabled, as intended) and update the unit test accordingly.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Decouple reasoning-preserve test from disabled summary

The "should preserve reasoning object when thinking is supported" test
relied on the reasoning summary always being present to keep
body.reasoning defined. Now that the summary is omitted, give the test
model reasoning_effort support so body.reasoning is populated via effort,
which is what the test actually means to verify.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* signing commit

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-30 17:48:12 +00:00
Dirk Bäumer
2a8040d14f Enhance telemetry for FindTextInFilesTool (#323737)
Enhance telemetry for FindTextInFilesTool: include default max results and cap
2026-06-30 17:28:02 +00:00
Benjamin Christopher Simmonds
c4632cac4f onboarding: let developerMode bypass experiment gating + document eligibility rules (#323731)
* onboarding: let developerMode bypass experiment gating

Developer mode for a scenario now bypasses the experiment gate in addition to the usage and once-per-user gates: an experiment-linked tour is shown even when the experiment is not running or the user is in the control arm. No assignment-context telemetry gate is opened in that case, so a developer preview never affects an experiment scorecard.

Also documents the three automatic-eligibility rules (onboarding.enabled master switch, experiment gating, and ungated tours) across the service, config, and experiment types, and adds tests covering the new developer-mode behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* onboarding: address PR feedback

- Restore the accidentally-dropped 'an opened gate persists' test header so the test file parses again.\n- Scope the developer-mode doc's 'no telemetry gate' note to the experiment-inactive preview case; the active control arm still opens the gate.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* onboarding: don't open telemetry gate in developer mode

CI surfaced a failing unit test: the developer-mode control-arm preview did not open the telemetry gate, but the test expected it to. Make this behavior explicit and deterministic instead — a developer-mode preview now shows the tour unconditionally and never opens the assignment-context telemetry gate (in any arm), so a local preview can never affect an experiment scorecard. Update the failing test expectation and the docs to match.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-30 16:18:14 +00:00
Lee Murray
5f772cfb8f Merge pull request #323720 from microsoft/mrleemurray/subjective-lavender-shrew
Improve visibility of sash handle
2026-06-30 17:00:51 +01:00
Benjamin Christopher Simmonds
637904797e sessions: add Session Files section to the Changes view (#323725)
* sessions: add Session Files section to the Changes view

Add a collapsible/resizable 'Session Files' section to the agents Changes view, modeled on the CI Checks section, listing files created/edited/deleted outside the session workspace folders during the session (these are not committed).

Data is parsed from the agent-host chat-state turns (response parts -> tool calls -> FileEdit results/pending edits) and exposed via a new optional 'externalChanges' observable on ISession. Parsing is incremental: completed turns are memoized by id and only the active turn is re-parsed per streamed delta, with equality functions to suppress redundant downstream work. Computation is gated on the active, non-archived session.

Click opens created/deleted files normally and edited files as a diff. Adds component-explorer fixtures and unit tests covering delta-only recomputation and reduce semantics.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* sessions: register ResourceLabels services in Session Files fixture

The Session Files widget fixture failed to render because ResourceLabels depends on IWorkspaceContextService, IDecorationsService, ITextFileService and INotebookDocumentService, which the base fixture services don't provide. Register mock instances the same way the multiDiffEditor fixture does.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* sessions: address Session Files review feedback

- Add a Changes-view accessibility help dialog (SessionsChangesAccessibilityHelp) with a new verbosity setting, documenting the file tree and the Session Files / Checks sections and how to operate them (collapse/expand, open file vs diff).

- Handle touch in the Session Files header via Gesture.addTarget + TouchEventType.Tap so the collapse/expand toggle works on touch platforms.

- Use getComparisonKey(uri) instead of uri.toString() for Map keys and sorting in reduceSessionFiles, for safe cross-platform URI identity.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* sessions: register IListService in Session Files fixture

SessionFilesWidget creates a WorkbenchList, which depends on IListService. Register it in the fixture (as the aiCustomizationListWidget fixture does) so the widget can be instantiated under the component explorer.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-30 15:31:07 +00:00
Dirk Bäumer
33dec983b5 Make max results configurable (#323729)
* Make max results configurable

* Define settings in package.json

* Sanitize config values
2026-06-30 15:19:33 +00:00
Lee Murray
c1d3c121a7 Style Overrides: Adjust padding for activity bar and panel titles (#323718)
* Add margin and padding adjustments to activity bar and panel titles

* fix: adjust padding-right for agent sessions title container

* fix: add padding adjustments for basepanel composite titles

---------

Co-authored-by: mrleemurray <mrleemurray@users.noreply.github.com>
2026-06-30 13:57:04 +00:00
Ladislau Szomoru
4d284ca824 AgentHost - 💄 refactor building the changeset catalog (#323719) 2026-06-30 13:55:23 +00:00
mrleemurray
9f3954530b fix: reduce size and adjust box-shadow of sash handle for improved visibility 2026-06-30 14:29:19 +01:00
mrleemurray
b307393cea fix: adjust sash handle dimensions and box-shadow for improved visibility 2026-06-30 14:28:21 +01:00
Lee Murray
77d8bd5ce9 Merge pull request #323706 from microsoft/mrleemurray/floating-panel-adjustments
Style Overrides: Optimize layout handling for floating panels
2026-06-30 14:15:33 +01:00
Benjamin Christopher Simmonds
c567c6d051 Unpin sessions when creating or adding to a group (#323709)
* Unpin sessions when creating or adding to a group

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Batch unpins and group adds to coalesce change events

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-30 12:21:25 +00:00
Benjamin Christopher Simmonds
35f6ba0752 sessions: add terminals pill to session header meta row (#323701)
* sessions: add terminals pill to session header meta row

Surface a "{n} terminals" pill in the session header meta row (next to
workspace / changes / pull request). The label counts the session's
terminals that have had at least one command sent in them; the hover
reports how many of those are currently running something (active), e.g.
a watch task or an in-progress npm install. Clicking reveals the terminal
view for the session.

The pill is gated on the new per-view SessionHasTerminalsContext key.
Counts are exposed via the new ISessionTerminalsService, backed by
SessionsTerminalContribution which tracks per-session terminals, records
"has had a command" stickily (executed text / command detection / started
child process) and recomputes the active subset live from
hasChildProcesses. Newly created terminals are associated with the active
session so the counts update as terminals are opened.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* sessions: address PR feedback on terminals pill

- Enforce single terminals provider: throw on a second registration so a
  leaked/overwritten provider listener can't accumulate
- Fix SessionHasTerminalsContext description to match its semantics (set
  from total terminals with a command, not active terminals)
- Include the total count and an action description in the pill aria label
  so screen reader users get the same information as sighted users

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* sessions: remove unused test variable (fix CI)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-30 12:21:11 +00:00
mrleemurray
6d8b7045d7 fix: refactor floating panel margin calculations for improved layout handling 2026-06-30 13:11:11 +01:00
Ladislau Szomoru
54d2211ad4 AgentHost - 💄 clean-up operations (#323713) 2026-06-30 11:56:19 +00:00
Benjamin Christopher Simmonds
b168fa7e2e sessions: keep group/workspace order across reloads (#323705)
The sessions list pruned manual section order/promotion entries on every render via retain(). Workspace identities are derived from asynchronously-loaded sessions, so early renders after a reload pruned workspace order entries before their sessions loaded, losing the user's interleaving of groups and workspaces (groups load synchronously and survived).

Garbage-collect only on genuine removals (session removals and group changes), which happen after sessions are loaded, instead of on every render.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-30 11:37:49 +00:00
Benjamin Christopher Simmonds
f8bb6664a4 Close diff/multi-diff editor on agent feedback submit (#323708)
Close active editor in overlay group on feedback submit

Always close the overlay group's active editor when feedback is submitted, so diff and multi-diff session editors close too.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-30 11:37:02 +00:00
Benjamin Christopher Simmonds
d1e6a9232e sessions: reveal new chat session group when created (#323707)
When creating a new group in the sessions list, scroll its header into view so the focused inline name editor is visible.

Fixes #323528

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-30 11:33:53 +00:00
mrleemurray
9a8648f030 fix: update window reference for bottom margin calculation in pane composite part 2026-06-30 12:15:37 +01:00
Lee Murray
8199c98bd8 Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-30 12:09:04 +01:00
mrleemurray
763728f68c fix: optimize panel visibility checks for improved layout handling
Co-authored-by: Copilot <copilot@github.com>
2026-06-30 11:57:01 +01:00
Martin Aeschlimann
29555543d5 Add AH copilot SDK customization test (#323695)
* add AH copilot sdk customization test

* update

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-30 10:55:00 +00:00
mrleemurray
e601f5e249 fix: add getFloatingSidebarSiblingToEditorStatus function for improved layout handling
Co-authored-by: Copilot <copilot@github.com>
2026-06-30 11:53:08 +01:00
mrleemurray
534d1e0426 fix: simplify sidebar sibling check logic for improved readability and maintainability
Co-authored-by: Copilot <copilot@github.com>
2026-06-30 11:42:15 +01:00
Benjamin Christopher Simmonds
321f6bcdc0 Expand agent feedback widget when revealing feedback (#323687)
* Expand agent feedback widget when revealing feedback

revealFeedback set the navigation anchor to the raw feedback id, but the
editor widget contribution matches against the prefixed session-editor-
comment id. As a result the editor scrolled to the location but the widget
stayed collapsed. Convert the feedback id to the session-editor-comment id
so the matching widget expands.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix test wrapper, comment length and mock typing from review

- Reintroduce the 'removing feedback preserves ordering' test() wrapper that
  was accidentally dropped, fixing the TS1128 compile error breaking CI.
- Compress the revealFeedback inline comment to a single line.
- Use unknown/undefined instead of any in the openEditor test stub.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Break import cycle flagged by cyclic dependency check

sessionEditorComments.ts only uses AgentFeedbackKind/State and IAgentFeedback,
which are defined in agentFeedbackModel.ts (the service merely re-exports them).
Import them directly from the model so agentFeedbackService.ts can import
sessionEditorComments.ts without forming a cycle.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-30 10:41:15 +00:00
mrleemurray
8914f64d47 fix: add top margin for sidebars when aligned with editor in top panel position
Co-authored-by: Copilot <copilot@github.com>
2026-06-30 11:10:30 +01:00
mrleemurray
b30acd1b1d fix: enhance floating panel margins and alignment for improved layout consistency
Co-authored-by: Copilot <copilot@github.com>
2026-06-30 10:59:24 +01:00
Benjamin Christopher Simmonds
5a56ea1ac1 Fix button wrapping in onboarding tour spotlight (#323678)
* Agent Host changes for agents/fix-onboarding-tour-button-wrap

* Fix onboarding tour button wrap and accessibility issues

* Fix stray character causing compile error in chatAccessibilityProvider

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-30 11:24:23 +02:00
Giuseppe Cianci
76e1849dde Merge pull request #323688 from microsoft/cherry-pick/323684
[cherry-pick] Skip for now the sanity checks
2026-06-30 11:19:58 +02:00
mrleemurray
48e992cc1c fix: adjust margins for floating panels and editor positioning to improve layout consistency
Co-authored-by: Copilot <copilot@github.com>
2026-06-30 10:15:31 +01:00
Benjamin Christopher Simmonds
81d2bdf035 Focus feedback input after clicking glyph margin add button (#323686)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-30 09:09:04 +00:00
Alex Dima
83eae7c06e Attestation commit 2026-06-30 11:05:25 +02:00
Benjamin Christopher Simmonds
ff62b245a3 Sessions - hide entire CI input banner once a fix is requested (#323683)
Previously only the Fix Checks button was hidden after requesting a CI fix for the current PR head commit; the banner stayed visible with the Reveal Checks action. Now the whole CI input banner is hidden until a new commit lands on the PR.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-30 08:58:49 +00:00
vs-code-engineering[bot]
2ad1a5209e [cherry-pick] Skip for now the sanity checks 2026-06-30 08:53:51 +00:00
Don Jayamanne
3459fc2b14 refactor: streamline agent, rule, and skill discovery with Promise.all for improved performance (#323677)
* refactor: streamline agent, rule, and skill discovery with Promise.all for improved performance

* refactor: remove unused import for raceCancellation in sessionCustomizationDiscovery
2026-06-30 18:43:18 +10:00
Justin Chen
cb39ed9e9b AH: fix subagent rendering and tools not attaching (#323638)
* AH: fix subagent rendering and tools not attaching

* address comments
2026-06-30 01:33:38 -07:00
Giuseppe Cianci
3ad9f70785 Merge pull request #322919 from microsoft/agents/sdk-download-progress-ahp
Show progress while downloading agent SDK binaries
2026-06-30 09:59:01 +02:00
Justin Chen
5efc0b7cad fix AH code blocks (#323665) 2026-06-30 07:46:11 +00:00
Ladislau Szomoru
f134280117 Agents - select the first available changeset when default is not present (#323671)
* Agents - select the first available changeset when default is not present

* Pull request feedback
2026-06-30 07:45:53 +00:00
Bhavya U
47af1fb17e Rename capi-oauth secret (#323667)
Rename capi-oauth secret to capi-oauth-pipeline-token

The capi-oauth Key Vault secret value leaked. Rename the secret
reference to capi-oauth-pipeline-token so that revoking the old
capi-oauth secret cuts off access for any other harness still
pointing at the old name. The new name is also more descriptive of
its purpose (CAPI OAuth token used in the automation pipeline).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-30 06:13:58 +00:00
Josh Spicer
fc8ff1bbb0 Tidy Copilot managed-settings structured table for consistency (#323613)
* Tidy Copilot managed-settings structured table for consistency

Give every STRUCTURED_MANAGED_SETTINGS row a named encode* helper
(encodeObject, encodeArray, encodeExtraMarketplaces) co-located with the
existing encodeStringMap, instead of mixing inline lambdas with named refs.
This keeps the central deserialization/mapping table uniform and easy to
extend.

No behavior change. base/common/managedSettings.ts stays the shared
base-layer module (consumed by both the policy layer and chat plugin code),
and IStrictMarketplaceSource is retained.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Harden extraKnownMarketplacesToConfigDict against prototype pollution

Marketplace names arrive from managed settings (untrusted input) and are
written as object keys, so skip __proto__/constructor/prototype keys, mirroring
the guard already present in the managed-settings string-map encoder.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Centralize the default-model managed-settings value callback

The model managed setting was the only managed-settings-driven control whose
policy value callback was hand-rolled inline in chat.shared.contribution.ts
(pass-through + trim + empty->undefined), while enabledPlugins / extraMarketplaces
/ strictMarketplaces all use the shared managedSettingValue() helper.

Add a memoized managedModelValue() helper in copilotManagedSettings.ts that holds
the model-specific trim/empty normalization, and wire the policy with
value: managedModelValue() so every managed-settings control is declared the same
way and the model normalization lives with the rest of the managed-settings logic.
No behavior change.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-29 19:01:27 -07:00
Rob Lourens
b7f08a3026 chat: avoid layout shift when switching sessions (#323383)
* chat: avoid layout shift when switching sessions

Publish every fresh dynamic row measurement to the delegate cache so chat can size the last response correctly before the initial ResizeObserver report. Preserve the deferred initial height-change behavior and avoid any additional DOM measurement.\n\n(Written by Copilot)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* list: publish only valid dynamic heights

Cover delegate-provided dynamic heights and centralize publication so all fresh probe paths update caches while zero heights remain excluded.\n\n(Written by Copilot)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-30 01:58:48 +00:00
Justin Chen
02a5fec726 Fix restored Agent Host workspace context (#323648)
Preserve workspace context as a hidden workspace variable when Agent Host session history is restored.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-30 01:58:09 +00:00
Dmitriy Vasyura
cdc1a322ff Hide Local from Continue In list of session types (#323649) 2026-06-30 01:58:06 +00:00
Dmitriy Vasyura
028d3cab28 Fix potential memory leak in terminal link hover (#323629)
* Fix potential memory leak in terminal link hover

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Leave comment about osc 8 hovers

* Handle OSC 8 terminal hover cleanup

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Anthony Kim <anthonykim@microsoft.com>
2026-06-30 00:31:57 +00:00
dileepyavan
77a5f2e4a8 Disable Responses API reasoning summaries (#323639)
* Add Responses API cache control markers

* Refactoring code

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Gate Responses API cache breakpoints by model support

* Disable Responses API reasoning summaries

* reverting cache commits

* Remove Responses API cache breakpoint handling

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-30 00:30:58 +00:00
Kyle Cutler
3c6aa9ddaf Fix background browser screenshots on Mac (#323637)
* Fix background browser screenshots on Mac

* feedback
2026-06-30 00:04:37 +00:00
Kyle Cutler
f292f203cb Migrate chat.sendElementsToChat.attachImages to browser settings (#323628)
* Migrate `chat.sendElementsToChat.attachImages` to browser settings

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-29 16:53:23 -07:00