github / github/app

Marketplace-installed canvas plugins are not discovered

オープン
#2,073 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
Bugs
主要言語
言語のデータがありません
スター
2.1k
フォーク
153
PR マージ指標
30日以内にマージされた PR はありません

説明

### 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`.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

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.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
javascript
領域
desktop, tooling
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
65/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。