microsoft / microsoft/vscode

agentHost: adopt runtime #16249 and graduate the legacy-settings bridge gate

Open
#332,011 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
193k
Forks
42.4k
PR merge metrics
PR metrics pending

Description

## Context

The runtime fix that unblocks the legacy-settings → managed-settings bridge has **merged**: github/copilot-agent-runtime#16249 makes **client/session-injected** managed permissions *non-activating* (their `deny`/`ask`/`disableBypassPermissionsMode` still bind, but they no longer flip unmatched shell/read/write/URL/factory requests to "default ask"). External server/MDM layers keep today's activating lockdown. It is behavior-only and **source-based — no new wire field**, so VS Code sends nothing new.

Refs: bridge PR microsoft/vscode#331415 (merged), SDK/runtime issue github/copilot-sdk-internal#243, runtime PR github/copilot-agent-runtime#16249 (merged).

## Remaining VS Code-side work (sequenced — order matters)

### 1. Adopt the runtime (the only "adopt" step)
- [ ] Bump `@github/copilot-sdk` (currently **1.0.11** in root `package.json`) to a build whose **bundled runtime** contains #16249.
- [ ] Coordinated-change checks: SDK bundles platform binaries; verify the SDK **protocol version** and re-record/validate the agent-host **e2e replay fixtures** (CapiReplayProxy) if needed.
- [ ] Smoke-test with the gate enabled: a lone `chat.agent.deniedNetworkDomains` entry (or a single terminal `false` rule) binds, but unrelated shell/read/write requests are **no longer** forced to prompt.

### 2. Update now-stale docs (do WITH the bump, not before)
Against the currently-bundled 1.0.11 runtime the broadening still happens, so these are accurate until the bump — update them in the same PR:
- [ ] `resolveManagedSettingsPermissions` JSDoc in `src/vs/platform/agentHost/common/agentHostManagedSettings.ts` (the "Contributing any rule … makes the runtime's managed policy active … unmatched … require approval" paragraph) — that broadening no longer applies to the client-injected layer.
- [ ] The "Known behavior, documented rather than changed" section carried over from PR #331415's description, if reused anywhere.

### 3. Graduate the gate (the payoff)
- [ ] After the bumped runtime is confirmed in the shipping build, flip `chat.agentHost.copilot.mapLegacySettingsToManagedSettings` on by default and/or remove the setting. **Never ship on-by-default against an old runtime** (would re-introduce the broadening).

## Explicitly NOT changing (verified against #16249's merged diff)
- The **"no `allow` list"** rationale still holds — #16249 only touched the deny/ask activation branch and the compose flag; `allow`-intersection / `managed_allow` auto-approval semantics are untouched.
- Host-side `SessionPermissionManager` **stays** — still shared by Claude/Codex (which don't consume managed settings) and remote hosts (which receive `{}`). #16249 does not unblock removing it.
- Expressiveness-gap mappings (edit patterns/last-match-wins, regex terminal rules, allow-list *blocking*, per-tool eligibility) remain separate SDK-side work.

Contributor guide

Open the contributing guide

Research direction

Start with root package.json and the runtime version bundled by @github/copilot-sdk, then read resolveManagedSettingsPermissions in src/vs/platform/agentHost/common/agentHostManagedSettings.ts. Validate the SDK protocol and CapiReplayProxy agent-host replay fixtures, and smoke-test the gate with a deny/false rule. Done means the runtime bump is confirmed, stale documentation is updated, and the legacy-settings gate is safely graduated.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
developer-experience, testing, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.