Skip to content

[pull] main from microsoft:main#1364

Merged
pull[bot] merged 45 commits into
KingDEV95:mainfrom
microsoft:main
Apr 29, 2026
Merged

[pull] main from microsoft:main#1364
pull[bot] merged 45 commits into
KingDEV95:mainfrom
microsoft:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Apr 29, 2026

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 : )

connor4312 and others added 30 commits April 28, 2026 15:03
Co-authored-by: Copilot <copilot@github.com>
When clicking X on a sub-session tab, deleteChat checks chatIds.length
before finding the specific chat by URI. If the grouping cache doesn't
include the forked chat (e.g. due to stale sessionParentId metadata),
_getChatIdsInGroup returns only the main chat. The chatIds.length <= 1
check then falls through to deleteSession, which shows 'delete this
session?' and deletes the entire session including the worktree.

Fix: find the specific chat by URI first. Only fall through to
deleteSession if the chat IS found in the group AND it's the last one.

Fixes #313148

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* nes: feat: ghost-text-like behavior

* adddresss review
… update styles for improved layout and readability

Co-authored-by: Copilot <copilot@github.com>
…unctionality; streamline action handling and enhance personalization options

Co-authored-by: Copilot <copilot@github.com>
…ling and layout

Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
The previous reverts only changed the spec to ^1.0.34, but the resolved entries in the lockfiles still pointed at 1.0.38 (with 1.0.38 tarballs and integrity hashes). Since ^1.0.34 satisfies 1.0.38, npm ci would still install the broken version. Pin to exact 1.0.34 in all three package.json files and regenerate the lockfiles.
When a child chat in a multi-chat group was removed, _refreshSessionCache
would first remove it from _sessionCache and invalidate grouping caches.
Then _refreshSessionCacheMultiChat would try to resolve the removed chat's
group ID, but since the caches were already rebuilt without the removed
chat, _getGroupIdForChat fell back to the chat's own ID instead of the
parent group's ID. This caused the child to be treated as a 'truly removed'
standalone session rather than a group membership change, so no 'changed'
event was fired for the parent group.

Fix: resolve group IDs for removed sessions BEFORE removing them from the
cache and invalidating grouping caches.

Fixes #311987

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
terminal: add shell integration trace logging
feat: add inline chat progress messages and prompts for user feedback
* sessions: add home button to customizations header to open welcome page

Add a home icon button to the 'Customizations' collapsible header in the
Agents sidebar. The button:
- Appears on hover of the header row (opacity transition)
- Opens the AI Customizations management editor and navigates to the
  welcome/overview page via showWelcomePage()
- Supports keyboard (Enter/Space), click, and touch tap (iOS)
- Shows a tooltip via IHoverService: 'Open Customizations Overview'
- Does not interfere with the existing collapse/expand toggle

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

* sessions: move customizations home button to leading position

Move the home button to the start of the header (before the toggle pill)
and make it always visible. This makes the entrypoint more discoverable
for new users since it's no longer hidden behind a hover state.

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

* sessions: align home icon with section icons below

Use matching padding (4px 8px) so the home icon's horizontal position
matches the agent/skill/instruction icons listed below the header.

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

* sessions: refine home icon alignment to match section rows

Remove font-size and explicit height overrides; instead mirror the
sidebar-action-button layout exactly (padding 4px 8px + gap 10px) so
the home icon naturally sizes and aligns with the section icons.

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

* sessions: align home icon and tighten color hierarchy in customizations header

- Drop the header button's left padding and set the home button's right
  padding to 10px so 'Customizations' sits exactly 10px after the home
  icon, matching the icon->label gap of the section rows below.
- Remove the home icon's opacity dim; use the strong agentsPanel
  foreground so the home icon and 'Customizations' label render at the
  same color weight.
- Apply --vscode-descriptionForeground to the section rows below the
  header so they read as secondary content under the prominent header.

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

* sessions: bump home icon size to match bold header weight

Codicons are a single-weight font, so font-weight has no effect on
icons. Increase the home icon's font-size to 18px so its visual stroke
weight matches the bold 'Customizations' label.

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

* sessions: revert home icon size bump

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

* sessions: replace home button with 'Manage customizations' footer link

Move the entrypoint to the customizations welcome page from a header
icon to a footer link below the section list. The footer:
- Sits inside the collapsible content (collapses with the section)
- Uses subtle descriptionForeground styling with a top border separator
- Includes a right-arrow that nudges on hover for affordance
- Supports click, touch tap (iOS), and keyboard (Enter/Space)
- Restores the original header layout (no padding/color hacks)

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

* sessions: add customizations overview header action

Replace the footer-style Customizations entrypoint with a dedicated header home action so the overview remains accessible in both expanded and collapsed states.

Add focused browser coverage for opening the welcome page without toggling collapse.

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

* sessions: align customizations overview action with counts

Nudge the Customizations header overview action left so it visually aligns with the per-section count column.

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

* sessions: simplify customizations overview editor check

Use the concrete AI Customizations management editor type instead of a structural showWelcomePage guard when opening the overview from the sidebar header action.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…d qualification (#313217)

* add pluginUri and  extensionId to ICustomizationItem: fix slash command qualification

* Update src/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostLocalCustomizations.ts

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

* update

* update

* update

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* handle steering the way the SDK wants it (via priority)
* pass along properties via the queued request (rather than setting them when we get the message) so that we can set them when the message is to be yielded to the SDK
* Tons of code simplification

There's still more simplification to do... but this is getting unwieldy so let's start here.

Co-authored-by: Copilot <copilot@github.com>
…ing (#313127)

* telemetry: add workspaceChunkSearch.tryInit event for cold-init tracking

Adds telemetry to track duration and outcome of workspace chunk search
cold initialization (getPreferredType + service creation). Records
success, noEmbeddingType, alreadyInitialized, or error outcomes.
Not fired for fast paths (no auth, already initialized).

Related: #313070

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

* fix: type outcome as string literal union per review

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…r improved layout integration

Co-authored-by: Copilot <copilot@github.com>
…#313254)

Strip trailing newline on terminal paste in auto mode

Prevents clipboard-hijack scenarios from auto-executing pasted commands
when the shell does not support bracketed paste mode. Right-click /
Ctrl+V paste of a command followed by a newline previously executed
immediately; now the trailing newline is stripped so the user must press
Enter to run the command.
…313249)

The rich execute strategy subscribed to onExit/onDisposed AFTER awaiting
xtermReadyPromise. If the pty had already exited before execute() was
entered, those emitters had already fired and been disposed, so
Event.toPromise() subscribed to a dead emitter and never resolved -
hanging the run-in-terminal tool until the agent's 60-minute outer
timeout (16 X_AGENT_STILL_RESPONDING failures observed in eval run
25073061392).

- Add synchronous up-front check for instance.isDisposed / exitCode in
  both rich and basic strategies; resolve immediately with the captured
  exit code rather than subscribing to a fired-and-disposed emitter.
- In the rich strategy, move the Promise.race lifecycle subscription
  setup BEFORE 'await this._instance.xtermReadyPromise' so onExit /
  onDisposed are wired synchronously at function entry, closing the
  race window where the pty exits during xterm initialization.
- Add unit tests for both branches in rich and basic strategies.

Fixes #313248
We had a separate representation of agent events in the agent host that
were usually mostly just the same as the protocol events/state. And we
had steps to map to and from in various places which added to code and
implementation complexity. Remove it.
rzhao271 and others added 15 commits April 29, 2026 16:56
* add ChatSessionCustomizationType.userInvocable

* Update src/vs/workbench/contrib/chat/browser/aiCustomization/promptsServiceCustomizationItemProvider.ts

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

* Update src/vs/workbench/contrib/chat/common/customizationHarnessService.ts

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

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Support prompting the user to share an existing browser tab

* feedback

Co-authored-by: Copilot <copilot@github.com>

---------

Co-authored-by: Copilot <copilot@github.com>
* Add GitHub PR review threads model

* Cache GitHub PR review thread models

* Use PR review threads model in code review

* Keep GitHub PR model refresh lightweight

* Complete PR review threads validation checklist

* Saving my work

* Limit PR review polling to active session

* Refactor CodeReviewService to only poll the model for the active session

* Add GitHub PR polling lifecycle

* Refactor the logic that polls

* Use pull request head SHA for CI checks

* More fixes in

* Fix  bug + tests

* More test cleanup
We already handled the case where an ingest had completed. This makes it so that any ongoing ingests also should reuse the existing operation

Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <copilot@github.com>
…enu-polish

Agents: Refactor account menu and chat status dashboard for improved UI
Fixes #311713

---------

Co-authored-by: Copilot <copilot@github.com>
We should make this explicit

Co-authored-by: Copilot <copilot@github.com>
Reuse existing ingest operation if files haven't changed
)

* Re-parse agent host history prompts to revive slash decorations

When restoring an agent host session (local `agent-host-*` or remote
`remote-*`), historical prompts were wrapped in a single ChatRequestTextPart,
losing decorations for slash commands, prompt slash commands (e.g. /skill),
and agent mentions.

Re-run the prompt through ChatRequestParser for agent host sessions so
decorated parts are revived in the UI. Falls back to a plain text part on
parse failure or empty parse result.

Also moves `isAgentHostTarget` from the browser layer into common (where
ChatService lives), with a re-export from the browser file for existing
callers.

Adds two snapshot tests for /skill parsing covering both the forcedAgent +
supportsPromptAttachments path and the no-agent fallback.

(Written by Copilot)

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

* Hoist empty references/tool map to avoid per-history-item allocations

Address Copilot review feedback on #313158.

(Written by Copilot)

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

* Source attachmentCapabilities from chat session contribution

Agent-host providers register capabilities via registerChatSessionContribution,
but that programmatic path does not create an IChatAgentData with those
capabilities. Look them up via IChatSessionsService.getCapabilitiesForSessionType
instead so /skill etc. are revived in restored history.

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

(Written by Copilot)

---------

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

* ci: switch PR workflows back to 1ES self-hosted runners with JobId

Re-applies #311975 (reverted in #312033). Adds per-run+attempt JobId
labels to scope 1ES agents to specific GitHub Actions runs and prevent
intermittent runner cancellations.

Also switches the pr.yml compile job's GITHUB_TOKEN from the
ephemeral repo-scoped runner token to secrets.VSCODE_OSS so cross-repo
GitHub API release fetches (vscode-js-debug, vscode-js-debug-companion,
vscode-js-profile-visualizer, etc.) authenticate properly. On 1ES pools
the shared egress IPs hit the anonymous 60/hr api.github.com rate limit
and produced 403 fan-out across PRs last time.

* ci: fall back to GITHUB_TOKEN for fork PRs

Match the historical pattern from before #255987 — fork PRs can't
access secrets.VSCODE_OSS, so use the conditional to pick GITHUB_TOKEN
for forks.
agentHost: drop the agent event abstraction
Make sure we get files in stable order for external ingest checkpoint
@pull pull Bot locked and limited conversation to collaborators Apr 29, 2026
@pull pull Bot added the ⤵️ pull label Apr 29, 2026
@pull pull Bot merged commit dfbb962 into KingDEV95:main Apr 29, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.