Skip to main content

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[0.1.64] - 2026-08-04

Added

  • tvlabs execute --containerized runs your entrypoint in a container on your own machine instead of directly on the host. The image owns the toolchain, so a run no longer depends on what happens to be installed here, and the container sees only --context (mounted at /workspace) and the TVLABS_* contract — none of your environment. Experimental, roku only, and macOS with Docker Desktop only for now. Build the image with mise run build-runner-image; it is not published yet. See Containerized runs.
  • tvlabs execute --image names the container image for --containerized, defaulting to tvlabsai/execute-runner:<cli version>. Customers who need more than the base image provides can FROM it and pass their own.

Changed

  • A containerized run's device forwards bind ephemeral local ports instead of the platform's documented ones. The TVLABS_* contract already promised that "a port is one the local end really binds", and it now reports what was actually bound rather than what the port map expected. So --containerized no longer collides with an adb server you already have running, a dev server on 8080, or a second tvlabs run — and two runs can share one machine, which [0.1.62]'s preflight could only report as a failure. Read every port from its TVLABS_* variable and this is invisible to your harness; a harness that hardcodes 8060 or 5037 will only work on the host path. Host runs are unchanged and still bind the documented ports.
  • TVLABS_DEVICE_HOST is host.docker.internal under --containerized — the container's route back to your machine — while --bind-address continues to control what the tunnel binds. TVLABS_OUTPUT_DIR is a /workspace/... path in that mode; its contents still land under --context on the host, through the mount.

[0.1.63] - 2026-07-31

Fixed

  • The --target example in tvlabs execute --help targeted platform_key:fire_tv, which matches no platform and now fails with unknown platform_key "fire_tv". Fire TV and Google TV are OS variants of android_tv: target them with platform_key:android_tv AND platform_os_variant:fire_tv.
  • A --target naming platform_key:fire_tv or platform_key:google_tv no longer reports a missing local adb in place of the real problem. The preflight treated both as platforms needing the Android toolchain; since neither is a platform key, the run now goes straight to the server and reports unknown platform_key instead.

[0.1.62] - 2026-07-31

Added

  • tvlabs execute checks the local platform toolchain before it requests a device. When --target names a platform_key, a missing adb / sdb / ares-setup-device, or any port the platform's tunnel binds already taken — the adb server's 5037, the sdb server's 26099, webOS's 3000, Roku's 8080, whichever applies — exits 1 in under a second instead of after a device has been matched and warmed. Targets whose platform the CLI cannot determine up front are checked as soon as the server reports the device, and also exit 1. See Local requirements.
  • tvlabs execute builds its TVLABS_* environment per platform, and ships the variables a harness needed and had to work out for itself: TVLABS_DEVICE_IP, TVLABS_DEVICE_NAME, TVLABS_OUTPUT_DIR, TVLABS_ADB_ADDR and TVLABS_ADB_SERIAL (Android), TVLABS_SDB_ADDR (Tizen), TVLABS_ARES_DEVICE and TVLABS_SSH_ADDR (webOS), TVLABS_ECP_PORT and TVLABS_ROKU_DEV_PORT (Roku). A variable that does not apply to the matched platform is now absent rather than empty. See Environment contract.
  • tvlabs execute --webos-tools-dir, matching tvlabs connect, for a runner that keeps the ares CLI off PATH. The preflight above honours it: the ares CLI may live there rather than on PATH.

Changed

  • tvlabs execute no longer passes TVLABS_API_KEY (or any other TVLABS_* key, token, secret, password or passphrase) to the entrypoint. A harness that shells out to tvlabs itself — or to the TV Labs API — must now be given the key explicitly: --env "TVLABS_API_KEY=$TVLABS_API_KEY". Your own secrets are untouched.
  • TVLABS_INSPECTOR_PORT is set only on the platforms where something is actually listening on it, and the docs now say what answers there per platform. It was previously set on every platform, including ones where nothing was bound.
  • The port-collision error now names the fix instead of lsof: a busy 5037 or 26099 recommends adb kill-server / sdb kill-server.

Fixed

  • tvlabs execute checks that --context can be written to while validating flags, instead of failing after a device had been matched and warmed.
  • tvlabs execute sets the Viera log file path and the webOS tools directory it had been omitting, which made the Viera log server fail every write.
  • A platform missing from the port map (a typo, or a platform with no documented port list) no longer silently reports a successful connection with zero device port forwards. tvlabs connect / tvlabs execute now print a warning and forward only the app port.

Removed

  • google_tv and fire_tv as platform keys. Both are OS variants of android_tv, not platforms of their own — a Fire TV or Google TV device reports platform android_tv to the CLI and resolves through the android_tv port map and ADB handler. The dedicated entries were unreachable on every real code path.

[0.1.61] - 2026-07-27

Added

  • tvlabs execute (alias tvlabs exec), an experimental command that requests a device, tunnels to it, and runs a script of yours against it — built for CI. See tvlabs execute for the environment contract and exit codes. Experimental means its flags, TVLABS_* variables and exit codes may change without a major version bump; pin your CLI version if you depend on it.

[0.1.60] - 2026-07-22

Fixed

  • Fixed an issue that could cause some requests to TV Labs services to be rejected.

[0.1.59] - 2026-07-13

Changed

  • Roku ports 8080 (debugger) and 8085 (BrightScript console) now forward to the sidecar, which multiplexes the telnet console across clients on the backend.

Removed

  • CLI-side console multiplexer for Roku port 8085, along with the --logs and --mode flags on tvlabs connect. Connect to :8085 on the sidecar instead — multiple concurrent clients are now supported.

[0.1.58] - 2026-07-13

Added

  • Web inspector for Android, Fire TV, and TiVo WebViews. Press d during tvlabs connect to open Chrome DevTools on the foreground app, or add the inspector port (default 9222, set with --inspector-port) as a chrome://inspect network target.

Fixed

  • adb kill-server interception scans only the bytes actually received, avoiding false matches.

[0.1.56] - 2026-04-22

Added

  • Local /_dev/certificate endpoint to serve Tizen dev certificate bundle
  • certificate_url field in session device payload for platform-specific signing

[0.1.55] - 2026-04-14

Added

  • --webos-tools-dir flag for tvlabs connect to specify a custom directory for ares-* CLI tools
  • --mock-tunnel and --local-device dev-only flags for local testing
  • --base-url dev-only flag to override the API/WebSocket host
  • Local HTTP status API for external tools to query tunnel state

Fixed

  • WebOS platform handler uses absolute paths from --webos-tools-dir instead of relying on PATH
  • Synchronized concurrent writes to mux upstream
  • Cross-platform PID liveness check for session files
  • Sanitized session ID in file paths
  • Thread-safe access to active mux server via atomic pointer

[0.1.54] - 2026-04-13

Added

  • --headless flag for tvlabs connect to run without TUI (for VS Code extension integration)
  • --session flag auto-connects to a specific session directly, skipping session selection
  • TVLABS_API_KEY environment variable support for API key authentication

Fixed

  • Check PATH before appending install location in install script

Removed

  • Deprecated port mappings for app ports and Viera log server

[0.1.53] - 2026-04-01

Added

  • Support for local.tvlabs.ai stable DNS name for device companion host resolution with app ports and Viera log server.

[0.1.52] - 2026-03-06

Added

  • Port mapping for browser devices

[0.1.51] - 2026-02-25

Changed

  • Tizen debugger functionality uses static port forwarding instead of dynamic forwarding to allow the system to access the debugger for network capture.

[0.1.50] - 2026-02-17

Fixed

  • Fix for app port forwarding when device is connected to subnet 10.42.0.0/24

[0.1.49] - 2026-02-02

Added

  • Support for user hosted web applications

Fixed

  • Output messages about upgrading, invalid API key, internal server errors to stderr instead of stdout

[0.1.48] - 2025-10-08

Added

  • Support non-interactive mode with tvlabs upload and tvlabs test commands

[0.1.47] - 2025-09-22

Added

  • Chromium debugger support for TiVo platform

[0.1.46] - 2025-09-22

Added

  • adb server support for Android Mobile devices

[0.1.45] - 2025-09-17

Added

  • Handling for existing builds in upload command
  • Compute SHA256 hash of uploaded file, send in metadata
  • Send service name and version in channel join

[0.1.44] - 2025-08-11

Added

  • Viera debug log server and connect options

[0.1.43] - 2025-07-15

Fixed

  • Critical race condition in run command that caused "concurrent map writes" crashes during automation execution
  • Improved terminal output: base64 images now shown as 🖼️, better error handling, less whitespace, and proper resource cleanup

[0.1.42] - 2025-07-14

Added

  • run command to execute project-based automations from CLI with same capabilities as web interface
  • projects command group to organize project-related functionality
  • projects list command to list all accessible automation projects with comprehensive project information
  • projects targets command to discover available app/device combinations for automation projects

[0.1.41] - 2025-05-10

Fixed

  • Issue where upload command would hang if API key was not set, or set incorrectly

Added

  • whoami command to display information about the current user

[0.1.40] - 2025-05-09

Added

  • upload command supports uploading for target application by slug

[0.1.39] - 2025-05-08

Changed

  • upgrade command will upgrade the CLI to the latest version instead of printing the instructions to do so

[0.1.38] - 2025-05-08

Fixed

  • Bug where upload command could generate unuseable builds when upload is interrupted
  • Bug where upload command error messages were not being displayed

[0.1.37] - 2025-04-30

Changed

  • upload command processes build after upload
  • upload command now accepts an -n option, when specified, there's no newline printed after the build ID

[0.1.36] - 2025-04-24

Changed

  • upload command file metadata collection improvements

[0.1.35] - 2025-04-23

Added

  • Support for Vizio debugger

[0.1.34] - 2025-04-10

Added

  • connect command now accepts --bind-address or -b flag to bind the SSH tunnel to a specific address instead of the default value of localhost.

[0.1.33] - 2025-03-19

Added

  • Sessions can be ended from tvlabs connect by pressing e

Changed

  • Display instructions to get/generate API keys when no API keys were set or found with invalid API keys.
  • Updated adb instructions to specify device
  • Updated adb instructions to include opening app

[0.1.32] - 2024-12-30

Changed

  • sdb server now runs remotely next to the the device instead of locally. Prior versions of the CLI will not be able to connect to Tizen devices via sdb.

Fixed

  • Issue where -i flag on upload command would add in a unwanted newline

[0.1.31] - 2024-12-12

Added

  • upload command now supports --id-only or -i flag to output only the build ID

[0.1.30] - 2024-11-27

Added

  • Support for Tizen and WebOS websocket remotes

[0.1.29] - 2024-11-26

Fixed

  • Issue where Roku ECP requests would fail if the Host header was not set to the device IP.

[0.1.28] - 2024-11-22

Fixed

  • Fixed some incorrect URLs to some documentation pages
  • Improved text readability when the terminal has a white background

[0.1.27] - 2024-10-28

Added

  • Install powershell script for Windows
  • upgrade command instructions for Windows

Fixed

  • Issue where home directory in Windows was not being set correctly
  • Issue where tvlabs check would fail in Windows like environments

[0.1.26] - 2024-10-10

Fixed

  • Issue where tvlabs connect would fail on Windows environments when trying to save pre-paired keys.

[0.1.25] - 2024-09-30

Added

  • Display installed apps when connected to a device. Currently only supported on the webOS platform.

[0.1.24] - 2024-08-07

Added

  • Display toast in web UI when session is connected to with tvlabs connect
  • Retry logic on adb connect

Changed

  • Avoid logging sensitive info

Fixed

  • Issue where connection status could show as successful when it failed

[0.1.23] - 2024-08-05

Added

  • connect command warning about unrestored keys on start after improper shutdown
  • connect command restore keys functionality on main menu after improper shutdown

[0.1.22] - 2024-08-02

Changed

  • Retry attempts on sdb connect

[0.1.21] - 2024-08-02

Added

  • connect returns to session selection menu when current session ends

[0.1.20] - 2024-08-01

Fixed

  • Bug where port forward would fail to shutdown on reconnect
  • Status indicator state when SSH tunnel fails to connect

[0.1.19] - 2024-08-01

Fixed

  • Issue where Tizen inspector would fail if more than one device connected

[0.1.18] - 2024-08-01

Added

Fixed

  • Issue where connection would not close when session ends

[0.1.17] - 2024-07-31

Fixed

  • Race condition on tvlabs connect exit where keys might not be restored.

[0.1.16] - 2024-07-30

Added

  • connect command accepts --inspector-port or -i argument to control local inspector port

Changed

  • connect command webOS inspector now runs on a default debugger port

[0.1.15] - 2024-07-29

Added

  • Support for Chrome development tools inspector on the webOS platform.

[0.1.14] - 2024-07-29

Fixed

  • connect command help text for WebOS

[0.1.13] - 2024-07-24

Added

  • connect command support for Fire TV

[0.1.12] - 2024-07-23

Added

  • include version in distributed binary file names

[0.1.11] - 2024-07-19

Added

  • connect command improved initial state text

[0.1.10] - 2024-07-19

Added

  • upgrade now provides a link to this changelog

Fixed

  • connect instructions for Roku
  • upgrade fix help instructions
  • upload fix help instructions

[0.1.9] - 2024-07-17

Fixed

  • connect command retry hot-key