Skip to main content

v0.8.0

Released October 14, 2026. Supported until April 14, 2027.

v0.8.0 ships 16 behavior changes, 9 security updates, 19 new features, 24 bug fixes, and 1 deprecation. The headline is the CLI: a single tetrate command replaces tare, tars, and admin, with Agent Router's commands under tetrate agentrouter, and the install script now installs only tetrate by default, into ~/.tetrate/bin, and verifies the signature of every binary it installs. Scripts that drive the CLI are updated before the upgrade: commands that change a cluster now ask for confirmation, exit codes 3 and 4 are new, and --proxy-url is removed (Upgrading to 0.8.0). On a data plane on 0.8.0, a key's rate limit counts once across every model, and a project or key limit can be set per minute and per request as well as per hour. Behavior between the management plane and the data plane changed in this release. The most severe security issue cleared is high.

About these release notes

A fully detailed version of these release notes (including artifact versions) is included in the Admin Console.

The full release notes are opened from the Admin Console, as described in Check the management plane version.

Upgrade and rollback​

  • The release carries no breaking change, and no operator action is required before upgrading.
  • The upgrade rolls through without dropping traffic.
  • Rollback to v0.7.1 is unconditional.

Behavior changes​

Gateway​

A key's rate limit now counts once across every model and route it calls, where each model route kept its own counter before. The new per-key counters start at zero, and existing per-hour limits for tokens, input tokens, and output tokens keep applying beside them. Available once the data plane is on 0.8.0 or later.

Management plane API​

Listing, adding, and removing a project's Model Context Protocol (MCP) servers now needs the project MCP permission. The MCP Admin role does not include it, so its holders need Project Owner or Super Admin for all three.

Attribute-based routing has two scopes, project and API key: a key's own routing policy replaces its project's.

Consoles​

An MCP profile now checks each server's OAuth sign-in against the same provider the gateway uses for that server.

The old /config, /config/<id> and /dashboard-legacy pages are gone.

In a deployment that shares a hosted auth database, upgrading removes cross-organization read access and provider editing from a user who was granted Super Admin and whose role has since changed without a revoke, for example through single sign-on role mapping at sign-in. This happens once, when 0.8.0 first starts. A user who should keep that access is granted Super Admin again by a user who still has cross-organization access.

CLI​

The command-line tools now install to ~/.tetrate/bin and keep their per-user state in ~/.tetrate, created readable only by its owner. The install script installs only tetrate by default (--cli all installs every tool) and prints the line that adds ~/.tetrate/bin to PATH. The previous locations are still read, so nothing needs migrating.

Environment variables the CLI reads now carry a TETRATE_ prefix, and the old names still work and warn once. TARS_API_KEY becomes TETRATE_API_KEY (the inference key), and API_KEY becomes TETRATE_ADMIN_API_KEY (the admin credential).

Commands that install or upgrade a cluster now ask for confirmation first, naming the cluster. Without a terminal to prompt on they stop instead of acting, so an unattended run passes --yes. This applies to the tare and tars spellings too.

-v now means --verbose on every command. On tars sa check it previously meant --verify-checksum, which no longer has a short form.

Installing an identity that names a different data plane than the one already installed is now refused unless --accept-identity-change is passed, and an expired identity is refused with no override. The tars serve install path previously allowed both.

tars serve install --proxy-url is removed: the command now fails naming the removal rather than ignoring the flag. The management plane endpoint comes from the identity file.

A mistyped subcommand now fails instead of printing help and exiting 0. It exits 2 under tetrate, and 1 under the old tare, tars, and admin names, which exit 1 on every failure.

Commands now exit 3 when they refuse to act and 4 when they changed the cluster before failing, where both previously exited 1. Exit codes 0, 1, and 2 keep their meanings.

tare doctor no longer reports a healthy data plane as Degraded when the doctor itself lacks an optional permission. The gap is still listed, marked doctor_self, under "Doctor access", and upgrading the tare-doctor chart clears it.

Data planes deployed with the GCP Terraform module now run tare doctor every 5 minutes instead of every 15, so the management plane receives about three times as many doctor reports from each of them. Setting tare_doctor.schedule to "*/15 * * * *" keeps the old cadence.

Security updates​

Auth​

Sign-in session cookies are now limited to the environment's own domain, where they were previously sent to every tetrate.ai host. Users sign in again once after the upgrade.

Gateway​

The public MCP catalog route no longer sends the browser's cookies to the catalog server, and no longer passes the server's cookies back.

All binaries are now built with Go 1.27.2 and golang.org/x/net v0.60.0, addressing GO-2026-6617 (HTTP/2 server crash via an HPACK encoder race) and GO-2026-6613 (HTTP/1 connection desync after a 2xx CONNECT response), both reachable from the AI Gateway.

A data plane whose ID another organization also uses now needs declared hostnames, listed under global.gateway.hostnames in its serve-helm values (data plane 0.7 or later), for its URL to be returned by the inference API and for Prompt to reach it. See Declare the hostnames a data plane serves.

CLI​

Every binary the install script installs is now signature-verified. Installs through https://tools.tetrate.ai/latest/install.sh previously skipped verification.

Management plane API​

The inference API no longer returns another organization's data plane URL, and Prompt sends only to data planes of the caller's own organization.

SetWorkspaceURL and SetDataplaneURL refuse to set or clear a data plane URL with FailedPrecondition when another organization uses the same data plane ID.

Consoles​

In a deployment that shares a hosted auth database, revoking Super Admin now also removes the read access across organizations and the provider editing that came with the role, and upgrading removes those leftovers from users who were already revoked. A user granted Super Admin through the 0.7.0 Admin Console who can no longer read across organizations or edit providers is granted Super Admin again: the upgrade does not restore that access.

In the Developer Console, MCP OAuth sign-in and MCP tool calls now use only the OAuth clients of the request's project, plus those set up in the Admin Console for every project.

New features​

Management plane API​

Project owners can list the enabled MCP servers their project doesn't have yet, searched by name and paged, to pick which ones to add.

Project owners can add and remove their project's MCP servers, and Viewers can list them.

A project or API key rate-limit policy can now limit requests per minute, requests per hour and tokens per minute beside tokens per hour, in any mix. Available once the data plane is on 0.8.0 or later.

Admins can read whether a model in the catalog is retired, deprecated, new or in preview, with the reason and any retirement date.

Admins can see which models their organization uses retire soon, and which projects and API keys still call them.

The model catalog can be synced through the admin API: preview what a sync would change, apply it in the background pinned to the exact documents previewed, and poll the run's progress.

Consoles​

The Admin Console has a Rate limits tab on a project and a Rate limits section on an API key, where an admin sets requests per minute, requests per hour, tokens per minute and tokens per hour with the Block action. Available once the data plane is on 0.8.0 or later.

When a model is deprecated or has a retirement date, its catalog-listed replacement can be added as the next fallback in an API key's model-specific fallback policy. When several providers offer that name, the provider to add is chosen.

The Admin Console's data plane list and each data plane's page now name the release it runs from the deployed chart, or its last install or upgrade, and mark a data plane that lacks a high or critical security fix from a newer release.

Gateway​

A fallback policy now covers a retired model. Available once the data plane is on 0.8.0 or later.

A data plane can now terminate TLS itself. Each declared hostname to publish on port 443 is listed under egressResources.egress.gateway.httpsListeners with a kubernetes.io/tls Secret for its certificate; other declared hostnames stay on the in-cluster path, and without the value nothing changes. See Terminate TLS on the data plane.

CLI​

tare doctor now checks the nodes running the data plane. A node under memory, disk, or PID pressure, or one that is not Ready, is reported as an ERROR.

The tare doctor JSON report now includes the schedule its in-cluster CronJob runs on, under data.doctor_schedule, and the management plane stores it with each data plane's status.

The data plane ingress install command has a new flag, --lb-tls-passthrough, which creates egress-lb, a layer 4 load balancer that publishes only port 443 and passes TLS through to the data plane.

tetrate agentrouter doctor checks the data plane's port 443 listeners: it reports a hostname that answers 403 because authentication is missing from it, and treats the ResourceNotFound status the TLS policies show with two or more published hostnames as healthy.

A single tetrate command replaces the separate tare, tars, and admin tools. Agent Router's commands now live under tetrate agentrouter, grouped by what they act on, so tare doctor becomes tetrate agentrouter doctor. The three old names keep working, each printing the tetrate command that replaces it. See Upgrading to 0.8.0.

Commands that change a cluster now name the cluster they are about to change before changing it, and record the operations they ran to a log under ~/.tetrate/logs that the error names when one fails.

tare doctor now flags a data plane Controller or the egress proxy running below its desired replica count, not only one with no replicas left.

tare doctor now reports the release the data plane is running, read from the deployed chart, instead of only the version of the tare binary that ran it. Available once the data plane is on 0.8.0 or later.

Bug fixes​

Consoles​

Developer Console pages such as API Keys no longer show a second scrollbar.

The Developer Console home page's change figures now compare against the previous period of the same length and say so, for example "vs previous 7 days".

In a deployment that owns its auth database, a user given Provider Admin or Model Admin on the Access page, directly or through a group, now gets Platform Provider Admin at once, and loses it when the role is removed. Upgrading corrects users granted or removed before this release.

The Playground no longer fails with "Invalid API key" when it is opened again about a day after its last use.

Management plane API​

A policy or routing update whose data-plane publication fails is now retried a few times, with a pause between attempts, instead of being dropped after the first failure.

Moving the corporate OpenID Connect single sign-on provider to a different identity provider no longer keeps the previous provider's endpoints.

Getting, setting or deleting a project setting now returns NOT_FOUND when the project is missing or deleted.

MCP servers whose OAuth client was created through the API now get their sign-in applied on gateways.

Changes to an MCP catalog server now reach data planes that host no project gateway, so a re-pointed server stops serving its old URL and a disabled or deleted one stops being reachable at /mcp/s/<server>.

Daily usage totals and budget spend no longer drop for days older than two days.

Deleting an MCP profile frees its name for a new or renamed profile.

Adding or removing a model from a project now updates keys that carry their own settings (Bring Your Own Key, fallback, traffic split, or a rate limit), so they no longer keep routing against the old model list.

Project default settings, project membership changes, the request-log mode, and rate-limit policies moved to another target now reach the gateways within the usual update cycle. A project-wide rate limit is also now enforced on keys with no settings of their own, starting once a limit saved before the upgrade is next saved.

Gateway​

Rate limits now hold during bursts on a data plane running more than one replica. Available once the data plane is on 0.8.0 or later.

A changed rate limit now also applies to requests on connections that were opened before the change, within the usual delay of about 10 seconds. Available once the data plane is on 0.8.0 or later.

Gateway auth policies can now be viewed, created, and edited through the gateway auth policy permissions. Those permissions were never created on the management plane, so before this release only the broader administrator access could manage these policies.

A change to an API key's routing now takes effect even when it needs fewer routes than before, instead of leaving the key stuck deploying.

Removing a fallback policy from a data plane now also removes the fallback routes it created.

Gateway sign-in rules are now re-applied when a gateway gets its URL, when the catch-all gateway changes, when a gateway moves to another data plane, and when a gateway is deleted. Previously a gateway created, attached, and then given its URL (the documented order) could serve identity provider traffic with no sign-in rules at all.

CLI​

The install script at https://tools.tetrate.ai/latest/install.sh no longer exits part-way through with only some of the tools installed.

An interrupted MCP uninstall now completes the removal when it is re-run, instead of reporting success over a half-removed installation.

Commands that ask for confirmation no longer wait indefinitely when nothing can answer, so a piped or scheduled run fails with a message rather than hanging.

A data plane with hundreds of API keys no longer reports itself unhealthy in the Admin Console while it is serving traffic normally. The doctor's scheduled job now requests 256Mi of memory and 50m of CPU, capped at 512Mi, where before it requested nothing; the values are under tareDoctor.resources in the data plane's values.

The doctor now reports API keys whose routing was never fully created on the data plane.

Deprecations​

CLI​

The tare, tars, and admin commands are replaced by tetrate. They keep working and are not removed before 1 February 2027. Each prints the tetrate command that replaces it on stderr, so output parsed from stdout is unchanged.