Description
Discovery releases can have a release_date set to a future date (e.g. pre-orders on Bandcamp, scheduled releases on SoundCloud). Currently, there is no visual distinction between released and unreleased items in the discovery view.
This feature has two parts:
1. Visual indicator for unreleased releases
When a discovery release has a release_date in the future, it should be clearly marked in the UI so the user knows the release isn't available yet. This could be:
- A badge or tag (e.g. "Upcoming" or "Pre-release") on the release row or card
- A different text color or style for the release date column
- A small icon next to the release date
The indicator should disappear automatically once the release date has passed (i.e. compare against the current date at render time).
2. Release day notifications
Allow users to opt into notifications for unreleased discovery releases so they are reminded when the release becomes available. This could include:
- A "Notify me" action on unreleased releases (e.g. context menu item or bell icon)
- A background check that runs on app launch (or periodically) comparing tracked release dates against the current date
- A native macOS notification (via Tauri notification plugin) when a tracked release's date arrives
- A section or filter in the discovery view to see all upcoming/tracked releases
Technical considerations
- The
release_date field is already stored as an Option<String> on DiscoveryRelease β date comparison logic will need to parse this string (format varies by source)
- Notification tracking likely needs a new DB column or table (e.g.
discovery_release_notifications or a boolean notify_on_release column)
- Tauri's
notification plugin would need to be added to capabilities for native OS notifications
- Consider timezone handling for release dates (Bandcamp uses midnight in the artist's timezone)
Open questions
- What visual treatment works best for the "upcoming" indicator β badge, icon, color, or a combination?
- Should the notification feature be per-release opt-in, or should there be a global setting to auto-notify for all unreleased releases in the user's discovery list?
- What notification mechanism is preferred β native OS notifications, in-app toast on launch, or both?
- How should we handle releases where the date format is ambiguous or only includes a month/year?
- Should there be a dedicated "Upcoming" filter or smart list in the discovery view?
Acceptance criteria
- Unreleased discovery releases (future
release_date) are visually distinguishable from released ones in the discovery view
- Users can opt into being notified when a specific unreleased release becomes available
- On app launch (or periodically), the app checks for newly released tracked items and delivers a notification
- Notifications are delivered via native OS notification
- The upcoming indicator updates automatically without requiring a manual refresh
Tasks
TBD
Description
Discovery releases can have a
release_dateset to a future date (e.g. pre-orders on Bandcamp, scheduled releases on SoundCloud). Currently, there is no visual distinction between released and unreleased items in the discovery view.This feature has two parts:
1. Visual indicator for unreleased releases
When a discovery release has a
release_datein the future, it should be clearly marked in the UI so the user knows the release isn't available yet. This could be:The indicator should disappear automatically once the release date has passed (i.e. compare against the current date at render time).
2. Release day notifications
Allow users to opt into notifications for unreleased discovery releases so they are reminded when the release becomes available. This could include:
Technical considerations
release_datefield is already stored as anOption<String>onDiscoveryReleaseβ date comparison logic will need to parse this string (format varies by source)discovery_release_notificationsor a booleannotify_on_releasecolumn)notificationplugin would need to be added to capabilities for native OS notificationsOpen questions
Acceptance criteria
release_date) are visually distinguishable from released ones in the discovery viewTasks
TBD