feat(ui): add option to display 4K availability on title cards - #3404
feat(ui): add option to display 4K availability on title cards#3404supatuck wants to merge 1 commit into
Conversation
Adds an opt-in main setting, merge4kAvailability, off by default. When enabled, a title whose standard version is unknown or deleted but whose 4K version is available or partially available shows the availability check on discover cards, with the 4K tag on the badge. The merge only applies for users who could see the 4K status anyway: it requires 4K to be enabled for that media type and the user to hold a matching 4K request permission or Manage Requests. Detail pages already show a separate 4K badge and are unchanged. Users who keep the setting off see no behavior change. Motivation: on libraries where HD copies are routinely replaced by 4K upgrades, cards for owned titles show no availability at a glance. Related discussions: seerr-team#367, seerr-team#1744
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (13)
Included review availability: Your plan includes up to 10 reviews per rolling hour; 9 remain after this review. 📝 WalkthroughWalkthroughThe PR adds the Changes4K availability merging
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to This opt-in change adds 4K availability indicators to title cards without altering existing behavior when disabled; no actionable merge-blocking risk remains after normal checks and review. Sequence Diagram(s)sequenceDiagram
participant SettingsContext
participant TitleCard
participant StatusBadgeMini
SettingsContext->>TitleCard: provide merge4kAvailability
TitleCard->>TitleCard: evaluate status4k, regular status, and permissions
TitleCard->>StatusBadgeMini: pass computed status and is4k
Possibly related PRs
Suggested labels: Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Closing this as duplicate work that ignores an active design discussion. #1744 is about backend availability detection for setups running separate 4K and non-4K Radarr/Sonarr instances, specifically the scanner conflating a 4K-deleted title with available when no non-4K file exists. It already has an open fix attached to it, #2227 (opened by me). It has nothing to do with a frontend toggle for merging 4K status onto title cards. That link makes absolutely zero sense here. In addition, this overlaps with #3060, which already adds 4K availability display on title cards, a separate 4K request button, and detail page badge changes, which is the same area this PR is touching. That PR has been open since May. I reviewed it myself and asked the author to convert it to draft and open a design discussion first because we wanted to agree on the design that aligns with the design language intended for Seerr by the team before more code was written. That discussion is #3158. It has been running for two months with input from multiple users on what the quality and availability model should actually look like. You also didn't check the existing PR or design discussion before opening this. The disclosure says the implementation and description were AI drafted and reviewed by you, but reviewing your own diff doesn't tell you whether someone is already working on the same feature. Checking open PRs and discussions before starting implementation is a basic five-minute step, not some deep review process. Second, the disclosure itself is a problem independent of the duplication itself. It says the implementation and the PR description were AI drafted and that you reviewed it. Per our AI Assistance Notice, that is AI-driven development, not AI-assisted, and disclosing it plainly does not move it into the other category. Reviewing and running AI-drafted output on your own instance is not the same as writing and understanding it. The missed duplicate and irrelevant issue link are exactly the sort of things someone doing their own research before starting would have caught. You don't catch that by reviewing the diff after the fact. Closing this on both counts. If you want to contribute to this feature area, #3158 is where the design is being discussed and #3060 is the PR carrying the implementation forward. Going forward, disclosed AI-driven implementations get closed the same as undisclosed ones. Disclosure only affects how much scrutiny we apply, not the outcome. |
Description
Adds an opt-in setting under Settings -> General: "Display 4K Availability on Title Cards" (
merge4kAvailability, default off).When enabled, a title whose standard status is Unknown or Deleted but whose 4K status is Available or Partially Available shows the availability indicator on discover, search, and list cards, with the 4K tag on the badge. The merge only applies to users who can already see 4K status: 4K must be enabled for that media type, and the user needs Manage Requests or a matching 4K request permission. Detail pages are unchanged, as they already render a separate 4K badge.
Motivation: on servers where HD copies are replaced by 4K upgrades over time, owned titles read as unowned at a glance on cards. Related to #367 (the inverse complaint, which is why this is opt-in and permission gated) and #1744.
AI disclosure: this change was developed with substantial AI assistance (the implementation and this text were AI drafted). I reviewed it and have been running it on my own Jellyfin based instance.
How Has This Been Tested?
Built the Docker image from this branch and ran it against a live library (about 850 items, mixed HD and 4K, separate standard and 4K Radarr and Sonarr instances). Verified that 4K-only titles show the availability badge with the 4K tag when the setting is on and the user has 4K permissions, that behavior is unchanged with the setting off, and that the setting persists. The production build and type checks pass.
Screenshots / Logs (if applicable)
Checklist:
Summary by CodeRabbit