Python backend code must be fully typed and async-safe.
Any blocking work must be wrapped through thread/process execution paths as appropriate.
Must pass lint, format, typing, docstring, and test quality gates.
## Parent
#4
## What to build
Update changed tracks from Plex deltas and periodically reconcile stale mismatches.
## Acceptance criteria
- [ ] Incremental sync updates play count/favorite/last played
- [ ] Drift reconciliation detects and fixes divergence
- [ ] Sync job state and lag are observable
## Blocked by
- #21
## Notes
- Python backend code must be fully typed and async-safe.
- Any blocking work must be wrapped through thread/process execution paths as appropriate.
- Must pass lint, format, typing, docstring, and test quality gates.
darkhelm
added this to the v1 Dynamic Realtime Playlist milestone 2026-05-15 17:33:47 -04:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Parent
#4
What to build
Update changed tracks from Plex deltas and periodically reconcile stale mismatches.
Acceptance criteria
Blocked by
Notes