v0.2.6
Changed
-
OpenCode Zen and OpenCode Go are one provider each, instead of three.
The gateway serves some models as Chat Completions, some as Anthropic
Messages and some as Responses, and the only way to record that used to be
a separate provider per dialect — six entries in the picker, the same key
pasted three times per subscription. The dialect now travels with the
model, so there is one entry per subscription and one key. Existing setups
are folded together on first launch, keeping their key, their enabled
models and the context windows already learned; the saved model selection
and the Codex integration are repointed at the merged provider.Models found by discovery are assumed to speak whatever the provider does
— no catalog publishes which wire a gateway serves a model on. Where that
guess is wrong, each model on a multi-dialect provider now carries its own
dialect picker.
Added
- The running version is stamped in the sidebar footer, next to the
language switcher. After an update installs there was no way to tell
which build was actually in front of you short of the Windows uninstall
list; the stamp is the binary's own version — the same number the
updater compares against — so it cannot misreport.
Fixed
- Asking for a native GPT no longer reaches OpenCode instead. The
gateway serves models under the same names OpenAI uses —gpt-5.5,
gpt-5.4-mini,grok-4.5— and a request naming one of those without a
provider matched whichever provider happened to serve it, silently
answering with a different model than the one asked for. Unqualified names
go to the native backend now, unless native-slug mode is on, which is the
setting whose whole purpose is to publish routed models under bare names.
The gateway's own copies stay reachable under their full name. - Switching a thread from a routed model to a native one no longer breaks
the next turn. It failed with "Item with id 'rs_…' not found. Items are
not persisted whenstoreis set to false". A routed provider returns no
item ids, so LoomRouter invents them; the agent keeps them in the thread
and replays them, and OpenAI's backend rejects an id it never issued.
Those ids are now removed on the way out, keeping the content of the turn
and the pairing between a tool call and its result. - Routed models can edit files again:
apply_patchworks through Chat
upstreams. Codex ships it as a freeform tool whose schema is a grammar
rather than a JSON object, and nothing on the Chat path knew what to do
with that — strict providers rejected the request outright, and when one
did answer, the edit came back in a shape Codex filed as an unknown tool
and aborted. Both directions are translated now, including across turns,
so the model keeps seeing its own patches and their results. - No more console window next to the app on Windows. The binary was
linked against the console subsystem, so Windows opened a terminal beside
it on every launch and printed the proxy's log into it — closable only by
quitting the app. Release builds are GUI binaries now;tauri devstill
prints its log to the terminal. - OpenCode Zen and Go models report their real context window. Five of
the six OpenCode presets were looking the gateway up under a catalog
name that does not exist, so the enrichment step quietly found nothing
and every model on them kept the conservative 128K tag — 1M models like
deepseek-v4-pro,glm-5.2andqwen3.6-plusincluded. That number is
also what Codex plans turns against, so it compacted conversations
roughly eight times earlier than it had to. Both gateways now resolve,
including the models each one publishes with a different window. - The context tag no longer renders a raw divisor.
kimi-k3read
"1.048576M", and every window the vendor counts in round thousands read
low —grok-4.5's 500K as "488K",gpt-5.4-mini's 400K as "391K".