Track image generation request IDs in analytics (#40714)

## What changed

- Read `x-codex-imagegen-request-id` from image generation and edit responses.
- Propagate the ID to `codex_image_generation_event` analytics.
- Keep the ID in process only, excluding it from extension item serialization, generated types, app-server wire data, and rollout history.

## Testing

- Cover response-header extraction and missing-header behavior in the images client.
- Verify end-to-end analytics emission and the unchanged image-generation item wire shape.

GitOrigin-RevId: 9b8e09b7d655c0c2faa84f0eee99aabae583668d
This commit is contained in:
Chris Dong authored and copyberry committed 2026-08-25 21:38:10 +00:00
1 parent 1bc02aea50
commit 346c4db7c2
16 files changed
+124 -24

No files matched your search

@@ -38,4 +38,12 @@ pub struct ImageGenerationItem {
#[serde(default, skip_serializing_if = "Option::is_none")]
#[ts(optional)]
pub saved_path: Option<AbsolutePathBuf>,
/// Exact nested ImageGen request ID retained only for in-process analytics.
///
/// This is deliberately excluded from the extension/app-server wire shape
/// and rollout persistence because it is not a client-facing item field.
#[serde(skip)]
#[schemars(skip)]
#[ts(skip)]
pub imagegen_request_id: Option<String>,
}