pakrym-oai
5c12034e42
core: add UUIDv7 context window IDs ( #28953 )
...
## Why
The token-budget context currently identifies a context window by its
thread-local sequence number. A UUIDv7 gives the model a stable opaque
identity that remains fixed for a window and rotates when compaction or
`new_context` starts the next one.
## What changed
- Preserve the existing monotonic value as `window_number` and add a
UUIDv7 `window_id` to `CompactedItem`.
- Generate and rotate the UUID with auto-compaction window state,
persist it alongside the number, and reconstruct it on resume and
rollback.
- Accept legacy compacted rollout records where the numeric `window_id`
represented the window number.
- Use the UUID only in token-budget context; existing request headers
and metadata continue using `thread_id:window_number`.
## Testing
- `just test -p codex-protocol compacted_item::tests`
- `just test -p codex-core token_budget`
History
..
2026-06-08 11:39:08 +02:00
2026-06-09 12:48:04 -07:00
2026-05-26 20:59:47 -07:00
2026-06-11 18:16:39 -07:00
2026-06-17 11:23:39 -07:00
2026-06-18 14:02:54 -07:00
2026-05-07 15:44:17 -07:00
2026-06-18 16:45:58 -07:00
2026-06-18 11:54:49 -07:00
2026-06-11 21:28:52 -07:00
2026-06-18 17:00:49 -07:00
2026-06-18 11:54:49 -07:00
2026-06-18 14:05:27 -07:00
2026-06-18 19:31:19 +00:00
2026-06-18 19:31:19 +00:00
2026-06-11 18:16:39 -07:00
2026-05-08 04:07:59 +00:00
2026-06-15 21:54:01 +00:00
2026-06-13 21:43:39 -07:00
2026-06-18 20:29:01 +00:00
2026-06-18 14:05:27 -07:00
2026-06-18 14:05:27 -07:00
2026-06-18 14:05:27 -07:00
2026-06-11 18:16:39 -07:00
2026-06-11 18:16:39 -07:00
2026-06-16 19:28:55 -07:00
2026-06-11 22:37:26 -07:00
2026-06-12 02:49:17 -07:00
2026-06-17 20:57:13 -07:00
2026-06-01 21:25:42 -07:00
2026-06-15 21:53:47 -07:00
2026-05-07 15:44:17 -07:00
2026-06-15 20:10:53 -07:00
2026-06-18 20:29:01 +00:00
2026-06-13 21:43:39 -07:00
2026-06-18 11:39:02 -07:00
2026-06-18 20:29:01 +00:00
2026-06-15 15:05:28 -07:00
2026-06-18 17:00:49 -07:00
2026-06-17 17:20:53 -07:00
2026-06-18 16:45:58 -07:00
2026-06-18 16:45:58 -07:00
2026-06-05 15:41:13 -07:00
2026-06-18 14:05:27 -07:00
2026-06-18 15:06:23 -07:00
2026-06-15 21:53:47 -07:00
2026-06-13 21:43:39 -07:00
2026-06-18 16:45:58 -07:00
2026-06-15 23:17:24 -07:00
2026-06-15 15:05:28 -07:00
2026-06-18 16:13:07 -07:00
2026-05-26 15:59:25 -07:00
2026-05-07 15:44:17 -07:00
2026-06-17 10:00:42 -07:00
2026-05-28 23:09:55 -07:00
2026-06-12 16:58:42 -07:00
2026-06-15 15:12:26 -07:00
2026-06-03 19:08:19 -07:00
2026-06-12 19:52:49 +00:00
2026-06-18 14:09:38 +02:00
2026-05-07 15:44:17 -07:00
2026-06-18 14:05:27 -07:00
2026-06-18 19:18:42 +00:00
2026-06-18 11:54:49 -07:00
2026-06-04 09:53:08 -04:00
2026-06-17 11:23:39 -07:00
2026-06-05 17:36:18 -07:00
2026-06-13 21:43:39 -07:00
2026-06-18 14:09:38 +02:00
2026-06-04 09:53:08 -04:00
2026-06-15 21:53:47 -07:00
2026-06-18 00:16:46 -07:00
2026-05-25 17:26:10 -03:00
2026-06-18 16:13:07 -07:00
2026-06-18 17:00:49 -07:00
2026-05-07 15:44:17 -07:00
2026-04-22 22:24:12 -07:00
2026-05-07 15:44:17 -07:00
2026-06-18 11:54:49 -07:00
2026-06-18 17:00:49 -07:00
2026-06-18 05:00:04 +00:00
2026-06-18 14:09:38 +02:00
2026-05-26 20:59:47 -07:00
2026-06-12 19:52:49 +00:00
2026-06-15 08:28:02 -07:00
2026-06-11 18:16:39 -07:00
2026-06-17 19:16:18 +00:00
2026-06-17 18:52:18 +00:00
2026-05-07 15:44:17 -07:00
2026-05-13 21:23:19 +00:00
2026-05-07 15:44:17 -07:00
2026-06-18 19:18:42 +00:00
2026-06-18 17:00:49 -07:00
2026-06-16 23:44:42 +00:00
2026-06-18 15:06:23 -07:00
2026-05-07 15:44:17 -07:00
2026-06-18 15:06:23 -07:00
2026-06-13 21:43:39 -07:00
2026-06-13 21:43:39 -07:00
2026-06-18 11:04:30 -07:00
2025-10-19 20:41:55 -04:00
2026-04-24 17:49:29 -07:00
2026-06-18 14:05:27 -07:00
2026-06-15 16:39:41 -07:00
2026-04-20 22:41:54 -07:00
2025-10-17 14:58:27 -07:00
2026-02-20 19:32:15 -08:00
2026-06-11 18:16:39 -07:00
2026-06-04 09:16:03 -07:00
2026-05-26 20:59:47 -07:00
2025-05-07 08:37:48 -07:00