This website requires JavaScript.
fdc1eabbe0
fix(e24): the review's seven frontend defects on the Home surface
peter
2026-09-08 03:03:45 +02:00
84f4b20e5a
fix(e24): the review's three backend defects — blocklist, shelf order, next episode
peter
2026-09-08 02:32:08 +02:00
828dad015c
feat(e24): reach the Home surface — the landing toggle, a palette command, Shift+W
peter
2026-09-08 00:06:34 +02:00
82914b56ca
fix(e24): the Home surface's three UAT findings — Back, the reroll, and a show card
peter
2026-09-06 05:38:28 +02:00
ccd5f3739a
feat(e24): pin to the comfort shelf from every card and row
peter
2026-09-06 05:07:06 +02:00
f3c0b7be23
feat(e24): the Home surface — one question, one answer, both sources
peter
2026-09-06 04:14:14 +02:00
53b50231ff
feat(e24): the Home surface read-model — hero, resume rail, comfort shelf
peter
2026-09-06 03:31:26 +02:00
5703c4d713
fix(plex): a null progress timestamp must sort a rail row last, not raise
peter
2026-09-06 03:31:09 +02:00
013f19faca
refactor(plex): move content_libs down into the query layer
peter
2026-09-06 03:31:02 +02:00
8d9a99ce54
release: 0.82.0 (feature/e10-platform-ergonomics)
v0.82.0
peter
2026-09-06 02:37:10 +02:00
45dd4bdda7
chore(release): 0.82.0 — E10 Platform & Ergonomics
peter
2026-09-06 02:37:07 +02:00
dac391a890
fix(e10): review round 3 — settle the focus race in a browser instead of guessing again
peter
2026-09-06 02:22:23 +02:00
4b33036e7c
fix(e10): review round 2 — revert what round 1 got wrong, narrow what it got too broad
peter
2026-09-06 01:57:32 +02:00
80dea4f307
fix(e10): review round 1, part 2 — the docs the epic invalidated, and three contracts made real
peter
2026-09-06 01:30:40 +02:00
20e17c0ccb
fix(e10): review round 1 — the boundary that did not bind, and 14 more
peter
2026-09-05 23:52:29 +02:00
7d302f71b7
feat(e10): let an ultrawide buy bigger cards instead of more of them
peter
2026-09-05 22:22:28 +02:00
f99240d8ca
fix(e10): stop the hidden chip measurer scrolling the whole app sideways
peter
2026-09-05 22:22:14 +02:00
cc8cf96c19
feat(e10): a jump-to palette on Ctrl/Cmd+K
peter
2026-09-05 21:33:29 +02:00
86163958d6
feat(e10): one keyboard cheat sheet for the whole app
peter
2026-09-05 21:15:42 +02:00
12822a9e04
feat(e10): put every keyboard shortcut in one table
peter
2026-09-05 20:58:17 +02:00
928eac4c89
feat(e10): open the app's menu with a right-click, starting with playlist rows
peter
2026-09-05 19:59:56 +02:00
b28be682fe
feat(e10): make "move a video to another list" one atomic request
peter
2026-09-05 19:59:41 +02:00
7e97559615
feat(e10): put the 1024x768 size contract inside the primitives
peter
2026-09-05 18:49:48 +02:00
721467ef69
feat(e10): finish the mappable Button migration, including the ui/ layer itself
peter
2026-09-05 18:41:41 +02:00
47e2293de3
feat(e10): migrate the notification, message, auth and Plex action buttons
peter
2026-09-05 18:39:10 +02:00
29bb914a95
feat(e10): re-aim the Button variants at the paint the app actually uses, and migrate the first 15 sites
peter
2026-09-05 18:31:00 +02:00
5bfcf5d83a
refactor(e10): move the platform components into components/ui/ and enforce the boundary
peter
2026-09-05 16:58:29 +02:00
31fa554b87
release: 0.81.0 (improvement/e12-security-ops)
v0.81.0
peter
2026-09-05 04:54:26 +02:00
6a0efba477
chore(release): 0.81.0 — E12 Security & Ops Hardening
peter
2026-09-05 04:54:15 +02:00
9f28f46839
fix(e12): unbreak the gate, and stop printing a command that can strand the restore
peter
2026-09-05 04:41:21 +02:00
14f1c97c0a
fix(e12): a bare up -d picks the wrong compose file, and recreates the database
peter
2026-09-05 04:31:13 +02:00
fc56f514b3
fix(e12): the restart hint pointed at the one command that undoes a rollback
peter
2026-09-05 04:18:33 +02:00
358d722ce9
fix(e12): close what round one broke, and revert two fixes that overreached
peter
2026-09-05 04:02:57 +02:00
fe38dfbcca
fix(e12): close the eighteen findings the E12 review round left standing
peter
2026-09-05 03:41:58 +02:00
f98b060e2b
feat(admin): an account panel, and a set-password link that needs no email
peter
2026-09-05 01:46:58 +02:00
bc9e34d0ae
fix(auth): close the three leftovers E9.5 logged but kept out of its diff
peter
2026-09-05 01:35:09 +02:00
0cc450d1c9
fix(downloads,sync): bound what one user can make the server fetch, download and spend
peter
2026-09-05 01:02:56 +02:00
688efb9ed6
feat(selfhost): license the repo, and make Plex actually usable on the public compose files
peter
2026-09-05 00:53:26 +02:00
ca4e559cc7
fix(ops): make backup/restore work, and give upgrades a pin and a rollback
peter
2026-09-05 00:50:07 +02:00
e23128b4a1
release: 0.80.0 (improvement/e9.5-onboarding-access)
v0.80.0
peter
2026-09-04 23:28:30 +02:00
0d5f8f0708
chore(release): 0.80.0 — E9.5 Onboarding & Access flow
peter
2026-09-04 23:28:23 +02:00
a03bf8d371
fix(auth): stop erasing a reset link the signed-in tree never reads (E9.5 review round 4)
peter
2026-09-04 23:14:46 +02:00
3dc14402b0
test(auth): pin what rounds 1 and 2 left unpinned (E9.5 review round 3)
peter
2026-09-04 23:04:09 +02:00
540ca244c8
revert(auth): the newest registration does not own an unverified account (E9.5 review round 2)
peter
2026-09-04 22:54:52 +02:00
563fa0513d
fix(auth): close what the epic's own review found (E9.5 review round 1)
peter
2026-09-04 22:42:15 +02:00
10c0ca4cf7
feat(email): write to people in their own language (E9.5 S7)
peter
2026-09-04 20:29:33 +02:00
a76bab9b34
feat(auth): one mail, one click — the approval mail carries the confirmation link (E9.5 S6)
peter
2026-09-04 04:05:28 +02:00
7acdf5d577
feat(admin): surface the sign-ups that are stuck outside, and let an admin finish letting them in (E9.5 S5)
peter
2026-09-04 03:27:48 +02:00
b1086e05dc
fix(auth): stop drawing a reset form the link can no longer fill (E9.5 S4)
peter
2026-09-04 02:38:01 +02:00
ed91c83dd7
fix(auth): name the state and the address behind a refused sign-in (E9.5 S4)
peter
2026-09-04 01:56:55 +02:00
a614ee2435
feat(auth): show the Google address beside the one the account registered with (E9.5 S3)
peter
2026-09-04 01:23:11 +02:00
c74487fbb3
fix(auth): keep the address the user registered with, and let it sign them in (E9.5 S3)
peter
2026-09-04 01:07:54 +02:00
876cece881
fix(auth): match identity on a canonical email, so one Gmail mailbox is one account (E9.5 S3)
peter
2026-09-04 00:14:12 +02:00
e5997ca567
fix(auth): consume a verification token that arrives without a page load (E9.5 S2)
peter
2026-09-03 23:57:18 +02:00
c134b514c1
fix(auth): confirm an emailed verification link wherever it is opened (E9.5 S2)
peter
2026-09-03 23:45:31 +02:00
243869401a
fix(auth): stop discarding a legitimate password on admin approval (E9.5 S1)
peter
2026-09-03 23:32:34 +02:00
7339a0b84b
release: 0.79.0 (improvement/e9-playlist)
v0.79.0
peter
2026-09-03 21:59:31 +02:00
c960c07a6a
release: 0.79.0 notes + version bump
peter
2026-09-03 21:59:09 +02:00
3cfdb36f06
test(format): pin the sub-minute truncation (E9 R2)
peter
2026-09-03 21:51:14 +02:00
ada95d04a4
fix(playlists): one rendering for a playlist total, honest below a minute (E9 R1)
peter
2026-09-03 21:43:04 +02:00
1b004e6ccf
feat(plex): total playtime in the playlist header (E9 S3)
peter
2026-09-02 18:30:06 +02:00
95c33e0b0f
refactor(playlists): compact the playlist header to two rows (E9 12A)
peter
2026-09-02 03:45:07 +02:00
4e6bcbc078
fix(playlists): stop the table header shifting up on first scroll (E9 12B)
peter
2026-09-01 03:16:20 +02:00
e17fb5bbf5
feat(playlists): total playtime in header + sticky-header fade fix (E9 S1)
peter
2026-09-01 03:09:53 +02:00
a9044ece50
release: 0.78.8 (improvement/email-html-alternative)
v0.78.8
peter
2026-09-02 03:24:59 +02:00
473aafd1c8
release: bump VERSION to 0.78.8 + release notes
peter
2026-09-02 03:24:56 +02:00
7019e3afdf
fix(email): give every mail an HTML alternative so its link is clickable
peter
2026-09-02 03:13:23 +02:00
c81b110637
release: 0.78.7 (bug/verify-link-and-approval-lockout)
v0.78.7
peter
2026-09-02 02:31:19 +02:00
2ecc70ca6d
release: bump VERSION to 0.78.7 + release notes
peter
2026-09-02 02:31:14 +02:00
f8c63e80c2
fix(auth): widen the 0078 backfill so revoke victims who verified are rescued too
peter
2026-09-02 02:21:46 +02:00
3ac3d382e7
fix(auth): stop the address-bar mirror eating emailed auth tokens, and unlock revoked accounts
peter
2026-09-02 01:28:45 +02:00
94c62ca699
release: 0.78.6 (feat/admin-invite-delete-email-health)
v0.78.6
peter
2026-09-02 00:36:52 +02:00
1fe24d374a
docs(tests): correct the deny-vs-delete rationale in the invites test file
peter
2026-09-02 00:15:21 +02:00
2cba6b9fca
docs: round-3 copy corrections, and pin the two behaviours nothing was guarding
peter
2026-09-02 00:06:01 +02:00
8d7aaad9a8
fix: warn before the delete, not after — plus round-2 copy and a11y corrections
peter
2026-09-01 23:50:29 +02:00
85043013f0
fix: address the feature review — accurate copy, reachable controls, real coverage
peter
2026-09-01 23:31:49 +02:00
44f626f732
feat(admin): delete a whitelist entry, and stop hiding a broken mail setup
peter
2026-09-01 23:09:25 +02:00
24c93cbb83
docs: name the Configuration tab as it is rendered, drop an unused fixture
peter
2026-09-01 22:15:56 +02:00
cb1f4f00b0
docs(auth): correct the last round of over-claiming comments and notes
peter
2026-09-01 22:02:43 +02:00
f6e1d1e69f
fix(auth): keep the admin notice unconditional on the register path
peter
2026-09-01 21:48:40 +02:00
b64c3f514d
fix(auth): drop the invite reopen — keep the fix to the lost account alone
peter
2026-09-01 21:34:38 +02:00
b5a1002412
fix(auth): reopen a pre-dated approval instead of auto-granting it
peter
2026-09-01 21:18:14 +02:00
ea931dca30
fix(auth): honour an approval granted before sign-up instead of parking the account
peter
2026-09-01 20:56:43 +02:00
d954e71a77
fix(auth): commit the account on registration so a pre-approved sign-up isn't lost
peter
2026-09-01 16:25:05 +02:00
602f62967a
release: 0.78.4 (bug/plex-transcode-hls-startposition)
v0.78.4
peter
2026-08-30 20:33:15 +02:00
ba00b50dea
release: 0.78.4 — fix Plex transcode playback stall/rebuffer
peter
2026-08-30 20:32:56 +02:00
92adb593c8
fix(plex): start hls.js at position 0 for the transcode/remux HLS session
peter
2026-08-30 20:09:00 +02:00
66132b6dda
release: 0.78.3 (feature/plex-playback-class-filter)
v0.78.3
peter
2026-08-30 19:09:22 +02:00
d09f021f0c
release: 0.78.3 — filter the Plex feed by playback class
peter
2026-08-30 19:09:08 +02:00
d7e9240e54
merge main (0.78.2) into playback-class before release
peter
2026-08-30 19:08:08 +02:00
f2fa49b778
release: 0.78.2 (feature/plex-hdr-hw-tonemap)
v0.78.2
peter
2026-08-30 18:56:32 +02:00
d4ed45b2eb
release: 0.78.2 — HW HDR→SDR tonemap for 10-bit/HDR Plex transcode
peter
2026-08-30 18:56:18 +02:00
375f6e58be
merge main (0.78.1) into tonemap before release
peter
2026-08-30 18:55:14 +02:00
1a102ce81a
release: 0.78.1 (bug/download-mediakind-probe)
v0.78.1
peter
2026-08-30 18:47:05 +02:00
bfd45a155e
release: 0.78.1 — download media_kind from a file probe (BUG 2)
peter
2026-08-30 18:46:33 +02:00
1102ad6a28
fix(downloads): make the probe verdict authoritative over yt-dlp info by probe-ran, not per-field
peter
2026-08-30 18:09:26 +02:00
c1a3b7b935
fix(plex): gate the part-key re-probe to single-version items; drop dead i18n key; cover cross-facet narrowing
peter
2026-08-30 17:58:38 +02:00
bf98b48517
fix(plex): re-probe on file replace, HU parity, public class const, playback-class test gaps
peter
2026-08-30 17:51:33 +02:00
b563155a37
docs(plex): correct the cull-yield fallback comment to name the real route 404s
peter
2026-08-30 15:18:26 +02:00
915319fa35
fix(plex): make the HW->SW fallback supersede-check atomic; honest cull yield
peter
2026-08-30 15:11:37 +02:00