Include shared histories in rollout compression (#42039)

## What changed

- Make `local_thread_store_compression` compress cold rollout files across shared and forked histories without a separate compression mode.
- Retire `local_thread_store_shared_compression` while continuing to accept it in strict configuration without changing compression behavior.
- Read rollout files through the compressed-rollout reader when `codex exec resume` determines the latest turn's working directory.

## Testing

- Cover compression and restoration of an archived fork chain.
- Cover cwd-based resume selection when only the compressed rollout remains.
- Cover the removed compatibility key in strict configuration.

GitOrigin-RevId: 8edebf61eccc1f79cabb8e641f8982c76f337bf1
This commit is contained in:
jif
2026-09-01 12:23:20 +00:00
committed by copyberry
parent 2e5ee418ad
commit 9d0eae74cd
13 changed files with 137 additions and 305 deletions
+4 -3
View File
@@ -171,9 +171,10 @@ pub enum Feature {
MemoryTool,
/// Enable importing project-scoped memory from external agents.
ExternalAgentMemoryImport,
/// Compress cold local thread-store rollout files.
/// Compress cold local thread-store rollout files, including shared histories.
/// Requires every reader of the Codex home to support compressed shared histories.
LocalThreadStoreCompression,
/// Allow rollout compression on homes used exclusively by compressed-lineage-aware readers.
/// Removed compatibility flag; local_thread_store_compression controls all rollout files.
LocalThreadStoreSharedCompression,
/// Migrate legacy local rollout files to paginated history in the background.
BackgroundPaginatedRolloutMigration,
@@ -1081,7 +1082,7 @@ pub const FEATURES: &[FeatureSpec] = &[
FeatureSpec {
id: Feature::LocalThreadStoreSharedCompression,
key: "local_thread_store_shared_compression",
stage: Stage::UnderDevelopment,
stage: Stage::Removed,
default_enabled: false,
},
FeatureSpec {