fix(offline): default cover sync scope to dashboard libraries#931
Conversation
Initialize the missing-cover sync library scope from the current dashboard library selection when opening Offline Tasks. Pass the scope explicitly through the cover sync section so the selected libraries shown in the picker match the IDs used when starting the sync.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: abb67ce733
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Apply the dashboard default scope only while the cover sync scope has not been manually changed for the current instance. Refresh the scope loader when dashboard library defaults change so late-loaded server selection can initialize the picker without clobbering manual choices.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d450766c90
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Load existing cover thumbnail ids once before the missing-cover sync loop and skip per-target filesystem checks for cached covers. Throttle cached progress updates while keeping missing downloads on the existing ThumbnailCache path for cache limit checks, deduplication, storage, and cleanup.
Ignore cancelled or stale cover sync scope loads before applying dashboard defaults. Avoid treating unchanged picker applies as manual selection, and keep the sync action disabled until the current library scope has finished loading.
Remove the loaded and pending scope task key state from the cover sync view model. Rely on SwiftUI task cancellation checks during scope loading and fall back to the dashboard default library ids if sync starts before scoped options finish loading.
Throttle cached cover sync progress by elapsed time instead of target count so fast cached scans do not flood MainActor updates.
Summary
make bump.Validation
make formatgit diff --checkmake build-macosgit diff --check origin/main...HEAD