Releases: NVIDIA/NeMo-Relay
Releases · NVIDIA/NeMo-Relay
NeMo Relay 0.4.0
Immutable
release. Only release title and notes can be modified.
We are proud to release NeMo Relay 0.4.0!
Key Features
- 🛡️ First-party PII redaction plugin with deterministic local backend support
- 🚦 Built-in NeMo Guardrails local backend support, so the
nemo_guardrailscomponent can run against either remote services or a Python-backed local worker. - ⚙️ Code-driven plugin configuration layered over materialized global, project, and user plugin files while preserving documented precedence.
- 📡 Streaming ATOF export endpoints for HTTP POST, WebSocket, and long-lived NDJSON collectors.
- 🗄️ ATIF HTTP storage export support alongside S3-compatible trajectory storage.
- 💸 Pricing-aware LLM observability with model-pricing lookup, cost layering, and cost metadata propagated into ATIF, OpenInference, and OpenTelemetry output.
- 🧭 Stronger coding-agent trace fidelity across Hermes, OpenClaw, Claude Code, and Codex, including nested subagent lineage, routed-provider spans, and error-path consistency.
- 🧩 Improved framework integration behavior for LangChain, LangGraph, and Deep Agents, including serialization fixes, callback coverage, and model-response annotations.
- 🔌 Host plugin installation for Claude Code and Codex, including native plugin manifests, and
install/uninstall/doctor --pluginsubcommands.
What's Changed
💥 Breaking Changes
- chore(guardrails)!: remove python-only guardrails example plugin by @afourniernv in #198
✨ New Features
- feat: Improve Hermes Relay hook injection and event alignment by @yczhang-nv in #205
- feat: add nested subagent session lineage for OpenClaw by @mnajafian-nv in #210
- feat: add ATIF HTTP storage export by @willkill07 in #231
- feat: add streaming ATOF endpoints by @willkill07 in #232
- feat: add LLM cost layering and pricing lookup by @AjayThorve in #236
- feat: add local backend for built-in nemo guardrails by @afourniernv in #197
- feat: layer code-driven plugin config over materialized file configs by @zhongxuanwang-nv in #211
- feat: add claude code and codex plugins by @willkill07 in #224
- feat: add PII redaction plugin crate with local backend by @afourniernv in #245
⚡ Improvements
- refactor: reduce SonarQube complexity findings by @willkill07 in #243
🐛 Bug Fixes
- fix: pass a real ScopeHandle to Node withScope callbacks by @zhongxuanwang-nv in #196
- fix: improve OpenClaw observability consistency by @mnajafian-nv in #203
- fix: remove race condition in LC integration tests by @dagardner-nv in #202
- fix: improve OpenClaw observability cost consistency by @mnajafian-nv in #206
- fix: add flattened OpenInference LLM attributes for annotations and replay by @mnajafian-nv in #207
- fix: Fix LangChain input serialization in callback handler and fix deadlock in
plugincontext manager by @dagardner-nv in #208 - fix: tighten OpenClaw ATOF hook-backed provenance metadata by @mnajafian-nv in #209
- fix: suppress Claude Code lifecycle noise by @AjayThorve in #213
- fix: preserve structured ATIF tool results by @dnandakumar-nv in #223
- fix: validate Hermes routed provider observability by @mnajafian-nv in #222
- fix: preserve Hermes error-path export consistency by @mnajafian-nv in #229
- fix: preserve Hermes tool-result ATIF observations by @mnajafian-nv in #233
- fix: resolve sanitized LLM request from annotations by @fallintoplace in #241
- fix: avoid ATIF shutdown subscriber deadlock by @willkill07 in #242
- fix: annotate Deep Agents model responses by @willkill07 in #246
- fix: include pii redaction in version updates by @willkill07 in #251
- fix: configure gateway body limits by @willkill07 in #261
✅ Tests
- test: validate OpenClaw nested subagent exports by @mnajafian-nv in #214
- test: validate OpenClaw placeholder replay exports by @mnajafian-nv in #217
- test: tighten Hermes wrapped observability contract by @mnajafian-nv in #215
- test: validate OpenClaw model timing diagnostic exports by @mnajafian-nv in #218
- test: cover Hermes wrapped ATIF fidelity and cost by @mnajafian-nv in #219
- test: validate OpenClaw hook-only fallback exports by @mnajafian-nv in #220
- test: add NeMo Relay skill eval datasets by @abhisawa-Nvidia in #225
- test: validate Hermes routed provider OpenInference spans by @mnajafian-nv in #235
- test: add Codex observability contract coverage by @yczhang-nv in #234
- test: regenerate NeMo Relay evals by @abhisawa-Nvidia in #226
- test: validate Hermes subagent lineage and orphan export coverage by @mnajafian-nv in #240
- test(wasm): drop --test-force-exit to avoid Windows libuv abort by @zhongxuanwang-nv in #247
- test: raise Rust and CLI coverage by @willkill07 in #259
🧰 Maintenance
- chore: prepare 0.3 code freeze by @willkill07 in #177
- ci: snapshot release docs from tag source by @willkill07 in #194
- ci: use current docs helper for release snapshots by @willkill07 in #195
- ci: stop nightly alpha tags for release 0.3 by @willkill07 in #204
- ci: add NVSkills CI request workflow by @keshprad in #228
- chore: update dependencies by @willkill07 in #239
- chore: Set status on OTel spans by @dagardner-nv in #221
- chore: update codeowners by @willkill07 in #244
- chore: isolate Rust tests and address Sonar issues by @willkill07 in #257
📝 Documentation Updates
- docs: flush subscribers before deregister in package README examples by @zhongxuanwang-nv in #201
- docs: register plugin kind before activating it in the plugin guide by @zhongxuanwang-nv in #200
- docs: clarify Hermes integration paths by @mnajafian-nv in #249
- docs: clarify exporter failure behavior by @willkill07 in #254
- docs: pii redaction documentation by @afourniernv in #252
- docs: update 0.4 release notes by @willkill07 in #262
- docs: improve Relay onboarding flow by @willkill07 in #256
New Contributors
- @dnandakumar-nv made their first contribution in #223
- @abhisawa-Nvidia made their first contribution in #225
- @keshprad made their first contribution in #228
- @fallintoplace made their first contribution in #241
NeMo Relay 0.3.0
Immutable
release. Only release title and notes can be modified.
We are proud to release NeMo Relay 0.3.0!
Key Features
- ✨ NeMo Flow is now NeMo Relay, with refreshed package guidance, docs, and runtime-facing naming.
- 🛡️ Built-in NeMo Guardrails plugin support, including plugin configuration, remote backend support, and CLI editor workflows.
- 🌐 ATIF v1.7 export support with nested subagents, improved tool-observation correlation, and S3-compatible trace storage.
- ⚡️ Non-blocking subscriber delivery with flush APIs for deterministic tests and exporter output.
- 🧠 Adaptive plugin support for CLI and OpenClaw workflows, including editor support for adaptive configuration.
- 📜 Streaming LLM chunk marks for more precise streaming trace inspection.
- 🐍 Python plugin context manager support for cleaner plugin initialization and teardown.
- 📚 New Fern documentation site with release notes, guardrails docs, runtime primer, trace incident runbook, plugin-building, migration, and adaptive tuning guidance.
- 💻 CLI binaries installable through
cargo binstall nemo-relay-cli
What's Changed
💥 Breaking Changes
- refactor: narrow core runtime registry surface by @willkill07 in #136
- refactor: rename to NeMo Relay by @willkill07 in #141
- perf!: make subscriber delivery non-blocking by @willkill07 in #170
✨ New Features
- feat: add nemo_guardrails plugin contract by @afourniernv in #131
- feat: expose canonical ATOF event JSON across bindings by @bbednarski9 in #132
- feat: enable adaptive plugin for CLI and OpenClaw by @willkill07 in #128
- feat: add adaptive plugin editor support by @willkill07 in #129
- feat: Add streaming LLM chunk marks by @yczhang-nv in #134
- feat: Integrate security guardrails for agent calls by @yczhang-nv in #135
- feat: Emit guardrail scopes for conditional guardrails by @yczhang-nv in #133
- feat: Add a Python context manager for plugins by @dagardner-nv in #154
- feat: implement nemo_guardrails remote backend by @afourniernv in #144
- feat: upgrade exporters for ATIF v1.7 with nested subagents by @bbednarski9 in #160
- feat: add guardrails plugin editor support by @willkill07 in #166
- feat: Add first-class storage export support for ATIF traces to S3 by @billxbf in #163
⚡ Improvements
- refactor: reduce sonar cognitive complexity by @willkill07 in #167
🐛 Bug Fixes
- fix: emit LLM start before execution intercepts by @willkill07 in #125
- fix: align coding agent trace scopes by @willkill07 in #130
- fix(banner): update launch banner to "NEMO RELAY" by @bbednarski9 in #150
- fix: Improved LangChain serialization by @dagardner-nv in #165
- fix: correlate ATIF tool observations by @willkill07 in #171
- fix: preserve OpenClaw tool call replay visibility by @willkill07 in #178
- fix: repair Hermes shutdown-only ATIF artifacts by @bbednarski9 in #182
- fix: Dedupe overlapping LLM spans in ATIF export by @bbednarski9 in #183
- fix: register adaptive plugin in doctor by @willkill07 in #186
- fix: repair Hermes gateway session fallback by @bbednarski9 in #189
✅ Tests
- test: add ATIF trace correlation coverage by @willkill07 in #126
- test: improve core coverage for guardrails by @willkill07 in #161
🧰 Maintenance
- chore: prepare 0.2 code freeze by @dagardner-nv in #103
- chore: bump OpenClaw node dependency to 0.3.0 by @willkill07 in #113
- chore: Add path filters for integrations by @dagardner-nv in #122
- ci: add cli draft release assets by @willkill07 in #124
- chore: address Sonar scan findings by @willkill07 in #137
- chore: Set minimum Node.js version to 24 by @dagardner-nv in #146
- ci: consolidate Fern docs publishing by @willkill07 in #155
- ci: check Fern broken links by @willkill07 in #157
- ci: align Fern CLI dependency pin by @willkill07 in #158
- chore: bump dependency versions by @willkill07 in #159
- ci: enable ATIF S3 storage tests by @willkill07 in #168
📝 Documentation Updates
- docs: bump docs to align with 0.3 by @willkill07 in #121
- docs: clarify managed LLM start event ordering by @willkill07 in #127
- docs: add adaptive tuning skills by @mnajafian-nv in #138
- docs: add build plugin skill by @mnajafian-nv in #139
- docs: add migration guide by @mnajafian-nv in #140
- docs: fix docs build and add migration skill by @willkill07 in #148
- docs: add agent runtime primer by @mnajafian-nv in #145
- docs: add trace incident runbook by @mnajafian-nv in #149
- docs: switch over to fern by @willkill07 in #123
- docs: fix broken documentation links by @willkill07 in #156
- docs: agent runtime primer mermaid diagram docs fix by @bbednarski9 in #162
- docs: add built-in guardrails plugin docs by @afourniernv in #164
- docs: clarify Codex gateway config by @willkill07 in #169
- docs: update documentation URL by @willkill07 in #174
- docs: mention immutability of
LLMRequestin Python bindings by @dagardner-nv in #175 - docs: fix stale naming and add Quick Start binding cards by @zhongxuanwang-nv in #188
- docs: update 0.3 release documentation by @willkill07 in #180
New Contributors
- @yczhang-nv made their first contribution in #134
- @billxbf made their first contribution in #163
- @zhongxuanwang-nv made their first contribution in #188
Full Changelog: 0.2.0...0.3.0
NeMo Relay 0.3.0 Release Candidate 1
Immutable
release. Only release title and notes can be modified.
0.3.0-rc.1 NeMo Reley 0.3.0 Release Candidate 1
NeMo Relay 0.3.0 Beta 2
Immutable
release. Only release title and notes can be modified.
0.3.0-beta.2 NeMo Release 0.3.0 Beta 2
NeMo Flow 0.2.0
Immutable
release. Only release title and notes can be modified.
We are proud to release NeMo Flow 0.2.0!
Key Features
- 🔭 First-class observability plugin with built-in ATOF, ATIF, OpenTelemetry, and OpenInference export support.
- 🚘 Common coding-agent sidecar (
nemo-flow-cli) for closed harnesses including Claude Code, Codex, Cursor, and Hermes Agent. - 🛠 CLI-guided setup for installing and configuring Claude Code, Codex, Cursor, and Hermes Agent hooks.
- 🦀 Native OpenClaw observability through the first-party
nemo-flow-openclawplugin. - 🔗 First-party LangChain, LangGraph, and Deep Agents integrations using public plugin and middleware surfaces instead of patch-only workflows.
- 📡 Structured ATOF JSONL telemetry export for capturing agent trajectories and runtime events.
- 🛡 NeMo Guardrails plugin example for adding safety guardrails into NeMo Flow runtime behavior.
What's Changed
✨ New Features
- feat: add NeMo Guardrails example plugin by @afourniernv in #61
- feat: update opencode patch with ATOF JSONL export by @AnuradhaKaruppiah in #62
- feat: add coding-agent sidecar integrations by @willkill07 in #63
- feat: Add LangChain middleware integration by @dagardner-nv in #69
- feat: add OpenClaw observability plugin by @mnajafian-nv in #67
- feat: add ATOF JSONL exporter by @willkill07 in #88
- feat: Add LangGraph integration by @dagardner-nv in #80
- feat(cli): coding-agent sidecar UX — wizard, doctor, help, banner by @AjayThorve in #83
- feat: add core observability plugin by @willkill07 in #89
- feat(cli): load plugin configs from
plugin.tomlby @bbednarski9 in #93 - feat(cli): add nemo-flow plugins edit by @willkill07 in #98
- feat(codec): add missing optional AnnotatedLlmRequest/Response fields by @afourniernv in #76
- feat: use generic OpenClaw plugin config by @willkill07 in #102
- feat: update OpenClaw patch to use new config shape by @willkill07 in #111
- feat: Add Deep Agents integration by @dagardner-nv in #90
⚡ Improvements
- refactor: rename sidecar crate to CLI by @willkill07 in #77
- refactor: improve CLI coverage structure by @willkill07 in #108
🐛 Bug Fixes
- fix(ci,rust): improve Windows CI robustness by @willkill07 in #41
- fix(rust): python rust tests need isolation by @willkill07 in #43
- fix: add OpenClaw plugin to npm publishing by @mnajafian-nv in #82
- fix: enable TLS for OTLP HTTP export by @willkill07 in #92
- fix: preserve Go scope stacks across OS threads by @willkill07 in #100
- fix: clean Hermes CLI ATIF telemetry by @bbednarski9 in #101
- fix: address outstanding sonar issues by @willkill07 in #104
- fix: support Cursor CLI hook config by @AjayThorve in #109
- fix: add OpenClaw npm provenance metadata by @willkill07 in #114
✅ Tests
- test: isolate CLI config override tests by @willkill07 in #105
🧰 Maintenance
- chore: bump version to 0.2.0 by @willkill07 in #39
- ci: set nightly tag git identity by @willkill07 in #40
- ci: narrow review path filters by @willkill07 in #44
- ci: split CI pipeline workflows by @willkill07 in #46
- ci: fix GitLab npm artifactory publish config by @willkill07 in #47
- ci: fix codecov reporting and PR guidance by @willkill07 in #48
- ci: harden Go Windows linker setup by @willkill07 in #49
- ci: use GitHub-hosted Linux runners by @willkill07 in #50
- ci: install sphinx rustdoc generator by @willkill07 in #52
- ci: fix Codecov component paths by @willkill07 in #53
- ci: keep docs-only PR checks focused by @willkill07 in #54
- ci: improve workflow linting and job names by @willkill07 in #55
- ci: fix Codecov ignore paths by @willkill07 in #56
- chore: reduce attribution generator complexity by @willkill07 in #57
- ci: publish Cargo crates to Artifactory by @willkill07 in #59
- ci: cache pre-commit environments by @willkill07 in #58
- ci: authenticate Cargo Artifactory index fetch by @willkill07 in #60
- ci: update Cargo Artifactory publishing config by @willkill07 in #68
- ci(licensing): support license diff for PRs by @willkill07 in #72
- ci: use cargo env token for artifactory publish by @willkill07 in #74
- ci: fix Artifactory Cargo crate publishing by @willkill07 in #81
- chore: relax dependency codeowners review by @willkill07 in #87
- ci: align PR labels with Linear issue types by @willkill07 in #86
- ci: gate package jobs on package path changes by @willkill07 in #85
- chore: address Sonar scan issues by @willkill07 in #91
- chore: align release branching and nightly tagging flow by @willkill07 in #95
- chore: keep OpenClaw dependency in lockstep by @willkill07 in #107
- ci: fold OpenClaw checks into Node workflow by @willkill07 in #106
- chore: refresh dependency locks by @willkill07 in #112
- ci: trigger gitlab publishing from tags by @willkill07 in #116
- ci: update to
install-actionv2.77.6 by @dagardner-nv in #119
📝 Documentation Updates
- docs: require PR template in agent skill by @willkill07 in #45
- docs: add package README badges by @willkill07 in #51
- docs: fix versioned docs TypeScript resolution by @willkill07 in #84
- docs(openclaw): add plugin guide by @mnajafian-nv in #79
- docs: tolerate missing Node API docs declarations by @willkill07 in #94
- docs: relocate the langchain and langgraph integration documents by @dagardner-nv in #99
- docs: reorganize navigation and integration guidance by @willkill07 in #118
Other Changes
- Update the
test-python-bindingSkill with instructions about how tests should be written by @dagardner-nv in #96
New Contributors
- @afourniernv made their first contribution in #61
- @AnuradhaKaruppiah made their first contribution in #62
- @mnajafian-nv made their first contribution in #67
- @AjayThorve made their first contribution in #83
- @bbednarski9 made their first contribution in #93
Full Changelog: 0.1.0...0.2.0
NeMo Flow 0.1.0
Immutable
release. Only release title and notes can be modified.
What's Changed
The initial NeMo Flow release introduces:
- A Rust core runtime for scopes, middleware registries, lifecycle events, subscribers, plugins, tool calls, and LLM calls
- Primary Rust, Python, and Node.js documentation tracks
- ATIF, OpenTelemetry, and OpenInference subscriber/exporter surfaces
- An adaptive component for plugin-driven optimization behavior
- Sample third-party integration patches for selected agent frameworks and tools
Full Changelog: https://github.com/NVIDIA/NeMo-Flow/commits/0.1.0