* Port dev.sh + release CI from curb; make redirects free
dev.sh runs Firefox via web-ext from src/ and Chrome from a dist/chrome/
symlink tree. The two manifests live at different paths, so both browsers
can run side-by-side without clobbering each other's manifest.json. Edits
in src/ propagate live to both.
release.yml builds Chrome + Firefox zips on tag push (v*) and attaches
them to a GitHub Release, retiring the manual extension.zip workflow.
The four redirect-home options (redirect_to_subs / _to_wl / _to_library /
_off) drop the premium flag — they're advertised on the store listings,
so it feels right to have them free.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Trim dev section in README to just the commands
Cut the rationale paragraphs (symlink trick, manifest clobbering); anyone
needing that detail can read dev.sh.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Sync dist/chrome with rsync instead of symlinks
Chrome's content-script loader silently rejects scripts whose realpath is
outside the extension directory. The popup loaded fine through symlinks
but content scripts on YouTube never injected (no Chrome error, just
nothing). Real file copies sidestep the realpath check. Trade-off: re-run
dev.sh chrome and click reload after edits.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* Fix redirect-to-Library URL after YouTube renamed Library to You
YouTube renamed the Library section to "You" and moved its URL from
/feed/library to /feed/you. The redirect option silently broke.
Fixes#123
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add RYS Premium subscription system
Introduce optional paid tier with sign-in, Stripe billing, and premium
feature gating. Core features remain free. Includes Node.js server for
auth, payments, and license management.
Extension changes:
- Sign-in flow with magic link email
- Premium/upgrade/account modals with branded UI
- Premium feature gating (60+ advanced settings)
- Password lock and scheduling (premium)
- Fix "hide all but first row" for YouTube's new flat homepage DOM
- Hide sidebar ad panels by default
- Enable "Hide all Shorts" by default
Server:
- Magic link auth with rate limiting
- Stripe checkout, webhooks, and billing portal
- JWT-based license tokens
- AWS SES transactional emails (welcome, sign-in, cancellation)
- Grandfathered donor support
Also adds CI workflow, server test suite, and extension unit tests.