-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Description
Describe the bug
PR #6964 moved delegate from an unconditional builtin into the summon platform extension. Recipes with an explicit extensions: block that omit summon silently lose access to delegate with no error or warning.
To Reproduce
- Create a recipe with an explicit
extensions:block that omitssummonbut usesdelegatevia inline instructions - Run:
goose run --recipe your-recipe.yaml delegateis unavailable; the agent does not spawn sub-agents
Expected behavior
delegate is available in any recipe session, consistent with pre-#6964 behavior where subagent was registered unconditionally in agent.rs regardless of the recipe's extensions: block.
Additional context
resolve_extensions_for_new_session treats a recipe's extensions: block as exclusive and does not merge with ~/.config/goose/config.yaml. If summon is absent, delegate is never registered.
Commit b01e58b16 auto-injects summon for recipes with a sub_recipes: field but does not cover recipes that invoke delegate via inline instructions.
Workaround: add summon to the recipe's extensions: block:
extensions:
- type: platform
name: summon
- type: builtin
name: developerProposed fixes
- Extend
ensure_summon_for_subrecipesto cover all recipes, not just those withsub_recipes: - Emit a warning when a recipe session starts without
summonloaded - Add a migration note to the recipe authoring docs