Hotfix for UI stalls when multiple provider syncs and EPG updates are started manually.
- Queue manual provider syncs and EPG updates durably, including Update all. Show waiting, running and completed results; retain queued jobs across reloads and restarts.
- Enforce the provider-sync concurrency limit across workers and use short SQLite waits for lock bookkeeping.
- Invalidate player-channel and EPG-logo caches across HTTP workers after updates.
- Coordinate queued and scheduled EPG imports with per-source locks. A blocked EPG follow-up does not repeat an already completed catalog sync.
- Recheck administrator sessions, ownership and grants before queued work runs. Preserve existing data, mappings and credentials.
Includes PR #631. The final Codex review reported no further findings. Validation passed 1,551 tests across 149 files, lint, build, dependency audits and both Docker smoke tests; local Playwright smoke and public JavaScript/template checks also passed.
Queued jobs run one at a time. An interrupted running job is reported as failed after its 15-minute lease expires and is not replayed automatically; review its sync log before retrying. Real production-load responsiveness should be checked after updating.
Container: ghcr.io/bladestar2105/iptv-manager:latest
Release commit: 2ac4d5c712c20fe4a0e5a5e46ed02553f71dc5a8.
Immutable image: ghcr.io/bladestar2105/iptv-manager@sha256:1c2f3af5b47767b7ba0ca2ae0af2ec0290779bdc3e1bb6091888bd9661dea4d7.