Context
SaaS pre-work S0.4. The Linear client lists issues with first: 50 and does not follow GraphQL page cursors — any project with more than ~50 issues is silently truncated. It also lacks an updatedAt delta filter, forcing full refetches. Both block the SaaS board-sync ingest (delta polling with watermark cursors) and are latent bugs for today's poller on large Linear projects.
Implementation
In sdk/integrations/linear:
- Cursor-follow all issue list queries: loop
pageInfo { hasNextPage endCursor } until exhausted (page size 50–100), preserving current return shape.
- Add an updatedAt-filtered list method (GraphQL
issues(filter: { updatedAt: { gt: $since } }, orderBy: updatedAt)) with the same cursor-following, for delta polling.
- Keep existing exported method signatures backward-compatible; new capability may be a new method rather than changing an existing signature.
Acceptance
Refs
- Verified defect: qf-studio/pilot
.agent/system/saas-asset-research.md § studio-sdk (Linear first:50 no-cursor bug)
- Consumer design:
.agent/system/saas-kanban-sync-design.md §2 (per-provider delta mechanics table)
Context
SaaS pre-work S0.4. The Linear client lists issues with
first: 50and does not follow GraphQL page cursors — any project with more than ~50 issues is silently truncated. It also lacks anupdatedAtdelta filter, forcing full refetches. Both block the SaaS board-sync ingest (delta polling with watermark cursors) and are latent bugs for today's poller on large Linear projects.Implementation
In
sdk/integrations/linear:pageInfo { hasNextPage endCursor }until exhausted (page size 50–100), preserving current return shape.issues(filter: { updatedAt: { gt: $since } }, orderBy: updatedAt)) with the same cursor-following, for delta polling.Acceptance
updatedAt > since, cursor-followedRefs
.agent/system/saas-asset-research.md§ studio-sdk (Linearfirst:50no-cursor bug).agent/system/saas-kanban-sync-design.md§2 (per-provider delta mechanics table)