+38
−0
2ndPod/KeychainStore.swift
0 → 100644
+35
−0
+5
−0
Loading
- SyncKit: PodcastSyncProvider protocol with Nextcloud and gpodder.net
implementations (HTTP Basic auth, injectable client). Pull/push subscription
add/remove changes with server timestamps.
- App: SyncSettings (UserDefaults + password in Keychain), SyncView settings
screen, "Synchronisation" sidebar entry, AppModel.syncNow() (pull → apply →
push local subscriptions).
- Scope: subscriptions only. Played/position sync is deferred until local
play-state persistence exists.
38 package tests green; iOS + macOS build; simulators launch clean.
Co-Authored-By:
Claude <claude@anthropic.com>