CHANGELOG

Small changes. Better testing.

Stay up to date with new features and improvements.

May 13, 2026CLI 0.22.6

Transitional fixes ahead of user-mode CLI

Stop-gap fixes for the most common spawn failures we're seeing today, while we finish full user-mode support for the CLI in an upcoming release.

  • Fixed local runs on Windows with default antivirus settings
  • Surfaced clear error messages when the Python venv isn't usable
  • Reported a terminal event to the kiosk UI when a subprocess fails to start
May 13, 2026Dashboard 2.29.3

Speed up procedure analytics page

The procedure analytics page now loads faster, even on procedures with tens of thousands of runs.

  • Improved performance across charts, KPIs, and filter sidebars
  • Added a guardrail that prompts you to narrow the date range on very large queries
May 11, 2026Dashboard 2.28.1

Add timezone-aware datetime hover cards

You can now hover any date to see UTC and local time side by side.

  • Added a rich hover card on date cells: live relative age, plus UTC and local timezone rows.
  • Replaced absolute/relative toggle on activity feeds with compact relative time; hover reveals full timestamps.
May 11, 2026Dashboard 2.28.0

Export and copy data from list pages

You can now export data from any list page without writing a query.

  • Added Copy, Export to CSV, and Export to JSON on Runs, Units, Logs, and API Activity tables.
  • Added the same options in the selection bar to copy or download just the rows you pick.
May 11, 2026Docs 2.2.1Dashboard 2.26.2

Fix missing API pages and add CLI snippets

You can now copy tofupilot CLI commands straight from the API reference.

  • Added a CLI tab next to Python, cURL, and the other code samples on every endpoint.
  • Fixed missing endpoints and the empty cURL tab in the v2 reference.
May 11, 2026Dashboard 2.26.1

Fix GitLab repository picker

Fixed an issue where linking a GitLab repository could fail with a generic "Failed to fetch metadata" error.

May 10, 2026C++ SDK 2.4.0Docs

C++ SDK gets typed metadata

C++ client now ships the run + unit metadata feature with a typed std::variant for the value instead of a bare nlohmann::json.

  • Regenerated C++ SDK against the new metadata endpoints
  • Metadata field is now std::map<std::string, std::variant<std::string, double, bool>> so values keep their type at compile time
  • Added Custom Metadata sections to the runs and units guides with snippets for Python, C#, C++, and MATLAB
May 10, 2026Dashboard 2.25.0Python SDK 2.10.0C# SDK 2.9.0Rust SDK 2.9.0MATLAB SDK 2.4.0

Add custom metadata to runs and units

Tag runs and units with your own typed key/value fields so traceability data, and qualification flags live next to the test data they describe.

  • Added a metadata editor on run and unit detail pages with type-aware icons and inline edit
  • Surfaced metadata in the V2 API as a plain {key: value} dict; types (string, number, bool) are detected automatically
  • Added metadata filters on run and unit list endpoints (in, contains, gte, lte, eq)
  • Tracked every metadata change in a per-entity activity timeline
May 10, 2026Dashboard 2.24.0Python SDK 2.8.1C# SDK 2.7.1Rust SDK 2.7.1

Mark units as golden or failing samples

Reference units can now be tagged as known-good (golden) or known-faulty (failing) so they're excluded from production analytics and FPY/Cpk stay honest.

  • Added a sample classification dropdown on the unit detail page with activity tracking
  • Added a sidebar filter and table avatar treatment for golden and failing samples
  • Surfaced the sample field in V2 API for unit and run get/list/create/update
May 10, 2026Dashboard 2.23.10

Live updates without polling

Runs, units, and logs pages now stream updates over a single realtime channel instead of polling every few seconds, so live mode is lighter and more reliable.

  • Replaced 3-second polling on list pages with realtime invalidation

Try these features today