You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix CLI status filtering and add status exclusion support
Status aliases now store numeric IDs instead of names, fixing silent
filter failures where strconv.Atoi("Done") would fail on the server.
Add status_id_not query param for negation filtering (~done), a
completed-statuses endpoint for fallback resolution when aliases are
stale, and a ws config refresh command to regenerate aliases.
The onboarding flow now handles non-admin users who already have access to a workspace. Previously, these users could get stuck in the onboarding process; they are now guided directly into their available workspace.
15
+
### Fixed CLI Status Filtering
16
+
Status filtering in the CLI (`ws task list -s done`, `ws task mine -s ~done`) was silently broken because aliases stored status names instead of numeric IDs. The server's `status_id` parameter requires an integer, so name-based values were quietly ignored. Aliases now store numeric status IDs, and a fallback mechanism queries the server's completed-statuses endpoint when aliases are stale or missing.
17
17
18
-
### Searchable Multi-Select for Iteration Filters
19
-
The CQL iteration `IN` / `NOT IN` filter UI has been upgraded from a plain checkbox list to a searchable multi-select dropdown, making it much easier to work with long lists of iterations.
18
+
### Status Exclusion Filter (`~done`)
19
+
The CLI's negation syntax (`-s ~done`) now works end-to-end. A new `status_id_not` query parameter has been added to the items API, enabling server-side exclusion of a specific status.
20
20
21
-
### Resizable Collections Sidebar
22
-
The collections sidebar can now be resized by dragging a handle on its edge, giving you control over how much screen space it occupies.
21
+
### Completed Statuses Endpoint
22
+
A new `GET /rest/api/v1/workspaces/{id}/statuses/completed` endpoint returns only statuses where the category is marked as completed. This powers the CLI's fallback resolution and is available for any integration that needs to identify "done" statuses programmatically.
23
23
24
-
### Workspace Key Cache
25
-
Workspace key resolution no longer requires a database lookup on every request. Keys are now cached in memory, improving response times for all workspace-scoped API calls.
24
+
### `ws config refresh` Command
25
+
A new `ws config refresh` subcommand re-fetches workspace statuses from the server and regenerates status aliases with numeric IDs in `ws.toml`. Use this after renaming statuses on the server to keep your local aliases in sync.
26
26
27
27
---
28
28
29
29
## Bug Fixes
30
30
31
-
-**CQL Iteration Filter:** Fixed iteration `IN` / `NOT IN` queries and corrected user group name resolution in CQL
32
-
-**PostgreSQL Notification Settings:** Fixed notification settings queries and the config set admin page failing on PostgreSQL
31
+
-**Status filter silently ignored:**`ws task list -s done` now correctly sends numeric status IDs to the server instead of status names that fail `strconv.Atoi` silently
32
+
-**Negation filter no-op:**`ws task list -s ~done` now excludes the specified status via the new `status_id_not` server-side filter
33
+
-**Stale alias resilience:** If a status is renamed after `ws init`, the CLI falls back to the completed-statuses endpoint to resolve "done" dynamically
33
34
34
-
## Other Changes
35
+
## API Changes
35
36
36
-
- Split large handler files into smaller, focused modules (planning, Jira importer, SCM, portal, AI)
37
+
- Added `status_id_not` query parameter to `GET /rest/api/v1/items` for excluding items by status
0 commit comments