Skip to content

Physical Roku validation matrix

Status: complete for the v0.1.0 physical-device gate. A physical run on 2026-08-11 covered queries, visually confirmed keypress and non-secret text entry, launch, screenshot, console, confirmed sideload, and evidence-aware flow cases. This is evidence for the recorded host/device combination only, not a claim about untested hardware.

Run this matrix from one supported host first. Additional host/device combinations are useful evidence but are not required to prove every permutation. Before starting, record only non-sensitive metadata:

  • Validation date and tested commit
  • Host OS and version
  • Roku model number
  • Roku OS/firmware version
  • A sanitized local evidence label, such as local-run-2026-08-11 (never a committed path containing a user name)

Do not put a device IP address, developer password, token, serial number, device ID, private app name, entered personal data, screenshot, raw XML, ZIP, or console log in Git. Store raw evidence in a private local directory with restricted access. The references below should identify an operator-controlled local evidence set without revealing its contents or location.

  • Confirm the target is a test Roku on the same trusted network and developer mode is intentionally enabled.
  • Use an approved external test build and test account/state. Confirm the exact ZIP before sideloading; sideload replaces the current development channel.
  • Create a private evidence directory outside the repository.
  • Record device info and active-app query success; sanitize model and firmware into the result table, and keep raw XML private.
  • Send a harmless keypress and verify its expected effect independently.
  • Focus a disposable text field, enter a non-secret marker, and verify the resulting text independently. Never use real credentials.
  • Launch the development channel or an approved public test channel/deep link; verify active-app state independently.
  • Capture a screenshot, then visually inspect it. Capture success alone is not a UI pass.
  • Capture a short BrightScript console window and confirm expected startup output is present. Keep the raw log private.
  • Sideload the pre-confirmed development ZIP with --yes; require the installer success response, then independently query the active app.
  • Run examples/flow/hardware-pass.json; require its query checkpoint to pass.
  • Run examples/flow/hardware-intentional-failure.json; require the flow to fail because its impossible query checkpoint is absent. A command-only success is not a passing flow.
  • Retain local artifacts privately according to the operator’s private-data policy; commit only this sanitized result table.

Replace Pending only after observing the corresponding evidence. Use a local evidence label, not a sensitive path.

Host OS Roku model Roku OS/firmware Scenario Outcome Sanitized artifact reference
macOS 26.5.2 4662RW 15.3.4 Device info and active app Pass local-run-2026-08-11/item-01
macOS 26.5.2 4662RW 15.3.4 Keypress and disposable text entry Pass: before/after images visually confirmed navigation from foreground content to a disposable text field, visible non-secret marker entry, and keyboard focus; no credential submission local-run-2026-08-11/item-02
macOS 26.5.2 4662RW 15.3.4 Development-channel launch Pass: active-app independently reported dev local-run-2026-08-11/item-03
macOS 26.5.2 4662RW 15.3.4 Screenshot capture plus visual review Pass after confirmed sideload: valid private 1920×1080 image showed a complete foreground UI and visible focus; no broader UI correctness claimed local-run-2026-08-11/item-04
macOS 26.5.2 4662RW 15.3.4 BrightScript console capture Pass: non-empty private capture; raw log not committed local-run-2026-08-11/item-05
macOS 26.5.2 4662RW 15.3.4 Confirmed sideload plus active-app query Pass: approved external test ZIP received explicit installer success; active-app independently reported dev local-run-2026-08-11/item-06
macOS 26.5.2 4662RW 15.3.4 Evidence-aware passing flow Pass: required active-app checkpoint verified local-run-2026-08-11/item-07
macOS 26.5.2 4662RW 15.3.4 Intentionally failing flow Expected failure observed: impossible checkpoint was not found local-run-2026-08-11/item-08

For every completed row, record Pass or Expected failure observed and a label such as local-run-YYYY-MM-DD/item-03. If a check fails unexpectedly, record a sanitized failure summary and keep v0.1.0 tagging blocked until it is fixed or explicitly removed from the release boundary.