Krish Chainani
cb66dbecf2
Replace unavailable image references in model requests ( #57585 )
...
## Why
Image files can become unavailable between turns. Model requests should reflect their current availability while preserving the original references in saved history.
## What changed
- Add opt-in availability checks through `AttachmentStore::is_resolvable`, retaining references by default and on backend or access errors.
- Check distinct file IDs concurrently for each prepared request and replace confirmed-missing images with `[image unavailable]` in messages and tool outputs.
- Apply the same handling to compaction requests, with background image checks running outside the session lock without delaying foreground turn completion.
## Testing
Add unit tests and multi-turn scenarios covering placeholders, preserved history and annotations, concurrent deduplicated checks, backend errors, and nonblocking background compaction.
GitOrigin-RevId: ec98c7014c6e6b5063d87b943d2cd66a9ce7c1e3
2026-10-27 22:59:22 +00:00
..
2026-10-26 21:07:09 +00:00
2026-10-14 07:13:22 +00:00
2026-10-27 05:52:01 +00:00
2026-10-23 14:59:40 +00:00
2026-10-27 11:37:24 +00:00
2026-10-27 21:51:50 +00:00
2026-10-26 20:02:45 +00:00
2026-10-27 18:35:19 +00:00
2026-10-27 21:51:50 +00:00
2026-10-26 18:13:00 +00:00
2026-10-26 20:02:45 +00:00
2026-10-27 22:02:35 +00:00
2026-10-26 20:26:32 +00:00
2026-10-27 22:59:22 +00:00
2026-10-22 19:36:47 +00:00
2026-10-27 17:04:16 +00:00
2026-10-26 21:08:15 +00:00
2026-10-27 16:16:17 +00:00
2026-10-26 18:06:07 +00:00
2026-10-26 18:14:57 +00:00
2026-10-20 15:43:19 +00:00
2026-10-26 21:36:35 +00:00
2026-10-27 16:36:32 +00:00
2026-10-27 05:52:01 +00:00
2026-10-27 16:36:32 +00:00
2026-10-27 19:11:56 +00:00
2026-10-19 21:43:19 +00:00
2026-10-27 22:01:13 +00:00
2026-10-27 21:51:26 +00:00
2026-10-27 22:01:13 +00:00
2026-10-26 21:55:00 +00:00
2026-10-27 22:59:22 +00:00
2026-10-27 19:50:41 +00:00
2026-10-19 15:15:17 +00:00
2026-10-26 22:23:59 +00:00
2026-10-27 05:52:01 +00:00
2026-10-26 19:19:10 +00:00
2026-10-08 20:11:43 +00:00
2026-10-27 05:52:01 +00:00
2026-10-26 20:26:59 +00:00
2026-10-27 05:52:01 +00:00
2026-10-27 19:43:27 +00:00
2026-10-27 19:50:41 +00:00
2026-10-27 16:16:17 +00:00
2026-10-22 19:36:47 +00:00
2026-10-22 19:36:47 +00:00
2026-10-21 19:53:00 +00:00
2026-10-13 17:22:34 +00:00
2026-10-26 20:40:53 +00:00
2026-10-27 17:19:51 +00:00
2026-10-27 19:50:41 +00:00
2026-10-26 19:21:08 +00:00
2026-10-27 22:03:01 +00:00
2026-10-22 19:36:47 +00:00
2026-10-26 18:31:21 +00:00
2026-10-27 17:04:16 +00:00
2026-10-27 21:51:26 +00:00
2026-10-22 19:36:47 +00:00
2026-10-23 15:00:06 +00:00
2026-10-22 19:36:47 +00:00
2026-10-27 00:08:07 +00:00
2026-10-27 21:50:08 +00:00
2026-10-27 22:26:12 +00:00
2026-10-27 17:07:43 +00:00
2026-10-26 18:22:40 +00:00
2026-10-27 05:52:01 +00:00
2026-10-27 16:36:32 +00:00
2026-10-27 22:26:12 +00:00
2026-10-27 22:26:12 +00:00
2026-10-10 02:54:59 +00:00
2026-10-27 13:31:38 +00:00
2026-10-19 16:56:42 +00:00
2026-10-26 19:37:32 +00:00
2026-10-27 19:50:41 +00:00
2026-10-27 20:42:47 +00:00
2026-10-26 18:22:11 +00:00
2026-10-27 05:52:01 +00:00
2026-10-27 05:52:01 +00:00
2026-10-22 04:59:19 +00:00
2026-10-27 05:52:01 +00:00
2026-10-19 21:01:44 +00:00
2026-10-27 19:50:41 +00:00
2026-10-22 00:19:02 +00:00
2026-10-12 17:52:12 +00:00
2026-10-27 19:50:41 +00:00
2026-10-27 19:50:41 +00:00
2026-10-27 14:14:16 +00:00
2026-10-27 21:13:45 +00:00
2026-10-13 22:40:57 +00:00
2026-10-27 22:56:23 +00:00
2026-10-16 06:06:54 +00:00
2026-10-27 05:52:01 +00:00
2026-10-27 05:52:01 +00:00
2026-10-22 19:36:47 +00:00
2026-10-22 17:02:32 +00:00
2026-10-26 22:05:00 +00:00
2026-10-27 16:36:32 +00:00
2026-10-27 16:36:32 +00:00
2026-10-26 21:47:10 +00:00
2026-10-27 05:52:01 +00:00