J.A.R.V.I.S-rust/frontend/src
Bossiara13 a2dfadf5c1 feat(gui): wire Footer + Settings to daemon over IPC (closes the gap from a6a098d)
a6a098d added daemon-side IPC handlers (SwitchLlm, ReloadLlm, QueryHealth)
but the GUI was still talking only to its own process. This commit wires
the frontend to actually use those handlers.

frontend/src/lib/ipc.ts
  - New DaemonHealth interface + daemonHealth: writable<DaemonHealth | null>.
  - handleEvent: "health_snapshot" case fills daemonHealth from daemon's IpcEvent.
  - New senders:
      switchDaemonLlm(backend)  → action "switch_llm"
      reloadDaemonLlm()          → action "reload_llm"
      queryDaemonHealth()        → action "query_health"

frontend/src/stores.ts
  - Re-exports daemonHealth + the three new senders + DaemonHealth type.

frontend/src/components/Footer.svelte
  - Polls every 5s but PREFERS IPC: if daemon connected, calls queryDaemonHealth
    (snapshot arrives via daemonHealth store).
  - Falls back to invoke("get_active_backends") if daemon offline — shows
    GUI-process view in that case, with the chip tooltip distinguishing
    "daemon" vs "gui-process" source.

frontend/src/routes/settings/index.svelte (AI Backends tab)
  - applyLlmBackend now ALSO fires switchDaemonLlm so the running listener
    picks the new backend without restart.
  - "Auto" (empty) path calls reloadDaemonLlm so daemon re-reads DB.

End-to-end flow now:
  GUI dropdown → set_llm_backend (Tauri, persists DB + swaps GUI proc)
              ↘ switchDaemonLlm (IPC, swaps daemon proc too)
              ↘ daemon emits health_snapshot on next QueryHealth
              ↘ daemonHealth store updates
              ↘ Footer chips re-render with new state

Build: cargo build --release -p jarvis-gui green.
2026-05-15 17:42:40 +03:00
..
components feat(gui): wire Footer + Settings to daemon over IPC (closes the gap from a6a098d) 2026-05-15 17:42:40 +03:00
css Commands/voices multilanguage support + Ukranian vosk model added 2026-01-13 02:21:59 +05:00
lib feat(gui): wire Footer + Settings to daemon over IPC (closes the gap from a6a098d) 2026-05-15 17:42:40 +03:00
routes feat(gui): wire Footer + Settings to daemon over IPC (closes the gap from a6a098d) 2026-05-15 17:42:40 +03:00
App.svelte Multilingual support via Fluent + Frontend improvements + Rewrite of ArcReactor 2026-01-07 05:04:04 +05:00
Events.svelte frontend cleanup 2026-01-04 22:50:34 +05:00
functions.ts noise suppression added via nnnoiseless + vad + gain-normalizer + few frontend changes 2026-01-06 23:32:58 +05:00
main.ts frontend cleanup 2026-01-04 22:50:34 +05:00
stores.ts feat(gui): wire Footer + Settings to daemon over IPC (closes the gap from a6a098d) 2026-05-15 17:42:40 +03:00
vite-env.d.ts project restructure with Rust workspaces 2026-01-04 05:19:47 +05:00