Policy-driven enabledPlugins installs the plugin but persists "enabled": false, so it never activates (1.0.83) — reproduces via device/MDM and repo-level settings
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 48/100
Piste de recherche
Commencez par reproduire le flux des policies avec managed-settings.json et .github/copilot/settings.json, puis examinez le chemin de démarrage interactif et le ~/.copilot/config.json qui en résulte. Comparez les entrées pilotées par les policies avec les entrées des paramètres utilisateur et utilisez copilot plugins list ainsi que copilot plugins update --all pour vérifier le comportement. Le travail est considéré comme terminé lorsqu’une entrée enabledPlugins est installée avec enabled: true et que ses skills sont actifs lors d’un démarrage interactif ultérieur.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Describe the bug
A policy/configuration-driven enabledPlugins entry installs the named plugin to disk, but records it in ~/.copilot/config.json as "enabled": false. The plugin's skills never activate, and the state does not self-correct on subsequent interactive starts. There is no error or warning.
This reproduces via two independent delivery channels, which suggests the defect is in the shared policy-install path rather than in any one channel:
- Device/MDM —
%ProgramFiles%\GitHubCopilot\managed-settings.json(source=mdm) - Repository/folder-level —
.github/copilot/settings.jsonin a trusted folder, with no managed policy present at all (effective policy resolved: source=none)
In both cases the plugin is fetched and written to disk correctly and then left inert.
This is the same symptom as #4283 (closed as completed on 2026-09-03, no fix version stated), which was reported against the server-managed channel. It is distinct from #4039: there the plugin was marked installed/enabled but never synced to disk — here the sync to disk succeeds and the enablement flag is the thing that is wrong.
Affected version
GitHub Copilot CLI 1.0.83 (Windows, x86_64). Latest published at time of writing (npm view @github/copilot version → 1.0.83).
Steps to reproduce the behavior
-
Create
%ProgramFiles%\GitHubCopilot\managed-settings.json, owned byBUILTIN\Administrators:{ "extraKnownMarketplaces": { "example-marketplace": { "source": { "source": "github", "repo": "org-name/marketplace-repo" }, "autoUpdate": true } }, "enabledPlugins": { "example-plugin@example-marketplace": true } }org-name/marketplace-repois a private repository the signed-in user has access to.example-pluginis not installed and does not appear in~/.copilot/settings.json. -
Start an interactive session from a folder listed in
trustedFoldersin~/.copilot/config.json(auto-install does not fire in-pmode, cf. #4507):copilot --log-level debug --log-dir <dir> -
Confirm from the log that the policy loaded:
[managedSettings] device MDM policy loaded: bypassDisabled=false, keys=[enabledPlugins,extraKnownMarketplaces] [managedSettings] effective policy resolved: source=mdm, bypassDisabled=false, serverFetchFailed=false, ... -
Exit the session, then inspect the install directory and
~/.copilot/config.json. -
Start a second interactive session in the same folder and re-inspect.
Expected behavior
example-plugin@example-marketplace is installed and enabled, and the skills it contributes are available.
Actual behavior
The plugin is installed, with its skills present on disk:
~/.copilot/installed-plugins/example-marketplace/example-plugin/
├── .claude-plugin/plugin.json
└── skills/<skill-name>
But ~/.copilot/config.json records it as disabled:
{
"name": "example-plugin",
"marketplace": "example-marketplace",
"installed_at": "...",
"cache_path": "...",
"source_sha": "...",
"enabled": false
}
Consequences observed:
- The skill it contributes does not appear in
copilot plugins listand is not active in-session. - A second interactive start leaves
enabled: falseunchanged. - Plugins that appear in the user's own
settings.jsonshow"enabled": truein the sameconfig.json, so only the policy-driven entry is affected. copilot plugins update --allreportsProcessed 8 installed pluginsand does not consider the policy-named plugin.
Additional context
- The same policy file's
modelkey is enforced — the session switched to the model named in policy — so the device channel is being honoured and parsed correctly (keys=[enabledPlugins,extraKnownMarketplaces,model]). The defect is specific to the enablement flag for policy-installed plugins. - Practical impact for an enterprise rollout: a policy can place a plugin on every machine and leave it inert. Plugins whose value is in the hooks they contribute silently never run, so presence on disk is not a usable success signal — the
enabledflag inconfig.jsonhas to be checked instead. That makes the failure easy to mistake for a successful deployment. - The documented semantics for the key are "Defines plugins that are automatically installed or blocked for all enterprise users", which reads as covering enablement as well as installation.
- Langage dominant
- Shell
- Étoiles
- 11.2k
- Forks
- 1.9k
- Merge moyen
- 14 h 16 min
- PR mergées (30 j)
- 6
Préparer son environnement
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de github/copilot-cli
-
triage
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
github/copilot-cli#4963 ·
Les mainteneurs répondent en général sous 1 jour
-
triage
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
github/copilot-cli#4932 ·
Les mainteneurs répondent en général sous 1 jour
-
triage
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
github/copilot-cli#4909 ·
Les mainteneurs répondent en général sous 1 jour
-
triage
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
github/copilot-cli#4906 ·
Les mainteneurs répondent en général sous 1 jour
-
triage
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
github/copilot-cli#4848 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de github/copilot-cli
Issues similaires
-
area:lint-tooling bug
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
InauguralSystems/EigenScript#1340 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
Les mainteneurs répondent en général sous 1 jour
-
Update vtm to 2026.9.26Ouvertepackage-update
Difficulté 1/5 Moins d'une heure Accessibilité débutants 78/100
oSoWoSo/vOid_Community_repOsitory#195 · 1 commentaire ·
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 92/100
obra/superpowers#2385 ·
Les mainteneurs répondent en général sous 2 jours
-
follow-up
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
yschimke/homeassistant-remotecompose#680 ·
Les mainteneurs répondent en général sous 1 jour