Files
Lumotia/docs/roadmap/2026-05-10-pkm-phase-tooling-shortlist.md
Jake 2491c7a7dd
Some checks failed
check / cargo check (macos-latest) (push) Has been cancelled
check / cargo check (ubuntu-22.04) (push) Has been cancelled
check / cargo check (windows-latest) (push) Has been cancelled
check / svelte build + lint (push) Has been cancelled
agent: lumotia-rebrand — fix Codex cross-model review blockers
Codex independent review found 11 blockers post-cascade. All addressed.

CRITICAL (data-loss / crash):

10. crates/core/src/paths.rs — migrate_legacy_data_dir_inner used
    fs::rename which fails with EXDEV when source + target are on
    different filesystems (encrypted-home, bind mounts, separate
    $XDG_DATA_HOME partition). Combined with the Phase 5 QC fix that
    made migration errors fatal, this would crash on first launch
    for any user whose data dir spans filesystems. Added
    rename_or_copy_tree() that falls back to copy_dir_recursive +
    remove_dir_all on CrossesDevices / errno 18 (EXDEV). Symlinks
    preserved verbatim. Same fallback applied to magnotia.db ->
    lumotia.db inside the dir.

11. Added 4 unit tests: copy_dir_recursive preserves nested
    structure, rename_or_copy_tree same-filesystem happy path,
    is_cross_device classifies CrossesDevices kind + raw errno 18.

Doc residuals (blockers 1-9):

1. crates/cloud-providers/Cargo.toml — "Wyrdnote pending rebrand"
   description.
2. crates/cloud-providers/src/provider.rs — module docs + test
   fixture Wyrdnote refs.
3. crates/transcription/src/orchestrator.rs — module docs + test
   fixture Wyrdnote refs.
4. docs/roadmap/2026-05-10-pkm-phase-tooling-shortlist.md — phase
   name + outputs/wyrdnote path refs.
5. docs/architecture-map/04-llm-formatting-mcp/llm-tests.md —
   MAGNOTIA_LLM_TEST_MODEL env var.
6. .../cloud-providers-stubs.md — MAGNOTIA_API_KEY_*.
7. docs/architecture-map/03-audio-transcription/tests-and-fixtures.md
   — MAGNOTIA_WHISPER_*.
8. docs/gpu-tuning/plan.md — MAGNOTIA_BENCH_RUN.
9. docs/superpowers/specs/2026-05-09-battery-gpu-aware-thread-tuning-
   design.md + corresponding plan — MAGNOTIA_POWER_STATE_OVERRIDE,
   MAGNOTIA_INFERENCE_THREADS.

cargo test --workspace: 343 pass / 0 fail (up from 339; +4 EXDEV
fallback tests).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 13:39:21 +01:00

5.2 KiB

name, description, type, tags, created, status, author, related
name description type tags created status author related
Lumotia PKM phase — embeddings, reranking, extraction tooling shortlist Bookmarked candidates to evaluate when the Lumotia PKM phase lands. Embedding model server + reranker + entity extractor for semantic search across notes. Not load-bearing for the dictation app; consumed by the PKM workbench layer that scales the product post-public-beta. roadmap
lumotia
pkm
embeddings
reranker
tooling
shortlist
deferred
2026/05/10 deferred Wren on behalf of Jake Sames
outputs/lumotia/2026-05-10-engine-architecture-spec.md (CORBEL-Main)

Lumotia PKM phase: tooling shortlist

The Lumotia engine architecture spec frames the product as a voice-first dictation app today, scaling to a local-first semantic PKM workbench tomorrow. The PKM scaling needs a serving stack for embeddings, reranking, and entity extraction. This note bookmarks the candidates worth evaluating when that phase lands.

Not in scope for the current roadmap (v0.1 dictation completeness, then the engine-architecture phases A through G in outputs/lumotia/2026-05-10-engine-architecture-spec.md). Pull this note off the shelf when PKM work begins.

Why deferred

  • PKM phase sits post-public-beta; pulling tooling decisions forward burns evaluation time on infrastructure that earns its keep months later.
  • The candidates below evolve fast; a 2026/05/10 bake-off would not generalise to a 2026/Q4 decision.
  • Lumotia's local-first stance means the chosen stack must run on a workstation with a single consumer GPU. Cloud-default tools are out, but BYO-cloud (user supplies endpoint) is acceptable as a configurable backend.

Primary candidate (the trigger for this note)

SIE — Superlinked Inference Engine. https://github.com/superlinked/sie. Apache-2.0. Open-source inference server bundling embeddings, reranking, and entity extraction behind three API functions (encode, score, extract). 85+ models hot-swappable, MTEB-verified in CI. OpenAI-compatible /v1/embeddings endpoint. Auto-detects CUDA / Apple Silicon / CPU. Ships a production stack (KEDA autoscaling, Grafana, Terraform for GKE/EKS, Helm chart) but the single-binary path is what matters for Lumotia.

Status as of bookmark: 25 commits, 1.7k stars, COMPATIBILITY.md acknowledging known rough edges. Worth re-checking maturity before selection.

Telemetry on by default; disable with SIE_TELEMETRY_DISABLED=1 or DO_NOT_TRACK=1. Lumotia's stewardship posture means this would be off in any embedded deployment.

Adjacent candidates to evaluate alongside SIE

When the PKM phase begins, run a head-to-head on a Lumotia-shaped corpus (real user note-lengths, mixed dictation + manual edits, British English vocabulary). Candidates worth pitting against SIE:

  • Ollama + a chosen embedding model (e.g. mxbai-embed-large, nomic-embed-text-v2, bge-m3). Already in Jake's wider plan for Smart Connections backend. Same single-binary character; no rerank or extract bundled.
  • text-embeddings-inference (HuggingFace, official). Apache-2.0. Embeddings + rerank only, no extract. Production-mature.
  • Infinity (michaelfeil/infinity). MIT. Embeddings + rerank + classification. Active community, strong perf benchmarks.
  • llama.cpp embeddings mode. The serving model is rougher but the inference engine is what Lumotia already uses for transcript cleanup; consolidating onto one inference runtime has real merit.
  • Voyage AI / Cohere embed + rerank as cloud BYO-API-key fallback for users who do not want to run a local model. Commercial; user-supplied key only.
  • Sentence-transformers as the lowest-rung baseline for the bake-off. Pure Python, well understood, runs anywhere. Sets the floor.

Decision dimensions for the future bake-off

When this note is pulled off the shelf, score each candidate on:

  1. Self-host single-binary footprint. Disk + RAM + VRAM at idle with the chosen embedding model loaded.
  2. Cold-start latency. First-encode-after-launch on the user's hardware. Pairs with the warmup coordinator from Phase D of the engine spec.
  3. Throughput on Lumotia-shape corpus. Tokens / second, batch-size 32, 512-token sequences.
  4. Quality on a Lumotia eval set. Build a small (~200 query) eval set from real notes; measure NDCG@10 and MRR.
  5. Reranker availability. SIE bundles it; Ollama does not. The reranker matters more than the embedding model past a certain corpus size.
  6. Extract / NER capability. Useful for auto-tagging notes, surfacing "people mentioned this week" views.
  7. OEM-licensability. AGPL-3.0 + dual-licence OEM exception (≥£2k/yr) means we cannot wrap a GPL-only inference server. Apache-2.0 and MIT are clean. SIE is Apache-2.0; check the others.
  8. Telemetry posture. Off by default or one-flag-off-able. Stewardship voice rules out anything that phones home with content.

Re-evaluation trigger

When ANY of:

  • Lumotia engine architecture spec Phases A through G are merged AND public beta has shipped.
  • A user-facing PKM feature lands on the roadmap (semantic search, "related notes" pane, auto-tag, knowledge-graph view).
  • The Ollama + Smart Connections route in Jake's wider stack hits a quality ceiling that SIE-class tooling could lift.

Until then: bookmark only.