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

@@ -1,12 +1,12 @@
# Magnotia Session Handover — 2026/04/17
# Lumotia Session Handover — 2026/04/17
*Originally written when the product was named Kon (and briefly Corbie); references rewritten in the 2026-04-30 rebrand sweep.*
## Session Summary
Six-commit sprint executing the upgrade plan from
`/home/jake/Documents/CORBEL-Furnished-House/output/reports/magnotia-upgrade-plan-2026-04-17.md`.
Goal: get Magnotia from "core feature broken" to "ready to dogfood with friends."
`/home/jake/Documents/CORBEL-Furnished-House/output/reports/lumotia-upgrade-plan-2026-04-17.md`.
Goal: get Lumotia from "core feature broken" to "ready to dogfood with friends."
## Commits
@@ -95,7 +95,7 @@ index in sync. Dictionary table also added in v2.
New collapsible section. Add custom terms (medication names, jargon,
people's names) that the LLM cleanup prompt should preserve. Backed by
the `dictionary` SQLite table. The LLM client itself is currently a
stub; when wired, it imports `list_dictionary` from magnotia_storage and
stub; when wired, it imports `list_dictionary` from lumotia_storage and
injects terms into the prompt suffix.
### Wayland self-relaunch
@@ -111,14 +111,14 @@ HANDOVER env-var prefix is no longer needed.
```bash
sudo dnf install cmake clang-devel
cd /home/jake/Documents/CORBEL-Projects/magnotia
cd /home/jake/Documents/CORBEL-Projects/lumotia
npm install # if you have not already
```
### Launch (no env-var prefix needed any more)
```bash
cd /home/jake/Documents/CORBEL-Projects/magnotia
cd /home/jake/Documents/CORBEL-Projects/lumotia
npm run tauri dev
```
@@ -142,10 +142,10 @@ env GDK_BACKEND=x11 WINIT_UNIX_BACKEND=x11 \
3. **Auto mode.** Clear the picker (set to "Auto"). Hit dictation. The
logs (terminal where you ran `npm run tauri dev`) should show:
- `[magnotia-audio] start: enumerated N input device(s)`
- `[magnotia-audio] trying '...'` for each candidate
- `[magnotia-audio] '...' validation: M samples, rms=...`
- `[magnotia-audio] selected microphone: '...'`
- `[lumotia-audio] start: enumerated N input device(s)`
- `[lumotia-audio] trying '...'` for each candidate
- `[lumotia-audio] '...' validation: M samples, rms=...`
- `[lumotia-audio] selected microphone: '...'`
The selected mic should NOT be a `.monitor` source.
4. **History rename.** Make a recording. In History, rename it to
@@ -196,7 +196,7 @@ env GDK_BACKEND=x11 WINIT_UNIX_BACKEND=x11 \
| **Linux x86_64 (Fedora 43, KDE Wayland)** | ✓ | ✓ | The everyday dev target | **HIGH** — this is what the sprint was developed against |
| **Linux x86_64 (other distros, X11)** | Should work | Should work | Wayland self-relaunch is no-op on X11 sessions, evdev hotkeys may need user added to `input` group | **MEDIUM** — tested patterns, untested distros |
| **Windows 10/11 x86_64** | Untested but should compile (CPAL + Tauri + whisper.cpp all support it) | Untested | Custom evdev hotkeys are no-op; falls back to Tauri's global-shortcut plugin which works on Windows | **LOW** — theoretically supported, has had zero hands-on testing |
| **macOS aarch64 (Apple Silicon)** | Untested | Untested | Path bug fixed this commit (now uses `~/Library/Application Support/Magnotia/`); Info.plist needs `NSMicrophoneUsageDescription` for the app bundle | **LOW** — theoretically supported, has had zero hands-on testing |
| **macOS aarch64 (Apple Silicon)** | Untested | Untested | Path bug fixed this commit (now uses `~/Library/Application Support/Lumotia/`); Info.plist needs `NSMicrophoneUsageDescription` for the app bundle | **LOW** — theoretically supported, has had zero hands-on testing |
| **macOS x86_64 (Intel)** | Same as Apple Silicon | Same | Same | **LOW** |
**For the friends beta on Linux only**, this matters not at all. For a future Windows or macOS build, expect to spend a focused day or two debugging:
@@ -209,7 +209,7 @@ env GDK_BACKEND=x11 WINIT_UNIX_BACKEND=x11 \
### What this sprint added on the cross-platform front
- `crates/storage/src/file_storage.rs::app_data_dir()` now correctly handles macOS (`~/Library/Application Support/Magnotia/`) and Linux (XDG-aware, `~/.local/share/magnotia`, with legacy `~/.magnotia` fallback for existing installs). Windows path unchanged.
- `crates/storage/src/file_storage.rs::app_data_dir()` now correctly handles macOS (`~/Library/Application Support/Lumotia/`) and Linux (XDG-aware, `~/.local/share/lumotia`, with legacy `~/.lumotia` fallback for existing installs). Windows path unchanged.
- New Tauri command `get_os_info` returns `{os, arch, family, usesCmd, isWayland, customHotkeyBackend, primaryModifierLabel}` so the frontend can adapt UI strings (Cmd vs Ctrl labels, "Open Finder" vs "Open Explorer", etc).
- New `src/lib/utils/osInfo.js` helper: async `loadOsInfo()` warms a cache, then `isMac() / isWindows() / isLinux() / modKeyLabel() / isWayland()` are synchronous. Eagerly loaded at app startup in the root layout.
- Falls back gracefully in browser-preview mode by reading `navigator.platform`.
@@ -242,7 +242,7 @@ src/routes/+layout.svelte (+ ToastViewport mount)
1. Real-user feedback from one to three friends. What confuses them?
What feels slow? What did they expect that did not happen?
2. Address the deferred items in priority of feedback signal.
3. Consider opening up the `magnotia-public-beta` channel — a single
3. Consider opening up the `lumotia-public-beta` channel — a single
GitHub release with the auto-updater plumbed.
4. The architecture review's other items (frontend test coverage,
monolithic component split, hardcoded hex colours, ARIA gaps)
@@ -250,6 +250,6 @@ src/routes/+layout.svelte (+ ToastViewport mount)
---
*Compiled 2026/04/17 by Wren. Magnotia goes from "live transcription does not
*Compiled 2026/04/17 by Wren. Lumotia goes from "live transcription does not
work" to "ready to put in front of one trusted friend." Six commits, no
horrors so far.*