The `nonisolated <Protocol>` conformance syntax (SE-0470) is only
recognized by Swift 6.2's parser, so the Ubuntu CI job (Swift 6.1.3)
fails to parse JSInspectValue.swift and SpawnConfig.swift.
Move the protocol conformances into trailing extensions and guard
the `nonisolated` markers behind `#if compiler(>=6.2)`. The Xcode
build (which sets SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor) still
gets nonisolated conformances; SwiftPM builds work on 6.1 and 6.2.
Define all domain model structs as plain Codable types in
LumaCore, replacing the SwiftData @Model classes:
ProcessSession, InstrumentInstance, REPLCell, NotebookEntry,
ITraceCaptureRecord, AddressInsight, InstalledPackage,
ProjectPackagesState, ProjectCollaborationState,
TargetPickerState, RemoteDeviceConfig
Flesh out ProjectStore with complete GRDB/SQLite CRUD for
all 11 tables. Both the SwiftUI and GTK frontends will use
this as their persistence layer.
Move pure data types out of Luma/ into Sources/LumaCore/
so they can be shared with the GTK frontend:
- AddressAnchor, CFGGraph, ITraceDecoder (+ all related
types: TraceEntry, ITraceMetadata, RegisterState, etc.)
- JSInspectValue, SpawnConfig, ProcessModule
- HookPackConfig, HookPackManifest, InstrumentConfigCodec
- InstrumentIcon, InstrumentKind, ConsoleLevel
CFGGraph uses its own Point2D instead of CoreGraphics
types, keeping the core free of Apple frameworks.
Remove premature stubs (Engine, ProcessNode,
InstrumentRuntime, EventStream) that will be properly
built in a later phase once the real implementations
are ready to move.