Release Notes for NVIDIA NeMo Relay
This page contains the release notes for NVIDIA NeMo Relay.
Release 0.6
NVIDIA NeMo Relay 0.6 strengthens local coding-agent observability, event sanitization, observability exports, and dynamic plugin lifecycle management.
Highlights
- Coding agents now connect through
nemo-relay mcp, which starts or adopts a shared authenticated gateway before hooks or routed provider traffic arrive. Codex, Claude Code, and Hermes clients can share the gateway and coordinate recovery before idle shutdown. - Relay adds global, scope-local, and plugin-installed sanitizers for mark,
scope-start, and scope-end events. The PII redaction plugin now supports
ordered, composable profiles and the opt-in
trajectory_contextpreset. - ATOF configuration version 2 supports multiple independently configured file and stream sinks. OpenTelemetry and OpenInference now use typed attributes, and trace exporters can project selected marks as tool spans.
- Rust, Python, and Node.js embedding hosts can own native and worker dynamic plugin lifecycles. Experimental Go and C entry points expose the same source-first lifecycle.
- The coding-agent gateway supports lossless request annotations for Anthropic Messages, OpenAI Chat Completions, and OpenAI Responses generation routes.
- The CLI adds recursive plugin configuration editing and configurable human-readable or JSONL operational logging.
- The opt-in Switchyard integration can validate and route buffered or streaming provider requests through a separately managed Decision API.
Support Matrix and Compatibility Updates
The Support Matrix is the canonical reference for supported platforms and architectures, worker runtimes, coding agents, and integrations. It also records current limitations, including platform-specific worker requirements.
This release requires migration work for persistent coding-agent installations, ATOF configuration, typed observability attributes, annotated-request plugin consumers, and managed LLM streams. Refer to the Migration Guides for upgrade actions from 0.5 to 0.6.
Fixed Known Issues in 0.6
- Coding-agent gateway generation routes now decode request annotations for Anthropic Messages, OpenAI Chat Completions, and OpenAI Responses while preserving unchanged nested fields, explicit nulls, and provider representations.
- Installed coding-agent sessions now acquire the shared gateway through MCP before hooks or routed provider traffic, preventing cold-start loss and coordinating concurrent startup and recovery.
- Transparent Codex routing now recognizes
at-...access tokens and sends them to the ChatGPT Codex backend without rewriting unrelated bearer tokens or provider API keys. - Relay now asks Codex to prefer the readable legacy multi-agent path during managed runs and restores the user’s prior setting during uninstall.
- ATIF now reports the normalized provider response model when a routed or translated call runs on a model that differs from the request.
- The NeMo Flow migration skill now skips credential-bearing dotenv files and symbolic links, requires exact project-root confirmation, and refuses write mode for filesystem roots and home directories.
Known Issues in 0.6
- Go and the raw C FFI remain experimental and source-first. Generated API pages focus on Rust, Python, and Node.js.
- Local coding-agent observability depends on host hooks and provider traffic reaching the local gateway. Relay cannot fully capture remote or cloud execution that bypasses the local host.
- Persistent Codex, Claude Code, and Hermes integrations use user-scoped
configuration and a shared loopback gateway. Use
nemo-relay runwhen a launch must retain project-specific configuration. - On Windows, a restrictive host Job Object can limit gateway reuse or prevent
persistent bootstrap. Codex can also make a cold-start
/modelsrequest before required MCP servers start; Relay retries the request. - Codex 0.143 does not expose
SessionEnd, and Codex multi-agent v2 encrypts delegated-task payloads that Relay cannot decrypt or reliably link. - The Node.js binding and package workflows require Node.js 24 or later.
- Switchyard is experimental, excluded from default CLI builds, and requires a separately managed compatible service and a named authenticated ATOF HTTP stream sink.
- OpenClaw has public hook-backed telemetry. Its security and optimization coverage is partial because it does not own a managed execution path.
- The NeMo Guardrails remote backend inherits its configured service’s
availability, latency, and policy behavior. The local backend requires Python
3.11 or later and
nemoguardrails==0.22.0. - The PII redaction plugin currently supports its deterministic local backend; local-model backend configuration is reserved for future work.
- Pricing and optimization estimates depend on model names, token data, pricing sources, and freshness evidence. Missing or inconsistent evidence produces partial or absent cost fields rather than zero values.
- ATOF stream sinks and remote ATIF storage require reachable, correctly configured destinations. A failed stream sink does not stop file output or other active sinks.
- ATIF omits point-in-time marks. Use ATOF for the canonical mark stream; OpenTelemetry and OpenInference tool-style mark projection is only a visualization aid.
- Native dynamic plugins run in the Relay process and are not sandboxed. A
grpc-v1worker runs in a separate process, but that process is not a security sandbox. - Treat Python
LLMRequestobjects as immutable. Request middleware that changes content must return a new request object. - Native subscriber callbacks arrive asynchronously. Flush subscribers before depending on their side effects, captured events, files, or exporter output.
- Operational logging configuration and sink lifecycle are available, but broad operational log coverage across commands is not yet available.
Previous Releases
For previous release notes, release artifacts, and the complete PR-by-PR history, refer to GitHub Releases.