Skip to content

Forward-merge release/0.5 into main#385

Merged
willkill07 merged 5 commits into
NVIDIA:mainfrom
willkill07:main-merge-release/0.5
Jul 8, 2026
Merged

Forward-merge release/0.5 into main#385
willkill07 merged 5 commits into
NVIDIA:mainfrom
willkill07:main-merge-release/0.5

Conversation

@willkill07

@willkill07 willkill07 commented Jul 8, 2026

Copy link
Copy Markdown
Member

Overview

Forward-merge the latest release/0.5 commits into main with branch history preserved. This manual forward merge addresses the conflict reported on #380.

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

Details

  • Start from the current main head.
  • Merge the current release/0.5 head with a signed, two-parent merge commit.
  • Preserve the release branch commit hashes so the original forward-merger PR can complete automatically.

Where should the reviewer start?

Review merge commit c4faa2ef, especially its two parents: e31ba9eb from main and 0486d88b from release/0.5.

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

Validation

  • just docs
  • just docs-linkcheck
  • uv run pre-commit run --all-files
  • git diff --check upstream/main..HEAD

The docs checks passed with only the existing FDR 403 warning for the optional published-redirect comparison.

Summary by CodeRabbit

  • New Features

    • Added new guidance for configuring plugins, including discoverable plugins and model pricing.
    • Expanded plugin-building docs with new native, Rust, Python, and gRPC worker workflows.
    • Introduced updated release notes content for NeMo Relay 0.5.
  • Bug Fixes

    • Clarified observability and plugin configuration behavior across runtime examples.
    • Updated guidance for plugin lifecycle, validation, and cleanup to reduce setup issues.
  • Documentation

    • Reorganized docs navigation and refreshed many links and page descriptions.
    • Added release-note validation tooling and updated onboarding, troubleshooting, and integration pages.

willkill07 and others added 5 commits July 7, 2026 18:45
#### Overview

Reorganize and expand NeMo Relay plugin documentation, including built-in component configuration and all four plugin authoring paths.

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

#### Details

- Group built-in component configuration under `Configure Plugins` and add configuration guides for model pricing, discoverable plugins, and component-specific settings.
- Organize plugin authoring into language binding, native dynamic, and Rust/Python gRPC worker paths.
- Add standalone examples, runtime discovery guidance, lifecycle cleanup, compatibility links, and backward-compatible configuration redirects.
- Update navigation and entry-point documentation for the new hierarchy.

#### Where should the reviewer start?

Start with `docs/build-plugins/about.mdx`, `docs/configure-plugins/about.mdx`, and `fern/docs.yml`.

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

- Closes RELAY-317
- Closes RELAY-320

#### Validation

- `just docs`
- `just docs-linkcheck`
- `uv run pre-commit run lychee`
- Python, Node.js, and Rust documentation-fence syntax checks


## Summary by CodeRabbit

* **Documentation**
  * Expanded and reorganized plugin documentation: Observability (ATOF/ATIF/exporters), Adaptive, NeMo Guardrails, PII redaction, and Model pricing.
  * Added new guides for discoverable plugins and dynamic plugin authorship, including Native Dynamic and gRPC Worker (protocol + Python/Rust examples).
  * Updated lifecycle, validation/initialization/teardown walkthroughs, and clarified semantics around exporters and pricing; removed an older “code examples” page.

* **Chores**
  * Refreshed documentation navigation and standardized internal link paths, including new redirects to preserve older URLs.

Authors:
  - Will Killian (https://github.com/willkill07)

Approvers:
  - Bryan Bednarski (https://github.com/bbednarski9)
  - https://github.com/lvojtku

URL: NVIDIA#361
#### Overview

Update the documentation-site release notes for NVIDIA NeMo Relay 0.5 and add a maintainer skill that gathers release evidence from Git history.

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

#### Details

- Replace the stale 0.4 release-note content with the 0.5 compatibility migrations, dynamic plugin capabilities, CLI diagnostics, and runtime and observability updates.
- Preserve the complete fixed-item history recorded in the 0.3 and 0.4 release-note pages under release-labelled sections.
- Add `draft-release-notes`, including a read-only Git evidence collector that compares release-note trees and groups commits for maintainer review.

#### Where should the reviewer start?

Start with `docs/about-nemo-relay/release-notes/known-issues.mdx` for the complete prior-release fix history, then review `.agents/skills/draft-release-notes/SKILL.md` and its evidence collector.

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

- Relates to: none


## Summary by CodeRabbit

* **Documentation**
  * Updated NeMo Relay release notes from **0.4** to **0.5**, including highlights, release scope/capabilities, and compatibility/migration changes.
  * Refreshed **known issues** and “Fixed in” notes for NeMo Relay **0.5**, plus reorganized prior-release sections.
* **New Features**
  * Added a guided **Draft Release Notes** workflow to standardize evidence-based authoring, claim validation, and targeted MDX updates.
  * Introduced an evidence-collection helper that summarizes Git/doc changes between release references for use during drafting and review.

Authors:
  - Will Killian (https://github.com/willkill07)

Approvers:
  - Bryan Bednarski (https://github.com/bbednarski9)
  - https://github.com/lvojtku

URL: NVIDIA#362
#### Overview

Generate complete API references for published NeMo Relay Rust crates and Python packages.

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

#### Details

- Include the published types, native plugin, worker protocol, and worker SDK crates in Rust reference generation.
- Generate package-scoped Python references for both `nemo-relay` and `nemo-relay-plugin`; the latter renders its public worker SDK symbols.
- Redirect the legacy PII Python-reference URL to its package-scoped location.

#### Where should the reviewer start?

Start with `scripts/docs/generate_python_library_reference.py` and `scripts/docs/generate_rust_library_reference.py`, which declare the generated package and crate surfaces.

Validation: `just docs`; `uv run pre-commit run --all-files`.

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

- Relates to: none

## Summary by CodeRabbit

* **New Features**
  * Enhanced the Python API reference generator to support multiple packages with package-aware URLs, navigation, and landing pages.
  * Expanded the Rust API reference generation to cover additional NeMo Relay crates.
* **Documentation**
  * Updated documentation redirect rules, including restoration of the release-notes “related topics” redirect and added new generated API reference redirects, plus build plugin guide and CLI “about” redirects.
  * Updated the “Plugin Configuration Files” documentation route to the new path.
* **Bug Fixes**
  * Fixed legacy documentation redirects (including the `pii-redaction` destination).

Signed-off-by: Will Killian <wkillian@nvidia.com>
#### Overview

Update documentation CODEOWNERS entries so NAT developers are requested alongside technical writers.

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

#### Details

- Add `@nvidia/NAT-developers` to the `docs/` and `fern/` ownership rules.
- Preserve the existing technical-writer reviewer on both rules.

#### Where should the reviewer start?

Review `.github/CODEOWNERS`; it is the only changed file.

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

- Closes RELAY-444



## Summary by CodeRabbit

* **Chores**
  * Updated documentation ownership rules for repo docs-related paths.
  * Added an additional owner for `docs/` and `fern/` to broaden review coverage.

Authors:
  - Will Killian (https://github.com/willkill07)

Approvers:
  - Eric Evans II (https://github.com/ericevans-nv)

URL: NVIDIA#384
Signed-off-by: Will Killian <wkillian@nvidia.com>
@willkill07 willkill07 requested review from a team and lvojtku as code owners July 8, 2026 14:23
@github-actions github-actions Bot added size:XXL PR is very large Maintenance CI or Build or general repository maintenance lang:python PR changes/introduces Python code labels Jul 8, 2026
@coderabbitai

coderabbitai Bot commented Jul 8, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

This PR reorganizes NeMo Relay documentation into a new "Configure Plugins" section and restructured "Build Plugins" (including new dynamic-plugins/native-dynamic/grpc-worker guides), updates release notes to version 0.5, retargets many cross-document links, updates navigation and redirects, adds a release-notes drafting skill/script, and updates doc-generation scripts and CODEOWNERS.

Changes

Documentation Restructure

Layer / File(s) Summary
Release-notes drafting skill and evidence script
.agents/skills/draft-release-notes/SKILL.md, .agents/skills/draft-release-notes/scripts/collect_release_evidence.py, .github/CODEOWNERS
Adds a workflow skill doc and a Git-evidence CLI script for drafting release notes; expands docs/fern CODEOWNERS to include the NAT-developers team.
0.5 release notes content
docs/about-nemo-relay/release-notes/{highlights,index,known-issues}.mdx, fern/docs.yml
Replaces 0.4 release-notes content with NeMo Relay 0.5 highlights, compatibility notes, scope, and known/fixed issues; adds related redirects.
Configure Plugins hub and shared docs
docs/configure-plugins/{about,model-pricing,discoverable-plugins,plugin-configuration-files}.mdx, docs/about-nemo-relay/concepts/{plugins,subscribers}.mdx, fern/docs.yml
Adds new landing/config pages for Configure Plugins and updates plugin/subscriber concept docs to reference the new component structure and links.
Adaptive plugin configuration docs
docs/configure-plugins/adaptive/{about,acg,adaptive-hints,configuration}.mdx
Refreshes Adaptive plugin docs with updated lifecycle explanations and async Python/Node.js/Rust code examples.
Observability plugin configuration docs
docs/configure-plugins/observability/{about,configuration,atof,atif,opentelemetry,openinference}.mdx
Updates observability docs with new subscriber-naming scheme, remote storage options, failure-behavior tables, and refreshed lifecycle examples.
Guardrails and PII Redaction configuration docs
docs/configure-plugins/nemo-guardrails/{about,configuration}.mdx, docs/configure-plugins/pii-redaction/{about,configuration}.mdx
Updates backend-mode tables, decision-rule guidance, and settings documentation for Guardrails and PII Redaction.
Build Plugins restructuring
docs/build-plugins/about.mdx, docs/build-plugins/language-binding/*, docs/build-plugins/dynamic-plugins/**, removed docs/build-plugins/{code-examples,register-behavior}.mdx
Rewrites Build Plugins guides, moves shared behaviors to language-binding pages, and adds new native-dynamic/gRPC-worker/discoverable-plugin documentation.
Navigation and redirects
docs/index.yml, fern/docs.yml
Reorganizes sidebar into nested Configure Plugins/Build Plugins/Dynamic Plugins sections and adds redirect rules for moved pages.
Cross-doc link retargeting
README.md, docs/about-nemo-relay/*, docs/getting-started/*, docs/instrument-applications/*, docs/integrate-into-frameworks/*, docs/nemo-relay-cli/*, docs/reference/*, docs/resources/*, docs/supported-integrations/*, docs/contribute/*
Updates internal links and minor wording across many pages to point to new configure-plugins/build-plugins routes.

Estimated code review effort: 3 (Moderate) | ~30 minutes

API Reference Generation Scripts

Layer / File(s) Summary
Multi-package Python/Rust reference generation
scripts/docs/generate_python_library_reference.py, scripts/docs/generate_rust_library_reference.py
Refactors Python doc generator to support multiple packages (nemo-relay, nemo-relay-plugin) with package-aware naming/URLs, and expands the Rust CRATES list used by cargo doc generation.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

  • NVIDIA/NeMo-Relay#362: Adds the same draft-release-notes skill and collect_release_evidence.py script, and updates the same 0.5 release-notes MDX pages.

Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error)

Check name Status Explanation Resolution
Title check ❌ Error The title is related to the merge, but it does not follow the required Conventional Commits format. Rewrite as chore(merge): forward-merge release/0.5 into main or another valid Conventional Commit subject under 72 chars.
✅ Passed checks (4 passed)
Check name Status Explanation
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.
Description check ✅ Passed The description matches the template well, with Overview, Details, reviewer start, related issue, and validation sections completed.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@willkill07 willkill07 changed the title chore: forward-merge release/0.5 into main Forward-merge release/0.5 into main Jul 8, 2026
@willkill07 willkill07 removed lang:python PR changes/introduces Python code size:XXL PR is very large Maintenance CI or Build or general repository maintenance labels Jul 8, 2026
@github-actions github-actions Bot added size:XXL PR is very large lang:python PR changes/introduces Python code labels Jul 8, 2026
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 11

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
docs/configure-plugins/observability/atif.mdx (1)

128-193: 📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win

Heading nesting places S3-specific field tables under "Multiple Destinations."

#### Connection Fields and #### Secret Credential Fields (both describing S3-specific fields like bucket, access_key_id, secret_access_key_var) immediately follow ### Multiple Destinations, so they render as children of that section rather than of ### S3-Compatible Storage where they topically belong. A reader could mistakenly think these fields only apply to multi-destination setups.

♻️ Suggested restructuring

Move the #### Connection Fields and #### Secret Credential Fields subsections to directly follow ### S3-Compatible Storage (before ### HTTP Endpoint Storage), so their heading hierarchy correctly reflects that they describe S3-Compatible Storage fields, not Multiple Destinations fields.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/configure-plugins/observability/atif.mdx` around lines 128 - 193, The
S3-specific subsections are nested under the wrong parent heading in the ATIF
docs, making `Connection Fields` and `Secret Credential Fields` appear as part
of `Multiple Destinations` instead of `S3-Compatible Storage`. Move those two
`####` sections so they sit directly under the `### S3-Compatible Storage`
section, before the `### HTTP Endpoint Storage` section, and keep their content
unchanged. Use the existing headings `Multiple Destinations`, `Connection
Fields`, and `Secret Credential Fields` to relocate the blocks without altering
the field descriptions.
docs/configure-plugins/pii-redaction/configuration.mdx (1)

292-322: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Bold pseudo-headings break the document's heading hierarchy.

**Common PII**, **Structured Secrets**, and **Cloud Credentials** are used as visual sub-sections under ## Detector Presets, but elsewhere in this same page (### Current Status, ### Requirements, ### CLI Editor Support) subsections use real Markdown headings. Bold text isn't picked up by TOC/anchor navigation or screen readers the way a heading is.

As per coding guidelines, "Flag heading levels that skip hierarchy in rendered documentation for accessibility."

♻️ Proposed fix
-**Common PII**
+### Common PII

(repeat for Structured Secrets and Cloud Credentials)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/configure-plugins/pii-redaction/configuration.mdx` around lines 292 -
322, The pseudo-headings under Detector Presets are plain bold text instead of
real Markdown headings, which breaks the document hierarchy and accessibility.
Update the section labels in this MDX page so Common PII, Structured Secrets,
and Cloud Credentials use proper heading syntax consistent with the existing ###
subsections like Current Status and Requirements. Keep the detector lists
underneath each heading unchanged and ensure the heading levels fit naturally
under ## Detector Presets.

Source: Coding guidelines

docs/configure-plugins/adaptive/configuration.mdx (1)

111-176: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Python and Node.js examples in this section skip the initialize/clear lifecycle shown in the Rust example right below them.

The Rust snippet (lines 219-229) does register → validate → initialize → run work → clear_plugin_configuration()Ok(()). The Python snippet (line 142) just does active = asyncio.run(nemo_relay.plugin.initialize(plugin_config)) with no try/finally and no nemo_relay.plugin.clear(), and the Node snippet (lines 172-175) never calls plugin.clear() either. This is also inconsistent with the more specific acg.mdx/adaptive-hints.mdx pages, which show the full lifecycle (including cleanup) for all three languages. Readers copying the Python/Node examples here will miss teardown.

♻️ Suggested Python fix to match the Rust/other-page lifecycle
-active = asyncio.run(nemo_relay.plugin.initialize(plugin_config))
+async def main():
+    await nemo_relay.plugin.initialize(plugin_config)
+    try:
+        # Run instrumented application work here.
+        pass
+    finally:
+        nemo_relay.plugin.clear()
+
+asyncio.run(main())
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/configure-plugins/adaptive/configuration.mdx` around lines 111 - 176,
The Python and Node.js examples in this section omit the full
register/validate/initialize/clear lifecycle shown in the Rust example and the
related adaptive docs. Update the Python snippet around
adaptive_config/plugin.initialize and the Node.js snippet around
plugin.validate/plugin.initialize to include cleanup via the matching clear call
in a try/finally-style flow so readers see how to tear down the plugin after
use. Keep the examples aligned with the lifecycle used in the Rust snippet and
the other adaptive pages, using the existing adaptiveConfig/pluginConfig and
plugin.initialize/plugin.clear symbols.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.agents/skills/draft-release-notes/scripts/collect_release_evidence.py:
- Around line 43-45: The resolve_ref helper is swallowing useful failure context
because run_git is called with rev-parse --verify --quiet, which can leave both
stdout and stderr empty on invalid refs. Update resolve_ref to detect this case
and raise a clearer error message that includes the ref being resolved and a
helpful hint, instead of relying on run_git’s generic RuntimeError. Keep the fix
localized to resolve_ref and, if needed, the run_git error handling path so
failures from git rev-parse remain informative.

In @.github/CODEOWNERS:
- Around line 10-12: Update the CODEOWNERS entries for the docs/ and fern/ paths
to use the lowercase team slug `@nvidia/nat-developers` instead of the mixed-case
`@nvidia/NAT-developers`, matching the canonical owner reference already used
elsewhere in CODEOWNERS so ownership assignment works reliably.

In `@docs/build-plugins/about.mdx`:
- Around line 61-65: Reorder the “Build a language binding plugin” checklist in
about.mdx so it matches the actual setup flow. Update the list referenced by the
build-plugins/language-binding section to place “Design Plugin Configuration”
before “Register Plugin Behavior,” then keep validation and code examples in the
correct order.

In `@docs/build-plugins/dynamic-plugins/about.mdx`:
- Around line 23-51: The manifest example in the dynamic plugins docs should be
labeled as macOS-specific because the shown shared-library path uses the .dylib
suffix. Update the surrounding text near the manifest example to clearly
indicate it applies only to macOS, and point readers to the Linux/Windows
variants elsewhere in the docs so they don’t copy an invalid path. Use the
manifest example section in about.mdx as the anchor for the wording change.

In `@docs/build-plugins/dynamic-plugins/native-dynamic/about.mdx`:
- Around line 23-51: The shared-library manifest example in the native dynamic
plugin docs is not platform-neutral because it hard-codes a .dylib path, so
update the example to be explicitly macOS-specific and make sure the surrounding
explanation in the about.mdx section points readers to the correct Linux and
Windows library extensions. Keep the manifest snippet and its artifact/library
fields aligned with the platform note so users copy the right path for their OS.

In
`@docs/build-plugins/dynamic-plugins/native-dynamic/rust-native-plugin-example.mdx`:
- Around line 93-95: The platform library filename guidance is incomplete
because it mentions only the extension suffixes instead of the full Cargo
artifact name. Update the text in the Rust native plugin example to tell readers
to use the complete target filename produced by Cargo for each platform, and
ensure the placeholder replacement guidance in the manifest fields reflects the
full artifact filename rather than just .dylib, .so, or .dll.

In `@docs/build-plugins/language-binding/register-behavior.mdx`:
- Around line 175-204: The register() implementation for the inject-header
plugin is masking invalid config by defaulting header_name and value to x-plugin
and enabled even though validate() already requires those fields. Remove the
fallback behavior in register() and read the validated config values directly so
PluginRegistrationContext only registers with explicit user-provided header_name
and value, keeping the behavior consistent with the contract.

In `@docs/configure-plugins/adaptive/acg.mdx`:
- Around line 163-173: The Rust example currently panics on plugin validation by
using assert! in the main flow instead of returning an error like the Python and
Node.js examples. Update the example around validate_plugin_config,
initialize_plugins, and main so validation failures are propagated through the
existing Result<(), Box<dyn std::error::Error>> return path rather than
triggering a panic, keeping the Rust snippet consistent with the other language
samples.

In `@docs/configure-plugins/observability/atof.mdx`:
- Around line 321-346: The “Common Configuration and Runtime Issues” section is
missing the `endpoints[i].field_name_policy` validation failure described
earlier in this doc. Update the issue list near the observability configuration
examples to include this failure mode alongside the other endpoint validation
errors, using the same terminology as the `AtofExporterConfig`/endpoint
validation docs so readers can find it consistently.

In `@docs/configure-plugins/plugin-configuration-files.mdx`:
- Around line 323-337: In the paragraph describing explicit defaults and
overrides, replace the term “readers” with the same user-facing role used
elsewhere in the doc, such as “users” or “operators,” so the sentence matches
the surrounding configuration-editing terminology. Update the wording in the
section that mentions NeMo Guardrails, PII Redaction, and dynamic-plugin fields,
keeping the rest of the explanation unchanged and consistent with the existing
config-model language.

In `@fern/docs.yml`:
- Around line 75-80: The wildcard redirect under the build plugin guides is
sending multiple old URLs into the language-binding configure namespace instead
of staying within the matching build-plugins content tree. Update the redirects
in docs.yml so the catch-all for build-plugins maps to the corresponding
docs/build-plugins subtree, or split the redirect rules by section; use the
existing basic-guide and :slug* entries as the places to adjust the target
destinations.

---

Outside diff comments:
In `@docs/configure-plugins/adaptive/configuration.mdx`:
- Around line 111-176: The Python and Node.js examples in this section omit the
full register/validate/initialize/clear lifecycle shown in the Rust example and
the related adaptive docs. Update the Python snippet around
adaptive_config/plugin.initialize and the Node.js snippet around
plugin.validate/plugin.initialize to include cleanup via the matching clear call
in a try/finally-style flow so readers see how to tear down the plugin after
use. Keep the examples aligned with the lifecycle used in the Rust snippet and
the other adaptive pages, using the existing adaptiveConfig/pluginConfig and
plugin.initialize/plugin.clear symbols.

In `@docs/configure-plugins/observability/atif.mdx`:
- Around line 128-193: The S3-specific subsections are nested under the wrong
parent heading in the ATIF docs, making `Connection Fields` and `Secret
Credential Fields` appear as part of `Multiple Destinations` instead of
`S3-Compatible Storage`. Move those two `####` sections so they sit directly
under the `### S3-Compatible Storage` section, before the `### HTTP Endpoint
Storage` section, and keep their content unchanged. Use the existing headings
`Multiple Destinations`, `Connection Fields`, and `Secret Credential Fields` to
relocate the blocks without altering the field descriptions.

In `@docs/configure-plugins/pii-redaction/configuration.mdx`:
- Around line 292-322: The pseudo-headings under Detector Presets are plain bold
text instead of real Markdown headings, which breaks the document hierarchy and
accessibility. Update the section labels in this MDX page so Common PII,
Structured Secrets, and Cloud Credentials use proper heading syntax consistent
with the existing ### subsections like Current Status and Requirements. Keep the
detector lists underneath each heading unchanged and ensure the heading levels
fit naturally under ## Detector Presets.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: c30792e9-2e98-4196-9b01-944e035100a2

📥 Commits

Reviewing files that changed from the base of the PR and between e31ba9e and c4faa2e.

📒 Files selected for processing (72)
  • .agents/skills/draft-release-notes/SKILL.md
  • .agents/skills/draft-release-notes/scripts/collect_release_evidence.py
  • .github/CODEOWNERS
  • README.md
  • docs/about-nemo-relay/architecture.mdx
  • docs/about-nemo-relay/concepts/plugins.mdx
  • docs/about-nemo-relay/concepts/subscribers.mdx
  • docs/about-nemo-relay/ecosystem.mdx
  • docs/about-nemo-relay/overview.mdx
  • docs/about-nemo-relay/release-notes/highlights.mdx
  • docs/about-nemo-relay/release-notes/index.mdx
  • docs/about-nemo-relay/release-notes/known-issues.mdx
  • docs/build-plugins/about.mdx
  • docs/build-plugins/code-examples.mdx
  • docs/build-plugins/dynamic-plugins/about.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/about.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/grpc-worker-protocol.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/python/about.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/rust/about.mdx
  • docs/build-plugins/dynamic-plugins/native-dynamic/about.mdx
  • docs/build-plugins/dynamic-plugins/native-dynamic/rust-native-plugin-example.mdx
  • docs/build-plugins/language-binding/about.mdx
  • docs/build-plugins/language-binding/advanced-configuration.mdx
  • docs/build-plugins/language-binding/code-examples.mdx
  • docs/build-plugins/language-binding/register-behavior.mdx
  • docs/build-plugins/language-binding/validate-configuration.mdx
  • docs/build-plugins/register-behavior.mdx
  • docs/configure-plugins/about.mdx
  • docs/configure-plugins/adaptive/about.mdx
  • docs/configure-plugins/adaptive/acg.mdx
  • docs/configure-plugins/adaptive/adaptive-hints.mdx
  • docs/configure-plugins/adaptive/configuration.mdx
  • docs/configure-plugins/discoverable-plugins.mdx
  • docs/configure-plugins/model-pricing.mdx
  • docs/configure-plugins/nemo-guardrails/about.mdx
  • docs/configure-plugins/nemo-guardrails/configuration.mdx
  • docs/configure-plugins/observability/about.mdx
  • docs/configure-plugins/observability/atif.mdx
  • docs/configure-plugins/observability/atof.mdx
  • docs/configure-plugins/observability/configuration.mdx
  • docs/configure-plugins/observability/openinference.mdx
  • docs/configure-plugins/observability/opentelemetry.mdx
  • docs/configure-plugins/pii-redaction/about.mdx
  • docs/configure-plugins/pii-redaction/configuration.mdx
  • docs/configure-plugins/plugin-configuration-files.mdx
  • docs/contribute/runtime-contract-docs.mdx
  • docs/getting-started/agent-runtime-primer.mdx
  • docs/getting-started/configuration.mdx
  • docs/getting-started/installation.mdx
  • docs/getting-started/prerequisites.mdx
  • docs/getting-started/quick-start/index.mdx
  • docs/index.yml
  • docs/instrument-applications/instrument-llm-call.mdx
  • docs/instrument-applications/instrument-tool-call.mdx
  • docs/integrate-into-frameworks/provider-response-codecs.mdx
  • docs/integrate-into-frameworks/wrap-tool-calls.mdx
  • docs/nemo-relay-cli/basic-usage.mdx
  • docs/nemo-relay-cli/claude-code.mdx
  • docs/nemo-relay-cli/hermes.mdx
  • docs/nemo-relay-cli/plugin-installation.mdx
  • docs/reference/llm-request-intercept-outcomes.mdx
  • docs/reference/tool-execution-intercept-outcomes.mdx
  • docs/resources/support-and-faqs.mdx
  • docs/resources/troubleshooting/index.mdx
  • docs/resources/troubleshooting/trace-incident-runbook.mdx
  • docs/supported-integrations/deepagents.mdx
  • docs/supported-integrations/langchain.mdx
  • docs/supported-integrations/langgraph.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • fern/docs.yml
  • scripts/docs/generate_python_library_reference.py
  • scripts/docs/generate_rust_library_reference.py
💤 Files with no reviewable changes (2)
  • docs/build-plugins/code-examples.mdx
  • docs/build-plugins/register-behavior.mdx
📜 Review details
⏰ Context from checks skipped due to timeout. (2)
  • GitHub Check: Check / Run
  • GitHub Check: Preview docs
🧰 Additional context used
📓 Path-based instructions (26)
.agents/skills/**

⚙️ CodeRabbit configuration file

.agents/skills/**:

Maintainer Skills

This directory is the maintainer-only skill set for developing NeMo Relay
itself.

Use these skills for repository work such as:

  • Changing core or binding APIs
  • Maintaining integrations, packaging, CI, and docs
  • Extending middleware or observability internals
  • Validating library changes across bindings

Consumer-facing NeMo Relay usage skills live in the top-level skills/
directory so they can be exported separately for integrators and end users.

Files:

  • .agents/skills/draft-release-notes/SKILL.md
  • .agents/skills/draft-release-notes/scripts/collect_release_evidence.py
{.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/CODEOWNERS
  • scripts/docs/generate_rust_library_reference.py
  • scripts/docs/generate_python_library_reference.py
**/*.mdx

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/SKILL.md)

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

For documentation-site changes, run the docs build/validation flow (just docs or ./scripts/build-docs.sh html) so generated Fern API reference pages are refreshed before validation.

In MDX files, top-of-file comments must use JSX comment delimiters {/* ... */} for SPDX headers; do not use HTML comments

Files:

  • docs/configure-plugins/adaptive/about.mdx
  • docs/getting-started/installation.mdx
  • docs/nemo-relay-cli/hermes.mdx
  • docs/nemo-relay-cli/claude-code.mdx
  • docs/supported-integrations/langchain.mdx
  • docs/about-nemo-relay/architecture.mdx
  • docs/getting-started/agent-runtime-primer.mdx
  • docs/configure-plugins/about.mdx
  • docs/instrument-applications/instrument-llm-call.mdx
  • docs/configure-plugins/discoverable-plugins.mdx
  • docs/about-nemo-relay/release-notes/index.mdx
  • docs/instrument-applications/instrument-tool-call.mdx
  • docs/getting-started/prerequisites.mdx
  • docs/about-nemo-relay/ecosystem.mdx
  • docs/build-plugins/dynamic-plugins/about.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/about.mdx
  • docs/nemo-relay-cli/basic-usage.mdx
  • docs/about-nemo-relay/release-notes/highlights.mdx
  • docs/build-plugins/dynamic-plugins/native-dynamic/about.mdx
  • docs/integrate-into-frameworks/wrap-tool-calls.mdx
  • docs/getting-started/quick-start/index.mdx
  • docs/build-plugins/dynamic-plugins/native-dynamic/rust-native-plugin-example.mdx
  • docs/reference/tool-execution-intercept-outcomes.mdx
  • docs/configure-plugins/model-pricing.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/grpc-worker-protocol.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/rust/about.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/python/about.mdx
  • docs/getting-started/configuration.mdx
  • docs/supported-integrations/deepagents.mdx
  • docs/nemo-relay-cli/plugin-installation.mdx
  • docs/about-nemo-relay/overview.mdx
  • docs/supported-integrations/langgraph.mdx
  • docs/configure-plugins/pii-redaction/about.mdx
  • docs/build-plugins/language-binding/register-behavior.mdx
  • docs/configure-plugins/observability/about.mdx
  • docs/resources/troubleshooting/trace-incident-runbook.mdx
  • docs/build-plugins/language-binding/code-examples.mdx
  • docs/about-nemo-relay/release-notes/known-issues.mdx
  • docs/about-nemo-relay/concepts/subscribers.mdx
  • docs/configure-plugins/nemo-guardrails/about.mdx
  • docs/resources/support-and-faqs.mdx
  • docs/build-plugins/about.mdx
  • docs/build-plugins/language-binding/about.mdx
  • docs/about-nemo-relay/concepts/plugins.mdx
  • docs/resources/troubleshooting/index.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • docs/contribute/runtime-contract-docs.mdx
  • docs/configure-plugins/adaptive/adaptive-hints.mdx
  • docs/build-plugins/language-binding/advanced-configuration.mdx
  • docs/configure-plugins/nemo-guardrails/configuration.mdx
  • docs/configure-plugins/pii-redaction/configuration.mdx
  • docs/configure-plugins/observability/opentelemetry.mdx
  • docs/build-plugins/language-binding/validate-configuration.mdx
  • docs/configure-plugins/observability/atof.mdx
  • docs/configure-plugins/observability/configuration.mdx
  • docs/configure-plugins/observability/atif.mdx
  • docs/configure-plugins/plugin-configuration-files.mdx
  • docs/configure-plugins/observability/openinference.mdx
  • docs/configure-plugins/adaptive/configuration.mdx
  • docs/integrate-into-frameworks/provider-response-codecs.mdx
  • docs/configure-plugins/adaptive/acg.mdx
  • docs/reference/llm-request-intercept-outcomes.mdx
**/*.{rs,py,go,js,ts,jsx,tsx,md,mdx,toml,yaml,yml,html}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

All source files must include an SPDX license header using the comment syntax appropriate for the file type, with SPDX-FileCopyrightText for 2026 NVIDIA CORPORATION & AFFILIATES and SPDX-License-Identifier: Apache-2.0.

Files:

  • docs/configure-plugins/adaptive/about.mdx
  • docs/getting-started/installation.mdx
  • docs/nemo-relay-cli/hermes.mdx
  • docs/nemo-relay-cli/claude-code.mdx
  • docs/supported-integrations/langchain.mdx
  • docs/about-nemo-relay/architecture.mdx
  • docs/getting-started/agent-runtime-primer.mdx
  • docs/configure-plugins/about.mdx
  • docs/instrument-applications/instrument-llm-call.mdx
  • docs/configure-plugins/discoverable-plugins.mdx
  • docs/about-nemo-relay/release-notes/index.mdx
  • docs/instrument-applications/instrument-tool-call.mdx
  • docs/getting-started/prerequisites.mdx
  • docs/about-nemo-relay/ecosystem.mdx
  • docs/build-plugins/dynamic-plugins/about.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/about.mdx
  • docs/nemo-relay-cli/basic-usage.mdx
  • docs/about-nemo-relay/release-notes/highlights.mdx
  • docs/build-plugins/dynamic-plugins/native-dynamic/about.mdx
  • docs/integrate-into-frameworks/wrap-tool-calls.mdx
  • docs/getting-started/quick-start/index.mdx
  • docs/build-plugins/dynamic-plugins/native-dynamic/rust-native-plugin-example.mdx
  • docs/reference/tool-execution-intercept-outcomes.mdx
  • scripts/docs/generate_rust_library_reference.py
  • docs/configure-plugins/model-pricing.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/grpc-worker-protocol.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/rust/about.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/python/about.mdx
  • docs/getting-started/configuration.mdx
  • docs/supported-integrations/deepagents.mdx
  • docs/nemo-relay-cli/plugin-installation.mdx
  • docs/about-nemo-relay/overview.mdx
  • docs/supported-integrations/langgraph.mdx
  • docs/configure-plugins/pii-redaction/about.mdx
  • docs/build-plugins/language-binding/register-behavior.mdx
  • docs/configure-plugins/observability/about.mdx
  • docs/resources/troubleshooting/trace-incident-runbook.mdx
  • docs/build-plugins/language-binding/code-examples.mdx
  • docs/about-nemo-relay/release-notes/known-issues.mdx
  • docs/index.yml
  • docs/about-nemo-relay/concepts/subscribers.mdx
  • docs/configure-plugins/nemo-guardrails/about.mdx
  • docs/resources/support-and-faqs.mdx
  • fern/docs.yml
  • docs/build-plugins/about.mdx
  • docs/build-plugins/language-binding/about.mdx
  • docs/about-nemo-relay/concepts/plugins.mdx
  • docs/resources/troubleshooting/index.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • docs/contribute/runtime-contract-docs.mdx
  • docs/configure-plugins/adaptive/adaptive-hints.mdx
  • docs/build-plugins/language-binding/advanced-configuration.mdx
  • docs/configure-plugins/nemo-guardrails/configuration.mdx
  • docs/configure-plugins/pii-redaction/configuration.mdx
  • README.md
  • docs/configure-plugins/observability/opentelemetry.mdx
  • docs/build-plugins/language-binding/validate-configuration.mdx
  • docs/configure-plugins/observability/atof.mdx
  • docs/configure-plugins/observability/configuration.mdx
  • docs/configure-plugins/observability/atif.mdx
  • docs/configure-plugins/plugin-configuration-files.mdx
  • docs/configure-plugins/observability/openinference.mdx
  • docs/configure-plugins/adaptive/configuration.mdx
  • docs/integrate-into-frameworks/provider-response-codecs.mdx
  • scripts/docs/generate_python_library_reference.py
  • docs/configure-plugins/adaptive/acg.mdx
  • docs/reference/llm-request-intercept-outcomes.mdx
**/*.{rs,py,go,js,ts,md,mdx,toml,yaml,yml,json}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Avoid using SONAR_IGNORE_START / SONAR_IGNORE_END except for documented false positives; keep the ignored block small, add a brief explanatory comment, and call it out in the PR description.

Files:

  • docs/configure-plugins/adaptive/about.mdx
  • docs/getting-started/installation.mdx
  • docs/nemo-relay-cli/hermes.mdx
  • docs/nemo-relay-cli/claude-code.mdx
  • docs/supported-integrations/langchain.mdx
  • docs/about-nemo-relay/architecture.mdx
  • docs/getting-started/agent-runtime-primer.mdx
  • docs/configure-plugins/about.mdx
  • docs/instrument-applications/instrument-llm-call.mdx
  • docs/configure-plugins/discoverable-plugins.mdx
  • docs/about-nemo-relay/release-notes/index.mdx
  • docs/instrument-applications/instrument-tool-call.mdx
  • docs/getting-started/prerequisites.mdx
  • docs/about-nemo-relay/ecosystem.mdx
  • docs/build-plugins/dynamic-plugins/about.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/about.mdx
  • docs/nemo-relay-cli/basic-usage.mdx
  • docs/about-nemo-relay/release-notes/highlights.mdx
  • docs/build-plugins/dynamic-plugins/native-dynamic/about.mdx
  • docs/integrate-into-frameworks/wrap-tool-calls.mdx
  • docs/getting-started/quick-start/index.mdx
  • docs/build-plugins/dynamic-plugins/native-dynamic/rust-native-plugin-example.mdx
  • docs/reference/tool-execution-intercept-outcomes.mdx
  • scripts/docs/generate_rust_library_reference.py
  • docs/configure-plugins/model-pricing.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/grpc-worker-protocol.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/rust/about.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/python/about.mdx
  • docs/getting-started/configuration.mdx
  • docs/supported-integrations/deepagents.mdx
  • docs/nemo-relay-cli/plugin-installation.mdx
  • docs/about-nemo-relay/overview.mdx
  • docs/supported-integrations/langgraph.mdx
  • docs/configure-plugins/pii-redaction/about.mdx
  • docs/build-plugins/language-binding/register-behavior.mdx
  • docs/configure-plugins/observability/about.mdx
  • docs/resources/troubleshooting/trace-incident-runbook.mdx
  • docs/build-plugins/language-binding/code-examples.mdx
  • docs/about-nemo-relay/release-notes/known-issues.mdx
  • docs/index.yml
  • docs/about-nemo-relay/concepts/subscribers.mdx
  • docs/configure-plugins/nemo-guardrails/about.mdx
  • docs/resources/support-and-faqs.mdx
  • fern/docs.yml
  • docs/build-plugins/about.mdx
  • docs/build-plugins/language-binding/about.mdx
  • docs/about-nemo-relay/concepts/plugins.mdx
  • docs/resources/troubleshooting/index.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • docs/contribute/runtime-contract-docs.mdx
  • docs/configure-plugins/adaptive/adaptive-hints.mdx
  • docs/build-plugins/language-binding/advanced-configuration.mdx
  • docs/configure-plugins/nemo-guardrails/configuration.mdx
  • docs/configure-plugins/pii-redaction/configuration.mdx
  • README.md
  • docs/configure-plugins/observability/opentelemetry.mdx
  • docs/build-plugins/language-binding/validate-configuration.mdx
  • docs/configure-plugins/observability/atof.mdx
  • docs/configure-plugins/observability/configuration.mdx
  • docs/configure-plugins/observability/atif.mdx
  • docs/configure-plugins/plugin-configuration-files.mdx
  • docs/configure-plugins/observability/openinference.mdx
  • docs/configure-plugins/adaptive/configuration.mdx
  • docs/integrate-into-frameworks/provider-response-codecs.mdx
  • scripts/docs/generate_python_library_reference.py
  • docs/configure-plugins/adaptive/acg.mdx
  • docs/reference/llm-request-intercept-outcomes.mdx
**/*.{md,mdx}

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

**/*.{md,mdx}: Keep package names, repository references, and build commands current in documentation and examples
Keep stable user-facing wrappers at the scripts/ root in docs and examples; only point at namespaced helper paths when documenting internal maintenance work

Files:

  • docs/configure-plugins/adaptive/about.mdx
  • docs/getting-started/installation.mdx
  • docs/nemo-relay-cli/hermes.mdx
  • docs/nemo-relay-cli/claude-code.mdx
  • docs/supported-integrations/langchain.mdx
  • docs/about-nemo-relay/architecture.mdx
  • docs/getting-started/agent-runtime-primer.mdx
  • docs/configure-plugins/about.mdx
  • docs/instrument-applications/instrument-llm-call.mdx
  • docs/configure-plugins/discoverable-plugins.mdx
  • docs/about-nemo-relay/release-notes/index.mdx
  • docs/instrument-applications/instrument-tool-call.mdx
  • docs/getting-started/prerequisites.mdx
  • docs/about-nemo-relay/ecosystem.mdx
  • docs/build-plugins/dynamic-plugins/about.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/about.mdx
  • docs/nemo-relay-cli/basic-usage.mdx
  • docs/about-nemo-relay/release-notes/highlights.mdx
  • docs/build-plugins/dynamic-plugins/native-dynamic/about.mdx
  • docs/integrate-into-frameworks/wrap-tool-calls.mdx
  • docs/getting-started/quick-start/index.mdx
  • docs/build-plugins/dynamic-plugins/native-dynamic/rust-native-plugin-example.mdx
  • docs/reference/tool-execution-intercept-outcomes.mdx
  • docs/configure-plugins/model-pricing.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/grpc-worker-protocol.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/rust/about.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/python/about.mdx
  • docs/getting-started/configuration.mdx
  • docs/supported-integrations/deepagents.mdx
  • docs/nemo-relay-cli/plugin-installation.mdx
  • docs/about-nemo-relay/overview.mdx
  • docs/supported-integrations/langgraph.mdx
  • docs/configure-plugins/pii-redaction/about.mdx
  • docs/build-plugins/language-binding/register-behavior.mdx
  • docs/configure-plugins/observability/about.mdx
  • docs/resources/troubleshooting/trace-incident-runbook.mdx
  • docs/build-plugins/language-binding/code-examples.mdx
  • docs/about-nemo-relay/release-notes/known-issues.mdx
  • docs/about-nemo-relay/concepts/subscribers.mdx
  • docs/configure-plugins/nemo-guardrails/about.mdx
  • docs/resources/support-and-faqs.mdx
  • docs/build-plugins/about.mdx
  • docs/build-plugins/language-binding/about.mdx
  • docs/about-nemo-relay/concepts/plugins.mdx
  • docs/resources/troubleshooting/index.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • docs/contribute/runtime-contract-docs.mdx
  • docs/configure-plugins/adaptive/adaptive-hints.mdx
  • docs/build-plugins/language-binding/advanced-configuration.mdx
  • docs/configure-plugins/nemo-guardrails/configuration.mdx
  • docs/configure-plugins/pii-redaction/configuration.mdx
  • README.md
  • docs/configure-plugins/observability/opentelemetry.mdx
  • docs/build-plugins/language-binding/validate-configuration.mdx
  • docs/configure-plugins/observability/atof.mdx
  • docs/configure-plugins/observability/configuration.mdx
  • docs/configure-plugins/observability/atif.mdx
  • docs/configure-plugins/plugin-configuration-files.mdx
  • docs/configure-plugins/observability/openinference.mdx
  • docs/configure-plugins/adaptive/configuration.mdx
  • docs/integrate-into-frameworks/provider-response-codecs.mdx
  • docs/configure-plugins/adaptive/acg.mdx
  • docs/reference/llm-request-intercept-outcomes.mdx
{RELEASING.md,docs/**/*.md,docs/**/*.mdx}

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

Keep release-process and release-notes guidance in maintainer-facing docs such as RELEASING.md, not in user-facing docs pages or CHANGELOG.md

Files:

  • docs/configure-plugins/adaptive/about.mdx
  • docs/getting-started/installation.mdx
  • docs/nemo-relay-cli/hermes.mdx
  • docs/nemo-relay-cli/claude-code.mdx
  • docs/supported-integrations/langchain.mdx
  • docs/about-nemo-relay/architecture.mdx
  • docs/getting-started/agent-runtime-primer.mdx
  • docs/configure-plugins/about.mdx
  • docs/instrument-applications/instrument-llm-call.mdx
  • docs/configure-plugins/discoverable-plugins.mdx
  • docs/about-nemo-relay/release-notes/index.mdx
  • docs/instrument-applications/instrument-tool-call.mdx
  • docs/getting-started/prerequisites.mdx
  • docs/about-nemo-relay/ecosystem.mdx
  • docs/build-plugins/dynamic-plugins/about.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/about.mdx
  • docs/nemo-relay-cli/basic-usage.mdx
  • docs/about-nemo-relay/release-notes/highlights.mdx
  • docs/build-plugins/dynamic-plugins/native-dynamic/about.mdx
  • docs/integrate-into-frameworks/wrap-tool-calls.mdx
  • docs/getting-started/quick-start/index.mdx
  • docs/build-plugins/dynamic-plugins/native-dynamic/rust-native-plugin-example.mdx
  • docs/reference/tool-execution-intercept-outcomes.mdx
  • docs/configure-plugins/model-pricing.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/grpc-worker-protocol.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/rust/about.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/python/about.mdx
  • docs/getting-started/configuration.mdx
  • docs/supported-integrations/deepagents.mdx
  • docs/nemo-relay-cli/plugin-installation.mdx
  • docs/about-nemo-relay/overview.mdx
  • docs/supported-integrations/langgraph.mdx
  • docs/configure-plugins/pii-redaction/about.mdx
  • docs/build-plugins/language-binding/register-behavior.mdx
  • docs/configure-plugins/observability/about.mdx
  • docs/resources/troubleshooting/trace-incident-runbook.mdx
  • docs/build-plugins/language-binding/code-examples.mdx
  • docs/about-nemo-relay/release-notes/known-issues.mdx
  • docs/about-nemo-relay/concepts/subscribers.mdx
  • docs/configure-plugins/nemo-guardrails/about.mdx
  • docs/resources/support-and-faqs.mdx
  • docs/build-plugins/about.mdx
  • docs/build-plugins/language-binding/about.mdx
  • docs/about-nemo-relay/concepts/plugins.mdx
  • docs/resources/troubleshooting/index.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • docs/contribute/runtime-contract-docs.mdx
  • docs/configure-plugins/adaptive/adaptive-hints.mdx
  • docs/build-plugins/language-binding/advanced-configuration.mdx
  • docs/configure-plugins/nemo-guardrails/configuration.mdx
  • docs/configure-plugins/pii-redaction/configuration.mdx
  • docs/configure-plugins/observability/opentelemetry.mdx
  • docs/build-plugins/language-binding/validate-configuration.mdx
  • docs/configure-plugins/observability/atof.mdx
  • docs/configure-plugins/observability/configuration.mdx
  • docs/configure-plugins/observability/atif.mdx
  • docs/configure-plugins/plugin-configuration-files.mdx
  • docs/configure-plugins/observability/openinference.mdx
  • docs/configure-plugins/adaptive/configuration.mdx
  • docs/integrate-into-frameworks/provider-response-codecs.mdx
  • docs/configure-plugins/adaptive/acg.mdx
  • docs/reference/llm-request-intercept-outcomes.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 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, integrations, 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
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
skills/       # Published Codex/agent skills for NeMo Relay usage patterns

Prerequisites

Insta...

Files:

  • docs/configure-plugins/adaptive/about.mdx
  • docs/getting-started/installation.mdx
  • docs/nemo-relay-cli/hermes.mdx
  • docs/nemo-relay-cli/claude-code.mdx
  • docs/supported-integrations/langchain.mdx
  • docs/about-nemo-relay/architecture.mdx
  • docs/getting-started/agent-runtime-primer.mdx
  • docs/configure-plugins/about.mdx
  • docs/instrument-applications/instrument-llm-call.mdx
  • docs/configure-plugins/discoverable-plugins.mdx
  • docs/about-nemo-relay/release-notes/index.mdx
  • docs/instrument-applications/instrument-tool-call.mdx
  • docs/getting-started/prerequisites.mdx
  • docs/about-nemo-relay/ecosystem.mdx
  • docs/build-plugins/dynamic-plugins/about.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/about.mdx
  • docs/nemo-relay-cli/basic-usage.mdx
  • docs/about-nemo-relay/release-notes/highlights.mdx
  • docs/build-plugins/dynamic-plugins/native-dynamic/about.mdx
  • docs/integrate-into-frameworks/wrap-tool-calls.mdx
  • docs/getting-started/quick-start/index.mdx
  • docs/build-plugins/dynamic-plugins/native-dynamic/rust-native-plugin-example.mdx
  • docs/reference/tool-execution-intercept-outcomes.mdx
  • scripts/docs/generate_rust_library_reference.py
  • docs/configure-plugins/model-pricing.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/grpc-worker-protocol.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/rust/about.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/python/about.mdx
  • docs/getting-started/configuration.mdx
  • docs/supported-integrations/deepagents.mdx
  • docs/nemo-relay-cli/plugin-installation.mdx
  • docs/about-nemo-relay/overview.mdx
  • docs/supported-integrations/langgraph.mdx
  • docs/configure-plugins/pii-redaction/about.mdx
  • docs/build-plugins/language-binding/register-behavior.mdx
  • docs/configure-plugins/observability/about.mdx
  • docs/resources/troubleshooting/trace-incident-runbook.mdx
  • docs/build-plugins/language-binding/code-examples.mdx
  • docs/about-nemo-relay/release-notes/known-issues.mdx
  • docs/index.yml
  • docs/about-nemo-relay/concepts/subscribers.mdx
  • docs/configure-plugins/nemo-guardrails/about.mdx
  • docs/resources/support-and-faqs.mdx
  • fern/docs.yml
  • docs/build-plugins/about.mdx
  • docs/build-plugins/language-binding/about.mdx
  • docs/about-nemo-relay/concepts/plugins.mdx
  • docs/resources/troubleshooting/index.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • docs/contribute/runtime-contract-docs.mdx
  • docs/configure-plugins/adaptive/adaptive-hints.mdx
  • docs/build-plugins/language-binding/advanced-configuration.mdx
  • docs/configure-plugins/nemo-guardrails/configuration.mdx
  • docs/configure-plugins/pii-redaction/configuration.mdx
  • README.md
  • docs/configure-plugins/observability/opentelemetry.mdx
  • docs/build-plugins/language-binding/validate-configuration.mdx
  • docs/configure-plugins/observability/atof.mdx
  • docs/configure-plugins/observability/configuration.mdx
  • docs/configure-plugins/observability/atif.mdx
  • docs/configure-plugins/plugin-configuration-files.mdx
  • docs/configure-plugins/observability/openinference.mdx
  • docs/configure-plugins/adaptive/configuration.mdx
  • docs/integrate-into-frameworks/provider-response-codecs.mdx
  • scripts/docs/generate_python_library_reference.py
  • docs/configure-plugins/adaptive/acg.mdx
  • docs/reference/llm-request-intercept-outcomes.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/configure-plugins/adaptive/about.mdx
  • docs/getting-started/installation.mdx
  • docs/nemo-relay-cli/hermes.mdx
  • docs/nemo-relay-cli/claude-code.mdx
  • docs/supported-integrations/langchain.mdx
  • docs/about-nemo-relay/architecture.mdx
  • docs/getting-started/agent-runtime-primer.mdx
  • docs/configure-plugins/about.mdx
  • docs/instrument-applications/instrument-llm-call.mdx
  • docs/configure-plugins/discoverable-plugins.mdx
  • docs/about-nemo-relay/release-notes/index.mdx
  • docs/instrument-applications/instrument-tool-call.mdx
  • docs/getting-started/prerequisites.mdx
  • docs/about-nemo-relay/ecosystem.mdx
  • docs/build-plugins/dynamic-plugins/about.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/about.mdx
  • docs/nemo-relay-cli/basic-usage.mdx
  • docs/about-nemo-relay/release-notes/highlights.mdx
  • docs/build-plugins/dynamic-plugins/native-dynamic/about.mdx
  • docs/integrate-into-frameworks/wrap-tool-calls.mdx
  • docs/getting-started/quick-start/index.mdx
  • docs/build-plugins/dynamic-plugins/native-dynamic/rust-native-plugin-example.mdx
  • docs/reference/tool-execution-intercept-outcomes.mdx
  • docs/configure-plugins/model-pricing.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/grpc-worker-protocol.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/rust/about.mdx
  • docs/build-plugins/dynamic-plugins/grpc-worker/python/about.mdx
  • docs/getting-started/configuration.mdx
  • docs/supported-integrations/deepagents.mdx
  • docs/nemo-relay-cli/plugin-installation.mdx
  • docs/about-nemo-relay/overview.mdx
  • docs/supported-integrations/langgraph.mdx
  • docs/configure-plugins/pii-redaction/about.mdx
  • docs/build-plugins/language-binding/register-behavior.mdx
  • docs/configure-plugins/observability/about.mdx
  • docs/resources/troubleshooting/trace-incident-runbook.mdx
  • docs/build-plugins/language-binding/code-examples.mdx
  • docs/about-nemo-relay/release-notes/known-issues.mdx
  • docs/index.yml
  • docs/about-nemo-relay/concepts/subscribers.mdx
  • docs/configure-plugins/nemo-guardrails/about.mdx
  • docs/resources/support-and-faqs.mdx
  • docs/build-plugins/about.mdx
  • docs/build-plugins/language-binding/about.mdx
  • docs/about-nemo-relay/concepts/plugins.mdx
  • docs/resources/troubleshooting/index.mdx
  • docs/supported-integrations/openclaw-plugin.mdx
  • docs/contribute/runtime-contract-docs.mdx
  • docs/configure-plugins/adaptive/adaptive-hints.mdx
  • docs/build-plugins/language-binding/advanced-configuration.mdx
  • docs/configure-plugins/nemo-guardrails/configuration.mdx
  • docs/configure-plugins/pii-redaction/configuration.mdx
  • README.md
  • docs/configure-plugins/observability/opentelemetry.mdx
  • docs/build-plugins/language-binding/validate-configuration.mdx
  • docs/configure-plugins/observability/atof.mdx
  • docs/configure-plugins/observability/configuration.mdx
  • docs/configure-plugins/observability/atif.mdx
  • docs/configure-plugins/plugin-configuration-files.mdx
  • docs/configure-plugins/observability/openinference.mdx
  • docs/configure-plugins/adaptive/configuration.mdx
  • docs/integrate-into-frameworks/provider-response-codecs.mdx
  • docs/configure-plugins/adaptive/acg.mdx
  • docs/reference/llm-request-intercept-outcomes.mdx
docs/getting-started/**

📄 CodeRabbit inference engine (.agents/skills/add-binding-feature/SKILL.md)

Update docs/getting-started/ materials when usage or onboarding behavior changed.

Files:

  • docs/getting-started/installation.mdx
  • docs/getting-started/agent-runtime-primer.mdx
  • docs/getting-started/prerequisites.mdx
  • docs/getting-started/quick-start/index.mdx
  • docs/getting-started/configuration.mdx
docs/about-nemo-relay/release-notes/{index,highlights,known-issues}.mdx

📄 CodeRabbit inference engine (.agents/skills/draft-release-notes/SKILL.md)

docs/about-nemo-relay/release-notes/{index,highlights,known-issues}.mdx: When drafting NeMo Relay release notes, update only docs/about-nemo-relay/release-notes/index.mdx, docs/about-nemo-relay/release-notes/highlights.mdx, and docs/about-nemo-relay/release-notes/known-issues.mdx unless the release changes their route or entry points.
Preserve the existing page roles: index.mdx should provide the current-release summary, compatibility notes, scope, and curated feature links; highlights.mdx should group notable changes by user-facing theme; known-issues.mdx should record current limitations, compatibility migrations, current-release fixes, and the complete fixed-item history from earlier release-note pages.
Preserve the MDX front matter and the JSX SPDX comment in the release-notes pages.
State that the full release history is available in GitHub Releases, and do not create a changelog or GitHub Release body from this skill.
Verify each candidate claim against the changed public docs, API types, command help, or source before including it, prioritizing breaking changes, migrations, user-visible features, and ongoing support limitations.
Check product names, commands, package names, support claims, and links against the current repository before handing off the release-notes draft.

Files:

  • docs/about-nemo-relay/release-notes/index.mdx
  • docs/about-nemo-relay/release-notes/highlights.mdx
  • docs/about-nemo-relay/release-notes/known-issues.mdx
docs/reference/**

📄 CodeRabbit inference engine (.agents/skills/add-binding-feature/SKILL.md)

Update relevant pages under docs/reference/ when the public surface or expected usage changed.

Files:

  • docs/reference/tool-execution-intercept-outcomes.mdx
  • docs/reference/llm-request-intercept-outcomes.mdx
**/*.{rs,py,js,ts,mjs,c,h,md,toml,yml,yaml,sh,json,go}

📄 CodeRabbit inference engine (AGENTS.md)

Keep SPDX headers on source files, documentation, scripts, and configuration files.

Files:

  • scripts/docs/generate_rust_library_reference.py
  • docs/index.yml
  • fern/docs.yml
  • README.md
  • scripts/docs/generate_python_library_reference.py
**/*.py

📄 CodeRabbit inference engine (AGENTS.md)

Follow Python naming conventions, including snake_case identifiers and wrapper module API shapes.

When changing the Python wrapper package, tests, or docs tooling, follow Ruff rules E, F, W, and I, format with Ruff formatter (line length 120, double quotes), and satisfy ty type checking.

Files:

  • scripts/docs/generate_rust_library_reference.py
  • scripts/docs/generate_python_library_reference.py
**/*.{rs,py,go,js,ts}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Use the naming conventions appropriate to each language: Rust snake_case, C FFI exports prefixed nemo_relay_, Go PascalCase, Node.js camelCase, and Python snake_case.

Files:

  • scripts/docs/generate_rust_library_reference.py
  • scripts/docs/generate_python_library_reference.py
**/*.{rs,py,go,js,ts,wasm}

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

Ensure binding-native wrappers expose the same observability configuration knobs and lifecycle behavior across Rust, Python, Go, Node.js, and WebAssembly.

Files:

  • scripts/docs/generate_rust_library_reference.py
  • scripts/docs/generate_python_library_reference.py
docs/about-nemo-relay/release-notes/known-issues.mdx

📄 CodeRabbit inference engine (.agents/skills/draft-release-notes/SKILL.md)

In known-issues.mdx, preserve every prior fixed-item bullet under release-labeled subsections; do not summarize, deduplicate, or omit any of that history.

Files:

  • docs/about-nemo-relay/release-notes/known-issues.mdx
{README.md,docs/**/*.{md,rst,txt},fern/**/*}

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

Search and update documentation source for references to the old version in README.md, docs, and fern directories, updating current-version install commands, package examples, and configuration examples to <next-version>

Files:

  • fern/docs.yml
  • README.md
**/*.{md,rst,html,txt}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-brand-terminology.md)

**/*.{md,rst,html,txt}: Always spell NVIDIA in all caps. Do not use Nvidia, nvidia, nVidia, nVIDIA, or NV.
Use an NVIDIA before a noun because the name starts with an 'en' sound.
Do not add a registered trademark symbol after NVIDIA when referring to the company.
Use trademark symbols with product names only when the document type or legal guidance requires them.
Verify official capitalization, spacing, and hyphenation for product names.
Precede NVIDIA product names with NVIDIA on first mention when it is natural and accurate.
Do not rewrite product names for grammar or title-case rules.
Preserve third-party product names according to the owner's spelling.
Include the company name and full model qualifier on first use when it helps identify the model.
Preserve the official capitalization and punctuation of model names.
Use shorter family names only after the full name is established.
Spell out a term on first use and put the acronym in parentheses unless the acronym is widely understood by the intended audience.
Use the acronym on later mentions after it has been defined.
For long documents, reintroduce the full term if readers might lose context.
Form plurals of acronyms with s, not an apostrophe, such as GPUs.
In headings, common acronyms can remain abbreviated. Spell out the term in the first or second sentence of the body.
Common terms such as CPU, GPU, PC, API, and UI usually do not need to be spelled out for developer audiences.

Files:

  • README.md
**/*.{md,rst,html}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-brand-terminology.md)

Link the first mention of a product name when the destination helps the reader.

Files:

  • README.md
**/*.{md,rst,txt}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)

Spell NVIDIA in all caps. Do not use Nvidia, nvidia, or NV.

Files:

  • README.md
**/*.{md,rst}

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-guide.md)

**/*.{md,rst}: Format commands, code elements, expressions, package names, file names, and paths as inline code.
Use descriptive link text. Avoid raw URLs and weak anchors such as "here" or "read more."
Use title case consistently for technical documentation headings.
Introduce code blocks, lists, tables, and images with complete sentences.
Write procedures as imperative steps. Keep steps parallel and split long procedures into smaller tasks.
Prefer active voice, present tense, short sentences, contractions, and plain English.
Use can for possibility and reserve may for permission.
Use after for temporal relationships instead of once.
Prefer refer to over see when the wording points readers to another resource.
Avoid culture-specific idioms, unnecessary Latinisms, jokes, and marketing exaggeration in technical docs.
Spell out months in body text, avoid ordinal dates, and use clear time zones.
Spell out whole numbers from zero through nine unless they are technical values, parameters, versions, or UI values.
Use numerals for 10 or greater and include commas in thousands.
Do not add trademark symbols to learning-oriented docs unless the source, platform, or legal guidance explicitly requires them.

Files:

  • README.md
**/*.md

📄 CodeRabbit inference engine (.agents/skills/review-doc-style/assets/nvidia-style-technical-docs.md)

**/*.md: Use title case consistently in technical documentation headings
Avoid quotation marks, ampersands, and exclamation marks in headings
Keep product, event, research, and whitepaper names in their official title case
Use title case for table headers
Do not force social-media sentence case into technical docs
Format code elements, commands, parameters, package names, and expressions in monospace
Format directories, file names, and paths in monospace using backticks
Use angle brackets inside monospace for variables inside paths, such as /home/<username>/.login
Format error messages and strings in quotation marks, keeping literal code strings in code formatting when clearer
Format UI buttons, menus, fields, and labels in bold
Use angle brackets between UI labels for menu paths, such as File > Save As
Use italics for new terms on first use, sparingly and only when introducing the term
Use italics for publication titles
Format keyboard shortcuts in plain text, such as Press Ctrl+Alt+Delete
Use owner/repo link text for GitHub repositories, preferring [NVIDIA/NeMo](link) over prose references like 'the GitHub repo'
Introduce every code block with a complete sentence
Do not make a code block complete the grammar of the previous sentence
Do not continue a sentence after a code block
Use syntax highlighting when the format supports it for code blocks
Avoid the word 'snippet' unless the surrounding docs already use it as a term of art
Keep inline method, function, and class references consistent with nearby docs, omitting empty parentheses for prose readability when no call is shown
Use descriptive anchor text that matches the destination title when possible for links
Avoid raw URLs in running text
Avoid generic anchor text such as 'here,' 'this page,' and 'read more'
Include acronyms in link text when a linked term includes an acronym
Do not link long sentences or multiple sentences
Avoid links that pull readers away from a procedure unless the link is a p...

Files:

  • README.md
**/README.md

📄 CodeRabbit inference engine (AGENTS.md)

Update README.md, package READMEs, and binding-support notes when public behavior, package names, examples, or supported bindings change.

Update binding-level README files when behavior differs by language.

Files:

  • README.md
README.md

📄 CodeRabbit inference engine (.agents/skills/add-binding-feature/SKILL.md)

Update README.md when the public surface or language-specific behavior changes.

If docs-only changes modify commands, package names, or examples, run targeted checks such as just docs or just docs-linkcheck when links changed.

Files:

  • README.md
{README.md,docs/index.md}

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

Update entry-point docs when examples or reading paths change

Files:

  • README.md
🧠 Learnings (1)
📓 Common learnings
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-07-08T14:23:55.192Z
Learning: Run the read-only evidence-collection helper with explicit previous/current release refs and the target minor version when preparing release notes.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-07-08T14:23:55.192Z
Learning: Run `git diff --check`, `just docs`, and `just docs-linkcheck` to validate the draft, and preserve unrelated working-tree changes.
Learnt from: CR
Repo: NVIDIA/NeMo-Relay

Timestamp: 2026-07-08T14:23:55.192Z
Learning: Use the helper’s output as an evidence index only; do not treat it as publication-ready copy.
🪛 ast-grep (0.44.1)
.agents/skills/draft-release-notes/scripts/collect_release_evidence.py

[warning] 58-58: XPath query is request-/variable-derived; use parameterized XPath to prevent injection.
Context: VERSION_PATTERN.findall(content)
Note: [CWE-643] Improper Neutralization of Data within XPath Expressions ('XPath Injection').

(xpath-injection-python)


[error] 29-35: Command coming from incoming request
Context: subprocess.run(
["git", *args],
cwd=repo,
check=False,
capture_output=True,
encoding="utf-8",
)
Note: [CWE-78] Improper Neutralization of Special Elements used in an OS Command ('OS Command Injection').

(subprocess-from-request)

🪛 LanguageTool
docs/getting-started/quick-start/index.mdx

[style] ~14-~14: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...pplication owns the tool or LLM call. - Use a supported integration guide when a fr...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

docs/build-plugins/dynamic-plugins/grpc-worker/grpc-worker-protocol.mdx

[style] ~127-~127: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...d callbacks if initialization fails. 5. Relay removes proxy callbacks before it sends...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

docs/build-plugins/language-binding/advanced-configuration.mdx

[style] ~184-~184: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...idate each unsupported enum or mode. 4. Validate unknown component-local fields and thei...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

README.md

[uncategorized] ~89-~89: Ger doublet «to to».
Context: ...Optionally set: - output_directory to .nemo-relay/atof - filename to events.jsonl - mode to `overwrit...

(GER_DOUBLET)

docs/integrate-into-frameworks/provider-response-codecs.mdx

[style] ~733-~733: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...o add the managed LLM boundary first. - Use [Observability](/configure-plugins/obse...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)

🪛 Ruff (0.15.20)
.agents/skills/draft-release-notes/scripts/collect_release_evidence.py

[error] 30-30: subprocess call: check for execution of untrusted input

(S603)


[error] 31-31: Starting a process with a partial executable path

(S607)


[warning] 39-39: Avoid specifying long messages outside the exception class

(TRY003)

scripts/docs/generate_python_library_reference.py

[warning] 378-378: Use list.extend to create a transformed list

(PERF401)


[warning] 382-382: Too many branches (14 > 12)

(PLR0912)


[warning] 437-437: Avoid specifying long messages outside the exception class

(TRY003)

Comment thread .github/CODEOWNERS
Comment thread docs/build-plugins/about.mdx
Comment thread docs/build-plugins/dynamic-plugins/about.mdx
Comment thread docs/build-plugins/dynamic-plugins/native-dynamic/about.mdx
Comment thread docs/build-plugins/language-binding/register-behavior.mdx
Comment thread docs/configure-plugins/adaptive/acg.mdx
Comment thread docs/configure-plugins/observability/atof.mdx
Comment thread docs/configure-plugins/plugin-configuration-files.mdx
Comment thread fern/docs.yml
@willkill07

Copy link
Copy Markdown
Member Author

/merge nosquash

@willkill07 willkill07 merged commit 942ca3c into NVIDIA:main Jul 8, 2026
28 checks passed
@willkill07 willkill07 deleted the main-merge-release/0.5 branch July 8, 2026 15:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lang:python PR changes/introduces Python code size:XXL PR is very large

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants