Release Notes

View as Markdown

This page gives you the short version of the current release. For the complete PR-by-PR history, release artifacts, and notes for a specific tag, use GitHub Releases.

Current Release

NVIDIA NeMo Relay 0.6 makes local coding-agent sessions easier to start, observe, and extend. It adds an MCP-managed shared gateway, broader event sanitization, richer observability and optimization evidence, direct control of dynamic plugin lifecycles for embedding hosts, configurable operational logging, and an experimental Switchyard Decision API integration.

If you’re upgrading from 0.5, plan for these changes:

  • Reinstall your Codex, Claude Code, and Hermes integrations with nemo-relay install <agent> --force or nemo-relay install all --force. Installations generated by 0.5 do not use the 0.6 gateway lifecycle.
  • Move Observability plugin ATOF configuration to components.config.version = 2 and the tagged atof.sinks list. If you query OTLP data, replace removed raw *_json attributes with the new typed paths.
  • Review event consumers that assume sanitizer failures are fail-open, every LLM event contains the full request history, ATIF contains marks, or step.model_name always matches the requested model.
  • Update Rust code that exhaustively matches public enums or directly constructs mark types, ATOF sink types, or editor metadata types. The provided builders and constructors are the safest migration path.
  • Update managed LLM stream consumers that construct LlmJsonStream directly or ignore Go LlmStream.Close results. Use the stream constructors and explicit close methods described in the compatibility notes when exiting a stream early.
  • Replace direct references to old public skill directories with the task-oriented nemo-relay-install, nemo-relay-get-started, nemo-relay-instrument-*, and nemo-relay-plugin-* entry points.

Before you upgrade, work through the complete Compatibility and Migration Notes for the exact actions, documentation, and implementation PRs. Go and the raw C FFI remain experimental and source-first. Node.js 24 or newer remains the minimum supported Node.js version.

Release Scope

Here’s what changed across the main product surfaces:

  • Coding agents: Relay starts or adopts one authenticated gateway before an installed client emits hooks or routed provider traffic. Codex, Claude Code, and Hermes can share that gateway, coordinate a single recovery attempt, and let it shut down after it becomes idle.
  • Events and security: Mark, scope-start, and scope-end sanitizers now work at global, scope-local, and plugin levels. The PII plugin sanitizes those surfaces, later LLM events can omit stale history, and Relay records skill-load attempts with skill.load marks.
  • Observability and optimization: ATOF can send every event to multiple file and stream sinks. OTLP exporters use typed attributes, trace exporters can show marks as tool spans, session identifiers correlate across formats, ATIF reports the effective response model, and plugins can contribute optimization evidence.
  • Plugins and configuration: Rust, Python, and Node.js embedding hosts can own native and worker dynamic plugin lifecycles. Experimental C and Go entry points expose the same lifecycle, and the CLI can edit nested lists, maps, and tagged unions in built-in plugin configuration.
  • Operational logging: Commands can write configurable human-readable or JSONL logs to stderr and asynchronous file sinks without writing to stdout.
  • Decision routing: The opt-in experimental Switchyard plugin validates and routes buffered or streaming requests across OpenAI Chat Completions, OpenAI Responses, and Anthropic Messages.
  • Managed LLM streams: Explicit early close now deterministically stops the producer, finalizes the partial response, and emits the interrupted end event across Rust, Python, Node.js, Go, and C. Rust and Go callers have source-compatibility changes; see the migration notes before upgrading.
  • Agent skills: The public catalog now follows task-oriented workflows for installation, getting started, instrumentation, plugin configuration, migration, and debugging. The guidance calls for installers pinned to immutable release tags, runtime-injected secrets, non-sensitive exporter checks, and tightly scoped migration writes.

Feature Documentation

Use these guides to explore the main 0.6 capabilities: