Extension loader does not follow symlinks in .github/extensions/
- Langage dominant
- Aucune donnée de langage
- Étoiles
- 2.1k
- Forks
- 153
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
## 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)
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par reproduire le problème avec un symlink dans .github/extensions/ et rechargez les extensions ; comparez-le ensuite avec un répertoire copié, puis vérifiez comment le loader gère à la fois .github/extensions/ et ~/.copilot/extensions/. C’est terminé lorsque les répertoires d’extensions liés par symlink sont détectés et exécutés comme des répertoires ordinaires.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- macos, node.js
- Domaine
- desktop, tooling
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 55/100