Commit Graph

  • 79d9bca290 feat(panels): peek-open side panels with a docked tab peter 2026-07-15 20:57:21 +02:00
  • 11451c1af2 refactor(nav): extract the peek-open hook for reuse peter 2026-07-15 20:57:21 +02:00
  • 759fb41f78 Merge: promote dev to prod peter 2026-07-15 20:33:56 +02:00
  • 9d9c6894f4 chore(release): 0.43.1 — sidebar no longer latches open after a portaled menu peter 2026-07-15 20:29:41 +02:00
  • 8191ded159 Merge fix/nav-focus-stuck: rail no longer latches open after a portaled menu closes peter 2026-07-15 20:29:03 +02:00
  • bcec462ef6 fix(nav): stop the rail latching open after a portaled menu closes peter 2026-07-15 20:24:40 +02:00
  • d6d6a0f717 Merge: promote dev to prod peter 2026-07-15 19:54:07 +02:00
  • 6456761861 Merge fix/docker-build-cache: keep the heavy image layers cacheable (70s -> 7s rebuilds) peter 2026-07-15 19:50:28 +02:00
  • baae29d8b6 perf(docker): keep the heavy layers cacheable (70s -> 7s rebuilds) peter 2026-07-15 19:40:48 +02:00
  • b51f2e5f84 Merge feature/e1-header-chrome: E1 header/account/appearance chrome (nav overlay, role tooltip, logout, opt-in glass tuner) into dev for v0.43.0 peter 2026-07-14 21:41:59 +02:00
  • 44926f1c23 chore(release): 0.43.0 — nav overlay sidebar, account chrome, opt-in glass tuner peter 2026-07-14 21:41:44 +02:00
  • 6a9bf948f9 feat(appearance): opt-in glass tuner toggle in Settings peter 2026-07-14 21:39:53 +02:00
  • ad1cc4586a feat(nav): slim hover-expand sidebar, role tooltip, logout button peter 2026-07-14 21:39:30 +02:00
  • a3b62a2535 Merge: promote dev to prod peter 2026-07-13 05:16:36 +02:00
  • f96c6a74dd Merge feature/glass-phase2: glass-over-image UI epic (header, floating side panels, i18n, notifications) into dev for v0.42.0 peter 2026-07-13 05:13:52 +02:00
  • 27b9e83af6 docs(release): expand v0.42.0 notes (header, side panels, i18n, notifications) peter 2026-07-13 05:13:52 +02:00
  • facb3ac9cb feat(ui): unified floating side panels for filters and playlists peter 2026-07-13 05:13:40 +02:00
  • c2d914bacb feat(notifications): coalesce identical notifications with a repeat count peter 2026-07-13 05:13:18 +02:00
  • 07024de6c2 feat(i18n): retire the German interface language peter 2026-07-13 05:13:08 +02:00
  • 076a2fbe6f fix(header): restore inner scroll broken by the floating-header wrapper peter 2026-07-13 02:39:43 +02:00
  • d159f35f31 feat(header): floating module header with cyclic nav and shared search peter 2026-07-13 02:28:06 +02:00
  • a7f9032e0e feat(glass): light-theme background images + enable the toggle in light peter 2026-07-13 00:14:20 +02:00
  • 8019b97ca8 feat(glass): make the dev tuner theme-aware (Sync to current theme) peter 2026-07-13 00:02:04 +02:00
  • 89b6d8a7bb fix(glass): give light theme its own translucent tier + unify the Plex filter rail peter 2026-07-12 23:53:56 +02:00
  • ec23dafffe chore(glass): scrub dev-process/hostname refs from tracked comments peter 2026-07-12 23:30:50 +02:00
  • 06b4411aa4 feat(glass): re-theme the public WatchPage onto the token system (Phase 3) peter 2026-07-12 23:00:36 +02:00
  • cb2ad684bd feat(glass): glassify modal inner panels, dropdowns & list rows (Phase 2) peter 2026-07-12 22:54:13 +02:00
  • a625974471 feat(glass): glassify the side rails + back-to-top (Phase 1, feed chrome) peter 2026-07-12 22:44:57 +02:00
  • 8069cbd4b7 Merge feature/glass-consistency: variable-driven glass, per-scheme backgrounds, Starship/Matrix schemes (0.42.0) peter 2026-07-12 22:29:07 +02:00
  • 88e6b6a2a0 chore(release): 0.42.0 — glass-over-image look + Starship/Matrix schemes peter 2026-07-12 22:28:50 +02:00
  • 3f91453254 feat(glass): user-facing Image-fade slider under Settings > Background image peter 2026-07-12 22:24:09 +02:00
  • a8b1b26901 feat(glass): per-scheme background images + glass-over-image mode peter 2026-07-12 21:20:40 +02:00
  • e1b8916be4 feat(glass): dev-prototype feed backdrop (blurred rotating thumbnail) peter 2026-07-12 20:40:20 +02:00
  • 96b7650d6a fix(glass): soften the Matrix scheme accent (neon phosphor → muted emerald) peter 2026-07-12 20:27:37 +02:00
  • cfd02ba471 feat(glass): bake two-tier defaults (Adaptive chrome + media scope), add Starship/Matrix schemes peter 2026-07-12 20:12:25 +02:00
  • 2004ab004e feat(glass): variable-drive the glass system + dev GlassTuner (Phase 0/0b) peter 2026-07-12 19:14:40 +02:00
  • 2834056025 Merge: promote dev to prod peter 2026-07-12 17:59:43 +02:00
  • 08919199c2 chore(release): 0.41.0 — admin audit log + channel About enrichment/fixes peter 2026-07-12 17:57:39 +02:00
  • c9949dda42 Merge feature/channel-card-enrich: channel About-tab enrichment + fixes peter 2026-07-12 17:52:28 +02:00
  • 3c104458d1 fix(channel): no-banner fallback bar matches the banner height (avatar/Back overlap) peter 2026-07-12 17:01:29 +02:00
  • 26230b52e8 fix(channel): recover a throttled channel banner instead of leaving it broken peter 2026-07-12 16:54:55 +02:00
  • 763d8533f2 fix(channel): hide the Source (search-results) filter on the channel-scoped feed peter 2026-07-12 16:36:32 +02:00
  • 05aa70ed33 fix(channel): harden About-enrich edge cases from review peter 2026-07-12 16:17:17 +02:00
  • 0c26464c90 feat(channel): enrich the About tab + fix the tab-switch header shift peter 2026-07-12 16:12:39 +02:00
  • 5bad18d571 Merge feature/audit-log: admin audit log (Notification P3) peter 2026-07-12 08:04:59 +02:00
  • 201b8b00b3 fix(audit): address /code-review findings peter 2026-07-12 07:47:07 +02:00
  • 911f5100d8 feat(audit): admin audit log (Notification P3) peter 2026-07-12 07:32:41 +02:00
  • 2840d1b532 Merge: promote dev to prod peter 2026-07-12 06:56:51 +02:00
  • 2c4d4fa193 chore(release): 0.40.0 — deferred-bugs closeout peter 2026-07-12 06:54:49 +02:00
  • 2846129363 Merge chore/deferred-bugs: close the code-hygiene sweep's deferred 🟡/🟢 tails peter 2026-07-12 06:50:10 +02:00
  • 64a97ede3d fix(deferred): address /code-review findings on the closeout diff peter 2026-07-12 06:21:29 +02:00
  • 5ac30abe1f fix(deferred): close frontend UI/UX tails from the hygiene sweep peter 2026-07-12 05:59:25 +02:00
  • 229502a61e fix(deferred): close backend correctness/efficiency tails from the hygiene sweep peter 2026-07-12 05:59:03 +02:00
  • 70f419edf3 Merge: promote dev to prod peter 2026-07-12 04:58:45 +02:00
  • 216200eebf release: v0.39.1 peter 2026-07-12 04:57:06 +02:00
  • ac0bb19d32 Merge bug/oauth-scope-and-email: OAuth scope-clobber + admin-email fixes peter 2026-07-12 04:56:24 +02:00
  • 30e6ce74ff fix(auth): decrypt the access-token fallback before revoking on account deletion peter 2026-07-12 04:52:31 +02:00
  • e667fe0776 fix(auth): don't let a re-sign-in clobber the YouTube grant (root cause) peter 2026-07-12 04:44:37 +02:00
  • ca10b88bf5 fix(auth): preserve OAuth scopes across re-login + accurate multi-admin request emails peter 2026-07-12 04:34:07 +02:00
  • 9fa120b09e Merge feature/auth-loose-ends: close SA5 timing oracles + dedup messages_ws peter 2026-07-12 04:17:48 +02:00
  • 42bc45a365 chore(auth): drop now-dead session guard in messages_ws epoch read peter 2026-07-12 04:17:02 +02:00
  • d939b2efb6 fix(auth): close SA5 timing oracles on register/reset + dedup messages_ws peter 2026-07-12 04:13:11 +02:00
  • 2fef26cd75 Merge: promote dev to prod peter 2026-07-12 03:51:36 +02:00
  • 9d3624d51b release: v0.39.0 peter 2026-07-12 03:49:55 +02:00
  • ff8e49b8ce harden(auth): SA3 review follow-ups — IPv6-mapped match + no-proxy-headers guardrail peter 2026-07-12 03:49:08 +02:00
  • db2257c5e7 feat(auth): SA3 — trusted-proxy X-Forwarded-For for rate limiting peter 2026-07-12 03:42:41 +02:00
  • 4b3e83db74 Merge feature/auth-security: SB3 + SA4 (SA3 deferred) peter 2026-07-12 03:25:54 +02:00
  • bfcee41f2a fix(auth): address SA4 review findings (WS epoch check, commit ordering, verify guard) peter 2026-07-12 03:07:13 +02:00
  • bfcacb518f feat(auth): SA4 — server-side session revocation via per-user session epoch peter 2026-07-12 03:00:16 +02:00
  • e99ec65721 fix(auth): SB3 — keep reset/verify tokens out of URL query strings peter 2026-07-12 02:48:40 +02:00
  • 4353327e30 Merge: promote dev to prod peter 2026-07-12 02:26:55 +02:00
  • c7ef5a87b2 release: v0.38.0 peter 2026-07-12 02:26:42 +02:00
  • 78fcbb651f Merge chore/code-hygiene: Phase 4 guardrails (noUnusedLocals + dead-code sweep + ruff.toml) peter 2026-07-12 02:16:07 +02:00
  • 5c29a383cf chore(hygiene): Phase 4 guardrails — noUnusedLocals/Parameters + dead-code sweep peter 2026-07-12 02:15:52 +02:00
  • ebe77721cd Merge chore/code-hygiene: Plex filter-sidebar collapse button peter 2026-07-12 01:55:25 +02:00
  • 2fcef981cd feat(plex): collapse button in the expanded Plex filter sidebar peter 2026-07-12 01:55:10 +02:00
  • 0f21f6292f Merge chore/code-hygiene: Phase 3 — jscpd clones to zero peter 2026-07-12 00:50:09 +02:00
  • cddfb909da chore(ui): dedup last 3 jscpd clones → 0 (collapsed rail, video-card text block, subs column) peter 2026-07-12 00:46:52 +02:00
  • 2169232d57 Merge chore/code-hygiene: Phase 3 — extract shared inputCls + btnCls to ui/form.tsx peter 2026-07-12 00:35:48 +02:00
  • eabfb6e00a chore(ui): extract shared inputCls + btnCls to ui/form.tsx peter 2026-07-12 00:29:04 +02:00
  • d1adec02ad Merge chore/code-hygiene: fix Plex infinite-scroll dead after drill-in→Back peter 2026-07-12 00:16:54 +02:00
  • 9a00bd8836 fix(plex): infinite-scroll dead after drill-in → Back (stale sentinel observer) peter 2026-07-12 00:09:19 +02:00
  • ca99afe965 Merge chore/code-hygiene: Phase 2 #9 Plex backend pass (watch_sync bugs + backend dedup) peter 2026-07-11 23:53:29 +02:00
  • a12f1d8ef7 Plex backend pass (#9): watch_sync bugs + backend dedup peter 2026-07-11 23:48:35 +02:00
  • bce055b774 Merge chore/code-hygiene: Phase 2 #9 Plex follow-up (frontend player bugs + FE dedup) peter 2026-07-11 23:22:54 +02:00
  • 4d22349aa6 fix(plex): player marker-skip reset, lang-switch reload, tracks wheel, sidebar badge clamp peter 2026-07-11 23:13:10 +02:00
  • d7fbe01f81 chore(plex): dedup frontend formatters + LS key, drop dead wasPlaying pref peter 2026-07-11 23:10:24 +02:00
  • ae8bc871f2 Merge chore/code-hygiene: Phase 2 #9 Plex (first pass — transcode config-drift + safe cleanups) peter 2026-07-11 21:53:25 +02:00
  • c9a249d922 chore(plex): drop dead _enabled guard, dedup watch-toggle, remove dead i18n peter 2026-07-11 21:53:24 +02:00
  • 9347d52a54 fix(plex): honor the admin "max concurrent transcodes" setting (config drift) peter 2026-07-11 21:53:24 +02:00
  • ce43db9a80 Merge chore/code-hygiene: Phase 2 #8 Auth security fixes (contained batch) peter 2026-07-11 21:26:39 +02:00
  • a61a281158 fix(auth): security hardening — token encryption, timing, adoption + isolation peter 2026-07-11 21:26:39 +02:00
  • 3fb345d825 fix(auth): last-admin guard counts only ACTIVE admins (prevents lockout) peter 2026-07-11 21:26:39 +02:00
  • 18cf9cd82d Merge chore/code-hygiene: clear E2EE key on logout (user-approved) peter 2026-07-11 20:57:30 +02:00
  • 856f39642f fix(e2ee): clear the device's private key on logout (user-approved: every logout) peter 2026-07-11 20:57:30 +02:00
  • 022d8262db Merge chore/code-hygiene: Phase 2 #7 Messages (E2EE crypto fix + UI bugs) peter 2026-07-11 20:48:38 +02:00
  • c0f9ce732c fix(messages-ui): surface silent send failures, stop scroll/render churn (+cleanup) peter 2026-07-11 20:16:14 +02:00
  • 52197b28fb fix(e2ee): stop reusing the AES-GCM nonce in setup; drop redundant key_check oracle peter 2026-07-11 20:16:14 +02:00
  • 60d6fc3fa0 Merge chore/code-hygiene: Phase 2 #6 Admin/Settings/Scheduler (cleanup + bugs) peter 2026-07-11 19:45:09 +02:00
  • e91369f827 fix(admin-ui): Plex library toggle inversion + Purge-discovery confirm (+ cleanups) peter 2026-07-11 19:44:53 +02:00