Commit graph

  • db6b108a6f Merge: promote dev to prod npeter83 2026-06-19 00:07:35 +02:00
  • 1e41a624ff release: 0.10.0 npeter83 2026-06-19 00:07:25 +02:00
  • e94dde1950 Merge improvement/settings-panel-trim: tidy Settings height, drop native unload prompt npeter83 2026-06-19 00:04:19 +02:00
  • 2e79074fca fix(settings): size panel to the active tab + drop the native unload prompt npeter83 2026-06-19 00:04:19 +02:00
  • 53ba10e7c6 Merge feature/settings-explicit-save: explicit Save/Discard for preferences npeter83 2026-06-18 23:59:40 +02:00
  • 4a1a025353 feat(settings): explicit Save/Discard for preferences with dirty tracking npeter83 2026-06-18 23:59:40 +02:00
  • d61e844f6b Merge bug/optimistic-state-notify-on-success: gate state-change notices on server confirmation npeter83 2026-06-18 23:27:59 +02:00
  • 9f9d2544ef fix(web): only announce a state change after the server confirms it npeter83 2026-06-18 23:27:59 +02:00
  • 0ab6742b44 Merge improvement/connection-lost-self-resolving: honour the 'clears once it's back' promise npeter83 2026-06-18 23:17:33 +02:00
  • 1278d079e2 fix(web): make the 'connection lost' notice self-resolving npeter83 2026-06-18 23:17:32 +02:00
  • 657cdfa507 Merge: promote dev to prod npeter83 2026-06-18 17:56:49 +02:00
  • 4f7aac7b92 Merge bug/proxy-keepalive-502-retry: stop player POSTs surfacing proxy keepalive 502s npeter83 2026-06-18 15:13:09 +02:00
  • 6bed9a1427 fix(web): retry idempotent calls on gateway 502/503/504, soften the rest npeter83 2026-06-18 15:13:01 +02:00
  • 02a6e5ff94 fix(api): raise uvicorn keepalive above the proxy reuse window npeter83 2026-06-18 15:13:01 +02:00
  • a1fd6fce91 Merge: promote dev to prod npeter83 2026-06-18 04:39:29 +02:00
  • d5e4f5353e docs(release): reflect unified notification center in v0.9.0 notes npeter83 2026-06-18 04:37:51 +02:00
  • 310e9b63b6 Merge feature/followups-batch-and-bell-unify: maintenance batch knob + unified notification inbox npeter83 2026-06-18 04:37:27 +02:00
  • d3c6ce659c feat(notifications): unify the two rail indicators into one inbox npeter83 2026-06-18 04:37:20 +02:00
  • dd83718304 feat(scheduler): admin-tunable maintenance re-validation batch size npeter83 2026-06-18 04:37:08 +02:00
  • 264a3c74af docs(release): note admin scheduler run-now + live progress under v0.9.0 npeter83 2026-06-18 04:02:11 +02:00
  • 89be480706 Merge feature/scheduler-run-now: run-now/run-all triggers, live progress, completion notices, nav badge fix npeter83 2026-06-18 04:01:38 +02:00
  • 00d07b9153 fix(nav): numeric inbox badge with active-state contrast npeter83 2026-06-18 04:01:19 +02:00
  • ed4194a8d3 feat(scheduler): admin run-now/run-all triggers + live progress + completion notices npeter83 2026-06-18 04:01:10 +02:00
  • 3a0789ebe7 chore(release): v0.9.0 — notification inbox + automatic video maintenance npeter83 2026-06-18 03:22:22 +02:00
  • 46fc56371f Merge feature/maintenance-and-inbox: validation job + notification inbox (P1) npeter83 2026-06-18 03:20:35 +02:00
  • c4aecf9f77 feat(maintenance): scheduled job to retire unplayable videos npeter83 2026-06-18 03:20:28 +02:00
  • b9a3a9012d feat(notifications): durable per-user inbox (P1) + maintenance schema npeter83 2026-06-18 03:20:17 +02:00
  • 19eb0242f8 Merge: promote dev to prod npeter83 2026-06-18 01:19:23 +02:00
  • a11a8db278 chore(release): v0.8.0 — channel columns, tag workflow, video reset, error dialog npeter83 2026-06-18 01:18:41 +02:00
  • e85d30a3f3 Merge improvement/tags-ux: tag UX overhaul, user-tags feed widget, video reset, global error dialog npeter83 2026-06-18 01:17:38 +02:00
  • 1e530d23a6 feat(tags): tag UX overhaul + per-card video reset npeter83 2026-06-18 01:17:31 +02:00
  • b55a944e7c fix(ux): modal error dialog for server-refused actions + ESC closes only the topmost npeter83 2026-06-18 01:17:31 +02:00
  • edd8c85132 Merge improvement/channel-aggregates: aggregate columns, attached-only tags, auto-width DataTable npeter83 2026-06-17 23:24:31 +02:00
  • 0aa16543d9 feat(channels): aggregate columns + smarter tag display npeter83 2026-06-17 23:24:25 +02:00
  • 14da25bf19 feat(ui): content-driven column widths in DataTable npeter83 2026-06-17 23:24:25 +02:00
  • 0edd7af45d Merge: promote dev to prod npeter83 2026-06-17 19:18:19 +02:00
  • a7d087c6d3 chore(release): v0.7.0 — data-table channel manager, sidebar reorg, fixes npeter83 2026-06-17 19:17:35 +02:00
  • a007a31bbf Merge improvement/channel-manager-1: data-table channel manager + reusable DataTable + admin reset npeter83 2026-06-17 19:16:30 +02:00
  • 5610dba5eb feat(channels): data-table channel manager npeter83 2026-06-17 19:16:23 +02:00
  • 0210b84166 feat(channels): admin reset / re-backfill endpoint npeter83 2026-06-17 19:16:23 +02:00
  • 9872a0115c feat(ui): reusable DataTable component npeter83 2026-06-17 19:16:23 +02:00
  • 4759103f26 Merge bug/settings-tab-persist: keep the selected Settings tab on reload npeter83 2026-06-17 14:30:56 +02:00
  • 3d6e278dd8 fix(settings): persist the active tab across reloads npeter83 2026-06-17 14:30:56 +02:00
  • 9a9d700cf3 Merge improvement/sidebar-chrome-reorg: grouped rail + chrome controls in sidebar + toast relocation npeter83 2026-06-17 14:28:39 +02:00
  • d94f41cb56 feat(toast): surface toasts bottom-left by the bell, brighter dark rim npeter83 2026-06-17 14:28:29 +02:00
  • 7a5f52a89b feat(nav): group rail modules + move chrome controls into the sidebar npeter83 2026-06-17 14:28:29 +02:00
  • 970ef352ec Merge improvement/quick-wins-1: channel YT links + badge checks, playlist input on top, stats bars npeter83 2026-06-17 13:55:49 +02:00
  • e0590c2b6c fix(stats): keep daily usage bars always visible npeter83 2026-06-17 13:55:43 +02:00
  • b96fe0caba feat(playlists): move the new-playlist input to the top of the rail npeter83 2026-06-17 13:55:43 +02:00
  • ccf044ac2c feat(channels): YouTube link on channel name + done checkmarks npeter83 2026-06-17 13:55:43 +02:00
  • fa4b4ac556 Merge bug/watched-state-500-race: fix watched not persisting at end-of-playback npeter83 2026-06-17 13:38:55 +02:00
  • a09e0dda0c fix(player): persist watched at end-of-playback (atomic upsert) npeter83 2026-06-17 13:38:47 +02:00
  • c2bf5b025c Merge: promote dev to prod npeter83 2026-06-16 17:46:15 +02:00
  • 79249104d4 chore(release): v0.6.0 — admin Background Scheduler dashboard npeter83 2026-06-16 17:46:15 +02:00
  • 25dca48964 Merge feature/scheduler-controls: job tooltips, status legend, editable intervals npeter83 2026-06-16 15:58:30 +02:00
  • 2a02fb353e feat(scheduler): per-job help tooltips, status legend, inline interval edit npeter83 2026-06-16 15:58:23 +02:00
  • 84aebe16c7 feat(scheduler): admin-editable job intervals (DB-backed, live reschedule) npeter83 2026-06-16 15:58:23 +02:00
  • b71d07c098 chore(dev): self-contained local dev stack (own Postgres + scheduler) npeter83 2026-06-16 15:21:43 +02:00
  • c011972efb Merge feature/scheduler-dashboard: live admin scheduler dashboard + reusable poll hook npeter83 2026-06-16 14:38:58 +02:00
  • 73b06b1fb6 feat(scheduler): live admin Scheduler dashboard + reusable poll hook (HU/EN/DE) npeter83 2026-06-16 14:38:51 +02:00
  • a339a73bd6 feat(scheduler): admin dashboard endpoint + per-job activity tracking npeter83 2026-06-16 14:38:51 +02:00
  • 1b2e0741c6 Merge: promote dev to prod npeter83 2026-06-16 12:02:38 +02:00
  • e6c53b3f96 chore(release): v0.5.1 — graceful fallback for non-embeddable videos npeter83 2026-06-16 12:02:38 +02:00
  • de4d657d42 fix(player): make the unavailable overlay fully opaque npeter83 2026-06-16 11:58:57 +02:00
  • 715eeffff8 Merge fix/player-error-handling: graceful 'Open on YouTube' fallback for non-embeddable videos npeter83 2026-06-16 10:45:57 +02:00
  • c2d9e7b5a9 fix(player): friendly fallback when a video can't be embedded npeter83 2026-06-16 10:45:57 +02:00
  • 659fb5b228 Merge: promote dev to prod npeter83 2026-06-16 10:23:30 +02:00
  • a76bbb5825 chore(release): v0.5.0 — demo account, clearer live videos npeter83 2026-06-16 10:23:29 +02:00
  • 831dee52bc Merge: promote dev to prod npeter83 2026-06-16 10:19:05 +02:00
  • e12e664579 Merge improvement/demo-banner: permanent demo banner instead of toast npeter83 2026-06-16 10:12:10 +02:00
  • 848fdd386f improvement(demo): permanent banner instead of a re-popping toast npeter83 2026-06-16 10:12:10 +02:00
  • e81a494436 Merge fix/live-reenrich: re-enrich transient live videos until they settle npeter83 2026-06-16 10:06:58 +02:00
  • b114dae39b fix(sync): re-enrich live videos so ended streams gain duration npeter83 2026-06-16 10:06:58 +02:00
  • ddaa95f2a6 Merge improvement/live-duration-badge: LIVE/upcoming badge instead of blank duration npeter83 2026-06-16 09:36:51 +02:00
  • d42a038a3f feat(card): show LIVE/upcoming badge where duration is absent npeter83 2026-06-16 09:36:51 +02:00
  • 15811b8b43 Merge improvement/demo-ux: graceful demo handling of unavailable YouTube actions npeter83 2026-06-16 09:27:34 +02:00
  • 484c6364e6 fix(demo): graceful UX when YouTube actions are unavailable npeter83 2026-06-16 09:27:34 +02:00
  • 5b6d898d31 Merge feature/demo-account: shared demo account (whitelist login, gating, admin reset) npeter83 2026-06-16 09:17:53 +02:00
  • 6405350104 feat(demo): login trigger, feature gating + admin UI (HU/EN/DE) npeter83 2026-06-16 09:17:34 +02:00
  • e0c63c26d4 feat(demo): admin demo whitelist CRUD + state reset npeter83 2026-06-16 09:17:27 +02:00
  • 5936436d26 feat(demo): hidden /auth/demo login + require_human guard npeter83 2026-06-16 09:17:21 +02:00
  • 9cac2cd335 feat(demo): demo-account schema + reusable rate limiter npeter83 2026-06-16 09:17:14 +02:00
  • 6d2042d8ae Merge: promote dev to prod npeter83 2026-06-16 03:18:58 +02:00
  • af84cc0404 chore(release): v0.4.1 — feed toolbar + clearer counts/dates npeter83 2026-06-16 03:18:58 +02:00
  • 5a2928b810 feat(player): exact upload date inline in the player meta too npeter83 2026-06-16 03:09:28 +02:00
  • 71d7440a8b feat(card): show the exact upload date inline after the relative time npeter83 2026-06-16 03:04:50 +02:00
  • 48e7f8d11e feat(card): exact view count on hover (disambiguate 9B vs 98) npeter83 2026-06-16 02:57:53 +02:00
  • ab439f9717 Merge improvement/feed-toolbar-show-sort: Show chips + key/direction sort npeter83 2026-06-16 02:46:26 +02:00
  • 4921a95d09 feat(feed): Show chips in the toolbar + key+direction sort npeter83 2026-06-16 02:46:26 +02:00
  • a44bdf7fdc Merge feature/1d-feed-toolbar: content-type chips + sort above the feed npeter83 2026-06-16 02:34:13 +02:00
  • d96b47ae5d feat(feed): 1D — content-type chips + sort in a toolbar above the cards npeter83 2026-06-16 02:34:13 +02:00
  • 079c8182b4 Merge: promote dev to prod npeter83 2026-06-16 02:16:33 +02:00
  • f6efe44e37 chore(release): v0.4.0 — navigation overhaul, glass, account switch npeter83 2026-06-16 02:16:21 +02:00
  • 15716dd578 fix(auth): always seed the active account into the switch list npeter83 2026-06-16 02:12:59 +02:00
  • 2d8c47b04e Merge feature/n3-multi-session: account switch without re-auth (Epic N, N3) npeter83 2026-06-16 02:05:38 +02:00
  • 583e003c23 feat(auth): N3 — server-side multi-session account switch npeter83 2026-06-16 02:05:38 +02:00
  • 8c076f7a75 feat(ui): brighten dark-mode glass so the frost is visible over dark UI npeter83 2026-06-16 01:57:41 +02:00
  • ed2d76f92d fix(nav): remove backdrop div so the account popover frosts npeter83 2026-06-16 01:54:01 +02:00
  • a18924bf97 fix(nav): restore frosted glass on the portaled account popover npeter83 2026-06-16 01:50:01 +02:00
  • 5bb85b039a fix(nav): portal account popover to body (stacking + click-through) npeter83 2026-06-16 01:46:32 +02:00