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.
9 lines
128 B
Swift
9 lines
128 B
Swift
import Foundation
|
|
import Observation
|
|
|
|
@Observable
|
|
@MainActor
|
|
final class TargetPicker {
|
|
var context: TargetPickerContext?
|
|
}
|