Krish Chainani
446b771049
Add attachment upload and resolution APIs and pass stores into sessions ( #45556 )
...
## What changed
Replace `AttachmentStore::persist` with `upload` and `resolve`. Uploads return inline bytes or a file ID; resolution returns optional file metadata and a download URL only when a minimum URL lifetime is requested. Add image dimensions, digest, size, MIME type, and categorized errors to the API.
Make `InlineAttachmentStore` return the original bytes and report `NotFound` when resolving file IDs. Redact attachment bytes and file URLs in debug output.
Pass the configured image store from the thread manager into sessions and inherit it in delegated sessions. Allow `TestCodexBuilder` to accept a custom image store.
## Testing
Update unit coverage for preserving PNG and JPEG bytes, redacting bytes and URLs in debug output, and rejecting file resolution in the inline store.
GitOrigin-RevId: f313e0048925998d84394c7e5a278e0d39d86a45
2026-09-15 00:29:13 +00:00
..
2026-09-12 00:22:04 +00:00
2026-09-14 21:06:36 +00:00
2026-09-14 23:25:09 +00:00
2026-09-14 23:25:09 +00:00
2026-09-01 18:24:56 +00:00
2026-09-14 23:25:09 +00:00
2026-09-09 17:45:37 +00:00
2026-09-14 15:30:22 +00:00
2026-08-21 06:41:28 +00:00
2026-08-31 22:38:23 +00:00
2026-08-25 05:16:45 +00:00
2026-09-15 00:29:13 +00:00
2026-09-15 00:29:13 +00:00
2026-09-14 15:30:22 +00:00
2026-09-14 19:30:11 +00:00
2026-09-14 23:25:09 +00:00
2026-09-14 22:40:20 +00:00
2026-08-25 13:10:24 +00:00
2026-09-11 01:57:54 +00:00
2026-09-11 01:57:54 +00:00
2026-09-11 01:57:54 +00:00
2026-09-02 23:58:24 +00:00
2026-09-02 23:58:24 +00:00
2026-09-14 23:25:09 +00:00
2026-09-09 17:56:06 +00:00
2026-09-11 16:41:56 +00:00
2026-09-11 16:41:56 +00:00
2026-09-10 21:30:56 +00:00
2026-09-15 00:29:13 +00:00
2026-09-14 22:58:51 +00:00
2026-09-09 18:40:53 +00:00
2026-09-09 18:40:53 +00:00
2026-09-09 18:40:53 +00:00
2026-09-13 15:47:59 +00:00
2026-09-14 23:25:09 +00:00
2026-09-14 23:25:09 +00:00
2026-09-14 23:25:09 +00:00
2026-09-14 23:25:09 +00:00
2026-09-10 18:24:13 +00:00
2026-09-13 15:47:59 +00:00
2026-09-01 13:43:27 +00:00
2026-09-10 21:51:34 +00:00
2026-08-25 19:54:52 +00:00
2026-09-11 20:27:37 +00:00
2026-09-14 23:25:09 +00:00
2026-09-14 23:25:09 +00:00
2026-09-03 00:17:19 +00:00
2026-09-01 14:43:27 +00:00
2026-08-20 07:03:02 +00:00
2026-09-01 18:24:56 +00:00
2026-09-13 06:07:03 +00:00
2026-09-14 22:58:51 +00:00
2026-08-25 21:34:05 +00:00
2026-09-14 22:58:51 +00:00
2026-08-21 21:17:42 +00:00
2026-09-13 15:47:59 +00:00
2026-09-14 23:25:09 +00:00
2026-09-14 23:25:09 +00:00
2026-09-14 21:23:06 +00:00
2026-08-26 16:28:35 +00:00
2026-09-11 14:25:56 +00:00
2026-08-29 06:05:28 +00:00
2026-09-14 11:03:22 +00:00
2026-09-14 11:03:22 +00:00
2026-09-01 13:43:27 +00:00
2026-09-10 21:51:34 +00:00
2026-08-20 17:46:05 +00:00
2026-08-17 19:06:53 +00:00
2026-09-09 17:46:00 +00:00
2026-09-04 21:17:25 +00:00
2026-08-17 04:01:37 +00:00
2026-08-18 18:41:40 +00:00
2026-09-08 23:45:10 +00:00
2026-09-10 18:24:13 +00:00
2026-08-31 22:38:23 +00:00
2026-09-10 19:41:14 +00:00
2026-09-10 09:50:59 +00:00
2026-09-11 21:32:04 +00:00
2026-09-02 23:58:24 +00:00
2026-09-02 23:58:24 +00:00
2026-08-31 23:29:20 +00:00
2026-09-13 06:07:03 +00:00
2026-08-23 20:08:40 +00:00
2026-08-24 10:56:54 +00:00
2026-09-14 22:58:51 +00:00
2026-09-13 06:07:03 +00:00
2026-09-13 06:07:03 +00:00
2026-09-13 06:07:03 +00:00
2026-09-09 06:04:59 +00:00
2026-08-20 06:03:25 +00:00
2026-08-20 06:03:25 +00:00
2026-08-27 00:07:26 +00:00
2026-09-13 06:53:20 +00:00
2026-09-13 06:53:20 +00:00
2026-09-11 01:57:54 +00:00
2026-09-14 21:23:06 +00:00
2026-09-15 00:29:13 +00:00
2026-09-10 18:24:13 +00:00
2026-09-13 15:47:59 +00:00
2026-09-13 15:47:59 +00:00
2026-09-05 13:02:49 +00:00
2026-09-04 12:56:26 +00:00
2026-08-25 17:41:22 +00:00
2026-09-02 20:30:45 +00:00
2026-09-09 19:31:12 +00:00
2026-08-20 06:29:32 +00:00