Release notes
Notable changes to Rius, newest first. The hosted platform updates in place, so a platform release needs nothing from you unless its notes say so. SDK releases are yours to install; each SDK’s full changelog is on GitHub (Python , TypeScript ).
2026-09-29: platform release, MCP server 0.10.0, SDK 1.0.0
Action needed if you use the Python SDK’s GLASSFLOW_* environment
variables. SDK 1.0.0 reads only RIUS_* names. See
Upgrading to 1.0 before you upgrade.
Search and filters
- A new filter bar on Traces and Spans. Build filters as chips, combine them, exclude values, and share the result: filters now live in the URL. See Search and filter.
- Filter on any attribute. Any span or resource attribute your agents send can be filtered, with suggested values. Suggestions skip payload attributes such as prompts, completions, and tool input and output, and long values.
- Declared workspace attributes. Admins declare the attributes that matter to the team under Settings → Attributes, and declared attributes show up by their label in search. You can also declare an attribute straight from a span’s attribute menu.
- Saved searches. Save a filter set with a relative time window, such as the last 7 days, and come back to it. A saved search is private by default, or shared with everyone in the workspace.
- Span attribute actions. On any span attribute you can filter by it, exclude it, copy it, or declare it.
- The health strip follows your search. The summary above the trace list reflects your current filters.
- New columns on the trace list: User, Sent by (who owns the API key that sent the trace), Instance, and Version, shown when your traces carry them. The trace header adds the session, linked to all its spans. Each is also a filter.
Shared views
- Shared links keep your filters. A shared view opens with the filters you had applied, and the viewer sees which filters are active.
- Public links show less. A shared view no longer shows input and output previews, end user ids, instance ids, or who sent a trace.
Agents
- Richer agent pages: summary tiles scoped to the time window, Exceptions, Context usage, Versions, and Drift, plus a heartbeat timeline.
- LIVE and Cost columns in the agents list.
- “Failed” is now “Errored traces” everywhere.
- Time to first token counts only calls where it was measured, and the console shows how many LLM calls that is (“n of m LLM calls measured”).
- LLM call counts include model calls only. Embedding calls are no longer counted as LLM calls.
- Agent naming. Agents are named from
rius.main_agent.name, orgen_ai.agent.name. A process that sends neither no longer appears as an agent named after its service. The SDKs set both fromagent_name(RIUS_AGENT_NAME), which defaults toservice_name, so set a service name. With a plain OpenTelemetry SDK, setrius.main_agent.nameas a resource attribute. - Traces that arrive without a root span now get an inferred root, so they count toward the right agent.
End users
- Rius picks up the end user from
user.id,enduser.id, orenduser.pseudo.idon your spans. - Traces get a User column and a user filter.
- Users page. A register of your end users, with a page per user showing their activity. See Users.
Alerts and root-cause analysis
- Run root-cause analysis on demand with Run analysis on a firing. Analyses have a monthly budget. Firings show the analysis status, for example Over budget or No report. See Root-cause analysis on demand.
- Reminder countdown. A firing shows when the next reminder will be sent.
- More alert filters: operation, session, instance, and “not in”. Predefined alert kinds accept filters as well.
- Rule health. A rule that keeps failing is detected, recorded, and stopped automatically, and one failing rule no longer affects the others.
- Editing a rule resolves its open alerts and starts evaluating the rule afresh.
- During this upgrade, a predefined rule could send one duplicate notification for an alert that was already open.
Context and cost
- Context usage on traces and spans: how much of the model’s context window was used, including reasoning tokens and the provider preamble.
- Unknown cost is shown as blank instead of $0. A call with no usage data no longer looks free.
- Cost and context window for more model ids. Models called through
Vertex AI (ids like
claude-sonnet-4-5@20250929) and through gateways that prefix the vendor (ids likeopenai.gpt-4.1) now show cost and context-window numbers. Models that already showed them are unchanged.
Instrumentations
The platform now understands and normalizes spans from more instrumentation libraries:
- OpenLLMetry / Traceloop
- Laminar, including OpenHands agents
- OpenInference (Arize), including tool definitions, cached and reasoning token counts, and tool choice
See Interoperability.
Data format changes for new data
These apply to spans received after the upgrade. Spans you already stored are unchanged.
- List-valued attributes are stored as JSON arrays.
- Tool definitions are stored as a single JSON array.
- Embedding vectors are no longer stored.
If you have saved searches or alert filters that match the old text form of a list attribute, re-create them.
API keys and workspaces
- Edit an API key (name and scopes) without re-issuing it. The MCP page’s Access tab shows whether each key is active and when it was last used.
- Agent heartbeats are on by default.
- Workspace names are limited to 60 characters.
- Invitations that expire without being accepted are cleaned up automatically.
MCP server 0.10.0
- Eight new tools:
describe_search_catalog,list_agents,agent_error_groups,agent_lifecycle_events,user_activity_summary,list_users,agent_versions, andcompare_agent_versions. See the tool reference. - Trace and span tools accept the same filters as the console, plus text search, error text, and user filters.
- Session and “sent by” columns in call results, time-bucketed summaries
(
group_by="bucket"), and an optionalX-MCP-Agent-Nameheader so an MCP client can declare its agent name. - Multiple organizations.
get_melists all your organizations. Pass a workspace asorg/workspacewhen a name exists in more than one organization; an ambiguous name now returns an error. - The MCP page in the console has tabs for the overview, sessions, clients, tools, access, and queries. See Usage and access.
- What we log about MCP calls. Rius records allow-listed tool arguments and row counts for each MCP call, so you can review your agents’ usage. Tool results are never stored. Call-log rows are kept for 30 days.
Plans and billing
- New organizations start on a 30-day trial and subscribe to a plan from Settings → Plan & usage through Stripe Checkout. See Plans and billing.
- Organizations created before this release are not affected.
SDK 1.0.0 (glassflow-rius, @glassflow-ai/rius)
Version 1.0.0 finishes the move from the GlassFlow name to Rius and aligns span names with the OpenTelemetry GenAI conventions. The breaking changes and how to migrate are in Upgrading to 1.0. In short:
- Python reads only
RIUS_*environment variables. - The pending-span attribute is
rius.span.pending, and the tracer scope isrius. - Unnamed spans are named
chat {model},embeddings {model},execute_tool {tool},invoke_agent {agent}, andretrieval {data_source}. model_parametersland on the standardgen_ai.request.*keys, and anything else underrius.request.*, includingresponse_format.- Spans can carry up to 4096 attributes, up from 128.
- Rius can bridge the tracer provider of another OpenTelemetry SDK in the
same process (Langfuse, Traceloop, Logfire, MLflow, OpenLIT, Laminar). The
bridge is off by default; set
RIUS_BRIDGE_FOREIGN_PROVIDER=1to turn it on.
Other
- Terms and Privacy links now point to glassflow.ai.