CHANGELOG

Small changes. Better testing.

Stay up to date with new features and improvements.

July 15, 2026Dashboard 2.36.95

Improve self-hosted deployment migration

Self-hosted instances migrating to the new deployment architecture now get a smoother, more reliable experience, even on restricted networks.

  • Improved resilience when optional deployment services are not yet configured, removing recurring errors from instance logs.
  • Added a prebuilt build environment so new deployments start faster without downloading dependencies at boot.
  • Fixed sign-in for existing members using single sign-on after upgrading from older versions.
July 15, 2026Dashboard 2.36.94

Strengthen user management on self-hosted

User seat limits are now enforced server-side on self-hosted instances, so member management respects your license.

  • Enforced the user cap on invitations, matching how station limits already work.
  • Kept re-invites and role changes unaffected, since they add no seat.
July 10, 2026Dashboard 2.36.93

Fix Microsoft SSO sign-up with profile photo

New users signing in through Microsoft or Azure AD SSO could fail to be created when their account had a profile photo, because Microsoft sends the photo as inline image data that exceeded an internal limit on the avatar field.

  • Fixed account creation for Microsoft and Azure AD SSO users who have a profile photo
  • Improved handling of inline profile photos so they no longer block sign-up
  • Added a fallback to initials when no uploaded avatar is set
July 10, 2026Python SDK 2.13.2DocsDashboard

Clearer procedure IDs in docs and SDK examples

Code examples now use an obviously-fake placeholder procedure ID instead of a name or a real-looking UUID, so a copy-pasted snippet can't accidentally target a real procedure and clearly reads as a value to replace.

  • Replaced name-style (FVT1) and a real-looking UUID with xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx across the OpenHTF and SDK docs and the V1 API example.
  • Clarified that procedure_id is the dashboard procedure UUID (a legacy external identifier only resolves if one was set).
  • Updated the OpenHTF client docstrings and released python client 2.13.2.
July 10, 2026Dashboard

Accept invitations from the org switcher

Switching between organizations is now easier, and invitations you haven't accepted yet show up where you'd expect them.

  • Added pending invitations to the organization switcher, so you can accept an invite without hunting for the email
  • Improved the expired-demo experience with a dedicated screen that keeps the switcher available so you can move to your other workspaces
July 9, 2026Dashboard 2.36.92

Invite members from AI agents, safer roles

You can now invite teammates to your organization directly from connected MCP, and invites can no longer grant a role above your own.

  • Added a tool to invite members by email from connected AI assistants, with the invite sent automatically.
  • Prevented inviting or promoting someone to a role higher than yours, closing a privilege-escalation gap across the dashboard and API.
  • Filtered the invite role picker to the roles you're allowed to grant.
July 8, 2026Dashboard 2.36.91

Fix API list crash when called with no filters

A plain runs or units list call from any SDK returned a 400 error because the optional metadata filter was rejected when empty. Basic list calls now work again.

  • Fixed runs.list and units.list returning "expected record, received string" when called without a metadata filter
  • Fixed metadata filters not applying over the API when passed as a query parameter
July 8, 2026Dashboard 2.36.89

Manage teams and clean up data from AI agents

MCP now exposes more of your workspace to AI agents, so they can manage teams and remove test data the same way you do in the dashboard.

  • Added team tools: list teams and members, create and rename teams, add or remove members, and delete a team
  • Added delete tools for runs and units, plus tools to add or remove units from a batch
July 8, 2026Dashboard 2.36.86

Choose which orgs and access each AI agent gets

Connecting an AI agent through MCP now lets you pick exactly which organizations it can reach and whether each allows write.

  • Added a multi-select organization picker to the MCP consent screen, with a per-organization read or write toggle
  • Added org switching so an agent moves between your authorized organizations, with write access following your role in each
  • Improved revoke to disconnect a client across every organization at once, not just the current one
July 8, 2026Dashboard 2.36.82

Use one MCP connection for all your orgs

Connect your AI agent once and reach every organization you belong to, switching between them mid-session instead of re-authorizing for each one.

  • Added list_orgs and set_org tools so an agent can see your organizations and switch the active one on the fly
  • Fixed the connected-clients list leaking connections across organizations
  • Fixed a reconnect loop that blocked members of more than one organization
  • Improved the sign-in callback so the browser no longer shows a connection error after you authorize

Try these features today