Back to all releases

v1.0.0

Platform

// July 31, 2026

Access controls apply on every plan, and external OAuth setup configures itself

Role-based access control is no longer something your plan decides: grants are enforced on every account tier, with the rollout flag gone. Setting up an MCP server behind an external OAuth provider now discovers the provider's metadata for you, validates as you type, and tests the connection before you save. If you push device evidence to Drata, connecting it provisions the Custom Connection itself. That last change also alters the record schema, so anyone with a declared Drata or Vanta schema needs the breaking change below.

Breaking changes

  • Evidence records carry per-device attestation strength #4720 - Pushed Drata and Vanta coverage records replace assignedUserAgentActive and assignedUserAgentLastSeenAt with agentActive, agentAttestation, and agentLastSeenAt. The attestation value is device when the record is backed by that machine's own agent heartbeat, matched on hardware serial, and user when only its assigned user's heartbeat backs it, so one push can carry both strengths honestly. Customer-declared Drata and Vanta record schemas need updating to match. (Author: @daviddanialy)

Features

  • Access controls apply on every account tier #4681 - RBAC grants are enforced regardless of plan, and the dashboard rollout flag is gone, so the permissions you configure hold everywhere rather than only on the tiers that had the feature turned on. (Author: @tgmendes)
  • External OAuth setup configures itself #4571 - Point at a provider and its metadata is discovered for you, fields validate inline, and a test button confirms the connection before you save, so a misconfigured provider surfaces during setup instead of on a user's first login attempt. (Author: @simplesagar)
  • Add project skills as context for a single assistant turn #4703 - Pick the skills that matter for one Project Assistant question instead of relying on whatever is globally in scope. (Author: @simplesagar)
  • Function tools can read MCP client metadata #4748 - Function-based tool calls now receive the calling MCP client's metadata, so a tool can adapt its behavior to the client that invoked it. (Author: @qstearns)
  • Drata provisions its own Custom Connection on connect #4758 - Connecting Drata now creates the dedicated Custom Connection with the right record schema for you, keyed on a deterministic name so re-saving reuses it instead of piling up duplicates. The connection ID field became optional, and optional settings moved behind an Advanced disclosure, so a Drata connection is Region, API key, and Test. (Author: @daviddanialy)
  • MDM integrations page follows the coverage pipeline #4753 - A pipeline banner shows live connected counts and org-wide fleet coverage over two role-labeled groups. Detail pages are role-specific: inventory sources keep their device tables and "synced" language, while evidence destinations drop the inventory a sink doesn't own, show what they publish, and break down which sources feed them. (Author: @daviddanialy)
  • Identity provider setup reuses a provider you already have #4695 - Providers can be looked up by their upstream issuer URL, returning the one the project would use, so automatic setup flows reuse an existing provider instead of scanning the whole list in the browser. Platform-catalog providers are reusable this way for the first time. (Author: @bflad)
  • Groundwork for sorting and filtering Risk Events #4735 - Risk findings now record the originating message time and the assistant that produced them, so a later release can sort and filter the Risk Events listing on both without a cross-store lookup. (Author: @dennnis-ez)

Bug fixes

  • External OAuth configuration is back on eligible MCP servers #4569 - The external OAuth options returned to the authentication page for the servers that support them. (Author: @disintegrator)
  • Drata pushes survive real-world API responses #4745 - Three defects found against the live API: session listings with numeric IDs now decode correctly and report their real errors rather than a misleading fallback, an empty fleet clears evidence by deleting records because Drata rejects an empty session, and per-record schema rejections hidden inside a 2xx response now fail the push instead of quietly publishing a partial fleet. (Author: @daviddanialy)
  • Vanta pushes match its actual contract #4751 - Every record now carries the required externalUrl field, the last-seen timestamp is always sent because Vanta schemas mark every property required, and the response check follows the full-state contract Vanta really returns instead of an accounting object it never sends, which had been failing every push. (Author: @daviddanialy)
  • The agent coverage meter reads correctly in dark mode #4759 - The meter track collapsed to the card color in dark mode, hiding the uncovered remainder and making coverage look far higher than it was. The track now stays visible on both light and dark grounds. (Author: @daviddanialy)
  • Unsupported MDM providers stay hidden #4756 - Microsoft Intune no longer appears in the integrations list, pipeline counts, source breakdown, or by direct URL until it is fully supported, and the pipeline's agent input is labeled "Active agents" with its source named. Vanta is hidden the same way (#4758) until a supported path exists for partner-built integrations. (Author: @daviddanialy)
Sagar Batchu
Sagar Batchu
View on GitHub