+89
−5
+17
−1
Loading
- PlayState model + StorageKit playstate table (migration v3): save/read
position and played flag, batch fetch, lookup by enclosure URL, and a join
(EpisodeProgress) for sync.
- Playback: resume from saved position (PlaybackController.startAt); persist
position every 10s while playing; mark played on finish.
- App: manual mark played/unplayed, "Lu"/resume indicators in episode rows.
- SyncKit: EpisodeAction API on both providers; syncNow now also pushes local
play progress and applies remote play positions (separate timestamp).
45 package tests green; iOS + macOS build; simulators launch clean.
Co-Authored-By:
Claude <claude@anthropic.com>