Migrate the sync file layer onto the IndieSync package
Replaces the app-local copies of the extracted storage core with the IndieSync 0.1.0 package (pinned from the new tag): ICloudFileManager -> DocumentFileStore + TombstoneStore, ICloudFileMonitor -> MetadataObserver (batched events with the content-date churn gate), and the shared ULID / DocumentCoder / Tombstone / VersionedDocument pieces. SyncEngine stays app-specific and is rewired onto the package types; documents rename currentSchema -> currentSchemaVersion to adopt the package protocol. ULID.make() remains as a shim minting the string form the app keys on. Behavior-preserving: identical JSON bytes (same coder config), same stub wire format (kind encodes as the same strings), same soft-delete ordering, same 30-day prune. WorkoutDocument keeps its local-calendar month bucketing rather than adopting TimeBucketedLayout's UTC paths -- changing derivation would strand existing files. The watch target links the package too (ULID + DocumentCoder via Shared); iOS, watchOS, and widget targets all build.
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import IndieSync
|
||||
import Foundation
|
||||
import SwiftData
|
||||
|
||||
@@ -58,7 +59,7 @@ enum SplitSeeder {
|
||||
)
|
||||
}
|
||||
return SplitDocument(
|
||||
schemaVersion: SplitDocument.currentSchema, id: ULID.make(),
|
||||
schemaVersion: SplitDocument.currentSchemaVersion, id: ULID.make(),
|
||||
name: split.name, color: split.color, systemImage: split.icon, order: order,
|
||||
createdAt: Date(), updatedAt: Date(), exercises: exercises,
|
||||
activityType: split.activity.rawValue
|
||||
|
||||
Reference in New Issue
Block a user