Owen Lin
6bb6e9045f
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
2026-08-05 22:57:27 +00:00
..
2026-08-05 18:09:26 +00:00
2026-06-25 18:15:48 -07:00
2026-07-28 05:17:25 +00:00
2026-07-29 17:38:20 +00:00
2026-07-23 01:00:35 +00:00
2026-08-04 15:23:43 +00:00
2026-07-09 00:17:38 +00:00
2026-07-22 16:30:12 +00:00
2026-07-24 04:37:01 +00:00
2026-07-08 00:15:49 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-07-27 02:16:11 +00:00
2026-05-28 14:54:39 -07:00
2026-07-06 10:17:15 -07:00
2026-08-04 15:23:43 +00:00
2026-07-30 16:44:18 +00:00
2026-07-22 16:30:12 +00:00
2026-07-15 05:21:13 +00:00
2026-07-08 00:15:49 +00:00
2026-07-14 01:49:16 +00:00
2026-06-27 19:34:10 +00:00
2026-07-31 11:23:46 +00:00
2026-07-30 10:01:06 +00:00
2026-08-04 15:23:43 +00:00
2026-07-22 16:30:12 +00:00
2026-08-04 19:57:33 +00:00
2026-07-31 16:17:44 +00:00
2026-07-08 00:15:49 +00:00
2026-08-04 19:52:09 +00:00
2026-07-22 16:30:12 +00:00
2026-07-15 20:59:21 +00:00
2026-07-30 05:53:21 +00:00
2026-08-04 15:23:43 +00:00
2026-07-23 15:32:36 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-07-29 17:38:20 +00:00
2026-08-04 15:23:43 +00:00
2026-07-28 05:17:25 +00:00
2026-08-04 15:23:43 +00:00
2026-07-23 19:19:35 +00:00
2026-08-05 22:57:27 +00:00
2026-08-05 08:04:15 +00:00
2026-08-04 17:55:28 +00:00
2026-07-28 03:33:31 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-08-05 04:54:33 +00:00
2026-07-29 01:16:29 +00:00
2026-07-23 21:06:37 +00:00
2026-08-04 16:16:30 +00:00
2026-07-29 01:16:29 +00:00
2026-07-22 16:30:12 +00:00
2026-07-08 00:15:49 +00:00
2026-07-22 16:30:12 +00:00
2026-07-30 21:49:53 +00:00
2026-08-01 01:17:26 +00:00
2026-07-28 22:53:33 +00:00
2026-07-29 22:00:20 +00:00
2026-07-31 19:08:45 +00:00
2026-07-22 16:30:12 +00:00
2026-08-01 00:38:10 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-08-05 22:57:27 +00:00
2026-07-22 16:30:12 +00:00
2026-08-03 19:51:43 +00:00
2026-07-30 21:12:41 +00:00
2026-07-22 16:30:12 +00:00
2026-08-05 01:24:35 +00:00
2026-07-30 16:44:18 +00:00
2026-07-23 23:18:06 +00:00
2026-07-23 23:18:06 +00:00
2026-08-04 19:18:03 +00:00
2026-07-22 16:30:12 +00:00
2026-07-29 18:37:22 +00:00
2026-07-22 16:30:12 +00:00
2026-07-23 19:19:35 +00:00
2026-07-29 18:37:22 +00:00
2026-05-12 18:40:53 -07:00
2026-08-04 23:19:41 +00:00
2026-08-04 18:59:32 +00:00
2026-07-22 16:30:12 +00:00
2026-07-31 19:08:45 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-08-04 15:23:43 +00:00
2026-07-29 18:37:22 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-07-22 16:30:12 +00:00
2026-08-04 13:16:58 +00:00
2026-07-22 16:30:12 +00:00
2026-08-04 20:10:31 +00:00
2026-07-23 00:02:15 +00:00
2026-07-08 00:15:49 +00:00