Zum Inhalt springen

Changelog

Format nach Keep a Changelog, Versionierung nach SemVer. Maßgeblich ist die CHANGELOG.md im Repository — diese Seite spiegelt denselben Inhalt in die Doku.

  • Interaktive API-Referenz (docs/openapi.yaml, OpenAPI 3.1): alle 24 HTTP-Routen mit Schemas, Fehlercodes und einem fertigen cURL-Beispiel pro Endpunkt, automatisch generiert unter /api/ in der Doku-Website. Die HTTP-API-Referenz ist entsprechend geschrumpft — nur noch Auth, SSE-Streaming und ein durchgehendes Beispiel, keine manuell gepflegte Endpunkt-Liste mehr.
  • Echte Screenshots der Weboberfläche (Chat, Jobs, Modelle, Einstellungen) in der Weboberfläche-Doku.
  • Projektlogo als Kopfzeilen-Bildmarke und Browser-Favicon der Doku-Website.
  • Praxisbeispiele (MCP-Server, Scheduler-Job) in der Konfiguration.
  • entwicklung/weiterentwicklung/ umbenannt: die Seitenleiste sortiert Ordner alphabetisch, sobald eine OpenAPI-Spezifikation vorhanden ist — die Umbenennung bringt die Reihenfolge auf Installation → Konfiguration → Bedienung → Modelle → Weiterentwicklung → API-Referenz.
  • TestChatSessionContinuity flackerte unter CI-Last (~9 von 240 Läufen): die automatische Session-Titel-Vergabe läuft in einer Hintergrund-Goroutine und konnte den letzten aufgezeichneten Testrequest überschreiben. Der Test greift jetzt gezielt den Request, der die erwartete Nachricht trägt.
  • Web-UI (im Daemon eingebettet, ollama-agent ui öffnet sie im Browser; als PWA installierbar): Chat mit mehreren Sitzungen, automatischer Benennung (LLM-Titel), Umbenennen, Volltext-Suche, Token-Anzeige pro Antwort, Kontext-Meter mit Komprimieren-Funktion; Jobs-Übersicht mit Sofort-Ausführung und Verlauf; Modell-Seite mit Fähigkeits-Matrix, Benchmark-Start aus der UI (live-Fortschritt) und Ollama-Tuning-Ratgeber; Einstellungs-Seite (maskierte Config, Task-Zuordnung, API-Token).
  • Persistente Chat-Sessions (state_dir/sessions/), überleben Daemon-Neustarts.
  • Neue API-Endpunkte: GET/PATCH /v1/sessions/{id}, POST /v1/sessions/{id}/compact, GET /v1/matrix, GET /v1/config (maskiert), POST /v1/probe/run + GET /v1/probe/status (Benchmarks aus dem Daemon).
  • Logo im Repo (hell/dunkel, SVG+PNG) und in README/UI eingebunden.
  • Vorlesen & Spracheingabe (Google Cloud): Lautsprecher unter jeder Agent-Antwort und Mikrofon am Eingabefeld, beide erscheinen erst nach erfolgreichem Key-Test. Sprache und Stimme wählbar (Stimmenliste live von Google, Probe-Wiedergabe). Der API-Key bleibt serverseitig (state_dir/speech.json, 0600) und wird nie an den Browser ausgeliefert; ein Key, der den Test nicht besteht, wird gar nicht erst gespeichert. Endpoints: GET/PUT/DELETE /v1/speech/config, GET /v1/speech/voices, POST /v1/speech/tts, POST /v1/speech/stt.
  • Docker-Image: Multi-Stage-Build (statisch, Alpine, non-root, Healthcheck), Web-UI als Standard-Kommando; Konfiguration wahlweise rein über Env (OLLAMA_URLS, OLLAMA_DEFAULT_MODEL, optional Addr/Token/State) oder gemountete /data/config.json.
  • cmd/ollama-agent/main.go fehlte im Repository (eine zu weit gefasste .gitignore-Regel verschluckte das Verzeichnis) — Clones und Docker-Builds waren nicht kompilierbar.
  • Leere, nie benutzte Sessions werden nicht mehr persistiert.
  • Modell-Probe & Fähigkeits-Matrix (probe): standardisierter Test aller Modelle pro Endpoint — Komplexitätsstufen 1–5, Needle-Kontext-Leiter bis 256k, Tok/s, Antwortzeiten (kalt/warm/8k), Stabilität (technische vs. inhaltliche Fehler) und gemessene GPU/CPU-Ausführung (/api/ps). Ergebnis persistent in state_dir/model-matrix.json.
  • Kontext-Tiefentest (probe deep, RULER-Prinzip): misst, wie gut ein Modell seinen großen Kontext wirklich nutzt — deterministisch generiertes Dokument, Fragen steigender Schwierigkeit (Retrieval an drei Tiefen, Multi-Hop, Aggregation), gewichteter Prozent-Score. --plan für Trockenlauf mit Zeitschätzung.
  • Modell-Ausschlussfilter (--exclude, Default uncensored,heretic) für die Modell-Discovery.
  • Web-Tools (web_search, web_fetch): Internet-Recherche und Seitenanalyse mit Kompressionsschicht (Readability-Extraktion, Paginierung, kompakte Link-/Trefferlisten) — auf kleine Modell-Kontexte zugeschnitten.
  • Modell-Guide (Modelle: welches wofür): Anleitung, wie man mit den Tests die optimalen Betriebsmodelle findet und Aufgaben zuordnet.
  • Agent nutzt die gemessenen effektiven Kontextgrößen (konservatives Minimum über alle Endpoints) automatisch für die History-Kompaktierung.
  • Timeouts durchgängig großzügig für langsame lokale Modelle (Chat-Anfrage 900 s, Scheduler-Job 900 s, Klassifikation 5 min, Probe konfigurierbar). Der Probe koppelt seinen HTTP-Timeout an --call-timeout, damit große Kontexte per RAM-Offload nicht abgeschnitten werden.
  • Router deaktiviert Thinking bei der Klassifikation und nutzt Kategorie-Beschreibungen für höhere Treffsicherheit.
  • Standard-API-Port auf 2330.
  • probe deep ohne run zeigt nur Ergebnisse an (kein versehentlicher Testlauf).
  • Datengetriebene Task-Zuordnung in der Beispiel-/Lab-Config (nemotron für Dokument-Verständnis, qwen3.5:9b für Chat, qwen3-coder für Code, gemma4:e4b als Router).
  • Salvage-Parser rettet XML-artige Tool-Calls (<function=…>), die Coder-Modelle statt strukturierter tool_calls ausgeben.
  • Anwendungsbezogene 5xx (z. B. Modell-OOM) setzen einen Endpoint nicht mehr auf „ungesund”.
  • Endpoint-Namen nvidia/cpu an die reale Server-Topologie angeglichen (Ports waren gedanklich vertauscht).

Erste Version: Endpoint-Pool mit Failover, Modell-Router, Agent-Loop mit Salvage-Parsing, Markdown-Skills, MCP-Client, HTTP-API mit Sessions, Cron-Scheduler, History-Kompaktierung.