docs: architecture map (initial 5-slice generation, 105 pages)
Five-slice navigable map of the entire codebase under
docs/architecture-map/. Each slice is a self-contained
breadcrumbed sub-tree:
01-frontend (16) Svelte/SvelteKit UI
02-tauri-runtime (26) src-tauri commands + lifecycle
03-audio-transcription (16) audio + transcription crates
04-llm-formatting-mcp (19) llm, ai-formatting, mcp, cloud
05-core-storage-hotkey-build core, storage, hotkey, workspace,
(26) CI, dev glue
Plus master README.md and data-flow-end-to-end.md tracing
audio bytes from microphone to FTS5 search to MCP read.
Generated by 5 parallel subagents on 2026/05/09 against
HEAD 3c47000. Each page has YAML frontmatter, file:line code
refs, sibling cross-links, plain-English summaries.
Aggregated debt surfaced (full lists in master README):
RB-08 macOS power assertion, schema head drift v14 vs v15,
VAD blocked on ort version conflict, streaming primitives
not wired into live.rs, no prompt versioning, MCP has no
auth, cloud-providers in-memory keystore, SettingsPage
2 484 LOC, commands/live.rs 1 737 LOC, dual theme system,
brand rename to Lumenote pending across the codebase.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
65
docs/architecture-map/01-frontend/pages-overview.md
Normal file
65
docs/architecture-map/01-frontend/pages-overview.md
Normal file
@@ -0,0 +1,65 @@
|
||||
---
|
||||
name: Pages overview
|
||||
type: architecture-map-page
|
||||
slice: 01-frontend
|
||||
last_verified: 2026/05/09
|
||||
---
|
||||
|
||||
# Pages overview
|
||||
|
||||
> **Where you are:** [Architecture map](../README.md) → [Frontend](README.md) → Pages overview
|
||||
|
||||
**Plain English summary.** Magnotia 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 `magnotia: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.current` directly (`src/lib/Sidebar.svelte:24`).
|
||||
- Some flows reach into `page.current` from 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`.
|
||||
|
||||
## 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](pages/dictation.md). [settings](pages/settings.md). [history](pages/history.md). [tasks](pages/tasks.md). [files](pages/files.md). [first run](pages/first-run.md).
|
||||
- [Windows and routes](windows-and-routes.md). For the route file structure and the secondary windows.
|
||||
- [Stores](stores.md). The `page` store that drives the switch.
|
||||
Reference in New Issue
Block a user