Commit graph

  • 0d44d3a34a chore: prepare repo for public release — scrub internal infra, rewrite README npeter83 2026-07-01 12:46:50 +02:00
  • a06d18a9a9 Merge: promote dev to prod npeter83 2026-07-01 12:08:48 +02:00
  • 381794d9ae chore(release): 0.20.1 npeter83 2026-07-01 12:07:58 +02:00
  • 804b5c7845 Merge: refresh Welcome page copy + screenshots npeter83 2026-07-01 12:01:42 +02:00
  • c0ec1e9431 improvement(welcome): refresh landing copy + real npeter83 sample screenshots npeter83 2026-07-01 12:01:42 +02:00
  • 4c69cc1258 Merge: promote dev to prod npeter83 2026-07-01 11:29:48 +02:00
  • b8e1c9386e chore(release): 0.20.0 npeter83 2026-07-01 11:28:56 +02:00
  • 00ed0f2eeb Merge: new default sidebar widget order npeter83 2026-07-01 04:29:38 +02:00
  • cd06fcbf74 polish(sidebar): default widget order — Saved views, Upload date, Your tags, Language, Topic npeter83 2026-07-01 04:29:38 +02:00
  • 8e5066f1d3 Merge: unify filter reset — Source/scope count + clear, search ✕ npeter83 2026-07-01 04:22:39 +02:00
  • dc31d12fb0 improvement(filters): count Source + Library scope as active; unify Clear all; add search clear (X) npeter83 2026-07-01 04:22:39 +02:00
  • 53e4cd9aa3 Merge: saved smart views (named FeedFilters snapshots) npeter83 2026-07-01 03:17:47 +02:00
  • 0a358fa82e feat(views): saved-views UI — sidebar widget, apply/rename/default/reorder/share npeter83 2026-07-01 03:17:36 +02:00
  • 3056734231 feat(views): saved-views backend — table, model, CRUD + reorder API npeter83 2026-07-01 03:17:36 +02:00
  • dda94be72b Merge: promote dev to prod npeter83 2026-07-01 02:38:15 +02:00
  • 669994cc85 chore(release): 0.19.0 npeter83 2026-07-01 02:37:07 +02:00
  • 2277f9157f Merge: keep scrape-sourced YouTube search results across a reload npeter83 2026-07-01 01:55:05 +02:00
  • b498755067 feat(search): keep scrape-sourced YouTube results across a reload npeter83 2026-07-01 01:55:05 +02:00
  • 703ae41f2d Merge: fix back button swallowed after a button/ESC overlay close npeter83 2026-07-01 01:42:00 +02:00
  • 3d8015f3a9 fix(history): stop the next overlay's first Back being swallowed after a button/ESC close npeter83 2026-07-01 01:42:00 +02:00
  • c1e9a3c6f9 Merge: ephemeral live-search — auto-purge, count selector, channel blocklist, new-first npeter83 2026-07-01 01:18:33 +02:00
  • d8f6f9f117 Merge: Channels search + clickable tag chips, contextual Your-tags, card polish npeter83 2026-07-01 01:18:33 +02:00
  • cafe248e92 fix(search): keep Load more; the count selector sets the batch size npeter83 2026-07-01 01:17:04 +02:00
  • 0c18845c34 feat(search): ephemeral results UX, count selector, channel blocklist (frontend) npeter83 2026-07-01 01:00:32 +02:00
  • f27f31b6db feat(search): ephemeral results, count selector, blocklist, new-first ordering (backend) npeter83 2026-07-01 00:42:32 +02:00
  • 77707a3cbe fix(channels): flip the row tag picker upward when it would clip below npeter83 2026-07-01 00:01:26 +02:00
  • cd9987c00f feat(card): tooltip the full video title only when it's clamped npeter83 2026-06-30 23:53:44 +02:00
  • 2b5b6ac965 feat(channels): search box + clickable tag chips; fix(feed): contextual Your-tags npeter83 2026-06-30 22:30:35 +02:00
  • 72ae936958 Merge: channel page + ephemeral exploration of un-subscribed channels npeter83 2026-06-30 05:20:06 +02:00
  • a788c8bb7a fix(ui): make the back-to-top button resist ad-block cosmetic filters npeter83 2026-06-30 05:18:07 +02:00
  • 6b47b0d357 feat(ui): floating back-to-top button on long scrollable pages npeter83 2026-06-30 05:02:42 +02:00
  • f25d0768a1 polish(feed): one-row toolbar — count after Source, sort right-aligned npeter83 2026-06-30 04:56:08 +02:00
  • 5e588d15ff polish(channel): inset, rounded banner card (option C) npeter83 2026-06-30 04:48:46 +02:00
  • a6c4888e92 fix(channel): let the nav rail navigate away from a channel page npeter83 2026-06-30 04:47:54 +02:00
  • 50a7774588 polish(channel): compact header — stats inline, slimmer banner npeter83 2026-06-30 04:43:37 +02:00
  • c59b53a51b fix(channel): drop channel-constant sort options on the channel page npeter83 2026-06-30 04:37:00 +02:00
  • 78d81f81d0 fix(channel): render the banner wide like YouTube npeter83 2026-06-30 04:32:43 +02:00
  • b4a1fa079b fix(channel): persist across reload, keep banner aspect, fix avatar z-order npeter83 2026-06-30 04:24:52 +02:00
  • e185e03c6c fix(channel): show the Exploring badge on first visit npeter83 2026-06-30 04:17:49 +02:00
  • 419231bddb fix(player): open the channel page from the player without it bouncing back npeter83 2026-06-30 04:14:14 +02:00
  • 641fc393a7 feat(player): channel name opens the in-app channel page npeter83 2026-06-30 03:12:44 +02:00
  • cc1e670202 feat(channels): dedicated channel page + ephemeral explore UI npeter83 2026-06-30 03:08:52 +02:00
  • bc4c362423 feat(channels): channel-explore backend — about metadata, ephemeral provenance, cleanup npeter83 2026-06-30 02:52:44 +02:00
  • bb7b9972fd Merge: Mine search finds, relevance search, and a weighted search document npeter83 2026-06-30 02:16:32 +02:00
  • 4395afc210 feat(feed): broaden search to a weighted document (title + keywords + queries + description) npeter83 2026-06-30 02:00:38 +02:00
  • 20bcdf5ecb fix(feed): reliably switch to relevance sort when a search starts npeter83 2026-06-30 01:36:12 +02:00
  • 2e5919399c feat(feed): Source filter in Mine, Relevance sort, auto search-source npeter83 2026-06-30 00:39:21 +02:00
  • 6cef826ecc feat(feed): per-user search finds in Mine scope + full-text relevance search npeter83 2026-06-30 00:39:09 +02:00
  • 789f93816e Merge: promote dev to prod npeter83 2026-06-29 23:43:44 +02:00
  • a4abfa402f chore(release): 0.18.0 npeter83 2026-06-29 23:41:53 +02:00
  • 12eded5dc9 Merge: video-player keyboard + scroll-wheel controls npeter83 2026-06-29 23:41:00 +02:00
  • 844eed46eb Merge: zero-quota live-search scrape source + search back-nav fix npeter83 2026-06-29 23:41:00 +02:00
  • d84d5a1819 feat(player): keyboard + scroll-wheel controls in the video modal npeter83 2026-06-29 23:37:18 +02:00
  • ff9b0601c3 fix(search): make the YouTube-search view its own history entry npeter83 2026-06-29 23:03:25 +02:00
  • 1d6dfaf486 feat(search): drop quota wording when the live search source is scrape npeter83 2026-06-29 22:30:03 +02:00
  • 396e09189b feat(search): zero-quota InnerTube scrape source + search_source toggle npeter83 2026-06-29 22:29:54 +02:00
  • 17c17c1d3c Merge: live YouTube search npeter83 2026-06-29 02:46:14 +02:00
  • ed21b93320 fix(search): refresh feed after returning from YouTube search npeter83 2026-06-29 02:40:32 +02:00
  • a7a72c4c7e feat(feed): accent-insensitive search (unaccent) npeter83 2026-06-29 02:30:37 +02:00
  • a528e2c366 fix(search): include Library source filter in shareable URL npeter83 2026-06-29 02:30:37 +02:00
  • 74cf31b58d fix(feed): stop search-box flicker (keepPreviousData + debounced query) npeter83 2026-06-29 02:19:18 +02:00
  • 8b19faaed1 feat(search): Library provenance filter (organic / all / search-only) npeter83 2026-06-29 02:11:53 +02:00
  • 546be57963 feat(search): live YouTube search UI npeter83 2026-06-29 02:01:44 +02:00
  • 9b1bdb6b42 feat(search): live YouTube search backend npeter83 2026-06-29 02:01:31 +02:00
  • f1c98dd708 Merge: promote dev to prod npeter83 2026-06-29 01:13:52 +02:00
  • b1ed706cab chore(release): 0.17.0 — maintenance epic + messaging account-switch fix npeter83 2026-06-29 01:12:22 +02:00
  • 16669dba5c Merge bug/messaging-stale-thread-on-account-switch npeter83 2026-06-29 00:52:52 +02:00
  • 44093066ec fix(messages): don't inherit a stale chat thread across account switch npeter83 2026-06-29 00:48:18 +02:00
  • 08e5bb86bf Merge improvement/frontend-decompose npeter83 2026-06-29 00:27:59 +02:00
  • 83540b01eb refactor(player): extract description link-rendering into lib/descriptionLinks npeter83 2026-06-29 00:24:49 +02:00
  • 9eaec27c7c refactor(i18n,format): translate ETA strings; consolidate time/duration formatters npeter83 2026-06-29 00:22:21 +02:00
  • 5768c1a5cb Merge improvement/frontend-ui-primitives npeter83 2026-06-29 00:14:31 +02:00
  • e68e0d3f7a refactor(ui): useDismiss hook for outside-click/Escape close npeter83 2026-06-29 00:11:44 +02:00
  • f6b9ac2dd1 refactor(ui): shared DraftSaveBar (Settings + Config save bars) npeter83 2026-06-29 00:07:37 +02:00
  • 53c75f69e2 refactor(ui): shared form primitives (Switch, Section, SettingRow, HintLabel) npeter83 2026-06-29 00:04:45 +02:00
  • 5fcd64c1e1 Merge improvement/frontend-state-foundation npeter83 2026-06-26 03:33:00 +02:00
  • 472aba6480 refactor(frontend): adopt store/storage helpers; centralize persistence npeter83 2026-06-26 03:30:19 +02:00
  • 634921b35a feat(frontend): add createStore factory + central localStorage registry npeter83 2026-06-26 03:30:19 +02:00
  • 239a298992 Merge improvement/backend-consolidation npeter83 2026-06-26 03:17:51 +02:00
  • f0ed7d1e2c refactor(models): extract Timestamp/UpdatedAt mixins; fix stale status comment npeter83 2026-06-26 03:15:53 +02:00
  • 022505ff18 refactor(playlists,feed): share feed-row projection & playlist helpers npeter83 2026-06-26 03:15:53 +02:00
  • 5b81e22677 refactor(backend): quota.measured helper, consistent admin gating, messageable predicate npeter83 2026-06-26 03:15:53 +02:00
  • 63701f5344 refactor(auth): centralize token hashing, email validation & admin gating npeter83 2026-06-26 03:15:36 +02:00
  • 8ef748c7b8 fix(maintenance): drop dead status=="saved" scan npeter83 2026-06-26 03:15:36 +02:00
  • d1baf74643 Merge: promote dev to prod npeter83 2026-06-26 01:42:54 +02:00
  • 7a97fef33c chore(release): 0.16.2 — access-requests UX + back-navigation fixes npeter83 2026-06-26 01:42:12 +02:00
  • 6621390cb1 Merge bug/access-review-tab — access-requests UX + general back-navigation fixes npeter83 2026-06-26 01:41:46 +02:00
  • 71f79fc73d fix(nav): Back steps through sub-views and closes modals before leaving a page npeter83 2026-06-26 01:37:43 +02:00
  • ad77a1751e fix(notifications): access-requests nudge auto-clears on approval npeter83 2026-06-26 01:19:01 +02:00
  • de58ded923 fix(url): strip leftover query string once signed in npeter83 2026-06-26 01:13:26 +02:00
  • 04d3367c88 fix(notifications): Review link opens the Access requests tab, not the last-used one npeter83 2026-06-26 01:05:14 +02:00
  • 1621695cec Merge: promote dev to prod npeter83 2026-06-26 00:37:25 +02:00
  • 6286dcc3c2 chore(release): 0.16.1 — notification context + YouTube API egress proxy npeter83 2026-06-26 00:36:46 +02:00
  • ec1e8c6e4f Merge bug/notif-context-and-api-proxy — notification context + YouTube API egress proxy npeter83 2026-06-26 00:36:22 +02:00
  • d047ed7e15 feat(youtube): optional egress proxy for YouTube API calls npeter83 2026-06-26 00:32:17 +02:00
  • 6c4c33f956 fix(notifications): name the entity in action toasts npeter83 2026-06-26 00:32:17 +02:00
  • 17297b7482 Merge: promote dev to prod npeter83 2026-06-26 00:02:57 +02:00
  • 557f2cef9c chore(release): 0.16.0 — end-to-end encrypted real-time messaging npeter83 2026-06-26 00:01:54 +02:00
  • da37eb6344 Merge feature/user-messaging — E2EE real-time direct messaging (epic 8 P2) npeter83 2026-06-26 00:01:17 +02:00
  • 70a117d0db fix(messages): make the dock new-message flash actually visible npeter83 2026-06-26 00:00:21 +02:00