-
eb922cb589
feat(channels): surface full-history pull + honest stored/total count on the channel page (S3)
peter
2026-07-28 02:22:36 +02:00
-
ae14aa1c6a
fix(share): declare og:image dimensions so the FB card includes the image on first scrape
peter
2026-07-28 01:54:14 +02:00
-
40acf104a1
feat(share): spell out og:image:secure_url + type for the Facebook scraper
peter
2026-07-28 01:40:22 +02:00
-
cdcffb8c91
feat(downloads): categorize download failures + a readable error dialog (S2)
peter
2026-07-28 01:40:22 +02:00
-
3f15f35256
feat(downloads): S1 UI quick wins — queue default, dates, auto-link, thumb fallback
peter
2026-07-28 01:21:50 +02:00
-
-
ab1272beb4
Merge: promote dev to prod
peter
2026-07-28 00:25:52 +02:00
-
-
0d655e6f88
fix(api): un-export types used only within their own module (knip gate)
peter
2026-07-28 00:24:38 +02:00
-
4d34322b7c
Merge R7 · Frontend API layer → 0.56.0
peter
2026-07-28 00:18:40 +02:00
-
-
175e49b361
chore(release): 0.56.0 — R7 frontend API layer
peter
2026-07-28 00:18:39 +02:00
-
1223df6ccc
refactor(api): code-review fixes (R7 S3b review round 1)
peter
2026-07-27 23:45:02 +02:00
-
926ebe7ffa
refactor(api): extract the messaging domain to api/messaging.ts (R7 S3b·4)
peter
2026-07-27 23:26:23 +02:00
-
3232a53c46
refactor(api): extract the plex domain to api/plex.ts (R7 S3b·3)
peter
2026-07-27 23:23:31 +02:00
-
cc38d8bdfa
refactor(api): extract the downloads domain to api/downloads.ts (R7 S3b·2)
peter
2026-07-27 23:17:12 +02:00
-
49f8c57c89
refactor(api): extract the shared HTTP machinery to api/core.ts (R7 S3b·1)
peter
2026-07-27 23:08:48 +02:00
-
90749a9e45
refactor(fe): eliminate every explicit any; enforce no-explicit-any (R7 S3a·4)
peter
2026-07-27 22:57:33 +02:00
-
2d4ecdb6c5
refactor(api): honest FeedResponse; derive pageTitleKey from the registry (R7 S3a·2-3)
peter
2026-07-27 22:45:30 +02:00
-
5de6be8fde
refactor(api): literal-union the closed-value string fields (R7 S3a·1)
peter
2026-07-27 22:40:11 +02:00
-
ca0312d1a1
test(fe): lock query-key factory shapes; unify nullable guard (R7 S2 review)
peter
2026-07-27 22:24:48 +02:00
-
34297b696f
refactor(fe): migrate plex/messaging/admin/downloads/notifications to qk (R7 S2b)
peter
2026-07-27 22:10:03 +02:00
-
ad86d6d126
refactor(fe): query-key factory + migrate feed/channels/playlists (R7 S2a)
peter
2026-07-27 21:48:35 +02:00
-
d0aa1cf9a7
refactor(api): code-review fixes (R7 S1)
peter
2026-07-26 22:17:04 +02:00
-
16585d868d
refactor(api): type req<T>() and tighten the error layer (R7 S1)
peter
2026-07-26 21:51:24 +02:00
-
-
8ee46aac09
Merge: promote dev to prod
peter
2026-07-26 21:30:05 +02:00
-
-
cb925e3ab9
Merge R6 · API contract & transaction ownership → 0.55.0
peter
2026-07-26 21:26:26 +02:00
-
-
c86a15c252
chore(release): 0.55.0 — R6 API contract & transaction ownership
peter
2026-07-26 21:25:36 +02:00
-
351eb5fd13
test(plex)+cleanup(quota): S2 code-review fixes (R6 S2)
peter
2026-07-26 19:08:29 +02:00
-
5809f3e431
refactor(quota): own the quota session; Plex per-section commit (R6 S2)
peter
2026-07-26 15:32:46 +02:00
-
921c2bf5a4
test(db): harden the DB lane per code-review (R6 S3)
peter
2026-07-26 15:09:25 +02:00
-
39f726a5e6
test(db): /facets regression + S3a jsonb-null normalization (R6 S3)
peter
2026-07-26 13:54:42 +02:00
-
4b6bc54aa8
test(db): stand up the DB-backed pytest lane (R6 S3b)
peter
2026-07-26 13:47:07 +02:00
-
81d21fdeac
fix(api): accept fractional progress seconds (R6 S1b code-review round 1)
peter
2026-07-26 05:39:32 +02:00
-
b0894a9994
test(api): request-model validation for the S1b 500-fixes (R6 S1b)
peter
2026-07-26 05:09:35 +02:00
-
66f4ac30d0
refactor(api): Pydantic request models for plex routes + status unification (R6 S1b)
peter
2026-07-26 05:08:27 +02:00
-
f4bf1bc18f
refactor(api): Pydantic request models for downloads routes (R6 S1b)
peter
2026-07-26 05:02:49 +02:00
-
8bf5026e7c
refactor(api): Pydantic request models for playlists routes (R6 S1b)
peter
2026-07-26 04:58:37 +02:00
-
ab83aae8bb
refactor(api): Pydantic request models for setup & admin routes (R6 S1b)
peter
2026-07-26 04:56:55 +02:00
-
99d65cea23
refactor(api): Pydantic request models for saved-views & feed state (R6 S1b)
peter
2026-07-26 04:53:45 +02:00
-
a622470a28
refactor(api): Pydantic request models for small route modules (R6 S1b)
peter
2026-07-26 04:51:25 +02:00
-
d982e8b9ae
refactor(api): Pydantic request models for channels routes (R6 S1b)
peter
2026-07-26 04:46:40 +02:00
-
9fe050279e
style(api): complete the S1a import-order fix (R6 S1a follow-up)
peter
2026-07-26 04:44:22 +02:00
-
cf8bbad8a1
refactor(api): code-review fixes — widen iso() to date, fix import order (R6 S1a)
peter
2026-07-26 04:25:40 +02:00
-
c5533b0ac5
refactor(api): shared serializer + ownership + write-scope helpers (R6 S1a)
peter
2026-07-26 04:17:08 +02:00
-
-
edb0f8a4e1
Merge: promote dev to prod
peter
2026-07-26 03:39:41 +02:00
-
-
a711b51224
Merge R5: data integrity (downloads & sync) + player big-view overhaul → 0.54.0
peter
2026-07-26 03:38:40 +02:00
-
-
d3a3f41b63
fix(player): left-align the big-view control bar so overflow scrolls from the start
peter
2026-07-26 03:34:05 +02:00
-
375c814bb6
fix(player): dock the big-view control bar in its own strip (UAT follow-up)
peter
2026-07-26 03:18:15 +02:00
-
51193105a7
fix(player): first-class maximise/fullscreen view (UAT round)
peter
2026-07-26 02:48:46 +02:00
-
475bd7fef8
chore(release): 0.54.0 — R5 data integrity (finalize version + release notes)
peter
2026-07-26 01:40:43 +02:00
-
4fe40a92e5
Merge dev (0.53.1 Plex hotfix) into r5-data-integrity
peter
2026-07-26 01:39:52 +02:00
-
-
-
-
3a982b8be8
Merge: promote dev to prod
peter
2026-07-26 01:24:30 +02:00
-
-
543842e7fb
Merge: fix /facets 500 on a metadata-poor Plex library (0.53.1)
peter
2026-07-26 01:23:09 +02:00
-
-
58f836bcd8
fix(plex): stop /facets 500 on a metadata-poor library
peter
2026-07-25 18:22:07 +02:00
-
-
5fe6d32d38
fix(plex): give the sweep's boot-time cutoff cross-clock slack
peter
2026-07-24 04:52:41 +02:00
-
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