Skip to content

[pull] main from microsoft:main - #1658

Merged
pull[bot] merged 13 commits into
code:mainfrom
microsoft:main
Sep 2, 2026
Merged

[pull] main from microsoft:main#1658
pull[bot] merged 13 commits into
code:mainfrom
microsoft:main

Conversation

@pull

@pull pull Bot commented Sep 2, 2026

Copy link
Copy Markdown

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

DonJayamanne and others added 13 commits September 2, 2026 04:24
Propagate skill invocation flags through plugin and Agent Host discovery, and filter user-disabled skills from completions.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Improve mock policy server troubleshooting

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

* Fix mock policy draft reconciliation

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

---------

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

* fix: guard null diagnostic code in copilotcli diagnostics push (fixes #333772)

* fix: add regression test for null diagnostic code serialization

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

* fix: collect null-code regression test in vitest spec

Move the null diagnostic code regression coverage into the existing
diagnosticsChanged.spec.ts suite so the Copilot vitest config
(**/*.spec.ts) actually runs it, and drop the uncollected
tools/push/test/diagnosticsChanged.test.ts. Revert the serializeDiagnostic
export extraction that was only needed by the removed test.

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

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: vs-code-engineering[bot] <122617954+vs-code-engineering[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* pet: improve achievements and pill landing

Make profile badges select unlocked hats, remove the group focus outline, and let the pet land on raised status pills. Keep preview DOM creation compatible with auxiliary windows.

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

Copilot-Session: 74c7dd7-a6a2-47c3-b1a4-f549f9a649db

* pet: add hacky-sack interactions

Let users bounce a descending airborne pet with pointer or keyboard physics, count distinct catches, show impact squish and landed results, and celebrate long streaks with confetti.

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

Copilot-Session: 74c7dd7-a6a2-47c3-b1a4-f549f9a649db

* sessions: land the pet on new-chat pills

Expose the reworked workspace-picker triggers as live pet platforms and invalidate their geometry when labels, visibility, or layout changes.

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

Copilot-Session: 74c7dd7-a6a2-47c3-b1a4-f549f9a649db

* pet: support the reworked new-chat pill row

Treat the session-type trigger as a live pet platform and make arrow-key hops recover from a pending click monitor without interrupting active drags.

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

Copilot-Session: 74c7dd7-a6a2-47c3-b1a4-f549f9a649db

* pet: stop bounced landings clipping through pills

Resolve the live horizontal platform from each projected throw position so rebounds collide with raised pills before rendering below them.

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

Copilot-Session: 74c7dd7-a6a2-47c3-b1a4-f549f9a649db

* address comments

---------

Copilot-Session: 74c7dd7-a6a2-47c3-b1a4-f549f9a649db
* agentHost: trust reads in active plugin directories

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

* agentHost: reject plugin read parent traversal

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Improve Agent Merge status presentation

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

* Fix Agent Merge CI failures

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

* Explain Agent Merge behavior in chat

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

* Explain Agent Merge monitoring in chat

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

* Make Agent Merge notices collapsible

Keep the status summary visible while placing Agent Merge behavior details in an accessible, reusable disclosure with bulleted content.

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

* Fix Agent Merge helper formatting

Apply the repository formatter's continuation indentation so Compile & Hygiene accepts the session helper.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…init scripts (#332593)

* Add shell init snippet generators for the SDK shell tool

The SDK built-in shell tool spawns a fresh no-rc shell per command, so the
user's Python environment and shell hooks are absent. Add the generators that
produce the init script text later sourced via ShellOptions.initScripts.

Three runtime behaviors shape the generated text: only the final exit status is
observed (so every script ends in a statement that always succeeds), bash
init-script stderr is discarded (so diagnostics go to stdout), and PowerShell
scripts are dot-sourced under $ErrorActionPreference = 'Stop' (so the body is
wrapped in try/catch/finally).

The profile snippet sources ~/.bashrc and then replays marker-delimited managed
blocks that did not take effect. Stock rc files early-return in non-interactive
shells and tools such as conda append their init block below that guard, so
sourcing alone never reaches it. Replaying recovers shell functions such as
conda activate, which are never exported and so cannot arrive through the
inherited environment.

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

* Add the shellInitSnippets session config key

Carries generated shell init script text from the client to the agent host as
per-session config. Values are pushed rather than user-authored, so the property
is readOnly; the selected Python environment can change while a session is live,
so it is sessionMutable.

The property deliberately has no default and is not added to the defaults passed
to validateOrDefault: an absent value means "nothing to apply", which must stay
distinguishable from an explicit empty array, which clears previously applied
scripts.

readOnly keeps the property out of the session settings file but does not
suppress the generic chat-input chip, so the key is also added to
WELL_KNOWN_PICKER_PROPERTIES.

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

* Let buildSandboxConfigForSdk grant extra readonly paths

Host-generated files that the SDK shell tool must read, such as a session's
shell init scripts, live under the user data path, which no existing grant
covers. Add an optional extraReadonlyPaths parameter routed through the same
precedence sets as user-supplied paths, so an explicit denyRead still wins and
a path already granted readwrite is not downgraded.

The SDK treats init script readability as a caller obligation and fails
silently when a script cannot be read, so the doc comment records that every
producer of a session sandboxConfig must pass the same paths.

Call sites are updated in a later change.

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

* Apply shell init scripts to SDK built-in shell tool sessions

Materializes the shell init snippets configured on a session and registers
their paths through options.update, so the SDK sources them before every
built-in shell tool command.

Both producers of a session sandbox policy now grant read access to the
session's script directory. CopilotAgentSession re-pushes sandboxConfig on
every turn, so granting it only at launch would silently revoke the grant on
the first turn, and the SDK reports nothing when it cannot read an init script.

The apply lives on the session rather than the launcher so it can re-run on a
mid-session config change and on a cold resume: the runtime does not persist
its init-script list, but the host's session config values are persisted.

Paths are derived from the snippet shape, so an unchanged list skips the RPC
and changed content takes effect through the rewritten file, which the runtime
re-reads before each command. Writes are atomic where the provider supports it
so a command running during a rewrite cannot source a half-written file.

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

* Publish Python activation and profile scripts for agent shell commands

Adds the workbench half: a synchronizer that resolves what a session's shell
tool needs and publishes it as script text on the session's config, which the
agent host then materializes and registers with the SDK.

Python activation is read from the environment-variable collection the Python
Environments extension publishes, scoped to the workspace folder that owns the
session. Only that extension may supply the value, since it becomes an
executable script. On POSIX the zsh variable is accepted as a fallback for
bash: the extension emits identical text for both, and the tool shell is always
bash. Fish and cmd are never used because their syntax would not parse.

Worktree-isolated sessions resolve through their originating project, since a
worktree path is not a workspace folder and activation commands carry absolute
paths.

Config is dispatched only when the value actually changes, and an empty list is
never published to a session that never had one. Session config is shared
across windows, so an unconditional write would let two windows overwrite each
other indefinitely.

Both snippets are behind experimental settings, on by default.

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

* Reduce shell init integration to one script

Collapse profile loading and Python activation into one generated init script behind one setting. Inline file ownership in CopilotAgentSession, remove the generic materializer/source/index machinery, and scope publication to local workspace windows.

Also apply live config changes serially, verify conda is a shell function before skipping hook replay, and clean up the SDK-session-scoped file on session disposal.

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

* Address shell init review feedback

Restrict publishing to the workspace window that owns the session and skip remote hosts whose OS can differ from the renderer. Serialize live script updates, require conda to be a shell function, and add missing handler test dependencies.

Inline SDK-session-scoped file ownership so cleanup cannot use a host configuration ID, and format the schema test flagged by CI.

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

* Address latest shell init review

Publish synchronously before the first turn, ensure the sandbox grants access before SDK registration, and serialize final cleanup behind pending script synchronization.

Limit publication to the workspace window that owns the session and trim the shell-init contract JSDoc.

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

* Make shell init test paths platform-neutral

Build expected sandbox and init-script paths through URI.fsPath so the session tests pass on Windows as well as POSIX platforms.

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

* Only the owning window clears shell init; scope script files per instance

* Load pwsh profiles under Continue; prune empty shell init session dirs

* Drop the conda-specific rc replay from the shell init script

* Read only the shell-matching activation variable; add SDK shell init e2e

* Default Agent Host shell init scripts off

Keep the setting experimental and require an explicit true value before publishing profile/Python activation scripts.

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Correct Agent Host shell profile sourcing

Keep profile loading before Python activation, but do not infer a Bash profile failure from the status of its final command. Clarify the exact Bash and PowerShell profiles loaded and cover non-interactive guards and rc files ending nonzero.

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Keep Agent Host shell init state transient

Exclude workspace-derived executable shell init text from session persistence, strip legacy persisted values during restore, and make the application-scoped disabled setting authoritative from any local window.

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Prevent shell init config update loops

After session schema hydration, publish only from local inputs and explicit pre-turn reconciliation instead of reacting to shared config echoes. Add a two-window convergence regression test.

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Encode PowerShell shell init payloads safely

Embed arbitrary multiline activation text as UTF-8 base64 and decode it in PowerShell instead of using a terminable here-string. Add round-trip and Windows execution coverage.

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Reject malformed shell init config safely

Distinguish invalid shell init state from an explicit empty-list clear so malformed client or inherited config cannot remove the last valid SDK registration.

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Restrict shell init config to editor clients

Reject executable shell init config writes from non-editor clients and preserve the current value across their wholesale config replacements. Add acceptance, rejection, and replacement coverage.

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Document shell init script approval behavior

Explain that direct script commands may require explicit approval while the experimental init-script integration is enabled, without changing VS Code or runtime approval policy.

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Cover first-turn shell init ordering

Wait for the shell-init config echo before an Editor Window dispatches its first turn. Exercise the raw AHP path with an Editor Window identity, unique client sequences, and no explicit echo wait before the turn.

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Allow clients to clear shell init config

Keep non-empty executable config restricted to Editor Window clients, while allowing any local client to submit the capability-reducing empty-list clear. Preserve the value when an unauthorized replacement merely omits it.

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Apply shell init config before resumed turns

Reconcile before both new and resumed turns, wait for the matching server echo, and fail preparation when the host rejects the config instead of proceeding with stale shell initialization.

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Run the PowerShell shell init test on Windows

Move the Windows-only execution suite out of the non-Windows Bash suite so CI can exercise base64 decoding and activation in a real PowerShell process.

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Close shell init config authorization bypasses

Reject the session-only executable config from root state and apply the shared Editor Window policy during session creation as well as later updates. Keep explicit empty-list clears available to all clients.

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Wait for pending shell init publication

Track in-flight shell init actions and compare pre-turn state against the server-confirmed snapshot. Reconciliation now waits for the matching acknowledgement when the desired value is only optimistic.

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Serialize shell init config publications

Queue each publication through a per-session sequencer, retain its acknowledgement until completion, and make pre-turn reconciliation wait when the desired value is only optimistic or supersedes an earlier update.

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Bound shell init publication acknowledgements

Prevent a lost connection echo from occupying the publication sequencer forever, and let cancellation release a pre-turn reconcile queued behind an unacknowledged background update.

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Make shell init sandbox grants conditional

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Test shell init file and activation updates

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Clean up in-flight shell init writes on dispose

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Clear stale shell init sandbox grants

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Clean up failed shell init writes

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Finish failed shell init cleanup

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Preserve registered shell init revisions

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Document local shell init support

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Test shell init timeout and PowerShell profiles

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Fix shell init tests on Windows

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Preserve shell init in Agents settings saves

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Retain shell init revisions until disconnect

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Fail closed on shell init preflight errors

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Bound shell init publication to one deadline

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

Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13

* Reduce Agent Host shell init to the core integration

Keep the generated script, the session config key, the workbench
synchronizer, and the host-side materialize, grant, register, and cleanup
path, and drop the layers that accumulated during review:

- No renderer-side acknowledgement barrier. Dispatch is ordered per
  connection and the host applies session config before it starts a turn,
  so reconcile publishes synchronously again.
- No client-type authorization for the config key. Connected clients can
  already run shell commands through the agent; readOnly plus transient
  state is the model. This also removes the Agents-window settings-save
  rejection and its carry-forward patch.
- No script revisions. One file per instance is rewritten atomically in
  place and deleted only on dispose after the SDK session disconnects, so a
  command that already captured the path can still source it.
- SDK registration failures are logged and retried on the next turn rather
  than failing the turn.

The sandbox read grant is added once a script is materialized and kept for
the instance lifetime. Windows test portability, echo suppression, transient
persistence, and base64 PowerShell payloads are unchanged.

* Guard shell init cleanup when a session never initialized

dispose() called this._wrapper.disconnect() before the base disposal so the
script file is removed only after the SDK session disconnects. The wrapper is
assigned midway through initializeSession, so a session that fails during
launch has none, the call throws a TypeError, and the base disposal never
runs. That leaked the session and its ShellManager in the resume tests, and
in the launcher's fallback path the TypeError replaced the SDK's model error,
which broke the stale-model E2E on every platform.

Skip the disconnect-then-cleanup chain when there is no wrapper; such a
session has no script to remove either.

* Shorten the Agent Host shell init setting description

* Enforce the shell init setting on the host and close the inherited config path

CopilotAgentSession read shellInitSnippets through the effective config
chain, so a value placed in root config by any connected client was inherited
by every Copilot session without its own value, and the workbench setting only
governed which window published. Read the session's own value only, and apply
it only while the forwarded enableShellInitScript root flag is true, so the
user setting is enforced by the host regardless of who published the value.
The flag is forwarded next to the other Copilot CLI settings and re-applied on
root config changes, unregistering a live script when it turns off.

Also: the Agents window mounts the active session's folder into its
workspace, so folder ownership alone qualified it as a publisher; it now only
clears. Cap accepted script text at 64 KiB. Remove the generated directory on
dispose even when the SDK disconnect fails. Qualify the generator note that a
sourced profile can still terminate the shell.

The recorded E2E enables the flag through root config before the snapshotted
round and leaves the root channel so its notifications stay out of the round.

* Decide the shell init off state before validating the payload

The malformed-payload check ran before the forwarded flag was read, so a
registered script survived turning the setting off if the session value had
become malformed in between. The custom terminal tool check returned early
for the same reason, leaving a dormant SDK registration when the tool was
switched on mid-session.

Compute the off state first: the flag is false, or the custom terminal tool
has replaced the SDK's built-in shell. Either clears any registration without
looking at the payload; only an enabled session validates it.

* Chain shell init cleanup only for sessions that wrote a script

dispose() started the SDK disconnect explicitly for every Copilot session so
the script file could be removed afterwards. Sessions that never materialized
a script have nothing to remove, so they now keep the plain dispose path; the
disposing flag is still set synchronously so no later sync can run.

* Describe the forwarded shell init flag as opt-in, not authorization

* Rename the shell init session config key to shellInitScripts

The key was named for an early design that published separate profile and
activation snippets. The value has held one whole script since those were
collapsed, and everything around it already says script: IShellInitScript,
createShellInitScript, isShellInitScriptList, enableShellInitScript, and the
SDK's own shell.initScripts. Rename the key, the schema property, its
localization ids, and the local variables to match.

Also say the script is client-generated where two comments called it
host-generated; the host only writes the file.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: bef9b9c0-98f2-4b26-8b8b-18119efe7b13
* agentHost: constrain Agent Merge GitHub actions

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

* agentHost: enforce Agent Merge GitHub tool restrictions

Block GitHub MCP, CLI, and direct API fallbacks at provider runtime boundaries while preserving the dedicated Agent Merge server tools.

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

* agentHost: fix Agent Merge CI

Update the Claude options assertion for the runtime guard and apply repository formatting to the provider enforcement code.

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

* agentHost: fix Agent Merge lint

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
github: fix workflow job log downloads

Use GitHub's JSON media type for the authenticated job log endpoint, then accept text and binary content only after following the signed redirect.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Build 469897 exposed the existing Codex behavior where a shell command can complete successfully and inform the model, while its AHP tool completion contains no result text. The missing-file test therefore received the expected final assistant response but failed its explicit tool-result assertion.

This behavior was previously tracked by #329512 and covered by the shellToolResultTextUnreliable provider capability. That gate was removed in #332932 after command completion mapping learned to fall back from empty aggregated output to streamed output. The fallback fixed one ordering, but it did not eliminate every case where Codex publishes an empty successful completion. A later peer-chat stabilization avoided the same unreliable AHP oracle locally and separately gated packaged-Linux notification loss, so it did not protect this macOS shared-suite assertion.

Restore the provider capability and apply it only to scenarios whose success oracle requires Codex shell result text. Other Codex file mutation and lifecycle coverage remains enabled, and Claude and Copilot continue to run these assertions. Restore the known-issue documentation with the current failure as evidence.

(Written by Copilot)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Improve CSS selector performance safeguards

Replace non-codicon class substring selectors with stable markers, remove disconnected editor header styles, and prevent new high-cost selector patterns. Add a repeatable Modern UI CSS benchmark and document the observed results and limitations.

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

Copilot-Session: aa457496-6844-4e4c-b182-07866a0a7506

* Fix CSS performance CI checks

Move process-exit error propagation outside benchmark cleanup and use the repository's preferred string quoting in the selector regression test.

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

Copilot-Session: aa457496-6844-4e4c-b182-07866a0a7506

* Address CSS performance review feedback

Ensure benchmark setup failures retain a diagnostic summary artifact and exclude test fixture paths from the production-only class substring selector safeguard.

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

Copilot-Session: aa457496-6844-4e4c-b182-07866a0a7506

---------

Copilot-Session: aa457496-6844-4e4c-b182-07866a0a7506
Resolve ~ and ~/ references through the environment user home across validation, navigation, and instruction collection.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Agent Host changes for ulugbekna/agents/remove-unread-badge-archived-sessions
@pull pull Bot locked and limited conversation to collaborators Sep 2, 2026
@pull pull Bot added the ⤵️ pull label Sep 2, 2026
@pull
pull Bot merged commit 8ba7a4d into code:main Sep 2, 2026
5 checks passed
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.

9 participants