mirror of
https://github.com/openai/codex.git
synced 2026-10-19 17:28:46 +00:00
## Why Client-supplied tool outputs can carry task instructions. Even when marked with `retain: true`, these instructions could be trimmed before compaction and disappear from the compacted history. ## What changed Add the disabled-by-default `retain_client_tool_outputs` feature to honor retention for explicitly marked, named `function_call_output` items without a `call_id`. - Preserve eligible outputs in remote compaction v2 and when starting a new context window, keeping their original role. - Stop emergency tool-output trimming at a retained output. - Share the existing 64,000-token retention budget, keeping outputs whole and dropping an oversized output and older items rather than partially truncating it. - Place initial context before retained standalone outputs and account for their images in retained-image counts. ## Testing Add a scenario covering enabled and disabled retention, emergency trimming, oversized-output handling, and preservation of the latest instruction after compaction and cold resume. Verify that retention annotations stay out of model requests. GitOrigin-RevId: 449179670e4d2be2623928700738758e43b5dc1a