mirror of
https://github.com/openai/codex.git
synced 2026-11-13 06:45:07 +00:00
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:
1 parent
1bc02aea50
commit
346c4db7c2
16 files changed
+124
-24
No files matched your search
@@ -17,6 +17,7 @@ fn completed_image_generation_item() -> ExtensionItem {
|
||||
transparent_background: None,
|
||||
failure: None,
|
||||
saved_path: None,
|
||||
imagegen_request_id: None,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -89,6 +90,25 @@ fn image_generation_transparency_is_optional_in_typescript() {
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn image_generation_request_id_stays_internal() {
|
||||
let ExtensionItem::ImageGeneration(mut image) = completed_image_generation_item() else {
|
||||
panic!("expected image-generation item");
|
||||
};
|
||||
image.imagegen_request_id = Some("req-imagegen-123".to_string());
|
||||
let item = ExtensionItem::ImageGeneration(image);
|
||||
let value = serde_json::to_value(&item).expect("serialize extension item");
|
||||
|
||||
assert!(value.get("imagegenRequestId").is_none());
|
||||
let ExtensionItem::ImageGeneration(round_tripped) =
|
||||
serde_json::from_value::<ExtensionItem>(value).expect("deserialize extension item")
|
||||
else {
|
||||
panic!("expected image-generation item");
|
||||
};
|
||||
assert_eq!(round_tripped.imagegen_request_id, None);
|
||||
assert!(!ImageGenerationItem::inline().contains("imagegenRequestId"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn web_search_item_preserves_stable_wire_shape() {
|
||||
let item = ExtensionItem::WebSearch(WebSearchItem {
|
||||
|
||||
Reference in new issue
Block a user