Skip to content

Add SDK-backed commands and server-side card column filtering#129

Merged
robzolkos merged 11 commits intomasterfrom
bump-fizzy-sdk-0.1.3
Apr 30, 2026
Merged

Add SDK-backed commands and server-side card column filtering#129
robzolkos merged 11 commits intomasterfrom
bump-fizzy-sdk-0.1.3

Conversation

@robzolkos
Copy link
Copy Markdown
Collaborator

@robzolkos robzolkos commented Apr 15, 2026

Summary

  • switch card list --column to server-side filtering while keeping the existing command shape
  • add SDK-backed commands for activities, board accesses, webhook deliveries, user exports, and user email change flow
  • update unit/e2e/contract coverage plus skill/docs/surface snapshots

Included

  • fizzy card list --column <id|maybe|not-now|done> now filters server-side
  • new fizzy activity list
  • new fizzy board accesses --board <id>
  • new fizzy webhook deliveries --board <id> <webhook_id>
  • new fizzy user export-create <user_id>
  • new fizzy user export-show <user_id> <export_id>
  • new fizzy user email-change-request <user_id> --email <email>
  • new fizzy user email-change-confirm <user_id> <token>

Testing

  • go test ./...
  • make surface-check
  • make check

Notes

  • UPDATE.md intentionally not included
  • email change flow is unit-tested only; no e2e coverage was added because it likely triggers real email/token flow

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 15, 2026

⚠️ Potential breaking changes detected:

  • The flag '--status' in the 'card list' command was marked as deprecated in favor of '--indexed-by'. This could break scripts or workflows relying on '--status'.
  • Pseudo column aliases have changed for some commands, such as 'not_now' replacing 'not-now', and 'triage' replacing 'not-yet', which could impact scripts that reference prior alias names.
  • The argument validation logic for combining filters such as '--column' and '--indexed-by' in the 'card list' command has been updated, potentially invalidating previously accepted argument combinations in scripts or automation.

Review carefully before merging. Consider a major version bump.

@github-actions github-actions Bot added the enhancement New feature or request label Apr 15, 2026
@robzolkos robzolkos force-pushed the bump-fizzy-sdk-0.1.3 branch from 01cf72e to 82b606b Compare April 29, 2026 20:03
@github-actions github-actions Bot removed the breaking label Apr 29, 2026
@robzolkos robzolkos marked this pull request as ready for review April 29, 2026 20:12
Copilot AI review requested due to automatic review settings April 29, 2026 20:12
Copy link
Copy Markdown
Contributor

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 the Fizzy CLI to use newer SDK/API endpoints (notably adding several SDK-backed commands) and shifts card list --column filtering from client-side to server-side to improve correctness/performance while keeping existing CLI syntax.

Tip

If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or run gh pr ready --undo.
Click "Ready for review" or run gh pr ready to reengage.

Changes:

  • Switch fizzy card list --column ... to server-side filtering (including pseudo-columns like maybe, not-now, done) while preserving legacy aliases.
  • Add new SDK-backed commands: activity list, board accesses, webhook deliveries, and user export/email-change flows.
  • Update docs plus unit/e2e/contract surface snapshots for the new/changed commands.

Reviewed changes

Copilot reviewed 23 out of 24 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
skills/fizzy/SKILL.md Updates CLI skill/docs to reflect new commands and server-side filtering behavior.
internal/commands/webhook_test.go Adds unit tests for webhook deliveries.
internal/commands/webhook.go Implements fizzy webhook deliveries command and flags.
internal/commands/user_test.go Adds unit tests for user export + email change request/confirm flows.
internal/commands/user.go Implements user export + email-change commands using the SDK.
internal/commands/search.go Updates --indexed-by help text to include maybe.
internal/commands/pseudocolumns.go Updates pseudo-column documentation/comments for new semantics.
internal/commands/columns.go Adds rendering columns for activities and webhook deliveries output.
internal/commands/card_test.go Updates/extends tests for server-side column filtering + legacy aliases.
internal/commands/card.go Changes card list --column to server-side filtering and updates flag help.
internal/commands/board_test.go Adds unit tests for board accesses.
internal/commands/board.go Implements fizzy board accesses using the SDK.
internal/commands/activity_test.go Adds unit tests for activity list.
internal/commands/activity.go Implements fizzy activity list with filters and pagination.
go.sum Updates dependency checksums for the new SDK and keyring versions.
go.mod Bumps Fizzy SDK and go-keyring dependency versions.
e2e/cli_tests/webhook_test.go Adds e2e coverage for webhook deliveries behavior.
e2e/cli_tests/syntax_contract_test.go Adds syntax contract assertions for new commands/flag shapes.
e2e/cli_tests/output_contract_test.go Adds output contract coverage for activity list, board accesses, webhook deliveries, and export-show.
e2e/cli_tests/crud_board_test.go Adds e2e CRUD-style coverage for board accesses.
e2e/cli_tests/activity_test.go Adds e2e coverage for activity listing and creator filtering.
e2e/cli_tests/account_user_test.go Adds e2e coverage for user export create/show flow.
SURFACE.txt Updates the command/flag surface snapshot for newly added commands.
README.md Updates onboarding/“Next Steps” examples to include new commands.

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

Comment thread skills/fizzy/SKILL.md Outdated
Comment thread internal/commands/activity.go Outdated
@robzolkos robzolkos force-pushed the bump-fizzy-sdk-0.1.3 branch from 82b606b to cdd2ae0 Compare April 29, 2026 20:47
@robzolkos robzolkos changed the title Adopt new Fizzy SDK/API commands and card filtering Add SDK-backed commands and server-side card column filtering Apr 29, 2026
- Drop the duplicate webhook row in skills/fizzy/SKILL.md so the
  resource quick-reference table has a single consolidated entry
  (including the new deliveries command).
- activity list "Next page" breadcrumb now preserves --board and
  --creator so following the suggestion keeps the user on the same
  filtered query instead of jumping to the unfiltered list. Added a
  unit test asserting the breadcrumb command shape.
Copilot AI review requested due to automatic review settings April 29, 2026 20:57
@github-actions github-actions Bot removed the breaking label Apr 29, 2026
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.

3 issues found across 22 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="internal/commands/activity.go">

<violation number="1" location="internal/commands/activity.go:39">
P2: Build query strings with URL encoding instead of string concatenation to avoid malformed requests or injected query parameters from flag values.</violation>
</file>

<file name="internal/commands/board_test.go">

<violation number="1" location="internal/commands/board_test.go:691">
P2: Check `len(mock.GetCalls)` before indexing `mock.GetCalls[0]` to avoid panic-driven test failures and preserve clear assertions.</violation>
</file>

<file name="e2e/cli_tests/activity_test.go">

<violation number="1" location="e2e/cli_tests/activity_test.go:49">
P2: This test silently accepts missing card activity; it should fail when the created card is not present so regressions are caught.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Comment thread internal/commands/activity.go Outdated
Comment thread internal/commands/board_test.go
Comment thread e2e/cli_tests/activity_test.go Outdated
- activity.go: URL-encode flag values when building the query string
  so a board/creator ID containing & or = can't inject phantom params.
- board_test.go: guard mock.GetCalls[0] indexing with a length check
  in the new board accesses tests so a missing call surfaces as a
  clear assertion instead of an array-bounds panic.
- e2e activity_test.go: keep retrying until the just-created card
  appears in the activity feed, then fail hard if it doesn't. The
  previous soft Logf masked regressions where cards drop out of the
  activity stream.
Copy link
Copy Markdown
Contributor

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.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copy link
Copy Markdown
Contributor

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 27 out of 27 changed files in this pull request and generated 5 comments.


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

Comment thread internal/commands/pseudocolumns.go Outdated
Comment thread internal/commands/activity.go
Comment thread internal/commands/board.go
Comment thread internal/commands/card.go
Comment thread skills/fizzy/SKILL.md Outdated
@robzolkos robzolkos merged commit bff7af2 into master Apr 30, 2026
20 checks passed
@robzolkos robzolkos deleted the bump-fizzy-sdk-0.1.3 branch April 30, 2026 01:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants