gstack/design
Pablosinyores 66a84df3d6 fix(design): drop gpt-image-2 tool model on gpt-4o orchestrator (#1771)
The Responses API rejects a gpt-4o orchestrator paired with an
`image_generation` tool spec'd as `model: "gpt-image-2"` (400
invalid_request_error). `gpt-image-2` is only valid under a gpt-5
orchestrator; with gpt-4o the tool must omit the `model` field
(defaults to `gpt-image-1`).

This regression landed in v1.43.2.0 (commit 66f3a180, 2026-05-21),
which added `model: "gpt-image-2"` to the `image_generation` tool
spec while leaving the top-level orchestrator at `gpt-4o`. The
pairing took all five `design` subcommands offline with a generic
400 error: `/design-shotgun`, `design variants`, `design generate`,
`design iterate`, and `design evolve`.

Revert the four call sites to the pre-regression shape (drop the
`model` field, fall back to the API default `gpt-image-1`):

- design/src/generate.ts:53
- design/src/variants.ts:73
- design/src/iterate.ts:98 (threaded fresh-prompt call)
- design/src/iterate.ts:145 (threaded follow-up call)
- design/src/evolve.ts:67

Add a static-grep tripwire (`design/test/image-gen-pairing.test.ts`)
that scans every `design/src/*.ts` and fails CI if any module
contains both the literal `model: "gpt-4o"` and the literal
`model: "gpt-image-2"`. The check follows the same shape as the
existing tripwires in browse/test/ (cdp-session-cleanup,
terminal-agent-pid-identity, server-embedder-terminal-port) — single
forbidden source-level pattern, clear remediation in the failure
message. To re-enable gpt-image-2 the orchestrator must also be
bumped off gpt-4o in the same diff; the tripwire allows that because
both literals are no longer present in the same module.

Closes #1771.
2026-05-28 19:10:08 +05:30
..
src fix(design): drop gpt-image-2 tool model on gpt-4o orchestrator (#1771) 2026-05-28 19:10:08 +05:30
test fix(design): drop gpt-image-2 tool model on gpt-4o orchestrator (#1771) 2026-05-28 19:10:08 +05:30
prototype.ts v1.30.0.0 fix wave: 21 community PRs + Windows CI extension + codex flag-semantics smoke (#1391) 2026-05-09 08:06:47 -07:00