Commit Graph

  • 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