Commit ad1aeea
committed
feat(openai): Responses API parity and continuity fixes; richer event handling; tests
- Add previous_response_id retry path on 400 “Previous response … not found”
- Non-streaming and streaming: drop previous_response_id and retry once; clear continuity state
- Code: [src/api/providers/openai.ts](src/api/providers/openai.ts:238), [src/api/providers/openai.ts](src/api/providers/openai.ts:291), guard [OpenAiHandler._isPreviousResponseNotFoundError()](src/api/providers/openai.ts:934)
- Support GPT‑5-style reasoning summary and minimal effort on Responses API
- Default enable summary: "auto" unless explicitly disabled in settings
- Include reasoning: { effort: "minimal" | "low" | "medium" | "high", summary?: "auto" }
- Code: constructor default [OpenAiHandler](src/api/providers/openai.ts:38), payload assembly [createMessage](src/api/providers/openai.ts:193)
- Improve Responses streaming event coverage
- Handle response.content_part.added (emit text)
- Handle response.audio_transcript.delta (emit text as transcript)
- Preserve response.id via stream callback for continuity
- Code: [handleResponsesStream](src/api/transform/responses-stream.ts:91), [src/api/transform/responses-stream.ts](src/api/transform/responses-stream.ts:47), responseId callback [src/api/transform/responses-stream.ts](src/api/transform/responses-stream.ts:19) and usage in [openai.ts](src/api/providers/openai.ts:283)
- Maintain conversation continuity for Responses API
- Store lastResponseId on both streaming and non-streaming paths; pass previous_response_id unless suppressed
- Code: stream wiring [src/api/providers/openai.ts](src/api/providers/openai.ts:283), non-streaming capture [src/api/providers/openai.ts](src/api/providers/openai.ts:889)
- Update and extend tests
- Add tests for 400 previous_response_id retry (streaming and non-streaming)
- Add tests for content_part and audio_transcript events
- Add tests for reasoning minimal + summary auto, and summary disabling
- Adjust expectation to allow summary in reasoning payload
- Tests: [src/api/providers/__tests__/openai.spec.ts](src/api/providers/__tests__/openai.spec.ts:1663), [src/api/providers/__tests__/openai.spec.ts](src/api/providers/__tests__/openai.spec.ts:1170)
- Minor: default enableGpt5ReasoningSummary to true in compatible provider for Responses flows1 parent f05544b commit ad1aeea
File tree
3 files changed
+1126
-38
lines changed- src/api
- providers
- __tests__
- transform
3 files changed
+1126
-38
lines changed
0 commit comments