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:
Claude
2026-04-30 13:06:55 +00:00
parent 749403697a
commit 89c63891fa
186 changed files with 1297 additions and 1297 deletions

View File

@@ -3,10 +3,10 @@ use tauri::{Emitter, State};
use crate::commands::power::PowerAssertion;
use crate::commands::security::ensure_main_window;
use crate::AppState;
use kon_ai_formatting::{llm_cleanup_text, LlmPromptPreset};
use kon_core::hardware;
use kon_llm::model_manager::{self, model_info};
use kon_llm::{ContentTags, LlmModelId};
use magnotia_ai_formatting::{llm_cleanup_text, LlmPromptPreset};
use magnotia_core::hardware;
use magnotia_llm::model_manager::{self, model_info};
use magnotia_llm::{ContentTags, LlmModelId};
#[derive(Debug, serde::Serialize)]
#[serde(rename_all = "camelCase")]
@@ -74,7 +74,7 @@ pub async fn download_llm_model(
0
};
let _ = app_clone.emit(
"kon:llm-download-progress",
"magnotia:llm-download-progress",
serde_json::json!({
"modelId": id.as_str(),
"done": done,
@@ -182,7 +182,7 @@ pub struct LlmTestResult {
/// The point is that the user sees "Not enough GPU memory — pick a
/// smaller tier" rather than a raw C++ exception bubbled up from
/// llama.cpp. Mirrors OpenWhispr's "Test connection" UX for cloud
/// LLMs, adapted to Kon's local stack.
/// LLMs, adapted to Magnotia's local stack.
#[tauri::command]
pub async fn test_llm_model(
window: tauri::WebviewWindow,
@@ -293,7 +293,7 @@ fn classify_llm_load_error(raw: &str) -> (&'static str, &'static str) {
} else if lower.contains("permission denied") || lower.contains("access is denied") {
(
"load-failed-permission",
"Permission denied reading the model file. Check ownership of ~/.kon/models/llm/.",
"Permission denied reading the model file. Check ownership of ~/.magnotia/models/llm/.",
)
} else {
(
@@ -369,9 +369,9 @@ pub async fn cleanup_transcript_text_cmd(
) -> Result<String, String> {
ensure_main_window(&window)?;
let resolved_profile_id =
profile_id.unwrap_or_else(|| kon_storage::DEFAULT_PROFILE_ID.to_string());
profile_id.unwrap_or_else(|| magnotia_storage::DEFAULT_PROFILE_ID.to_string());
let profile_terms: Vec<String> =
kon_storage::database::list_profile_terms(&state.db, &resolved_profile_id)
magnotia_storage::database::list_profile_terms(&state.db, &resolved_profile_id)
.await
.map_err(|e| e.to_string())?
.into_iter()
@@ -391,7 +391,7 @@ pub async fn cleanup_transcript_text_cmd(
// macOS: pin a power assertion for the duration of the LLM
// generation so App Nap can't decide to throttle us mid-token.
// No-op on every other OS. Item #9.
let _power_guard = PowerAssertion::begin("kon LLM cleanup");
let _power_guard = PowerAssertion::begin("magnotia LLM cleanup");
llm_cleanup_text(&engine, &transcript, &profile_terms, resolved_preset)
})
.await
@@ -414,7 +414,7 @@ pub async fn extract_content_tags_cmd(
}
let engine = state.llm_engine.clone();
tokio::task::spawn_blocking(move || {
let _power_guard = PowerAssertion::begin("kon LLM content-tag extraction");
let _power_guard = PowerAssertion::begin("magnotia LLM content-tag extraction");
engine.extract_content_tags(&transcript)
})
.await