Commit graph

  • 74491991d7 fix(ui): opaque .glass-menu for floating popovers (readability) npeter83 2026-06-16 01:39:56 +02:00
  • 0adc1104a3 fix(ui): restore glass opacity in dark mode (account popover readability) npeter83 2026-06-16 01:34:25 +02:00
  • 7b2d4dfb78 Merge feature/n2-back-history: in-app Back/Forward navigation (Epic N, N2) npeter83 2026-06-16 01:27:49 +02:00
  • 250c1da214 feat(nav): N2 — browser Back navigates in-app, not to OAuth npeter83 2026-06-16 01:27:49 +02:00
  • 36c7a649ab feat(ui): stronger ambient + more translucent glass in dark mode npeter83 2026-06-16 01:20:40 +02:00
  • 67e518f7ef Merge feature/glassmorphism-phase1: frosted glass on nav, header, dialogs npeter83 2026-06-16 01:11:50 +02:00
  • d46be00d47 feat(ui): glassmorphism phase 1 — frost the app chrome npeter83 2026-06-16 01:11:50 +02:00
  • 2d54167afd Merge feature/n1b-settings-page: Settings as a left-nav page (Design B) npeter83 2026-06-16 01:05:05 +02:00
  • d30dc7f760 feat(nav): Settings as a page module (Design B) npeter83 2026-06-16 01:05:05 +02:00
  • 7b1fc02c68 Merge feature/n1-nav-shell: collapsible left navigation (Epic N, N1) npeter83 2026-06-16 00:42:23 +02:00
  • 4a80ea5aa5 feat(nav): N1 — collapsible left nav sidebar (Design C) npeter83 2026-06-16 00:42:23 +02:00
  • 424e820276 Merge: promote dev to prod npeter83 2026-06-16 00:17:10 +02:00
  • 3143d1c1db chore(release): v0.3.0 — playlists + YouTube two-way sync npeter83 2026-06-16 00:16:59 +02:00
  • 993e6ba7d5 fix(playlists): dirty lagged one edit (flush before fingerprinting) npeter83 2026-06-16 00:11:58 +02:00
  • 7a547d40fe Merge feature/playlist-fingerprint-dirty: fingerprint-derived dirty state npeter83 2026-06-15 23:00:56 +02:00
  • 6330ac3184 feat(playlists): derive dirty from a synced-state fingerprint npeter83 2026-06-15 23:00:56 +02:00
  • a2ad555ef3 fix(playlists): show Reset/Unsynced right after a reorder npeter83 2026-06-15 22:44:57 +02:00
  • f6e662ff14 Merge improvement/playlist-header-polish: tidy playlist detail header npeter83 2026-06-15 22:40:21 +02:00
  • 17bbb05593 polish(playlists): compact header actions + open-on-YouTube link npeter83 2026-06-15 22:40:21 +02:00
  • 55d476c0b7 Merge feature/playlist-revert-youtube: reset playlist to YouTube state npeter83 2026-06-15 22:28:16 +02:00
  • 55833d8f72 feat(playlists): reset a playlist to its YouTube state (discard local edits) npeter83 2026-06-15 22:28:16 +02:00
  • 380ad39ad4 fix(playlists): don't drop the restored selection during initial load npeter83 2026-06-15 22:19:05 +02:00
  • c1d43d8961 Merge improvement/playlist-rail-sort: rail sorting + persisted selection npeter83 2026-06-15 22:13:39 +02:00
  • a00779a1c9 feat(playlists): rail sorting, consolidated item sort, persist selection npeter83 2026-06-15 22:13:32 +02:00
  • 156e10235e Merge feature/s4e-playlist-sort-undo: playlist sort + reusable undo/redo npeter83 2026-06-15 21:52:35 +02:00
  • 40c0cbfc5a feat(playlists): sort + group-by-channel with reusable undo/redo npeter83 2026-06-15 21:52:28 +02:00
  • 1ddeac57cd Merge improvement/s4d-editable-mirrors: editable YouTube playlist mirrors npeter83 2026-06-15 21:40:20 +02:00
  • 9acea11010 feat(playlists): make YouTube-mirrored playlists editable + syncable npeter83 2026-06-15 21:40:13 +02:00
  • 49d226126c Merge feature/s4d-youtube-playlist-push: YouTube playlist write-back npeter83 2026-06-15 21:23:31 +02:00
  • 8911e9dc89 feat(playlists): Sync to YouTube UI + delete-on-YouTube choice npeter83 2026-06-15 21:23:13 +02:00
  • b150337c87 feat(playlists): push local playlists to YouTube (export + diff sync) npeter83 2026-06-15 21:23:02 +02:00
  • b7bf6cc6f9 feat(playlists): YouTube write API client methods npeter83 2026-06-15 21:22:51 +02:00
  • 35831dc3ce Merge feature/s4c-youtube-playlist-pull: YouTube playlist read-sync npeter83 2026-06-15 21:02:49 +02:00
  • 29696c549c fix(notifications): use the success level for success toasts npeter83 2026-06-15 19:46:37 +02:00
  • 84b56de21e feat(playlists): YouTube-mirrored playlists in the UI (read-only) + sync button npeter83 2026-06-15 19:37:17 +02:00
  • a661d079ee feat(playlists): YouTube playlist read-sync (backend) npeter83 2026-06-15 19:37:03 +02:00
  • 9c28a75787 Merge feature/s4b-watch-later-queue: Watch later unification + queue playback npeter83 2026-06-15 17:04:36 +02:00
  • 4ff0b9705c fix(header): keep the sync-status count live (focus refetch + background poll) npeter83 2026-06-15 17:00:06 +02:00
  • ddb1890e84 feat(playlists): keep the player queue live across tabs npeter83 2026-06-15 16:27:28 +02:00
  • 4689d2cbbd feat(playlists): queue playback in the player (auto-advance + prev/next) npeter83 2026-06-15 16:11:37 +02:00
  • dea740b728 feat(playlists): unify Saved into a built-in Watch later playlist npeter83 2026-06-15 15:33:53 +02:00
  • 47bad6d9ce Merge fix/playlist-detail-invalidation: live playlist detail after popover add npeter83 2026-06-15 15:20:28 +02:00
  • ef11c6c605 fix(playlists): refresh playlist detail after add/remove from the feed popover npeter83 2026-06-15 15:20:28 +02:00
  • a6a0c429d5 Merge feature/s4a-playlists-foundation: local playlists foundation npeter83 2026-06-15 15:17:35 +02:00
  • 4ed52cd244 fix(playlists): correctly clear/reselect after deleting a playlist npeter83 2026-06-15 15:15:56 +02:00
  • 48cb11434d feat(ui): reusable app-styled confirm dialog, replacing window.confirm npeter83 2026-06-15 15:06:47 +02:00
  • 50bc35d78f fix(nav): persist the current page across reloads npeter83 2026-06-15 14:59:24 +02:00
  • d7fc237d66 fix(playlists): clear the detail panel after deleting the selected playlist npeter83 2026-06-15 14:56:39 +02:00
  • fb5a2f1ed2 fix(playlists): flip the add-to-playlist popover up when it would overflow npeter83 2026-06-15 14:52:57 +02:00
  • 40a44cdde2 feat(playlists): frontend foundation — page, add-to-playlist, nav npeter83 2026-06-15 14:45:18 +02:00
  • bf769379cb feat(playlists): backend foundation — model, migration, CRUD API npeter83 2026-06-15 14:37:09 +02:00
  • ff1d36238f Merge: promote dev to prod npeter83 2026-06-15 13:58:34 +02:00
  • dcb1605cc7 Merge chore/release-0.2.0: version bump + release notes npeter83 2026-06-15 13:58:22 +02:00
  • 34c41f7a41 chore(release): 0.2.0 — shared library, dynamic facets, share view npeter83 2026-06-15 13:58:22 +02:00
  • c69d02d01a Merge feature/s3b-deurl-filter-state: de-URL filter state + share-view link npeter83 2026-06-15 12:30:17 +02:00
  • e18be73d46 feat(filters): "Share view" link button in the sidebar npeter83 2026-06-15 12:29:51 +02:00
  • 3e90fe2e5b refactor(filters): stop mirroring filters into the URL; localStorage is canonical npeter83 2026-06-15 12:29:43 +02:00
  • 581719401e Merge feature/s3-dynamic-facets: dynamic faceted filter chips npeter83 2026-06-15 12:25:10 +02:00
  • aa4b069567 feat(filters): make the topic Any/All match toggle prominent npeter83 2026-06-15 12:20:17 +02:00
  • 64911e3c4d fix(feed): conjunctive facet counts when topic match mode is AND npeter83 2026-06-15 12:20:08 +02:00
  • 5656875a07 feat(filters): sort facet chips by count, then name npeter83 2026-06-15 12:10:09 +02:00
  • 79f53ccf59 feat(filters): dynamic faceted chips driven by /api/facets npeter83 2026-06-15 12:06:02 +02:00
  • 79e7694b24 feat(feed): /api/facets endpoint for contextual tag counts npeter83 2026-06-15 12:05:53 +02:00
  • bd2e39d6f8 Merge: promote dev to prod npeter83 2026-06-15 04:32:05 +02:00
  • 6a11dd1158 Merge improvement/deep-queue-chip-clarity: clearer deep-backfill status npeter83 2026-06-15 04:31:56 +02:00
  • cb35b0e86e improvement(sync): reflect deep backfill as active in the header status npeter83 2026-06-15 04:30:27 +02:00
  • 5fba327d24 improvement(channels): distinct label for full-history queued by another user npeter83 2026-06-15 04:23:49 +02:00
  • 5db515f644 Merge feature/s2-shared-library: shared-library feed scope npeter83 2026-06-15 04:14:48 +02:00
  • db4a7c0440 feat(feed): shared-library scope toggle in the header npeter83 2026-06-15 04:06:22 +02:00
  • e91ded61bb feat(feed): add scope=all to browse the whole shared catalog npeter83 2026-06-15 04:06:14 +02:00
  • 44ef725a2e Merge feature/s1-filter-quick-wins: reshuffle button + channel counts on chips npeter83 2026-06-15 03:10:40 +02:00
  • 5a96607557 feat(feed): reshuffle button for the "surprise me" sort npeter83 2026-06-15 03:08:10 +02:00
  • b325893b22 feat(filters): show channel counts on topic and language chips npeter83 2026-06-15 03:08:03 +02:00
  • 6c8b9d6986 fix(version): VERSION-file as source of truth npeter83 2026-06-15 02:22:27 +02:00
  • 07f04b8f90 fix(version): read app version from the committed VERSION file npeter83 2026-06-15 02:22:27 +02:00
  • e98e2cbdd5 Release v0.1.0: watch progress, status bar, version/release-notes, i18n (HU/EN/DE) npeter83 2026-06-15 02:09:22 +02:00
  • 53708891b3 docs(release): note multilingual UI in v0.1.0 release notes npeter83 2026-06-15 02:09:22 +02:00
  • cdc15ad1f9 feat(channels): clearer error when a YouTube action lacks the scope npeter83 2026-06-15 02:02:05 +02:00
  • ea317c0009 feat(i18n): translate remaining components (HU/EN/DE) npeter83 2026-06-15 00:47:04 +02:00
  • 941fb7d756 feat(i18n): translate login and app chrome (HU/EN/DE) npeter83 2026-06-15 00:30:34 +02:00
  • 7aa068061d feat(i18n): foundation — react-i18next, language switcher, server-persisted choice npeter83 2026-06-15 00:30:34 +02:00
  • 844fed7d2f Merge: release notes, About dialog, and version stamping npeter83 2026-06-15 00:07:13 +02:00
  • 82f0936ca7 feat(ui): About dialog, Release Notes, and new-version banner npeter83 2026-06-15 00:06:57 +02:00
  • a93ab30fb2 feat(version): /api/version + build-time version/commit stamping npeter83 2026-06-15 00:06:57 +02:00
  • 5dd3109286 Merge: repo hygiene for public readiness npeter83 2026-06-14 23:20:02 +02:00
  • 167ebc74d8 chore(repo): remove internal deployment plan, sanitize infra references npeter83 2026-06-14 23:20:02 +02:00
  • 21b9e2710e Merge: auto-complete full history when stored >= video_count npeter83 2026-06-14 19:01:04 +02:00
  • 75d122de75 fix(backfill): auto-complete full history when stored >= video_count npeter83 2026-06-14 19:01:04 +02:00
  • 6683720ab8 Merge: header video-count clarity + idle pause hidden npeter83 2026-06-14 18:43:11 +02:00
  • 88e3b466b0 Merge: watch progress (resume bar, continue/restart, in-progress filter) npeter83 2026-06-14 18:43:11 +02:00
  • b4109909db feat(header): clarify video counts and hide idle pause button npeter83 2026-06-14 18:42:55 +02:00
  • 04c971f623 feat(feed): resume progress bar, play/continue/restart, in-progress filter npeter83 2026-06-14 18:40:12 +02:00
  • 686c40cbb9 feat(progress): track per-user resume position server-side npeter83 2026-06-14 18:40:05 +02:00
  • a16e613fe9 Release: onboarding auto-import, per-user header, channel status filter, stable priority, Phase B security fixes npeter83 2026-06-14 07:14:54 +02:00
  • bc87b3abdc Merge: channel status filter, header full-history link, stable priority npeter83 2026-06-14 07:08:59 +02:00
  • 3f7298cca0 feat(channels): status filter + header full-history link + stable priority npeter83 2026-06-14 07:08:59 +02:00
  • 00d167506d Merge: per-user header sync status npeter83 2026-06-14 06:55:18 +02:00
  • 6d2f84f791 fix(header): show per-user sync status instead of the global catalog npeter83 2026-06-14 06:55:18 +02:00
  • 930381f2d4 Merge: onboarding auto-import + empty-feed guidance npeter83 2026-06-14 06:36:12 +02:00
  • 4f80262046 feat(onboarding): auto-import subscriptions after read grant + empty-feed guidance npeter83 2026-06-14 06:36:12 +02:00