DGX LLM Chat Gateway

Changelog

Stack-side changes, ADR landings, breaking changes — chronological, most-recent first. For the operator-internal full git-log see the repo. For the live build version, see /api/version.

2026-06-24 — Cut 2.50: STT konvertiertes Audio zurückgeben (convert=1) + large-v3-turbo als Default

POST /v1/audio/transcriptions kann jetzt das normalisierte Audio zusammen mit dem Transkript zurückgeben, und das beste STT-Modell ist server-seitig fixiert.

convert=1 — normalisiertes Audio zum Mitnehmen

Bestes STT-Modell fixiert

Backward-Compat

2026-06-21 — /v1/audio/translations Modell-Aliase gefixt

/v1/audio/translations akzeptiert jetzt dieselben Modell-Aliase wie /v1/audio/transcriptions (auto, large-v3-turbo, large-v3, whisper-1, faster-whisper/large-v3-turbo). Vorher schlugen diese Aliase auf dem Translations-Pfad mit HTTP 503 fehl, weil der Sprachdienst sie nicht als gültige Modell-Kennung erkannte; nur die kanonische native ID lieferte ein Ergebnis.

2026-06-21 — /readyz als Cluster-Verfügbarkeits-Endpunkt

Der öffentliche /readyz liefert jetzt eine high-level Verfügbarkeits-Ampel über die ganze Plattform statt nur einzelner Backend-Flags:

2026-06-21 — Cut 2.46: Chat-Summary locale-aware + Tenant-Modell + Re-Summary (CR-0013)

Erweitert die native Chat-Summary (Cut 2.33 / CR-0002) um drei Sub-Features:

2026-05-16 — Cut 2.35: System-Prompts Self-Service für tenant-clients

2026-05-16 — Cut 2.34: Image-Gen image_url.url zurück zu data-URL (CR-0004) ⚠️ BREAKING

choices[0].message.images[i].image_url.url ist wieder data:<mime>;base64,<b64> (Industrie-Standard 2026, aligned mit OpenAI gpt-image-1, Anthropic Claude, Google Gemini Imagen). Cut 2.24 hatte das auf /v1/images/<uuid>-references umgestellt; per Operator-Entscheidung 2026-05-16 wird das revertiert weil API-Konformität Vorrang vor BLOB-DB-Optimierung hat.

Volle Doku: examples-image-gen.md.

2026-05-16 — Cut 2.33: Chat-Summary + System-Prompt Hybrid-Schema (CR-0002 + CR-0003)

CR-0002 — Native Chat-Summary:

CR-0003 — System-Prompt Hybrid (Assistants-API style):

2026-05-16 — Cut 2.32: Multi-Tool-Loop Synthesis + openrouter Quota-Code (CR-0001 + CR-0005)

CR-0001 — Multi-Tool-Loop-Resilience für Llama-4-Scout-FP8:

CR-0005 — openrouter-Tageslimit als sprechender Error:

Symmetrisch in unary + stream Pfaden (ADR 0015).

2026-05-04 — Cut 2.25c: FTS5-Trigger Robustness Fix

DELETE/UPDATE-Triggers nutzen jetzt direktes DELETE FROM messages_fts WHERE rowid = … statt content-match-'delete'-Command. Self-healing-Migration via PRAGMA user_version=2 rebaut den FTS-Index einmalig beim ersten Boot — beendet eine seltene "database disk image is malformed" (Error 267) Fehlerklasse beim DELETE-Pfad. Live reproduziert + gefixt nach GoCreate-Bug-Report.

2026-05-04 — Cut 2.25 + 2.25b: Auto-Title + Conversation Search

GET /c1/conversations liefert jetzt ein title-Feld pro Eintrag (auto-derived aus erster user-Message, 80 chars max + ). Optional ?q=…&scope=title|fulltext für substring-search.

Cut 2.25b stellt den fulltext-Pfad auf SQLite-FTS5 mit unicode61-Tokenizer + diacritics-fold um (z.B. ?q=Marz findet "März"). Schema-Migration ist transparent + idempotent.

2026-05-04 — Cut 2.24: Image-Store + WebP Thumbnails

Image-Gen-Responses haben jetzt einen Server-URL für die volle Auflösung (/v1/images/{uuid}, TTL-expirierend) plus ein WebP-q80-Thumbnail (256 px, ~10 KB) als data-URL für sofortiges Inline-Display. OpenRouter-Industriestandard. Volle Doku in examples-image-gen.md.

2026-05-04 — Cut 2.23d: T5 max_tokens Cap + Cross-Vendor Fallback + model_quota_exhausted

Drei zusammenhängende Hotfixes nach GoCreate-prod-Befund:

2026-05-04 — Cut 2.23c: User-Identity-Authority Header-Only (ADR 0016) ⚠️ BREAKING

SPASS-User-Id ist jetzt die alleinige Authority für end-user identity über alle 39 user-relevanten Endpoints. Body- und Query-user_id werden mit HTTP 400 invalid_field rejected. Tenant-Flag c1_require_user_id_binding aus Cut 2.19 (ADR 0014) ist obsolet — strict ist immer an, das Flag bleibt im YAML akzeptiert (no-op).

Caller-Migration (alle):

Weitere Strukturen:

Volle ADR: docs/adr/0016-user-identity-authority-header-only.md.

2026-05-04 — Cut 2.23 + 2.23b: dgx-admin CLI + Cockpit-e2e Cross-Cloud

2026-05-04 — Cut 2.22: /v1 ↔ /c1 Functional Symmetry (ADR 0015)

/v1/chat/completions und /c1/chat sind jetzt funktional symmetrisch — identische SPASS-Header-Sets, identische Augment-Pipeline, identische Tool-Loop-Behavior. By-design-Asymmetrien (Persistenz, Body-shape, Bulk-Delete) sind in ADR 0015 abschließend aufgezählt. Parity-regression-Test in cockpit-e2e Step 24.

2026-05-03 — Cut 2.14: Model-Slug-Finalization (ADR 0008 v2)

What landed

Trigger

Godelmann-Gocreate enterprise tenant setup (see docs/godelmann-tenant-spec.md) — needs a models_allowlist with both DSGVO-strict on-prem aliases and vendor-tracked cloud aliases.

2026-05-03 — Cut 2.13: Per-Tenant Configuration Hierarchy (ADR 0013)

What landed

Three-level configuration cascade per tenant:

Settings are classified into three security groups:

New endpoints

New scopes

tenant_config:read, tenant_config:write (write implies read). Bumps the catalog from 17 → 19 scopes. tenant_admin role auto-includes tenant_config:write.

New error codes

tenant_config_key_readonly (400), tenant_config_invalid_value (400).

Integration changes

Doc

New page: Per-tenant config. ADR 0013 in docs/adr/. Multi-Tenant section + scope catalog updated.

2026-05-03 — Cut 2.12 follow-up: auto-compact + memory_describe_scope

2026-05-03 — Cut 2.12: Compaction (Z-chain + C4-hybrid)

2026-05-03 — Cut 2.11: 9 RAG-CRUD stack-tools (B2 confirm + D4 preview)

Hybrid Option A boilerplate (per-tool file + shared rag_helpers.rs). Read-only: rag_index_list, rag_index_describe, rag_doc_list, rag_doc_get. Light-confirm writes: rag_index_create, rag_doc_append, rag_doc_patch (B2 fingerprint-bound 60-s token + shape preview). Heavy-preview destructives: rag_index_delete, rag_doc_delete (B2 + D4 pre-exec-diff with text_excerpt/sample_doc_ids/etc.).

2026-05-03 — Cut 2.10: image_gen + list_models tools + /v1/images CRUD

2026-05-03 — Phase 2 (.5–.9): /a1 agent system, RAG, sessions, cost-aggregation

Cuts landed today

New error codes

agent_not_found (404), agent_tool_not_registered (400), recursion_depth_exceeded (400), index_not_found (404), document_not_found (404), session_not_found (404), session_agent_mismatch (400), embedding_input_too_large (400).

New SPASS-* headers

SPASS-Caller-Depth (recursion-protection), SPASS-Parent-Request-Id (audit-tree correlation), SPASS-Cost-Sub-Calls (aggregator debug).

ADRs

Test inventory after Phase 2

2026-05-02 — Cockpit-Bug-Reports F/R/S + ADRs 0006v2/0007/0008/0009/0010

F-Series (streaming + cost-passthrough)

R-Series (routing transparency)

S-Series (Spark1 tool-template + 502 cascade)

Cost-Pipeline V2 (ADR 0010)

2026-05-02 — UI/CSS audit fixes (Cockpit-followup-7 Phase A)

2026-04-29 — rust-api ausbau, performance-baseline

2026-04-28 — driver-595 + FP4-Modell

See also