fix(server-storage): cache baseline before first read, versioned retries, M3U favorite ids

- Before the first user-data read finishes, an edit is compared with the
  cache, so it sends only its own playlist entry.
- Queued entries carry their edit number; a failed write is retried only
  when nothing newer replaced it.
- Moving M3U favorites and history translates channel ids through the
  stream URL (ids are random per import).
- The server-storage E2E runs in Chromium only: one shared database.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
4grayandClaude Opus 5.5 committed 2026-10-12 00:47:19 +02:00
1 parent 676733cd7b
commit 4afd4bcc33
8 files changed
+221 -27

No files matched your search

+6 -1
View File
@@ -102,8 +102,13 @@ async function seedBrowserPlaylist(
}
test.describe('server storage @self-hosted @persistence', () => {
// Both tests share one server database.
// Both tests share one server database, and so would the other browser
// projects: keep it to one browser.
test.describe.configure({ mode: 'serial' });
test.skip(
({ browserName }) => browserName !== 'chromium',
'One shared server database'
);
test.beforeEach(async ({ request }) => {
const response = await request.delete(