bug(summon): unmatched extension filters silently spawn tool-less workers
- Langage dominant
- Rust
- Étoiles
- 54.2k
- Forks
- 6.2k
- Merge moyen
- 3 j 4 h
- PR mergées (30 j)
- 240
Description
## Summary
An explicit delegate extensions filter compares strings only against ExtensionConfig.name and merely logs unmatched names. A config key such as exasearch therefore creates a child with zero tools when the extension name is Exa Search.
## Reproduction
With an enabled entry keyed exasearch and named Exa Search, extensions set to exasearch starts a child with zero tools while Exa Search exposes the tool. Platform names add another shape: developer works while Developer does not.
## Source evidence
build_task_config in crates/goose/src/agents/platform_extensions/summon.rs retains entries with filter.contains(ext.name()). Unmatched names produce only an internal warning. ExtensionConfig.key and name_to_key already define a normalized key shape.
## Expected
Accept normalized keys and names consistently. Any unmatched explicit extension should fail before provider or session work begins and list available names. An empty list should still mean no extensions.
## Verification
- display name and normalized key select the same extension
- unknown names return a visible error and spawn no child
- mixed valid and invalid filters fail
- empty disables all and omitted inherits
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
The issue is in crates/goose/src/agents/platform_extensions/summon.rs, specifically the build_task_config function. Start by examining ExtensionConfig.key and name_to_key to understand the normalized key shape. Then, modify the filter matching logic to compare against both name and normalized key, and ensure unmatched names produce a visible error before spawning a child. Run existing tests to verify the changes.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- rust
- Domaine
- cli, tooling
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- Active
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 65/100