-
Notifications
You must be signed in to change notification settings - Fork 2.4k
fix: Recipe slash command doesn't work with single optional parameter #6235
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
| } | ||
| } | ||
|
|
||
| mod positional_params_tests { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
delete this test
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR fixes a bug where recipe slash commands with optional parameters (those having a default value) would incorrectly fail with a "missing parameters" error when invoked without providing the optional parameter. The fix modifies the validation logic in build_recipe_from_template_with_positional_params to distinguish between required and optional parameters.
- Changed parameter validation to only count parameters without defaults as required
- Updated error messages to only list required parameters
- The fix allows optional parameters to be omitted and have their defaults applied via the existing
apply_values_to_parametersfunction
* main: fix: require auth when running goose on non loopback address (#6478) chore(deps): bump hono from 4.11.3 to 4.11.4 in /ui/desktop (#6485) feat(cli): graceful fallback for keyring failures (#5808) fix: support global .gooseignore and negation patterns (#6157) docs: manual config for jetbrains (#6490) fix: Recipe slash command doesn't work with single optional parameter (#6235) fix(openrouter): Handle Gemini thoughtSignature for tool calls (#6370) docs: fix extensions page (#6484) Allow customizing the new line keybinding in the CLI (#5956) Ask for permission in the CLI (#6475) docs: add Ralph Loop tutorial for multi-model iterative development (#6455) Remove gitignore fallback from gooseignore docs (#6480) fix: clean up result recording for code mode (#6343) fix(code_execution): handle model quirks with tool calls (#6352) feat(ui): support prefersBorder option for MCP Apps (#6465) fixed line breaks (#6459) Use Intl.NumberFormat for token formatting in SessionsInsights (#6466) feat(ui): format large and small token counts for readability (#6449) fix: apply subrecipes when using slash commands (#6460)
…block#6235) Co-authored-by: tlongwell-block <[email protected]> Co-authored-by: David Katz <[email protected]> Signed-off-by: ThanhNguyxn <[email protected]>
…ased * 'main' of github.com:block/goose: fix(code_execution): serialize record_result output as JSON (#6495) perf(google): avoid accumulating thoughtSignatures across conversation history (#6462) fix(openai): make tool_call arguments optional and fix silent stream termination (#6309) fix: Improve error messages for invalid tool calls (#6483) fix: require auth when running goose on non loopback address (#6478) chore(deps): bump hono from 4.11.3 to 4.11.4 in /ui/desktop (#6485) feat(cli): graceful fallback for keyring failures (#5808) fix: support global .gooseignore and negation patterns (#6157) docs: manual config for jetbrains (#6490) fix: Recipe slash command doesn't work with single optional parameter (#6235) fix(openrouter): Handle Gemini thoughtSignature for tool calls (#6370) docs: fix extensions page (#6484) Allow customizing the new line keybinding in the CLI (#5956) Ask for permission in the CLI (#6475) docs: add Ralph Loop tutorial for multi-model iterative development (#6455) Remove gitignore fallback from gooseignore docs (#6480) fix: clean up result recording for code mode (#6343) fix(code_execution): handle model quirks with tool calls (#6352) feat(ui): support prefersBorder option for MCP Apps (#6465) fixed line breaks (#6459)
Closes #6232
Summary
Issue #6232 Fix Summary: Recipe slash command doesn't work with single optional parameter
Problem
Recipe slash commands with optional parameters (having
requirement: optionaland adefaultvalue) incorrectly failed with "Recipe requires 1 parameter(s): filename. Provided: 0" when invoked without providing the optional parameter.Root Cause
In
crates/goose/src/recipe/build_recipe/mod.rs, the functionbuild_recipe_from_template_with_positional_paramshad an early validation check that compared the number of provided params against the total number of recipe params, without considering whether missing params had default values.Fix
Modified the validation in
build_recipe_from_template_with_positional_paramsto:The fix changes the check from:
to:
Files Changed
crates/goose/src/recipe/build_recipe/mod.rs- Modified parameter validation logiccrates/goose/src/recipe/build_recipe/tests.rs- Added 4 new tests for positional params with optional parametersTests Added
test_positional_params_single_optional_with_default_no_args- Verifies single optional param works without argstest_positional_params_single_optional_with_default_with_arg- Verifies optional param can still be overriddentest_positional_params_required_param_missing_fails- Verifies required params still fail correctlytest_positional_params_mixed_required_and_optional- Verifies mixed required/optional params workVerification
Generated by goose Issue Solver