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>
4.2 KiB
4.2 KiB
name, type, slice, last_verified
| name | type | slice | last_verified |
|---|---|---|---|
| Pages overview | architecture-map-page | 01-frontend | 2026/05/09 |
Pages overview
Where you are: Architecture map → Frontend → Pages overview
Plain English summary. Lumotia has seven main window pages and three secondary window pages. The main window picks which to show by reading page.current (a string in the page store) and rendering the matching component. The secondary windows are routed by URL (/float, /viewer, /preview).
At a glance
- Main window pages live at
src/lib/pages/*.svelte(7 files, 6 232 LOC). - Secondary window pages live at
src/routes/{float,viewer,preview}/+page.svelte(3 files, 1 361 LOC). - Switch site:
src/routes/+page.svelte:18-32. - Driver store:
src/lib/stores/page.svelte.ts:24-33(page.current). - Possible values of
page.current:"first-run" | "dictation" | "files" | "tasks" | "history" | "settings" | "shutdown". Plus the legacy"profiles"which is rewritten to"settings"(see README debt note 5).
Map of pages
Main window
| Page | File | LOC | One line hook |
|---|---|---|---|
| Dictation | src/lib/pages/DictationPage.svelte |
1 100 | The hero recording surface. Streams partial transcripts via a Tauri Channel, runs the AI cleanup pipeline, paste/copy/export, extracts tasks, fills a template. |
| Settings | src/lib/pages/SettingsPage.svelte |
2 484 | The configuration panel. Audio devices, vocabulary, profiles, templates, model management (Whisper + Parakeet + LLM), hotkey, rituals, nudges, accessibility, diagnostics. |
| History | src/lib/pages/HistoryPage.svelte |
974 | Browse, search, play, edit, star, tag, export saved transcripts. Backed by SQLite FTS5. |
| Tasks | src/lib/pages/TasksPage.svelte |
725 | Inbox/today/soon/later board with energy chips, lists, completion sparkline. |
| Files | src/lib/pages/FilesPage.svelte |
263 | Drop or browse audio/video files. Calls transcribe_file. |
| First run | src/lib/pages/FirstRunPage.svelte |
337 | Hardware probe (probe_system), model recommendation, model download. Auto exits to dictation. |
| Shutdown ritual | src/lib/pages/ShutdownRitualPage.svelte |
169 | Evening wind down ritual. Triggered from the tray menu via lumotia:open-wind-down. |
Secondary windows (URL routed)
| Window label | URL | File | LOC | One line hook |
|---|---|---|---|---|
tasks-float |
/float |
src/routes/float/+page.svelte |
481 | Detached pinned tasks window with quick add and list management. |
transcript-viewer |
/viewer |
src/routes/viewer/+page.svelte |
606 | Transcript editor with synced audio playback and per segment editing. |
transcription-preview |
/preview |
src/routes/preview/+page.svelte |
274 | Borderless overlay showing live transcription with copy and revert. |
How navigation actually happens
- Sidebar buttons set
page.currentdirectly (src/lib/Sidebar.svelte:24). - Some flows reach into
page.currentfrom outside the sidebar:- Hotkey press forces dictation:
+layout.svelte:139, 181. - First run gate on mount:
+layout.svelte:350. - Settings page "open evening wind down" button:
SettingsPage.svelte:816. - Tray menu wind down event:
+layout.svelte:251-254. - First run completion paths back to dictation:
FirstRunPage.svelte:83, 139, 146, 155. - Implementation intentions store can route to tasks (
implementationIntentions.svelte.ts:125, 136, 142). - Shutdown ritual exit:
ShutdownRitualPage.svelte:67. - TaskSidebar "open tasks page" link:
TaskSidebar.svelte:48.
- Hotkey press forces dictation:
Where the shell tucks pages in
The shell renders sidebar plus a single main slot: <div class="flex-1 overflow-hidden bg-bg">{@render children()}</div>. The optional task sidebar (page.taskSidebarOpen) can dock a TaskSidebar panel beside any main page that is not first run.
See also
- Pages: dictation. settings. history. tasks. files. first run.
- Windows and routes. For the route file structure and the secondary windows.
- Stores. The
pagestore that drives the switch.