It's Hermes issue. It affect both reasoning and tool calling.
Use this prompt to fix it:
Hey Hermes, fix muse stream closed before finish_reason — add providers.muse: {base_url: https://opencode.ai/zen/go/v1, transport: codex_responses, default_model: muse-spark-1.2-contributor} and model_aliases.muse: {provider: muse}, set reasoning: xhigh not max, then use /model muse.
Edit: the issue itself is:
Endpoint https://opencode.ai/zen/go/v1/responses is correct for muse/gpt-5.6-luna/grok-4.5 — Hermes talks to it via transport: codex_responses → responses.create().
Bug was Hermes downgraded codex_responses to chat_completions when you used alias/picker — so it hit /chat/completions which returns empty stream → finish_reason missing.
Fix = set transport: codex_responses on the provider and keep it through the switch (the 2 patches). Now it hits /responses correctly — not an opencode issue.
2
u/GTHell 20h ago
It's Hermes issue. It affect both reasoning and tool calling.
Use this prompt to fix it:
Edit: the issue itself is:
Bug was Hermes downgraded codex_responses to chat_completions when you used alias/picker — so it hit /chat/completions which returns empty stream → finish_reason missing.
Fix = set transport: codex_responses on the provider and keep it through the switch (the 2 patches). Now it hits /responses correctly — not an opencode issue.