Intent: a client reads every list the same way. Today these two answer a bare array.
Done:
[ ] GET /api/v1/orgs/:org/teams and GET /api/v1/orgs/:org/teams/:team/members answer the shape below, with the visibility listTeamsVisibleTo already applies
[ ] tests for each: the shape, paging, a member of a private team not shown to an outsider, and a bad limit refused
Shape: { items, next_cursor } as the header of src/http/api.ts promises for lists, with limit (default 50, max 200) and cursor validated like the issue list's, and a bad limit a 422. Update every caller in src/ (the terminal UI, client.ts, mcp.ts) and test/ that read the bare array, and say the change in the pull. Keep each route's permission and filter exactly as they are; only the shape changes. Other issues change other lists in src/http/api.ts in parallel, so touch only the routes named here.
Intent: a client reads every list the same way. Today these two answer a bare array.
Done:
/api/v1/orgs/:org/teamsand GET/api/v1/orgs/:org/teams/:team/membersanswer the shape below, with the visibilitylistTeamsVisibleToalready appliesShape:
{ items, next_cursor }as the header of src/http/api.ts promises for lists, withlimit(default 50, max 200) andcursorvalidated like the issue list's, and a bad limit a 422. Update every caller in src/ (the terminal UI, client.ts, mcp.ts) and test/ that read the bare array, and say the change in the pull. Keep each route's permission and filter exactly as they are; only the shape changes. Other issues change other lists in src/http/api.ts in parallel, so touch only the routes named here.