pakrym-oai and GitHub
f00f93d8c0
[codex] Assign response item IDs when recording history ( #28814 )
...
## Why
Client-created response items enter history without IDs, so their
identity is lost across rollout persistence and resume. IDs should be
assigned once at the history-recording boundary, while IDs returned by
the server must remain unchanged.
The Responses API validates item IDs using type-specific prefixes.
Locally generated IDs therefore use the matching prefix plus a
hyphenated UUIDv7, keeping them valid while distinguishable from
server-generated IDs. Because this changes persisted history and
provider request shapes, the behavior is opt-in behind the
under-development `item_ids` feature. Compaction triggers remain request
controls whose API shape does not accept an ID.
## What changed
- Register the disabled-by-default `item_ids` feature and expose it in
`config.schema.json`.
- Make supported optional `ResponseItem` IDs serializable and expose
them in the generated app-server schemas.
- When `item_ids` is enabled, assign an ID during conversation-history
preparation if an item has no ID.
- Generate type-prefixed, hyphenated UUIDv7 IDs using the Responses API
item conventions.
- Preserve existing server IDs without rewriting them.
- Persist assigned IDs in rollouts and include them in subsequent
Responses requests.
- Remove the unsupported ID field from `CompactionTrigger` and document
why it has no ID.
- Add integration coverage for enabled ID persistence, preservation of
server IDs, and omission of generated IDs while the feature is disabled.
`prepare_conversation_items_for_history` is the single response-item ID
allocation boundary.
## Test plan
- `just test -p codex-features`
- `just test -p codex-core
response_item_ids_persist_across_resume_and_preserve_server_ids`
- `just test -p codex-core
non_openai_responses_requests_omit_item_turn_metadata`
- `just test -p codex-core
resize_all_images_prepares_failures_before_history_insertion`
- `just test -p codex-protocol`
- `just test -p codex-app-server-protocol`
- `just test -p codex-api azure_default_store_attaches_ids_and_headers`
2026-06-18 17:30:55 -07:00
..
2026-02-01 23:38:43 -08:00
2026-06-01 21:25:42 -07:00
2026-06-10 20:42:38 -07:00
2026-02-01 23:38:43 -08:00
2026-03-06 00:03:39 +00:00
2026-02-09 23:10:26 -08:00
2026-03-06 00:03:39 +00:00
2026-02-01 23:38:43 -08:00
2026-02-01 23:38:43 -08:00
2026-03-06 17:30:17 -08:00
2026-05-18 17:28:50 -07:00
2026-03-06 17:30:17 -08:00
2026-03-06 17:30:17 -08:00
2026-03-06 17:30:17 -08:00
2026-03-06 17:30:17 -08:00
2026-03-06 17:30:17 -08:00
2026-02-01 23:38:43 -08:00
2026-03-06 17:30:17 -08:00
2026-03-06 17:30:17 -08:00
2026-03-08 17:38:01 -07:00
2026-05-22 16:52:53 +00:00
2026-06-17 08:50:39 -07:00
2026-06-12 20:10:12 -07:00
2026-02-01 23:38:43 -08:00
2026-02-01 23:38:43 -08:00
2026-05-31 15:54:31 -07:00
2026-06-15 21:54:01 +00:00
2026-06-15 21:54:01 +00:00
2026-02-01 23:38:43 -08:00
2026-02-01 23:38:43 -08:00
2026-04-22 22:24:12 -07:00
2026-03-25 02:27:00 +00:00
2026-03-25 02:27:00 +00:00
2026-05-18 12:12:14 -07:00
2026-02-05 23:31:04 +00:00
2026-06-17 13:16:34 -07:00
2026-04-29 00:45:24 +00:00
2026-06-15 23:17:24 -07:00
2026-06-15 23:17:24 -07:00
2026-06-17 13:16:34 -07:00
2026-06-15 23:17:24 -07:00
2026-06-15 13:25:42 -07:00
2026-05-22 16:52:53 +00:00
2026-02-01 23:38:43 -08:00
2026-04-30 11:42:07 -07:00
2026-04-20 10:44:03 -07:00
2026-04-07 11:22:28 -07:00
2026-03-13 14:42:20 -07:00
2026-03-13 14:42:20 -07:00
2026-03-13 14:42:20 -07:00
2026-03-13 14:42:20 -07:00
2026-03-13 14:42:20 -07:00
2026-04-13 17:46:56 -07:00
2026-03-13 14:42:20 -07:00
2026-03-13 14:42:20 -07:00
2026-03-13 14:42:20 -07:00
2026-03-13 14:42:20 -07:00
2026-03-13 14:42:20 -07:00
2026-03-13 14:42:20 -07:00
2026-04-07 11:22:28 -07:00
2026-03-24 15:52:13 -07:00
2026-04-07 11:22:28 -07:00
2026-04-07 11:22:28 -07:00
2026-03-13 14:42:20 -07:00
2026-03-13 14:42:20 -07:00
2026-05-22 16:52:53 +00:00
2026-06-15 21:54:01 +00:00
2026-06-16 07:14:53 +00:00
2026-06-05 14:43:44 +00:00
2026-04-22 20:34:15 +00:00
2026-05-31 15:54:31 -07:00
2026-04-29 23:39:57 +00:00
2026-05-31 15:54:31 -07:00
2026-05-31 15:54:31 -07:00
2026-06-18 14:02:54 -07:00
2026-06-16 20:47:43 +00:00
2026-06-16 20:47:43 +00:00
2026-06-18 14:02:54 -07:00
2026-05-26 07:44:04 -07:00
2026-05-28 09:38:34 -07:00
2026-04-29 19:14:53 -04:00
2026-03-27 00:27:15 -07:00
2026-02-01 23:38:43 -08:00
2026-04-13 20:37:11 -07:00
2026-04-13 20:37:11 -07:00
2026-04-19 23:22:49 -07:00
2026-04-19 23:22:49 -07:00
2026-04-23 13:00:46 -07:00
2026-04-23 13:00:46 -07:00
2026-04-20 19:59:36 -07:00
2026-04-06 19:17:14 -07:00
2026-02-01 23:38:43 -08:00
2026-02-01 23:38:43 -08:00
2026-02-01 23:38:43 -08:00
2026-02-01 23:38:43 -08:00
2026-06-07 20:12:05 -07:00
2026-04-11 04:39:19 +00:00
2026-04-11 04:39:19 +00:00
2026-02-01 23:38:43 -08:00
2026-02-13 16:26:32 -08:00
2026-06-04 13:36:24 -07:00
2026-04-29 01:36:19 +00:00
2026-04-29 01:36:19 +00:00
2026-02-17 11:02:23 -08:00
2026-04-22 22:24:12 -07:00
2026-05-20 02:42:56 +00:00
2026-05-20 02:42:56 +00:00
2026-02-01 23:38:43 -08:00
2026-05-18 03:11:54 -07:00
2026-05-18 03:11:54 -07:00
2026-04-17 16:47:58 -07:00
2026-06-11 10:34:41 -07:00
2026-06-15 22:07:07 +00:00
2026-05-12 17:56:30 -07:00
2026-04-17 16:47:58 -07:00
2026-06-12 11:53:55 -07:00
2026-05-13 00:50:29 -07:00
2026-05-13 00:50:29 -07:00
2026-04-29 23:49:20 -07:00
2026-04-29 23:49:20 -07:00
2026-04-29 23:49:20 -07:00
2026-05-12 17:56:30 -07:00
2026-05-08 20:46:39 -07:00
2026-04-29 23:49:20 -07:00
2026-05-08 20:46:39 -07:00
2026-05-08 20:46:39 -07:00
2026-05-01 00:16:25 -07:00
2026-05-01 00:16:25 -07:00
2026-04-17 16:47:58 -07:00
2026-03-09 12:40:25 -07:00
2026-05-04 16:43:58 -07:00
2026-05-04 16:43:58 -07:00
2026-06-18 17:30:55 -07:00
2026-02-01 23:38:43 -08:00
2026-02-01 23:38:43 -08:00
2026-02-01 23:38:43 -08:00
2026-05-15 14:33:24 -07:00
2026-02-01 23:38:43 -08:00
2026-06-18 14:02:54 -07:00
2026-04-17 21:41:57 -07:00
2026-04-17 21:41:57 -07:00
2026-02-27 12:45:59 -08:00
2026-03-03 17:01:00 -08:00
2026-03-23 12:57:40 -07:00
2026-02-01 23:38:43 -08:00
2026-05-28 21:14:34 -07:00
2026-05-28 21:14:34 -07:00
2026-05-07 20:56:42 -07:00
2026-04-14 14:26:10 -07:00
2026-02-01 23:38:43 -08:00
2026-04-22 10:38:19 -07:00
2026-04-22 10:38:19 -07:00
2026-02-17 14:53:58 -08:00
2026-02-01 23:38:43 -08:00
2026-02-01 23:38:43 -08:00
2026-02-25 13:14:30 -08:00
2026-02-03 18:15:55 -08:00
2026-02-03 18:15:55 -08:00
2026-06-10 11:22:12 -07:00
2026-06-10 11:22:12 -07:00
2026-06-10 11:22:12 -07:00
2026-06-09 12:27:10 -07:00
2026-06-18 15:06:23 -07:00
2026-04-24 20:53:41 -07:00
2026-05-20 15:07:35 -07:00
2026-05-20 15:07:35 -07:00
2026-05-20 15:07:35 -07:00
2026-05-20 15:07:35 -07:00
2026-05-20 15:07:35 -07:00
2026-05-20 15:07:35 -07:00
2026-05-18 11:28:53 -07:00
2026-04-13 16:11:05 -07:00
2026-04-13 16:11:05 -07:00
2026-06-17 18:52:18 +00:00
2026-06-18 14:02:54 -07:00
2026-02-01 23:38:43 -08:00
2026-02-01 23:38:43 -08:00
2026-03-03 15:56:11 -08:00
2026-06-18 14:02:54 -07:00
2026-02-01 23:38:43 -08:00
2026-05-22 16:52:53 +00:00
2026-06-18 14:02:54 -07:00
2026-02-25 09:59:10 -08:00
2026-02-25 09:59:10 -08:00
2026-02-25 09:59:10 -08:00
2026-03-16 21:38:07 -07:00
2026-04-07 15:43:38 -07:00
2026-04-30 13:39:48 +03:00
2026-04-14 00:13:13 -07:00
2026-04-14 00:13:13 -07:00
2026-06-18 17:30:55 -07:00
2026-06-18 15:06:23 -07:00
2026-02-01 23:38:43 -08:00
2026-06-18 14:02:54 -07:00
2026-02-01 23:38:43 -08:00
2026-02-01 23:38:43 -08:00
2026-06-04 13:36:24 -07:00
2026-03-18 23:42:40 -06:00
2026-03-18 23:42:40 -06:00
2026-06-18 14:02:54 -07:00
2026-06-16 21:42:28 +00:00
2026-06-18 15:06:23 -07:00
2026-02-18 15:20:03 -08:00
2026-02-01 23:38:43 -08:00
2026-02-17 14:53:58 -08:00
2026-02-01 23:38:43 -08:00
2026-06-18 14:02:54 -07:00
2026-02-25 13:14:30 -08:00
2026-02-25 13:14:30 -08:00
2026-06-18 14:02:54 -07:00
2026-02-01 23:38:43 -08:00
2026-02-01 23:38:43 -08:00
2026-02-01 23:38:43 -08:00
2026-06-05 02:41:06 -07:00
2026-02-01 23:38:43 -08:00
2026-06-18 14:02:54 -07:00
2026-06-16 21:42:28 +00:00
2026-06-18 14:02:54 -07:00
2026-05-28 14:54:39 -07:00
2026-02-06 00:35:04 +00:00
2026-04-17 18:11:47 -07:00
2026-05-05 09:58:23 -07:00
2026-02-18 13:03:16 -08:00
2026-03-08 18:07:46 -07:00
2026-02-18 13:03:16 -08:00
2026-02-01 23:38:43 -08:00