Define canonical identity for imported extensions
- Langage dominant
- Rust
- Étoiles
- 54.2k
- Forks
- 6.2k
- Merge moyen
- 3 j 4 h
- PR mergées (30 j)
- 240
Description
**What problem would this solve?**
Imported extension mappings can contain an outer configuration key and an embedded extension name that disagree. Different listing, lookup, enablement, and removal paths currently treat different values as authoritative, making compatibility and mutation behavior ambiguous.
**What would a good outcome look like?**
Every extension has one stable identity across import, display, lookup, enable, disable, removal, and session startup. Existing mismatched configurations have an explicit migration or rejection path, and collisions cannot silently select or retain a different executable extension.
**Possible approaches**
- Reject mismatched mappings during import and parsing.
- Canonicalize and migrate legacy mappings with collision checks and clear diagnostics.
- Preserve raw storage IDs internally while exposing an immutable separate canonical ID.
- Define how built-ins, normalized aliases, and duplicate embedded names interact.
**Additional context**
Acceptance tests should cover lookup precedence, failed-revocation cases, legacy migration or rejection, collisions, and both legacy and state-machine session startup.
- [x] I have verified this does not duplicate an existing feature request
Do not begin implementation until the issue reaches **Ready** on the [Goose Issues board](https://github.com/orgs/aaif-goose/projects/1).
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
L’issue concerne la gestion de l’identité des extensions importées dans le goose AI agent. Commencez par examiner le code qui gère l’importation, l’analyse, le stockage et la recherche des extensions (probablement dans des modules liés à la gestion des extensions ou à la configuration). Examinez les tests existants sur le comportement des extensions afin de comprendre les incohérences actuelles. L’objectif est de définir une identité canonique unique et de garantir un comportement cohérent dans toutes les opérations, y compris les chemins de migration pour les configurations héritées.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- rust
- Domaine
- ai-infra-agents, backend
- Type d'issue
- Refactorisation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- Active
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100