Skip to content

Move watchlist caching to R2 and add Stremio E2E coverage - #44

Merged
leo-mathurin merged 13 commits into
stagingfrom
t3code/evaluate-free-tier-downgrade
Aug 26, 2026
Merged

leo-mathurin merged 13 commits into
stagingfrom
t3code/evaluate-free-tier-downgrade

Conversation

@leo-mathurin

Copy link
Copy Markdown
Owner

Summary

  • Move watchlist cache storage from Supabase tables to gzip-compressed Cloudflare R2 objects.
  • Add cache generation/index handling, deduplication, pagination, and cleanup for deleted users.
  • Add a Playwright/Stremio end-to-end harness with local Supabase and MinIO-backed R2 CI coverage.
  • Update configuration, migrations, documentation, and backend tests for the new cache architecture.

Testing

  • Added backend unit tests covering R2 cache reads/writes, failures, deduplication, cache replacement, catalog pagination, and invalid skip values.
  • Added Playwright E2E coverage for addon APIs, onboarding, configuration, Stremio installation, catalogs, and metadata.
  • CI runs lint, build, unit tests, and the full E2E suite using local Supabase and MinIO.
  • Full local test run: Not run.

github-actions Bot and others added 10 commits June 22, 2026 12:19
release: v1.7.0 — built-in chart catalogs + per-list display mode
- Add Playwright API, UI, and live smoke coverage
- Configure disposable Supabase CI jobs and local test setup
- Update shared Stremio types, tooling, and database schema
- Add local S3-compatible storage setup and cleanup helpers
- Validate cache persistence, pagination, and watchlist removal
@vercel

vercel Bot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
stremlist-backend Ready Ready Preview Aug 26, 2026 4:20pm
stremlist-frontend Ready Ready Preview Aug 26, 2026 4:20pm

Request Review

@greptile-apps

greptile-apps Bot commented Aug 26, 2026

Copy link
Copy Markdown

Greptile Summary

The PR replaces Supabase watchlist-cache tables with gzip-compressed, generation-indexed R2 objects and adds catalog pagination plus end-to-end coverage.

  • Adds conditional cache deletion, stale-manifest recovery, deduplication, and generation-aware reads.
  • Adds Playwright tests backed by local Supabase and MinIO in pull-request CI.
  • Removes obsolete cache tables and updates shared types, configuration, and migration documentation.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
apps/backend/src/services/watchlist-cache.ts Implements generation-based R2 cache reads, writes, stale-manifest recovery, metadata lookup, and conditional tombstone deletion; the previously reported cache races are addressed at current HEAD.
apps/backend/src/routes/catalog.ts Adds validated Stremio skip parsing, 100-item pagination, and no-store response caching.
apps/backend/src/services/user.ts Integrates R2 cache cleanup with watchlist and user deletion flows while isolating cleanup failures.
apps/backend/src/lib/r2.ts Adds lazily initialized S3-compatible client configuration for Cloudflare R2 and local E2E storage.
.github/workflows/ci.yml Adds pull-request E2E execution using local Supabase, MinIO, Playwright browser caching, and failure-report uploads.
supabase/migrations/20260826000000_drop_cache_tables_after_r2.sql Removes the obsolete Supabase cache schema after migration to R2.
apps/e2e/playwright.config.ts Configures the Stremio-focused Playwright harness and local backend integration.

Reviews (4): Last reviewed commit: "fix(cache): refresh stale R2 manifests" | Re-trigger Greptile

Comment thread apps/backend/src/services/watchlist-cache.ts Outdated
Comment thread .github/workflows/ci.yml
@leo-mathurin

Copy link
Copy Markdown
Owner Author

@greptile review

Comment thread apps/backend/src/services/watchlist-cache.ts Outdated
@leo-mathurin

Copy link
Copy Markdown
Owner Author

@greptile review

Comment thread apps/backend/src/services/watchlist-cache.ts Outdated
@leo-mathurin

Copy link
Copy Markdown
Owner Author

@greptile review

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