Changelog
Features
- 6e6a631 feat(audit): record every guardrail outcome and color workflow steps by it (#922)
- aeb7907 feat(plugins): add the presidio guardrail (#941)
- 489457d feat(plugins): extend the plugin contract for sidecar integrations (#938)
- 753161b feat(responses): honor previous_response_id on chat-translated providers (#939)
- 9dc3533 feat(responses): store streamed responses so previous_response_id can chain on them (#945)
- 8109685 feat(streaming): rewrite tool-call arguments in transform streams (#944)
Bug Fixes
- 189cb7b fix(cache): classify a stalled or vanished client on a cache-served stream (#936)
- 6cbf85a fix(dashboard): confirm rate-limit deletes (#927)
- 4a8785f fix(errors): include provider names in routed failures (#942)
- 638231f fix(gateway): fail over when a provider returns 200 with no choices (#949)
- 1ff820b fix(messages): count tokens exactly for Anthropic and calibrate the estimate (#933)
- 8a2d22f fix(responses): carry a streamed Gemini text-turn signature on the message item (#930)
- 40fb07f fix(responses): normalize translated streams to the OpenAI event lifecycle (#935)
- 18eb92e fix(session): detect body session signals past the audit capture limit (#940)
- 13084c3 fix: guard chained history, restore escaped stream tool args, hold growing stream matches (#948)
- 9c021ab fix: map reasoning effort per provider, keep presidio placeholders unique, name provider instances in errors (#946)