agent: lumotia-rebrand — frontend strings (svelte + i18n + design-system)
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 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:
2026-05-13 12:29:37 +01:00
parent 16081095e0
commit 681a9b26dc
37 changed files with 115 additions and 115 deletions

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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}

View File

@@ -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">