Reliability and polish ahead of 1.0.
Backend
- Scan and the background "where to watch" pass no longer clobber each other: enrichment merges into the current report by gap id, so a scan that finishes mid-pass keeps its results and never has to wait.
- Episode watch-target ids carry forward across rescans, avoiding needless re-lookups.
- Catch-all collection creation is serialized so concurrent mints cannot create duplicates.
- Resolve ids and the multi-select mint size are bounded, and skipped gaps are no longer counted as minted.
Dashboard
- Tab counts now reflect the active filters, so they match the per-group totals.
- "Hide items with no sources" hides only titles already looked up and found empty, not ones not yet checked.
- Scroll position, expanded groups, open details, and the selection are preserved across re-renders (resolving a row, changing a filter).
- The provider filter is seeded from the loaded report and gains enable-all and disable-all controls.
- The mint icon is kept after minting, background polls stop after navigating away, and the duplicate Rescan button is hidden when the upgrade banner is shown.