github / github/app

Marketplace-installed canvas plugins are not discovered

Offen
#2,073 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Bugs
Vorherrschende Sprache
Keine Sprachdaten
Sterne
2.1k
Forks
153
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

### Short summary

Marketplace-installed canvas plugins are enabled but their root-level `extension.mjs` is not discovered.

### Affected version or release

GitHub Copilot app 1.0.23
Bundled Copilot CLI 1.0.71-2
Windows

### Installation context

Installed `color-orb@awesome-copilot` through the GitHub Copilot app plugin marketplace for the current user.

### What happened?

The plugin installs successfully to:

`~\.copilot\installed-plugins\awesome-copilot\color-orb`

It is enabled in `settings.json`, and `copilot plugin list` reports:

`color-orb@awesome-copilot (v1.0.0)`

The corresponding `extension.mjs` is located directly in the resolved directory. However, the extension provider is not launched and the Color Orb canvas does not appear in the canvas catalog.

Copying the same plugin directory to:

`~\.copilot\extensions\color-orb`

causes it to be discovered and work as expected.

### Steps to reproduce

1. Open the GitHub Copilot app.
2. Install `color-orb@awesome-copilot` from the plugin marketplace.
3. Confirm that it appears in `copilot plugin list`.
4. Confirm that `extension.mjs` exists at `~\.copilot\installed-plugins\awesome-copilot\color-orb\extension.mjs`.
5. Open or reload a Copilot session.
6. Observe that the Color Orb canvas is not available.
7. Copy the plugin directory to `~\.copilot\extensions\color-orb`.
8. Reload extensions or open another session.
9. Observe that the canvas is now available.

### Expected behavior

A plugin manifest with `"extensions": "."` should cause the resolved plugin directory itself to be checked for `extension.mjs`, and the canvas should become available after installation.

### Additional context

The app does perform its plugin live-session refresh after installation, so this does not appear to be a missing restart or refresh.

Investigation points to a path-semantics mismatch:

- Plugin resolution returns the expected directory: `~\.copilot\installed-plugins\awesome-copilot\color-orb`
- Passing that directory to `extensionDiscoverAll` produces no plugin extension.
- Passing its parent directory causes discovery to find `~\.copilot\installed-plugins\awesome-copilot\color-orb\extension.mjs`.

This suggests plugin extension discovery treats each resolved path as a container whose immediate children are extension directories, while `"extensions": "."` resolves directly to the extension directory containing `extension.mjs`.

The runtime should check the resolved directory itself for `extension.mjs`, while optionally continuing to scan its immediate children.

This likely affects every marketplace canvas plugin using the same `"extensions": "."` convention, not only Color Orb.

Current workaround: copy or symlink the plugin directory into `~\.copilot\extensions`.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Start at the extensionDiscoverAll entry point and reproduce the issue with the marketplace-installed color-orb plugin, checking its root-level extension.mjs under the resolved installed-plugins directory. Done means a plugin manifest using "extensions": "." is discovered after installation and the Color Orb canvas appears, while immediate child extensions continue to work.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript
Bereich
desktop, tooling
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
65/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.