mirror of
https://github.com/openai/codex.git
synced 2026-11-13 22:47:20 +00:00
Add legacy rollout migration to paginated history (#37175)
## What changed - Add `LocalThreadStore::migrate_rollouts` with dry-run and apply modes, optional thread selection, throughput limiting, and per-rollout outcomes. - Canonicalize legacy JSONL records into paginated history while preserving model-visible conversation context, including compressed rollouts and copied fork history. - Publish replacements atomically and journal migrations so interrupted SQLite projections can be recovered. Coordinate migration with rollout compression and skip rollouts with active writers. - Make paginated history a one-way SQLite promotion so stale metadata cannot downgrade a migrated thread. ## Testing - Cover legacy record normalization, dry runs, idempotency, malformed input, compressed rollouts, active writers, interrupted migration recovery, and a cold app-server resume after migration. GitOrigin-RevId: b9991b659f28ebb52da39ce62e8b4e0bae2ba2bb
This commit is contained in:
1 parent
e3465b48ad
commit
6bb6e9045f
18 files changed
+3115
-5
No files matched your search
@@ -8,6 +8,7 @@ mod model_context;
|
||||
mod move_thread_to_section;
|
||||
mod paginated_fork;
|
||||
mod read_thread;
|
||||
mod rollout_migration;
|
||||
// This lands before the reader PRs that consume the shared lineage resolver.
|
||||
#[allow(dead_code)]
|
||||
mod rollout_lineage;
|
||||
@@ -78,6 +79,12 @@ use crate::UpdateThreadMetadataParams;
|
||||
use crate::local::writer_lock::WriterLockCoordinator;
|
||||
use crate::local::writer_lock::WriterLockGuard;
|
||||
|
||||
pub use rollout_migration::RolloutMigrationMode;
|
||||
pub use rollout_migration::RolloutMigrationOptions;
|
||||
pub use rollout_migration::RolloutMigrationOutcome;
|
||||
pub use rollout_migration::RolloutMigrationReport;
|
||||
pub use rollout_migration::RolloutMigrationStatus;
|
||||
|
||||
/// Local filesystem/SQLite-backed implementation of [`ThreadStore`].
|
||||
///
|
||||
/// Local storage has two compatibility surfaces. Rollout JSONL files are the
|
||||
|
||||
Reference in new issue
Block a user