Missing reasoning_effort parameter & incorrect prompt role for o-series models in OpenAI-Compatible
Environment: Void version: 1.3.2 Integration: OpenAI-Compatible
Issue 1: reasoning_effort parameter not sent
- In the Chat UI, when selecting o4-mini or o3 under OpenAI-Compatible, you can choose a “Thinking” level (Low, Medium, High).
- However, the actual HTTP request body sent to the server contains no reasoning_effort field.
- Expected: the request JSON should include "reasoning_effort": "low" | "medium" | "high" matching the UI selection.
Issue 2: Wrong prompt role for o-series inference models
- According to OpenAI’s guidance, when targeting o-series models (e.g. o4-mini, o3), system prompts should be sent with role: "developer" rather than "system".
- Void currently always uses "role": "system" even for o4-mini and o3.
- Expected: when using o4-mini or o3, the role field in the prompt payload should be set to "developer".
Steps to reproduce:
- Open Void 1.3.2 and enable an OpenAI-Compatible server.
- Select o4-mini (or o3) and pick a Thinking level (Low/Medium/High).
- Inspect the outgoing request body (e.g. via a proxy or server logs).
- Observe that neither reasoning_effort nor role: "developer" appear in the payload.
Expected behavior:
- The JSON payload should include both the reasoning_effort field and use "role": "developer" for o-series models.
Please refer to the official OpenAI documentation for chat completions here: https://platform.openai.com/docs/api-reference/chat/create
Thanks for reporting, will investigate.
#584 should fix this! Lmk if you still have any problems.
@andrewpareles Thanks for fixing the reasoning_effort parameter in Issue 1! I’ve confirmed it’s now being sent correctly. However, Issue 2 still persists: o-series models (o4-mini and o3) are still receiving prompts with "role": "system" instead of "role": "developer" as specified in the OpenAI docs (https://platform.openai.com/docs/api-reference/chat/create). Could you please take another look and update the prompt role accordingly?
By the way, I’m absolutely loving Void—it’s the only open-source project I’ve found that can truly replace Cursor. Haha!
glad to hear!
Ah, yes - I think we likely just need to change developer to system in modelCapabilities.ts for these models, happy to do this tomorrow!
https://github.com/voideditor/void/pull/608 Made a PR regarding this!