Skip to content

v0.4.1 — OpenAI incomplete StopReason fix

Choose a tag to compare

@dratner dratner released this 19 May 05:24
· 10 commits to main since this release
92eceb8

Patch release. A cut-over fix the Maestro team surfaced while switching onto the toolkit.

Fixed

  • OpenAI (Responses) StopReason — on status:"incomplete" the adapter now surfaces incomplete_details.reason ("max_output_tokens" / "content_filter") instead of the envelope status. This makes OpenAI consistent with the raw-finish-reason passthrough of the other adapters (cf. divergences G3/OL3), so consumers can detect length-truncation / content-filter without reaching into Raw (outside the stability contract). Tool calls on a truncated response are preserved. Divergence OC4; no ADR (bugfix aligning to an existing convention). Cross-ref Maestro PR #220 / spec §9.

    Maestro consumers: on bumping to v0.4.1 you can delete the rawStopReason Raw.(*responses.Response) workaround + its two guard tests — normalizeStopReason already maps these reasons; no other change needed.

Docs

  • ADR-0009 — recorded the 2026-05-18 end-to-end live validation of the v0.4 Vertex path (Anthropic via anthropicvertex + Gemini embeddings) against real Google Vertex AI (append-only; design validated as built).

No API changes. Pre-1.0: v0.x minor versions may break.