Skip to content

Changelog

Stay up to date with new features and improvements.

June 17, 2026Dashboard 2.36.66

Deploy on any Python from 3.10 to 3.14

Deployments now build on the Python version your procedure declares, instead of always on 3.12. A procedure pinning requires-python = ">=3.13" previously failed to build with "No interpreter found for Python 3.13".

  • Added support for building procedures on Python 3.10 through 3.14, selected from your pyproject.toml requires-python.
  • Improved error messages when a version can't be satisfied, pointing you to a supported range instead of failing cryptically.
  • Kept the default at 3.12 when requires-python is omitted, so existing procedures build unchanged.
June 17, 2026CLI 0.26.4Dashboard

Run stations as root with launch on boot

Test stations that need root access to their hardware can now start automatically at boot. Previously enabling launch on boot as root failed because the station installed a user-level service.

  • Added automatic system-service install when the station runs as root, so launch on boot works without a login session.
  • Hid the on-screen kiosk option for root stations, which have no display, and made clear that these stations are controlled from the dashboard.
  • Showed a clear, actionable message instead of a raw systemd error when launch on boot cannot be enabled.
June 16, 2026Dashboard 2.36.65CLI 0.26.3

Show attachment images in the operator UI

The CLI kiosk and the dashboard operator UI now support attachment images. Attach a board photo, probe shot, or failure close-up during a run and it shows inline next to the phase instead of as a bare filename, so the operator can compare it against the unit while the run is live.

  • Added inline image rendering for run attachments in the CLI kiosk (served locally) and the dashboard operator UI (served after upload)
  • Fixed station runs so attachment images reach the dashboard, matching OpenHTF and Robot runs
  • Improved deployment history to show who ran a CLI deploy instead of "unknown"
June 15, 2026Docs 2.3.32

Document Python version selection

Clarifies how TofuPilot picks the Python version for a procedure so users avoid "No interpreter found" and package-incompatibility errors.

  • Added a Python version section explaining selection happens at the minor level (3.12), not the patch (3.12.4), with supported minors 3.10 to 3.14.
  • Documented the gotcha for packages limited to older minors and how to cap the upper bound in requires-python.
  • Noted that air-gapped stations can only use Python minors already installed locally, since provisioning a new minor requires fetching the interpreter.
June 15, 2026Website

Speed up homepage hero image load

The homepage hero image was loading at low priority and arriving ~1.4s into page load, hurting perceived speed.

  • Fixed the high-priority hint on the theme-aware hero image so it now downloads first.
  • Marked the visible hero image as eager so the browser stops deferring the largest content element, dropping load to under 800ms.
June 15, 2026Website

Speed up public content pages

Changelog, news, guides, templates, and roadmap detail pages now load faster on first view.

  • Cached each public detail page behind a single shared, tagged getter, cutting roughly four uncached database round-trips per view down to one.
  • Busted the cache automatically on publish so updates still appear immediately.
June 15, 2026Dashboard 2.36.64

Fix uneven gaps in timeline chart bars

The activity timeline above each list now renders with consistent spacing between bars.

  • Fixed uneven horizontal gaps between bars in the timeline chart shown on the runs, units, logs, and API activity pages.
  • Aligned the chart's spacing with its loading skeleton so the layout no longer shifts as data loads.
June 15, 2026Dashboard 2.36.63

Fix measurement control page timeouts

The measurement control page could time out on procedures with millions of measurements, leaving the Pareto charts unable to load.

  • Fixed the measurement control page timing out on large procedures, so the Pareto and Cpk charts load reliably.
  • Improved how historical measurement data is aggregated in the background, keeping the page fast as your data grows.
  • Fixed the live runs toggle getting stuck on "Reconnecting" after a connection drop.
June 15, 2026Dashboard 2.36.60

Smoother, more reliable dashboard rendering

Tightened the checks behind the dashboard's automatic rendering optimizations, so the UI stays fast and dependable as it grows.

  • Strengthened safeguards around how components render and update
  • Fixed several edge cases surfaced by the new checks
  • Resolved two subtle display glitches in the process
June 15, 2026Dashboard 2.36.58

Trim JavaScript loaded on every page

Reduced the shared code that every dashboard page loads, so navigation feels lighter across the app.

  • Shipped only the English text for validation messages instead of every language
  • Loaded search, notifications, and analytics on demand instead of up front
  • Cut roughly 300KB from the code shared by every page

Try these features today