Repository navigation
Releases: glassflow/rius-sdk-typescript
Releases · glassflow/rius-sdk-typescript
Release list
v1.3.0
v1.2.0
1.2.0 (2026-10-13)
Features
- @arizeai/openinference-vercel is no longer needed and can be uninstalled (f187227)
- client.ready no longer lists vercel-ai on AI SDK v5 and v6; it lists it only where @ai-sdk/otel is registered (AI SDK v7) (f187227)
- map the Vercel AI SDK's ai.* telemetry onto the GenAI conventions natively (#129) (c8d52f0)
- map the Vercel AI SDK's rerank spans natively, as the new RERANKER span kind (SpanKind.RERANKER) with the operation rerank (f187227)
- record the reasoning split and classify agent_step on Vercel AI SDK v7 spans (#133) (94d32ba)
Bug Fixes
v1.1.1
1.1.1 (2026-10-13)
Bug Fixes
- drop a request bag's tool definitions when llm.tools supplied them (#120) (064d112)
- map pydantic-ai's thinking_tokens and thoughts_tokens to the canonical reasoning count (#119) (8b11f6e)
- name a LangChain run's provider from ls_provider when no provider key is set (#123) (b6c703a)
- record OpenAI embeddings token counts the OpenInference instrumentation leaves out (#124) (066e896)
v1.1.0
1.1.0 (2026-10-12)
Features
Bug Fixes
- drop a LiteLLM routing prefix that names the span's provider from gen_ai.request.model (#115) (f9e751b)
- map time to first chunk under its metric name, and give such spans a first-token event (#116) (6c533ee)
- name the provider from llm.system when the host is unknown (#111) (1fe2b68)
- never take a LangChain bag's stream member as the request's stream flag (#117) (b222300)
- read the request model and max tokens from LlamaIndex's model metadata (#118) (451aecd)
- require openinference-instrumentation-openai 4.4.1 and drop the rejected-call guard (#112) (7128b7c)
- stop double-counting AI SDK v7 usage on the invoke_agent span (#110) (0e2d98b)
- warn when a declared anthropic or openai integration cannot load (#109) (d1ad014)
v1.0.0
1.0.0 (2026-09-29)
Upgrading from 0.x
Version 1.0.0 finishes the move from the GlassFlow name to Rius and brings span names in line with the OpenTelemetry GenAI conventions. It needs the Rius platform release of 2026-09-29 or later, which accepts rius.span.pending.
Breaking changes and how to migrate
| What changed | What to do |
|---|---|
The pending-span attribute is now rius.span.pending, not glassflow.span.pending (#67) |
Update any code that imports the constant. |
The tracer scope is now rius, not glassflow (#67) |
Update any collector or processor rule that filters on the instrumentation scope. |
Span names follow the GenAI conventions: chat {model}, embeddings {model}, execute_tool {tool}, invoke_agent {agent}, retrieval {data_source}. CHAIN spans keep the function name, and an explicit name still wins (#72) |
Update saved searches, alerts and dashboards that are keyed on span name, or pass an explicit name. |
RETRIEVER spans carry gen_ai.operation.name="retrieval" and accept dataSourceId (#69) |
Update any filter on the old operation name. |
modelParameters maps 43 aliases onto 15 standard gen_ai.request.* keys, and unknown keys go under rius.request.* (#85) |
Filter on the standard keys. |
The @arizeai/openinference-instrumentation-anthropic peer now needs ^0.2.7, the first version that reports prompt-cache tokens (#96) |
Upgrade that peer dependency. |
Behaviour changes
- The span helpers take
toolName, so the tool name no longer has to come from the span name (#68). - A span can carry up to 4096 attributes, up from 128, so long agent calls keep their usage and output (#95).
- With
captureContent: false, the OpenInference request-parameter bag (llm.invocation_parameters) is treated as content and is not sent (#87). - Other OpenTelemetry SDKs in the same process (Langfuse, Traceloop, Logfire, MLflow, OpenLIT, Laminar): when one of them owns the global tracer provider, Rius can now bridge it, so that their spans (your LLM calls' parents) reach Rius too. The bridge is off by default. Turn it on with
bridgeForeignProvider: trueorRIUS_BRIDGE_FOREIGN_PROVIDER=1. Spans whose parent Rius never saw are flaggedrius.parent.foreigneither way (#104). - With
captureContent: false, the Laminarlmnr.*content keys are stripped too (#105).
Node 18+ is still supported, and the package name (@glassflow-ai/rius) is unchanged.
⚠ BREAKING CHANGES
- normalize modelParameters keys onto gen_ai.request.* and rius.request.* (#85)
- name spans after their operation and target, per the conventions (#72)
- map RETRIEVER to the retrieval operation and take a data source id (#69)
- emit rius.span.pending and the rius tracer scope (#67)
Features
- emit rius.context.sizes, a per-part byte breakdown of the context, on every generation span (#65) (5066d77)
- emit rius.span.pending and the rius tracer scope (#67) (6cbd4fa)
- map llm.finish_reason onto gen_ai.response.finish_reasons, verbatim (#84) (5aa533b)
- map OpenInference embeddings and the response id onto the canonical keys (#100) (337050c)
- map RETRIEVER to the retrieval operation and take a data source id (#69) (18d7404)
- map the OpenInference model-call, usage and taxonomy keys onto the canonical wire (#81) (3d93ec6)
- map tool.name, the llm.tools definitions and two usage spellings onto the canonical wire (#91) (02211bb)
- name spans after their operation and target, per the conventions (#72) (b1610c1)
- name the agent an AGENT span invokes (#71) (13f30c3)
- name the agent executing a tool on execute-tool spans (#75) (e7c15d3)
- normalize modelParameters keys onto gen_ai.request.* and rius.request.* (#85) (d348a9f)
- normalize third-party attribute dialects to the conventions (#76) (6f45a0a)
- reassemble OpenInference's flattened messages, Anthropic's multi-part contents included (#90) (2a835db)
- record the completion id, output type and tool-call identity, and stamp service.version (#77) (056437d)
- take gen_ai.tool.name as an explicit argument on the span helpers (#68) (b664edb)
- take the process agent identity into rius.main_agent.*, and version the agent at both scopes (#79) (e8c7886)
Bug Fixes
- bridge a foreign global OTel provider and flag foreign parents (RIUS-1097) (#104) (6b2b111)
- carry the Anthropic system prompt as a system input message (#98) (1b245c6)
- end the OpenAI span when an auto-instrumented call rejects (#99) (a324fef)
- guard native modelParameters like the normalizer, and let the first spelling win (#93) (68b85d1)
- keep tool_choice with content capture off by promoting it out of the request bag (#94) (8cc97c3)
- leave U+2028/U+2029 raw in a promoted system block, as the sink writes them (#101) (552f4cc)
- name provider SDK errors by class in error.type and exception.type (#92) (11c6dea)
- raise the span attribute limit so long agent calls keep their usage and output (#95) (2918a8b)
- require the Anthropic instrumentor version that reports prompt-cache tokens (#96) (eb86f0f)
- run the Vercel transform only on the AI SDK's own ai.* spans (#97) (fc0729f)
- stamp gen_ai.agent.name on the resource (#70) (22f3423)
- strip Laminar (lmnr.*) content keys with captureContent off (RIUS-1070) ([#105](https://github.com/glassflow/r...
v0.8.0
v0.7.0
v0.6.1
v0.6.0
0.6.0 (2026-09-14)
Features
- parity: normalise messages, bound payloads at 32 KB, and carry SDK identity on the wire (#50) (d49a9f4)
- record tool definitions in the generation API and pin instrumentor tool capture (#40) (74742b3)
- trace Vercel AI SDK v7 apps zero-config via registerTelemetry + @ai-sdk/otel (#43) (017d962)
- withUser stamps user.id on every span in scope (#44) (1c89654)
Bug Fixes
- client: shutdown() undoes the instrumentation it enabled (#46) (f03dc53)
- masking: cover the GenAI tool-call keys and run the mask over the status message (#45) (37fdcf0)
- robustness edge cases from the 2026-09-14 review (#48) (2722d5a)
- strip tool definitions and Vercel ai.* content on every sanitized path (#42) (51685b4)