Commit Graph
3 Commits
Author SHA1 Message Date
Ole André Vadla Ravnås 316c82c908 Use GRDB records idiomatically
All model structs now conform to FetchableRecord +
PersistableRecord with snake_case table/column names.
GRDB handles Codable encoding/decoding automatically.

ProjectStore rewritten to use the type-safe query builder:
model.save(db), Model.fetchAll(db), Model.filter(...),
Model.deleteOne(db, key:) — no raw SQL remaining.
2026-04-06 21:49:41 +02:00
Ole André Vadla Ravnås 0d400d4150 Restore documents via SQLite-backed projects
Each .luma document is a package (directory bundle)
containing project.sqlite. LumaProject implements
ReferenceFileDocument to integrate with SwiftUI's
DocumentGroup:

- New documents create a fresh SQLite database
- Existing documents read the database from the package
- Snapshots serialize the database for save operations

Workspace takes a ProjectStore from the document rather
than creating its own. Each document window gets an
independent store/workspace pair.
2026-04-06 21:49:41 +02:00
Ole André Vadla Ravnås 42c8115bab Add persistence models and ProjectStore CRUD
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.
2026-04-06 20:13:59 +02:00