Skip to content

Changelog

Stay up to date with new features and improvements.

May 8, 2026CLI 0.21.24

Improve station connectivity diagnostics

Faster troubleshooting when the kiosk page is unreachable or blank, with clearer log output pointing at the actual cause.

  • Added tofupilot service status loopback probe that reports listening, refused, or timeout, and names the process holding the port.
  • Added locale-stable Windows port-holder lookup so non-English Windows hosts (Chinese, Japanese, German, French) report the same diagnostics as macOS and Linux.
  • Fixed hardcoded port 7321 in several paths so TOFUPILOT_LOCAL_UI_PORT is honored everywhere.
  • Improved bind errors with specific remediation hints for port-in-use, permissions, loopback down, and container/network-namespace cases.
  • Added kiosk readiness probe and browser exit detection so blank-page situations surface in the logs instead of failing silently.
May 8, 2026CLI 0.21.23Dashboard 2.22.17Release Server 1.2.6

Reliability and kiosk fixes

A round of fixes covering the auto-update flow, kiosk polish on Windows, the git provider setup, and how stations refresh to the latest CLI.

  • Fixed auto-update segfaults and the boot ENOENT race that occasionally crashed stations on first launch after an upgrade
  • Fixed the Windows TUI double-registering keystrokes and the desktop shortcut launching the procedure runner instead of the station daemon
  • Fixed the GitHub and GitLab provider setup screens losing state on reload, and surfaced underlying provider errors instead of a generic toast
  • Refreshed installs to the latest CLI faster: removed the CDN cache on the version endpoint and suppressed spurious "update failed" warnings on subsequent boots
May 8, 2026Dashboard 2.22.10

Default new stations to kiosk mode

Operator-facing stations come up in kiosk mode out of the box, with a tighter install command and a polished repo list on the New Procedure flow.

  • Defaulted new station deployments to kiosk mode (full-screen operator UI on boot)
  • Refactored the install command snippet so the copy-paste flow is shorter
  • Polished the linked-repo list on the procedure detail page
May 8, 2026Dashboard 2.22.17

Detect pytest repos without a main.py

Pytest-only repos with no sentinel main.py now show up in the New Procedure picker on their own. The audit treats a leaf test_*.py next to pyproject.toml as enough signal to commit to the pytest framework.

  • Added test_*.py / *_test.py as a procedure signal in the repo audit
  • Defaulted detected pytest procedures to entry point "." (the package directory)
  • Dropped the sentinel main.py from the Pytest Starter template
May 8, 2026CLI 0.21.17Dashboard 2.22.15

Override the entry point per procedure

Procedures can now declare which file or directory the station hands to the framework runner. Useful when your repo doesn't follow the default layout, or when you want pytest to scan a specific subdirectory.

  • Added an Entry point field to the Build configuration section on every procedure page
  • Forwarded the value through the deployment manifest so the station picks it up on the next pull
  • Defaulted to the framework convention when left blank: main.py for OpenHTF and plain Python, the package directory for pytest, procedure.yaml for the TofuPilot Framework
May 7, 2026Dashboard 2.22.8

Fix template clone auto-deploy

Fixed an issue when cloning a template: auto-push now picks up the seed commit so the procedure deploys to your stations immediately.

May 7, 2026CLI 0.21.6Dashboard 2.22.7

Deploy OpenHTF procedures from GitHub

OpenHTF is a first-class framework alongside the TofuPilot Framework for stations: clone a starter from /new, push to GitHub, the station picks up your test on the next deploy.

  • Added a one-click OpenHTF Starter template in /new -- single procedure showing plugs, prompts, hard + marginal limits, regex validators, voltage-vs-time chart, attachments, and skip flow control
  • Streamed live phase events (phase started/ended, measurements, prompts, attachments) so the operator UI mirrors what is happening on the station in real time
  • Routed native user_input prompts to the web operator UI, with timeouts and operator-typed responses flowing back to OpenHTF without leaving the dashboard
  • Rendered marginal limits, multi-dim charts, and validator expressions natively in the dashboard from the connector's structured payloads
May 6, 2026CLI 0.21.0

Fix measurement outcome rollup

Measurements with a recorded value but no validators were reaching the dashboard as UNSET instead of PASS, mostly affecting string measurements used for traceability.

  • Fixed outcome rollup to match OpenHTF semantics: null value stays UNSET, any failing validator forces FAIL, otherwise PASS.
  • Added unit tests covering the parity rules.
May 6, 2026Dashboard 2.22.1CLI 0.21.0

Deploy from uv-workspace monorepos

Procedures living inside a uv-workspace monorepo can now be deployed without restructuring the repo, by pointing the CLI at the package directory.

  • Added a package_directory setting on procedures so deployments resolve dependencies from a sub-package instead of the repo root.
  • Updated the CLI and deployer to walk up from the package directory to find the workspace venv and lockfile.
  • Consolidated the deploy pipeline behind a typed v1 manifest, with framework auto-detected from disk at runtime.
May 5, 2026Dashboard 2.21.11

Fix SPC sidebar filters with multiple values

Fixed a bug that could cause SPC sidebar filters to silently ignore selections when more than one value was picked. Multi-value filters now narrow the chart as expected.

Try these features today