agent: lumotia-rebrand — docs, scripts, root config, residuals
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

Phase 9 of the rebrand cascade. Sweep covers everything the Phase 8
frontend pass deliberately skipped: docs/, root markdown, scripts,
Cargo.toml descriptions, code comments that survived earlier
word-boundary sed, plus a handful of identifiers caught on the final
verify pass.

transcription-app changes:
- README.md, HANDOVER.md, KNOWN-ISSUES.md, run.sh — magnotia/Magnotia
  -> lumotia/Lumotia.
- docs/ — sweep across all subdirs except docs/handovers/ (preserved
  as immutable audit trail). Includes architecture-map references
  to magnotia_core::*, magnotia_storage::*, etc. now pointing at
  lumotia_*; dev-setup.md tracing output examples (lumotia_startup
  target); brief/ + superpowers/ + issues/ + whisper-ecosystem/ +
  audit/.
- Cargo.toml descriptions on 9 crates (core, audio, cloud-providers,
  hotkey, llm, mcp, plus referenced others).
- crates/core/src/{error,hardware,recommendation,paths}.rs +
  crates/audio/src/wav.rs + crates/llm/src/model_manager.rs +
  crates/cloud-providers/src/keystore.rs + crates/mcp/src/lib.rs —
  doc comments and a model-manager user-agent string.
- Caught on final pass: BroadcastChannel("magnotia_task_sync") -> ...
  ("lumotia_task_sync"); magnotia_locale i18n localStorage key
  renamed + migration shim added; CSS keyframe names
  magnotiaPulse / magnotiaBar / magnotiaFade renamed in the design-
  system kit; magnotia_viewer_item / magnotia_viewer_mode handoff
  keys renamed in HistoryPage + viewer/+page.svelte; src/assets/
  wordmark.svg text.
- src-tauri/src/lib.rs comment cleanup ("magnotia era" was sed'd
  to "lumotia era" earlier — restored).

Preserved (intentional):
- crates/core/src/paths.rs — keeps "magnotia" / "Magnotia" / ".magnotia"
  legacy detection strings in legacy_and_target_paths() so the
  migration shim can still find user data from the magnotia era.
- src/lib/stores/{page,focusTimer}.svelte.ts + src/lib/i18n/index.ts
  — migration call sites reference the legacy magnotia keys
  deliberately.
- docs/handovers/ — historical audit trail.

cargo build --workspace passes. npm run check: 0 errors / 0 warnings
(3958 files). cargo test --workspace: 339 pass / 0 fail.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-13 12:38:03 +01:00
parent 681a9b26dc
commit 26c7307607
213 changed files with 1175 additions and 1170 deletions

View File

@@ -9,11 +9,11 @@ last_verified: 2026/05/09
> **Where you are:** Architecture map → LLM, Formatting, MCP
**Plain English summary.** This slice covers how Magnotia turns raw audio output into clean prose, surfaces the local LLM that powers cleanup and task extraction, exposes the user's transcripts to external agents over MCP, and reserves a stub crate for future bring-your-own-key cloud providers. Four crates, all on the inference / post-processing edge of the app.
**Plain English summary.** This slice covers how Lumotia turns raw audio output into clean prose, surfaces the local LLM that powers cleanup and task extraction, exposes the user's transcripts to external agents over MCP, and reserves a stub crate for future bring-your-own-key cloud providers. Four crates, all on the inference / post-processing edge of the app.
## At a glance
- **Crates:** four. `magnotia-llm`, `magnotia-ai-formatting`, `magnotia-mcp` (binary + lib), `magnotia-cloud-providers`.
- **Crates:** four. `lumotia-llm`, `lumotia-ai-formatting`, `lumotia-mcp` (binary + lib), `lumotia-cloud-providers`.
- **Total LOC:** ~3,520 (LLM 1,250, formatting 1,290, MCP 580, cloud-providers 80).
- **llama-cpp-2 version:** `0.1.144` (default features off, then `vulkan` and `openmp` re-enabled by Cargo features).
- **MCP protocol version:** `2024-11-05`, JSON-RPC 2.0 over stdio.
@@ -57,9 +57,9 @@ Cloud providers crate:
## How this slice connects to others
- **From slice 3 (audio + transcription):** transcription emits `Vec<Segment>` (a `magnotia-core::types::Segment`). `magnotia-ai-formatting::pipeline::post_process_segments` is the immediate consumer. Slice 4 has no compile-time dependency on the transcription crates; the contract is the `Segment` type alone.
- **To slice 4 internally:** `magnotia-ai-formatting` depends on `magnotia-llm`, never the other way. The LLM cleanup bridge (`llm_client`) lives in the formatting crate so the LLM crate stays free of post-processing concerns.
- **From slice 5 (core, storage, hotkey, build):** `magnotia-llm` consumes `magnotia_core::tuning::{inference_thread_count, Workload}` for thread sizing and `magnotia_core::paths::app_paths().llm_models_dir()` for the on-disk model store. `magnotia-ai-formatting` consumes `magnotia_core::types::Segment` and `magnotia_core::constants::SMART_PARAGRAPH_GAP_SECS`. `magnotia-mcp` opens `magnotia_storage::database_path()` via `magnotia_storage::init_readonly()` and calls `list_transcripts`, `get_transcript`, `search_transcripts`, `list_tasks` from `magnotia_storage`.
- **From slice 3 (audio + transcription):** transcription emits `Vec<Segment>` (a `lumotia-core::types::Segment`). `lumotia-ai-formatting::pipeline::post_process_segments` is the immediate consumer. Slice 4 has no compile-time dependency on the transcription crates; the contract is the `Segment` type alone.
- **To slice 4 internally:** `lumotia-ai-formatting` depends on `lumotia-llm`, never the other way. The LLM cleanup bridge (`llm_client`) lives in the formatting crate so the LLM crate stays free of post-processing concerns.
- **From slice 5 (core, storage, hotkey, build):** `lumotia-llm` consumes `lumotia_core::tuning::{inference_thread_count, Workload}` for thread sizing and `lumotia_core::paths::app_paths().llm_models_dir()` for the on-disk model store. `lumotia-ai-formatting` consumes `lumotia_core::types::Segment` and `lumotia_core::constants::SMART_PARAGRAPH_GAP_SECS`. `lumotia-mcp` opens `lumotia_storage::database_path()` via `lumotia_storage::init_readonly()` and calls `list_transcripts`, `get_transcript`, `search_transcripts`, `list_tasks` from `lumotia_storage`.
- **To slice 2 (Tauri runtime):** the Tauri commands at `src-tauri/src/commands/llm.rs`, `src-tauri/src/commands/tasks.rs`, `src-tauri/src/commands/transcription.rs`, `src-tauri/src/commands/live.rs`, `src-tauri/src/commands/profiles.rs`, and `src-tauri/src/commands/models.rs` are the only callers of this slice's public surfaces from inside the Tauri process. Each per-surface page lists its best-guess Tauri command for slice 2 reconciliation.
## Existing in-repo docs