Skip to content

v0.4.2 — Gemini thought_signature round-trip (G1 resolved)

Choose a tag to compare

@dratner dratner released this 19 May 12:53
· 9 commits to main since this release
570d023

Patch release. A release-blocking Gemini fix the Maestro team surfaced during cut-over (their PR #220 / migration §5 G1).

Fixed

  • Gemini tool-call round-trip — the opaque functionCall thought_signature is now carried through the message model via the new ToolCall.ProviderSignature, captured on response parse and replayed on the next request. Without it, Gemini 3 Pro (gemini-3-pro-preview) hard-400 INVALID_ARGUMENTs on every 2nd+ tool-loop turn, making it unusable for any multi-turn agentic tool use. The signature travels in the conversation history the app already round-trips — stateless, no per-client cache (restores pre-extraction Maestro parity without the contract violation that motivated dropping the original responseCache). Divergence G1 → RESOLVED; ADR-0010.

Added

  • llms.ToolCall.ProviderSignature []byte — opaque, provider-owned, never interpreted by core; round-trips provider-required per-tool-call state. Additive and zero-value-safe; Anthropic/OpenAI/Ollama leave it nil and ignore it (same neutral pattern as ContentPart.CacheBreakpoint).

Maestro consumers: bumping to v0.4.2 unblocks Gemini for the migration — multi-turn Gemini tool loops now work; migration §5 G1 clears (Anthropic + OpenAI were unaffected).

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