CHANGELOG

Small changes. Better testing.

Stay up to date with new features and improvements.

August 7, 2026Dashboard 2.38.0Docs 2.4.9Release Server 1.4.9

Sign in with your Atlassian account

Teams already using Jira or Confluence can now access TofuPilot with their existing Atlassian account.

  • Added Atlassian sign-in on the login and sign-up pages, and to the connected accounts settings
  • Documented the self-hosted setup with the OAuth app configuration and environment variables

Note: requires an Atlassian account with access to a Jira or Confluence site.

August 6, 2026CLI 1.1.0Docs 2.4.8Python SDK 2.14.1

Run OpenHTF 1.3.0 through 1.6.1

Tests running an older pinned OpenHTF could not use the CLI at all. Every release from 1.3.0 onward now works the same way.

  • Added support for OpenHTF 1.3.0 through 1.6.1, with the same measurements, validators, attachments and phase outcomes on every release.
  • Fixed attachments being dropped on releases below 1.5.2.
August 6, 2026CLI 0.26.27Docs 2.4.7

Keep instruments connected between runs

Reconnecting to instruments between units costs time on every run — slow VISA sessions, TCP links, or serial handshakes were re-established for each unit tested on a station.

  • Added scope: station for plugs: the connection opens once, is shared by every run on the station, and closes when the station stops
  • Health-checked the held instance before each run, respawning it if the process died, the plug definition changed, or a new deployment was applied
  • Renamed plug and phase scopes to slot / execution / station; the legacy each / all spellings still parse
August 5, 2026CLI 0.26.26Docs

Fix phases timing out at 60s during plug calls

Long-running hardware operations — thermal soaks, firmware flashes, slow measurements — were killed after exactly one minute, even when the phase allowed more time.

  • Fixed plug method calls dying at 60 seconds: they now run for as long as their phase allows, with no time limit when the phase has none
  • Improved timeout errors to name the interrupted plug method instead of a bare "timed out"
  • Documented the phase timeout field: duration syntax, bounds, and how the deadline covers plug calls and operator prompts
August 5, 2026Docs 2.4.5

Document procedure entry points and run_if

Teams that run several procedures from one codebase no longer have to rename files to main.py or guess which file a station executes.

  • Added a full reference for the procedure entry point and root directory settings: accepted values, defaults for each framework, when a change takes effect, and how imports resolve for entry points in subdirectories.
  • Added a monorepo guide for deploying several procedures from one repository, including procedure files with custom names.
  • Documented how to run a subset of phases with OpenHTF's run_if option, and how skipped phases appear on the dashboard.
August 3, 2026Dashboard 2.37.23

Upload and view attachments behind a firewall

Factory networks behind strict proxies had to whitelist third-party storage domains to use run attachments; every attachment URL now stays on TofuPilot domains.

  • Added attachments.tofupilot.app: uploads and downloads from SDKs, stations, and the dashboard no longer touch external storage hosts
  • Added a 95 MB per-attachment limit with a clear error message, replacing an undocumented unlimited behavior
  • Improved attachment serving with video seeking support and stricter content-type protections
August 3, 2026Dashboard 2.37.21

Fix cut-off labels on the measurement chart

The Y axis on a measurement control chart could cut the leading digits off its own labels, so the scale read as non-linear and the same number appeared twice at two different heights.

  • Fixed axis labels being clipped, which hid the most significant digits of every long value and made limit lines look misplaced
  • Rounded the axis values so they stay short and readable whatever the measurement scale
  • Kept enough decimals on narrow ranges, where every label used to collapse to 0
August 3, 2026Dashboard

Connect Bitbucket Data Center repositories

Teams hosting their code on a self-managed Bitbucket Data Center instance can now link it to TofuPilot, alongside GitHub and GitLab.

  • Added Bitbucket Data Center as a git provider, connected with your instance URL and an HTTP access token
  • Added automatic repository sync and webhooks so procedures deploy on push, with commit details shown in deploy views
  • Added a Bitbucket settings page to manage the connection and replace tokens
August 3, 2026CLI 0.26.25

Continue between phases with the keyboard

Operators work with their hands on a barcode scanner, not a mouse, but only phases starting with a text input kept the keyboard alive — an acknowledge prompt, a switch, a radio group or a bare Continue step forced a reach for the mouse once per phase.

  • Added keyboard focus on every prompt shape, so Enter — including the trailing Enter a barcode scanner sends — acknowledges a phase and moves to the next one.
  • Added Cmd/Ctrl+Enter to confirm a prompt from anywhere, including inside a multi-line text field where Enter must stay a newline.
  • Fixed a held Enter skipping a prompt the operator never saw, and restored focus to the form automatically after a failed send so a retry needs no mouse.
  • Added a ⏎ hint on the Continue button, shown only when Enter really confirms.
August 3, 2026CLI 0.26.24

Deploy and run behind a strict firewall

Stations on locked-down networks could not reach the third-party hosts used to download the Python runtime and to transfer deployment archives, so setup failed where IT could not allowlist them.

  • Added a TofuPilot-hosted mirror for Python interpreter downloads, so station networks now only need *.tofupilot.app, tofupilot.sh and dl.tofupilot.sh (plus PyPI).
  • Moved deployment uploads and downloads to artifacts.tofupilot.app, with no change to how stations work — they follow whatever address the API returns.
  • Added a clear error when a project's sources exceed the 95 MB upload limit, instead of an opaque failure part-way through.
  • Added overrides for air-gapped setups: point the mirror at your own host, or turn it off to use the upstream source.

Try these features today