CHANGELOG

Small changes. Better testing.

Stay up to date with new features and improvements.

September 11, 2026Dashboard 2.42.21

Speed up Measurement Control on large datasets

Measurement Control could take more than a minute to answer on procedures with very high run volume, and the page sometimes stopped loading altogether before any chart appeared.

  • Fixed the page stalling on procedures with hundreds of thousands of measurements. The heaviest query dropped from 106 seconds to 5 seconds, and opening a measurement now answers in well under a second.
  • Improved the cold page load so the sidebar filter counts wait for the main chart instead of competing with it, which is what made every query on the page slow down at once.
  • Added a clear message asking you to narrow the date range or the filters when a query is too broad, in place of a page that never finished loading.
September 8, 2026CLI 1.7.5Dashboard 2.42.17

Keep the CLI working when the disk fails

A single unreadable block on a station's disk used to stop every TofuPilot command, including the update that would have fixed it.

  • Fixed a damaged local state file stopping the CLI entirely. It is now set aside automatically and rebuilt, and the station stays logged in because credentials are stored separately.
  • Added the operating system's own error name and one concrete action to filesystem failures during a pull, so a full disk or a damaged volume names itself instead of looking like a TofuPilot bug.
  • Improved the recovery warning, which now points to the copy of the damaged file kept on disk for support.
September 7, 2026CLI 1.7.4Dashboard 2.42.12Release Server 1.4.13Docs 2.5.8Website 0.11.34

Install the CLI from tofupilot.app

Some corporate networks block the tofupilot.sh domain, so a station could not install or update the CLI without an IT ticket. Everything a station needs now lives under one domain that stations already reach for the API.

  • Moved the CLI installer to curl -fsSL https://tofupilot.app/install | sh (and install.ps1 for Windows), with binaries, updates and the Python runtime mirror served from dl.tofupilot.app and get.tofupilot.app
  • Moved the self-hosted deploy script to curl -fsSL https://www.tofupilot.com/deploy | bash, the domain the license check already uses
  • Updated the station page, Orbit, docs and FAQ to the new commands; the firewall allowlist for a station is now *.tofupilot.app

The tofupilot.sh commands keep working, and installed stations update themselves without any change.

September 6, 2026Dashboard 2.42.11

See how many filter values are hidden

Filter lists on the runs, phases and measurements pages show at most 30 values, and the cut was silent, so a part number or measurement name past the 30th row looked like it did not exist.

  • Added a footer under every cut filter list that stays visible while you scroll and points you to the search box, so you know more values exist and how to reach them
  • Added the real total where it is known, for example "Showing 30 of 1,800" on the Measurement Control and Phase Pareto filters and on every environment, deployment and version filter
  • Improved row counts in filter lists so digits are grouped the same way as in the command bar
September 5, 2026CLI 1.7.2Docs 2.5.7

Stop a burn-in safely, even mid-run

Long multi-slot runs on shared instruments now stop the way an operator expects.

  • Added a graceful stop on Ctrl-C, Ctrl-Break, SIGTERM and station stop: running phases are interrupted, the execution-scoped teardown (your power-off) runs, and every slot's run is queued as ABORTED with what it measured
  • Added a second-signal escalation to force, ignored inside 3 s of the first so a reflex double Ctrl-C cannot cut a power-off in progress
  • Fixed operator stops on multi-slot runs, where the shared plugs were released before the teardown could use them
  • Fixed shared plug processes outliving the CLI and holding their instrument session after a crash or kill
  • Fixed the operator screen showing idle after a reconnect hours into a run
  • Changed phase deadlines to a monotonic clock, so a time sync no longer shortens a timeout

Closing the console window on Windows is best-effort inside the 5 s the OS grants; use Ctrl-C to stop a run, and an instrument-side watchdog for fixture safety.

September 5, 2026Studio 1.4.15Station 1.4.15Framework 1.4.15

Declare 80 slots in one line

Multi-slot procedures no longer need one YAML entry per slot.

  • Added an integer shorthand for execution.slots: slots: 80 expands to slots slot_01 to slot_80, zero-padded so they sort in order everywhere
  • Kept the list form for custom slot keys and names
  • Improved load errors: a wrong count or type says what was expected, and a bad entry in the list keeps its own message
  • Updated Studio to open procedures that use the shorthand
September 4, 2026StudioStationFramework

Reject bad operator input before the test runs

Operator entries used to be checked differently by the kiosk, the web console and the terminal, and a serial the server would refuse was only caught at upload, after the test had already run.

  • Added: every submission is now judged by the station itself; a rejected entry keeps the form open with a plain-language message under the field (“Remove the space (character 3) — allowed: uppercase letters, digits, -”, “Must be exactly 4 digits — you typed 2”), and the raw pattern is never shown to the operator
  • Added: prefix and suffix on unit fields and text inputs, displayed locked around the input and composed into the recorded value, so the operator scans only the variable part and pattern never has to repeat the fixed one
  • Added: pattern_message for patterns that cannot explain themselves; patterns now match the whole entry (SN-[0-9]+ rejects SCRAP SN-0042 XX, anchors optional), and serial, part, revision and batch fields default to the server's allowed characters so a bad scan fails at the form, not at upload
  • Improved: one shared form for phase prompts and unit identification with keyboard-first flow, Ctrl/⌘+Enter submit and password managers suppressed; the Studio editor refuses a pattern the station cannot compile while you type, nudges you to add a message when one cannot be derived, and screen previews use the exact verdict a run would give
  • Fixed: “Run again” no longer crashes when the unit config changed between two runs; the docs for text inputs and unit under test cover the new fields (Studio desktop keeps the previous client-side checks for now)
September 4, 2026Dashboard 2.42.8

See every slot of a fixture from one run

Runs from a multi-slot execution now show where they ran and what ran beside them.

  • Added a Slot section on the run page with the slot key, name and execution, and a hover card listing every sibling run with its serial and outcome
  • Added a Slot filter group to the runs list with key, name and execution, with counts, shown only for procedures that use a fixture
  • Improved the runs toolbar with a tooltip on Import and consistent pointer cursors
September 4, 2026Dashboard 2.42.5CLI 1.6.1

Follow every slot of a multi-slot run

Stations that test many units at once now get an operator view built for the fixture instead of a single-unit screen.

  • Added a fixture grid with one tile per slot showing its name, serial, current phase and status, sized to fill the screen from 2 to 80 slots
  • Added slot pages with each slot's own phases, prompts, outcome and run link, reachable from the grid or a direct link
  • Improved the progress bar to show one group per slot with its phases, and a violet state wherever a slot waits on the operator
  • Updated the CLI to report slot names, units and outcomes so every slot gets its own run in the dashboard
September 4, 2026Dashboard 2.42.4

Export charts and pick measurements by name

Getting a Measurement Control curve into a report meant a screenshot, and finding one measurement among hundreds meant scrolling a narrow list, so the analytics pages now do both from where you already work.

  • Added Copy chart as image, Export chart to PNG and Export chart to PDF to the right-click menu of every chart on Measurement Control and Phase Pareto, with the KPI strip included in the picture
  • Added measurement picking by name in the filter bar: tick several at once, see the typed characters highlighted in each name, and remove any filter with one click
  • Added a shortcut from a measurement's page to Measurement Control, with a date window that already contains the run it came from
  • Fixed the date range filter so a date can be typed on the keyboard, keeps its day in every timezone and includes the whole end day, in the run filters and on the usage page
  • Fixed the sidebar collapse strip covering the filter list's scrollbar, and made slider handles easier to grab

Try these features today