Skip to content

WL-0MP2ISZ8Q008Q19S: Support comma-separated --status filters in wl list#2005

Merged
SorraTheOrc merged 1 commit into
mainfrom
feature/WL-0MP2ISZ8Q008Q19S-comma-separated-status
May 22, 2026
Merged

WL-0MP2ISZ8Q008Q19S: Support comma-separated --status filters in wl list#2005
SorraTheOrc merged 1 commit into
mainfrom
feature/WL-0MP2ISZ8Q008Q19S-comma-separated-status

Conversation

@SorraTheOrc

Copy link
Copy Markdown
Member

Summary

This PR adds support for comma-separated --status values in wl list, allowing users to filter by multiple statuses with OR semantics.

Work Done

  • src/types.ts: Changed WorkItemQuery.status from single WorkItemStatus to WorkItemStatus[] for OR semantics
  • src/commands/list.ts: Parse comma-separated --status, validate each value against known statuses, return helpful error for invalid values
  • src/database.ts: Filter items against array of statuses with OR semantics
  • src/commands/in-progress.ts, src/api.ts, src/tui/controller.ts, src/tui/wl-db-adapter.ts: Updated all usages of query.status to use array format
  • Tests: Added tests for multi-value status, combination with --stage, and invalid status validation
  • Documentation: Updated CLI.md, AGENTS.md, templates/AGENTS.md, EXAMPLES.md with comma-separated status examples

How to Test

# Filter by multiple statuses
wl list --status open,in-progress
wl list -s open,completed,blocked

# Combine with --stage (AND semantics)
wl list -s open,in-progress --stage in_review

# Invalid status produces error
wl list -s invalid_status

# Single value still works (backward compatible)
wl list -s open
wl list -s in-progress

Review Focus

  • The WorkItemQuery.status type change from WorkItemStatus to WorkItemStatus[] affects several call sites — ensure all are properly updated
  • Backward compatibility: single --status values continue to work as before
  • Validation logic in list.ts provides helpful error messages for invalid statuses

Related: WL-0MP2ISZ8Q008Q19S

Changes:
- src/types.ts: Changed WorkItemQuery.status from single WorkItemStatus
  to WorkItemStatus[] for OR semantics
- src/cli-types.ts: Changed ListOptions.status to string (raw CLI input)
- src/commands/list.ts: Parse comma-separated --status, validate each
  value against known statuses, return helpful error for invalid values
- src/database.ts: Filter items against array of statuses with OR
  semantics (item.status matches any in the array)
- src/commands/in-progress.ts: Wrap single status in array
- src/api.ts: Parse comma-separated status from query params into array
  (both /items and /projects/:prefix/items endpoints)
- src/tui/controller.ts: Wrap single status values in arrays
- src/tui/wl-db-adapter.ts: Join status array with commas for CLI
- tests/database.test.ts: Updated existing tests for array status,
  added test for multi-value status filtering
- tests/cli/issue-status.test.ts: Added tests for comma-separated
  --status, combination with --stage, and invalid status validation
- tests/sort-operations.test.ts, tests/tui/wl-db-adapter.test.ts:
  Updated status filter usage to array format
- CLI.md, AGENTS.md, templates/AGENTS.md, EXAMPLES.md: Documented
  comma-separated --status usage with examples
@SorraTheOrc SorraTheOrc merged commit b6fa261 into main May 22, 2026
4 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant