feat(ocr): Fuzzy-Match aus Shopping-History — Hauptpfad #415 #418
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
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
admin-mrrm/mrrmlabapp!418
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/415-fuzzy-match-parseitems"
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
OcrService.parseItems(text, history?)liefert optionalsuggestions[]pro ItemListsService.getShoppingHistoryTitles(ownerSub)als Dictionary-Source (distinct titles aus eigenen Shopping-Lists)suggestions[]erweitertErsatzfeature für die nach #82-Pivot verworfene on-device-OCR-Strategie — Vorschläge kommen jetzt server-seitig aus dem eigenen Kauf-Verlauf statt aus einer auf-Gerät-DB.
Fixes #415
Test plan
pnpm --filter @mrrmlab/api test(440 grün, +13 neue)pnpm typecheckfür api, api-client, feature-shopping-list, mobile, webServer-seitiger Fuzzy-Match auf OCR-Output gegen die historischen Shopping-List-Items des Nutzers. Garbage-OCR ('Milh') liefert jetzt Vorschläge ('Milch') statt Müll-Items. - fuzzy-match.ts: pure Levenshtein-Funktion + DE-Normalisierung (ä/ö/ü/ß → ae/oe/ue/ss, case-fold), default threshold 0.7 - OcrService.parseItems(text, history?) gibt optional suggestions - ListsService.getShoppingHistoryTitles(ownerSub) zieht distinct titles aus list_items joined mit lists.type='shopping' - Controller lädt History pro parse-image-Request, übergibt an OCR - api-client Response-Schema um optionales suggestions[] erweitert (backward-compatible — alte Clients ignorieren das Feld)