// User-facing release notes. One entry per released version, newest first. The end-of-line // `sha` is the repo commit the release was cut from (our stand-in for an issue/ticket ref); // it's attached when the version is tagged. `chores` are internal and hidden from the public // Release Notes dialog by default. export interface ReleaseEntry { version: string; date: string; // ISO date (YYYY-MM-DD) sha?: string; // short commit the release was tagged from summary?: string; features?: string[]; fixes?: string[]; chores?: string[]; } export const RELEASE_NOTES: ReleaseEntry[] = [ { version: "0.2.0", date: "2026-06-15", summary: "Browse beyond your own subscriptions, and a much smarter filter sidebar.", features: [ "Shared library: a new Mine / Library switch in the header lets you browse every channel the community has added — not just your own subscriptions — and even works without granting YouTube access. Your watch, save and hide state always stays private to you.", "Smarter filter chips: topic and language chips now show live counts for your current view and hide the ones that no longer match anything, so narrowing down is quicker. Chips are ordered by size, and topics have a clear Any / All match toggle (All = channels that have all the selected topics).", "“Surprise me” ordering now has a reshuffle button to reroll the order, and the topic/language chips show how many channels fall under each.", "Share a view: copy a link that reproduces your current filters. Filters are otherwise no longer kept in the address bar.", ], fixes: [ "The channel manager now tells apart a full-history backfill you requested from one another member already queued, and the header shows “fetching history” while the back-catalogue is still downloading instead of claiming everything is synced.", ], }, { version: "0.1.0", date: "2026-06-15", // sha filled in when v0.1.0 is tagged at release time. summary: "First release: a self-hosted, multi-user reader for your own YouTube subscriptions — " + "fast local-first feed with rich filtering, in-app playback with resume, and channel management.", features: [ "Multi-user feed of your own YouTube subscriptions: invite-only Google sign-in, per-user watch/save/hide state, encrypted token storage.", "Ingest: subscription import, free RSS new-video detection, recent-first and full-history backfill, metadata enrichment (duration, views, category, Shorts & livestream classification), a shared daily API-quota guard, and a background scheduler.", "Automatic tagging: system tags for channel language and topic (your own tags are never overwritten).", "Reader UI: grid/list feed scoped to your subscriptions; faceted tag filters, content-type toggles (Normal / Shorts / Live), date range, search and sort; four colour schemes (dark/light) with adjustable text size.", "In-app player: a modal YouTube player that resumes where you left off, auto-marks watched near the end, and turns description timestamps and links into clickable seeks.", "Watch progress: a resume progress bar on video cards, Continue / Restart buttons, and an “In progress” feed filter — your position is saved server-side, so it follows you across devices.", "Channel manager: per-channel priority, hide, personal tags, sync badges, and per-channel full-history opt-in.", "Header status: your video count vs. the whole catalogue, sync progress, and (for admins) a pause control; onboarding wizard; notification centre; admin usage & quota stats.", "Multilingual interface — switch between English, Hungarian and German; your choice is saved to your account and the default is guessed from your Google locale.", "About dialog and this Release Notes view, with a heads-up banner when a new version ships.", ], fixes: [ "Backfill no longer skips the band of videos sitting on the 365-day boundary page.", "A channel whose full catalogue is already stored is no longer stuck showing “needs full history”.", ], chores: [ "Public-readiness repo hygiene: internal planning/infra details removed, build stamped with version/commit.", ], }, ]; export const CURRENT_VERSION = RELEASE_NOTES[0]?.version ?? "dev";