mirror of
https://github.com/Shik3i/KoalaSync.git
synced 2026-08-18 15:23:13 +00:00
docs: record the gaps v3.1.0 knowingly ships with
Sticky player selection, Firefox E2E coverage and a two-peer relay E2E are all deliberate omissions rather than oversights. Writing them down keeps the current suite from reading as broader coverage than it is. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -10,7 +10,6 @@ All notable changes to the KoalaSync browser extension and relay server.
|
||||
- **Extension: Same-origin frame video detection** — Finds and controls players that live inside a first-party iframe instead of the top document, so sites that wrap their player in their own frame sync without site-specific workarounds. Frame documents are watched for late-loading players and re-scanned after a frame reload; cross-origin frames stay out of reach by design.
|
||||
- **Extension: Editable Hide-Clutter list** — Adds a validated, deduplicated domain editor in Settings, prefilled with the shipped blacklist, with a defaults reset and per-device persistence in `chrome.storage.local`. The editor groups entries into your own and the shipped defaults, and only your changes are stored, so domains added to the shipped list in later versions still reach you without overriding what you removed or added. Lists saved by an earlier version are migrated automatically.
|
||||
- **Extension: Independent default audio boost** — Adds a configurable `0–20 dB` output gain in half-decibel steps. The boost works with or without the compressor and applies live to the selected video tab.
|
||||
|
||||
- **Testing: Browser E2E smoke suite** — Adds a local Playwright suite (`npm run test:e2e`) that runs the shipped video finder against real fixture pages and drives the packed extension end to end: injection into the target tab, reinjection after navigation, and remote play, pause and seek applied to a player inside a first-party frame. Runs as its own CI job so `npm run verify` stays browser-free.
|
||||
|
||||
### Changed
|
||||
|
||||
@@ -57,6 +57,30 @@
|
||||
- **Possible approach:** Add an opt-in frame bridge (`allFrames: true` injection) where child frames announce detected videos to the top frame, and the top frame routes remote play/pause/seek commands to the active child video. Needs a frame-election rule so ad frames cannot claim the session.
|
||||
- **Status:** Same-origin part completed; cross-origin frame bridge still open. Not needed for current Emby behavior.
|
||||
|
||||
### Sticky player selection
|
||||
|
||||
- **Priority:** P3
|
||||
- **Category:** Compatibility / Player Selection
|
||||
- **Background:** `findVideo()` is stateless and re-ranks on every call, including inside the 150 ms seek poll. On a page whose candidate set changes mid-session (an ad frame appearing, the player briefly losing its source between episodes) the ranking can in principle move to a different element and back.
|
||||
- **Possible approach:** Keep the attached element while it is still connected, still has a source and is not disqualified, and only switch when another candidate is playing and it is not. Belongs in the attach lifecycle rather than in the ranking.
|
||||
- **Status:** Deliberately left out of the v3.1.0 ranking rework. No observed flapping; the ordered signals are stable enough that this is prevention, not a fix. Needs its own fixtures for the episode-change case.
|
||||
|
||||
### Firefox E2E coverage
|
||||
|
||||
- **Priority:** P2
|
||||
- **Category:** Testing / Release Confidence
|
||||
- **Background:** The E2E suite drives the Chromium build only. The Firefox artifact is built and checked by `addons-linter` on every run, but no browser flow exercises it, so a Firefox-only regression in injection or frame handling would not be caught.
|
||||
- **Possible approach:** Playwright can launch Firefox with a temporary add-on; the detection specs are browser-agnostic already and would come along for free.
|
||||
- **Status:** Backlog. Recorded because the current suite reads as broader coverage than it is.
|
||||
|
||||
### Two-peer relay E2E
|
||||
|
||||
- **Priority:** P3
|
||||
- **Category:** Testing / Release Confidence
|
||||
- **Background:** The extension specs drive injection and `SERVER_COMMAND` directly, without a relay and without a second peer. The actual sync loop between two browsers is only ever verified by hand.
|
||||
- **Possible approach:** Start the local relay from `server/`, launch two extension contexts, join the same room and assert that a seek on one lands on the other.
|
||||
- **Status:** Backlog.
|
||||
|
||||
### Sync a second video source per room
|
||||
|
||||
- **Priority:** P3
|
||||
|
||||
Reference in New Issue
Block a user