A developer uses a coding assistant as an enterprise AI policy dashboard syncs secure settings across devices.
GitHub is tightening its two main Copilot governance controls. On October 13, 2026, it announced that enterprise administrators can now require supported GitHub Copilot clients to retrieve current server-managed settings at startup instead of relying on a cached policy. In the same changelog post, GitHub said it is adding minimum client version requirements to governance-focused managed settings keys over time, starting with the sandbox key.

The first change stops clients from starting with an outdated policy. The second blocks old clients that can't enforce the new sandbox settings. Both make Copilot stricter about policy, and both add some operational risk. Here is what changed, who it affects, and what to check before you turn either one on.

A developer uses a coding assistant as an enterprise AI policy dashboard syncs secure settings across devices. Change one: forceRemoteSettingsRefresh stops clients starting on a cached policy​

What it does​

By default, Copilot clients keep a cached copy of managed settings. That speeds up startup and keeps Copilot working through short service problems. The downside is that if you tighten a policy at 9:00, a client can still run on the older cached copy for a while afterwards.

The new switch closes that gap. According to GitHub, you set forceRemoteSettingsRefresh to true through server-managed, MDM-managed, or file-based settings when a policy change must take effect before Copilot starts. The setting is supported in Copilot CLI, VS Code, and the GitHub Copilot app.

The main rules:

  • No cached answers: While the setting is active, a cached response cannot satisfy the freshness requirement.
  • Fail closed: If the client cannot confirm current policy, it fails closed rather than running with a stale or unconfirmed policy.
  • Opt-in only: Without this setting, clients continue to use the normal managed-settings cache for faster startup and resilience during transient service failures.

Delivery method decides when it starts working​

How you deliver the setting affects when it takes effect. MDM-managed and file-based delivery can require freshness before the client signs in for the first time. A server-managed value begins requiring refreshes on subsequent startups after the client has received it once.

If you set it only on the server, a brand-new device can still have one unenforced startup before it picks the setting up. If that first session matters, deliver the setting through MDM or a managed settings file. GitHub's reference documentation also notes that policy helper scripts cannot set this key.

Windows admins: use a string value in the registry​

GitHub's documentation lists two formats. In managed-settings.json, use a JSON Boolean, for example "forceRemoteSettingsRefresh": true. However, when configuring Copilot CLI through the Windows registry or macOS managed preferences, store this value as a string containing true or false. Do not use a DWORD or native Boolean.

Many Windows admins would create a DWORD for a true/false setting out of habit. Here that's the wrong value type. Use a string value containing true.

What users see when the refresh fails​

The documented behavior is different in each client. GitHub's enterprise managed-settings reference says that in Copilot CLI (and, in the Enterprise Cloud version of the page, the Copilot app), this skips the normal one-hour cache and prevents fallback to an older cached policy if the download fails. An unsuccessful refresh leaves the policy unconfirmed, so affected operations are restricted. In VS Code, Copilot features are blocked until the required refresh succeeds. Users therefore need a network connection when starting the client.

The Copilot CLI release notes give more detail on what "restricted" means. In version 1.0.81, GitHub changed it so that when set, the cached managed-settings policy is never served or used as a fetch-failure fallback (skipping both the 1h fast path and the 24h stale fallback). Concretely, until a fresh policy is fetched the session applies the restrictive undetermined-policy posture: non-default MCP servers are blocked, bypass-permissions mode cannot be enabled, and policy-gated plugin install/update mutations are blocked.

Check which CLI version you have​

The setting did not always fail closed. When the key first appeared in Copilot CLI 1.0.78, the release notes said managed settings would fall back to the persistent cache whenever a server-managed settings fetch fails for any reason. They would even fail open — starting without the unconfirmed server restriction rather than the prior fail-closed behavior — when no usable cached policy is available. That changed in 1.0.81.

If some developers have pinned the CLI to an older build, setting the key may not give you the fail-closed behavior described here. Treat 1.0.81 as the earliest build where the behavior matches. This is our reading of the release notes, not an official GitHub minimum.

On the VS Code side, WindowsForum's coverage of VS Code 1.141 noted a fix for organizations that use forceRemoteSettingsRefresh. Chat now keeps your selected agent during policy checks instead of dropping back to Ask or Edit.

Section summary: forceRemoteSettingsRefresh means clients must confirm the current policy before running, with no fallback to cache. Deliver it through MDM or a file if it needs to apply from the first startup. Store it as a string in the Windows registry. Expect blocked or restricted Copilot sessions whenever GitHub can't be reached at launch.

Change two: older clients are blocked when sandbox is managed​

What changed​

The second change ties enforcement to the client version. GitHub says it has added enforcement of a required minimum client version to the sandbox key in support of the generally available local sandbox capability. When this key is included in managed settings, users who pin to older versions of Copilot clients will now be forced to update in order to resume using Copilot.

The reason is straightforward. A policy is only useful if the client can enforce it. A sandbox requirement means nothing to a client built before the sandbox engine existed. Before this change, that client could simply keep running unsandboxed.

Why the sandbox key is first​

The timing explains why sandbox gets the first version gate. GitHub announced on October 7 that local sandboxing for GitHub Copilot became generally available on October 7, 2026 in Copilot CLI, the Copilot app and VS Code sessions that use Agent Host.

According to GitHub's reference, the managed sandbox key enforces minimum local sandbox restrictions for Copilot CLI, Copilot Agent Host sessions in VS Code, and the GitHub Copilot app. Managed sandbox settings impose restrictions rather than defaults. That makes it a floor developers can't lower. The CLI changelog describes the same idea from version 1.0.76: managed settings tighten (but never loosen) the user's sandbox policy.

The VS Code scope is narrower than it may look. The documentation's supported-keys table lists VS Code sandbox support only for Agent Host, version 1.138.0 and later. In WindowsForum's earlier VS Code 1.141 coverage, the sandbox covers terminal commands and their child processes, plus MCP and language servers that the Agent Host launches when sandboxing is on. Built-in tools that don't start OS processes use their own permission checks.

What's still unknown​

The available evidence doesn't confirm the exact minimum version for each client under the new gate. The 1.138.0 figure is when VS Code Agent Host sandbox support began. It is not necessarily the version the new enforcement checks for. Get the current version table from GitHub's enterprise managed-settings documentation before you roll this out.

GitHub also says other governance keys will get version requirements "over time." It hasn't said which keys or when.

Section summary: If sandbox is in your managed settings, clients too old to enforce it lose Copilot access until they update. That stops users from avoiding the policy by pinning an old version, but it can also cut off developers who pin versions for stability.

What admins should do​

Here's a sensible rollout order, based on GitHub's documented behavior:

  1. Inventory client versions first. Find developers who pin Copilot CLI versions in scripts, containers or package manifests, and VS Code installs with auto-update turned off. They'll be the first blocked when sandbox enforcement applies.
  2. Pilot the sandbox policy on a small group. Start with a minimal policy and check that builds, package restores and tests still work.
  3. Decide whether you actually need forced refresh. It makes sense when a stale policy is a real risk, such as revoking an MCP server or tightening sandbox rules after an incident. It costs you offline and service-outage resilience, which matters for laptops on poor hotel Wi-Fi or air-gapped networks.
  4. Use the right delivery channel. Use Intune or other MDM, or a managed settings file, if the refresh requirement must apply from the first launch. On Windows, set the registry value as a string.
  5. Warn the help desk. "Copilot won't start" and "Copilot says I must update" are the two tickets these changes are most likely to create.

Analysis: stricter controls, with trade-offs​

These changes show where enterprise AI tooling is going. Agentic Copilot can now run shell commands, start MCP servers and use credentials, so a cached policy or an outdated client is now a real security gap.

Both new controls choose security over availability, and GitHub doesn't hide that trade-off. Caching stays the default for good reason. A company that turns on forced refresh everywhere is betting that GitHub's settings service is always reachable. That's fine until the morning it isn't and the whole engineering team loses Copilot until it comes back.

There's a fair counterargument too. Version gates can conflict with change-control processes in which teams pin tools for reproducible builds. Being "forced to update in order to resume using Copilot" is not a message regulated teams want to see mid-sprint. Since GitHub plans to add more gated keys over time, admins should read the Copilot changelog as closely as Patch Tuesday notes.

Summary​

GitHub's October 13 update gives Copilot administrators two stricter controls. forceRemoteSettingsRefresh requires a current policy before Copilot runs in the CLI, VS Code or the Copilot app. A minimum-version gate on sandbox means older clients can't run unsandboxed when your policy requires sandboxing. Both work as described, and both affect availability. Check client versions, pilot first, and keep caching on unless an outdated policy is a real risk for you.

 

References

  1. Enterprise managed settings enforcement updates GitHub Changelog 2026-10-13T15:20:10+00:00
  2. Enterprise managed settings - GitHub Enterprise Cloud Docs docs.github.com
  3. Enterprise managed settings - GitHub Docs docs.github.com