Changelog
Format follows Keep a Changelog, versioning follows SemVer. The authoritative source is the CHANGELOG.md in the repository — this page mirrors the same content into the docs.
[Unreleased]
Section titled “[Unreleased]”- Interactive API reference (
docs/openapi.yaml, OpenAPI 3.1): all 24 HTTP routes with schemas, error codes, and a ready-made cURL example per endpoint, automatically generated at /api/ on the docs website. The HTTP API reference has been trimmed accordingly — now covering only auth, SSE streaming, and one end-to-end example, with no more manually maintained endpoint list. - Real screenshots of the web UI (chat, jobs, models, settings) in the web UI docs.
- Project logo as the header wordmark and browser favicon of the docs website.
- Practical examples (MCP server, scheduler job) in the configuration docs.
Changed
Section titled “Changed”entwicklung/renamed toweiterentwicklung/: the sidebar sorts folders alphabetically once an OpenAPI specification is present — the rename brings the order to Installation → Configuration → Usage → Models → Further Development → API Reference.
TestChatSessionContinuityflaked under CI load (~9 out of 240 runs): automatic session-title assignment runs in a background goroutine and could overwrite the last recorded test request. The test now specifically targets the request carrying the expected message.
[0.3.0] — 2026-07-19
Section titled “[0.3.0] — 2026-07-19”- Web UI (embedded in the daemon,
ollama-agent uiopens it in the browser; installable as a PWA): chat with multiple sessions, automatic naming (LLM-generated titles), renaming, full-text search, per-response token display, context meter with a compress function; jobs overview with instant execution and history; model page with capability matrix, benchmark launch from the UI (live progress), and Ollama tuning guide; settings page (masked config, task assignment, API token). - Persistent chat sessions (
state_dir/sessions/), surviving daemon restarts. - New API endpoints:
GET/PATCH /v1/sessions/{id},POST /v1/sessions/{id}/compact,GET /v1/matrix,GET /v1/config(masked),POST /v1/probe/run+GET /v1/probe/status(benchmarks from the daemon). - Logo added to the repo (light/dark, SVG+PNG) and embedded in README/UI.
- Text-to-speech & speech input (Google Cloud): a speaker icon under every agent response and a microphone on the input field, both appearing only after a successful key test. Language and voice are selectable (voice list live from Google, sample playback). The API key stays server-side (
state_dir/speech.json, 0600) and is never delivered to the browser; a key that fails the test is never even stored. Endpoints:GET/PUT/DELETE /v1/speech/config,GET /v1/speech/voices,POST /v1/speech/tts,POST /v1/speech/stt. - Docker image: multi-stage build (static, Alpine, non-root, healthcheck), web UI as the default command; configuration either purely via env vars (
OLLAMA_URLS,OLLAMA_DEFAULT_MODEL, optionally addr/token/state) or a mounted/data/config.json.
cmd/ollama-agent/main.gowas missing from the repository (an overly broad.gitignorerule was swallowing the directory) — clones and Docker builds failed to compile.- Empty, never-used sessions are no longer persisted.
[0.2.0] — 2026-07-10
Section titled “[0.2.0] — 2026-07-10”- Model probe & capability matrix (
probe): standardized test of all models per endpoint — complexity levels 1–5, needle-in-context ladder up to 256k, tokens/s, response times (cold/warm/8k), stability (technical vs. content errors), and measured GPU/CPU execution (/api/ps). Results persisted instate_dir/model-matrix.json. - Context depth test (
probe deep, RULER principle): measures how well a model actually uses its large context — deterministically generated document, questions of increasing difficulty (retrieval at three depths, multi-hop, aggregation), weighted percentage score.--planfor a dry run with time estimate. - Model exclusion filter (
--exclude, defaultuncensored,heretic) for model discovery. - Web tools (
web_search,web_fetch): internet research and page analysis with a compression layer (Readability extraction, pagination, compact link/result lists) — tailored to small model context sizes. - Model guide (Models: which one for what): guidance on how to use the tests to find the optimal operating models and assign tasks.
- The agent automatically uses the measured effective context sizes (conservative minimum across all endpoints) for history compaction.
Changed
Section titled “Changed”- Timeouts made generously long throughout for slow local models (chat request 900 s, scheduler job 900 s, classification 5 min, probe configurable). The probe couples its HTTP timeout to
--call-timeoutso large contexts aren’t cut off during RAM offload. - The router disables thinking during classification and uses category descriptions for higher accuracy.
- Default API port set to 2330.
probe deepwithoutrunonly displays results (no accidental test run).- Data-driven task assignment in the example/lab config (nemotron for document understanding, qwen3.5:9b for chat, qwen3-coder for code, gemma4:e4b as router).
- The salvage parser now rescues XML-style tool calls (
<function=…>) that coder models emit instead of structuredtool_calls. - Application-level 5xx errors (e.g. model OOM) no longer mark an endpoint as “unhealthy”.
- Endpoint names
nvidia/cpualigned with the real server topology (ports had been mentally swapped).
[0.1.0]
Section titled “[0.1.0]”Initial version: endpoint pool with failover, model router, agent loop with salvage parsing, markdown skills, MCP client, HTTP API with sessions, cron scheduler, history compaction.