CHANGELOG

Small changes. Better testing.

Stay up to date with new features and improvements.

August 3, 2026CLI 0.26.24Docs

Run a specific Python file with tofupilot run

Projects with several test stages sharing one codebase could not validate a stage locally: local runs always fell back to main.py, so the only workarounds were renaming files or keeping separate checkouts.

  • Added support for naming the entry file directly, so tofupilot run ./stage1_entry.py runs that stage instead of main.py, with a warning when the framework expects a directory rather than a file.
  • Fixed ID columns in tofupilot ls being cut to eight characters, so IDs can now be copy-pasted straight into get, update, rm and link.
  • Improved the logged-out and "no procedure found" messages to show the direct-file form, annotated as needing no account.
August 3, 2026CLI 0.26.24

Add a red STOP button to abort a run

Operators could not find how to abort a running sequence: the stop control was a small grey icon that read as decoration rather than an emergency control.

  • Added a solid red STOP button that morphs into KILL after a stop, with a fixed width so the bottom bar never reflows.
  • Added a 500 ms delay before KILL becomes available, so a touchscreen double-tap cannot escalate a graceful stop into a forced kill.
  • Fixed the button keeping the previous run's state after a restart or a lost command, and made a kill re-sendable if the run has not ended after 5 seconds.
August 3, 2026CLI 0.26.24

Fix stations dropping offline mid-run

A single oversized event — a large image in a prompt, a verbose log dump or a long measurement trace — used to cut a station's live link for the rest of the session, so runs kept passing locally while the dashboard showed the station as offline.

  • Fixed the live link dropping when a phase sends an unusually large payload: the event is now shrunk to fit instead of breaking the connection.
  • Added readable stand-ins for degraded content — an oversized image becomes a short note explaining the operator screen still shows the full picture, and truncated logs keep their start and end with an explicit marker.
  • Kept normal runs untouched: only the payloads that would break the connection are degraded, and phase outcomes always arrive.
August 3, 2026Docs 2.4.3

Fix operator UI examples the CLI rejected

The Text and Progress pages documented a value field that the CLI does not accept, so every example on those pages failed to load when copied into a procedure.

  • Fixed the Text and Progress operator UI pages to use default_value, the field the CLI actually reads, in all eleven YAML examples and both property tables.
July 31, 2026Dashboard 2.37.15

Fix rollback offered when nothing is pushed

Instant Rollback could run when no production deployment was pushed to any station, pausing auto-push on what was really a first push.

  • Fixed the rollback dialog to disable Rollback and point to Push to All Stations when no production deployment is currently pushed
  • Added a server check rejecting rollbacks with nothing to roll back from, so the procedure can no longer end up incorrectly pinned with auto-push paused
July 31, 2026Dashboard 2.37.14

Keep date range when switching pages

Switching between analytics pages used to reset your selected date range back to the default, forcing you to re-pick it on every page.

  • Added carry-over of the selected date range when navigating between Runs, Run Analytics, Phase Pareto, Measurement Control and API Logs
  • Kept default behavior unchanged when no range is selected, so shared links stay relative
July 31, 2026Dashboard 2.37.13

See run outcomes on the measurement chart

The measurement control chart showed each point's own pass/fail, but seeing how runs behaved meant filtering by run outcome and reloading, losing the full distribution.

  • Added a colored ring around every control chart point showing its run's outcome (pass, fail, error, timeout, aborted), so value-to-run-outcome correlation is visible in one view
  • Hid the ring only where it would blend into the point's own color, and unified point sizes so ringed points don't read as larger values
July 31, 2026Dashboard 2.37.12

Fix selections reverting after quick clicks

Changing a measurement selection quickly — select, deselect, select again — could end up in the wrong state a few seconds later, showing no results until the page was reloaded.

  • Fixed rapid filter and selection changes occasionally reverting to an earlier state (a race in the URL state library, fixed upstream and upgraded)
  • Fixed measurement names containing a comma breaking multi-selection entirely
  • Selecting a measurement now applies in a single step instead of two, removing a flicker
July 31, 2026Dashboard 2.37.11

Export every result matching your filters

Exporting from Phase Pareto or Measurement Control only covered the rows already loaded on screen — filter to 295 phase executions, export, get 50.

  • Added "Export all matching" to both export menus — the file now contains every row matching your filters, with a clear warning if the export is very large
  • Added selection chips to the Measurement Control search bar, so the selected measurement shows up there and can be cleared in one click
  • Fixed removing a filter chip doing nothing, and filters occasionally conflicting when changed quickly from different places
  • Made Measurement Control load faster on first visit
July 30, 2026Dashboard 2.37.9

Show CLI deployments without a linked repo

Deploying with the CLI created a deployment you could open by link, but the Deployments page still claimed no repository was connected and listed nothing.

  • Fixed the Deployments page hiding CLI deployments on procedures with no linked Git repository.
  • Fixed the same blank state on the organization-wide Deployments page.
  • Updated the empty state to mention tofupilot deploy alongside connecting a repository.

Try these features today