Skip to content

feat: add installable LG webOS TV client - #21

Merged
LucaXTech merged 26 commits into
mainfrom
feat/webos-tv-client
Sep 6, 2026
Merged

feat: add installable LG webOS TV client#21
LucaXTech merged 26 commits into
mainfrom
feat/webos-tv-client

Conversation

@LucaXTech

@LucaXTech LucaXTech commented Sep 6, 2026

Copy link
Copy Markdown
Owner

Implements the first testable UplinkWitness TV client for issue #20.

Scope:

  • installable webOS web-app shell under clients/webos/
  • LG launcher metadata plus 80x80 / 130x130 PNG icons
  • first-run UplinkWitness server configuration persisted in localStorage
  • fullscreen hosted wallboard loaded from the Raspberry/Linux host
  • TV-first wallboard with Overview / Network / Router / Incidents sections
  • directional remote navigation and Magic Remote click support
  • ES5 / Chromium 53-safe implementation: no CSS Grid, JS modules, arrow functions, fetch, or CDN dependencies
  • recoverable server settings via Magic Remote button
  • packaging / Developer Mode install instructions
  • regression tests for metadata, icon dimensions, launcher behavior and legacy-safe wallboard surface
  • CI webOS packaging job that builds and uploads the exact .ipk artifact

Architecture decision: the IPK is deliberately a thin installable launcher while the actual TV UI is served by UplinkWitness on the monitored host. This keeps API requests same-origin, avoids unnecessary CORS exposure, and lets TV presentation updates follow the installed UplinkWitness host version rather than requiring a new IPK for every dashboard change.

Automated tests pass on Python 3.11 and 3.13, and the LG CLI successfully packages the v0.1 client as an all-architecture IPK in CI.

Do not merge until physical validation on the LG OLED55E8PLA is complete.

Closes #20 only after real TV install/launch/persistence/navigation validation succeeds.

Copy link
Copy Markdown
Owner Author

Physical validation completed successfully on LG OLED55E8PLA (webOS 4.x generation).

Validated on real hardware:

  • launcher icon and fullscreen launch
  • live wallboard data from the Raspberry Pi host
  • Overview / Network / Router / Incidents sections
  • directional remote navigation
  • Magic Remote pointer/click interaction
  • close/reopen behavior
  • persisted server configuration
  • server provisioning via ares-launch -p '{"server":"..."}'
  • Developer Mode session renewal from the Raspberry Pi and weekly systemd timer
  • final webOS-specific layout polish removing the observed tiny Overview vertical overflow

Final PR head: 66cd192.
Latest CI run passes. Physical validation gate is satisfied.

@LucaXTech
LucaXTech marked this pull request as ready for review September 6, 2026 19:47
@LucaXTech
LucaXTech merged commit 52bf546 into main Sep 6, 2026
6 checks passed
@LucaXTech
LucaXTech deleted the feat/webos-tv-client branch September 6, 2026 19:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Build UplinkWitness TV client for LG webOS 4.x

1 participant