# Changelog v0.5.34 - 2026-06-17

### Fixed
- **Per-provider schema normalization for GLM and Mistral/Codestral.** The router now runs a small normalizer before forwarding chat completions to `zai` (GLM) and `mistral` / `codestral`. The well-known 400/422 offenders are fixed at the router layer: `parallel_tool_calls`, `n`, `top_k`, `logprobs`, `echo`, `user`, `metadata`, and `store` are stripped; `tool` role messages that lack a matching assistant `tool_calls` entry are dropped (ZCode / Claude Code / Cline tool-call-flow quirk); and `temperature` is clamped to the provider's accepted range (Mistral: [0, 1]). Other OpenAI-compatible providers (Groq, Cerebras, NVIDIA, …) pass through unchanged. New module: `src/core/schema-normalizer.js`. Wired into both `proxyJsonRequest` and `proxyStreamingRequest`. 16 new tests in `test/test.js`.
