b466b6494a
Three small parity gaps in _HiddenTab vs the web /library/hidden page: - No unhide affordance — once a track was flagged via the kebab, the only way to reverse it was to find the track in another surface and toggle via the kebab again. Added an Icons.restore IconButton on each tile that calls myQuarantineProvider.notifier.unflag(trackId) (the optimistic remove-with-rollback already lived on the notifier). - No album cover art — added a 56px ServerImage thumb matching the web page's 14×14 thumb, with the same fs.slate fallback compact_track_card uses for missing covers. - No relative timestamp — appended _relativeTime(row.createdAt) next to the reason pill so the user can tell "I hid this 3d ago" at a glance. Also collapsed the duplicate provider: _HiddenTab was watching a local FutureProvider that didn't see flag/unflag mutations, while the kebab's HideTrackSheet flow goes through the canonical myQuarantineProvider (AsyncNotifier). Switched _HiddenTab to watch myQuarantineProvider so flag-from-anywhere and unhide-from-the-tab stay in sync. The local _quarantineProvider was deleted; one source of truth now. Caught during the #375 DRY audit cross-check against the #356 inventory. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>