Fix search to be cross-board by default#114
Conversation
search called defaultBoard() which injected the configured default board into every query, silently scoping results to a single board. This made --tag and --assignee filters appear broken when matching cards existed on other boards. Search should be cross-board by default — only scope to a board when --board is explicitly passed. Closes basecamp#113 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR updates fizzy search to be cross-board by default by no longer auto-injecting the configured default board into every search request, addressing #113 where tag/assignee filters appeared broken when matching cards were on other boards.
Changes:
- Stop calling
defaultBoard()fromsearchso searches are no longer silently scoped to the configured default board. - Only include
board_ids[]in the API request when--boardis explicitly provided.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Verifies that setting cfg.Board does not cause board_ids[] to appear in the search path when --board is not explicitly passed. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
robzolkos
left a comment
There was a problem hiding this comment.
@waynemsmith - this is looking good - thanks for taking the time to fix. Could you please add a test covering the exact reported --tag / --assignee case from the issue. The root-cause regression is covered now, but adding one of those cases could make the user-facing behavior a little more explicit.
Verify that --tag and --assignee filters work cross-board when a default board is configured: the request path includes tag_ids[]/assignee_ids[] but not board_ids[]. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
@robzolkos Good call — added two tests in 36b2690:
Both confirm the user-facing behavior from the issue. |
Review carefully before merging. Consider a major version bump. |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Thanks @waynemsmith |
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Summary
searchcalleddefaultBoard()which injected the configured default board into every query, silently scoping results to a single board--tagand--assigneefilters appear broken when matching cards existed on other boardsboard_ids[]when--boardis explicitly passedCloses #113
Test plan
go test ./internal/commands/ -run TestSearch— all 6 existing tests passfizzy search "" --tag TAG_ID --allreturns cards across all boardsfizzy search "query" --board BOARD_IDstill scopes correctly when explicit🤖 Generated with Claude Code
Summary by cubic
Search is now cross-board by default. We removed the implicit default board so results include cards from all boards unless
--boardis set.searchBoardassignments in tests.--tagand--assigneefilters work cross-board and do not injectboard_ids[]unless--boardis passed.Written for commit c9c2d91. Summary will update on new commits.