4gray
2e243cc4af
docs(downloads): plan offline detail views
2026-08-01 16:29:50 +02:00
4gray
8c643d04ba
docs(downloads): design offline detail views
2026-08-01 16:29:50 +02:00
4gray
51d80c5c0c
feat(downloads): finish missing-file recovery
2026-08-01 16:29:50 +02:00
4gray
5808511658
test(downloads): cover missing-file and series journeys
2026-08-01 16:29:50 +02:00
4gray
63b87da5f3
refactor(downloads): simplify ready cards
2026-08-01 16:29:50 +02:00
4gray
8a5b29ea4d
feat(downloads): surface missing files for recovery
2026-08-01 16:29:50 +02:00
4gray
596f5a8d4d
feat(downloads): separate missing files from ready media
2026-08-01 16:29:50 +02:00
4gray
2899091b74
feat(downloads): refresh missing local files
2026-08-01 16:29:50 +02:00
4gray
8a685ebf20
feat(downloads): recover missing completed files
2026-08-01 16:29:50 +02:00
4gray
bd61426d8e
feat(downloads): derive completed file availability
2026-08-01 16:29:50 +02:00
4gray
263f0f3d52
docs(downloads): plan missing-file recovery
2026-08-01 16:29:50 +02:00
4gray
830f50dfcd
docs(downloads): design missing-file recovery
2026-08-01 16:29:50 +02:00
4gray
55a009c1fe
docs(downloads): clarify provider playback availability
2026-08-01 16:29:50 +02:00
4gray
26b20658e3
fix(downloads): keep offline Xtream playback available
2026-08-01 16:29:50 +02:00
4gray
5511d66651
fix(xtream): ignore stale VOD positions
2026-08-01 16:29:50 +02:00
4gray
1d996b85f0
fix(xtream): isolate reused detail identities
2026-08-01 16:29:50 +02:00
4gray
6500807701
docs(downloads): clarify Stalker navigation fallback
2026-08-01 16:29:50 +02:00
4gray
3eda25ac3c
fix(downloads): open Stalker items in provider details
2026-08-01 16:29:50 +02:00
4gray
4e7ed33d05
docs(downloads): format detail navigation plan
2026-08-01 16:29:49 +02:00
4gray
823d38bac0
docs(downloads): document offline detail behavior
2026-08-01 16:29:49 +02:00
4gray
efbee7cc48
test(downloads): cover offline detail journey
2026-08-01 16:29:49 +02:00
4gray
89e708c591
fix(downloads): prefer local playback in Xtream details
2026-08-01 16:29:49 +02:00
4gray
0313dd7a9b
fix(downloads): preserve external launch priority
2026-08-01 16:29:49 +02:00
4gray
95aa73058b
fix(downloads): prefer local playback in shared details
2026-08-01 16:29:49 +02:00
4gray
34fa69e6f5
fix(downloads): honor the global cover size
2026-08-01 16:29:49 +02:00
4gray
727ea58bd7
test(downloads): cover pending series navigation
2026-08-01 16:29:49 +02:00
4gray
4f3567e1d0
fix(downloads): open completed movies in details
2026-08-01 16:29:49 +02:00
4gray
5ef5d6713f
docs(downloads): plan detail navigation follow-up
2026-08-01 16:29:49 +02:00
4gray
211000a8e3
docs(downloads): clarify detail-first offline behavior
2026-08-01 16:29:49 +02:00
4gray
bcc2e36a05
feat(downloads): finish manager MVP
2026-08-01 16:29:49 +02:00
4gray
eb55c17a05
feat(downloads): add active download queue
2026-08-01 16:29:49 +02:00
4gray
8e1af010a9
feat(downloads): add ready-to-watch library
2026-08-01 16:29:49 +02:00
4gray
28770aad09
fix(downloads): report library navigation failures
2026-08-01 16:29:49 +02:00
4gray
ce251e5f9b
refactor(downloads): isolate library navigation
2026-08-01 16:29:49 +02:00
4gray
bff9ca1491
fix(downloads): stabilize malformed view model data
2026-08-01 16:29:49 +02:00
4gray
aae5450f4c
test(downloads): close view model coverage gaps
2026-08-01 16:29:49 +02:00
4gray
d6e1ee5d0c
feat(downloads): derive queue and library view model
2026-08-01 16:29:49 +02:00
4gray
bc29f24eb2
fix(downloads): make active count accessible
2026-08-01 16:29:49 +02:00
4gray
117bd75f01
fix(downloads): keep renderer download state global
2026-08-01 16:29:49 +02:00
4gray
505face7e4
docs(downloads): tighten manager validation plan
2026-08-01 16:29:49 +02:00
4gray
6995b5765a
docs(downloads): plan manager MVP implementation
2026-08-01 16:29:49 +02:00
4gray
b7f02c51b4
docs(downloads): specify manager MVP redesign
2026-08-01 16:29:49 +02:00
4gray and Claude Fable 5
9bb1811984
fix(playback): escape commas in mpv header fields on the TS paths ( #1323 )
...
* fix(playback): escape commas in mpv header fields on the TS paths
PR #1321 fixed the comma truncation of --http-header-fields inside the
native embedded-mpv addon, but the same OPT_STRINGLIST parsing bites
three TypeScript call sites that join header fields with ',':
- external MPV CLI launch (--http-header-fields=...)
- external MPV instance reuse (set_property http-header-fields)
- embedded MPV frame-copy loadfile options (opt.http-header-fields);
the helper's %len% quoting protects only the option-list level, mpv
still stringlist-parses the value afterwards
The Stalker MAG user agent contains "(KHTML, like Gecko)", so strict
portals received a truncated X-User-Agent and rejected live streams
with HTTP 400 (#910 ). Escape backslashes and commas per field with the
same scheme as the native fix, via a shared util.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
* test(playback): cover the reused-instance IPC header escaping
Review follow-up (Greptile on #1323 ): the regression coverage only
exercised the CLI spawn path. Capture the JSON IPC traffic of a second,
reused mpv launch and assert the escaped MAG user agent survives the
set_property http-header-fields transport, so later serialization
changes cannot silently reintroduce truncated headers. net is mocked
with a passthrough default because the VLC specs bind a real ephemeral
port via createServer.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com >
2026-08-01 16:19:38 +02:00
wretchwatson
814161274b
fix(playback): escape commas in mpv http header fields ( #1321 )
2026-08-01 15:17:48 +02:00
4gray
b14ce2452b
fix(packaging): add verified source mirror fallback ( #1325 )
2026-08-01 15:15:09 +02:00
4gray
9f4e11d6de
fix(playback): structure Shaka diagnostics ( #1318 )
...
* docs(playback): design structured Shaka diagnostics
* fix(playback): structure Shaka diagnostics
* docs(playback): document Shaka evidence boundary
* docs(playback): fix Shaka validation commands
* fix(playback): preserve Shaka fallback evidence
* fix(playback): preserve Shaka text error evidence
2026-07-31 21:25:06 +02:00
4gray
9a50e7385b
fix(playback): structure Video.js diagnostics ( #1317 )
2026-07-31 09:15:49 +02:00
4gray
46c7713841
fix(ui): preserve EPG in narrow channel rows ( #1312 )
...
Preserve current-program context and enabled actions in narrow channel rows while aligning loaded rows, skeletons, and virtual-scroll geometry across M3U, Xtream, Stalker, Favorites, and Recent views.
2026-07-31 08:27:36 +02:00
4gray
2ac0de752f
fix(skills): align repository guidance with implementation ( #1315 )
...
* docs(skills): design implementation synchronization
* docs(skills): plan implementation synchronization
* fix(release): filter internal notes from public body
* docs(release): synchronize release workflow guidance
* fix(stalker): normalize catalog series flags
* fix(stalker): preserve progress with scoped episode IDs
* fix(playback): expose strict position persistence
* docs(stalker): record series position compatibility
* test(skills): validate repository skill contracts
* fix(database): keep SQL trace values private
* docs(skills): refresh Nx and SQLite ownership
* docs(skills): align provider and UI guidance
* docs(skills): tighten validated guidance
* docs(release): require exact release pushes
* style(electron): remove trailing blank line
* fix(ci): classify repository skills coverage
2026-07-31 08:00:59 +02:00
4gray
99d167993d
fix(playback): structure HLS diagnostics ( #1316 )
...
* docs(playback): design structured HLS diagnostics
* docs(playback): plan structured HLS diagnostics
* fix(playback): structure HLS diagnostics
* docs(playback): document structured HLS evidence
* fix(playback): keep HLS startup logs private
2026-07-31 07:33:05 +02:00