2 Commits

Author SHA1 Message Date
Lawrence Hook 8bd023881d Port dev.sh + release CI from curb; make redirects free (#215)
* 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>
2026-05-06 21:52:28 -04:00
Lawrence Hook 8825666512 Merge the monetization feature branch.
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.
2026-02-15 18:45:37 -05:00