Skip to content

Changelog

Stay up to date with new features and improvements.

April 12, 2026Dashboard 2.19.0Python SDK 2.2.6C# SDK 2.3.3Rust SDK 2.1.4C++ SDK 2.0.2MATLAB SDK 2.0.2

Attach files to runs and units in one call

Uploading files to test runs and units used to require three API calls (initialize, PUT, finalize) plus a fourth to link the attachment. Now it's one call across all five SDK clients.

  • Added runs.attachments.upload() and units.attachments.upload() helpers that handle the full upload flow in a single call across Python, C#, Rust, C++, and MATLAB
  • Added units.attachments.delete() to remove attachments from units by ID
  • Added runs.attachments.download() and units.attachments.download() to download attachments to local files
python
from tofupilot.v2 import TofuPilot

client = TofuPilot()

# Upload a file to a run
client.runs.attachments.upload(id=run.id, file="data/test-report.pdf")

# Upload a file to a unit
client.units.attachments.upload(serial_number="SN-0001", file="data/calibration.pdf")

# Download
client.runs.attachments.download(attachment, dest="local-report.pdf")

# Delete (units only)
client.units.attachments.delete(serial_number="SN-0001", ids=[attachment_id])
April 11, 2026Dashboard 2.18.2

Support timezone offsets in datetime fields

Timestamps with timezone offsets like +02:00 or +05:30 now work across all API endpoints. You no longer need to convert to UTC before uploading.

  • Accepted timezone offsets on all datetime input fields: run timestamps, phase and log timestamps, and date filters on runs, units, batches, and procedures
  • Responses still return UTC (Z suffix), no changes needed on the read side
python
from datetime import datetime, timezone, timedelta

# UTC (always worked)
client.runs.create(
    started_at=datetime.now(timezone.utc),
    ended_at=datetime.now(timezone.utc),
    ...
)

# Local timezone (now works too)
cet = timezone(timedelta(hours=2))
client.runs.create(
    started_at=datetime.now(cet),
    ended_at=datetime.now(cet),
    ...
)
April 11, 2026Dashboard 2.18.0

Automate test actions with workflows

Trigger automated actions when test events occur. Connect your test data to the tools your team already uses, without writing glue code.

  • Added visual workflow editor with drag-and-drop nodes, branching (if/else, switch), filters, and versioning
  • Added integrations for Odoo, Linear, InvenTree, Discord, Slack, email, and generic HTTP
  • Added execution history with per-step status, error details, and flow visualization
April 9, 2026Dashboard 2.17.8

Compare measurements on SPC charts

Control charts were limited to one measurement at a time. You can now overlay multiple compatible measurements on a single chart to spot correlations and trends across your process.

  • Added multi-measurement selection with Shift-click on the measurement overview, with compatibility checks (same type and units)
  • Added phase filter in sidebar showing data point counts per phase when multiple measurements are selected
  • Added compatibility tooltips showing which criteria match or mismatch when selecting measurements
  • Limits and Cpk tab now hide automatically when selected measurements have different spec limits
April 9, 2026MATLAB SDK 2.0.0

Upload test results from MATLAB

You can now upload runs, manage parts, and query test data directly from MATLAB -- no middleware, no CSV exports.

  • Upload runs with measurements, limits, and attachments in a few lines of MATLAB code
  • Query and filter units, batches, and procedures from your test scripts
  • Automatic retries on transient errors so uploads don't fail mid-production
  • Ships as a .mltbx toolbox -- install once, available across all your projects
April 7, 2026C++ SDK 2.0.0

Ship test data from C++

Teams running C++ test scripts can now upload runs, measurements, and attachments to TofuPilot directly from their codebase.

  • Added full V2 API coverage for runs, units, parts, batches, stations, procedures, and attachments
  • Added builder-pattern API for creating runs with phases, measurements, validators, and logs
  • Added one-call file upload and download helpers for test reports and artifacts
April 7, 2026Dashboard 2.17.4

Improve process control and chart export

Process control gets smarter defaults, better filtering, and a new PDF export for sharing charts outside TofuPilot.

  • Added A4 landscape PDF export for charts with title and "Exported by" attribution
  • Added validators column and measurement outcome filter to the process control measurement table
  • Added default 30-day date filter on runs, logs, and API calls pages for faster initial load
  • Fixed invisible connecting lines between points on control charts
  • Fixed missing procedure, phase, unit, and run outcome on measurement detail page
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

Try these features today