92a9b55c12
Audit v2 #22. LibraryRepository.shuffleLibrary wraps the existing LibraryApi.shuffleLibrary endpoint; LibraryViewModel.shuffleAll fires PlayerController.setQueue with the response. LibraryScreen's TopAppBar gains a Lucide.Shuffle IconButton to the left of the existing MainAppBarActions row. Offline-fallback (client-side shuffle over the local cache index) is part of the larger Connectivity slice (audit #21) and not wired in this commit — pressing Shuffle when offline just fails silently for now. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>