Phase 9 of the rebrand cascade. Sweep covers everything the Phase 8
frontend pass deliberately skipped: docs/, root markdown, scripts,
Cargo.toml descriptions, code comments that survived earlier
word-boundary sed, plus a handful of identifiers caught on the final
verify pass.
transcription-app changes:
- README.md, HANDOVER.md, KNOWN-ISSUES.md, run.sh — magnotia/Magnotia
-> lumotia/Lumotia.
- docs/ — sweep across all subdirs except docs/handovers/ (preserved
as immutable audit trail). Includes architecture-map references
to magnotia_core::*, magnotia_storage::*, etc. now pointing at
lumotia_*; dev-setup.md tracing output examples (lumotia_startup
target); brief/ + superpowers/ + issues/ + whisper-ecosystem/ +
audit/.
- Cargo.toml descriptions on 9 crates (core, audio, cloud-providers,
hotkey, llm, mcp, plus referenced others).
- crates/core/src/{error,hardware,recommendation,paths}.rs +
crates/audio/src/wav.rs + crates/llm/src/model_manager.rs +
crates/cloud-providers/src/keystore.rs + crates/mcp/src/lib.rs —
doc comments and a model-manager user-agent string.
- Caught on final pass: BroadcastChannel("magnotia_task_sync") -> ...
("lumotia_task_sync"); magnotia_locale i18n localStorage key
renamed + migration shim added; CSS keyframe names
magnotiaPulse / magnotiaBar / magnotiaFade renamed in the design-
system kit; magnotia_viewer_item / magnotia_viewer_mode handoff
keys renamed in HistoryPage + viewer/+page.svelte; src/assets/
wordmark.svg text.
- src-tauri/src/lib.rs comment cleanup ("magnotia era" was sed'd
to "lumotia era" earlier — restored).
Preserved (intentional):
- crates/core/src/paths.rs — keeps "magnotia" / "Magnotia" / ".magnotia"
legacy detection strings in legacy_and_target_paths() so the
migration shim can still find user data from the magnotia era.
- src/lib/stores/{page,focusTimer}.svelte.ts + src/lib/i18n/index.ts
— migration call sites reference the legacy magnotia keys
deliberately.
- docs/handovers/ — historical audit trail.
cargo build --workspace passes. 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>
Windows bundle resources
Files in this directory ship side-by-side with lumotia.exe to avoid the
DLL-hell failure modes reported in Whispering #840 / #829 and Buzz
#1459. They are not committed to the repo.
Release-engineer workflow
Before a Windows release build, populate this directory from a trusted
source (see table below), then pass --resource flags through to
tauri build:
cargo tauri build --target x86_64-pc-windows-msvc -- `
--resource src-tauri/resources/windows/vulkan-1.dll `
--resource src-tauri/resources/windows/libssl-3-x64.dll `
--resource src-tauri/resources/windows/libcrypto-3-x64.dll
These files are not declared in tauri.conf.json /
tauri.windows.conf.json because cargo check (which runs in every
CI job) evaluates tauri-build and fails if a listed resource path
doesn't exist. Keeping the bundle flags at tauri build call time
means cargo check stays green on vanilla checkouts while release
builds still pick them up when the release engineer runs the
populated command above.
| File | Source | Why |
|---|---|---|
vulkan-1.dll |
LunarG Vulkan SDK runtime installer, or copied from C:\Windows\System32\vulkan-1.dll on a machine with Vulkan-capable GPU drivers |
whisper.cpp's Vulkan backend refuses to initialise without it |
libssl-3-x64.dll, libcrypto-3-x64.dll |
OpenSSL 3.x Windows build (e.g. shining-light installer) or copied from the user's %SystemRoot%\system32 |
reqwest → rustls transitively pulls these when TLS-backed downloads fail in CI; shipping them removes the "app fails to download model" class of bug |
The runtime falls back gracefully if any of these are missing at launch:
see src-tauri/src/commands/models.rs::detect_active_compute_device
and emit_runtime_warnings — the app will emit a runtime-warning
event with kind vulkan-loader-missing, downgrade the reported
activeComputeDevice to CPU, and keep running. The bundle is a
performance + reliability patch, not a load-bearing dependency.
Why isn't this a script?
Licensing. We deliberately don't auto-fetch these DLLs from a CI job — the LunarG SDK ships under the Apache 2.0 license but redistribution is conditional on an acknowledgment, and the OpenSSL 3 bundling terms want a source-availability note in the installer. Manual placement keeps the redistribution legally clean per-release.
Brief reference: docs/whisper-ecosystem/brief.md item #12.