Skip to content

v1.11.82 — KI-Indexierung: OOM-Crash-Schutz + Modell-Mismatch sichtbar - #3

Merged
mnimtz merged 1 commit into
mainfrom
fix/ki-reindex-crash
Aug 5, 2026
Merged

v1.11.82 — KI-Indexierung: OOM-Crash-Schutz + Modell-Mismatch sichtbar#3
mnimtz merged 1 commit into
mainfrom
fix/ki-reindex-crash

Conversation

@mnimtz

@mnimtz mnimtz commented Aug 5, 2026

Copy link
Copy Markdown
Owner

Vorfall (2026-08-05)

Reindex ließ den Produktions-Server abrauchen (OOM → „lädt endlos"), und der KI-Chat gab 0 Treffer trotz vorhandener Embeddings. Root-Cause diese Session gefunden.

Änderungen

  1. OOM-Schutz — AiProvider.ExtractTextAsync: 15-MB-Größen-Cap via ProbeAsync vor dem Download. Vorher wurde jede Datei komplett in RAM geladen (MemoryStream + ToArray + Base64-OCR = bis 3 Kopien) → OOM bei parallelen (Re-)Index-Runs.
  2. AiPostProcessor: Parallelität 2 → 1 (Speicher-Peak + SQLite-Writer-Contention runter).
  3. AiController.RetrieveHitsAsync: 0-Treffer-trotz-Embeddings loggt jetzt query- vs. gespeichertes Modell-Label — statt stiller Leere.

Noch NICHT hier (Folge-Schritt)

Das eigentliche 0-Treffer-Problem ist damit sichtbar, aber nicht behoben. Nächster Schritt nach Deploy + Log-Blick: sicherer DB-Relabel oder gezieltes Re-Embed. Reindex bis dahin tabu.

Verifikation

Lokal mit .NET 8 gebaut (Release): 0 Fehler, 8 vorbestehende Warnungen. VERSION 1.11.81 → 1.11.82.

🤖 Generated with Claude Code

Vorfall 2026-08-05: Reindex ließ den Server abrauchen (OOM) und der Chat gab
0 Treffer trotz vorhandener Embeddings.

- ExtractTextAsync: 15-MB-Größen-Cap (ProbeAsync) — große Dateien werden nie
  komplett in den RAM geladen (MemoryStream + ToArray + Base64-OCR = bis 3
  Kopien). Verhindert den OOM beim (Re-)Indexieren.
- AiPostProcessor: Parallelität 2 → 1 — halbiert Speicher-Peak und
  SQLite-Writer-Contention (busy_timeout blockiert sonst Threads → Hänger).
- RetrieveHitsAsync: 0-Treffer-trotz-Embeddings loggt jetzt query- vs.
  gespeichertes Modell-Label sichtbar, statt stiller Leere — Grundlage für
  gezieltes Relabel/Re-Embed statt riskantem Blind-Reindex.

Lokal mit .NET 8 gebaut: 0 Fehler. VERSION 1.11.81 → 1.11.82.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@mnimtz
mnimtz merged commit bfbf7e7 into main Aug 5, 2026
2 of 3 checks passed
mnimtz added a commit that referenced this pull request Aug 7, 2026
Marcus's Test (basf.de): Willkommenstext ok, aber kein Logo + eigenes Logo weg
+ "Bereitgestellt mit NimShare" links statt mittig.

- Logo (#2): basf.de leitet auf www.basf.com um; relative Logo-URLs wurden gegen
  die URSPRUNGS-Domain aufgelöst → falscher Host → kein Logo. Jetzt gegen die
  FINALE URL nach Redirects (resp.RequestMessage.RequestUri) aufgelöst.
- Eigenes Logo (#4): ResolveThemeAsync mergt jetzt — Link-Vorlage überlagert nur
  gesetzte Felder, leere (z.B. kein Kundenlogo) fallen aufs Instanz/Personal-
  Branding zurück. Ohne Link-Vorlage byte-genau wie bisher.
- Footer (#3): "Bereitgestellt mit NimShare" auf der Folder-Landing zentriert.

Lokal mit .NET 8 gebaut: 0 Fehler. VERSION 1.12.1 → 1.12.2.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant