aaif-goose / aaif-goose/goose

Define canonical identity for imported extensions

Ouverte
#11,735 0 commentaires 0 réactions 1 personne assignée Assignée à @jbg Voir sur GitHub
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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.