Commit Graph
3 Commits
Author SHA1 Message Date
Ole André Vadla Ravnås 036fcac792 host: Fix data race on pending-action tracker
Hoist seenPending into a @MainActor class so the observation
closure captures a reference instead of a mutable local.
2026-05-23 16:43:24 +02:00
Ole André Vadla Ravnås 9c65fc2fc9 Notify when a mission action awaits approval
Hook the existing LocalNotifier (macOS) and DesktopNotifier
(GTK) to observeAllPendingMissionActions so the user sees a
desktop notification when Luma needs an approval and the app
isn't frontmost. Coalesces multiple arrivals in one observe
tick into a single notification with "(+N more pending)".
2026-05-22 12:44:57 +02:00
Ole André Vadla Ravnås c5d2ff7050 core: Replace Workspace with per-document Engine
EngineRegistry caches one Engine per working-project URL.
MainWindowView.init does a pure lookup, so SwiftUI's
view-tree re-evaluations cannot open extra ProjectStores
that race the live one's BEGIN IMMEDIATE and crash via
try!.

UI-state persistence (collapse flag, sidebar selection,
session detail section, etc.) lives on Engine for GTK to
adopt. SQLite has a 5s busy timeout. Engine open failures
surface as an error view.

TargetPicker is host @State injected via environment.
Global instrument-UI defaults register at app startup;
per-engine instrument and local-notifier hookups live in
Engine extensions.
2026-05-11 21:15:47 +02:00