fix(server-storage): keep Xtream data, ordered sync, sign-in and stale-cache fixes

- Moving browser playlists matches them to the server's by id or source and
  carries the legacy Xtream maps under the server id; it no longer goes
  through the backup format, whose PWA export has no Xtream user data. A
  partial move stays on offer.
- User-data batches go out in order, and a re-read keeps entries edited
  while it was in flight.
- A keepPayload write keeps its cached copy only when the server replaced
  the version its payload came from (new X-Replaced-ETag header).
- 502/503/504 from the proxy count as offline.
- The start-up screen lets the sign-in page through while a token is
  required.
- Settings → Server offers a reload after a move.
- The probe detects Electron through RuntimeCapabilitiesService.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
4grayandClaude Opus 5.5 committed 2026-10-12 00:16:56 +02:00
1 parent 3bfd5394ef
commit 676e3adcd4
24 files changed
+732 -198

No files matched your search

@@ -36,6 +36,13 @@ export interface ServerInstanceInfo {
readonly auth: 'none' | 'token';
}
/**
* Sent with every `PUT /v1/playlists/:id`: the document's ETag before that
* write. A client that kept the stored payload (`keepPayload=1`) may cache
* its copy under the new ETag only if its payload came from this one.
*/
export const SERVER_REPLACED_ETAG_HEADER = 'X-Replaced-ETag';
export interface ServerStorageStatusResponse {
readonly playlists: number;
readonly databaseBytes: number;