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)".
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.