Each suggested model names and links its licence before Download.
A finished file is checked against Hugging Face's sha256; no API, no check, and the card says so.
A 429 from Hugging Face is waited out as its headers ask, counted down on the card.
Endpoint + key, normalised to the v1 base URL; key never shared with OpenAI.
Model ids are deployment names; Test probes the resource's /openai/v1/models.
The box stays at the end of the API-keys group; saving makes a card titled by the user, prefix derived from the name.
A custom card lists its server's /models on request (a missing listing is a note, not a failure).
Re-saving a custom key now rebuilds its client; strings in en + zh.
Same shape as llama.cpp/vLLM/LM Studio: address + optional key, models from the server.
Docker's /engines path is added when the user types the root; mlx-lm's help covers the port shared with llama.cpp.
Local-server checks now read LOCAL_SERVERS instead of a hand-kept tuple.
Install with Homebrew, pick a model sized to the Mac (or one Ollama has), start it.
OpenWorker runs llama-server, downloads into llama.cpp's cache, stops it on quit.
Wires Upstage into the existing compat-vendor pattern: a _compat descriptor
(prefilled https://api.upstage.ai/v1 endpoint, UPSTAGE_API_KEY env fallback),
a solar-pro3 matrix entry, the "solar" capability heuristic, suggested-model
extras, and the GUI key-help link + vendored lobe-icons logo.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Three rows from the live catalogue with the 1M windows NVIDIA lists (2026-10-25).
A non-default endpoint is probed with GET /models, so Test works on a self-hosted NIM.
Sonnet 5 (1,000,000) and DeepSeek V4 Pro (1,048,576) from the public catalogue, 2026-10-25.
Suggestions come from the matrix; the default endpoint help applies.
Registers OrcaRouter (https://www.orcarouter.ai) as a first-class
OpenAI-compatible provider, mirroring the existing OpenRouter wiring:
prefilled endpoint, ORCAROUTER_API_KEY (sk-orca- keys), server + GUI key
detection, verify support, three curated matrix models (Claude Sonnet 5,
GPT-5.5, DeepSeek V4 Pro), a GUI logo and keys link, and tests.
Co-Authored-By: Claude <noreply@anthropic.com>
Nebius Token Factory serves many labs' models behind one key over an
OpenAI-compatible API, so it joins Together/Fireworks as a reseller
descriptor plus curated matrix rows in their own namespaces.
Verified against the live API on 2026-07-26: /v1/models, a tool-call
round-trip and streaming on all four curated ids, and verify_provider_key
for both a good and a bad key.
Co-authored-by: Cursor <cursoragent@cursor.com>
One indented checkbox under Exa, Firecrawl or Tavily when it is in use, with a caution line; the separate card is gone.
The web_fetch card line now reads "fetched by your search service, <name>".
Providers as radio rows with a key per service (test and save), and the fetch-through-the-search-service switch.
Between Connectors and Context optimization; deep link #/settings/customization.
cloud.status() only checked for an access_token's presence, not its
freshness, so the GUI kept showing "signed in" (and the live "Add to
Slack" button) after a session had actually expired. Clicking it hit
begin_managed_connect's real fresh_access_token check, which correctly
rejected it — but the modal just printed the bare error with no way
to recover.
SlackOneClick now treats a signed_in:false response from connectManaged
as a session-expiry signal, switches into the sign-in prompt, and
auto-resumes the Slack connect once sign-in completes.
Fixes#658
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Adds a persisted 'Hide thinking while I work' Composer setting. When on, the
fast-scrolling live reasoning trace collapses to a quiet one-line 'Thinking...'
indicator during a run (so it is never mistaken for idle work), and the full
reasoning still appears in the answer's 'Thought process' disclosure after the
turn. OFF by default.
- backend: persist hide_reasoning_running pref + /v1/settings/hide-reasoning
- frontend: Settings toggle (Settings > Composer), gate the live ThinkingBlock
- tests: e2e covering default-on live block, hidden-mode indicator, finalized
reasoning, and the Settings toggle round-trip
Move the Models error copy to en/zh keys and shape it like the local-models status line.
Abort the settings fetch after 10 s so a hung server shows the same Retry line; unit + e2e tests.
Questions were the only Inbox item kind with no way out. Approvals have Deny,
directory requests have Deny, plans have Reject, notifications have Dismiss —
a question had nothing, so a user who couldn't answer had to invent an answer
that misleads the agent or abandon the session. Worst on a card with exhaustive
options and allow_text:false: literally no control but the options themselves.
The card now carries Skip, and a grouped card carries both "Skip question" (this
one, advance) and "Skip all" (resolve the rest). Skip all KEEPS answers already
given — it means "don't ask me the rest", not "discard". Skip is present whatever
allow_text says, since that's exactly where the user was stuck.
The button was the easy half. answer_result() returned {"answer": ""} both for a
blank resolution and for anything unparseable, so a skip could not be told from an
empty answer. A skipped question now answers null — never "" — alongside `skipped`
naming what was declined. Two consequences in the engine: an all-skipped card reads
"denied" rather than "ok" (a non-empty answers map is no longer proof anyone
answered), and _note_ask_replies drops nulls, else str(None) files the literal
"None" as something the user said.
What the agent is told about a skip is deliberately asymmetric. "Do not put this
question back to them" is absolute — that anti-loop guarantee is what the skip is
for. "Pick a default" is conditional: the same note fires for "you choose the chart
colour" and for "Staging or Production?", and a model that follows instructions
literally would deploy off a shrug. Opus 4.8 refused that guess on its own; smaller
models are likelier to comply, so proceeding without deciding is offered as a third
path rather than left to whichever model is driving.
Verified against a live model, not just fixtures: the options-only card skipped
cleanly, and a grouped card kept its answered step while reporting the skipped ones
as skipped. Four e2e specs and four Python tests cover both surfaces.