-
2a70d145e9
Merge: promote dev to prod
main
peter
2026-07-30 05:27:10 +02:00
-
-
dfa610a059
chore: bump VERSION to 0.58.1 (ship Gitea-URL change to prod)
dev
peter
2026-07-30 05:25:21 +02:00
-
df8a2a6d52
chore: point repo/registry URLs at git.b1fr0st.eu (Forgejo->Gitea migration)
peter
2026-07-30 03:36:23 +02:00
-
bca67a3547
Merge: promote dev to prod
peter
2026-07-29 18:33:57 +02:00
-
-
0d1f1c9fa5
Merge welcome-readme-refresh → dev (0.58.0 landing refresh)
peter
2026-07-29 18:29:18 +02:00
-
-
929a63b8ec
chore(release): 0.58.0 — landing refresh + R7.5 API layer
peter
2026-07-29 18:28:51 +02:00
-
9dc7f80305
improvement(welcome): gallery landing, refreshed copy, name-free screenshots
peter
2026-07-29 18:28:51 +02:00
-
-
18bfcba4ed
Merge r7.5-api-layer → dev
peter
2026-07-28 23:14:32 +02:00
-
-
1fd4c2f7b3
docs(api): note the façade guard's intended scope boundary (type-name clashes are tsc-caught)
peter
2026-07-28 23:14:32 +02:00
-
95db151565
test(api): guard the spread-only façade against interleave regrowth (R7.5 S3)
peter
2026-07-28 23:04:39 +02:00
-
8eb6f13288
refactor(api): extract account/auth/setup/admin; façade is now spread-only (R7.5 S2)
peter
2026-07-28 22:59:09 +02:00
-
8ce1e0230a
refactor(api): extract 8 content domains into api/*.ts slices (R7.5 S1)
peter
2026-07-28 22:41:34 +02:00
-
-
2c7c8e0f8a
Merge: promote dev to prod
peter
2026-07-28 03:30:44 +02:00
-
-
81d0943fdc
fix(watch): drop the Web Audio reroute, keep Media Session for iOS background audio (0.57.2)
peter
2026-07-28 03:29:48 +02:00
-
5e2195eb5a
Merge: promote dev to prod
peter
2026-07-28 03:21:39 +02:00
-
-
9187ae56b1
fix(share): use the stable YouTube hqdefault thumbnail for OG on YT shares (0.57.1)
peter
2026-07-28 03:20:31 +02:00
-
53b599271d
Merge: promote dev to prod
peter
2026-07-28 03:01:00 +02:00
-
-
922c18b7c3
Merge fixpack-downloads-channels → 0.57.0
peter
2026-07-28 02:59:19 +02:00
-
-
b367bc3126
chore(release): 0.57.0 — downloads & channels fixpack
peter
2026-07-28 02:59:04 +02:00
-
7765d19813
fix: code-review round 1 — 4 findings
peter
2026-07-28 02:49:34 +02:00
-
d5c9fb9918
feat(watch): keep audio playing in the background on the shared watch page (S4)
peter
2026-07-28 02:29:19 +02:00
-
9d3d69f0e9
feat(channels): press-and-hold priority stepper + inline-editable value
peter
2026-07-28 02:22:36 +02:00
-
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