Fix card list to be cross-board by default#181
Conversation
Port of the fork's @mention patch onto the v4 (fizzy-sdk) base. @firstname in a comment body or card description is resolved to an ActionText mention attachment so Fizzy delivers a notification, instead of being posted as plain text. - internal/commands/mentions.go: resolveMentions scans text for @name (Unicode-aware, skips emails and markdown code spans/blocks), looks the user up by first name via the mentionables list, and substitutes the <action-text-attachment content-type="application/vnd.actiontext.mention"> markup. Ambiguous/unknown names warn to stderr and are left as text. - internal/client: add GetHTML (Accept: text/html) used to fetch the mentionables list. - inline_attachments.go: resolveRichTextContent now resolves mentions before markdown->HTML conversion; the four comment/card create+update call sites pass getClient(). Note: the mentionables fetch path (/prompts/users) is not yet verified against the v4 token auth model — runtime auth wiring is the next step. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sync to upstream v4.0.0-rc.4 + reapply @mention patch
The Agent Skill's "Learn More" linked to upstream basecamp/fizzy-cli. This fork is the source of the installed `fizzy`, so point it here and document build/install/update plus the fork-only @mention patch (runtime fix: #2). Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add the non-obvious workflow knowledge a fresh agent needs: the `make check` default gate, the mise toolchain guard, the SURFACE.txt snapshot that must be regenerated on any command/flag change, the cobra self-registration pattern, and the output-mode flags. Correct the single-test recipes to match the Makefile. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The skill covered every workflow command but omitted the `fizzy token` group (personal access token create/list/delete) entirely, and never pointed agents at `fizzy commands` for live capability discovery. Add a Tokens section, a quick-ref row, and a discovery note. Docs-only; command tree unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The @mention patch fetched /prompts/users via the legacy client, which returns Unauthorized at runtime (verified against live API) — it never resolved a mention, silently posting literal @name text with a stderr warning. Restore the six touched files to upstream state, drop mentions.go/mentions_test.go, and remove the stale skill reference. The fork is now docs-only on top of upstream. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Restore skills/fizzy/SKILL.md to pristine upstream — drop the fork's token docs/quick-ref row, the commands discovery note, and the repo-ref edit. Token management isn't needed day to day, and keeping the skill byte-identical to upstream guarantees it can never conflict on future merges. Fork delta is now AGENTS.md + .gitignore only. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Restore AGENTS.md and .gitignore to upstream. The fork now carries zero patches: working tree is byte-identical to basecamp/fizzy-cli upstream/master. We still build the latest (v4.0.0-rc.5) from their source — this only removes our docs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- `card list` called `defaultBoard()`, injecting the configured default board into every query and silently scoping results to a single board - This made `--tag` / `--assignee` filters appear broken when matching cards lived on other boards — the same bug fixed for `search` in basecamp#114, in the sibling `card list` command - Fix: only add `board_ids[]` when `--board` is explicitly passed, so `card list` is cross-board by default (matching `search` and the API) Note: bare `fizzy card list` now spans all boards instead of the configured default board, consistent with the cross-board API default. Follow-up to basecamp#113 / basecamp#114. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Thanks for digging into this. Before we remove the default-board scoping, I want to lay out how the current behavior actually works, because I don't think it's broken in the way the description suggests.
So the scoping only affects people who have deliberately set a default board, and for them I'd argue this is the expected behavior: my default board is my workspace, so a bare I'd rather keep that behavior and add an explicit opt-out for when you want to go wide, rather than make the default board silently stop affecting
Note The one real tradeoff: under this approach |
Summary
card listcalleddefaultBoard(), injecting the configured default board into every query and silently scoping results to a single board--tagand--assigneefilters appear broken when matching cards lived on other boards — the same bug fixed forsearchin Fix search to be cross-board by default #114, but in the siblingcard listcommandboard_ids[]when--boardis explicitly passed, socard listis cross-board by default (matchingsearchand the API)Bare
fizzy card listnow spans all boards instead of the configured default board, consistent with the cross-board API default.Follow-up to #113 / #114.
Test plan
go test ./internal/commands/ -run TestCardList— all pass (updated the default-board test to assert no injection; added cross-board--tagand--assigneetests)fizzy card list --tag TAG_ID --allreturns cards across all boardsfizzy card list --board BOARD_ID --tag TAG_IDstill scopes when--boardis explicit🤖 Generated with Claude Code
Summary by cubic
Make
fizzy card listcross-board by default so--tagand--assigneereturn results across all boards. Only addboard_ids[]when--boardis passed, matchingsearchand the API default.Bug Fixes
--boardis set.--tagand--assigneefilters work across boards.Migration
fizzy card listnow spans all boards. Use--board BOARD_IDto limit results.Written for commit 3991e2d. Summary will update on new commits.