mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
Migrate archive/unarchive to local ThreadStore (#17892)
# Summary - implement local ThreadStore archive/unarchive operations - implement local ThreadStore read_thread operation - break up the various ThreadStore local method implementations into separate files - migrate app-server archive/unarchive and core archive fixture to use ThreadStore (but not all read operations yet!) - use the ThreadStore's read operation as a proxy check for thread persistence/existence in the app server code - move all other filesystem operations related to archive (path validation etc) into the local thread store. # Tests - add dedicated local store archive/unarchive tests
This commit is contained in:
@@ -48,6 +48,7 @@ pub use list::get_threads_in_root;
|
||||
pub use list::parse_cursor;
|
||||
pub use list::read_head_for_summary;
|
||||
pub use list::read_session_meta_line;
|
||||
pub use list::read_thread_item_from_rollout;
|
||||
pub use list::rollout_date_parts;
|
||||
pub use metadata::builder_from_items;
|
||||
pub use policy::EventPersistenceMode;
|
||||
|
||||
@@ -756,6 +756,21 @@ async fn build_thread_item(
|
||||
None
|
||||
}
|
||||
|
||||
/// Read a single rollout file into the same summary item shape used by thread listing.
|
||||
///
|
||||
/// This is for callers that already resolved a rollout path and need the same
|
||||
/// metadata/preview extraction as list operations without scanning the whole
|
||||
/// sessions tree.
|
||||
pub async fn read_thread_item_from_rollout(path: PathBuf) -> Option<ThreadItem> {
|
||||
build_thread_item(
|
||||
path,
|
||||
&[],
|
||||
/*provider_matcher*/ None,
|
||||
/*updated_at*/ None,
|
||||
)
|
||||
.await
|
||||
}
|
||||
|
||||
/// Collects immediate subdirectories of `parent`, parses their (string) names with `parse`,
|
||||
/// and returns them sorted descending by the parsed key.
|
||||
async fn collect_dirs_desc<T, F>(parent: &Path, parse: F) -> io::Result<Vec<(T, PathBuf)>>
|
||||
|
||||
Reference in New Issue
Block a user