mirror of
https://github.com/openai/codex.git
synced 2026-10-20 17:38:45 +00:00
Store generated image items as attachment references (#54398)
## What changed - Upload generated images to the attachment store and expose `fileId` in image-generation items when available, with inline `result` fallback on upload or decoding failure. - Preserve file references through legacy events, persisted rollouts, thread history, and task output summaries. Keep model-facing image preparation separate. - Add attachment request tags and mark generated-image uploads with `usage=image_gen`, preserving the thread's ephemeral setting. - Update public schemas and SDK types to accept either image representation, retain the Python `ImageGenerationThreadItem` alias, and prefer `fileId` when reading records containing both fields. ## Testing Add coverage for file-backed generation and rollout persistence, legacy history replay, inline and transitional serialization, task output visibility, and Python SDK alias compatibility. GitOrigin-RevId: f7a2bb5707e2f277348a547a988bc33c8e96d891
This commit is contained in:
committed by
copyberry
parent
1ef30bcbe7
commit
aabf13307a
@@ -556,6 +556,30 @@ def test_generated_inline_image_class_names_remain_stable() -> None:
|
||||
)
|
||||
|
||||
|
||||
def test_generated_image_generation_thread_item_alias_remains_available() -> None:
|
||||
"""Existing SDK callers can still construct and validate inline image-generation items."""
|
||||
from openai_codex.generated.v2_all import (
|
||||
ImageGenerationThreadItem,
|
||||
ResultThreadItem,
|
||||
)
|
||||
|
||||
item = ImageGenerationThreadItem.model_validate(
|
||||
{
|
||||
"failure": None,
|
||||
"id": "image_1",
|
||||
"result": "aW1hZ2U=",
|
||||
"revisedPrompt": None,
|
||||
"savedPath": None,
|
||||
"status": "completed",
|
||||
"transparentBackground": None,
|
||||
"type": "imageGeneration",
|
||||
}
|
||||
)
|
||||
|
||||
assert ImageGenerationThreadItem is ResultThreadItem
|
||||
assert isinstance(item, ResultThreadItem)
|
||||
|
||||
|
||||
def test_runtime_package_template_has_no_checked_in_binaries() -> None:
|
||||
runtime_root = ROOT.parent / "python-runtime" / "src" / "codex_cli_bin"
|
||||
assert sorted(
|
||||
|
||||
Reference in New Issue
Block a user