CHANGELOG

Small changes. Better testing.

Stay up to date with new features and improvements.

July 29, 2026Dashboard 2.37.4

Simplify organization member management

Managing who has access to your organization is now simpler and safer.

  • Replaced account suspension with a clear "Remove from organization" action that revokes access without touching the person's account elsewhere
  • Removed members keep their history: runs and records they created stay fully visible for traceability
  • Restoring access is now a simple re-invite
July 29, 2026Dashboard 2.37.3

Keep yield alerts open until quality recovers

A yield alert could close itself while the line was still failing. The drop that raised it slowly became part of the baseline it was being compared against, so a single quality incident produced a string of alerts opening and closing on their own — one incident on a production line generated nine.

  • Fixed yield alerts closing on the very failures that raised them, so one incident now stays one alert until someone resolves it
  • Locked each alert to the baseline measured when it was raised, so the bar to close it no longer drifts while the incident is still open
  • Applied the same rule to custom yield rules, which recalculated their reference window on every check
July 28, 2026Dashboard 2.37.2

Investigate quality incidents with AI

Every alert can now launch an AI root-cause investigation on demand — testing hypotheses against production data and reporting what actually changed.

  • Added a root-cause investigation to every alert, started with one click: it builds a live hypothesis tree scoped to the incident window, tests each lead against baseline data, and shows the supporting evidence as charts.
  • Added a written conclusion that highlights the most likely cause(s), with recommended next steps split into immediate fixes and longer-term improvements grounded in the findings.
  • Added drift attribution that pinpoints whether a measurement shifted in level, spread, or ranking, plus incident-vs-baseline checks for outcome shifts and retest churn.
  • Added stop and re-run controls for investigations, with results visible to everyone in the organization.
July 27, 2026Dashboard 2.37.1

Cut drift alert noise to one alert per event

One production incident — a failing fixture, a drifting environment — used to raise a separate drift alert for every affected measurement, and brief wobbles could alert and resolve within minutes.

  • Grouped automatic drift alerts into one event per procedure and part: every drifting measurement attaches to the same alert with its own timeline, and same-day recurrences reopen it instead of opening a duplicate. Custom alert rules are unchanged.
  • Added persistence gates: a drift now has to hold across consecutive runs before it alerts — and before it auto-resolves — ending one-off wobble alerts and resolve/reopen flapping. Sudden critical shifts still fire immediately.
  • Added an instrument-resolution floor: a shift smaller than the measurement device's own step no longer alarms, silencing last-digit noise on quantized sensors.
July 23, 2026CLI 0.26.23

Fix test runs freezing when realtime is blocked

On locked-down factory networks where the realtime streaming server is unreachable (missing DNS record, firewalled WebSockets), test runs and the station service could freeze forever before starting, with no error and no log.

  • Fixed runs and the station service to start immediately in every case: the dashboard live view now connects in the background and can never block a run, the operator UI, or result uploads. If it cannot connect within 10 seconds, a clear warning explains what to check and the station keeps working locally
  • Fixed stations where a user login coexisted with the station identity: deployment runs now always use the station identity, restoring the dashboard live view that was silently disabled
  • Added self-identifying diagnostics: every run prints its CLI version and writes a per-run log from the very start, so support screenshots and log files always show which binary ran and what happened
July 22, 2026Dashboard 2.37.0Docs 2.4.0

Get alerted to quality incidents early

TofuPilot now watches your production test data and tells you when quality slips — automatically, with no dashboards to babysit.

  • Added automatic detection for measurement drift, yield drops, and streaks of failed runs — each judged against the procedure's own history, with nothing to configure.
  • Added checks for units that get retested too often and for reference (golden) samples that stop behaving — early signs of a drifting fixture or test.
  • Added custom alert rules with your own thresholds and scope, plus an in-app inbox and email notifications when something fires.
  • Added full Alerts documentation: alert types, automatic detection, rules, and the alert lifecycle.
July 22, 2026CLI 0.26.21

Fail fast when security software blocks a run

On locked-down stations, endpoint-protection software could suspend the Python worker or block the venv interpreter, leaving runs hanging forever with no explanation.

  • Added startup watchdogs that detect a stalled Python worker (30s to respond, 300s to finish importing) and fail the phase with clear guidance to allowlist the venv in EDR/antivirus software
  • Fixed tofupilot pull to name AppLocker/WDAC/EDR blocking as the cause instead of a bare "Access is denied" error, with one automatic retry for transient scans
  • Added a per-run event log at ~/.tofupilot/logs/ referenced from stall diagnostics for faster troubleshooting with IT
July 22, 2026CLI 0.26.21

Stop framework runs hanging silently at start

A station run of a framework procedure could sit on the spinner forever with no error when the test worker process was blocked from starting — most often by security software on locked-down machines.

  • Fixed framework runs hanging indefinitely at startup: the station now stops waiting after a deadline and shows a clear, actionable error naming the likely cause.
  • Added the worker's own error output to the failure message, so a crash during startup points straight at the offending line.
July 21, 2026CLI 0.26.20

Fix stuck station runs with a clear error

A station run could get stuck on a spinner with no explanation when the test process was blocked before it could start — often by antivirus or endpoint-protection software holding the newly launched process on a locked-down machine.

  • Fixed runs hanging indefinitely: the station now surfaces a clear, actionable error instead of an endless spinner when a run cannot start.
  • Added a "still starting" hint in the operator UI that points you to the terminal if a run is slow to begin.
  • Improved crash messages so a failed run tells you whether it hit a Python error or was stopped from outside.
July 20, 2026Dashboard 2.36.101

Fix missing charts for imported test history

Runs uploaded with an older start date, such as imported history or a migration from another system, were missing from the Measurement Control charts and filters even though the measurement table below listed them.

  • Fixed backdated runs not appearing in measurement analytics: charts, trends and sidebar filters now include them as soon as the data is uploaded
  • Improved how historical data is folded into the pre-computed analytics so charts stay fast once the import settles

Try these features today