feat(ai): P1.5 Semantische Suche UI (Mobile) #443

Closed
opened 2026-06-06 16:28:54 +02:00 by pm-bot · 1 comment
Collaborator

Phase-1-Sub-Issue zu #122 (Decision Record 2026-06-06).

Ziel

Sichtbare User-Wert-Auslieferung von Phase 1: globale semantische Suche über alle indexierten DataSources direkt im App-Drawer.

Scope

  • Neue Route /search (Mobile, expo-router) — Drawer-Eintrag „Suche".
  • Sucheingabe → bei Tippen >300ms-Debounce → embedQuery(input) (P1.1) → vectorStore.search(qEmb, k=20) (P1.2) → Ergebnisliste.
  • Ergebnis-Card pro Treffer: Source-Typ-Badge (Mail/Liste/Notiz), Text-Snippet, Tap navigiert zur Quell-Detail-Route.
  • Filter-Chips: nach Source-Typ („Nur Mails", „Nur Listen", …) — DataSource-Filter weitergegeben an vectorStore.search.
  • Privacy-Audit-Trail-Hint (Folge-Effekt 4 aus #438): kleiner Indikator unten „Suche läuft lokal auf deinem Gerät" — baut Vertrauen.
  • Initial-Indexing-Progress-Bar wenn IndexingService aktiv (von P1.4 als Event-Source).

Akzeptanzkriterien

  • Drawer-Eintrag „Suche" auf Mobile sichtbar.
  • Eingabe „Käse für Pizza" findet relevante Einkaufslisten-Treffer (Test mit echtem Mock-Datenset).
  • Eingabe deutsche Sätze mit ä/ö/ü/ß funktioniert (Embedding-Modell ist multilingual).
  • Filter-Chips reduzieren Ergebnismenge korrekt.
  • Privacy-Audit-Hint sichtbar + textuell stimmig.
  • Initial-Indexing-Progress-Bar erscheint nur während Job läuft.
  • Maestro Smoke-Test in e2e-mobile-Pipeline.

Out-of-Scope

  • Web-Variante (separates Sub-Epic, folgt nach Phase 5).
  • Voll-Text-Suche-Hybrid (BM25+Vec) — Phase 6 oder später, wenn semantisch alleine zu schwach.
Phase-1-Sub-Issue zu #122 (Decision Record 2026-06-06). ## Ziel Sichtbare User-Wert-Auslieferung von Phase 1: globale semantische Suche über alle indexierten DataSources direkt im App-Drawer. ## Scope - Neue Route `/search` (Mobile, expo-router) — Drawer-Eintrag „Suche". - Sucheingabe → bei Tippen >300ms-Debounce → `embedQuery(input)` (P1.1) → `vectorStore.search(qEmb, k=20)` (P1.2) → Ergebnisliste. - Ergebnis-Card pro Treffer: Source-Typ-Badge (Mail/Liste/Notiz), Text-Snippet, Tap navigiert zur Quell-Detail-Route. - Filter-Chips: nach Source-Typ („Nur Mails", „Nur Listen", …) — DataSource-Filter weitergegeben an `vectorStore.search`. - Privacy-Audit-Trail-Hint (Folge-Effekt 4 aus #438): kleiner Indikator unten „Suche läuft lokal auf deinem Gerät" — baut Vertrauen. - Initial-Indexing-Progress-Bar wenn `IndexingService` aktiv (von P1.4 als Event-Source). ## Akzeptanzkriterien - [ ] Drawer-Eintrag „Suche" auf Mobile sichtbar. - [ ] Eingabe „Käse für Pizza" findet relevante Einkaufslisten-Treffer (Test mit echtem Mock-Datenset). - [ ] Eingabe deutsche Sätze mit ä/ö/ü/ß funktioniert (Embedding-Modell ist multilingual). - [ ] Filter-Chips reduzieren Ergebnismenge korrekt. - [ ] Privacy-Audit-Hint sichtbar + textuell stimmig. - [ ] Initial-Indexing-Progress-Bar erscheint nur während Job läuft. - [ ] Maestro Smoke-Test in `e2e-mobile`-Pipeline. ## Out-of-Scope - Web-Variante (separates Sub-Epic, folgt nach Phase 5). - Voll-Text-Suche-Hybrid (BM25+Vec) — Phase 6 oder später, wenn semantisch alleine zu schwach.
Author
Collaborator

Implementation komplett — integriert in PR #444 (wireup/ai-foundation-phase1). Device-Pass läuft am übergeordneten Epic #122. Issue wird geschlossen.

Implementation komplett — integriert in PR #444 (`wireup/ai-foundation-phase1`). Device-Pass läuft am übergeordneten Epic #122. Issue wird geschlossen.
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#443
No description provided.