Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Enterprise managed `model` setting is received but not applied in the Copilot app and non-interactive CLI

Open
#4,959 0 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
65/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
rust, shell

Research direction

The issue is in the runtime's model resolution path for non-interactive sessions. Start by examining the log output and the managed settings loading code, likely in a Rust module like model_bindings::api_resolver. Compare the interactive vs. non-interactive session initialization. Look for where the model key from managed-settings.json is read and applied. Check the session type detection and ensure the enterprise setting overrides the default. Run the CLI with -p and inspect the logs to see the flow.

Written by the indexing model from the issue text.

Description

triage
Describe the bug

Enterprise managed settings (copilot/managed-settings.json in the .github-private configuration source) contain { "model": "auto" }. The runtime log shows the server policy is fetched with keys=[model,permissions], but immediately afterwards the model resolver picks the built-in default (gpt-5.6-sol) instead of Auto.

Interactive CLI sessions in a terminal do honor the setting (new sessions show Auto). Sessions started by the GitHub Copilot desktop app, and CLI runs with -p or piped stdin, do not.

Affected version

Copilot CLI 1.0.89-1; GitHub Copilot app 1.1.23; macOS (Darwin 25.6). No MDM or file-based managed settings on the device.

Steps to reproduce the behavior
  1. Set the enterprise configuration source to a .github-private repo whose copilot/managed-settings.json is { "model": "auto" }. Confirm the AI controls "Configuration summary" shows it.
  2. Wait for propagation (runtime log shows server policy served ... keys=[model,permissions]).
  3. Run copilot -p "Reply with the model name you are running as" or start a new session in the Copilot app.
  4. Observe the session runs on gpt-5.6-sol. Same on a clean COPILOT_HOME with no user settings or remembered model. copilot --model auto works, so Auto is available to the account.

Runtime log (~/.copilot/logs/process-*.log):

[managedSettings] device MDM: no policy present on this device
[managedSettings] server policy served from fresh cache (age 47512ms) for https://github.com: bypassDisabled=false, keys=[model,permissions]
[managedSettings] effective policy resolved: source=server, bypassDisabled=false, serverFetchFailed=false, policyHelperFailed=false, policyHelperFailClosed=false
[rust:model_bindings::api_resolver] Using default model: gpt-5.6-sol
Expected behavior

Per the enterprise managed settings reference, model "sets your preferred model as the default for new conversations" and is listed as supported for Copilot CLI and the Copilot app. New sessions should start on Auto in both, including non-interactive runs.

Additional context

Interactive terminal sessions apply it correctly, so the gap appears to be in the non-interactive / app session path of the runtime. Happy to share a full redacted runtime log.

Dominant language
Shell
Stars
11.2k
Forks
1.9k
Avg merge
14h 16m
Merged PRs (30d)
6

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from github/copilot-cli

All issues in github/copilot-cli

Similar issues

More Shell/Bash issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.