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.
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_webosduring the initial migration window.Scope:
tvs_primary_platform=lg_webos.tv.platformwhile still storing it with thetvs_primary_*profile keys.lg_webosas bscpylgtv.Acceptance criteria:
tvs_primary_adapter=...,tv.adapter, or a globaltv_backend=nativestyle switch as the durable user-facing TV identity.Out of scope: