Back to all releases

v0.85.0

Platform

// July 13, 2026

One hooks binary for Claude Code, Cursor, and Codex — plus the latest models and a faster dashboard

Hook-based observability now runs on a single purpose-built binary:
receives coding-agent hook events from Claude Code, Cursor, and Codex, relays them to Gram, and enforces policy decisions like shadow MCP blocking — replacing the previous bash senders. Organizations also get control over interactive sign-in (published plugins no longer open a browser unless an admin opts in), the model picker gains Claude Fable 5 and the GPT-5.6 series, and the dashboard is noticeably faster for projects with many toolsets.

Features

  • The speakeasy-hooks binary #3889 - A single Go binary now handles coding-agent hook events end to end: it receives events from Claude Code, Cursor, and Codex, relays them to the platform, enforces server policy decisions such as shadow MCP blocking, and can recover authentication mid-session with its own browser sign-in. (Author: @danielkov)
  • Browser sign-in is opt-in per organization #4009 - Published hook plugins no longer open a browser by default: they authenticate with explicitly configured credentials, a previously cached key, or the organization-wide key, and the login helper prints manual setup instructions instead. Org admins can re-enable interactive browser sign-in from the org settings page. (Author: @danielkov)
  • Claude Fable 5 and GPT-5.6 in the model picker #4128 - The model list adds Claude Fable 5 and the GPT-5.6 series (Sol, Terra, and Luna), marks premium models with an Expensive badge instead of a label suffix, and removes deprecated models like Claude Sonnet 4, GPT-4.1, and Gemini 2.5. (Author: @simplesagar)
  • Guaranteed user identity on remote and tunneled MCP servers #4069 - Every remote and tunneled MCP server now gets a user session issuer minted at creation that lasts for the server's lifetime and can't be supplied, stripped, or swapped through the API — enforced at the database level — so user session identity on these servers is always trustworthy. (Author: @ThomasRooney)
  • Local assistant runtime for development #4118 - Assistant runtimes can now run locally: a new
    runtime provider starts one Docker container per assistant on demand, reuses it across turns, and swaps in rebuilt images automatically — no Fly.io credentials or registry pushes needed to develop runtime images. (Author: @danielkov)
  • Codex in example agent lists #4107 - Risk policies, logging, insights, and the connect-server dialog now include Codex alongside Claude Code and Cursor in their example agent copy. (Author: @danielkov)
  • Judge timeout observability #3912 - Internal: prompt-injection and LLM judge timeouts now surface as a dedicated outcome metric with retuned duration histograms, improving operational visibility into risk scanning. (Author: @linear-code)
  • Token usage forwarded to PostHog #4106 - Internal: each organization's tokens-under-management usage is forwarded to PostHog hourly for product analytics. (Author: @daviddanialy)

Bug fixes

  • Faster dashboard for projects with many toolsets #4007 - Listing toolsets used to issue 11+ database round trips per toolset, taking seconds for busy projects and slowing the dashboard home page. Queries are now batched into a fixed ~10 round trips regardless of toolset count. (Author: @alx-xo)
  • Faster project overview #4104 - The project overview loads faster by running its independent aggregations concurrently and computing chat resolutions in a single pass. (Author: @walker-tx)
  • Predictable model fallbacks #4130 - De-listed or unknown models now resolve to pinned per-provider fallbacks instead of silently landing on a premium model, and Elements gets an explicit Claude Sonnet 5 default. (Author: @simplesagar)
  • Default plugin identified reliably #4125 - The dashboard now identifies an org's fallback plugin by the API's
    flag instead of matching on the "Default" name, so renamed plugins no longer confuse onboarding and plugin pages. (Author: @adaam2)
  • No more spurious access denials in diagnostics #4109 - The chat session list's visibility check no longer records an authorization challenge for members without the chat read grant, which previously polluted access diagnostics with denials on every page load. (Author: @linear-code)
Sagar Batchu
Sagar Batchu
View on GitHub