Commit Graph

  • bdf7c03b59 fix(r5): address the eighth /code-review high round — 7 findings peter 2026-07-24 04:44:20 +02:00
  • a5336d20e0 fix(r5): address the seventh /code-review high round — 7 findings peter 2026-07-24 03:41:29 +02:00
  • aae37591cb fix(player): reclaim keyboard focus when fullscreen ends peter 2026-07-24 03:07:46 +02:00
  • 45654fc7ec fix(player): F maximises without the Fullscreen API, so YouTube's own controls work peter 2026-07-24 02:46:42 +02:00
  • d8d82e47d0 fix(player): give YouTube's own fullscreen a working path + round-6 findings peter 2026-07-24 02:16:58 +02:00
  • c4942eb590 fix(r5): address the fifth /code-review high round — 6 findings peter 2026-07-24 01:50:50 +02:00
  • fc82c8b47a fix(r5): address the fourth /code-review high round — 6 findings peter 2026-07-24 00:45:42 +02:00
  • c0db80d333 fix(r5): address the third /code-review high round — 7 findings peter 2026-07-24 00:17:09 +02:00
  • 53ff61653d fix(r5): address the second /code-review high round — 7 findings peter 2026-07-23 23:59:58 +02:00
  • 2a7f49c981 fix(r5): address the /code-review high round — 10 findings peter 2026-07-23 23:25:06 +02:00
  • 5130584d0a fix(player): R5 S3 — fullscreen controls, volume memory, Ctrl+wheel zoom peter 2026-07-23 22:56:42 +02:00
  • 63a36db116 fix(downloads): probe codecs from ffprobe JSON, not its flat output peter 2026-07-23 22:56:42 +02:00
  • 4209f6bb24 fix(sync): R5 S2 — sync guards peter 2026-07-23 22:36:33 +02:00
  • 2f46947dcf fix(downloads): R5 S1 — downloads robustness peter 2026-07-23 22:32:25 +02:00
  • 9556b33648 Merge: promote dev to prod peter 2026-07-23 04:29:12 +02:00
  • 08049d2aa5 release: 0.53.0 — R4 auth funnel & abuse hardening peter 2026-07-23 04:27:20 +02:00
  • 81fc6c791c Merge R4: auth funnel & abuse hardening peter 2026-07-23 04:24:11 +02:00
  • 10da69c1b9 fix(downloads): confirm before clearing a link password; fix placeholder peter 2026-07-23 04:15:39 +02:00
  • c8cbbb6189 feat(downloads): change/clear a share link's password from the UI peter 2026-07-23 04:03:11 +02:00
  • e49b77dbcd fix(scheduler): move the single-run claim into _job (cover both paths) peter 2026-07-23 03:50:04 +02:00
  • 733b41fd86 feat(security): R4 S3 — abuse & leak hardening peter 2026-07-23 03:38:57 +02:00
  • dce191f1c0 fix(messages): re-review — degrade gracefully when partner has no key peter 2026-07-23 03:21:44 +02:00
  • 26e6562921 fix(messages): address S2 review — partner key refresh + reactive me peter 2026-07-23 03:11:35 +02:00
  • 1119eb0218 feat(messages): R4 S2 — forgotten-passphrase reset for E2EE peter 2026-07-23 02:57:27 +02:00
  • 1af679bfc5 fix(dev): support 127.0.0.1 dev OAuth end-to-end peter 2026-07-23 01:35:53 +02:00
  • bacef11e33 fix(auth): address second-round review findings peter 2026-07-23 01:24:34 +02:00
  • c837b59373 fix(auth): address R4 S1 code-review findings peter 2026-07-23 01:04:09 +02:00
  • b4d2ad75e0 feat(dev): OAuth redirect returns to the origin that started it peter 2026-07-23 00:48:20 +02:00
  • b761a448a8 fix(auth): dismiss the verify banner once the user acts peter 2026-07-23 00:34:11 +02:00
  • a851fb213b feat(auth): R4 S1 — fix auth dead ends peter 2026-07-23 00:15:26 +02:00
  • 092df4f7eb Merge: promote dev to prod peter 2026-07-22 04:53:28 +02:00
  • e663247791 chore: prettier-format release notes peter 2026-07-22 04:52:37 +02:00
  • 745ba10f2e release: 0.52.0 — R3 honest states (loading/error across the app) peter 2026-07-22 04:51:32 +02:00
  • 047b2d2019 Merge R3: honest states (loading/error across the app) peter 2026-07-22 04:51:00 +02:00
  • 4871bf4548 fix(ui): R3 review — give the Stats API-usage block its own loading/error state peter 2026-07-22 04:49:40 +02:00
  • 1c6b7a9a5a feat(ui): R3 S3 — surface swallowed errors peter 2026-07-22 04:43:02 +02:00
  • b5573b62d1 feat(ui): shared LoadingState — a centered accent spinner instead of plain loading text peter 2026-07-22 04:35:02 +02:00
  • bf96318dea feat(ui): R3 S2 — loading rows for blank-flash pages, error paths for forever-loading ones peter 2026-07-22 04:24:38 +02:00
  • a393fd2fb1 fix(ui): R3 S1 review fixes — don't blank data on transient refetch errors peter 2026-07-22 04:14:46 +02:00
  • d9a08892a5 feat(ui): R3 S1 — honest error states across the pages peter 2026-07-22 03:58:51 +02:00
  • 01ea9ab8e1 Merge: promote dev to prod peter 2026-07-22 03:19:24 +02:00
  • 2427de3bbc Merge: downloads naming/cleanup fixes (0.51.1) peter 2026-07-22 03:18:36 +02:00
  • 56111ceadf release: 0.51.1 — shell-safe names, re-download title refresh, GC orphan sweep peter 2026-07-22 03:18:36 +02:00
  • fa35925cc6 fix(downloads): shell-safe names, refresh display_name on re-download, GC orphan sweep peter 2026-07-22 03:18:14 +02:00
  • 9089096d1e Merge: promote dev to prod peter 2026-07-22 02:53:15 +02:00
  • e21c6f6b92 Merge R2.5: downloads correctness & UX (0.51.0) peter 2026-07-22 02:52:01 +02:00
  • bce6175983 release: 0.51.0 — downloads correctness & UX (iOS playability, 720p, re-download, ASCII names) peter 2026-07-22 02:52:01 +02:00
  • ebfddf330a fix(downloads): second-round review fixes (fork on re-download, title fallbacks) peter 2026-07-22 02:48:16 +02:00
  • cae5702fbb fix(downloads): address code-review findings on the R2.5 mini-epic peter 2026-07-22 02:21:05 +02:00
  • e46f215ada feat(downloads): ASCII-slug names, universal browser playability, force re-download peter 2026-07-22 02:04:27 +02:00
  • 8fd0049dce fix(downloads): make shared files iOS-playable + default to 720p peter 2026-07-22 01:19:31 +02:00
  • e34cd7b04f Merge: promote dev to prod peter 2026-07-22 00:34:57 +02:00
  • 51781819db release: 0.50.0 — R1 quick-win sweep peter 2026-07-22 00:31:47 +02:00
  • a3c8341c76 fix(release-notes): ring the newest entry when the highlight version is unknown peter 2026-07-22 00:00:44 +02:00
  • f76cd6ef36 fix(quota): don't let the demo account persist deep_requested (S1, finding 2) peter 2026-07-22 00:00:44 +02:00
  • cb4d06bb3d fix(downloads): cap the media filename by BYTES, not characters peter 2026-07-22 00:00:44 +02:00
  • 04b002b2b0 Merge: R1 S3 — i18n + a11y nits (modal/close i18n, Toaster live region, unsubscribe error) peter 2026-07-21 23:40:02 +02:00
  • e832b401ac fix(a11y): don't force atomic re-announce of the whole toast stack peter 2026-07-21 23:36:27 +02:00
  • 6ed08383e7 fix(errors,a11y): review round 1 — drop redundant onErrors, stabilize the live region peter 2026-07-21 23:29:51 +02:00
  • d3e466774c fix(errors): surface four mutations that failed silently (C-3.23) peter 2026-07-21 23:13:53 +02:00
  • b769439229 a11y(toaster): announce toasts to screen readers (U-F) peter 2026-07-21 23:13:53 +02:00
  • 58b9691467 i18n(a11y): translate the modal + Welcome close buttons and the feed fallback (C-3.22) peter 2026-07-21 23:13:53 +02:00
  • 4141a5ac17 Merge: R1 S2 — frontend interaction quick wins (5 fixes) peter 2026-07-21 22:58:53 +02:00
  • 4f7153bb7d fix(toast,overlay): review round 1 — close toast-timer edge, document Escape limit peter 2026-07-21 22:37:42 +02:00
  • ed4b5e6413 fix(toast): clear a toast's auto-dismiss timer before re-arming it (C-3.25) peter 2026-07-21 22:29:40 +02:00
  • 94dfa6a34b fix(player): Escape coordination, focused-Space, light-theme menus (U-C, U-3.1.4, U-3.3.12) peter 2026-07-21 22:29:40 +02:00
  • f590be2bef fix(a11y): keyboard-reorder for panel groups (U-3.1.5) peter 2026-07-21 22:29:39 +02:00
  • 3f0f918689 Merge: R1 S1 — backend safety quick wins (7 fixes) peter 2026-07-21 22:14:23 +02:00
  • 3d5662df22 perf(frontend): keep the changelog out of the eager App chunk (C-3.19) peter 2026-07-21 21:47:45 +02:00
  • 0317f53b1e fix(downloads): disambiguate the media path by asset id (C-3.1) peter 2026-07-21 21:47:45 +02:00
  • 0dfc5e9ea2 fix(quota): keep the demo account off three quota-burning paths (C-3.6) peter 2026-07-21 21:47:45 +02:00
  • 3dfa35f396 perf(notifications): bulk-delete trimmed read notifications (C-4.1) peter 2026-07-21 21:47:26 +02:00
  • dd99206ed2 fix(worker): don't revive a cancelled job when requeuing a busy asset (C-3.10) peter 2026-07-21 21:47:26 +02:00
  • 4f31ae797d fix(auth): rate-limit request-access + close two token races (C-3.5, C-3.11) peter 2026-07-21 21:47:26 +02:00
  • 47d955b828 Merge: promote dev to prod peter 2026-07-21 04:32:10 +02:00
  • 9445e4d71a release: 0.49.0 — R2 guardrails & test net peter 2026-07-21 04:30:51 +02:00
  • d717dfec74 Merge: R2 S3 — tighten the compiler (noUncheckedIndexedAccess + zero-fallout flags) peter 2026-07-21 04:28:02 +02:00
  • e006cc879f refactor(frontend): satisfy noUncheckedIndexedAccess (S3b) peter 2026-07-21 04:05:49 +02:00
  • 3fe0897fd3 build(frontend): enable the zero-fallout compiler flags (S3a) peter 2026-07-21 03:47:55 +02:00
  • 62cab204ea Merge: R2 S2b — backend pytest harness (pure-logic tests + isolated test image) peter 2026-07-21 03:43:38 +02:00
  • 4bae9113e4 test(backend): pin the traversal guard against a string-prefix bypass peter 2026-07-21 03:36:42 +02:00
  • 33dbf70313 test(backend): pure-logic pytest harness, run in an isolated test image peter 2026-07-21 03:29:24 +02:00
  • eea1a22572 Merge: R2 S2a — e2e scroll-restore fix + columnSort/linkify unit tests peter 2026-07-21 03:17:16 +02:00
  • bdb0185db8 test(frontend): unit-test columnSort and linkify peter 2026-07-21 03:13:26 +02:00
  • 3c119b66c7 test(e2e): click a visible channel card in the scroll-restore test peter 2026-07-21 03:10:19 +02:00
  • f95d889a92 Merge: R2 S1b — ESLint flat config + Prettier gate lanes peter 2026-07-21 02:56:45 +02:00
  • d222751fe2 chore: add .git-blame-ignore-revs for the Prettier format pass peter 2026-07-21 02:26:53 +02:00
  • e257e2aca0 style(frontend): Prettier config + one-time repo-wide format pass peter 2026-07-21 02:26:40 +02:00
  • 04ecd8b3a7 build(frontend): add ESLint flat config as a gate lane peter 2026-07-21 02:25:12 +02:00
  • dc991111a9 Merge: R2 S1 — quality gate wiring (build typecheck, knip pin, publish gate) peter 2026-07-21 02:17:25 +02:00
  • 33abf2a4d8 fix(build): stop the host tree leaking into the image, split the tsc lanes peter 2026-07-21 01:37:53 +02:00
  • 172ab8008f build(frontend): type-check the production build, pin knip peter 2026-07-21 01:07:54 +02:00
  • 25f0d71dfc chore(frontend): unexport two ConfirmProvider-internal types peter 2026-07-21 01:07:54 +02:00
  • 486a5cd1b0 Merge: promote dev to prod peter 2026-07-21 00:47:08 +02:00
  • 855ae0c995 release: 0.48.0 — playlist column headers, and sorting stops rewriting the list peter 2026-07-21 00:46:41 +02:00
  • a94da079ba Merge: E4 S4 — playlist hybrid table (view-sort + explicit save) peter 2026-07-21 00:43:36 +02:00
  • f87d58d8d7 fix(playlists): name the view state in one sentence peter 2026-07-21 00:40:49 +02:00
  • cdec80547e fix(playlists): UAT round 1 — drag lag, an invisible default sort, dialog layout peter 2026-07-21 00:03:07 +02:00
  • 6dc7b9268a fix(playlists): the table overflowed the page scroller peter 2026-07-20 23:48:50 +02:00
  • efd46a01c8 fix(playlists): address the review round — 11 findings peter 2026-07-20 23:45:31 +02:00