github / github/app

Extension loader does not follow symlinks in .github/extensions/

Offen
#868 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

## 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)

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne damit, das Problem mit einem Symlink in .github/extensions/ zu reproduzieren, und lade die Extensions neu; vergleiche das Ergebnis anschließend mit einem kopierten Verzeichnis und prüfe dann, wie der Loader sowohl .github/extensions/ als auch ~/.copilot/extensions/ behandelt. Als abgeschlossen gilt die Aufgabe, wenn Extension-Verzeichnisse über Symlinks entdeckt und wie reguläre Verzeichnisse ausgeführt werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

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

Neue Issues direkt in Ihr Postfach

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