agent: code-atomiser-fix — repair sed-scar provenance from 26c7307
The Magnotia->Lumotia rebrand commit 26c7307 ran a too-greedy
s/magnotia/lumotia/g across comments that already had the correct
legacy/target distinction. The commit author caught one case in
src-tauri/src/lib.rs ("magnotia era" -> "lumotia era" restored) but
missed four others, plus a duplicated word in a Cargo description
from an earlier two-name sed.
Fixed sites:
* crates/storage/src/database.rs — migrate_legacy_setting_keys docstring
* src/lib/utils/localStorageMigration.ts — file-level docstring
* src/lib/utils/settingsMigrations.ts — historical-key comment
* crates/cloud-providers/Cargo.toml — description duplication
* src-tauri/src/lib.rs — data-dir migration log + doc
None of the underlying code paths were wrong; the lies were
docstring-only. Risk: future maintainer reading any of these
comments at incident time could invert the migration direction or
conclude no migration ran.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
name = "lumotia-cloud-providers"
|
name = "lumotia-cloud-providers"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
description = "Provider trait and BYOK cloud STT scaffolding for Lumotia (Lumotia)"
|
description = "Provider trait and BYOK cloud STT scaffolding for Lumotia"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
lumotia-core = { path = "../core" }
|
lumotia-core = { path = "../core" }
|
||||||
|
|||||||
@@ -905,14 +905,16 @@ pub async fn get_setting(pool: &SqlitePool, key: &str) -> Result<Option<String>>
|
|||||||
Ok(row.map(|r| r.get("value")))
|
Ok(row.map(|r| r.get("value")))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// One-shot key rename for settings rows carried over from the lumotia era
|
/// One-shot key rename for settings rows carried over from the magnotia era
|
||||||
/// (`magnotia_preferences`, `magnotia_morning_triage_last_shown`, etc.).
|
/// (`magnotia_preferences`, `magnotia_morning_triage_last_shown`, etc.) to
|
||||||
|
/// the lumotia naming convention.
|
||||||
///
|
///
|
||||||
/// Idempotent. Returns `(renamed, orphans_deleted)`:
|
/// Idempotent. Returns `(renamed, orphans_deleted)`:
|
||||||
/// * `renamed` — rows where only the lumotia key existed; the row's key
|
/// * `renamed` — rows where only the legacy (magnotia) key existed; the
|
||||||
/// is updated to the lumotia equivalent.
|
/// row's key is updated to the lumotia equivalent.
|
||||||
/// * `orphans_deleted` — rows where BOTH keys existed; the lumotia row is
|
/// * `orphans_deleted` — rows where BOTH keys existed; the new (lumotia)
|
||||||
/// authoritative and the lumotia row is deleted to avoid silent debt.
|
/// row is authoritative and the legacy (magnotia) row is deleted to
|
||||||
|
/// avoid silent debt.
|
||||||
pub async fn migrate_legacy_setting_keys(pool: &SqlitePool) -> Result<(u64, u64)> {
|
pub async fn migrate_legacy_setting_keys(pool: &SqlitePool) -> Result<(u64, u64)> {
|
||||||
let mut tx = pool.begin().await.map_err(|source| Error::Query {
|
let mut tx = pool.begin().await.map_err(|source| Error::Query {
|
||||||
operation: "migrate_legacy_setting_keys:begin".into(),
|
operation: "migrate_legacy_setting_keys:begin".into(),
|
||||||
|
|||||||
@@ -12,7 +12,9 @@ use sqlx::SqlitePool;
|
|||||||
use tauri::Manager;
|
use tauri::Manager;
|
||||||
use tracing_subscriber::EnvFilter;
|
use tracing_subscriber::EnvFilter;
|
||||||
|
|
||||||
use lumotia_core::paths::{migrate_legacy_data_dir, MigrationStatus};
|
use lumotia_core::paths::{
|
||||||
|
check_target_ambiguity, migrate_legacy_data_dir, MigrationStatus,
|
||||||
|
};
|
||||||
use lumotia_core::types::EngineName;
|
use lumotia_core::types::EngineName;
|
||||||
use lumotia_llm::LlmEngine;
|
use lumotia_llm::LlmEngine;
|
||||||
use lumotia_storage::{
|
use lumotia_storage::{
|
||||||
@@ -224,7 +226,7 @@ pub fn run() {
|
|||||||
|
|
||||||
builder
|
builder
|
||||||
.setup(|app| {
|
.setup(|app| {
|
||||||
// One-shot legacy data-dir migration: rename ~/.local/share/lumotia
|
// One-shot legacy data-dir migration: rename ~/.local/share/magnotia
|
||||||
// (and macOS/Windows equivalents) to the convention-preserving
|
// (and macOS/Windows equivalents) to the convention-preserving
|
||||||
// lumotia path on first launch after the rebrand. Idempotent —
|
// lumotia path on first launch after the rebrand. Idempotent —
|
||||||
// safe to call on every boot. A migration error is fatal: silently
|
// safe to call on every boot. A migration error is fatal: silently
|
||||||
@@ -238,7 +240,7 @@ pub fn run() {
|
|||||||
from = %from.display(),
|
from = %from.display(),
|
||||||
to = %to.display(),
|
to = %to.display(),
|
||||||
renamed_db,
|
renamed_db,
|
||||||
"migrated legacy lumotia data dir to lumotia"
|
"migrated legacy magnotia data dir to lumotia"
|
||||||
),
|
),
|
||||||
Ok(MigrationStatus::TargetAlreadyExists { .. }) => {}
|
Ok(MigrationStatus::TargetAlreadyExists { .. }) => {}
|
||||||
Ok(MigrationStatus::NoLegacyFound) => {}
|
Ok(MigrationStatus::NoLegacyFound) => {}
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
/**
|
/**
|
||||||
* Phase 7 of the lumotia -> lumotia rebrand cascade. Persisted UI state
|
* Phase 7 of the magnotia -> lumotia rebrand cascade. Persisted UI state
|
||||||
* survives the rename via one-shot key migrations run at module-load
|
* survives the rename via one-shot key migrations run at module-load
|
||||||
* inside the stores that own each key.
|
* inside the stores that own each key.
|
||||||
*
|
*
|
||||||
* `migrateLocalStorageKey` is idempotent and crash-safe:
|
* `migrateLocalStorageKey` is idempotent and crash-safe:
|
||||||
* - If the new key already exists, the old key (if any) is removed
|
* - If the new key already exists, the old (magnotia) key is removed
|
||||||
* silently — the lumotia value is authoritative.
|
* silently — the new (lumotia) value is authoritative; the legacy
|
||||||
|
* (magnotia) key is removed.
|
||||||
* - If only the old key exists, its value is copied to the new key and
|
* - If only the old key exists, its value is copied to the new key and
|
||||||
* the old key is removed.
|
* the old key is removed.
|
||||||
* - If neither exists, this is a no-op.
|
* - If neither exists, this is a no-op.
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
/**
|
/**
|
||||||
* Forward-compatible, versioned settings migration.
|
* Forward-compatible, versioned settings migration.
|
||||||
*
|
*
|
||||||
* Historically, `localStorage["lumotia_settings"]` was a bare JSON object
|
* Historically, `localStorage["magnotia_settings"]` (now migrated to
|
||||||
|
* `lumotia_settings` via Phase 7 of the rebrand cascade) was a bare JSON object
|
||||||
* (whatever `SettingsState` looked like at write time). That shape
|
* (whatever `SettingsState` looked like at write time). That shape
|
||||||
* tolerates new fields cleanly — spread over `defaults` — but does not
|
* tolerates new fields cleanly — spread over `defaults` — but does not
|
||||||
* survive:
|
* survive:
|
||||||
|
|||||||
Reference in New Issue
Block a user