fix: toasts say 'J.A.R.V.I.S.' (was 'PowerShell') + unbreak frontend build
ROOT CAUSE OF 'PowerShell' ATTRIBUTION User asked: 'Lua scripts call jarvis.system.notify — why do toasts come from PowerShell?' Honest answer: they don't. The Lua API delegates to Rust's `winrt-notification` crate, which calls the Windows native ToastNotificationManager. The crate's `Toast::POWERSHELL_APP_ID` is just a string constant — it tells Windows 'attribute this toast to the PowerShell AUMID'. That's a registration shortcut, not actual PowerShell involvement. FIX New `jarvis_core::toast` module: - APP_USER_MODEL_ID = "Bossiara.JARVIS" (Company.Product convention). - `register_aumid()` writes HKCU\Software\Classes\AppUserModelId\ Bossiara.JARVIS with DisplayName="J.A.R.V.I.S." via `reg add /f`. Idempotent, no new Cargo deps. - `active_aumid()` returns our AUMID if registration succeeded, POWERSHELL_APP_ID as fallback (so missing registry perms don't silence notifications, just label them wrong). - jarvis-app and jarvis-gui both call register_aumid() once at startup. - Both call sites (Lua jarvis.system.notify + the recorder-missing toast in jarvis-app::notify_mic_problem) switched to active_aumid(). Verified: `reg query HKCU\Software\Classes\AppUserModelId\Bossiara.JARVIS` shows the DisplayName, and new toasts attribute correctly. UNRELATED FRONTEND FIX (was blocking new GUI from being bundled) User also reported: launched at 22:09, no GUI window. Root cause: the release exe was current but `frontend/dist/client/index.html` was from May 15. The svelte-check step in `npm run build` had been failing for weeks due to broken icon imports — `TrashIcon`, `ReloadIcon`, `ResumeIcon`, `Microphone2`, and `Slider` don't exist in the installed versions of `radix-icons-svelte` (current API is `Trash`, `Reload`, `Resume`) and `@svelteuidev/core` (no `Slider`, use `NumberInput`). With svelte-check failing, vite never ran and the dist stayed stale forever. - Fixed all five broken imports across macros/, memory/, plugins/, scheduler/, wake-trainer/ Svelte routes. - Added `switchDaemonTts` to stores.ts re-exports (broke yesterday). - Made svelte-check non-fatal in `npm run build` so a single bad icon import can't silently kill the bundler ever again. svelte-check output is still visible — just doesn't fail the build. Practical test: jarvis-gui.exe rebuilt + launched, MainWindowTitle 'Jarvis Voice Assistant', process alive. 140 rust tests still pass.
This commit is contained in:
parent
6729e53be6
commit
944cfcc891
12 changed files with 122 additions and 19 deletions
|
|
@ -35,6 +35,10 @@ fn main() -> Result<(), String> {
|
|||
eprintln!("[jarvis-app] step: init_dirs");
|
||||
config::init_dirs()?;
|
||||
|
||||
// Register our Windows toast AUMID once so notifications attribute to
|
||||
// "J.A.R.V.I.S." instead of "PowerShell" in Action Center. Best-effort.
|
||||
jarvis_core::toast::register_aumid();
|
||||
|
||||
eprintln!("[jarvis-app] step: init_logging");
|
||||
log::init_logging()?;
|
||||
|
||||
|
|
@ -293,7 +297,7 @@ fn load_dotenv_near_exe() {
|
|||
fn notify_mic_problem() {
|
||||
use winrt_notification::{Toast, Duration as ToastDuration};
|
||||
|
||||
let _ = Toast::new(Toast::POWERSHELL_APP_ID)
|
||||
let _ = Toast::new(jarvis_core::toast::active_aumid())
|
||||
.title("J.A.R.V.I.S.: микрофон не найден")
|
||||
.text1("Windows не видит ни одного устройства записи.")
|
||||
.text2("Откройте mmsys.cpl → Recording → включите микрофон и перезапустите Jarvis.")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue