Skip to content

Preserve audio across history and tool outputs - #34385

Merged
copyberry[bot] merged 1 commit into
mainfrom
copyberry/codex-internal-to-codex-oss/5ed4628850a668f8383b7cd73db71b144cc02cd1
Jul 20, 2026
Merged

Preserve audio across history and tool outputs#34385
copyberry[bot] merged 1 commit into
mainfrom
copyberry/codex-internal-to-codex-oss/5ed4628850a668f8383b7cd73db71b144cc02cd1

Conversation

@copyberry

@copyberry copyberry Bot commented Jul 20, 2026

Copy link
Copy Markdown

Preserve audio across history and tool outputs

Why

Audio attachments could be dropped from tool outputs and reconstructed thread history, while inline base64 payload size could overstate their model context cost.

What changed

  • Preserve remote and local audio attachments in legacy user-message events and thread history.
  • Keep audio from function and custom tool outputs when the model supports it and the output fits the truncation budget; otherwise replace it with an omission marker.
  • Estimate inline audio cost from its duration, with a serialized-size fallback for malformed or unsupported data URLs, so compaction and truncation use model-visible cost instead of raw base64 size.
  • Replace audio in messages and tool outputs with an explanatory placeholder for models without audio input support.

Testing

Add coverage for history round trips, dynamic tool responses, modality filtering, duration-based context estimates, output-budget truncation, and remote compaction.

## Why

Audio attachments could be dropped from tool outputs and reconstructed thread history, while inline base64 payload size could overstate their model context cost.

## What changed

- Preserve remote and local audio attachments in legacy user-message events and thread history.
- Keep audio from function and custom tool outputs when the model supports it and the output fits the truncation budget; otherwise replace it with an omission marker.
- Estimate inline audio cost from its duration, with a serialized-size fallback for malformed or unsupported data URLs, so compaction and truncation use model-visible cost instead of raw base64 size.
- Replace audio in messages and tool outputs with an explanatory placeholder for models without audio input support.

## Testing

Add coverage for history round trips, dynamic tool responses, modality filtering, duration-based context estimates, output-budget truncation, and remote compaction.

GitOrigin-RevId: 5ed4628850a668f8383b7cd73db71b144cc02cd1
@copyberry
copyberry Bot force-pushed the copyberry/codex-internal-to-codex-oss/5ed4628850a668f8383b7cd73db71b144cc02cd1 branch from f7c6172 to 6f78563 Compare July 20, 2026 17:37
@copyberry
copyberry Bot merged commit 6f78563 into main Jul 20, 2026
29 of 30 checks passed
@copyberry
copyberry Bot deleted the copyberry/codex-internal-to-codex-oss/5ed4628850a668f8383b7cd73db71b144cc02cd1 branch July 20, 2026 17:39
@github-actions github-actions Bot locked and limited conversation to collaborators Jul 20, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant