4gray
830405f9d7
test(stalker): expand compatibility replay matrix
2026-07-27 13:00:46 +02:00
4gray
3129d22a71
fix(player): bind reused mpv headers to source
2026-07-27 12:45:58 +02:00
4gray
9aa93079bd
fix(player): clear reused mpv request headers
2026-07-27 12:35:59 +02:00
4gray
edf47b19b7
test(stalker): replay custom-prefix discovery
2026-07-27 12:31:49 +02:00
4gray
8569612dbd
fix(stalker): harden provisional connection lifecycle
2026-07-27 12:29:46 +02:00
4gray
9204f400bb
fix(stalker): rediscover stale learned MIME routes
2026-07-27 12:23:46 +02:00
4gray
6ebf5fd55a
test(stalker): reject noncanonical do auth replay
2026-07-27 12:18:46 +02:00
4gray
317f4ffdad
fix(stalker): surface watchdog session failures
2026-07-27 12:15:35 +02:00
4gray
4317380137
fix(stalker): rediscover after benign html endpoints
2026-07-27 12:13:17 +02:00
4gray
a44f578ddc
fix(stalker): clean sessions after playlist deletion
2026-07-27 12:07:41 +02:00
4gray
171095e091
fix(backup): harden portal credential restore
2026-07-27 12:06:56 +02:00
4gray
9988e506de
fix(stalker): redetect session recipes atomically
2026-07-27 12:05:43 +02:00
4gray
91d116a572
fix(stalker): fail closed on incompatible responses
2026-07-27 12:01:23 +02:00
4gray
f99380c65d
fix(stalker): harden session identity boundaries
2026-07-27 11:54:56 +02:00
4gray
76101fb29b
test(stalker): replay single-flight auth refresh
2026-07-27 11:53:02 +02:00
4gray
85bee2dbb4
test(stalker): replay catalog and playback auth
2026-07-27 11:45:48 +02:00
4gray
6d38a7cc4b
fix(stalker): preserve exact portal principals
2026-07-27 11:43:15 +02:00
4gray
dfdce824d9
feat(stalker): bootstrap main session runtime
2026-07-27 11:36:52 +02:00
4gray
68d1555975
fix(stalker): canonicalize replay MAC values
2026-07-27 11:36:20 +02:00
4gray
38c07e13a3
fix(stalker): omit empty handshake token
2026-07-27 11:30:33 +02:00
4gray
e66ef84df1
feat(stalker): manage authenticated portal sessions in main
2026-07-27 11:29:41 +02:00
4gray
0ed6e67360
test(stalker): add authenticated session replay e2e
2026-07-27 11:28:40 +02:00
4gray
c042af85db
feat(stalker): load matching saved credentials
2026-07-27 11:22:50 +02:00
4gray
a6fd436e35
feat(stalker): add route connection recovery flow
2026-07-27 11:19:02 +02:00
4gray
7ee6e97ceb
fix(stalker): preserve VOD series season shape
2026-07-27 11:04:21 +02:00
4gray
9a69a6d46a
feat(stalker): add challenge-driven import flow
2026-07-27 11:01:15 +02:00
4gray
91761f5abe
feat(stalker): secure native playback contexts
2026-07-27 10:56:33 +02:00
4gray
cede2c6bb3
fix(stalker): preserve catalog pagination metadata
2026-07-27 10:48:16 +02:00
4gray
b76e65c2bf
feat(stalker): expose typed session IPC
2026-07-27 10:41:32 +02:00
4gray
580a056035
feat(stalker): bind secret playback contexts in main
2026-07-27 10:37:27 +02:00
4gray
d5acb329e0
feat(stalker): map typed portal operations in main
2026-07-27 10:32:14 +02:00
4gray
5b22bee0f4
feat(stalker): add session watchdog scheduler
2026-07-27 10:27:16 +02:00
4gray
97c50071ac
feat(stalker): install discovered principals atomically
2026-07-27 10:23:44 +02:00
4gray
79729c4dfc
test(stalker): add authentication replay corpus
2026-07-27 10:22:58 +02:00
4gray
ffefe48992
feat(stalker): authenticate resolved portal sessions
2026-07-27 10:21:58 +02:00
4gray
c12ad52019
feat(stalker): resolve portal endpoints safely
2026-07-27 10:17:21 +02:00
4gray
6726863081
feat(settings): secure playlist backup credentials
2026-07-27 10:15:27 +02:00
4gray
c4974e9b93
feat(stalker): add cookie-aware portal HTTP session
2026-07-27 10:01:55 +02:00
4gray
a2fd389e74
test(stalker): add fail-closed fixture validation
2026-07-27 09:55:53 +02:00
4gray
375169a69b
fix(stalker): harden replay network boundaries
2026-07-27 09:54:30 +02:00
4gray
f3acc2ce39
feat(stalker): serialize base identity mutations
2026-07-27 09:52:24 +02:00
4gray
2a88060fae
feat(stalker): add one-time challenge registry
2026-07-27 09:49:41 +02:00
4gray
13f05d0a7e
feat(stalker): validate portal transport inputs
2026-07-27 09:48:19 +02:00
4gray
d0cf96caf8
feat(stalker): add isolated RFC cookie jar
2026-07-27 09:47:32 +02:00
4gray
9166d0f12c
feat(stalker): add validated redirect session hooks
2026-07-27 09:35:43 +02:00
4gray
8009233220
refactor(stalker): extract replay fixture schema
2026-07-27 09:28:01 +02:00
4gray
af0f210ea5
test(stalker): add replay listeners and control plane
2026-07-27 09:05:40 +02:00
4gray
51d879a734
test(stalker): add replay scenario core
2026-07-27 08:30:33 +02:00
4gray
f147d4fe37
perf(m3u): stop cancelled refresh workers ( #1268 )
2026-07-26 09:25:51 +02:00
4gray
c0e065da17
fix(window-controls): derive window-state pushes from events so controls reappear after fullscreen ( #1178 )
...
The custom minimize/maximize/close controls stayed hidden forever after
leaving HTML-element (video player) fullscreen on Windows: window state was
polled at event time, and isFullScreen() can still report the pre-transition
value while 'leave-full-screen' fires, leaving a stale push with no later
event to correct it. The same polling on the companion flag cleared
isMaximized during fullscreen transitions and stuck the maximize/restore
glyph on the wrong icon.
attachWindowStateEvents now seeds the state once at window creation and each
event patches only the flag it names, sending a copy per push. The
enter/leave-html-full-screen variants are wired too.
Regression coverage: app-window-state.spec.ts (9 cases, 6 of which fail
against the old implementation) and an Electron E2E case that toggles HTML
element fullscreen and asserts the controls come back.
2026-07-26 01:49:08 +02:00