Skip to content

Release v1.8.0

Latest

Choose a tag to compare

@github-actions github-actions released this 13 Sep 09:40
Release 1.8.0: reasoning levels, Ollama Cloud handling, settings rework

Reasoning
- Thinking now supports Ollama's levels, not just on/off. Some models (gpt-oss,
  minimax-m2) ignore the boolean entirely and only respond to low/medium/high, so
  a switch alone left users with no control at all over the trace. The level is
  passed through uncoerced; `max` is in Ollama's docs but not in the installed
  client's type, so it is left out rather than cast past the dependency.

Ollama Cloud
- Cloud models (-cloud suffix) run on Ollama's servers at their maximum context
  and silently ignore options.num_ctx - HTTP 200, never applied. num_ctx is now
  omitted from their requests and never persisted, the context-size row is left
  out of the dialog entirely rather than disabled, and the gauge measures against
  the model maximum. resolveContextLimit checks cloud BEFORE any saved override,
  so a stale value is not treated as being in effect.

Settings
- Per-model settings drop the enabled/value pairs for optional fields: absent
  means not overridden, so a flag can no longer disagree with its value.
  getModelSettings stops merging over defaults, which was inventing a temperature
  for models that never set one, and values are validated and clamped on read now
  that nothing else gates them.
- The context window is called contextWindow throughout the app, translated to
  Ollama's num_ctx at the single point that builds the request.
- The gauge moved to the chat input row, left of the textarea.

Fixes
- A failed context-length lookup cached null, which is never retried, so one
  transient outage pinned a model to the fallback slider ceiling forever. Only a
  genuine "no length reported" is cached now.
- Concurrent writers to a global storage key each wrote back a snapshot computed
  from their own rendered state, silently discarding the other's entry. The
  setter now takes an updater applied to storage read inside a per-key lock.
- A regenerated reply inherited the previous answer's reasoning when the new one
  produced none, because the merge could not tell "no reasoning this time" from
  "this call carries no reasoning field".
- When Ollama reports no token counts, usage is cleared rather than left showing
  a stale reading as though freshly measured.
- The gauge no longer states 4096 as Ollama's default; it is tiered by the
  server's free VRAM, which the client cannot see.