opencode
opencode copied to clipboard
feat: use previous_response_id for Codex API optimization
Summary
Implements previous_response_id support to significantly reduce response latency when conversations grow long with Codex models.
Fixes #9045
Changes
- Add
responseIdfield toAssistantMessageschema to persist response IDs - Store
responseIdfromproviderMetadata.openai.responseIdinprocessor.ts - Add
previousResponseIdtoStreamInputtype inllm.ts - Pass
previousResponseIdthroughproviderOptionsintransform.ts - Extract last assistant's
responseIdinprompt.tsandcompaction.ts
How it works
Before: Every request sends the entire conversation history, causing O(n) or worse latency growth.
After: Subsequent requests reference the previous response via previous_response_id, allowing the API to skip re-processing the conversation history.
Request 1 → Full history → responseId saved
Request 2 → previousResponseId + new content → Fast response
Testing
- Build passes successfully
- The feature only activates for OpenAI providers that return
responseIdin metadata