nhamidi-oai
6f785632b0
Preserve audio across history and tool outputs ( #34385 )
...
## 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
2026-07-20 17:36:44 +00:00
..
2026-07-17 23:14:37 +00:00
2026-07-06 14:29:19 -07:00
2026-07-20 13:45:29 +00:00
2026-07-20 16:47:03 +00:00
2026-07-20 17:36:44 +00:00
2026-07-17 23:14:37 +00:00
2026-06-24 21:08:39 -07:00
2026-07-06 07:05:40 -07:00
2026-07-17 21:12:40 +00:00
2026-07-17 21:20:14 +00:00
2026-07-20 16:57:03 +00:00
2026-07-17 18:43:14 +00:00
2026-07-17 21:20:14 +00:00
2026-07-20 17:36:44 +00:00
2026-07-17 21:20:14 +00:00
2026-07-01 18:11:09 -07:00
2026-07-15 03:27:16 +00:00
2026-07-16 18:23:43 +00:00
2026-07-16 18:23:43 +00:00
2026-06-23 00:02:33 +00:00
2026-06-18 19:31:19 +00:00
2026-07-18 00:26:24 +00:00
2026-07-20 17:36:44 +00:00
2026-07-06 23:23:56 -04:00
2026-06-22 23:56:16 -07:00
2026-07-11 02:29:14 +00:00
2026-07-20 17:18:25 +00:00
2026-07-16 18:23:43 +00:00
2026-07-15 02:16:53 +00:00
2026-07-15 02:16:53 +00:00
2026-07-13 21:54:04 +00:00
2026-07-07 12:57:19 -07:00
2026-07-14 06:39:42 +00:00
2026-07-17 23:14:37 +00:00
2026-07-13 23:48:42 +00:00
2026-07-11 02:29:14 +00:00
2026-07-13 23:48:42 +00:00
2026-07-17 23:14:37 +00:00
2026-06-10 12:54:21 +02:00
2026-07-09 14:32:23 -07:00
2026-07-14 22:25:39 +00:00
2026-06-24 22:17:43 -07:00
2026-07-06 11:20:32 -07:00
2026-07-06 11:20:32 -07:00
2026-07-16 18:23:43 +00:00
2026-07-18 00:26:24 +00:00
2026-07-18 00:26:24 +00:00
2026-06-25 19:00:23 +00:00
2026-06-25 19:00:23 +00:00
2026-07-20 06:13:29 +00:00
2026-06-05 11:20:52 -07:00
2026-07-20 06:13:29 +00:00
2026-07-16 16:13:53 +00:00
2026-07-17 21:20:14 +00:00
2026-06-24 22:58:34 +01:00
2026-07-17 23:14:37 +00:00
2026-06-22 16:41:00 -07:00
2026-06-22 23:56:16 -07:00
2026-07-20 16:47:03 +00:00
2026-07-16 18:23:43 +00:00
2026-06-26 00:53:07 +01:00
2026-05-26 20:59:47 -07:00
2026-07-18 23:22:13 +00:00
2026-07-18 23:22:13 +00:00
2026-07-14 20:36:29 +00:00
2026-07-14 20:36:29 +00:00
2026-07-17 15:45:48 +00:00
2026-07-13 22:34:16 +00:00
2026-07-06 14:51:34 -07:00
2026-07-20 13:45:29 +00:00
2026-07-15 02:16:53 +00:00
2026-06-26 09:12:42 -07:00
2026-06-24 13:08:14 -07:00
2026-07-17 21:12:40 +00:00
2026-07-18 20:59:57 +00:00
2026-06-01 18:45:07 +00:00
2026-07-07 14:26:03 -07:00
2026-07-18 06:34:53 +00:00
2026-07-18 06:34:53 +00:00
2026-06-22 13:25:48 -07:00
2026-06-01 23:33:42 +00:00
2026-06-18 19:31:19 +00:00
2026-06-23 12:13:54 -07:00
2026-06-16 14:34:54 +02:00
2026-06-16 14:34:54 +02:00
2026-06-26 09:12:42 -07:00
2026-07-14 20:52:12 +00:00
2026-07-20 08:29:12 +00:00
2026-07-20 08:29:12 +00:00
2026-06-15 08:18:13 -07:00
2026-06-15 08:18:13 -07:00
2026-07-10 15:52:04 +00:00
2026-06-03 10:41:41 -07:00
2026-07-14 20:36:29 +00:00
2026-07-20 16:47:03 +00:00
2026-07-20 13:45:29 +00:00
2026-07-17 15:45:48 +00:00
2026-07-16 19:31:26 +00:00
2026-07-15 02:35:49 +00:00
2026-07-15 02:35:49 +00:00
2026-06-23 00:02:33 +00:00
2026-06-10 17:17:44 -07:00
2026-06-22 09:05:27 -07:00
2026-06-22 09:05:27 -07:00
2026-06-27 09:54:56 -07:00
2026-07-06 23:23:56 -04:00
2026-06-16 22:17:24 -07:00
2026-07-20 13:45:29 +00:00
2026-07-20 13:45:29 +00:00
2026-05-28 15:26:55 -07:00
2026-05-28 15:26:55 -07:00
2026-05-22 12:13:52 +02:00
2026-07-20 13:45:29 +00:00