mirror of
https://github.com/openai/codex.git
synced 2026-11-13 22:47:20 +00:00
Add thread attachment operations with coordinated deletion (#44350)
## Why Attachment mutations must coordinate with thread deletion so queued requests cannot use metadata belonging to a deleted thread. ## What changed - Add typed `ThreadStore` operations for idempotent attachment creation, paginated listing, and removal, with capability detection and unsupported defaults. - Implement attachment operations for SQLite-backed `LocalThreadStore`, including unloaded threads, and preserve invalid-request and missing-thread errors. - Coordinate attachment mutations with lifecycle locks and move SQLite cleanup into thread-store deletion. Remove state rows only after rollout deletion, preserving retries after cleanup failures. - Give the in-memory store ownership of its associated SQLite cleanup and remove duplicate cleanup from the app-server. ## Testing Add coverage for attachment pagination and idempotency, unsupported stores, error categories, lifecycle exclusion, mutations queued behind single and batch deletion, cleanup failure retries, and in-memory state cleanup. Extend the app-server descendant deletion test to verify SQLite rows are removed. GitOrigin-RevId: f0157538c7c5c2ee1362ce40eac157101c5d4505
This commit is contained in:
1 parent
e444aa99d7
commit
2df0b747ba
11 files changed
+834
-20
No files matched your search
@@ -11,13 +11,19 @@ mod local;
|
||||
mod projects;
|
||||
mod queue_store;
|
||||
mod store;
|
||||
mod thread_attachments;
|
||||
mod thread_metadata_sync;
|
||||
mod thread_sections;
|
||||
mod types;
|
||||
|
||||
pub use codex_state::AddThreadAttachmentOutcome;
|
||||
pub use codex_state::MAX_QUEUE_ITEMS;
|
||||
pub use codex_state::MAX_THREAD_ATTACHMENT_PAYLOAD_BYTES;
|
||||
pub use codex_state::ProjectSortKey;
|
||||
pub use codex_state::QueuedUserSubmissionRecord;
|
||||
pub use codex_state::RemoveThreadAttachmentOutcome;
|
||||
pub use codex_state::ThreadAttachment;
|
||||
pub use codex_state::ThreadAttachmentPage;
|
||||
pub use error::ThreadStoreError;
|
||||
pub use error::ThreadStoreResult;
|
||||
pub use in_memory::InMemoryThreadStore;
|
||||
@@ -49,6 +55,9 @@ pub use queue_store::QueueStore;
|
||||
pub use store::PersistContext;
|
||||
pub use store::ThreadStore;
|
||||
pub use store::ThreadStoreFuture;
|
||||
pub use thread_attachments::AddThreadAttachmentParams;
|
||||
pub use thread_attachments::ListThreadAttachmentsParams;
|
||||
pub use thread_attachments::RemoveThreadAttachmentParams;
|
||||
pub use thread_sections::CreateThreadSectionParams;
|
||||
pub use thread_sections::DeleteThreadSectionParams;
|
||||
pub use thread_sections::ListThreadSectionsParams;
|
||||
|
||||
Reference in new issue
Block a user