Lightning TV Live
Changelog
A plain-English history of improvements to the viewing and match-night experience.
Current version
v1.5.0-beta.18
-
- Verification, password-reset and purchase-confirmation messages now use a branded Lightning TV HTML design while retaining a plain-text version for every mailbox.
- Commerce staff now work from separate overview, pass, order, reliability and settings pages instead of one crowded operations screen.
- Email verification links now complete correctly on PostgreSQL, and requesting a replacement makes every older unused link invalid.
- Automatic clock tracking no longer disconnects the OCR feed when PostgreSQL checks an awaiting faceoff with no linked event.
- Alpha and Beta email delivery now requires an authenticated mail service and records delivery errors for staff, avoiding silent verification-email failures.
-
- Viewers can buy a broadcast pass through Stripe's test-mode Checkout using card and eligible Apple Pay or Google Pay wallets, with access granted automatically only after a verified payment event.
- Stripe event replay is safe: duplicate deliveries cannot create another order, entitlement, or audit grant, while staff can reconcile missed updates and handle cancellations or partial and full refunds.
- A new Stream & Commerce Administrator role can manage broadcasts, passes, payments and viewer access without entering match statistics, analytics, health, logs, debug tools or general user administration.
- Every new or imported game now receives its own draft viewing pass automatically, ready for an administrator to price and place on sale.
- Stripe Checkout now uses the account's dashboard-managed payment methods without sending an unsupported session option, so test checkouts start correctly on existing Stripe API versions.
- Commerce staff now have a polished operations dashboard showing sales, refunds, orders, viewer access, webhook health, and viewing-pass performance for every game.
- Lightning TV now presents fixtures and live-only passes as its primary viewer journey, with single-game, season and opponent-bundle options leading directly from discovery to purchase and playback.
- Viewers verify their email before payment, review every fixture and term in a pass, and see access appear automatically while the site safely waits for Stripe's verified confirmation.
- Orders preserve the exact broadcasts and product details offered at checkout, while overlapping passes keep valid access if a different purchase is later refunded.
- My Passes brings live, upcoming and finished fixtures together with purchase history, and the live video player now leads the match page while scores, events and supporter features remain available alongside it.
- Commerce staff can safely expand a season or opponent pass for existing purchasers after reviewing the impact, with every added fixture and access grant recorded for audit.
- A recovery worker reconciles delayed Stripe updates and retries purchase emails, while operator service notices and clearer delayed or unavailable states keep viewers informed during incidents.
-
- Viewers now land on a clear Live & Upcoming schedule and can open My Games to see every current broadcast linked to their account.
- The match centre now opens on live statistics first, with a clear route to a separate responsive stream page so viewers can move between scores and video easily.
- The live player now uses polished MKLTV play, pause, mute, volume, and full-screen controls with smooth state transitions instead of each browser's default video toolbar.
- The Viewing Access user picker now shows each viewer's display name and email address instead of their username.
- Alpha's synthetic stream now uses a dedicated shared Docker volume outside the read-only clip mount, recovers cleanly after container redeployments, and reports an unhealthy service when its rolling playlist is missing or stale.
- Alpha playback now records bounded quality, startup, buffering, screen, and device telemetry so the team can diagnose real-device tests without storing stream secrets.
- Beta testers can send categorized feedback from each match centre, while staff can review the report with its game and browser context.
-
- The new video platform can be developed separately while production statistics continue to receive maintenance updates.
- Dedicated alpha and beta deployment stacks keep test databases, uploads, cache data, secrets, and network ports isolated from each other and from the live site.
- GitHub builds and Portainer webhooks now promote development, alpha, beta, and production images independently after validation.
- Test environments have safe off-by-default streaming and commerce switches, machine health checks, structured request logs, and automatic Alpha database backups.
- Alpha viewers can use a protected Amazon IVS proof player with short-lived, one-use playback authorization once operators install a private test channel.
- Alpha can run a protected synthetic HLS test stream in Docker, allowing the player and viewer-access journey to be developed before an Amazon IVS channel is purchased.
- Mock-stream deployments now start without asking operators for unused Amazon IVS channel details or playback keys.
- The game setup screen now uses a date-and-time picker, clearly marks required fixture details, and keeps optional GameStats identifiers out of the way during Alpha testing.
- The protected stream page now gives viewers a cleaner responsive player, clearer fixture and playback status, simpler retry guidance, and less intrusive technical diagnostics.
- Administrators can open the full dashboard during a live game, with Viewing Access also available directly from Mission Control.
- One viewing entitlement now allows exactly one active device, with a clear confirmation before playback moves and a Take back option on the device that was displaced.
- Playback sessions use live heartbeats, release abandoned tabs automatically, and stop connected players when access is revoked.
- Amazon IVS and the local synthetic stream now share the same device-session protection, including cast receivers that remain paired with their controller instead of consuming a second entitlement.
- Playback failures now explain whether the signed-in account, browser request, session service, or stream provider needs attention, and include a short support reference for match-night troubleshooting.
- Browser playback identities now recover automatically from invalid saved data and restricted storage modes for both Amazon IVS and the local synthetic stream.
- Protected playback sessions now start correctly on PostgreSQL deployments as well as local SQLite development databases.
-
- Operations teams have dry-run-first tools for encrypted PostgreSQL backups, isolated restore verification, and controlled application-image rollback.
- A concurrent viewer and operator load harness, dependency-outage drills, and a match-night incident runbook make capacity and recovery checks repeatable in a safe staging environment.
- Release metadata, changelog revisions, application versions, migrations, operational artifacts, and the full test suite are now checked automatically before deployment.
- Browser, device, accessibility, slow-network, handover, and two full-match rehearsal templates clearly record what was tested and keep unrun external checks visible instead of treating them as passed.
-
- Match-night changes now have a protected, chronological audit history showing their source, staff member, reason, and before-and-after values without storing credentials.
- Operators can preview score and event corrections before applying them, while withdrawals, replacements, and conflicting edits remain traceable instead of deleting the original record.
- Post-game reconciliation compares the scoreboard, GameStats, and reviewed local events, then keeps critical differences open until a staff member resolves or explicitly accepts them.
- A close-game checklist prevents unfinished review or replay work from being overlooked, records any later reopening, and provides deterministic per-game and season CSV or JSON exports.