agent: lumotia-rebrand — frontend strings (svelte + i18n + design-system)
Phase 8 of the rebrand cascade. Every rendered string is now Lumotia;
no Magnotia surface visible in the UI.
Sweep replaced \bmagnotia\b -> lumotia and \bMagnotia\b -> Lumotia
across all .svelte / .ts / .js / .css / .html / .json (excluding
package-lock.json which regenerates, target/, build/, node_modules/).
Surfaces touched:
- src/app.css — design-token comment header and .magnotia-rh-* CSS
resize-handle class selectors (also the consuming elements in
components/ResizeHandles.svelte and src/routes/*/+layout.svelte).
- src/lib/i18n/locales/{en,de,es}.json — brand name in translations.
- src/lib/i18n/index.ts — header comment.
- src/lib/Sidebar.svelte and most pages under src/lib/pages/ +
src/lib/components/ — title bars, document titles, default
filenames (lumotia-YYYY-MM-DD.* etc), toast strings, error
messages, dialog headers.
- src/routes/+layout.svelte, +page.svelte, viewer/, float/, preview/.
- src/app.html page <title>.
- src/lib/utils/settingsMigrations.ts — fallback toast copy.
- src/design-system/{colors_and_type.css,SKILL.md,README.md,
ui_kits/{Sidebar.jsx,index.html}} — design-tokens, doc strings,
preview wordmark in the kit.
- package.json — name + description.
NOT touched (deferred / immutable):
- package-lock.json — regenerates on next npm install.
- The two migration-call sites in stores reference the legacy magnotia
keys deliberately; restored after the sweep clobbered them.
- docs/, README.md, HANDOVER.md — Phase 9 scope.
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:
@@ -25,7 +25,7 @@
|
||||
import { hasTauriRuntime } from '$lib/utils/runtime.js';
|
||||
const prefs = getPreferences();
|
||||
const tauriRuntimeAvailable = hasTauriRuntime();
|
||||
const browserPreviewMessage = "You're viewing Magnotia in a normal browser. Local transcription only works in the Tauri desktop app window.";
|
||||
const browserPreviewMessage = "You're viewing Lumotia in a normal browser. Local transcription only works in the Tauri desktop app window.";
|
||||
|
||||
let transcript = $state("");
|
||||
let segments = $state([]);
|
||||
@@ -199,7 +199,7 @@
|
||||
lastLiveActivityAt = Date.now();
|
||||
|
||||
if (status.type === "overload" || status.type === "warning") {
|
||||
liveWarning = status.message || "Magnotia is dropping older audio to stay responsive.";
|
||||
liveWarning = status.message || "Lumotia is dropping older audio to stay responsive.";
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -643,7 +643,7 @@
|
||||
const content = exportTranscript(transcript, segments, format);
|
||||
const extMap = { txt: "txt", vtt: "vtt", srt: "srt", md: "md", csv: "csv", html: "html" };
|
||||
const ext = extMap[format] || "txt";
|
||||
const defaultPath = `magnotia-${new Date().toISOString().slice(0, 10)}.${ext}`;
|
||||
const defaultPath = `lumotia-${new Date().toISOString().slice(0, 10)}.${ext}`;
|
||||
|
||||
if (hasTauriRuntime()) {
|
||||
try {
|
||||
|
||||
@@ -140,7 +140,7 @@
|
||||
const content = exportTranscript(fileTranscript, segments, format);
|
||||
const extMap = { txt: "txt", vtt: "vtt", srt: "srt", md: "md", csv: "csv", html: "html" };
|
||||
const ext = extMap[format] || "txt";
|
||||
const defaultPath = `magnotia-file-${new Date().toISOString().slice(0, 10)}.${ext}`;
|
||||
const defaultPath = `lumotia-file-${new Date().toISOString().slice(0, 10)}.${ext}`;
|
||||
|
||||
if (hasTauriRuntime()) {
|
||||
try {
|
||||
|
||||
@@ -225,9 +225,9 @@
|
||||
{:else if ritualsStep === "autostart"}
|
||||
<div class="w-full max-w-md mx-auto text-center">
|
||||
<Play size={32} strokeWidth={1.5} class="text-accent mx-auto mb-3" />
|
||||
<h2 class="text-xl font-medium text-text">Launch Magnotia at login?</h2>
|
||||
<h2 class="text-xl font-medium text-text">Launch Lumotia at login?</h2>
|
||||
<p class="text-sm text-text-secondary mt-3 leading-relaxed">
|
||||
So Magnotia is already there when you need it, especially useful if you said yes to morning triage. Uses your OS's standard autostart. No background tricks, no telemetry.
|
||||
So Lumotia is already there when you need it, especially useful if you said yes to morning triage. Uses your OS's standard autostart. No background tricks, no telemetry.
|
||||
</p>
|
||||
<p class="text-[12px] text-text-secondary mt-3">You can change this any time in Settings.</p>
|
||||
<div class="flex items-center justify-center gap-3 mt-6">
|
||||
@@ -270,7 +270,7 @@
|
||||
|
||||
{:else}
|
||||
<div class="w-full">
|
||||
<h2 class="text-2xl font-medium text-text text-center">Welcome to Magnotia</h2>
|
||||
<h2 class="text-2xl font-medium text-text text-center">Welcome to Lumotia</h2>
|
||||
<p class="text-sm text-text-secondary text-center mt-2">Press the button. Start talking. That's it.</p>
|
||||
|
||||
{#if error}
|
||||
|
||||
@@ -767,7 +767,7 @@
|
||||
async function testReadAloudVoice() {
|
||||
try {
|
||||
await invoke("tts_speak", {
|
||||
text: "This is Magnotia reading aloud.",
|
||||
text: "This is Lumotia reading aloud.",
|
||||
rate: settings.ttsRate,
|
||||
voice: settings.ttsVoice ?? null,
|
||||
});
|
||||
@@ -1155,7 +1155,7 @@
|
||||
bind:value={settings.microphoneDevice}
|
||||
onfocus={refreshAudioDevices}
|
||||
>
|
||||
<option value="">Auto (recommended), let Magnotia pick the working mic</option>
|
||||
<option value="">Auto (recommended), let Lumotia pick the working mic</option>
|
||||
{#each visibleAudioDevices as dev}
|
||||
<option value={dev.name} disabled={dev.is_likely_monitor}>
|
||||
{friendlyLabel(dev)}{#if dev.is_default && dev.name !== "default"} (system default){/if}{#if dev.is_likely_monitor}, speaker monitor, skip{/if}
|
||||
@@ -1808,7 +1808,7 @@
|
||||
</div>
|
||||
<p class="text-[12px] text-text-secondary mt-2">
|
||||
{settings.aiTier === "off"
|
||||
? "No local LLM calls. Magnotia falls back to the existing rule-based path."
|
||||
? "No local LLM calls. Lumotia falls back to the existing rule-based path."
|
||||
: settings.aiTier === "cleanup"
|
||||
? "Use the local model for transcript cleanup and formatting."
|
||||
: "Use the local model for cleanup, task extraction, and task breakdown."}
|
||||
@@ -2080,8 +2080,8 @@
|
||||
about whether autostart is registered. -->
|
||||
<Toggle
|
||||
bind:checked={settings.launchAtLogin}
|
||||
label="Launch Magnotia at login"
|
||||
description="So Magnotia is already there at the start of the day. Uses your OS's standard autostart, no background tricks."
|
||||
label="Launch Lumotia at login"
|
||||
description="So Lumotia is already there at the start of the day. Uses your OS's standard autostart, no background tricks."
|
||||
onChange={setLaunchAtLogin}
|
||||
/>
|
||||
</div>
|
||||
@@ -2116,7 +2116,7 @@
|
||||
>
|
||||
<div class="animate-fade-in">
|
||||
<p class="text-[12px] text-text-secondary mb-4">
|
||||
Gentle, anticipatory reminders. Capped at 3 per hour. Never fires while you're looking at Magnotia.
|
||||
Gentle, anticipatory reminders. Capped at 3 per hour. Never fires while you're looking at Lumotia.
|
||||
</p>
|
||||
|
||||
<Toggle
|
||||
@@ -2234,13 +2234,13 @@
|
||||
/>
|
||||
<Toggle
|
||||
bind:checked={settings.transcriptionPreview}
|
||||
label="Floating preview when Magnotia is unfocused"
|
||||
label="Floating preview when Lumotia is unfocused"
|
||||
description="Shows a small always-on-top window with the raw transcription as you dictate, then the final formatted text. Only opens when the main window is unfocused or hidden."
|
||||
/>
|
||||
<Toggle
|
||||
bind:checked={settings.meetingAutoCapture}
|
||||
label="Remind me when a meeting starts"
|
||||
description="Toasts when a matching app appears in the process list. You still hit the hotkey. Magnotia never records on its own."
|
||||
description="Toasts when a matching app appears in the process list. You still hit the hotkey. Lumotia never records on its own."
|
||||
/>
|
||||
{#if settings.meetingAutoCapture}
|
||||
<div class="ml-[50px] mt-2 mb-1 animate-fade-in">
|
||||
@@ -2435,7 +2435,7 @@
|
||||
{/each}
|
||||
</div>
|
||||
|
||||
<p class="text-[12px] text-text-secondary mt-5">Magnotia v1.0 · Powered by whisper.cpp · Built by CORBEL Ltd</p>
|
||||
<p class="text-[12px] text-text-secondary mt-5">Lumotia v1.0 · Powered by whisper.cpp · Built by CORBEL Ltd</p>
|
||||
|
||||
<!-- Diagnostic report (privacy posture: local only until you share it) -->
|
||||
<div class="mt-6 pt-5 border-t border-border-subtle">
|
||||
|
||||
Reference in New Issue
Block a user