Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
e61feb1
feat(api): add throwIfAborted helper and completePrompt options regre…
easonliang28 Aug 19, 2026
5994929
feat(api): abort signal support for openrouter, requesty, poe (comple…
easonliang28 Aug 20, 2026
4856f5e
fix(api): normalize openrouter/requesty timeouts to AbortError + cove…
easonliang28 Aug 20, 2026
0787151
test(api): align gateway-a test names and deterministic abort synchro…
easonliang28 Aug 20, 2026
a0117fb
feat(api): add shared isRequestAborted and createAbortError helpers t…
easonLiangWorldedtech Aug 21, 2026
f8f6e99
Merge branch 'feat/abort-r1-foundation' into feat/abort-r1-gateway-a
easonliang28 Aug 21, 2026
5b22ae4
refactor(api): use shared abort helpers from foundation utils in open…
easonLiangWorldedtech Aug 21, 2026
a400780
Merge branch 'main' into feat/abort-r1-gateway-a
easonLiangWorldedtech Aug 30, 2026
dac1b75
Merge branch 'main' into feat/abort-r1-gateway-a
easonLiangWorldedtech Sep 1, 2026
62b5028
fix(api): honor abort/timeout during OpenRouter and Requesty model lo…
easonliang28 Sep 2, 2026
39a028b
Merge remote-tracking branch 'upstream/main' into feat/abort-r1-gatew…
easonliang28 Sep 2, 2026
18624fe
fix(api): race model lookup with abort signal and void detached promise
easonliang28 Sep 2, 2026
ba99261
chore: retrigger CodeRabbit review (no-op)
easonliang28 Sep 3, 2026
85da03a
docs: note rejectOnAbort listener cleanup (retrigger CodeRabbit review)
easonliang28 Sep 3, 2026
69fd5dc
Merge upstream/main (4e8fa09f2) into feat/abort-r1-gateway-a
easonliang28 Sep 3, 2026
25bbc86
fix(api): surface AbortError when the Requesty stream ends after abor…
easonliang28 Sep 3, 2026
2a599ba
Merge branch 'main' into feat/abort-r1-gateway-a
easonLiangWorldedtech Sep 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/api/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -236,7 +236,7 @@ export function buildApiHandler(configuration: ProviderSettings): ApiHandler {
case providerIdentifiers.poe:
return new PoeHandler(options)
case providerIdentifiers.geminiCli:
// Intentionally falls through to the Anthropic handler pending a dedicated Gemini CLI handler implementation.
// Intentionally falls through to the Anthropic handler pending a dedicated Gemini CLI handler implementation.
default:
return new AnthropicHandler(options)
}
Expand Down
29 changes: 29 additions & 0 deletions src/api/providers/__tests__/complete-prompt-options.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { describe, it, expect } from "vitest"

import type { CompletePromptOptions } from "../../index"

describe("CompletePromptOptions", () => {
it("should allow abortSignal property", () => {
const controller = new AbortController()
const options: CompletePromptOptions = { abortSignal: controller.signal }
expect(options.abortSignal).toBe(controller.signal)
})

it("should allow timeoutMs property", () => {
const options: CompletePromptOptions = { timeoutMs: 5000 }
expect(options.timeoutMs).toBe(5000)
})

it("should allow both abortSignal and timeoutMs together", () => {
const controller = new AbortController()
const options: CompletePromptOptions = { abortSignal: controller.signal, timeoutMs: 10000 }
expect(options.abortSignal).toBe(controller.signal)
expect(options.timeoutMs).toBe(10000)
})

it("should allow empty options object", () => {
const options: CompletePromptOptions = {}
expect(options.abortSignal).toBeUndefined()
expect(options.timeoutMs).toBeUndefined()
})
})
Loading
Loading