Parent: #91
Depends on: #95 , #100
Outcome
Allow a verified release bundle to update a host that passes the runtime compatibility checks without rerunning interactive setup or TV pairing.
Scope
Add an explicit install.sh --upgrade mode.
Expose a candidate-specific non-mutating preflight that checks the candidate installer requirements defined with Add runtime host upgrade compatibility preflight #100 .
Refuse an incompatible host before privileged mutation.
Load and preserve the existing config path, settings, updates.channel, and profile-scoped native credentials.
Skip network discovery, interactive configuration, and pairing.
Avoid Python virtual-environment recreation for native-only installations; repair the legacy Python environment only when required and unhealthy.
Complete user-space preflight before requesting sudo.
Replace only LG Buddy-owned runtime, integration, desktop, hook, and unit files.
Reload and restart system and user services in a defined order.
Verify the installed binary identity and report partial failures with recovery guidance.
Acceptance criteria
Candidate-specific preflight is non-mutating and refuses incompatible layouts before sudo or installation writes.
The upgrade path never invokes interactive configure.sh behavior or pairing.
Configuration, update policy, and native credentials are byte-for-byte preserved.
Native-only upgrades do not recreate the Python environment.
Service/unit/hook replacement and post-install version verification are covered in the sandboxed bundle smoke test.
Shell syntax and focused installer smoke coverage pass.
Out of scope
Defining the complete or permanent host-compatibility check set; tracked and evolved in Add runtime host upgrade compatibility preflight #100 .
GitHub release discovery or downloading.
Public lg-buddy updates install orchestration.
Full transactional rollback after privileged mutation begins.
Parent: #91
Depends on: #95, #100
Outcome
Allow a verified release bundle to update a host that passes the runtime compatibility checks without rerunning interactive setup or TV pairing.
Scope
install.sh --upgrademode.updates.channel, and profile-scoped native credentials.Acceptance criteria
configure.shbehavior or pairing.Out of scope
lg-buddy updates installorchestration.