chore: rebrand from Kon/Corbie to Magnotia
Replace all instances of the legacy product names "Kon" and "Corbie" with "Magnotia" across user-facing copy, code identifiers, package names, bundle ids, file paths, and documentation. Preserves the unrelated "konsole" (KDE terminal) reference and the parent CORBEL company name. - Renames 10 Rust crates (kon-* → magnotia-*) and the tauri binary - Updates package.json, tauri.conf.json (productName + identifier) - Renames CSS classes (kon-rh-* → magnotia-rh-*) and animations - Renames brand and roadmap docs - Regenerates Cargo.lock and package-lock.json Verified: svelte-check passes; pure-rust crates compile under new names.
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 Kon in a normal browser. Local transcription only works in the Tauri desktop app window.";
|
||||
const browserPreviewMessage = "You're viewing Magnotia in a normal browser. Local transcription only works in the Tauri desktop app window.";
|
||||
|
||||
let transcript = $state("");
|
||||
let segments = $state([]);
|
||||
@@ -65,7 +65,7 @@
|
||||
let hotkeyHandler = () => toggleRecording();
|
||||
|
||||
onMount(async () => {
|
||||
window.addEventListener("kon:toggle-recording", hotkeyHandler);
|
||||
window.addEventListener("magnotia:toggle-recording", hotkeyHandler);
|
||||
|
||||
if (!tauriRuntimeAvailable) {
|
||||
error = browserPreviewMessage;
|
||||
@@ -77,7 +77,7 @@
|
||||
});
|
||||
|
||||
onDestroy(() => {
|
||||
window.removeEventListener("kon:toggle-recording", hotkeyHandler);
|
||||
window.removeEventListener("magnotia:toggle-recording", hotkeyHandler);
|
||||
clearInterval(timerInterval);
|
||||
if (page.recording) {
|
||||
page.recording = false;
|
||||
@@ -199,7 +199,7 @@
|
||||
lastLiveActivityAt = Date.now();
|
||||
|
||||
if (status.type === "overload" || status.type === "warning") {
|
||||
liveWarning = status.message || "Kon is dropping older audio to stay responsive.";
|
||||
liveWarning = status.message || "Magnotia is dropping older audio to stay responsive.";
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -647,7 +647,7 @@
|
||||
const url = URL.createObjectURL(blob);
|
||||
const a = document.createElement("a");
|
||||
a.href = url;
|
||||
a.download = `kon-${new Date().toISOString().slice(0, 10)}.${ext}`;
|
||||
a.download = `magnotia-${new Date().toISOString().slice(0, 10)}.${ext}`;
|
||||
a.click();
|
||||
URL.revokeObjectURL(url);
|
||||
}
|
||||
|
||||
@@ -142,7 +142,7 @@
|
||||
const url = URL.createObjectURL(blob);
|
||||
const a = document.createElement("a");
|
||||
a.href = url;
|
||||
a.download = `kon-file-${new Date().toISOString().slice(0, 10)}.${ext}`;
|
||||
a.download = `magnotia-file-${new Date().toISOString().slice(0, 10)}.${ext}`;
|
||||
a.click();
|
||||
URL.revokeObjectURL(url);
|
||||
}
|
||||
|
||||
@@ -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 Corbie at login?</h2>
|
||||
<h2 class="text-xl font-medium text-text">Launch Magnotia at login?</h2>
|
||||
<p class="text-sm text-text-secondary mt-3 leading-relaxed">
|
||||
So Corbie 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 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.
|
||||
</p>
|
||||
<p class="text-[11px] text-text-tertiary 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 Kon</h2>
|
||||
<h2 class="text-2xl font-medium text-text text-center">Welcome to Magnotia</h2>
|
||||
<p class="text-sm text-text-secondary text-center mt-2">Press the button. Start talking. That's it.</p>
|
||||
|
||||
{#if error}
|
||||
|
||||
@@ -342,12 +342,12 @@
|
||||
// script.
|
||||
const handoff = JSON.stringify({ id: String(item.id) });
|
||||
try {
|
||||
localStorage.setItem("kon_viewer_item", handoff);
|
||||
localStorage.setItem("kon_viewer_mode", "view");
|
||||
localStorage.setItem("magnotia_viewer_item", handoff);
|
||||
localStorage.setItem("magnotia_viewer_mode", "view");
|
||||
await invoke("open_viewer_window");
|
||||
} catch {
|
||||
localStorage.setItem("kon_viewer_item", handoff);
|
||||
localStorage.setItem("kon_viewer_mode", "view");
|
||||
localStorage.setItem("magnotia_viewer_item", handoff);
|
||||
localStorage.setItem("magnotia_viewer_mode", "view");
|
||||
window.open("/viewer", "_blank", "width=600,height=700");
|
||||
}
|
||||
}
|
||||
@@ -509,12 +509,12 @@
|
||||
// (see openViewer above for the rationale).
|
||||
const handoff = JSON.stringify({ id: String(item.id) });
|
||||
try {
|
||||
localStorage.setItem("kon_viewer_item", handoff);
|
||||
localStorage.setItem("kon_viewer_mode", "edit");
|
||||
localStorage.setItem("magnotia_viewer_item", handoff);
|
||||
localStorage.setItem("magnotia_viewer_mode", "edit");
|
||||
await invoke("open_viewer_window");
|
||||
} catch {
|
||||
localStorage.setItem("kon_viewer_item", handoff);
|
||||
localStorage.setItem("kon_viewer_mode", "edit");
|
||||
localStorage.setItem("magnotia_viewer_item", handoff);
|
||||
localStorage.setItem("magnotia_viewer_mode", "edit");
|
||||
window.open("/viewer", "_blank", "width=600,height=700");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -675,7 +675,7 @@
|
||||
async function testReadAloudVoice() {
|
||||
try {
|
||||
await invoke("tts_speak", {
|
||||
text: "This is Corbie reading aloud.",
|
||||
text: "This is Magnotia reading aloud.",
|
||||
rate: settings.ttsRate,
|
||||
voice: settings.ttsVoice ?? null,
|
||||
});
|
||||
@@ -771,7 +771,7 @@
|
||||
downloadProgress = event.payload.percent || event.payload.progress || 0;
|
||||
});
|
||||
|
||||
unlistenLlm = await listen("kon:llm-download-progress", (event) => {
|
||||
unlistenLlm = await listen("magnotia:llm-download-progress", (event) => {
|
||||
llmDownloadProgress = event.payload.percent || 0;
|
||||
llmDownloadingModel = event.payload.modelId || llmDownloadingModel;
|
||||
});
|
||||
@@ -984,7 +984,7 @@
|
||||
bind:value={settings.microphoneDevice}
|
||||
onfocus={refreshAudioDevices}
|
||||
>
|
||||
<option value="">Auto (recommended) — let Kon pick the working mic</option>
|
||||
<option value="">Auto (recommended) — let Magnotia 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}
|
||||
@@ -1624,7 +1624,7 @@
|
||||
</div>
|
||||
<p class="text-[11px] text-text-tertiary mt-2">
|
||||
{settings.aiTier === "off"
|
||||
? "No local LLM calls. Kon falls back to the existing rule-based path."
|
||||
? "No local LLM calls. Magnotia 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."}
|
||||
@@ -1871,7 +1871,7 @@
|
||||
disabled={autostartSyncing}
|
||||
role="switch"
|
||||
aria-checked={settings.launchAtLogin}
|
||||
aria-label="Launch Corbie at login"
|
||||
aria-label="Launch Magnotia at login"
|
||||
>
|
||||
<span
|
||||
class="absolute top-[3px] left-[3px] w-4 h-4 rounded-full bg-white shadow-sm
|
||||
@@ -1880,9 +1880,9 @@
|
||||
></span>
|
||||
</button>
|
||||
<div class="flex-1 min-w-0">
|
||||
<p class="text-[13px] text-text leading-tight">Launch Corbie at login</p>
|
||||
<p class="text-[13px] text-text leading-tight">Launch Magnotia at login</p>
|
||||
<p class="text-[11px] text-text-tertiary mt-0.5 leading-snug">
|
||||
So Corbie is already there at the start of the day. Uses your OS's standard autostart — no background tricks.
|
||||
So Magnotia is already there at the start of the day. Uses your OS's standard autostart — no background tricks.
|
||||
</p>
|
||||
{#if autostartSyncing}
|
||||
<p class="text-[11px] text-text-tertiary mt-1">Updating…</p>
|
||||
@@ -1913,7 +1913,7 @@
|
||||
<SettingsGroup title="Nudges" description="Soft notifications, capped per hour.">
|
||||
<div class="animate-fade-in">
|
||||
<p class="text-[11px] text-text-tertiary mb-4">
|
||||
Gentle, anticipatory reminders. Capped at 3 per hour. Never fires while you're looking at Corbie.
|
||||
Gentle, anticipatory reminders. Capped at 3 per hour. Never fires while you're looking at Magnotia.
|
||||
</p>
|
||||
|
||||
<Toggle
|
||||
@@ -2020,13 +2020,13 @@
|
||||
/>
|
||||
<Toggle
|
||||
bind:checked={settings.transcriptionPreview}
|
||||
label="Floating preview when Kon is unfocused"
|
||||
label="Floating preview when Magnotia 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 — Kon never records on its own."
|
||||
description="Toasts when a matching app appears in the process list. You still hit the hotkey — Magnotia never records on its own."
|
||||
/>
|
||||
{#if settings.meetingAutoCapture}
|
||||
<div class="ml-[50px] mt-2 mb-1 animate-fade-in">
|
||||
@@ -2201,7 +2201,7 @@
|
||||
{/each}
|
||||
</div>
|
||||
|
||||
<p class="text-[11px] text-text-tertiary mt-5">Kon v1.0 · Powered by whisper.cpp · Built by CORBEL Ltd</p>
|
||||
<p class="text-[11px] text-text-tertiary mt-5">Magnotia 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