roblourens' Description of Work
Summary
Upgrade the desktop and remote Agent Host to exactly @github/[email protected], with its bundled runtime 1.0.102. This is the stable release, not 1.0.25-preview.1. Final local acceptance passes. Keep this PR draft while cross-platform acceptance is in progress.
Source revision: b6b2e101f027d83a16d9651effbd12ced3fb2cfe. Base: 5b7277ed430948ad4eb39bdb0a07d0ff190ac1e0; no upstream merge or unrelated changes.
Change ledger
Files/surface
Exact change
Why necessary
Assessment
package.json, remote/package.json
SDK 1.0.24 -> 1.0.25; explicit runtime 1.0.101 -> 1.0.102
Ship the same release-aligned runtime on desktop and remote; preserve the build's runtime-pin guard
Expected upgrade
package-lock.json, remote/package-lock.json
Regenerate SDK and all eight optional platform-package versions, URLs and integrity values with root npm install
Both installed dependency roots and cross-platform packaging must resolve the new release
Expected generated change; no unrelated package entries changed
Host implementation, harness, prompts, schemas, captures, gates
No changes
Current typed integration and committed model/tool inventories remain compatible in local discovery
No assertions, normalizers, fixture contents, tool budgets, model set or gates weakened
Upstream assessment
The shipped/inspected runtime revisions are 01c5befcd0b26b1b4b0a7fce219cf441b8ae2ae1 -> 638eca2df1797ed37da09ddd23ba37d298f45ffd. These identify shipped revisions, not defect-introducing commits. The complete Git inventory contains 103 commits and 1,457 changed files, including substantial internal crate decomposition, CLI UI, other SDKs, tests and build-only changes. This is a complete inventory, not a claim that every patch was reviewed.
Reviewed all seven changed Node SDK implementation/type files and prioritized the integration-sensitive runtime changes:
- Optional user-message memory delivery, in-process UI-thread hosting, Autopilot continuation configuration and request-correlated completion. Runtime-owned continuation now defaults to enabled for SDK sessions, without changing the session mode. Existing host mode handling remains unchanged; replay is not proof of every live Autopilot/model decision.
- MCP lifecycle snapshot ordering, expired-grant rejection, stale OAuth fencing/catalog recovery, scoped host-trusted repository plugin preparation, subagent hook approval ownership, selected-model history shaping, HTTP compaction timeouts, and shutdown/local-diff persistence. Covered by direct contracts, full managed settings, synthetic providers and real-provider replay.
- Sandbox inherited
NO_PROXY/HTTP(S)ALL_PROXYhandling, persistent Linux sandbox-fork threads, and CA trust changes. On macOS/Linux the runtime now distrusts the emSign ECC Root CA - G3 key, including explicit CA bundles; this is an intentional upstream transport behavior change, not a VS Code workaround. - Native OTel implementation under
src/runtime/src/otelis unchanged. The monitoring-documentation change describes TLS trust filtering in shared native transport; GitHub analytics/model attribution changes are distinct from provider-native OTLP routing.
Native payload
Compared exact baseline/candidate npm artifacts for all eight SDK platform packages, including file hashes and the product include/exclude filters. Static ELF/PE/Mach-O inspection is not a replacement for packaged distribution checks.
- Linux x64/arm64 runtime executable and
runtime.node: identicalDT_NEEDEDand GLIBC version requirement sets between releases (maximum GLIBC 2.28). Musl artifacts also inventoried. No dependency-reference edits made; DEB/RPM guards still need the Product build. - macOS x64/arm64: a new shipped
libOneAuthInterop.dylib, signed by GitHub (VEKTX9H2N7), requires macOS 13.4. The upstreamCOPILOT_ENTRA_ONEAUTH=1path is opt-in and checks OS support; the existing main runtime deployment target is unchanged. All ten shipped prebuild signatures verified withcodesign --verify --strict. Existing desktop/server signing recursively covers native payloads; re-signing/universal packaging must still pass Product CI. - Windows OneAuth binaries changed and add Windows API-set imports (
api-ms-win-core-file-l1-2-0.dll, plus x64api-ms-win-core-sysinfo-l1-2-0.dll). These are not new third-party DLL dependencies. Windows execution/signing remains a cross-platform acceptance requirement. - Optional computer-use, keytar and mediaremote payloads remain excluded by existing product filters. Unsupported armhf behavior is unchanged.
Local execution evidence and retries
macOS arm64, Node 24.22.0, Full profile; same four-file dependency diff as the source revision above. The initial root install correctly rejected Node 24.18.0; rerunning plain `npm install` with 24.22.0 succeeded and installed both dependency roots locally. Pre-existing workspace dependency symlinks were removed before postinstall; no dependencies are shared between worktrees.
| Command/check | Result |
|---|---|
| `npm install` | Passed with Node 24.22.0; root/remote installed SDK/runtime, lock root declarations, all eight optional pins verified |
| `npm run typecheck-client` | Passed |
| `npm run build-fast -- --client-only` | Passed; output refreshed once before tests |
| `npm run gulp -- --tasks-simple` | Passed, including runtime-pin build guard |
| `node --test build/lib/test/copilot.test.ts` | 30 passed |
| `AGENT_HOST_TEST_PROFILE=full VSCODE_SKIP_PRELAUNCH=1 ./scripts/test-integration.sh --runGlob '**/agentHost/test/node/copilotSdk*.integrationTest.js' --reporter dot` | 14 passed |
| `env -u COPILOT_HOME -u COPILOT_CLI_ENABLED_FEATURE_FLAGS AGENT_HOST_TEST_PROFILE=full VSCODE_SKIP_PRELAUNCH=1 ./scripts/test.sh --runGlob '**/agentHost/test/node/{copilotAgent,copilotAgentSession,copilotAgentStartupConfig,copilotSessionLauncher}.test.js' --reporter dot` | 2,355 passed, 1 existing pending; startup, quick chat, disposal and owned-home cleanup |
| `env -u COPILOT_HOME -u COPILOT_CLI_ENABLED_FEATURE_FLAGS AGENT_HOST_TEST_PROFILE=full VSCODE_SKIP_PRELAUNCH=1 ./scripts/test.sh --runGlob '**/agentHost/test/node/{copilotMetadataConformance,copilotSandboxCertificate,copilotSandboxCertificateDiagnostics,copilotSandboxDiagnostics,copilotManagedSettings,copilotManagedModelConfiguration,copilotGitHubCredentials,copilotSlashCommand}.test.js' --reporter dot` | 271 passed |
| `AGENT_HOST_TEST_PROFILE=full VSCODE_SKIP_PRELAUNCH=1 ./scripts/test-integration.sh --run src/vs/platform/agentHost/test/node/e2e/providers/copilotManagedSettingsAgentHostE2E.integrationTest.ts --reporter dot` | 15 passed |
| `AGENT_HOST_TEST_PROFILE=full VSCODE_SKIP_PRELAUNCH=1 ./scripts/test-integration.sh --run src/vs/platform/agentHost/test/node/e2e/providers/copilotAgentHostE2E.integrationTest.ts --reporter dot` | 279 passed, 25 existing pending |
| `env -u COPILOT_HOME -u COPILOT_CLI_ENABLED_FEATURE_FLAGS AGENT_HOST_TEST_PROFILE=full VSCODE_SKIP_PRELAUNCH=1 ./scripts/test-integration.sh --run src/vs/platform/agentHost/test/node/e2e/providers/copilotOtelAgentHostE2E.integrationTest.ts --reporter dot` | 22 passed, including retained strict expected failure for inherited identity redaction |
| `env -u COPILOT_HOME -u COPILOT_CLI_ENABLED_FEATURE_FLAGS AGENT_HOST_TEST_PROFILE=full VSCODE_SKIP_PRELAUNCH=1 ./scripts/test-integration.sh --runGlob '**/agentHost/test/node/{copilotSdk*,providerIntegration/*,e2e/providers/copilotPromptsE2E,e2e/providers/codexAgentHostLive}.integrationTest.js' --reporter dot` | Final complete supplemental acceptance: 140 passed, 7 existing pending; full prompt matrix, every direct SDK entrypoint and every synthetic-provider suite |
| `env -u COPILOT_HOME -u COPILOT_CLI_ENABLED_FEATURE_FLAGS AGENT_HOST_TEST_PROFILE=full VSCODE_SKIP_PRELAUNCH=1 npm run test-agent-host-e2e -- --jobs 2` | First full run failed: Conformance 373 passed/15 pending; Claude 134/38; Codex 161/35 with 1 failure; Copilot 279/25; native OTel 22 passed; managed settings 15 passed. Owning-suite and full-run retries required |
| `env -u COPILOT_HOME -u COPILOT_CLI_ENABLED_FEATURE_FLAGS AGENT_HOST_TEST_PROFILE=full VSCODE_SKIP_PRELAUNCH=1 npm run test-agent-host-e2e -- --jobs 1` | Final complete acceptance passed in 928 seconds: Conformance 373/15 pending; Claude 134/38; Codex 162/35; Copilot 279/25; native OTel 22; managed settings 15. All six final summaries present: 985 passed, 113 existing pending |
| `git diff --check`; signed commit hooks | Passed; no TypeScript/layer edits requiring new lint/layer checks |
Entrypoint inventory accounted for 6 complete-runner, 22 supplemental and 19 explicitly outside-default-scope integration entrypoints before selection.
Failures are not being relabeled as passing runs:
1. A concurrent supplemental launch failed before test loading because both shell launchers initialized the shared crash directory. Retried serially without code changes.
2. Ambient `COPILOT_HOME`/`COPILOT_CLI_ENABLED_FEATURE_FLAGS=DYNAMIC_AUTO_TIERS` produced 105 passes, 7 pending and 16 failures (customization timeouts, image/mock synthetic model routing HTTP 400s, and the consequent console assertion). Removing only those ambient overrides command-locally resolved the Copilot failures; no product settings or actual user home were changed. This does not independently attribute the failure to one of the two variables.
3. That clean-environment batch still failed one unchanged Codex sandbox assertion: the full-access command's captured output omitted its final `workspace_write=0` line (126 passed, 7 pending, 1 failed). The exact fresh-process retry passed 1/1, the entire owning Codex sandbox suite passed 6/6, and the subsequent complete supplemental batch passed 140 with 7 pending. No deadlines or assertions changed; the precise introducing cause of the intermittent output loss is not established.
4. The first complete deterministic runner failed Codex's `regression coverage: an unstarted peer can execute its first tool turn after restart`: `subscribe` exceeded its unchanged 5-second RPC deadline. Captured host logs show an 11.866-second check of the isolated, empty Copilot discovery directory during the same restart; no model-request mismatch. The exact unchanged fresh-process retry passed in 2.563 seconds, the entire Codex owning suite passed 162 with 35 pending, and the subsequent complete serial runner passed all six suites (985 passed, 113 pending). Lowering runner concurrency was the only acceptance-command change. The first failed full run remains a separate failed result.
Cross-platform acceptance
In progress for b6b2e101f027d83a16d9651effbd12ced3fb2cfe:
-
GitHub Code OSS: in progress. Linux/macOS Electron jobs passed, and their logs contain all six Agent Host E2E final summaries with the Full profile. Windows Electron remains in progress. -
CodeQL, Component Fixtures, Monaco Editor checks, and Telemetry: passed. -
Azure full Product build 487755: queued only after final local acceptance. Verified exact source SHA and manual build reason;VSCODE_BUILD_TYPE=Product,VSCODE_PUBLISH=false,VSCODE_RELEASE=false,VSCODE_STEP_ON_IT=false,VSCODE_RUN_ARTIFACT_SANITY_TESTS=true. Manual + Product resolvesVSCODE_CIBUILD=false, and the resolved timeline includes separate Product architecture/signing stages, not the reduced CI layout.
Azure returned every shipping artifact flag enabled: Windows x64/arm64, Linux x64/arm64/armhf + Snap, Alpine x64/arm64, macOS x64/arm64/universal, and Web. DEB/RPM dependency guards, distribution generation, signing and artifact sanity outcomes are still pending and will be recorded before completion. No release/publication is authorized.
Remaining risks and review points
- Existing
KNOWN_ISSUES.mdgates and expected failures are retained, not fixed by this upgrade. Native managed identity denial still retains an explicitly inheriteduser.nameresource attribute; the strict expected-failure assertion reproduced with this candidate. - Credentialed Codex live steering and strict managed-model resume remain behind existing gates. Local replay supplies recorded model decisions; it does not certify live model behavior, enterprise network/CA deployment or opt-in OneAuth sign-in.
- Native OTel policy/routing tests are not a claim about every default exporter latency/shutdown path. No native batching/routing implementation changed; cross-platform packaged tests remain required.
- The new macOS native library, deliberate TLS distrust and default-on runtime Autopilot continuation are substantive upstream behavior changes worth reviewer attention even though this PR needs no host adaptation.
- Keep draft; do not infer merge readiness from local replay or isolated retries.
(Written by Copilot)