Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (11)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe change adds source-aware library collection routes, passes complete collection objects through Android navigation, and preserves library scope across collection API requests, cursor pagination, and detail loading. Tests cover user library, regular library, and personal collection behavior. ChangesLibrary collection scoping
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Bug fix Sequence Diagram(s)sequenceDiagram
participant LibraryCollectionsScreen
participant MainScreen
participant CollectionDetailViewModel
participant CollectionRepository
participant CollectionApi
LibraryCollectionsScreen->>MainScreen: pass LibraryCollection and libraryId
MainScreen->>CollectionDetailViewModel: navigate with source and libraryId
CollectionDetailViewModel->>CollectionRepository: load scoped collection items
CollectionRepository->>CollectionApi: request items with library_id
CollectionApi-->>CollectionDetailViewModel: return items and scoped continuation
Suggested reviewers: Merge Risk: ⚪ Minimal · up to No merge-blocking issue was identified in the scoped collection routing changes. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 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 |
|
Opening a personal collection published in a library's Collections tab failed because the phone client treated every card as a server-managed library collection. The resulting catalog request used the wrong source and returned
Catalog source not found.This change carries each card's collection kind into the detail route. Library-managed cards use
library_collection, while published personal cards useuser_collection. The detail view model keeps library collections read-only, preserves the selected library for item navigation, and uses the matching repository for initial loading, retry, refresh, and pagination. Legacy library routes and unscoped personal collection routes keep their existing behavior.Library-scoped personal collection requests now include
library_id. The opaque continuation records that scope and rejects reuse under a different library before sending a request.Validation
./gradlew test— passed across shared, phone, and TV modules with Android Studio's bundled JDK 21 and an English locale./gradlew :shared:testDebugUnitTest :androidApp:testDebugUnitTest :androidApp:assembleDebug— passedRisk and follow-up
The new route argument is optional, so saved or legacy library routes still default to
library_collection. Personal collection routes without a library remain manageable and omitlibrary_id. No server, Apple client, Android TV behavior, or visual design changes are included.Related issue: N/A — narrow fix
AI disclosure
gpt-6-astrawith medium reasoning reviewed the complete change for route compatibility, repository selection, library scoping, management permissions, and pagination. It found that library-scoped personal collection requests omittedlibrary_id; the implementation and regression tests were updated to preserve that scope and bind it to the continuation. No other introduced defects were reported.Summary by CodeRabbit
New Features
Bug Fixes
Tests