Seedream image jobs now log whether image input was present, whether it was sent as a single string or an array, how many references were included, and which size preset was used. This makes it possible to prove whether missing reference images are a server bug or a downstream gateway issue.
Constraint: The test server needed a low-noise way to confirm what reached /v1/images/generations without changing the external API contract
Rejected: Rely on gateway-side observation alone | it could not distinguish whether the image array was dropped before or after the server boundary
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep this Seedream request-shape log until the gateway team has finished validating image-array forwarding end to end
Tested: go test ./internal/server
Tested: Seedream 4.5 job on test server with three image refs after deploying binary (job_47513ead2708)
Not-tested: Long-term log volume impact under sustained Seedream traffic
The server now resolves source, identity, and style artifacts separately, emits role-labeled Gemini parts, and logs the effective request shape so deployed debugging can confirm which references reached upstream.
Constraint: The test deployment must stay on gemini-3.1-flash-image-preview while gaining better multi-image editing semantics
Rejected: Change the default model to gemini-3-pro-image-preview | test-server parity required keeping flash as default
Confidence: high
Scope-risk: moderate
Reversibility: clean
Directive: Preserve the source/identity/style logging until the upstream gateway exposes equivalent structured traces
Tested: go test ./internal/server
Tested: image img2img against http://101.42.99.35:18080/v1 (job_5af212df2c27)
Not-tested: Non-Gemini multi-image providers still fall back to the first reference only