feat(search): RC33 — mm-knowhow on-device Embedding-Retrieval + Sync (#258) #497

Merged
admin-mrrm merged 2 commits from feat/258-knowhow-embedding-sync into main 2026-06-30 11:51:07 +02:00
Owner

Closes #258

Summary

  • shared-types: knowhowNoteSchema, upsertKnowhowNoteRequestSchema, knowhowNoteListItemSchema
  • API: /knowhow-notes (GET list + ?since Delta-Sync, GET :id, PUT upsert, DELETE) — Migration 0023 (knowhow_notes-Tabelle mit Composite-PK id+owner_sub)
  • api-client: KnowhowNotesResource + PUT in HttpClient-Method-Union
  • mobile: KnowhowNoteSource (sourceType=knowhow-note, Markdown-Section-Chunking identisch zu NoteDataSource) in DataSourceBundle registriert; listSourceIds und debugIndexAll in search-ports.ts erweitert
  • scripts/sync-knowhow.mjs: zero-dep Node.js-Script — liest Markdown+YAML-Frontmatter aus einem lokalen Notes-Verzeichnis, pushed per PUT an die API, löscht Orphans

Nutzt das bereits deployed multilingual-e5-small ONNX-Modell — kein neuer Download nötig. Privacy: Inferenz lokal, Note-Inhalte nur an eigenes Backend.

Test plan

  • node scripts/sync-knowhow.mjs ~/dev/mm-knowhow-notes https://api.mrrm.de <token> — synced N notes, deleted 0
  • GET /knowhow-notes gibt Liste zurück
  • GET /knowhow-notes/:id gibt Note mit body zurück
  • /search-Screen: DebugIndexBar zeigt knowhow-Quellen nach debugIndexAll
  • Semantische Query auf einen echten Note-Begriff findet relevante Note

🤖 Generated with Claude Code

Closes #258 ## Summary - `shared-types`: `knowhowNoteSchema`, `upsertKnowhowNoteRequestSchema`, `knowhowNoteListItemSchema` - `API`: `/knowhow-notes` (GET list + ?since Delta-Sync, GET :id, PUT upsert, DELETE) — Migration 0023 (`knowhow_notes`-Tabelle mit Composite-PK `id+owner_sub`) - `api-client`: `KnowhowNotesResource` + `PUT` in `HttpClient`-Method-Union - `mobile`: `KnowhowNoteSource` (`sourceType=knowhow-note`, Markdown-Section-Chunking identisch zu `NoteDataSource`) in `DataSourceBundle` registriert; `listSourceIds` und `debugIndexAll` in `search-ports.ts` erweitert - `scripts/sync-knowhow.mjs`: zero-dep Node.js-Script — liest Markdown+YAML-Frontmatter aus einem lokalen Notes-Verzeichnis, pushed per PUT an die API, löscht Orphans Nutzt das bereits deployed `multilingual-e5-small` ONNX-Modell — kein neuer Download nötig. Privacy: Inferenz lokal, Note-Inhalte nur an eigenes Backend. ## Test plan - [ ] `node scripts/sync-knowhow.mjs ~/dev/mm-knowhow-notes https://api.mrrm.de <token>` — synced N notes, deleted 0 - [ ] `GET /knowhow-notes` gibt Liste zurück - [ ] `GET /knowhow-notes/:id` gibt Note mit body zurück - [ ] `/search`-Screen: DebugIndexBar zeigt knowhow-Quellen nach debugIndexAll - [ ] Semantische Query auf einen echten Note-Begriff findet relevante Note 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(search): rc33 — mm-knowhow on-device Embedding-Retrieval + Sync (#258)
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/tag Build is failing
continuous-integration/drone/pr Build is failing
4d50bd541c
Closes #258

- shared-types: knowhowNoteSchema, upsertKnowhowNoteRequestSchema
- API: /knowhow-notes (GET/PUT/DELETE + ?since delta-sync), Migration 0023
- api-client: KnowhowNotesResource + PUT in HttpClient-Method-Union
- mobile: KnowhowNoteSource (sourceType=knowhow-note, Markdown-Chunking)
  in DataSourceBundle + listSourceIds/debugIndexAll in search-ports
- scripts/sync-knowhow.mjs: zero-dep Sync-Script (Frontmatter-Parser,
  upsert + Orphan-Delete)

Nutzt deployed multilingual-e5-small — kein neuer ONNX-Download.
Privacy: Inference lokal, Notes nur ans eigene Backend.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
fix(lint): remove unused ForbiddenException import in knowhow-notes.service
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone/pr Build is passing
8361162dcd
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
admin-mrrm deleted branch feat/258-knowhow-embedding-sync 2026-06-30 11:51:07 +02:00
Sign in to join this conversation.
No reviewers
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!497
No description provided.