Add an injectable attachment store to ThreadManager (#42634)

## What changed

- Add the `codex-attachment-store` crate with storage-neutral attachment metadata, references, errors, and an asynchronous persistence interface.
- Provide an inline implementation that preserves attachment bytes as media-typed base64 data URLs.
- Inject the store into `ThreadManager`, expose it to consumers, and retain inline storage as the default for existing entry points.

## Testing

- Verify inline storage round-trips binary, text, PNG, and JPEG data.
- Verify attachment debug output redacts URLs while retaining file IDs.

GitOrigin-RevId: 7688dcd3c89d7540ed2398f3e7c63881fbfcda97
This commit is contained in:
Krish Chainani authored and copyberry committed 2026-09-03 23:20:54 +00:00
1 parent d979df154c
commit 03467026f2
20 files changed
+249

No files matched your search

@@ -106,6 +106,7 @@ impl MessageProcessor {
Arc::new(extensions.build()),
user_instructions_provider,
/*analytics_events_client*/ None,
codex_core::passthrough_image_store(),
codex_core::thread_store_from_config(config.as_ref(), state_db.clone()),
codex_core::local_agent_graph_store_from_state_db(state_db.as_ref()),
installation_id,