Commit Graph
677 Commits
Author SHA1 Message Date
4gray da49820e80 fix(stalker): restore playback command compatibility 2026-07-29 12:06:45 +02:00
4gray 9163f2d515 chore(stalker): merge master compatibility updates 2026-07-27 20:21:56 +02:00
4gray 8f7c4761ea fix(backup): invalidate restored stalker state 2026-07-27 14:00:51 +02:00
4gray bdf353a3b8 fix(stalker): harden session compatibility 2026-07-27 14:00:30 +02:00
4gray 09469afbae fix(backup): merge restored redacted credentials 2026-07-27 13:02:50 +02:00
4gray 88f7237874 fix(stalker): recover stale stateless connections 2026-07-27 12:51:08 +02:00
4gray bc849a7c18 fix(stalker): narrow collection attempt references 2026-07-27 12:47:25 +02:00
4gray 87faef7463 test(stalker): mark typed session fixtures current 2026-07-27 12:45:31 +02:00
4gray cb199b6e52 fix(stalker): migrate legacy collection playback 2026-07-27 12:41:17 +02:00
4gray 8569612dbd fix(stalker): harden provisional connection lifecycle 2026-07-27 12:29:46 +02:00
4gray 79dcbba241 fix(stalker): make persisted recipe authoritative 2026-07-27 12:29:03 +02:00
4gray 1961952f48 fix(backup): reject incomplete local Xtream credentials 2026-07-27 12:25:52 +02:00
4gray c1f7306ed5 fix(stalker): discard stale import attempts 2026-07-27 12:08:04 +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 3ebe31f041 fix(stalker): close route session races 2026-07-27 11:57:46 +02:00
4gray f99380c65d fix(stalker): harden session identity boundaries 2026-07-27 11:54:56 +02:00
4gray 829550e2c9 fix(stalker): preserve typed session retry budget 2026-07-27 11:44:17 +02:00
4gray 6d38a7cc4b fix(stalker): preserve exact portal principals 2026-07-27 11:43:15 +02:00
4gray 9e312ada2d fix(stalker): keep renderer helpers ES2018 compatible 2026-07-27 11:24:48 +02:00
4gray 0022604c47 feat(stalker): route feature playback through session facade 2026-07-27 11:20:14 +02:00
4gray a6fd436e35 feat(stalker): add route connection recovery flow 2026-07-27 11:19:02 +02:00
4gray 2125e5a907 feat(stalker): recover typed playlist requests 2026-07-27 11:12:02 +02:00
4gray 758c1cb77a feat(stalker): coordinate route session recovery 2026-07-27 11:09:08 +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 474f4a86cf refactor(stalker): route renderer requests through session leases 2026-07-27 10:58:14 +02:00
4gray 91761f5abe feat(stalker): secure native playback contexts 2026-07-27 10:56:33 +02:00
4gray 57e108b8cb feat(stalker): reflect persisted connections in state 2026-07-27 10:50:01 +02:00
4gray cede2c6bb3 fix(stalker): preserve catalog pagination metadata 2026-07-27 10:48:16 +02:00
4gray 00c85beb70 fix(logging): redact Stalker session references 2026-07-27 10:45:26 +02:00
4gray 854e922c1e feat(stalker): persist verified connections atomically 2026-07-27 10:40:50 +02:00
4gray 24f0dee6f0 test(performance): add formal M3U import benchmark (#1287)
* test(performance): add formal M3U import benchmark

* test(performance): harden formal capture validity

* test(performance): address benchmark review feedback
2026-07-27 10:34:22 +02:00
4gray d5acb329e0 feat(stalker): map typed portal operations in main 2026-07-27 10:32:14 +02:00
4gray 04e9027840 feat(backup): restore redacted portals safely 2026-07-27 10:12:22 +02:00
4gray 581ad6fe8b feat(backup): exclude portal secrets by default 2026-07-27 10:03:40 +02:00
4gray 2646c0c492 feat(stalker): map playlists to session descriptors 2026-07-27 09:56:06 +02:00
4gray 375169a69b fix(stalker): harden replay network boundaries 2026-07-27 09:54:30 +02:00
4gray 8009233220 refactor(stalker): extract replay fixture schema 2026-07-27 09:28:01 +02:00
4gray e43d94ded4 fix(stalker): use canonical serial number key 2026-07-27 09:00:56 +02:00
4gray e55d55b47f feat(mock-data): add shared screenshot-safe poster catalog (#1271)
Moves the fictional movie catalog into `libs/shared/marketing-fixtures` so the
Xtream and Stalker mocks describe the same titles, and adds 20 rendered posters
plus the shared fixture types behind them.

Supporting changes made while getting it green:

- `shared-marketing-fixtures` is classified Tier B in the coverage policy. Not
  Tier A: it is fictional fixture data, so a statement percentage over it means
  nothing, and a Tier A entry would pull it into the merged coverage map and the
  ratchet. Tier B still runs its spec in CI. `stalker-mock-server` needs no entry
  of its own — it is already Tier C and the Tier B/C runner falls back to
  `pnpm nx test <project>`, so its new `marketing-poster-url.spec.ts` runs.
- Two release-capture defects the catalog reorder introduced, both fixed in
  `tools/release/capture-app-driver.ts`:
  - VOD stream ids are `MARKETING_VOD_STREAM_ID_BASE + index` and the generator
    now lists the showcase movies first, so 62000-62002 became Black Harbor, The
    Paper Astronaut and Summer Static while the dashboard seeding still mapped
    those ids to the previous titles' backdrops.
  - the raw `tsx` spawn of the Xtream mock lacked `--tsconfig
    tsconfig.base.json`, so the mock could not resolve
    `@iptvnator/shared/marketing-fixtures` and the capture never started. Both
    mock projects' own serve targets already passed the flag.
2026-07-27 08:10:57 +02:00
4gray 847d98f035 fix(stalker): prioritize response status semantics 2026-07-27 03:56:27 +02:00
4gray 604d2aca3e fix(stalker): reject ambiguous response failures 2026-07-27 03:52:20 +02:00
4gray 92238ecbbb fix(stalker): tighten session protocol boundaries 2026-07-27 03:37:42 +02:00
4gray f8a544d287 fix(stalker): correlate session operation contracts 2026-07-27 03:16:16 +02:00
4gray 29fa4d0f87 feat(stalker): add pure session protocol contracts 2026-07-27 03:01:52 +02:00
4gray 0579d253c4 fix(electron): fail closed on unknown performance completions 2026-07-26 22:37:52 +02:00
4gray f9e71a6d8d fix(electron): isolate refresh performance correlation 2026-07-26 22:37:52 +02:00
4gray e3ce60a35e chore(electron): add preload performance markers 2026-07-26 22:37:52 +02:00