Extension loader does not follow symlinks in .github/extensions/
- 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ả
## Summary
The extension loader does not detect extensions that are symlinked into `.github/extensions/`. Only real (copied) directories are discovered.
## Steps to Reproduce
1. Have a canvas extension in a repo directory (e.g. `extensions/marp-viewer/`) with dependencies installed (`node_modules` present) — see [cedricvidal/copilot-extensions](https://github.com/cedricvidal/copilot-extensions/) for the Marp Viewer canvas extension used to reproduce this
2. Create a symlink: `ln -s ../../extensions/marp-viewer .github/extensions/marp-viewer`
3. Reload extensions → **0 extensions found**
4. Copy the same directory instead: `cp -r extensions/marp-viewer .github/extensions/marp-viewer`
5. Reload extensions → **1 extension found and running**
## Expected Behavior
Symlinked extension directories in `.github/extensions/` (and `~/.copilot/extensions/`) should be followed and loaded like regular directories.
## Why This Matters
- **Development workflow:** Symlinks are useful when the extension source lives elsewhere in the repo (or in a monorepo) and you don't want to duplicate files. The current behavior forces a copy, which makes iterating on extensions harder.
- **Third-party extension management:** Supporting symlinks would enable tooling similar to `npx skills` to manage extensions by symlinking them into the extensions directory, rather than copying or inlining them.
## Environment
- macOS (Darwin)
- GitHub Copilot App (technical preview)
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu bằng cách tái hiện vấn đề với một symlink trong .github/extensions/ và tải lại các extension; so sánh với một thư mục được sao chép, sau đó kiểm tra cách loader xử lý cả .github/extensions/ và ~/.copilot/extensions/. Hoàn tất khi các thư mục extension được liên kết bằng symlink được phát hiện và chạy như các thư mục thông thường.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- macos, node.js
- 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
- 55/100