Skip to content

Add legacy rollout migration to paginated history - #37175

Merged
copyberry[bot] merged 1 commit into
mainfrom
copyberry/codex-internal-to-codex-oss/b9991b659f28ebb52da39ce62e8b4e0bae2ba2bb
Aug 5, 2026
Merged

Add legacy rollout migration to paginated history#37175
copyberry[bot] merged 1 commit into
mainfrom
copyberry/codex-internal-to-codex-oss/b9991b659f28ebb52da39ce62e8b4e0bae2ba2bb

Conversation

@copyberry

@copyberry copyberry Bot commented Aug 5, 2026

Copy link
Copy Markdown

Add legacy rollout migration to paginated history

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.

## 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
@copyberry
copyberry Bot force-pushed the copyberry/codex-internal-to-codex-oss/b9991b659f28ebb52da39ce62e8b4e0bae2ba2bb branch from 0df2551 to 6bb6e90 Compare August 5, 2026 22:58
@copyberry
copyberry Bot merged commit 6bb6e90 into main Aug 5, 2026
28 of 32 checks passed
@copyberry
copyberry Bot deleted the copyberry/codex-internal-to-codex-oss/b9991b659f28ebb52da39ce62e8b4e0bae2ba2bb branch August 5, 2026 22:59
@github-actions github-actions Bot locked and limited conversation to collaborators Aug 5, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants