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.
2.8 KiB
RB-07 MAJOR: get_runtime_capabilities advertises wrong accelerators
Severity: MAJOR
Path: src-tauri/src/commands/models.rs:435-489
Source: 2026-04-22 code review
Labels: release-blocker, major, ui-integrity
Status: RESOLVED (2026-04-22)
Resolution
Added a pure compose_accelerators(whisper_enabled, loader_available, target) -> Vec<String> helper. It always emits "cpu" first and
appends "metal" (macOS) or "vulkan" (Linux/Windows) only when
whisper is compiled in and vulkan_loader_available() resolves the
platform's loader shim.
supported_accelerators() reads cfg!(feature = "whisper"), runs the
live loader probe, and delegates to the helper.
get_runtime_capabilities calls supported_accelerators() in place
of the hard-coded vec!["cpu", "vulkan"]. Whisper's supports_gpu
is now cfg!(feature = "whisper") — false on whisper-disabled
builds.
Five regression tests in commands::models::tests cover:
cpu_only_when_whisper_disabled(both targets)cpu_only_when_loader_missing(both targets)macos_with_loader_advertises_metalnon_macos_with_loader_advertises_vulkancpu_is_always_first_entry(contract the frontend relies on)
Both cargo test -p magnotia --lib and cargo test -p magnotia --lib --no-default-features pass the new suite; both cargo build -p magnotia
and cargo build -p magnotia --no-default-features compile clean.
Runtime GUI verification on a real macOS box is still on the ship-gate checklist — the detection logic is correct in code; Metal-loader resolution on hardware is not something we can unit-test from a Linux CI.
Problem
The IPC response hard-codes accelerators = ["cpu", "vulkan"] and supports_gpu = true for Whisper, even when:
detect_active_compute_devicewould reportmetalon macOS (via MoltenVK).- The binary was compiled without the
whisperfeature — in which case Whispersupports_gpuis meaningless because there is no Whisper backend at all.
The frontend uses this response to render Settings toggles (GPU selection, active-device badge, feature availability). Wrong values mean wrong UI states on exactly the builds this function is meant to describe.
Acceptance
acceleratorsis derived from actual build configuration and runtime probe, not hard-coded.- On macOS,
acceleratorsincludes"metal"when the Metal loader resolves. - On whisper-disabled builds, Whisper entries advertise
supports_gpu = false(or the engine is omitted from the response entirely). - Regression tests cover each platform variant via cfg-gated test cases.
Fix scope
Medium. The detection helpers already exist (detect_active_compute_device, vulkan_loader_available); this is about wiring their output into the RuntimeCapabilities struct honestly.
Dependencies
- None — standalone fix.