-
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