feat(251): NLI-Debug-Log-Endpoint für Kalibrierungs-Session #252
No reviewers
Labels
No labels
app/archiv
app/einkaufslisten
app/imap-client
app/wissensbasis
arch-answered
arch-question
area/api
area/auth
area/infra
area/mobile
area/shared
area/ui
area/web
portfolio-status
prio/high
prio/low
prio/medium
roadmap/public
size/l
size/m
size/s
size/xl
size/xs
status/blocked
status/needs-info
type/bug
type/chore
type/docs
type/feature
type/idea
type/refactor
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
admin-mrrm/mrrmlabapp!252
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/251-nli-debug-logging"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
POST /api/mail/_debug/nli-log(gated viaNLI_DEBUG_LOG=true, sonst 404). Schreibt JSONL nachNLI_DEBUG_LOG_FILEmit Mail-Meta + allen NLI-Kandidaten-Scores + verwendetem Hypothese-Template.model-manager.ts) sendet fire-and-forget, wennEXPO_PUBLIC_NLI_DEBUG_LOG=1gesetzt ist — Errors werden geschluckt, blockieren die Klassifikation nicht.mail-batch-categorizerreicht jetzt Mail-Meta (subject/from/date/uid/accountId/folder/messageId) ansuggestdurch, damit das automatische Tagging die Debug-Daten liefert.Adressiert Issue #251 (Schritt 1: 'Logging erweitern' als eigener Mini-PR). Threshold-Senkung, Template-A/B und Snippet-Cleanup folgen in eigenen PRs, sobald wir gemeinsam ~50 Mails mit dem Log ausgewertet haben.
Test plan
pnpm -F @mrrmlab/api test— 200/200 grün (7 neu)pnpm -F @mrrmlab/mobile test— 18/18 grün (4 neu)POST /mail/_debug/nli-logmit gültigem Body → 404 ohne Flag, geplante 204 mit Flagapps/api/.tmp/nli-debug.jsonlprüfen — passiert in der anschließenden Kalibrierungs-SessionDatenschutz
Der Endpoint schreibt Mail-Snippets im Klartext. Nach Abschluss der Kalibrierung wird er per Folge-PR wieder entfernt (oder dauerhaft auf
falsebelassen).Closes #nothing — gehört zu #251.