feat(ai): P1.2 sqlite-vec via EAS Build + DB-Schema für Vector-Store #440
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#440
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Phase-1-Sub-Issue zu #122 (Decision Record 2026-06-06).
Ziel
sqlite-vec als native SQLite-Extension im Expo managed Workflow nutzbar machen + DB-Schema für persönlichen Vector-Store anlegen.
Scope
expo-sqliteum die sqlite-vec-Extension erweitert (Android + iOS).vec0-Funktionalität (vec_distance_cosine,vec_quantize_int8).vector_index(id,source_type,source_id,text_chunk,embedding BLOB,updated_at)vector_index_vecals sqlite-vec virtuelles Table verlinkt aufvector_index.embedding.upsert(sourceType, sourceId, chunk, embedding),search(queryEmbedding, k, filter?).Akzeptanzkriterien
SELECT vec_version()).vector_index+ Vec-Table.VectorStore-Service mitupsert/search-API, Vitest-Test über In-Memory-SQLite.Out-of-Scope
Scope-Korrektur 2026-06-06 — Build-Pipeline-Realität
Ursprünglicher Issue-Text nennt „EAS Build / Custom Dev Client / EAS-Build-Pipeline dokumentiert". Repo-Realität ist anders:
Tatsächliche Build-Pipeline (siehe
.drone.yml)apps/mobile/eas.jsonexistiert als Konfig-Stub (development/preview/productionProfile), wird aber lokal/CI nicht ausgeführt.publish-apk-Step in Drone machtnpx expo prebuild --clean --platform android+./gradlew assembleRelease, Gradle-Cache, NDK 25, JDK 17.e2e-mobile-Step nutzt die gleiche Pipeline mitassembleDebugfür Maestro-Smoke-Tests.apps/mobile/ios/-Verzeichnis vorhanden, keine iOS-Build-Konfig in Drone.Korrigiertes Vorgehen
expo-sqliteals Dependency hinzufügen (mobile peer der vec-Extension).with-sqlite-vec.jsschreiben (analog zu vorhandenemwith-onnxruntime-package.js):vec0.so(jniLibs/arm64-v8a etc.) in den Android-Build viawithDangerousModMainApplication.kt(Extension-Auto-Load beim DB-Open) ODER setzt entsprechenden Gradle-Build-Schalter, je nach was expo-sqlite ab v15+ bereitstellt.e2e-mobile-Drone-Step (assembleDebug+ Maestro) verifiziertSELECT vec_version()beim App-Start. Kein neuer Pipeline-Schritt nötig.expo-sqliteMigration-Hooks.upsert/search-API + Vitest-Test über In-Memory-SQLite (better-sqlite3Node-Side mitsqlite-vec-Bundle für die Unit-Tests).Akzeptanzkriterien (korrigiert)
SELECT vec_version()loggt eine Version-Zahl)EAS-Build-Pipeline dokumentiert→ entfällt — keine EAS-Build-Pipeline im Projekt,prebuild + gradlew assembleReleaseist bestehendvector_index+ Vec-TableVectorStore-Service mitupsert/search-API, Vitest-Test über In-Memory-SQLiteiOS-Build-Workaround dokumentiert→ entfällt — kein iOS-Target im ProjektEffort-Schätzung neu
Unverändert mittel — ~2-3 Tage. Native-Lib-Integration via Config-Plugin ist nicht trivial (.so-Auswahl pro ABI, Loader-Hook, Android-NDK-Kompatibilität) und das DB-Schema + VectorStore-Service ist greenfield.
Implementation komplett — integriert in PR #444 (
wireup/ai-foundation-phase1). Device-Pass läuft am übergeordneten Epic #122. Issue wird geschlossen.