0.22.5
If you configured a Gemini model and anything other than Thinking = off, every turn failed. This release fixes that.
What the endpoint was saying
Error code: 400 - Invalid JSON payload received.
Unknown name "thinking": Cannot find field. status: INVALID_ARGUMENT
That was not a misconfiguration on your side — Socrates was sending the wrong thing.
What was wrong
There is exactly one place in Socrates that changes the request based on which model you use: the part that turns the Thinking setting into whatever field your endpoint expects. It knew about three cases. Everything else fell through to DeepSeek's spelling, which sends a thinking object alongside the effort level.
Google's OpenAI-compatible layer doesn't have a thinking field, and rejects any request carrying one. So Gemini worked only with Thinking set to off — that setting happens to send nothing at all — and failed on low, medium, and high.
What changed
Gemini models now get the plain reasoning_effort field, which Google's compatibility layer accepts directly. Gemini 3 and later cannot turn reasoning off at all, so choosing off on those models sends the lowest level instead of an unsupported one. When the version in the model name can't be read, Socrates assumes reasoning can't be disabled — being a little slower is a far better outcome than another rejected request.
A note on how this was verified
The Gemini behaviour above comes from Google's documentation, not from measurement — unlike the Celeris numbers in 0.22.0, where every figure was probed against the live endpoint. The fix was tested against a local stand-in that rejects unknown top-level fields the same way Google does, and the original failure reproduces there once the fix is disabled.
After installing, Stop then Start the sidecar so it upgrades to 0.22.5. Requires Obsidian desktop 1.5.0+ and Python 3.11+ on the same machine.