sloproxy

fix(translator/codex): keep single thinking block per reasoning item in streaming translator (#4581) master

Keep a single Claude thinking block open across multiple reasoning summary parts for one Codex reasoning item, and finalize it only when output_item.done delivers the item's final encrypted_content. Previously, each summary part closed the preceding thinking block with the pre-content encrypted_content snapshot captured at output_item.added. This emitted N thinking blocks with placeholder signatures for one reasoning item, causing client replay to append redundant placeholder reasoning items into conversation history. Add regression tests verifying that multi-part summary reasoning items produce exactly one thinking block signed with the final encrypted_content.


+158 -63
2 changed files