Problem
linear issues list --limit 250 is a hard cap with no pagination and no truncation indicator. jq length on the JSON output returns 250 whether the real count is 250 or 5,000, so any aggregate built on it silently understates.
Concrete case: counting a ~800-issue Backlog state required manually partitioning by --created-after/--created-before date ranges and re-splitting every range that came back as exactly 250 — three rounds of bisection (one month alone needed two splits). Fragile, slow, and only works because creation dates happen to spread the data.
Verified at HEAD (e814332): no cursor/hasNextPage handling in internal/cli/issues.go.
Proposal
- Cursor pagination: a
--cursor flag + nextCursor in JSON output (the Linear GraphQL API already paginates with pageInfo { hasNextPage, endCursor }), or an --all mode that auto-pages.
- Failing that, at minimum: when the API reports
hasNextPage: true, print a warning to stderr and/or include "truncated": true in the JSON output so consumers can detect the cap instead of trusting a round 250.
Context
Hit while building a daily dev digest whose open-stock snapshot (actionable/backlog counts) depends on exact counts; it currently carries hand-rolled date-partition loops with "range hit cap" checks as a workaround.
Problem
linear issues list --limit 250is a hard cap with no pagination and no truncation indicator.jq lengthon the JSON output returns 250 whether the real count is 250 or 5,000, so any aggregate built on it silently understates.Concrete case: counting a ~800-issue Backlog state required manually partitioning by
--created-after/--created-beforedate ranges and re-splitting every range that came back as exactly 250 — three rounds of bisection (one month alone needed two splits). Fragile, slow, and only works because creation dates happen to spread the data.Verified at HEAD (e814332): no cursor/
hasNextPagehandling ininternal/cli/issues.go.Proposal
--cursorflag +nextCursorin JSON output (the Linear GraphQL API already paginates withpageInfo { hasNextPage, endCursor }), or an--allmode that auto-pages.hasNextPage: true, print a warning to stderr and/or include"truncated": truein the JSON output so consumers can detect the cap instead of trusting a round 250.Context
Hit while building a daily dev digest whose open-stock snapshot (actionable/backlog counts) depends on exact counts; it currently carries hand-rolled date-partition loops with "range hit cap" checks as a workaround.