8a6c926ea7
Splits the previous LikedIdsController into two: - likedIdsProvider — StreamProvider reading from cached_likes via drift watch(). Reactive: SyncController writes propagate automatically. Empty + online triggers REST cold-cache fallback that populates cached_likes via insertOrIgnore (sync may have already written some rows). - likesControllerProvider (new) — exposes toggle(LikeKind, id). Optimistic: writes drift first (UI updates instantly via the watch stream), then REST. Rolls back drift on REST failure. Two consumer updates: like_button.dart + track_actions_sheet.dart switch from likedIdsProvider.notifier.toggle to likesControllerProvider.toggle. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>