[Bug] autoUpdate on extraKnownMarketplaces entry does not trigger plugin update at session start
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Shell
- Estrellas
- 11.2k
- Forks
- 1.9k
- Merge medio
- 14 h 16 min
- PR fusionados (30 d)
- 6
Descripción
Describe the bug
The changelog for 1.0.79 documents:
Set "autoUpdate": true on an extraKnownMarketplaces entry in your user settings to auto-update its plugins at session start
This does not happen. With autoUpdate: true set on an extraKnownMarketplaces entry and an installed plugin from that marketplace deliberately pinned to an older version (both in ~/.copilot/config.json and the cached .plugin/plugin.json/.claude-plugin/plugin.json), starting a brand-new CLI session (full process relaunch, not /restart) does not check for or apply an update. No log line referencing a plugin/marketplace update check appears anywhere in the session's debug log at startup.
Separately, when the update mechanism is triggered manually (copilot plugin update <name>), it worked correctly once a Windows file-lock (held by lingering VS Code / github-copilot-sdk background processes on the shared ~/.copilot/installed-plugins cache) was cleared. That confirms the underlying reinstall codepath is functional — the gap is specifically that automatic checking/triggering at session start never occurs, and (separately) that a locked-file failure during any such attempt would fail silently with no user-visible warning.
Steps to reproduce
- In user settings (
~/.copilot/settings.jsonor via/settings), add/confirm anextraKnownMarketplacesentry with"autoUpdate": true, e.g.:"extraKnownMarketplaces": { "my-marketplace": { "source": { "source": "git", "url": "https://example.com/my-org/my-plugins" }, "autoUpdate": true } } - Have a plugin from that marketplace installed and enabled (e.g. version
0.2.0). - Manually edit
~/.copilot/config.json(installedPlugins[].version) and the plugin's cached manifest (~/.copilot/installed-plugins/<marketplace>/<plugin>/.claude-plugin/plugin.jsonversionfield) down to an older version (e.g.0.1.0), leavingsource_shauntouched. - Fully quit the CLI process (not
/restart— a true new process launch) and startcopilotagain. - Inspect
~/.copilot/config.jsonand the cachedplugin.jsonagain, and check~/.copilot/logs/process-*.logfor the new session for any plugin/marketplace update activity.
Expected behavior
On session start, the CLI should detect the installed plugin version is behind the marketplace's current version and automatically reinstall/update it (per the documented 1.0.79 changelog entry), updating config.json, the cached manifest, and installed_at.
Actual behavior
- The plugin version in
config.jsonand the cached manifest remains at the older pinned version after a full CLI relaunch. installed_attimestamp is unchanged, confirming no reinstall attempt occurred.- The startup debug log shows no entries related to checking plugin/marketplace versions or auto-updating — it goes directly from initialization to loading/activating the existing cached plugins:
...Init suggestion check completed ...Loaded MCP config from installed plugins: 3 server(s): ... ...Plugin activation [agents]: fingerprint=..., plugins=11, loaded=14 - Running
copilot plugin update <plugin-name>manually does work once file locks are cleared, confirming the reinstall codepath itself is functional — it's just never invoked automatically at session start as documented.
Environment
- GitHub Copilot CLI: 1.0.79
- OS: Windows 11
- Node.js: v24.18.1
- Marketplace: private git-hosted
extraKnownMarketplacesentry withautoUpdate: true
Additional context
While testing this, we also observed that a Windows file-lock on the shared ~/.copilot/installed-plugins/<marketplace>/<plugin> cache directory (held by lingering github-copilot-sdk background processes, e.g. from VS Code's Copilot extension) causes a manual copilot plugin update <plugin> to fail with Failed to install plugin: Access is denied. (os error 5). If the same lock were encountered during an automatic session-start check, it would likely fail silently with no user-facing message — worth surfacing a warning/error in that case rather than no-op.
🤖 This issue was drafted with assistance from GitHub Copilot CLI.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con la ruta de inicio de sesión que carga extraKnownMarketplaces y compárala con el comando copilot plugin update . Reprodúcelo usando ~/.copilot/config.json, los archivos plugin.json almacenados en caché bajo ~/.copilot/installed-plugins y el registro de depuración de la sesión. Se considera terminado cuando un reinicio completo actualiza los metadatos del plugin y installed_at, mientras que los fallos, como los bloqueos de archivos de Windows, producen una advertencia visible.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- node.js
- Área
- cli, tooling
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Tranquilo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 48/100