-
Notifications
You must be signed in to change notification settings - Fork 2.3k
fix: goose recipe list can return duplicated entries #5645
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
Signed-off-by: Abhijay007 <[email protected]>
DOsinga
left a comment
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.
I suppose this can still create dupes through github, but hey, this is a great improvement
okay I will look into this, thanks for the feedback :) |
|
nah, don't worry about it. that's just nitpicking |
Signed-off-by: Abhijay007 <[email protected]> Signed-off-by: Pedro Rodrigues <[email protected]>
* main: (83 commits) silence copilot on minor text issues (block#5665) fix: disallow runaway subagent chains (block#5659) chore: remove usage of non-existent env var for log dir (block#5658) clarify agent instructions (block#5655) feat: add check-everything for unified style checks (block#5650) Show errors on failure (block#5643) custom instructions for copilot reviews (block#5646) fix: prevent repeated 404 errors when accessing deleted sessions (block#5644) Flake.nix corrected main (block#5600) fix: goose recipe list can return duplicated entries (block#5645) fix: bedrock creds refresh (block#5599) Fix Claude Code provider to default to Auto mode (block#5638) (block#5642) Scheduler cleanup (block#5571) Better search paths and handling of CLI providers (block#5554) docs: description required for "Add Extension" in cli - phase 2 (block#5635) Remove some logging (block#5631) Use session IDs as task IDs for subagents instead of UUIDs (block#5398) Fix the naming (block#5628) fix: default tetrate model is broken, replace with haiku-4.5 (block#5535) (block#5587) Fetch less and use the right SHA (block#5621) ...
* main: silence copilot on minor text issues (#5665) fix: disallow runaway subagent chains (#5659) chore: remove usage of non-existent env var for log dir (#5658) clarify agent instructions (#5655) feat: add check-everything for unified style checks (#5650) Show errors on failure (#5643) custom instructions for copilot reviews (#5646) fix: prevent repeated 404 errors when accessing deleted sessions (#5644) Flake.nix corrected main (#5600) fix: goose recipe list can return duplicated entries (#5645) fix: bedrock creds refresh (#5599)
Signed-off-by: Abhijay007 <[email protected]>
Signed-off-by: Abhijay007 <[email protected]>
Signed-off-by: Abhijay007 <[email protected]> Signed-off-by: Blair Allan <[email protected]>
Closes: #5293
Pull Request Description
This PR addresses an issue where running goose recipe list resulted in duplicate recipe entries when the
GOOSE_RECIPE_PATHenvironment variable was set to the same directory as the default global recipe directory (~/.config/goose/recipes).The root cause was that the duplication occurred because the
local_recipe_dirs()function aggregates recipe directories from multiple sources: the current working directory, directories specified viaGOOSE_RECIPE_PATH, the global recipe directory, and local project-specific recipe directories. WhenGOOSE_RECIPE_PATHpointed to the default global recipe directory, the same path was included more than once. Since these paths were not normalized before being processed, the application scanned the same directory multiple times, resulting in duplicate entries when listing recipes.Changes Made
To resolve this issue, deduplication logic was added to the local_recipe_dirs() function. The solution works as follows:
This ensures that each recipe directory is processed exactly once.
NOTE: this could be solved with HashSet too, but I saw that sort and dedup is used in
lead_worked.rsso I used a similar approachType of Change
AI Assistance
Testing
Tested with the same command shared in the issue