Skip to content

Changelog

Stay up to date with new features and improvements.

April 6, 2026Dashboard 2.17.0

Redesign run sheet measurement table

The phase/measurement table on the run sheet page got a full redesign. Measurements now open in a dedicated sidebar panel with charts, validators, and aggregations.

  • Restyled phase/measurement table with consistent row spacing, sticky header, and unified column grid matching other tables across the app
  • Added measurement and phase sidebar panels with full detail views: metadata, validators table, aggregations table, JSON code block, and multi-dimensional charts with reference lines
  • Migrated multi-dimensional charts to recharts with legend, axis labels, toggleable aggregation reference lines, and a fullscreen dialog
  • Added outcome filters (fail, error, skip), search, sort, and relative/duration time toggle to the section header
April 5, 2026Dashboard 2.16.1

Process control for every measurement

The Insights page is now Process Control, rebuilt from scratch.

  • Added interactive control charts with spec limits, control limits, histograms, and capability indices (Cp, Cpk, Pp, Ppk) for numeric, string, and boolean measurements
  • Added sidebar filters for outcome, value range, retries, and all standard run filters, with a measurement selector sorted by failures, fail rate, or Cpk
  • Added measurement table with checkbox selection to drill down into matching runs or units in one click
  • Faster loads. Charts and capability indices now compute server-side.
April 2, 2026Dashboard 2.15.11Release Server 1.1.2

Upgrade server runtime to Node.js 24

Upgraded our server runtime to the latest stable LTS version for better performance, security patches, and long-term support.

  • Upgraded server runtime from Node.js 20 to 22 across all deployments
  • Updated self-hosted Docker image to the new runtime
April 2, 2026Docs 2.1.8

Add Rust code snippets to API reference

Every API reference page now includes Rust code samples alongside Python, cURL, and C#.

  • Added Rust builder-pattern snippets for all 44 V2 API endpoints
  • Fixed C# snippet generation for add and remove sub-unit operations
April 2, 2026Python SDK 2.2.4

Remove console banner and version check

The Python SDK no longer prints a banner or checks PyPI on every client init — cleaner output, faster startup, no network call at import time.

April 2, 2026Python SDK 2.2.3C# SDK 2.3.1Rust SDK 2.1.1

Auto-append /api to custom server URLs

All SDK clients now automatically append /api to custom server URLs, so self-hosted servers no longer need to include it manually — passing https://demo.tofupilot.sh now works out of the box without getting redirected to the signin page.

April 2, 2026Dashboard 2.15.9Python SDK 2.2.2C# SDK 2.3.0Rust SDK 0.1.0

Add strongly-typed validators to all SDKs

All SDK clients now expose typed validator objects instead of untyped JSON, making it easier to build and validate measurement validators with IDE autocomplete and compile-time checks.

  • Simplified validators API schema for cleaner OpenAPI output, removing legacy string union type
  • Regenerated C++, Rust, C#, and Python SDK clients with strongly-typed validator structs and builders
  • Fixed C# generator to support CancellationToken in all async methods and synced SDK version to 2.3.0
  • Fixed Speakeasy generation script to use correct config and synced version to 2.2.2
April 1, 2026Dashboard 2.15.7

Deploy test procedures from GitLab

Connect your GitLab repositories to automatically deploy test procedures to your stations and trace every test run back to its source code.

  • Added GitLab integration supporting both GitLab.com and self-hosted instances
  • Added automatic procedure deployment to stations when pushing to GitLab
  • Added webhook-based synchronization to keep branches and commits in sync
April 1, 2026Rust SDK 2.1.0

Ship test data from Rust

You can now push test runs to TofuPilot from Rust. The SDK covers the full V2 API with async builders, typed errors, retries, and file upload helpers.

rust
let client = TofuPilot::new("your-api-key");client.runs().create()    .procedure_id("FVT-001")    .serial_number("SN-042")    .part_number("PART-001")    .outcome(Outcome::Pass)    .send()    .await?;

Source on GitHub, package on crates.io.

March 31, 2026Release Server 1.1.0Dashboard 2.15.2Docs 2.1.4

Deploy self-hosted from GitHub workflows

Self-hosted instances can now enable automatic deployments by installing the TofuPilot GitHub App. The setup process is documented in the self-hosting guide. Cloud users already have this built in.

Try these features today