Skip to content

Changelog

Stay up to date with new features and improvements.

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.

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.

March 31, 2026Dashboard 2.15.3

Fix Dashboard Filters

Fixed an issue where some dashboard filters could return incorrect options after an internal infrastructure upgrade.

Our compatibility audit caught the regression, and we've added preventive checks to our release process for future dependency upgrades.

March 31, 2026C# SDK 2.0.2Docs 2.1.3

Ship test data from C# and .NET

You can now push test runs to TofuPilot from C# and .NET. The SDK covers the full V2 API with typed responses and errors.

var client = new TofuPilot(apiKey: "your-api-key");

await client.Runs.CreateAsync(new RunCreateRequest
{
    ProcedureId = "FVT-001",
    SerialNumber = "SN-042",
    PartNumber = "PART-001",
    Outcome = RunCreateOutcome.Pass,
});

API docs now show C# examples next to Python. Source on GitHub, package on NuGet.

Thanks to community member @Hylaean for building the original 1.x client that got this started.

March 30, 2026Python SDK 2.2.2Dashboard 2.15.1

Fix datetime filters and simplify finalize

You can now pass datetime objects to date filters on units.list() and batches.list(). Previously these only accepted strings, while runs.list() already handled datetime. All list endpoints are now consistent.

We also cleaned up attachments.finalize(). It no longer asks for an empty request_body parameter. If you were passing request_body={}, you can drop it.

March 29, 2026Docs 2.1.0

Add V2 Python SDK examples to docs

All dashboard documentation pages now include working Python V2 SDK code examples. V1 client syntax has been removed and replaced with tofupilot.v2 throughout.

March 29, 2026Python SDK 2.2.0Dashboard 2.15.0

Track phase retries in test runs

When a test phase fails and is retried, you can now store every attempt with a retry_count field and filter retries out of your analytics.

  • Added retry_count to phases: set it to track which attempt each phase represents (0 = first, 1 = first retry). Defaults to 0 when omitted.
  • Added "Exclude retries" toggle on all insights charts (Cpk, cycle time, failures, control charts, duration) to focus on final attempts only
  • Retried phases show expandable attempt tabs in the phase detail view
  • OpenHTF retries are detected automatically from repeated phase names, no changes needed in test scripts
March 29, 2026Dashboard 2.15.0

Improve API reliability and performance

Rebuilt our REST API layer for better error handling, faster request routing, and more accurate OpenAPI documentation. This improves integration stability for all API and SDK users.

March 28, 2026Dashboard 2.14.10Python SDK 2.1.0

Add file attachments to units via Python SDK

You can now attach files directly to units using the Python SDK v2.1.0. Upload photos, test reports, calibration data, or any file and link it to a unit in two lines of code.

  • Added attachments.upload() to handle file uploads in a single call
  • Added attachments.download() to download attachments from units or runs
  • Added attachments support to the Update Unit endpoint
  • Renamed the attachment finalization endpoint for clarity
March 27, 2026Orbit 0.10.31

Add meetings section to Orbit

Enterprise customers can now view their meetings with TofuPilot directly in Orbit, including agenda, summary, and linked action items with assignees.

Try these features today