Repository navigation
server@2.15.0
Minor Changes
-
3aec030: MCP server settings no longer show an attached identity provider as missing when the platform catalog is large. The identity provider picker now searches on the server and loads more on demand, and the issuer listing accepts
searchandupstream_hostfilters. -
4d02f1b: The Identity provider menu on remote MCP server settings is searchable and lists each tier (project, organization, platform) with its own "more" row, so every provider can be picked however large the platform catalog grows. The Remote Identity Providers page lists the organization's own providers in full and pages the platform catalog separately. Both issuer listings accept a
tierfilter. -
8adb1c6: Show and edit a remote identity provider's scope override, warn wherever a client's scopes are edited that the override makes them inert, and let platform admins see, toggle and migrate remote session clients that run in compatibility mode with the legacy callback URL.
-
1afaeeb: Risk Events and Watchdog show findings from MCP tool calls with their server, tool, outcome and user instead of an untitled session.
-
e0aa320: MCP-scoped risk policies can now target Gram's built-in Platform MCP toolsets and their tools.
-
b0e113c: Let Watchdog signals be filtered by MCP server, report the servers and tools each signal was observed on, and add per-server finding counts for the MCP server filter pickers.
Also lets the Platform MCP
list_risk_findingstool filter by MCP server. -
a9660cf: Add Observability plugin credential rotation. Organization admins can mint a replacement hooks-scoped ingest key from the Plugins page, choosing whether the previous key is revoked immediately or kept valid for a 7-day grace window, without re-downloading the plugin or deleting keys on the Keys page. Rotation republishes the marketplace's observability plugin when the organization is eligible, and leaves consumer MCP keys untouched.
Patch Changes
- 9083097: Reuse the authenticated OAuth consent human for agent connection management, including custom MCP domains, without a second dashboard login. Preserve live agent authorization and attachment ownership checks, and enable connection management on the dedicated MCP serving tier.
- c086282:
workload_issuers.allow_wildcard_admissionnow defaults to on. Whether a wildcard rule is sound is a judgement about the operator's own platform, and it is better served by stating the consequence where a wildcard is actually written than by a setup-time gate asked before they have a rule in mind. The column stays because it is checked on every lookup rather than at write time, so clearing it makes every wildcard rule under that issuer inert immediately — an incident control rather than a configuration step. - 053f3be: Registering a workload issuer no longer asks whether wildcard admission is allowed. The contract defaults it to on, and the admit dialog states the consequence where a wildcard is actually written instead — naming the subjects the rule admits and the agent they would inherit. Whether a wildcard is sound is a judgement about the operator's own platform, and it is better served at the point of decision than by a setup-time question asked before they have a rule in mind. The issuer field remains in the API, where clearing it still makes every wildcard rule under that issuer inert immediately.
- 68b3f78: Sessions minted from the dashboard show up in the connections list with the client name "Dashboard".
- 4c71540: Add two Platform MCP tools for skill insights:
list_skill_insightsranks a project's skills by activations, sampled efficacy, session cost, and estimated time saved, andcompare_skill_versionsbreaks those same numbers down across one skill's versions. Deployments without ClickHouse keep both tools registered as stubs. - 27e22f1: Staff can record a Stripe subscription ID for a PAYG organization that does not have one yet. The admin API checks that the subscription belongs to the organization's Stripe customer, and stores the billing-cycle anchor Stripe returns, before saving it.
- 96aec8a: Serve the hooks@0.3.31 binary to hook installations. Previously pinned releases stay available so installations that have not regenerated their bootstrap script can still install.
- 053f3be: Admitting a workload is now a single field. Neither dialog asks about wildcards: registering an issuer no longer offers a permission switch, and admitting a subject no longer offers a Match control. A subject ending in
*is a wildcard rule, anything else is exact, and the dialog states what a wildcard would admit — which subjects, and the agent each would inherit — at the point it is written. Lossless, because an exact subject may never contain a*, so there is no value this could misread. Where an issuer has wildcard admission turned off, a rule stating one is refused with the reason under the field. - 8569864: Route standalone MCP gateway gitleaks and Presidio scans through the Pub/Sub enforcement dispatcher when enabled.
- 7e67148: MCP-scoped risk policies now support flag and block actions only. The policy editor prevents unsupported actions before save.
- bebb567: Private network cleanup keeps retrying through longer outages, and shows "Cleanup blocked" with next steps when Tailscale rejects the saved OAuth client instead of staying on "Cleaning up" indefinitely.
- e8e8f96: Gram now works end to end on extra platform hosts such as
ai.speakeasy.com. Platform MCP advertises, issues, and accepts tokens for the host it is used on. The MCP install page login, the Stripe billing portal, and Polar checkout return to that host. Tunneled MCP agent setup shows the real tunnel gateway, the explore demo link stays on the current host, and the custom domain CNAME fallback points at the right target. - b385d01: More of Gram now follows the platform host you use it on, such as
ai.speakeasy.com. Stripe Checkout returns you to the host you started on. Slack unfurls dashboard links on every platform host, and new Slack apps register all first-party hosts as unfurl domains. Agent setup copy (OTLP endpoints and domain allowlists) names the host you are on, and allowlists keepapp.getgram.aiwhere plugin hooks and the device agent still send. - 8702e87: Adding MCP servers through the Platform MCP no longer stops at five per project, including servers that were later deleted.
- 7ada033: The "Request access" links in MCP server and Platform MCP access-denied errors now point at the platform host the request came in on (such as
ai.speakeasy.com), so users land on a host where they are already signed in. - 61161fd: Risk Events now keeps showing findings from disabled policies, marked inactive, so turning a policy off no longer empties the page. Findings from MCP-scoped policies now always appear, including locally.
- b28cacd: Stop PR preview workers from taking over the development environment's background schedules, which could stall jobs such as outbox publishing.
- 053f3be: Allowed machines can carry tags. The Allow a machine pane takes optional tags, stored on the admission with the same limits as a trusted platform's tags, and the platform page shows them under each machine. Searching and filtering by tag will follow.
- 053f3be: Trusted platforms in the Access Hub can carry a description. Registering a platform takes an optional description of up to 500 characters, and each platform card shows it in place of the issuer URL, which moves down beside the signing keys. A URL rarely tells an administrator which platform they are looking at; a sentence in their own words does.