Charlie Marsh
3ead673946
Defer extension tool history materialization until first access ( #47035 )
...
## Why
Extension tool calls eagerly copied and converted conversation history even when the tool never read it.
## What changed
Retain a shared invocation-time snapshot and defer conversion to raw response items until `ConversationHistory::items()` is called. Cache the result across clones with `LazyLock`, and keep debug formatting from triggering materialization. Release unrelated history metadata when capturing the shared items.
## Testing
Extend the extension executor test to verify that history first read after a later turn still reflects the invocation-time snapshot, in both legacy and paginated history modes. Update the history API test to check that shared items preserve their envelopes.
GitOrigin-RevId: c737b765b7e4889735dc78e12d685d36e854570b
2026-09-21 13:56:17 +00:00
..
2026-09-15 02:35:59 +00:00
2026-08-24 22:40:35 +00:00
2026-09-19 00:52:56 +00:00
2026-09-21 13:28:02 +00:00
2026-09-14 22:31:32 +00:00
2026-09-19 00:14:40 +00:00
2026-09-21 13:30:55 +00:00
2026-09-03 06:02:25 +00:00
2026-09-19 01:04:18 +00:00
2026-08-20 08:10:08 +00:00
2026-09-11 20:10:02 +00:00
2026-09-18 00:25:37 +00:00
2026-09-17 00:49:12 +00:00
2026-09-09 03:17:48 +00:00
2026-09-19 01:37:14 +00:00
2026-09-07 16:55:06 +00:00
2026-08-14 05:03:39 +00:00
2026-08-17 22:37:14 +00:00
2026-09-21 09:14:48 +00:00
2026-09-19 01:37:14 +00:00
2026-09-03 01:46:37 +00:00
2026-08-28 19:44:50 +00:00
2026-09-11 17:00:07 +00:00
2026-09-11 17:00:07 +00:00
2026-09-11 17:00:07 +00:00
2026-09-15 18:52:15 +00:00
2026-09-21 02:02:41 +00:00
2026-09-15 17:32:33 +00:00
2026-09-19 00:46:30 +00:00
2026-09-14 19:12:59 +00:00
2026-09-21 07:01:52 +00:00
2026-09-05 01:25:06 +00:00
2026-09-21 03:38:46 +00:00
2026-08-31 21:27:51 +00:00
2026-09-15 18:23:08 +00:00
2026-09-18 22:40:37 +00:00
2026-09-21 13:56:17 +00:00
2026-09-11 01:57:54 +00:00
2026-09-19 01:49:01 +00:00
2026-09-05 12:17:32 +00:00
2026-09-19 01:58:19 +00:00
2026-09-19 15:15:25 +00:00
2026-09-17 04:37:54 +00:00
2026-08-17 04:37:50 +00:00
2026-09-21 13:28:02 +00:00
2026-09-17 04:23:45 +00:00
2026-09-21 12:35:36 +00:00
2026-09-18 23:07:36 +00:00
2026-09-19 01:21:32 +00:00
2026-09-06 20:52:29 +00:00
2026-09-21 13:30:55 +00:00
2026-09-21 13:30:55 +00:00
2026-09-10 00:26:30 +00:00
2026-09-19 01:37:14 +00:00
2026-09-11 21:59:24 +00:00
2026-09-19 01:21:32 +00:00
2026-09-19 01:37:14 +00:00
2026-09-17 19:42:56 +00:00
2026-09-20 17:36:48 +00:00
2026-09-19 01:58:43 +00:00
2026-09-19 01:36:53 +00:00
2026-09-19 01:36:53 +00:00
2026-09-19 00:00:01 +00:00
2026-09-19 02:19:47 +00:00
2026-09-16 22:43:57 +00:00
2026-09-01 17:17:45 +00:00
2026-09-19 01:49:01 +00:00
2026-09-19 00:18:56 +00:00
2026-09-21 07:01:52 +00:00
2026-09-11 03:16:01 +00:00
2026-09-17 21:25:55 +00:00
2026-08-21 16:45:05 +00:00
2026-09-21 07:01:52 +00:00
2026-09-21 13:18:50 +00:00
2026-08-28 01:14:02 +00:00
2026-09-19 03:03:41 +00:00
2026-09-17 23:35:32 +00:00
2026-09-15 18:06:03 +00:00
2026-09-09 04:00:10 +00:00
2026-09-05 05:21:42 +00:00
2026-09-15 02:33:27 +00:00
2026-09-16 09:03:41 +00:00
2026-09-02 18:34:27 +00:00
2026-09-21 03:38:46 +00:00
2026-09-21 13:28:02 +00:00
2026-09-21 13:56:17 +00:00
2026-09-21 07:01:52 +00:00
2026-09-16 16:56:41 +00:00
2026-09-08 00:13:28 +00:00
2026-09-19 15:15:25 +00:00
2026-09-20 20:16:51 +00:00
2026-09-18 23:17:17 +00:00
2026-09-19 02:09:46 +00:00
2026-09-18 00:36:07 +00:00
2026-08-15 14:31:04 +00:00
2026-09-13 18:53:06 +00:00
2026-09-08 21:19:02 +00:00
2026-09-21 12:35:36 +00:00
2026-09-21 12:35:36 +00:00
2026-09-11 06:45:09 +00:00