v0.4.2 — Gemini thought_signature round-trip (G1 resolved)
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_signatureis now carried through the message model via the newToolCall.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 originalresponseCache). 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 asContentPart.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.