From e9968dc021faffef0e3f087eff1348a44e98c76d Mon Sep 17 00:00:00 2001 From: Merge Sim Date: Tue, 8 Sep 2026 14:38:21 -0700 Subject: [PATCH] fix linear CI fetch ownership and help contract --- src/cli/index.test.ts | 2 +- src/cli/specs/linear-mcp.ts | 2 +- src/main/linear/mcp-issue-list-acquisition.ts | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/cli/index.test.ts b/src/cli/index.test.ts index 7308d39dac6..2d7589b5089 100644 --- a/src/cli/index.test.ts +++ b/src/cli/index.test.ts @@ -450,7 +450,7 @@ describe('orca root help', () => { expect(listIssuesHelp).toContain('--workspace Connected Linear workspace id, or all') expect(listIssuesHelp).toContain('0=none, 1=urgent, 2=high, 3=medium, 4=low') expect(listIssuesHelp).toContain( - '--limit Max issues to return; omit to return every match' + '--limit Max issues to return; omit to read until exhaustion or a capacity/time stop' ) expect(listIssuesHelp).not.toContain('Line cursor from a previous read') expect(callMock).not.toHaveBeenCalled() diff --git a/src/cli/specs/linear-mcp.ts b/src/cli/specs/linear-mcp.ts index 2ac67a1225e..99b61064b1a 100644 --- a/src/cli/specs/linear-mcp.ts +++ b/src/cli/specs/linear-mcp.ts @@ -73,7 +73,7 @@ export const LINEAR_MCP_COMMAND_SPECS: CommandSpec[] = [ 'orca linear list-issues --cursor --json' ], notes: [ - 'Omitting --limit returns every match (result.meta.limit is null); --limit caps the read.', + 'Omitting --limit reads until exhaustion or a capacity/time stop (result.meta.limit is null); --limit caps the read.', 'JSON sets result.truncated when a cap held results back; text prints truncated: showing N.', 'Reuse --cursor from the previous page. Issued cursors bind the workspace; raw Linear cursors still need --workspace.', '--priority is 0=none, 1=urgent, 2=high, 3=medium, 4=low. JSON includes priorityLabel on each issue.' diff --git a/src/main/linear/mcp-issue-list-acquisition.ts b/src/main/linear/mcp-issue-list-acquisition.ts index 3f5dc9d16f4..12a30a6cae2 100644 --- a/src/main/linear/mcp-issue-list-acquisition.ts +++ b/src/main/linear/mcp-issue-list-acquisition.ts @@ -4,6 +4,7 @@ import { ISSUE_FIELDS } from './issue-context-raw' import { linearError } from './issue-context-errors' import { readFetchResponseBytesWithinLimit } from '../../shared/fetch-response-body' import { assertJsonTextStructureWithinLimits } from '../../shared/json-text-structure-limit' +import { getMainHttpClient } from '../network/http-client' const nullableText = z.string().nullish() const named = z.object({ @@ -78,7 +79,7 @@ export async function acquireIssueListPage( : (apiKey ?? '') }) new Headers(suppliedHeaders).forEach((value, name) => headers.set(name, value)) - const response = await fetch(apiUrl ?? 'https://api.linear.app/graphql', { + const response = await getMainHttpClient().fetch(apiUrl ?? 'https://api.linear.app/graphql', { ...init, method: 'POST', headers,