9938bf6c57
fix: stop swallowing errors
2026-05-26 22:36:41 +02:00
57be9a5d70
feat: record audit events for watch progress and completion
2026-05-26 16:14:37 +02:00
28251876e1
fix: handle mac.Write errors in proxy token signing
2026-05-26 15:56:55 +02:00
f8ba6db3d6
fix: use constant-time comparison for proxy token signature
2026-05-26 15:31:37 +02:00
51355a4dbc
fix: render segment overrides and skip progress
2026-05-22 16:34:38 +02:00
812dcd2448
feat: typed anime and playback payloads
2026-05-21 16:19:58 +02:00
285367ad84
refactor: rename SkipSegmentOverride to SkipSegmentOverrideRow to avoid sqlc conflict
2026-05-19 11:29:40 +02:00
1a9e1d60bc
feat: add skip segment overrides backend
2026-05-19 11:02:54 +02:00
943285b356
feat: add shared size limit constants
2026-05-18 15:08:26 +02:00
9859ddea42
feat: add shared user agent constants
2026-05-18 14:07:33 +02:00
9414d3b51e
feat: use canonical episodes in watch data and wire episode service
2026-05-17 21:16:50 +02:00
596e8265f7
refactor: remove noisy debug logging
2026-05-14 12:41:41 +02:00
b3c906a16e
fix: centralize watchlist dropdown js and fix page load timing
2026-05-13 19:05:10 +02:00
efbce87d5c
feat: set status to completed on anime completion
...
Check existing watchlist status — if already completed, just clear
progress and remove from continue watching. Otherwise upsert with
status 'completed'.
2026-05-13 18:28:33 +02:00
28e8b322d0
feat: add watch-complete endpoint
...
Removes continue_watching_entry and clears progress when the last
episode finishes so it no longer shows in Continue Watching.
2026-05-13 18:22:18 +02:00
b7f91f3b1b
feat: save progress to continue_watching_entry only
...
Replace SaveWatchProgress (UPDATE watch_list_entry) with
UpsertContinueWatchingEntry so progress persists for any anime
without creating watchlist entries.
2026-05-13 18:16:02 +02:00
a5b0aeca98
fix: fetch both sub and dub streams on watch page load
...
Previously the backend only fetched streams for the single requested
mode (defaulting to sub), so modeSources never had a dub entry.
The frontend's switchMode showed visual feedback but streamUrlForMode
returned an empty string since no dub token existed.
Now both modes are fetched and availableModes is derived from what
actually resolved.
2026-05-13 17:53:12 +02:00
846fe9ccd9
feat: add proxy transport with dns caching, subtitle handler, and stream pre-warm
2026-05-13 13:35:27 +02:00
8006868fe2
fix: improve video title matching and segments null error
2026-05-13 13:23:54 +02:00
14b7668afa
chore: formatting
2026-05-13 13:01:39 +02:00
0f8d1c7dc0
fix: lint warnings - errcheck and switch style
2026-05-13 12:59:37 +02:00
28a1723166
feat: add proxy tokens, skip segments, and title-based search to playback service
2026-05-13 12:43:08 +02:00
4d1fd2834b
feat: migrate playback domain to modular architecture
2026-05-13 11:20:46 +02:00
0d6c7613a9
feat: migrate playback module to modular domain pattern
2026-05-13 10:34:01 +02:00