Skip to content

Fix search to be cross-board by default#114

Merged
robzolkos merged 5 commits intobasecamp:masterfrom
Concurrent-Systems:fix-search-default-board
Mar 30, 2026
Merged

Fix search to be cross-board by default#114
robzolkos merged 5 commits intobasecamp:masterfrom
Concurrent-Systems:fix-search-default-board

Conversation

@waynemsmith
Copy link
Copy Markdown
Contributor

@waynemsmith waynemsmith commented Mar 28, 2026

Summary

  • 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
  • Fix: only add board_ids[] when --board is explicitly passed

Closes #113

Test plan

  • go test ./internal/commands/ -run TestSearch — all 6 existing tests pass
  • Manual: fizzy search "" --tag TAG_ID --all returns cards across all boards
  • Manual: fizzy search "query" --board BOARD_ID still 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 --board is set.

  • Bug Fixes
    • Added tests to ensure no implicit board scope and to assert call count before indexing; removed redundant searchBoard assignments in tests.
    • Confirmed --tag and --assignee filters work cross-board and do not inject board_ids[] unless --board is passed.

Written for commit c9c2d91. Summary will update on new commits.

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>
Copilot AI review requested due to automatic review settings March 28, 2026 14:55
Copy link
Copy Markdown

Copilot AI left a 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 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() from search so searches are no longer silently scoped to the configured default board.
  • Only include board_ids[] in the API request when --board is explicitly provided.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 1 file

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>
@github-actions github-actions bot added the bug Something isn't working label Mar 28, 2026
@waynemsmith waynemsmith requested a review from Copilot March 28, 2026 15:11
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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>
Copy link
Copy Markdown
Collaborator

@robzolkos robzolkos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@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>
Copilot AI review requested due to automatic review settings March 29, 2026 06:05
@waynemsmith
Copy link
Copy Markdown
Contributor Author

@robzolkos Good call — added two tests in 36b2690:

  • "tag filter works cross-board with default board set" — sets cfg.Board, searches with --tag, asserts tag_ids[] present but board_ids[] absent
  • "assignee filter works cross-board with default board set" — same pattern with --assignee

Both confirm the user-facing behavior from the issue.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 29, 2026

⚠️ Potential breaking changes detected:

  • The default behavior of the 'search' command has changed: previously, the search was scoped to a default board; now, searches are cross-board by default unless explicitly scoped using the --board flag. This constitutes a breaking change as scripts relying on the old behavior (e.g., assuming searches are scoped by default) might not work correctly without modification.

Review carefully before merging. Consider a major version bump.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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
Copy link
Copy Markdown
Collaborator

Thanks @waynemsmith

@robzolkos robzolkos merged commit b3a72ba into basecamp:master Mar 30, 2026
16 checks passed
waynemsmith added a commit to Concurrent-Systems/fizzy-cli that referenced this pull request Mar 30, 2026
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breaking bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

search injects default board, breaking cross-board tag/assignee filters

3 participants