feat: add themes, release date sorting and navigation fixes - #37
Conversation
Release-Notes: - Added Release Date sorting in Movies and Series, with newest and oldest first across Silo, Emby and Jellyfin. - Added Graphite, Black and Native themes in General settings, retained across updates and applied to launch, profiles and browsing. - Applied the six-media-row Home limit across iOS and tvOS, with a seventh slot reserved for Spotlight even when hidden. - Removed speculative detail and playback loading while browsing Apple TV Home, while retaining the profile Home cache. - Released retired Home poster decodes, preserved artwork when returning from details and warmed neighbouring rows around their remembered card. - Fixed initial focus on the first Apple TV profile and kept the loading logo out of the profile reveal. - Fixed Privacy Policy and Open Source Licences appearing over the About menu on Apple TV. - Fixed downward navigation from a series Resume action selecting the wrong season or episode. - Fixed Emby poster years across Home, Search, Movies, Series and For You when Title & Year is selected. Implemented these changes with Codex as a tool.
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. Warning Review limit reachedNext included review available in 40 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Repository: blurbery/vivid/.coderabbit.yaml Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughThe changes add saved appearance themes, update Home row and artwork handling, adjust tvOS profile and episode focus, add catalogue metadata and sorting, and change tvOS Settings reading-page navigation. ChangesSaved appearance and startup
Home rows and artwork handling
tvOS series episode focus
Catalogue metadata and sorting
tvOS Settings reading pages
Priority: ➖ Normal Estimated code review effort: 4 (Complex) | ~60 minutes Change: Feature Merge Risk: 🟡 Moderate · up to Fix the episode-focus handoff and the Home row editor before merging: one can navigate to the wrong episode, and the other can prevent choosing a replacement Home row. The two documentation corrections are smaller. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The reviewed account and profile switching paths clear prior Home content before loading the next profile, and the Apple TV change reduces the detail data retained in its Home cache. No introduced security issue was established, though review coverage is incomplete. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 20.93% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 43 functions across 40 files. (4 skipped: 4 unsupported.) ✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
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 |
|
@coderabbitai full review Please review all changes, particularly Home artwork residency and cache scope, initial profile focus and startup handoff, theme persistence, the series season/episode entry focus, release-date sorting and Emby poster captions. |
✅ Action performedFull review finished. |
There was a problem hiding this comment.
Actionable comments posted: 4
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository: blurbery/vivid/.coderabbit.yaml
Review profile: ASSERTIVE
Plan: Advanced
Run ID: f350b2be-957a-4138-94b5-37f6f0af3206
📒 Files selected for processing (44)
docs/app-design.mddocs/apple-tv-focus.mddocs/cores/emby.mddocs/server-connections.mdiosApp/iosApp/Components/EpisodeThumbCard.swiftiosApp/iosApp/ContentView.swiftiosApp/iosApp/Downloads/DownloadsView.swiftiosApp/iosApp/Extensions/ViewExtensions.swiftiosApp/iosApp/Networking/EmbyProvider.swiftiosApp/iosApp/Networking/JellyfinProvider.swiftiosApp/iosApp/Screens/Auth/ServerSetupView.swiftiosApp/iosApp/Screens/Browse/Filtering/CatalogSortKey.swiftiosApp/iosApp/Screens/Browse/LibrariesTabView.swiftiosApp/iosApp/Screens/Detail/ItemDetailView.swiftiosApp/iosApp/Screens/Detail/Phone/PhoneDetailHero.swiftiosApp/iosApp/Screens/Home/HomeView.swiftiosApp/iosApp/Screens/Home/HomeViewModel.swiftiosApp/iosApp/Screens/Home/SectionRow.swiftiosApp/iosApp/Screens/Profiles/ProfileSelectionView.swiftiosApp/iosApp/Screens/Profiles/ProfileTile.swiftiosApp/iosApp/Screens/Recommendations/RecommendationsView.swiftiosApp/iosApp/Screens/Search/SearchView.swiftiosApp/iosApp/Screens/Settings/AboutSettingsView.swiftiosApp/iosApp/Screens/Settings/GeneralSettingsView.swiftiosApp/iosApp/Screens/Settings/IOSSettingsOverview.swiftiosApp/iosApp/Screens/Settings/InterfaceCustomizationView.swiftiosApp/iosApp/Screens/Settings/OpenSourceAcknowledgementsView.swiftiosApp/iosApp/Screens/Settings/SettingsBackdrop.swiftiosApp/iosApp/Screens/Settings/SettingsPageHeader.swiftiosApp/iosApp/Theme/VividAppTheme.swiftiosApp/iosApp/tvOS/Caching/CachedAsyncImage.swiftiosApp/iosApp/tvOS/Caching/TVHomeMetadataCache.swiftiosApp/iosApp/tvOS/Components/TVFocusMarquee.swiftiosApp/iosApp/tvOS/Components/TVHomeDiscoveryFeed.swiftiosApp/iosApp/tvOS/Components/VividCollectionMediaRow.swiftiosApp/iosApp/tvOS/Components/VividStartupView.swiftiosApp/iosApp/tvOS/Profiles/TVLoginPreparation.swiftiosApp/iosApp/tvOS/Profiles/TVSavedAccountViews.swiftiosApp/iosApp/tvOS/Screens/Components/TVProfileTile.swiftiosApp/iosApp/tvOS/Screens/Detail/TVEpisodeRail.swiftiosApp/iosApp/tvOS/Screens/Detail/TVSeriesDetailView.swiftiosApp/iosApp/tvOS/Screens/Settings/TVGeneralSettingsView.swiftiosApp/iosApp/tvOS/Screens/Settings/TVSettingsComponents.swiftiosApp/iosApp/tvOS/Screens/Settings/TVSettingsView.swift
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.
Release-Notes: - Fixed empty Home rows disappearing from the settings editor while still using a row slot, so they can be hidden on iOS and tvOS. Keep the tested series-entry focus behaviour. Correct the documented tvOS provider refresh intervals and heading spacing. Implemented these changes with Codex as a tool.
|
Reviewed all four findings against the implementation: fixed the empty-row settings issue on both platforms and the two documentation issues; retained the tested episode-focus handler with the call-site rationale in its thread. I am not adding blanket docstrings or generated tests solely to meet the bot coverage suggestion. The relevant behaviour is documented, and the repository guidance keeps UI changes and tests scoped. The original PR revision passed both iOS tests and the tvOS build. The small follow-up passed Swift compiler parsing and focused source/whitespace checks; CI for ff83cf2 is pending. No new device build has been installed. |
|
@coderabbitai review changes |
|
🧠 Learnings used
|
Problem and reproduction
Implementation and impact
Validation
c0b1ba0withxcodebuild -project iosApp/Vivid.xcodeproj -scheme VividTV -configuration Release -destination 'generic/platform=tvOS' CURRENT_PROJECT_VERSION=57 MARKETING_VERSION=0.14.3 build, using the existing signing configuration and incremental caches.codesign --verify --deep --strict; installed version 0.14.3 (57) was read back successfully.git diff --cached --checkpassed before committing.ff83cf2passed Swift compiler parsing, focused source checks of both cached/fetched editor paths, and whitespace checks. CI passed both iOS tests and the tvOS build for this revision; it has not received a new device installation.Performance
Testing status
c0b1ba0356e990883bd620d4f7e87a0be9be4f2a.Design impact and approval
Documentation impact
AI disclosure
Implemented these changes with Codex as a tool.