-
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
-
83e673718f
feat(playlists): hybrid table over the drag list, and guard its destructive paths
peter
2026-07-20 23:30:14 +02:00
-
89000538d4
refactor(table): extract the column header out of DataTable
peter
2026-07-20 23:18:46 +02:00
-
-
ca9fd2a5ce
Merge: promote dev to prod
peter
2026-07-20 22:33:37 +02:00
-
-
742cf2df73
release: 0.47.0 — relative timestamps fixed, and localized by the platform
peter
2026-07-20 22:31:30 +02:00
-
72bd1d9e9d
Merge: relative time localized by Intl.RelativeTimeFormat
peter
2026-07-20 22:30:40 +02:00
-
-
93b793dea2
Merge: relative-time tier shift fix + the first unit tests
peter
2026-07-20 22:30:40 +02:00
-
-
7cd5adc78f
refactor(format): localize relative time with Intl.RelativeTimeFormat
peter
2026-07-20 22:28:09 +02:00
-
-
dea63d8fd2
refactor(format): hoist the relative-time tiers and lock their invariants
peter
2026-07-20 22:17:51 +02:00
-
da728f0c5e
test(format): cover the relative-time tier boundaries
peter
2026-07-20 03:06:50 +02:00
-
c61bc4ff74
fix(format): relative time labelled every tier one unit too small
peter
2026-07-20 03:06:42 +02:00
-
-
8501509acb
Merge: promote dev to prod
peter
2026-07-20 01:32:45 +02:00
-
-
758e655642
release: 0.46.0 — channel manager overhaul (table/cards, About, shared sort, paging)
peter
2026-07-20 01:31:15 +02:00
-
5210e9c6fe
Merge: E4 managers overhaul — bottom pager, About column, table/cards layouts (S1–S3)
peter
2026-07-20 01:29:53 +02:00
-
-
307ab96d84
fix(managers): two-way menu flip + extract useCardPager
peter
2026-07-20 01:24:31 +02:00
-
ab5f3c9fbb
fix(managers): address the E4 S3 code-review round 3 findings
peter
2026-07-20 01:10:13 +02:00
-
c630d29ff6
fix(managers): address the E4 S3 code-review round 2 findings
peter
2026-07-20 00:56:47 +02:00
-
260de48f41
fix(managers): the tag picker drew under the next card
peter
2026-07-20 00:42:33 +02:00
-
be9d17ebb1
fix(managers): address the E4 S3 code-review findings
peter
2026-07-20 00:34:38 +02:00
-
a50608d026
feat(managers): actions-first discovery table, tabs in the back chain, pager scrolls to top
peter
2026-07-20 00:14:23 +02:00
-
dff4152522
feat(managers): paginate the card layout + its top scroll-fade
peter
2026-07-19 23:28:43 +02:00
-
9c4dd0163a
feat(managers): shared sort across the table and card layouts
peter
2026-07-19 23:09:54 +02:00
-
875c7ad741
feat(managers): richer channel cards + drop the rows layout, cap the channel column
peter
2026-07-19 22:42:09 +02:00
-
b659ad800c
fix(managers): key the row-layout primary cell + measured rowEst
peter
2026-07-19 21:59:28 +02:00
-
1703d4ab5e
feat(managers): table / cards / rows layouts for the channel manager (E4 S3)
peter
2026-07-19 21:52:16 +02:00
-
5ea82095a1
refactor(feed): extract virtualization engine into a generic VirtualGrid<T>
peter
2026-07-19 21:36:54 +02:00
-
1fdc01c0cd
feat: linkify resolves '<platform>: @handle' social mentions
peter
2026-07-19 21:05:00 +02:00
-
36641b5bc0
feat: linkify also catches www.* and bare domain.tld/path URLs
peter
2026-07-19 20:51:29 +02:00
-
b741a8fd28
feat(managers): clickable links in descriptions + real SVG country flags
peter
2026-07-19 20:42:28 +02:00
-
8abb78b0bd
refactor(managers): full About overlay + center the wider channel content (E4 S2 follow-up)
peter
2026-07-19 20:25:06 +02:00
-
9db1d3fba3
feat(managers): About column with hover overlay on both channel tables (E4 S2)
peter
2026-07-19 19:35:07 +02:00
-
669dc3f2a6
refactor(managers): tidy channel header + column filters + move Actions (E4)
peter
2026-07-19 18:24:25 +02:00
-
83b60df112
feat(managers): bottom pager on the channel tables (E4 S1)
peter
2026-07-19 15:45:09 +02:00
-
-
9f26ab3c80
Merge: promote dev to prod
peter
2026-07-19 06:09:30 +02:00
-
-
97611be9c4
release: 0.45.1 — player & share fixes
peter
2026-07-19 06:08:06 +02:00
-
870cf7e52d
Merge: player & share polish (bugs 5, 8, 9)
peter
2026-07-19 06:07:05 +02:00
-
-
f8826b846b
fix(plex): fill the screen in native fullscreen
peter
2026-07-19 05:38:42 +02:00
-
42ae451c1b
fix(share): robust clipboard copy with an iOS-safe fallback
peter
2026-07-19 05:38:42 +02:00
-
31a8835f7f
fix(player): revert the YouTube modal to its smaller base size
peter
2026-07-19 05:38:42 +02:00
-
-
29b8dd4629
Merge: promote dev to prod
peter
2026-07-19 04:59:36 +02:00
-
-
86a6d696b8
release: 0.45.0 — feed view modes + Plex cast-explore
peter
2026-07-19 04:58:36 +02:00
-
901c952739
Merge: Plex cast-explore — full-cast filtering, AND/OR, person cards, backfill
peter
2026-07-19 04:51:35 +02:00
-
-
af6faf476f
feat(plex): full-library cast backfill via a batched rich re-sync (S1b)
peter
2026-07-19 04:50:45 +02:00
-
12d17ec7b0
polish(plex): match the feed rail's segmented-pill look for the any/all toggle
peter
2026-07-19 04:31:02 +02:00
-
d91f27a22e
fix(plex): NULL-safe orphan-people prune (review)
peter
2026-07-19 03:53:03 +02:00
-
33c60965d9
feat(plex): prune orphaned people after each sync (S4)
peter
2026-07-19 03:50:00 +02:00
-
05105197e9
feat(plex): person cards in the grid for the filtered actors (S3)
peter
2026-07-19 03:46:31 +02:00
-
6f28ce36a7
feat(plex): actor filter AND/OR toggle (default OR) (S2)
peter
2026-07-19 03:37:57 +02:00