Skip to content

feat: validate app compatibility with the TV - #241

Open
beatcracker wants to merge 1 commit into
webosbrew:mainfrom
beatcracker:main
Open

feat: validate app compatibility with the TV#241
beatcracker wants to merge 1 commit into
webosbrew:mainfrom
beatcracker:main

Conversation

@beatcracker

@beatcracker beatcracker commented Aug 21, 2026

Copy link
Copy Markdown

Goal

Turns out HBC never actually checks app compatibility requirements - I only noticed when people started reporting my app crashing on TVs it was not compatible with.

This PR adds non-blocking compatibility warnings for webOS version, TV SoC, and root access. Warnings show up on the app details screen. If something is definitely incompatible, HBC asks for confirmation before install/update/reinstall, but nothing is ever hard-blocked, users can always proceed.

Apps that don't declare any requirements behave exactly as before.

Screenshots

compatibility-details compatibility-confirmation

Implementation notes

The annoying part was version ranges: they need to match the Cargo-style ranges that ipk-verify uses on the Rust side. I went with the existing semver package plus a small adapter that covers the range forms actually used in apps-repo today. It deliberately does not implement the full Cargo grammar. Anything it can't parse just produces a warning.

Everything is best-effort: if HBC can't figure out the TV's webOS version, SoC, or root status, that shows up as unknown and install stays available.

Testing

Tested on a real C2 (warning + confirmation flows, install/reinstall after confirming), plus unit tests for the requirement evaluation. UI still fits the TV screen even with all three warnings at once, no overflow or or buttons moved around.

Note

Heads up in case you care about this kind of thing: the code is LLM-assisted, with heavy guidance from me. 😅

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.

1 participant