Merge master, dedupe the kept copy, and retire superseded switches

Master had moved ten commits ahead. Two conflicts, both resolved without
losing either side: the `XTREAM_PROBE_URL` handler this PR extracted into
`events/stream-probe.ts` stays extracted (master added performance capture
nearby but never touched that handler), and the mock-server scenario table
takes the union of master's `performance` row and this branch's `multisrc`
pair.

Two findings fixed alongside it.

Pinning the copy the route is already on makes discovery return that very
row, so prepending the current source listed one stream twice — a phantom
copy in the grouping and a chip that counted it.

And handing the "playing" badge back to the route row left an in-flight
switch valid, so a slow resolution could arrive afterwards and replace the
playback the user had just started with Play, Resume or Restart.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
4grayandClaude Opus 5 committed 2026-07-28 08:44:49 +02:00
commit 9f0a8b4f19
385 files changed
+58306 -2264

No files matched your search

@@ -0,0 +1,8 @@
---
type: fix
area: electron-backend
---
Cancelling a large Xtream import now stops database work even while it is
running at full speed, instead of letting the import finish before processing
the cancel request.
+9
View File
@@ -0,0 +1,9 @@
---
type: fix
area: epg
---
A database error while looking up manual EPG channel mappings no longer breaks
the request that triggered it. Searching for a channel in the "Map EPG channel"
dialog, or saving and removing a mapping, now degrades gracefully instead of
failing outright.
+9
View File
@@ -0,0 +1,9 @@
---
type: fix
area: epg
---
A database error while reading or saving a manual EPG channel mapping no longer
surfaces as a failed request. Looking up, saving, deleting, and searching
mappings now fall back quietly, so a transient storage hiccup can no longer take
down the EPG panel or the "Map EPG channel" dialog.
+10
View File
@@ -0,0 +1,10 @@
---
type: fix
area: settings
issues: [1156, 102]
---
Launching IPTVnator a second time now brings the running window to the front
instead of starting a rival copy that could not save anything — a common reason
settings appeared to reset on restart. If saving or loading settings does fail,
the app now says so instead of silently showing defaults.