Repository navigation
[codex] Validate title-bound TV playback evidence - #24
Draft
AndreKalberer wants to merge 1 commit into
Draft
AndreKalberer wants to merge 1 commit into
AndreKalberer wants to merge 1 commit into
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A TV iframe page load or a playback event from another title or episode could previously mark the active player ready. Validate VidLink's documented PLAYER_EVENT identity and timing against the current title, episode, provider, canonical frame route, HTTPS origin and active iframe source. Reject missing or mismatched identity, paused/metadata events and superseded frames. A loaded iframe still reveals usable controls and cancels load failover while the viewer can click Play; it does not prove playback. Remove the VidSrc page-load readiness timer.
Add focused identity/session regression tests and an offline real TV DOM smoke test. Load the shared validator in TV source and stage it into LG, Samsung and Android assets. No version bump or playback availability preflight is included.
Dependency and integration
Stacked on draft #18 (
codex/hbr005-tv-audio-controls, base commit31b8cb73a799f4dff93049945c334c527a304930); review this PR's eight-file delta against that branch. Preserve the callback-based staging fix from #16 when assembling the full release.Two fixture adaptations were verified only in the isolated complete 2.3.10 integration QA copy and are required when integrating #16: change
tests/tv-staging-smoke.cjsexpected inline scripts from 8 to 9, and includeshared/playback-providers.jsintests/tv-staging.test.cjssynthetic fixture inputs. Those test files are absent on this PR's base and are intentionally not duplicated here.Validation
npm test, evidence/provider unit fixtures, syntax checks andgit diff --checkpassed. Offline real TV DOM evidence smoke passed with an isolated temporary profile; its initial restricted-environment run crashed at renderer startup and passed on normal local execution.npm test, source/staged/extracted LG evidence smoke, audio regression with readiness polling and cancellation, HLS execution, nine inline modules, zero bogus script text, three layouts and local WAV playback passed. Extracted LG page matched the staged page byte-for-byte; Samsung/Android shared validator assets matched source.test:tv-smoke; no runtime audio edits were made here. The complete-baseline polling audio regression passed, including pending-play cancellation and genuine failure/retry.Limits
Positive evidence remains session-local and specific to VidLink's documented
mtmdbIdschema. Physical TV behavior and real provider playback were not verified; no installation or deployment occurred. Exhaustive provider availability and broader TV/desktop catalog correspondence remain unresolved. Provider listings and inaccessible provider documentation are not evidence of playback or unavailability.