--- 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.** 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.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: `