v0.2.1 — Fix filter 400 errors and state name resolution
Bug Fixes
- Fix HTTP 400 on all filtered queries — Linear's API uses
eqIgnoreCase, noteqCaseInsensitive. All 7 occurrences across issue and project filters corrected. - Fix
--me/--assignee @me— Now uses Linear's built-inisMecomparator instead of resolving viewer ID to a display name.--assignee @meand--meare now equivalent. - Fix
issues move/update/create/bulk --state "In Progress"— State names are now resolved to UUIDs via the team's workflow states. Previously, passing a human-readable name like "In Progress" caused an API validation error.
New
resolve_state_id()inteams_api— Accepts a state name or UUID, resolves names case-insensitively against the team's workflow states. Returns UUID as-is if already a UUID.
Tests
- 8 new filter builder tests verifying exact JSON structure for all filter types (
eqIgnoreCase,isMe, labels, project, creator, project status, project lead). - 216/218 tests passing (2 pre-existing CLI help text failures).
Files Changed
| File | Change |
|---|---|
src/core/filter.cpp |
eqCaseInsensitive → eqIgnoreCase, @me detection |
src/modules/issues/commands.cpp |
Normalize @me, resolve state names in create/update/move/bulk |
src/modules/teams/api.h |
Add resolve_state_id() declaration |
src/modules/teams/api.cpp |
Add resolve_state_id() implementation |
tests/test_filter_builder.cpp |
8 new tests |
CMakeLists.txt |
Version bump to 0.2.1 |
Full Changelog: v0.2.0...v0.2.1