Skip to content

Add experimental opt-in direct webOS control for LG webOS TVs #53

Description

@Staphylococcus

Parent: #20

Phase: late 1.1.x migration rail.

Goal:
Let users and maintainers explicitly opt configured LG webOS TVs into direct webOS control once it has enough parity, while keeping bscpylgtv as the default production implementation for lg_webos during the initial migration window.

Scope:

  • Add a durable TV platform field to the profile storage, for example tvs_primary_platform=lg_webos.
  • If exposed through the current single-TV settings surface, map it to a semantic setting such as tv.platform while still storing it with the tvs_primary_* profile keys.
  • Do not use the platform field to mean "which internal implementation is active".
  • Add a clearly temporary implementation override for LG webOS direct-control opt-in only if needed. The exact name can be decided in implementation, but it should read like migration/debug plumbing rather than durable TV identity.
  • Keep the default implementation for lg_webos as bscpylgtv.
  • Wire the selected implementation through the same high-level TV policy surface.
  • Log or print the active platform and implementation in diagnostic paths.
  • Document direct webOS control as experimental and opt-in.

Acceptance criteria:

  • Existing users see no behavior change unless they opt in.
  • All current TV operations route through the implementation selected for the active LG webOS TV profile.
  • WebOS failures are actionable and do not look like subprocess parse failures.
  • Release smoke covers both default bscpylgtv and opt-in direct webOS modes.
  • The config shape does not use tvs_primary_adapter=..., tv.adapter, or a global tv_backend=native style switch as the durable user-facing TV identity.

Out of scope:

  • Making direct webOS control the default.
  • Deprecating bscpylgtv.
  • Multiple active TV profile selection.
  • Removing installer Python dependency setup.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions