* agentHost: run E2E suites in parallel
Run the deterministic conformance and provider entrypoints concurrently while preserving serial server reuse within each suite. Integrate the parallel runner into coverage and full integration runs.\n\n(Written by Copilot)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* agentHost: harden parallel E2E runner
Preserve Windows argument boundaries through a PowerShell wrapper and fail coverage runs when a worker does not emit protocol-surface observations.
(Written by Copilot)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* agentHost: stabilize terminal clear E2E test
Wait for a marker that appears only in command output, not in the shell's echoed input, before clearing terminal state.
(Written by Copilot)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* chore: bump @github/copilot to 1.0.79-2
* fix: pin @github/copilot to 1.0.79-2 exactly
Caret range ^1.0.79-2 resolved to a canary build during lockfile
validation. Pin the prerelease so package-locks stay deterministic.
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Anthony Kim <anthonykim@microsoft.com>
Co-authored-by: Anthony Kim <62267334+anthonykim1@users.noreply.github.com>
* chore: bump @github/copilot-sdk to 1.0.9-preview.3 and @github/copilot to 1.0.78
* Adapt agentHost to SDK 1.0.9-preview.3 type contract
SDK 1.0.9-preview.3 changed several session-events/rpc types consumed by
agentHost:
- Model dropped defaultReasoningEffort; pass undefined so the schema resolver
falls back (BYOK IByokLmModelInfo path is unaffected and keeps the field).
- Added factory permission kind; add 'factory' to the host permissionKind union.
- Added factory_completed system notification; handle it in the notification
switch with localized status messages.
- ShutdownData gained required fields; widen the test cast via unknown.
- PermissionPromptRequestPath dropped managedApprovalRequired; remove it from
the path promptRequest test literal (the permissionRequest still carries it,
which is what the host reads).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Adapt customizations test to new builtin skill in CLI 1.0.78
CLI 1.0.78 ships an additional builtin skill (github-pr-media) alongside
customize-cloud-agent; generalize the test's builtInCustomizations filter to
strip any @github/copilot builtin skill dir so discovery assertions stay green.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Regenerate Copilot prompt snapshots for CLI 1.0.78
CLI 1.0.78 reworded its baked-in system prompt (consolidated tips_and_tricks/SQL/session-context guidance and added the github-pr-media builtin skill), so the committed AHP prompt baselines no longer matched the wire prompt and the copilotPromptsE2E integration test failed in product build 461312. Regenerated the baselines via AGENT_HOST_UPDATE_AHP_SNAPSHOTS=1; all 21 cases pass in replay mode.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: github-actions[bot] <41898282+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>
Co-authored-by: Paul <8560030+pwang347@users.noreply.github.com>
Update the packaged Codex runtime and protocol-generation pin together, regenerate the app-server types, and adapt the handwritten integration to the updated schema.
* build: harden targeted validation scripts
Reject validation commands that would otherwise succeed without checking files, support multiple stylelint targets, and report validation scope and elapsed time. Document how to avoid redundant typechecking before compilation.\n\n(Written by Copilot)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* build: count files entering hygiene checks
Track requested files only when they reach an actual hygiene checker, deduplicate across checker branches, and cover non-checkable assets.\n\n(Written by Copilot)\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The check took ~257s and would sometimes run out of memory. Two separate
bottlenecks were responsible.
layersChecker.ts built a full in-process ts.Program (15s, 2GB) and then
asked the type checker for a symbol at every property access in the
program, ~2.5M identifiers. Each lookup materialized symbol and type
objects, pushing the heap past 3.6GB, and the alias/containment chain was
then walked per symbol.
It now runs on the TS7 native API that the repo already vendors for
build/lib/tsgo.ts:
- updateSnapshot replaces createProgram, so the program lives in the
compiler rather than the V8 heap
- the disallowed types are resolved to symbols once up front, turning the
per-reference check into a local id lookup
- symbol lookups are batched instead of issued one node at a time
- property accesses are prefiltered by member name, so only those that
could name a member of a disallowed type are resolved at all
That brings it from 48.6s and 3.8GB peak to 11.7s and 0.8GB peak.
The six tsconfig.<layer>.json projects were type checked serially with
TS6, which accounted for the remaining ~208s. They move to the native
compiler and run in parallel in the new layersTypeCheck.ts, taking ~11s.
Concurrency is derived from free memory (the largest project peaks at
~3.5GB) so a memory-constrained machine falls back towards serial
execution rather than swapping.
Verified to report byte-identical violations, including line and column,
against a seeded set covering direct references, import aliases,
inherited members, nested member access and ipcMain.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Updates the runtime pin in the repo-root devDependencies and the build
pin used to produce the deterministic Claude SDK tarball, plus both
lockfiles.
0.3.220 tightens three test-facing SDK types, so the agent host test
doubles and transcript fixtures are updated to match:
- `Query.interrupt()` now returns `Promise<SDKControlInterruptResponse | undefined>`
- `canUseTool` options now require `requestId`
- `SessionMessage` now requires `parent_agent_id`
No committed replay fixtures needed re-recording: the existing captures
already replay green against the new SDK.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Revert "Chat dictation: always use Nemotron model, remove model setting (#326718)"
This reverts commit 6d02468e2c.
* Revert "Dictation: migrate on-device runtime to Foundry Local streaming ASR (#326678)"
This reverts commit 6b3ff3c7f0.
* chore: bump windows-process-tree to 0.8.0
Picks up microsoft/vscode-windows-process-tree#87, which fixes
process command lines being converted with CP_ACP instead of CP_UTF8,
so non-ANSI characters (e.g. Cyrillic) rendered as ? in the Process
Explorer.
Fixes#219183
* fix: update allow-scripts
---------
Co-authored-by: deepak1556 <hop2deep@gmail.com>
Add a PR CI check that fails when the committed codex app-server protocol
client (src/vs/platform/agentHost/node/codex/protocol/generated/**) does not
match what `codex app-server generate-ts` produces for the @openai/codex
dev-dependency version, but only when a PR actually changes the generated
client or the version pin.
- build/codex/generate-protocol.mjs: export the reusable pieces (generate,
resolveCodexBinary, readBinaryVersion, readPinnedVersion, paths) and only
run main() when invoked directly, so the check can import it side-effect
free. Types provided by generate-protocol.d.mts.
- build/codex/check-protocol-sync.ts: gate on a git diff touching the
generated dir or codex-version.txt (its README.md excluded — preserved
across regen), regenerate into a scratch dir with the dev-dependency binary,
byte-compare against the committed client, and assert the pin matches. Never
touches the working tree.
- build/codex/test/checkProtocolSync.test.ts: unit tests for the gate + diff
helpers; wired in via the build/package.json test glob (adds `codex`).
- package.json: `codex:check-protocol` script.
- .github/workflows/pr.yml: run the gated check in the Compile & Hygiene job.
- generated/README.md: document the check.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* WIP - initial implementation
* Revert changes that are not needed
* Refactor the calculation of paths to be copied
* Fix test
* Add back the test that was removed by mistake