Files
pcli/openspec/changes/archive/2026-02-18-expand-board-included-parsing/proposal.md
T
Steve Cliff 7937266262 feat(status): add --project flag for filtering boards by project name
- Implemented the --project flag in the pcli status command to filter boards based on the specified project name.
- Updated the command to resolve project names to IDs using case-insensitive matching.
- Adjusted the totalBoards count in the output to reflect the number of boards matching the project filter.
- Enhanced command help text and README documentation to include usage examples for the new flag.
- Verified functionality through manual testing and ensured default behavior remains unchanged when the flag is omitted.

feat(board): expand GetBoard response to include labels and card associations

- Modified the Board struct to include Labels, CardLabels, and CardMemberships fields.
- Updated the GetBoard method to parse additional fields from the API response.
- Enhanced ListCardsByBoard to include label names for each card based on the enriched board data.
- Ensured backward compatibility by making new fields optional and preserving existing output structure.
2026-02-18 21:38:41 +00:00

1.5 KiB

Why

The GetBoard API response includes cardLabels, labels, and cardMemberships in its included data, but pcli only parses lists and cards — silently discarding the rest. This means there is no way to determine which labels are attached to which cards without making per-card API calls. The kanban sync workflow needs to identify agent-labelled cards from a board listing, and currently must fall back to name-matching because label data is unavailable.

What Changes

  • Expand the Board struct in model/types.go to include Labels, CardLabels, and CardMemberships fields
  • Update GetBoard in client/boards.go to parse these additional included fields from the API response
  • Update ListCardsByBoard to enrich card output with label names (via cardLabels join table + labels)

Capabilities

New Capabilities

None — this enhances existing capabilities.

Modified Capabilities

  • api-client: GetBoard SHALL parse labels, cardLabels, and cardMemberships from the board response included data
  • card-operations: ListCardsByBoard (card list --board) SHALL include label names on each card

Impact

  • Code: model/types.go (Board struct), client/boards.go (GetBoard parsing), client/cards.go (ListCardsByBoard enrichment)
  • API: No new API calls — parsing data already returned by GET /api/boards/:id
  • Breaking changes: None — new fields are additive; JSON output gains new fields but existing fields unchanged