Last Updated: 2026-05-25
This inventory supports Milestone 9 in Refactoring-Plan.md.
SwiftData is legacy/prototype infrastructure only. The target app must launch
and run active Time Machine flows from SQLite archive + Core Data cache, with
local settings stored outside SwiftData where needed.
After moving temporal distribution to cache DTO inputs, 19 app files still have SwiftData imports.
This file keeps SwiftData required at app launch:
HealthProbe/HealthProbeApp.swiftRetirement path:
- replace prototype snapshot model dependencies in tab roots;
- remove .modelContainer(...) once no active view needs @Query or
ModelContext.
These files define SwiftData @Model classes and are the largest retirement
block:
HealthProbe/Models/HealthRecord.swiftHealthProbe/Models/HealthSnapshot.swiftHealthProbe/Models/SnapshotDelta.swiftHealthProbe/Models/TypeCount.swiftHealthProbe/Models/TypeDelta.swiftHealthProbe/Models/TypeDistributionBin.swiftHealthProbe/Models/YearlyCount.swiftRetirement path:
- replace HealthSnapshot, TypeCount, SnapshotDelta, TypeDelta,
YearlyCount, TypeDistributionBin, and HealthRecord active reads with
archive/cache DTOs;
- retire active reads/writes before removing the launch container.
These services still write/read legacy SwiftData transition models:
HealthProbe/Services/DeltaService.swiftHealthProbe/Services/HealthKitService.swiftHealthProbe/Services/ObserverService.swiftHealthProbe/Services/SnapshotLifecycleService.swiftHealthProbe/Utilities/TypeCountArchiveRepair.swiftRetirement path: - make capture persist archive observations first and expose only bridge ids while transition UI still exists; - move operation logging out of SwiftData; - delete legacy record repair once old SwiftData stores are no longer opened; - remove snapshot deletion/repair logic after archive/cache navigation replaces prototype snapshots.
These active surfaces still use @Query, ModelContext, or SwiftData model
types:
HealthProbe/ViewModels/DashboardViewModel.swiftHealthProbe/Views/Dashboard/DashboardView.swiftHealthProbe/Views/DataTypes/DataTypesView.swiftHealthProbe/Views/Snapshots/DataTypeSnapshotDetailView.swiftHealthProbe/Views/Snapshots/SnapshotDetailView.swiftHealthProbe/Views/Snapshots/SnapshotsView.swiftRetirement path:
- replace tab-root @Query snapshot lists with Core Data cache observation
queries plus archive ids;
- replace detail navigation parameters from SwiftData models to observation/type
DTOs;
- remove remaining snapshot/cache SwiftData rows from active flows;
- keep paged record drill-down and export paths on archive APIs.
The following SwiftData dependencies were removed from active flows:
HealthProbe/Services/AnomalyDetector.swiftHealthProbe/Services/IntegrityService.swiftHealthProbe/Models/MetricTimeoutProfile.swift was deleted.HealthProbe/Utilities/LocalMetricTimeoutProfile.swift, a Codable local
store outside ModelContainer.SettingsView, DashboardView, and HealthKitService read/write timeout
calibration through the local store.HealthProbe/Models/DeviceProfile.swift was deleted.HealthProbe/Utilities/LocalDeviceProfile.swift, a Codable local store used
by Settings, Dashboard, Snapshots, and legacy PDF export.HealthProbe/Models/OperationLog.swift was deleted.HealthProbe/Utilities/LocalOperationLog.swift, a bounded Codable local log
outside ModelContainer.HealthProbe/ContentView.swift no longer imports SwiftData; its preview no
longer creates a legacy model container.HealthProbe/Views/Settings/SettingsView.swift no longer imports SwiftData.
Its Data section now reports/rebuilds/deletes the rebuildable Core Data UI
cache and leaves the SQLite archive untouched.HealthProbe/Views/Dashboard/DashboardView.swift no longer queries
HealthSnapshot for status rows; Dashboard status now uses archive/cache rows
only. SwiftData remains there for capture/review actions.HealthProbe/Views/DataTypes/RecordChangeEvolutionChart.swift now accepts a
small RecordChangeEvolutionSnapshot DTO and loads archive/cache counts
without importing SwiftData or querying SnapshotDelta.HealthProbe/ViewModels/DataTypeTemporalDistributionViewModel.swift and
HealthProbe/Views/DataTypes/DataTypeTemporalDistributionView.swift now read
a TemporalDistributionInput DTO backed by TypeCountDetailCache; they no
longer import SwiftData, query timeline snapshots, or require ModelContext.HealthProbe/Views/Snapshots/SnapshotsView.swift no longer queries
SnapshotDelta or runs DeltaService list-summary repair. Timeline change
summaries come from archive/cache rows when available; SwiftData remains there
only for temporary snapshot navigation/deletion handles.HealthProbe/ViewModels/DataTypesViewModel.swift now resolves baselines from
small observation contexts and builds rows from Core Data cache + SQLite
archive diff APIs. It no longer falls back to SnapshotDiffService.diff(...)
over SwiftData TypeCount relationships.HealthProbe/Models/AnomalyRecord.swift,
HealthProbe/Models/AnomalyType.swift, and
HealthProbe/Services/AnomalyDetector.swift were deleted. The app no longer
writes count-drop anomaly rows or shows the old Dashboard anomaly review
section.DashboardView capture review actions away from ModelContext.