Summary #
Add a discover → choose-feed → store flow that writes app.skyreader.subscription
records to the user's PDS (no private DB path; all subscriptions are public).
Feed resolution covers websites (RSS/Atom autodiscovery), YouTube (channel/handle/vanity),
and podcasts; adapters live under app/Services/Feeds/Adapters/.
Polished add-dialog UI: keyboard shortcuts, multi-select, duplicate prevention,
saved-title display, scrollable candidate list.
Also in this branch #
auth: don't log the user out when an OAuth token rotation lands mid-request,
and proactively detect a stale session on page load via EnsureBlueskySession
middleware so the bounce to /login happens before the user clicks anything.
chore(repo): tangled is now the primary remote, GitHub is the auto-mirror;
drop GH workflows and the unused react-best-practices skill.
docs: SPEC updates and a few lexicons/IDEAS.md notes.