Kategorisieren-Button blockt mit "Modell nicht bereit" obwohl NLI bereits lädt #260

Closed
opened 2026-05-14 19:23:36 +02:00 by admin-mrrm · 0 comments
Owner

Symptom

In der Folder-Liste (/mail/[accountId]/folders) wirft der "Kategorisieren"-Button reproduzierbar:

KI-Modell nicht bereit. Bitte zuerst eine Mail im Reader öffnen.

Obwohl der User vorher eine Mail im Reader geöffnet hat und dort AutoSuggest erfolgreich Tags vorgeschlagen hat (NLI hat geliefert, sichtbar in den Logs).

Root cause

apps/mobile/src/hooks/use-categorize-folder.ts:26-32 gated auf isReady aus useMailModel. isReady wird aber nur durch mailModelManager.emit({status:'ready'}) gesetzt, was ausschließlich im Llama-initialize()-Pfad passiert.

Seit #250 (NLI auf RN funktionsfähig) und der Threshold-Senkung auf 0.30 in #251 deckt NLI den überwiegenden Teil der Cases ab → Llama wird nie geladen → Status bleibt 'idle'isReady bleibt false → Categorize ist permanent geblockt.

Inkonsistent zur AutoSuggest-Hook use-auto-suggest-tags.ts:22, wo der Kommentar exakt diesen Punkt schon dokumentiert:

suggest() triggers lazy model download internally — no isReady check needed

Fix

Den !isReady-Gate aus useCategorizeFolder.run() rausnehmen. suggest() initialisiert NLI/Llama selbst lazy. Erste Mail im Folder kann langsam sein wenn nichts geladen ist — gleiche Erwartung wie heute schon bei AutoSuggest, akzeptabel.

Folgenabschätzung

  • Categorize funktioniert jetzt sofort nach einem erfolgreichen Reader-AutoSuggest-Lauf.
  • Cold-Start (App neu, keine Mail geöffnet, direkt Categorize geklickt) startet NLI-Download (~280 MB) bzw. Llama (~2 GB) on demand — entspricht AutoSuggest-Verhalten.
  • Kein Test-Setup für Hooks (kein jsdom/react-testing-library im Mobile-Vitest), Änderung ist 6 Zeilen Removal — manuelles QA via Folder-Kategorisierung.
## Symptom In der Folder-Liste (`/mail/[accountId]/folders`) wirft der "Kategorisieren"-Button reproduzierbar: > KI-Modell nicht bereit. Bitte zuerst eine Mail im Reader öffnen. Obwohl der User vorher eine Mail im Reader geöffnet hat und dort AutoSuggest erfolgreich Tags vorgeschlagen hat (NLI hat geliefert, sichtbar in den Logs). ## Root cause `apps/mobile/src/hooks/use-categorize-folder.ts:26-32` gated auf `isReady` aus `useMailModel`. `isReady` wird aber **nur durch `mailModelManager.emit({status:'ready'})` gesetzt**, was ausschließlich im Llama-`initialize()`-Pfad passiert. Seit #250 (NLI auf RN funktionsfähig) und der Threshold-Senkung auf 0.30 in #251 deckt NLI den überwiegenden Teil der Cases ab → Llama wird nie geladen → Status bleibt `'idle'` → `isReady` bleibt `false` → Categorize ist permanent geblockt. Inkonsistent zur AutoSuggest-Hook `use-auto-suggest-tags.ts:22`, wo der Kommentar exakt diesen Punkt schon dokumentiert: > `suggest() triggers lazy model download internally — no isReady check needed` ## Fix Den `!isReady`-Gate aus `useCategorizeFolder.run()` rausnehmen. `suggest()` initialisiert NLI/Llama selbst lazy. Erste Mail im Folder kann langsam sein wenn nichts geladen ist — gleiche Erwartung wie heute schon bei AutoSuggest, akzeptabel. ## Folgenabschätzung - Categorize funktioniert jetzt sofort nach einem erfolgreichen Reader-AutoSuggest-Lauf. - Cold-Start (App neu, keine Mail geöffnet, direkt Categorize geklickt) startet NLI-Download (~280 MB) bzw. Llama (~2 GB) on demand — entspricht AutoSuggest-Verhalten. - Kein Test-Setup für Hooks (kein jsdom/react-testing-library im Mobile-Vitest), Änderung ist 6 Zeilen Removal — manuelles QA via Folder-Kategorisierung.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
admin-mrrm/mrrmlabapp#260
No description provided.