Commit Graph
3 Commits
Author SHA1 Message Date
Ole André Vadla Ravnås 9fda5eb27e Rename room → lab throughout
Match the server's rename: CollaborationSession uses labID,
createLab / joinLab, ProjectCollaborationState's roomID field
+ its DB column become labID / lab_id, and UI strings / deep-
link query param all track "lab".

Since the app hasn't launched, the DB column rename is landed
directly in the v1 migration rather than via a new migration —
dev databases need to be wiped.
2026-04-18 12:15:37 +02:00
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 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