fix(173): Model-Output-Parsing + Fehlerlogging + Vitest-Setup #184

Merged
admin-mrrm merged 2 commits from fix-173-auto-suggest-trigger into main 2026-05-03 11:53:05 +02:00
Owner

Problem

Nach #182 (#183): Spinner erscheint und zeigt 100%, aber keine Tags werden angezeigt. Beim Reload wieder Spinner bei 100%.

Ursachen (systematisch durch Tests identifiziert)

  • generated_text aus @xenova/transformers v2 kann entweder ein Chat-Array [{role,content}] oder ein plain String sein — Code behandelte nur Array-Format
  • do_sample: true fehlte, damit temperature überhaupt wirkt
  • Fehler in suggest(), initialize() und assignTag() wurden komplett verschluckt — keine Sichtbarkeit
  • mutate (fire-and-forget) statt mutateAsyncassignTag-API-Fehler unsichtbar

Fixes

  • extractGeneratedText(raw): neues pure function — Array- und String-Format
  • do_sample: true hinzugefügt
  • console.debug/error an allen Schritten: Modell-Init, suggest(), assignTag
  • UI zeigt Fehlermeldung bei status === error
  • mutate → mutateAsync in useAutoSuggestTags

Tests

Vitest-Setup für web app + 17 Unit-Tests:

  • parseTags: 8 Tests (Trennzeichen, Quotes, Länge, Leerstring)
  • extractGeneratedText: 6 Tests (Chat-Array, String, undefined, null, leer)
  • End-to-End Output-Parsing: 3 Tests

Alle Tests grün.

🤖 Generated with Claude Code

## Problem Nach #182 (#183): Spinner erscheint und zeigt 100%, aber keine Tags werden angezeigt. Beim Reload wieder Spinner bei 100%. ## Ursachen (systematisch durch Tests identifiziert) - `generated_text` aus `@xenova/transformers` v2 kann entweder ein Chat-Array `[{role,content}]` oder ein plain String sein — Code behandelte nur Array-Format - `do_sample: true` fehlte, damit `temperature` überhaupt wirkt - Fehler in `suggest()`, `initialize()` und `assignTag()` wurden komplett verschluckt — keine Sichtbarkeit - `mutate` (fire-and-forget) statt `mutateAsync` → `assignTag`-API-Fehler unsichtbar ## Fixes - `extractGeneratedText(raw)`: neues pure function — Array- und String-Format - `do_sample: true` hinzugefügt - `console.debug/error` an allen Schritten: Modell-Init, suggest(), assignTag - UI zeigt Fehlermeldung bei `status === error` - `mutate → mutateAsync` in useAutoSuggestTags ## Tests Vitest-Setup für web app + 17 Unit-Tests: - `parseTags`: 8 Tests (Trennzeichen, Quotes, Länge, Leerstring) - `extractGeneratedText`: 6 Tests (Chat-Array, String, undefined, null, leer) - End-to-End Output-Parsing: 3 Tests Alle Tests grün. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix(173): Model-Output-Parsing + Fehlerlogging + Vitest-Setup
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
6fdfd04d32
- extractGeneratedText: unterstützt sowohl Array-Format (v2 Chat)
  als auch String-Fallback für generated_text
- do_sample: true hinzugefügt (nötig für temperature != 1.0)
- console.debug/error an jedem Schritt: Modell-Init, suggest(),
  assignTag — macht stille Fehler sichtbar
- UI zeigt "KI-Modell konnte nicht geladen werden" bei Error-Status
- mutate → mutateAsync in useAutoSuggestTags: assignTag-Fehler
  werden jetzt im Catch der Promise-Kette sichtbar
- Vitest-Setup für web app + 17 Unit-Tests für parseTags,
  extractGeneratedText und End-to-End-Output-Parsing

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Merge branch 'main' into fix-173-auto-suggest-trigger
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone/pr Build is passing
c556be73e7
admin-mrrm deleted branch fix-173-auto-suggest-trigger 2026-05-03 11:53:05 +02:00
Sign in to join this conversation.
No reviewers
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!184
No description provided.