github / github/app

Marketplace-installed canvas plugins are not discovered

Đang mở
#2,073 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Bugs
Ngôn ngữ chính
Không có dữ liệu ngôn ngữ
Star
2.1k
Fork
153
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

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

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
javascript
Lĩnh vực
desktop, tooling
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Ít trao đổi
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
65/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.