mirror of
https://github.com/openai/codex.git
synced 2026-11-12 21:20:34 +00:00
## Why The goal of this PR is to align on app-server and `ThreadStore` API updates for paginating through large threads. #### app-server ##### `thread/turns/list` - Updates `thread/turns/list` to support `itemsView?: "notLoaded" | "summary" | "full" | null`, defaulting to `summary`. - Implements the current `thread/turns/list` behavior over the existing persisted rollout-history fallback: - `notLoaded` returns turn envelopes with empty `items`. - `summary` returns the first user message and final assistant message when available. - `full` preserves the existing full item behavior. Note that this method still uses the naive approach of loading the entire rollout file, and returns just the filtered slice of the data. Real pagination will come later by leveraging SQLite. ##### `thread/turns/items/list` - Adds the experimental `thread/turns/items/list` protocol, schema, dispatcher, and processor stub. The app-server currently returns JSON-RPC `-32601` with `thread/turns/items/list is not supported yet`. #### ThreadStore - Adds the experimental `thread/turns/items/list` protocol, schema, dispatcher, and processor stub. The app-server currently returns JSON-RPC `-32601` with `thread/turns/items/list is not supported yet`. - Adds `ThreadStore` contract types and stubbed methods for listing thread turns and listing items within a turn. - Adds a typed `StoredTurnStatus` and `StoredTurnError` to avoid baking app-server API enums or lossy string status values into the store-facing turn contract. - Adds a typed `StoredTurnStatus` and `StoredTurnError` to avoid baking app-server API enums or lossy string status values into the store-facing turn contract. This also sketches the storage abstraction we expect to need once turns are indexed/stored. In particular, `notLoaded` is useful only if ThreadStore can eventually list turn metadata without loading every persisted item for each turn. ## Validation - Added/updated protocol serialization coverage for the new request and response shapes. - Added app-server integration coverage for `thread/turns/list` default summary behavior and all three `itemsView` modes. - Added app-server integration coverage that `thread/turns/items/list` returns the expected unsupported JSON-RPC error when experimental APIs are enabled. - Added thread-store coverage that the default trait methods return `ThreadStoreError::Unsupported`. No developers.openai.com documentation update is needed for this internal experimental app-server API surface.
52 lines
1.6 KiB
Rust
52 lines
1.6 KiB
Rust
//! Storage-neutral thread persistence interfaces.
|
|
//!
|
|
//! Application code should treat [`codex_protocol::ThreadId`] as the only durable thread handle.
|
|
//! Implementations are responsible for resolving that id to local rollout files, RPC requests, or
|
|
//! any other backing store.
|
|
|
|
mod error;
|
|
mod in_memory;
|
|
mod live_thread;
|
|
mod local;
|
|
mod remote;
|
|
mod store;
|
|
mod types;
|
|
|
|
pub use error::ThreadStoreError;
|
|
pub use error::ThreadStoreResult;
|
|
pub use in_memory::InMemoryThreadStore;
|
|
pub use in_memory::InMemoryThreadStoreCalls;
|
|
pub use live_thread::LiveThread;
|
|
pub use live_thread::LiveThreadInitGuard;
|
|
pub use local::LocalThreadStore;
|
|
pub use local::LocalThreadStoreConfig;
|
|
pub use remote::RemoteThreadStore;
|
|
pub use store::ThreadStore;
|
|
pub use types::AppendThreadItemsParams;
|
|
pub use types::ArchiveThreadParams;
|
|
pub use types::CreateThreadParams;
|
|
pub use types::GitInfoPatch;
|
|
pub use types::ItemPage;
|
|
pub use types::ListItemsParams;
|
|
pub use types::ListThreadsParams;
|
|
pub use types::ListTurnsParams;
|
|
pub use types::LoadThreadHistoryParams;
|
|
pub use types::OptionalStringPatch;
|
|
pub use types::ReadThreadByRolloutPathParams;
|
|
pub use types::ReadThreadParams;
|
|
pub use types::ResumeThreadParams;
|
|
pub use types::SortDirection;
|
|
pub use types::StoredThread;
|
|
pub use types::StoredThreadHistory;
|
|
pub use types::StoredTurn;
|
|
pub use types::StoredTurnError;
|
|
pub use types::StoredTurnItemsView;
|
|
pub use types::StoredTurnStatus;
|
|
pub use types::ThreadEventPersistenceMode;
|
|
pub use types::ThreadMetadataPatch;
|
|
pub use types::ThreadPage;
|
|
pub use types::ThreadPersistenceMetadata;
|
|
pub use types::ThreadSortKey;
|
|
pub use types::TurnPage;
|
|
pub use types::UpdateThreadMetadataParams;
|