Skip to content

feat(library): make server-side caching invisible; offline is the only save#52

Merged
windoze95 merged 1 commit into
mainfrom
feature/invisible-caching
Jun 29, 2026
Merged

feat(library): make server-side caching invisible; offline is the only save#52
windoze95 merged 1 commit into
mainfrom
feature/invisible-caching

Conversation

@windoze95

Copy link
Copy Markdown
Owner

What

Client side of the invisible-caching redesign (backend: windoze95/nullfeed-backend#90). There's no longer a user-facing "download/collection" — episodes just play (cached or not), and the only deliberate per-video save is "save offline to device."

Changes

  • video_list_tile — removed the cataloged "Download to server" button, the failed "retry", and the server downloading/pending progress+cancel badge. The only trailing affordance is the offline save/saving/saved state, and only for a cached (COMPLETE) video; un-cached episodes show nothing (caching is invisible). Dropped the onDownload / onCancel / downloadProgress params.
  • channel_detail — every episode is tap-to-play now (an un-cached one starts via instant-stream); removed the download handler, the "Re-download" menu item, the optimistic-pending set, and the 5s download-status polling.
  • downloads_screen → "Offline" — dropped the server-downloads section, activeDownloadsProvider, and its polling; only on-device saves remain. Bottom-nav tab relabeled "Offline".
  • websocket_providerdownload_progress is now a no-op (caching is invisible); download_complete still refreshes feeds + drives auto-offline.
  • Removed now-unused api_service.downloadVideo / getActiveDownloads / cancelDownload and the download_progress_provider.

Kept

"Save for offline" (cloud icon), the offline indicator, watch-later, continue-watching. The "Remove from library" per-video action is left as-is for now (it's a removal action, not a download — flagged for a follow-up decision).

Verification

dart format clean, flutter analyze --fatal-infos --fatal-warnings → No issues, flutter test156 passed.

🤖 Generated with Claude Code

…y save

Reframes the UI to match the model: there's no user-facing "download/
collection". Episodes just play (cached or not); the only deliberate per-video
save is "save offline to device".

- video_list_tile: drop the cataloged "Download to server" button, the failed
  "retry", and the server downloading/pending progress+cancel badge. The only
  trailing affordance is the offline save/saving/saved state, and only for a
  cached (COMPLETE) video. Un-cached episodes show nothing (invisible caching).
  Removed onDownload/onCancel/downloadProgress params.
- channel_detail: every episode is tap-to-play now (un-cached starts via
  instant-stream); removed the download handler, "Re-download" menu item, the
  optimistic-pending set and the 5s download-status polling.
- downloads_screen -> "Offline": dropped the server-downloads section,
  activeDownloadsProvider and its polling; only on-device saves remain. Bottom
  nav tab relabeled "Offline".
- websocket_provider: download_progress is now a no-op (caching is invisible);
  download_complete still refreshes feeds + drives auto-offline.
- Removed now-unused api_service.downloadVideo/getActiveDownloads/cancelDownload
  and the download_progress_provider.

Tests updated (a11y: offline label + un-cached shows no caching status). 156
passed; analyze + format clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@windoze95 windoze95 merged commit f0223e5 into main Jun 29, 2026
6 checks passed
@windoze95 windoze95 deleted the feature/invisible-caching branch June 29, 2026 04:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant