Bug Description
copilot plugin update <name> fails with Plugin "<name>" has no source information and cannot be updated for plugins installed directly from a GitHub repository (not via a marketplace).
Duplicate of #1290
Steps to Reproduce
copilot plugin install lossyrob/phased-agent-workflow
copilot plugin update paw-workflow
Expected Behavior
The update command should re-fetch the plugin from the original source repository and update the installed version.
Actual Behavior
Failed to update plugin: Plugin "paw-workflow" has no source information and cannot be updated
Observations
When a plugin is installed directly from owner/repo, the install source is not persisted to ~/.copilot/config.json. The installed_plugins entry has no source field. The update command then can't determine where to fetch from.
Interestingly, if you manually add the source to the config and successfully update once, subsequent updates work — suggesting the update code path does persist the source, but the initial install path does not.
Workaround
Manually add the source to ~/.copilot/config.json:
{
"name": "your-plugin",
"marketplace": "",
"source": {"source": "github", "repo": "owner/repo"},
...
}
Environment
- CLI version: 0.0.422-0 (also reproduced on 1.0.2)
- OS: macOS (arm64)
Bug Description
copilot plugin update <name>fails withPlugin "<name>" has no source information and cannot be updatedfor plugins installed directly from a GitHub repository (not via a marketplace).Duplicate of #1290
Steps to Reproduce
Expected Behavior
The update command should re-fetch the plugin from the original source repository and update the installed version.
Actual Behavior
Observations
When a plugin is installed directly from
owner/repo, the install source is not persisted to~/.copilot/config.json. Theinstalled_pluginsentry has nosourcefield. The update command then can't determine where to fetch from.Interestingly, if you manually add the source to the config and successfully update once, subsequent updates work — suggesting the update code path does persist the source, but the initial install path does not.
Workaround
Manually add the source to
~/.copilot/config.json:{ "name": "your-plugin", "marketplace": "", "source": {"source": "github", "repo": "owner/repo"}, ... }Environment