Skip to content

chore: prepare 0.4 code freeze#250

Merged
willkill07 merged 1 commit into
NVIDIA:mainfrom
willkill07:docs/code-freeze-0.4
Jun 11, 2026
Merged

chore: prepare 0.4 code freeze#250
willkill07 merged 1 commit into
NVIDIA:mainfrom
willkill07:docs/code-freeze-0.4

Conversation

@willkill07

@willkill07 willkill07 commented Jun 11, 2026

Copy link
Copy Markdown
Member

Overview

Prepare the 0.4 code freeze follow-up on main after creating release/0.4 from upstream/main.

  • I confirm this contribution is my own work, or I have the right to submit it under this project's license.
  • I searched existing issues and open pull requests, and this does not duplicate existing work.

Details

  • Created release/0.4 from latest upstream/main for release-bound PRs.
  • Added release/0.4 to .github/nightly-alpha-branches.yaml so nightly alpha tags continue for the frozen release line.
  • Ran just set-version 0.5.0 to bump main to the next release line across Cargo, npm, OpenClaw, and coding-agent plugin package surfaces.
  • Updated current docs install/configuration examples from 0.4.0 to 0.5.0; no intentional 0.4.0 leftovers remain in README.md, docs, or fern.
  • Added nemo-relay-pii-redaction to the just set-version local dependency list so the workspace dependency stays aligned in future bumps.

Where should the reviewer start?

Start with .github/nightly-alpha-branches.yaml for the freeze-line nightly config, then Cargo.toml and justfile for version alignment.

Validation:

  • `ruby -e 'require "yaml"; YAML.load_file(".github/nightly-alpha-branches.yaml"); YAML.load_file(".github/workflows/nightly-alpha-tag.yaml")'
  • just set-version 0.5.0
  • rg -n '0\\.4\\.0' Cargo.toml package.json package-lock.json crates integrations README.md docs fern --glob '!docs/_build/**' || true
  • git diff --check
  • signed-off commit pre-commit hooks, including package lock and attribution checks

Related Issues: (use one of the action keywords Closes / Fixes / Resolves / Relates to)

  • Relates to: none

Summary by CodeRabbit

  • Chores

    • Version bumped to 0.5.0 across all packages and integrations.
    • Updated plugin metadata versions to 0.5.0.
  • Documentation

    • Installation and quick-start guides updated to reference version 0.5.0 for all supported package managers.
    • Plugin configuration documentation updated with new version references.

Signed-off-by: Will Killian <wkillian@nvidia.com>
@willkill07 willkill07 requested review from a team and lvojtku as code owners June 11, 2026 13:29
@github-actions github-actions Bot added size:S PR is small Maintenance CI or Build or general repository maintenance labels Jun 11, 2026
@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 07a3cf6e-612e-4907-8ca8-95d67272b1fa

📥 Commits

Reviewing files that changed from the base of the PR and between 78c51ad and c6402d2.

⛔ Files ignored due to path filters (2)
  • Cargo.lock is excluded by !**/*.lock
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (12)
  • .github/nightly-alpha-branches.yaml
  • Cargo.toml
  • crates/node/package.json
  • docs/getting-started/installation.mdx
  • docs/getting-started/quick-start/python.mdx
  • docs/getting-started/quick-start/rust.mdx
  • docs/observability-plugin/configuration.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • integrations/coding-agents/claude-code/.claude-plugin/plugin.json
  • integrations/coding-agents/codex/.codex-plugin/plugin.json
  • integrations/openclaw/package.json
  • justfile
📜 Recent review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Check / Run
  • GitHub Check: Preview docs
🧰 Additional context used
📓 Path-based instructions (29)
.github/nightly-alpha-branches.yaml

📄 CodeRabbit inference engine (.agents/skills/prepare-code-freeze/SKILL.md)

Update .github/nightly-alpha-branches.yaml to include the new release branch during code freeze preparation

Files:

  • .github/nightly-alpha-branches.yaml
.github/{nightly-alpha-branches.yaml,workflows/nightly-alpha-tag.yaml}

📄 CodeRabbit inference engine (.agents/skills/prepare-code-freeze/SKILL.md)

Validate .github/nightly-alpha-branches.yaml and .github/workflows/nightly-alpha-tag.yaml YAML syntax during code freeze

Files:

  • .github/nightly-alpha-branches.yaml
{.github/**,.gitlab-ci.yml,.pre-commit-config.yaml,justfile,scripts/**}

⚙️ CodeRabbit configuration file

{.github/**,.gitlab-ci.yml,.pre-commit-config.yaml,justfile,scripts/**}: Review automation changes for reproducibility, pinned versions where appropriate, secret handling, and consistency with the documented validation matrix.
Pay attention to commands that need generated native artifacts, FFI libraries, or platform-specific environment variables.

Files:

  • .github/nightly-alpha-branches.yaml
  • justfile
{docs/**,README.md,CONTRIBUTING.md}

📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)

{docs/**,README.md,CONTRIBUTING.md}: For docs-only changes, run targeted checks only if commands, package names, or examples changed. Use just docs for docs-site builds and just docs-linkcheck when links changed
Run docs site build with just docs

Files:

  • docs/getting-started/quick-start/rust.mdx
  • docs/getting-started/installation.mdx
  • docs/getting-started/quick-start/python.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • docs/observability-plugin/configuration.mdx
{docs/**,README.md,CONTRIBUTING.md,**/*.md}

📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)

Run docs link validation with just docs-linkcheck when links change

Files:

  • docs/getting-started/quick-start/rust.mdx
  • docs/getting-started/installation.mdx
  • docs/getting-started/quick-start/python.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • docs/observability-plugin/configuration.mdx
{docs/**,README.md}

📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)

Verify README and docs entry points still match current package names and paths for large or public-facing changes

Files:

  • docs/getting-started/quick-start/rust.mdx
  • docs/getting-started/installation.mdx
  • docs/getting-started/quick-start/python.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • docs/observability-plugin/configuration.mdx
{docs/**,examples/**,README.md}

📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)

Verify examples still run with documented commands for large or public-facing changes

Files:

  • docs/getting-started/quick-start/rust.mdx
  • docs/getting-started/installation.mdx
  • docs/getting-started/quick-start/python.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • docs/observability-plugin/configuration.mdx
{docs/**,README.md,**/Cargo.toml,**/package.json,**/*.md}

📄 CodeRabbit inference engine (.agents/skills/validate-change/SKILL.md)

Ensure renamed public surfaces are reflected consistently in manifests and docs for large or public-facing changes

Files:

  • docs/getting-started/quick-start/rust.mdx
  • integrations/openclaw/package.json
  • Cargo.toml
  • crates/node/package.json
  • docs/getting-started/installation.mdx
  • docs/getting-started/quick-start/python.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • docs/observability-plugin/configuration.mdx
**/*.{md,mdx,py,sh,yaml,yml,toml,json}

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

Keep package names, repo references, and build commands current

Files:

  • docs/getting-started/quick-start/rust.mdx
  • integrations/openclaw/package.json
  • Cargo.toml
  • crates/node/package.json
  • docs/getting-started/installation.mdx
  • docs/getting-started/quick-start/python.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • docs/observability-plugin/configuration.mdx
**/*.mdx

📄 CodeRabbit inference engine (.agents/skills/contribute-docs/SKILL.md)

In MDX files, top-of-file comments must use JSX comment delimiters: {/* to open and */} to close. Do not use HTML comments for MDX SPDX headers.

MDX top-of-file SPDX comments must use {/* ... */} delimiters instead of HTML comment delimiters (Must-Fix)

Files:

  • docs/getting-started/quick-start/rust.mdx
  • docs/getting-started/installation.mdx
  • docs/getting-started/quick-start/python.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • docs/observability-plugin/configuration.mdx
**/*.{html,md,mdx}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Include SPDX license header in HTML and Markdown files using HTML comment syntax

Files:

  • docs/getting-started/quick-start/rust.mdx
  • docs/getting-started/installation.mdx
  • docs/getting-started/quick-start/python.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • docs/observability-plugin/configuration.mdx
docs/**/*.{md,mdx}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Update embedded documentation snippets, patch docs, and binding-support notes if examples or supported bindings changed

Files:

  • docs/getting-started/quick-start/rust.mdx
  • docs/getting-started/installation.mdx
  • docs/getting-started/quick-start/python.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • docs/observability-plugin/configuration.mdx
docs/**

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Run just docs or ./scripts/build-docs.sh html to regenerate ignored Fern API reference pages before validation for documentation site changes

Files:

  • docs/getting-started/quick-start/rust.mdx
  • docs/getting-started/installation.mdx
  • docs/getting-started/quick-start/python.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • docs/observability-plugin/configuration.mdx
{docs/**,README.md,CONTRIBUTING.md,RELEASING.md,SECURITY.md}

⚙️ CodeRabbit configuration file

{docs/**,README.md,CONTRIBUTING.md,RELEASING.md,SECURITY.md}: Review documentation for technical accuracy against the current API, command correctness, and consistency across language bindings.
Flag stale examples, missing SPDX headers where required, and instructions that no longer match CI or pre-commit behavior.

Files:

  • docs/getting-started/quick-start/rust.mdx
  • docs/getting-started/installation.mdx
  • docs/getting-started/quick-start/python.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • docs/observability-plugin/configuration.mdx
**

⚙️ CodeRabbit configuration file

**:

AGENTS.md

This file provides guidance to agents, including Claude Code and OpenAI Codex, when working in this repository.

Project Overview

NeMo Relay is a multi-language agent runtime framework for execution scopes, lifecycle events, middleware, plugins, and observability around tool and LLM calls. The core runtime is Rust. Primary supported bindings are Rust, Python, and Node.js. Go, WebAssembly, and the raw C FFI are experimental and source-first.

The shared runtime model is:

  1. Scope stacks decide where work belongs and which scope-local behavior is visible.
  2. Middleware registries decide what guardrails and intercepts run around managed calls.
  3. Plugins install reusable runtime behavior from configuration.
  4. Events record runtime behavior in ATOF form.
  5. Subscribers and exporters consume events in-process or export them to ATIF, OpenTelemetry, OpenInference, or other backends.

Repository Structure

The repository layout separates the Rust runtime, language bindings, documentation,
integration patches, and agent-facing skills.

crates/
  core/       # Rust core runtime crate, published as nemo-relay
  adaptive/   # Adaptive runtime primitives and plugin components
  python/     # PyO3 native extension for the Python package
  ffi/        # Raw C ABI layer used by downstream bindings such as Go
  node/       # NAPI Node.js binding and JavaScript/TypeScript entry points
  wasm/       # wasm-bindgen WebAssembly binding and JS wrappers
python/
  nemo_relay/  # Python wrapper package: scopes, tools, LLM, middleware, typed helpers, plugins, adaptive helpers
  tests/      # Python tests
go/
  nemo_relay/  # Experimental Go CGo binding and tests
fern/         # Fern documentation site
scripts/      # Stable wrappers and helper scripts; build/test/docs entry points live in justfile
third_party/  # P...

Files:

  • docs/getting-started/quick-start/rust.mdx
  • integrations/openclaw/package.json
  • Cargo.toml
  • crates/node/package.json
  • docs/getting-started/installation.mdx
  • docs/getting-started/quick-start/python.mdx
  • justfile
  • docs/supported-integrations/openclaw-plugin.mdx
  • docs/observability-plugin/configuration.mdx
**/package.json

📄 CodeRabbit inference engine (.agents/skills/rename-surfaces/SKILL.md)

Update Node.js package names during coordinated rename operations

Files:

  • integrations/openclaw/package.json
  • crates/node/package.json
integrations/openclaw/package.json

📄 CodeRabbit inference engine (.agents/skills/update-project-version/SKILL.md)

Ensure integrations/openclaw/package.json npm plugin version stays aligned with the workspace-root package-lock.json

Files:

  • integrations/openclaw/package.json
**/{Cargo.toml,**/*.rs}

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

Maintain consistency between Rust package names in Cargo.toml and their actual usage across the codebase

Files:

  • Cargo.toml
**/*.{rs,toml}

📄 CodeRabbit inference engine (.agents/skills/rename-surfaces/SKILL.md)

Update Rust crate names and module prefixes during coordinated rename operations

Files:

  • Cargo.toml
**/*.{py,txt,toml,cfg,yaml,yml}

📄 CodeRabbit inference engine (.agents/skills/rename-surfaces/SKILL.md)

Update Python package names and top-level module imports during coordinated rename operations

Files:

  • Cargo.toml
**/Cargo.toml

📄 CodeRabbit inference engine (.agents/skills/rename-surfaces/SKILL.md)

Update WebAssembly crate names and generated package names during coordinated rename operations

Confirm or infer the target release version from upstream/main:Cargo.toml. Derive the release branch as release/<major>.<minor>.

Files:

  • Cargo.toml
Cargo.toml

📄 CodeRabbit inference engine (.agents/skills/update-project-version/SKILL.md)

Cargo.toml: Maintain Cargo.toml [workspace.package].version as the source of truth for Rust workspace and Python build versioning
Keep Cargo.toml [workspace.dependencies] self-references aligned when the workspace version changes

Files:

  • Cargo.toml
**/*.toml

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Include SPDX license header in TOML configuration files using hash comment syntax

Files:

  • Cargo.toml
**/*.{rs,py,js,ts,tsx,jsx,go,sh,toml,yaml,yml,md}

📄 CodeRabbit inference engine (AGENTS.md)

Keep SPDX headers on source, docs, scripts, and configuration files. The project is Apache-2.0.

Files:

  • Cargo.toml
{crates/adaptive/**,python/nemo_relay/adaptive.py,python/nemo_relay/plugin.py,go/nemo_relay/adaptive/**,go/nemo_relay/!(adaptive)/**,**/node/**,**/wasm/**}

📄 CodeRabbit inference engine (.agents/skills/maintain-optimizer/SKILL.md)

Keep adaptive surface in sync across crates/adaptive, shared plugin behavior in core and bindings, Python adaptive/plugin wrappers in python/nemo_relay/adaptive.py and python/nemo_relay/plugin.py, Go adaptive helpers under go/nemo_relay/adaptive plus shared plugin helpers in go/nemo_relay, and Node/WebAssembly adaptive helpers and plugin wrappers

Files:

  • crates/node/package.json
{crates/adaptive/**,python/nemo_relay/plugin.py,go/nemo_relay/**,**/node/**,**/wasm/**}

📄 CodeRabbit inference engine (.agents/skills/maintain-optimizer/SKILL.md)

{crates/adaptive/**,python/nemo_relay/plugin.py,go/nemo_relay/**,**/node/**,**/wasm/**}: Maintain consistent plugin lifecycle across all language bindings (Python, Go, Node/WebAssembly, and Rust)
Keep plugin context surfaces aligned across all language implementations

Files:

  • crates/node/package.json
crates/node/package.json

📄 CodeRabbit inference engine (.agents/skills/maintain-packaging/SKILL.md)

Maintain consistency between Node package metadata in crates/node/package.json and published npm package attributes

Ensure crates/node/package.json npm package version stays aligned with the workspace-root package-lock.json

Files:

  • crates/node/package.json
crates/node/**/*.{js,ts,jsx,tsx,json}

📄 CodeRabbit inference engine (.agents/skills/test-node-binding/SKILL.md)

Format changed Node files with npm run format --workspace=nemo-relay-node

Files:

  • crates/node/package.json
crates/{python,ffi,node,wasm}/**/*

⚙️ CodeRabbit configuration file

crates/{python,ffi,node,wasm}/**/*: Treat binding changes as public API changes. Check for parity with the other language bindings, FFI ownership/lifetime safety,
callback error propagation, stable type conversion, and consistent async/stream semantics.
Flag changes that update one binding without corresponding tests or documentation for the same surface elsewhere.

Files:

  • crates/node/package.json
🪛 LanguageTool
docs/getting-started/quick-start/rust.mdx

[style] ~46-~46: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...learning components. - nemo-relay-cli is a binary crate. Use `cargo install nemo...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

🔇 Additional comments (16)
.github/nightly-alpha-branches.yaml (1)

6-6: LGTM!

Cargo.toml (1)

20-20: LGTM!

Also applies to: 26-30

crates/node/package.json (1)

3-3: LGTM!

justfile (1)

455-461: LGTM!

integrations/coding-agents/claude-code/.claude-plugin/plugin.json (1)

3-3: LGTM!

integrations/coding-agents/codex/.codex-plugin/plugin.json (1)

3-3: LGTM!

integrations/openclaw/package.json (1)

3-3: LGTM!

Also applies to: 66-66

docs/getting-started/installation.mdx (1)

23-23: LGTM!

Also applies to: 43-43, 66-67, 84-84, 99-99

docs/getting-started/quick-start/python.mdx (1)

23-23: LGTM!

docs/getting-started/quick-start/rust.mdx (3)

21-22: LGTM!


30-30: LGTM!


46-46: LGTM!

docs/observability-plugin/configuration.mdx (2)

90-90: LGTM!

Also applies to: 107-107


164-164: LGTM!

Also applies to: 173-173, 222-222, 233-233, 284-284, 294-294

docs/supported-integrations/openclaw-plugin.mdx (2)

44-44: LGTM!


57-57: LGTM!


Walkthrough

This PR performs a coordinated version release, bumping all package versions, workspace dependencies, plugin metadata, and documentation examples from 0.4.0 to 0.5.0 across Rust, Node, Python, and multiple integrations while extending the release branch CI automation.

Changes

Version 0.5.0 Release

Layer / File(s) Summary
Workspace and core package versions
Cargo.toml, crates/node/package.json, justfile
Workspace version and all nemo-relay* dependencies updated to 0.5.0 in Cargo.toml. Node package version bumped to 0.5.0. justfile version helper extended to include nemo-relay-pii-redaction in version validation when bumping workspace versions.
Plugin and integration manifests
integrations/coding-agents/claude-code/.claude-plugin/plugin.json, integrations/coding-agents/codex/.codex-plugin/plugin.json, integrations/openclaw/package.json
Claude Code and Codex plugin versions incremented to 0.5.0. OpenClaw package version and its nemo-relay-node dependency both updated to 0.5.0.
Documentation version references
docs/getting-started/installation.mdx, docs/getting-started/quick-start/python.mdx, docs/getting-started/quick-start/rust.mdx, docs/observability-plugin/configuration.mdx, docs/supported-integrations/openclaw-plugin.mdx
Installation and quick-start guides updated to reference version 0.5.0 across cargo install, uv add, and cargo add commands. Observability plugin configuration examples show service_version = "0.5.0" for opentelemetry and openinference in plugins.toml and per-language (Python, Node.js, Rust) snippets. OpenClaw plugin installation commands reference 0.5.0.
CI workflow configuration
.github/nightly-alpha-branches.yaml
Nightly-alpha branch list extended to include release/0.4 alongside existing main branch.

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed Title follows Conventional Commits format (type: subject) and accurately describes the main change—preparing the 0.4 release freeze and bumping main to 0.5.0.
Description check ✅ Passed Description fully addresses the template with complete Overview, Details, reviewer guidance, and validation steps; all required sections are present and substantive.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

Copy link
Copy Markdown

@willkill07 willkill07 self-assigned this Jun 11, 2026
@willkill07 willkill07 added this to the 0.5 milestone Jun 11, 2026
@afourniernv

Copy link
Copy Markdown
Collaborator

LGTM

@willkill07 willkill07 merged commit 2a85421 into NVIDIA:main Jun 11, 2026
71 of 72 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Maintenance CI or Build or general repository maintenance size:S PR is small

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants