feat: add real-time collaborative shopping list at /cospend/list

Real-time shopping list with SSE sync between multiple clients, automatic
item categorization using embedding-based classification + Bring icon
matching, and card-based UI with category grouping.

- SSE broadcast for live sync (add/check/remove items across tabs)
- Hybrid categorizer: direct catalog lookup → category-scoped embedding
  search → per-category default icons, with DB caching
- 388 Bring catalog icons matched via multilingual-e5-base embeddings
- 170+ English→German icon aliases for reliable cross-language matching
- Move cospend dashboard to /cospend/dash, /cospend redirects to list
- Shopping icon on homepage links to /cospend/list
This commit is contained in:
2026-04-07 23:50:50 +02:00
parent 2b85d3f2a1
commit 5e161c4b0c
28 changed files with 2281 additions and 49 deletions
+1
View File
@@ -7,6 +7,7 @@ import { pipeline } from '@huggingface/transformers';
const MODELS = [
'Xenova/all-MiniLM-L6-v2',
'Xenova/multilingual-e5-small',
'Xenova/multilingual-e5-base',
];
for (const name of MODELS) {