AI Insights for risk findings, Cursor cost and token tracking, and multi-role RBAC
This release brings risk-aware suggestions into the dashboard’s AI Insights sidebar on the Security Overview and Policy Center pages, adds Cursor support to the Insights Employees and Costs tabs, and ships multi-role assignments for RBAC.
Features
- AI Insights for risk findings #2922 - The dashboard’s AI Insights sidebar now surfaces risk-aware suggestions on the Security Overview and Policy Center pages, letting the assistant reason over recent policy findings without seeing raw secrets. Findings are read through a redacted endpoint that replaces the
matchfield with an opaque fingerprint of the form<redacted len=N sha=XXXXXXXX>, so identical secrets are still dedupable across findings while their content stays hidden, and a system-prompt rule bars the assistant from echoing redacted values verbatim. (Author: @simplesagar ) - Cursor cost and token tracking in Insights #2923 - Organization admins can now connect a Cursor Admin API key, and Cursor token and cost usage flows into the Insights Employees and Costs tabs alongside Claude Code data. An hourly job pulls usage events from Cursor so per-employee cost and token totals stay current. (Author: @subomi )
- Multi-role RBAC #2982 - Users can now be assigned multiple roles simultaneously, replacing the previous single-role assignment model. (Author: @adaam2 )
- MCP resource method interceptors #2958 - Wires initial MCP resource method interceptors into
/x/mcpso remote MCP traffic can be observed and shaped through the same interceptor pipeline as tool calls. (Author: @bflad ) - Expanded onboarding personality picker #2980 - Expands the assistant onboarding personality picker with Brad and Walker, rebalances Quinn against Nolan and Daniel, and groups team voices into a compact chip row above the generic preset cards. (Author: @danielkov )
Bug fixes
- Source Activity panel for Remote MCP sources #2819 -
telemetry.getObservabilityOverviewnow accepts an optionalremote_mcp_server_idfilter so callers can scope summary, time-series, and per-tool breakdown metrics to a single Remote MCP source./x/mcptools/call traffic also writes a structured row to ClickHousetelemetry_logsper invocation, and the Source Activity panel on the Remote MCP source overview shows real telemetry for the last 7 days. (Author: @bflad ) - Explicit user-identity opt-in for public MCP authorize #2971 - Public-MCP
/authorizenow accepts arequireUserIdentity=1query parameter that forces the caller through the IDP so the resulting session is bound to a user subject rather than an anonymous one. Without the parameter, public-toolset/authorizecontinues to mint an anonymous subject. The assistant runtime sets the parameter when initiating MCP authorization flows against Gram-served endpoints so subsequent tool calls can be attributed to the user. (Author: @danielkov ) - Owner-only OAuth in the assistant system prompt #2984 - Assistants are now instructed to treat OAuth/MCP authentication as owner-only and to avoid pre-emptively prompting for auth on toolsets they have not yet needed. (Author: @danielkov )
- Always emit
resultin JSON-RPC success responses #3007 - Always emits theresultfield in JSON-RPC success responses from the MCP server. Empty-result handlers (notablyping) previously sent{"jsonrpc":"2.0","id":N}, which violated JSON-RPC 2.0 and the MCP spec — Cursor’s MCP SDK rejected those frames withinvalid_unionzod errors and dropped the transport to a failed state after each keep-alive ping. (Author: @walker-tx ) - Resilient assistant-runtime reaper for Fly Machines #3019 - Bounds each Destroy/List call against the Fly Machines API by its own timeout, and uses a Temporal heartbeat for liveness on the janitor activity rather than relying on a short overall timeout that turned tombstone-machine hangs into elevated workflow-failure alerts. (Author: @danielkov )