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