Skip to content

ci: fix codecov reporting and PR guidance#48

Merged
willkill07 merged 4 commits into
NVIDIA:mainfrom
willkill07:wkk_codecov-coverage-reporting
May 3, 2026
Merged

ci: fix codecov reporting and PR guidance#48
willkill07 merged 4 commits into
NVIDIA:mainfrom
willkill07:wkk_codecov-coverage-reporting

Conversation

@willkill07
Copy link
Copy Markdown
Member

@willkill07 willkill07 commented May 3, 2026

Overview

Fix Codecov reporting for the current CI coverage matrix and tighten repo-local agent/review guidance for PR descriptions, titles, and skill files.

  • 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

  • Exclude WebAssembly Rust wrapper sources from Codecov using **/crates/wasm/src/**/*.rs.
  • Update Codecov after_n_builds from 15 to 22 and document the full CI upload matrix with a binding/platform table.
  • Add codecov.yml to CI path filters so Codecov config changes trigger the CI/reporting path.
  • Normalize WebAssembly Cobertura reports so Codecov receives checked-in crates/wasm/wrappers/nodejs/*.js paths instead of generated pkg/*.js paths.
  • Normalize WebAssembly coverage filenames before lookup so Windows-style Cobertura paths are not skipped.
  • Expand the prepare-pr skill trigger and body guidance so it applies to PR creation, publishing, updates, and PR body edits.
  • Update AGENTS.md so agents must read and preserve .github/pull_request_template.md before creating or editing PR descriptions, with repo-local PR guidance taking precedence over generic GitHub plugin guidance.
  • Add prepare-pr guidance that PR titles use Conventional Commit style and reserve fix for actual product/runtime code bug fixes, not chores, CI, docs, tests, packaging metadata, or agent guidance.
  • Clarify that SKILL.md files do not need SPDX headers, but must keep YAML frontmatter with at least name and description.
  • Add CodeRabbit path guidance so reviews do not flag missing SPDX headers on SKILL.md files and instead verify required skill frontmatter.

The WebAssembly report was unusable because it referenced generated crates/wasm/pkg/*.js files that are not present in the checkout Codecov analyzes. The new normalization step keeps coverage for checked-in Node.js wrapper copies and drops wasm-bindgen generated glue.

Testing run:

  • ruby -e 'require "yaml"; %w[codecov.yml .github/ci-path-filters.yml .github/workflows/ci_wasm.yml].each { |f| YAML.load_file(f) }; puts "yaml-ok"'
  • npm --prefix crates/node run precommit:format -- crates/wasm/wrappers crates/wasm/tests-js crates/wasm/scripts
  • uv run pre-commit run --files crates/wasm/scripts/normalize_coverage.mjs crates/wasm/package.json codecov.yml .github/ci-path-filters.yml
  • just --set ci true --set output_dir target/coverage-debug test-wasm
  • XML parse check for the normalized wasm coverage report
  • Synthetic backslash-path coverage input for normalize_coverage.mjs
  • uv run pre-commit run --files AGENTS.md .agents/skills/prepare-pr/SKILL.md
  • uv run pre-commit run --files .agents/skills/prepare-pr/SKILL.md
  • ruby -e 'require "yaml"; YAML.load_file(".coderabbit.yaml"); puts "yaml-ok"'
  • tracked SKILL.md frontmatter check for name and description
  • uv run pre-commit run --files AGENTS.md .coderabbit.yaml

Breaking changes: none.

Where should the reviewer start?

Start with crates/wasm/scripts/normalize_coverage.mjs for the Codecov report normalization, then review codecov.yml for the Codecov matrix/component changes, .agents/skills/prepare-pr/SKILL.md for agent PR-template/title enforcement, and .coderabbit.yaml for SKILL.md review guidance.

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

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 3, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Adds codecov.yml to CI path filters; increases Codecov expected uploads from 15 to 22 and updates related comment. Adjusts wasm artifact paths and broadens wasm Rust ignore glob. Adds a Node.js Cobertura-normalization script and invokes it from the wasm package coverage script. Updates agent PR guidance docs.

Codecov + wasm coverage normalization

Layer / File(s) Summary
CI Path Filter Registration
.github/ci-path-filters.yml
Adds codecov.yml to the ci path filter so CI considers changes to that file.
Codecov Config: upload count & comment
codecov.yml
Updates after_n_builds from 15 to 22 in codecov and mirrors the change under comment.after_n_builds; adds a commented upload/platform matrix.
Codecov Config: wasm artifact paths
codecov.yml
Replaces NeMo-Flow/crates/wasm/pkg/*.js with NeMo-Flow/crates/wasm/wrappers/nodejs/*.js for wasm_binding artifact path matching.
Codecov Config: ignore rules
codecov.yml
Expands wasm Rust ignore from **/crates/wasm/src/api/mod.rs to **/crates/wasm/src/**/*.rs.
WASM package wiring
crates/wasm/package.json
coverage:pkg npm script appended to run node scripts/normalize_coverage.mjs coverage/cobertura-coverage.xml after generating Cobertura XML.
Post-process script (new)
crates/wasm/scripts/normalize_coverage.mjs
New Node script: parses Cobertura XML, maps class filenames to canonical wrappers/nodejs/... names, aggregates per-class line/branch counts from <line> and condition-coverage, sets per-class filename, line-rate, branch-rate, replaces <classes> with normalized set, renames first <package> to wasm_wrappers, recomputes root <coverage> totals, writes output, and errors if no matched classes or missing input.
Docs / Agent guidance
.agents/skills/prepare-pr/SKILL.md, AGENTS.md
Expanded PR preparation guidance: broadened skill scope to creating/editing/publishing PRs, require Conventional Commit-style PR titles, mandate using .github/pull_request_template.md for PR body, and re-fetch rendered PR body to verify template/headings after creation/edit.

Sequence Diagram

sequenceDiagram
participant Dev as Developer/CI runner
participant WASM as wasm/package script
participant Normalizer as normalize_coverage.mjs
participant Codecov as Codecov uploader/commenter
Dev->>WASM: run coverage:pkg (tests + c8 -> cobertura XML)
WASM->>Normalizer: invoke normalize_coverage.mjs with cobertura XML
Normalizer-->>WASM: write normalized cobertura XML
WASM->>Codecov: upload coverage artifacts
Codecov-->>Dev: post comment / aggregate after_n_builds
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed Title follows Conventional Commits format with type 'ci', lowercase scope, imperative summary under 72 characters, no trailing period, and no breaking change indicator needed.
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 PR description comprehensively covers all template sections with detailed changes, testing, and reviewer guidance.

✏️ 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 github-actions Bot added the size:S PR is small label May 3, 2026
@willkill07 willkill07 changed the title [codex] fix codecov coverage reporting config ci: fix codecov coverage reporting config May 3, 2026
@willkill07 willkill07 marked this pull request as ready for review May 3, 2026 18:27
@willkill07 willkill07 requested a review from a team as a code owner May 3, 2026 18:27
@github-actions github-actions Bot added the ci PR alters/improves CI label May 3, 2026
@willkill07 willkill07 force-pushed the wkk_codecov-coverage-reporting branch from a9fcec9 to 0220964 Compare May 3, 2026 18:35
@willkill07 willkill07 requested a review from a team as a code owner May 3, 2026 18:35
@github-actions github-actions Bot added size:M PR is medium lang:js PR changes/introduces Javascript/Typescript code and removed size:S PR is small labels May 3, 2026
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@crates/wasm/scripts/normalize_coverage.mjs`:
- Around line 80-85: The code looks up filenameMap using the raw filename from
getAttribute(classXml, 'filename') which can contain Windows backslashes;
normalize the incoming filename string (e.g., replace all backslashes with
forward slashes and optionally trim redundant ./) before doing the
filenameMap.get lookup so keys like pkg/adaptive.js match; update the lookup
around the variables filename, normalizedFilename and filenameMap to use the
normalized value so classes are not skipped.
🪄 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: 6ac267a9-b2e8-46e4-8fce-641f9471d1b0

📥 Commits

Reviewing files that changed from the base of the PR and between a9fcec9 and 0220964.

📒 Files selected for processing (4)
  • .github/ci-path-filters.yml
  • codecov.yml
  • crates/wasm/package.json
  • crates/wasm/scripts/normalize_coverage.mjs
📜 Review details
🧰 Additional context used
📓 Path-based instructions (6)
**/package.json

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

Maintain consistency in Node package metadata in crates/node/package.json

Files:

  • crates/wasm/package.json
crates/wasm/**

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

Run WebAssembly tests with just test-wasm for changes in crates/wasm, its JS wrappers, or the WebAssembly-facing runtime surface

Files:

  • crates/wasm/package.json
  • crates/wasm/scripts/normalize_coverage.mjs
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/wasm/package.json
  • crates/wasm/scripts/normalize_coverage.mjs
{.github/**/*.{yml,yaml},*.patch,scripts/**/*,*.sh,*.bat,Dockerfile*}

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

Update CI configuration, patch files, and build scripts with new functional identifiers after rename operations

Files:

  • .github/ci-path-filters.yml
{.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/ci-path-filters.yml
**/*.{rs,py,js,ts,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:

  • codecov.yml
🔇 Additional comments (4)
codecov.yml (2)

7-16: after_n_builds and documented upload matrix are consistent.

Both notify and comment settings now align to 22 uploads, which removes prior config drift.

Also applies to: 101-101


124-126: WASM Rust ignore scope update matches the stated coverage strategy.

The broader ignore rule is consistent with reporting coverage from generated wrapper-side artifacts.

.github/ci-path-filters.yml (1)

8-8: Good CI path-filter addition for Codecov config changes.

Including codecov.yml in the ci filter closes the trigger gap for coverage-config updates.

crates/wasm/package.json (1)

12-12: Coverage post-processing is correctly wired into the package coverage command.

Chaining normalization immediately after Cobertura generation keeps the upload artifact deterministic for CI.

Comment thread crates/wasm/scripts/normalize_coverage.mjs Outdated
Signed-off-by: Will Killian <wkillian@nvidia.com>
@willkill07 willkill07 force-pushed the wkk_codecov-coverage-reporting branch from 0220964 to 73f70b7 Compare May 3, 2026 18:50
Signed-off-by: Will Killian <wkillian@nvidia.com>
@willkill07 willkill07 changed the title ci: fix codecov coverage reporting config ci: fix codecov reporting and PR guidance May 3, 2026
Signed-off-by: Will Killian <wkillian@nvidia.com>
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Caution

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

⚠️ Outside diff range comments (1)
.agents/skills/prepare-pr/SKILL.md (1)

1-8: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Compliance: Missing SPDX header comment block in SKILL.md.

In AGENTS.md, the file includes an SPDX header in an HTML comment. In the provided SKILL.md content, there’s no equivalent SPDX header comment block near the top, which likely violates the repo’s “keep SPDX headers on docs/scripts/config files” requirement.

✅ Proposed fix
 ---
 name: prepare-pr
 description: Prepare, open, create, publish, update, or edit a NeMo Flow pull request or PR body with the right tests, docs, contributor hygiene, and repository pull request template
 author: NVIDIA Corporation and Affiliates
 license: Apache-2.0
 ---
 
+<!--
+SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
+SPDX-License-Identifier: Apache-2.0
+-->
+
 
 # Prepare A PR For NeMo Flow
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.agents/skills/prepare-pr/SKILL.md around lines 1 - 8, Add an SPDX header
HTML comment block at the top of SKILL.md (the skill with name: prepare-pr)
consistent with AGENTS.md’s pattern: insert a comment like <!--
SPDX-FileCopyrightText: NVIDIA Corporation and Affiliates --> and <!--
SPDX-License-Identifier: Apache-2.0 --> immediately above the YAML frontmatter
so the document carries the same SPDX metadata as other docs.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In @.agents/skills/prepare-pr/SKILL.md:
- Around line 1-8: Add an SPDX header HTML comment block at the top of SKILL.md
(the skill with name: prepare-pr) consistent with AGENTS.md’s pattern: insert a
comment like <!-- SPDX-FileCopyrightText: NVIDIA Corporation and Affiliates -->
and <!-- SPDX-License-Identifier: Apache-2.0 --> immediately above the YAML
frontmatter so the document carries the same SPDX metadata as other docs.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: d0b2b590-eb15-45f4-b24d-d8586df26162

📥 Commits

Reviewing files that changed from the base of the PR and between 73f70b7 and b97970d.

📒 Files selected for processing (2)
  • .agents/skills/prepare-pr/SKILL.md
  • AGENTS.md
📜 Review details
🧰 Additional context used
📓 Path-based instructions (15)
AGENTS.md

📄 CodeRabbit inference engine (CLAUDE.md)

Document agent implementations in AGENTS.md with clear descriptions of functionality and usage

Files:

  • AGENTS.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:

  • AGENTS.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:

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

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

**/*.{md,rst,txt}: Spell NVIDIA in all caps. Do not use Nvidia, nvidia, or NV.
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 documentation.
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 documentation unless the source, platform, or legal guidance explicitly requires them.
Do not add trademark symbols to NeMo Flow learning documentation by default.
Do not rewrite API names, package names, command flags, or code literals for style reasons.

Files:

  • AGENTS.md
**/*.{md,markdown,rst}

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

**/*.{md,markdown,rst}: 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
Use monospace formatting for code elements, commands, parameters, package names, and expressions
Use monospace formatting for directories, file names, and paths
Use angle brackets inside monospace for variables inside paths, such as /home/<username>/.login
Use quotation marks for error messages and strings in documentation
Use bold formatting for UI buttons, menus, fields, and labels in documentation
Use angle brackets between UI labels for menu paths, such as File > Save As
Use italics for new terms on first use in documentation
Use italics for publication titles in documentation
Use plain text formatting for keyboard shortcuts in documentation
Prefer [NVIDIA/NeMo](link) format for GitHub repository references over generic phrases 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 in documentation
Avoid generic link anchors such as 'here,' 'this page,' and 'read more' in documentation
Include the acronym in link text if a linked term includes an acronym
Do not link long sentences or multiple sentences in documentation
Avoid links that pull readers away from a procedure unles...

Files:

  • AGENTS.md
**/*.{html,md}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

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

Files:

  • AGENTS.md
**/*.md

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Run Markdown link checking via lychee for README.md, CONTRIBUTING.md, and docs/ through pre-commit hooks

Files:

  • AGENTS.md
**/*.{md,markdown,py,sh,bash,js,ts,java,cpp,go,rust}

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

Keep package names, repo references, and build commands current in documentation

Files:

  • AGENTS.md
**/*.{md,markdown,py,sh,bash}

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

Keep stable user-facing wrappers at scripts/ root in docs and examples; only point at namespaced helper paths when documenting internal maintenance work

Files:

  • AGENTS.md
**/*.{md,markdown,py,sh,bash,js,ts,example}

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

Example commands must match current package names and paths

Files:

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

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

Keep documentation and examples synchronized with current install, import, and build commands

Files:

  • AGENTS.md
{README*,CHANGELOG*,docs/**/*.{md,rst,txt},examples/**/*,*.md}

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

Update documentation, examples, and getting-started guides with new package/module/crate names after rename operations

Files:

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

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

**/*.{md,txt,rst}: Ensure commands, package names, file paths, and APIs in documentation are correct and not stale; flag incorrect or outdated information as blocking issues
Ensure examples and procedures in documentation will execute successfully with current APIs and commands
Use consistent user-facing terminology throughout documentation that matches current repo terminology
Capitalize NVIDIA correctly in all documentation and public-facing text
Format code, commands, paths, and filenames as inline code (monospace) in documentation
Use descriptive anchor text for links instead of bare URLs or weak labels like 'here' in documentation
Prefer active voice, present tense, short sentences, and plain English in documentation
Structure documentation procedures as imperative steps that are easy to scan and not too long for a single sequence
Prefer 'after' instead of 'once' for temporal references in documentation
Use 'can' instead of 'may' when describing possibility (rather than permission) in documentation
Avoid ambiguous numeric dates and ordinal dates in documentation body text

Files:

  • AGENTS.md
**/*.{js,ts,tsx,jsx,py,rs,json,yaml,yml,md}

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

Format changed files with the language-native formatter before opening a PR

Files:

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

📄 CodeRabbit inference engine (AGENTS.md)

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

Files:

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

Timestamp: 2026-05-03T18:58:37.263Z
Learning: Ensure branch scope is coherent and reviewable before opening a PR
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:58:37.263Z
Learning: Run relevant tests under `validate-change` and ensure they pass before opening a PR
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:58:37.263Z
Learning: Use targeted `uv run pre-commit run --files <changed files...>` checks during iteration where useful
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:58:37.263Z
Learning: Ensure `uv run pre-commit run --all-files` passes or document understood issues before opening a PR
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:58:37.263Z
Learning: Update dependent maintainer or consumer skills when code changes affect their APIs, bindings, commands, paths, packaging guidance, or best practices
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Do not hand-edit generated or packaged outputs unless the repository workflow expects them to be checked in. Regenerate through the documented recipe or script.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Preserve the shared runtime model across bindings. Do not add behavior to one primary binding without considering Rust, Python, and Node.js parity.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Prefer documented public APIs and stable wrapper commands. Do not rely on internal helpers in examples or user-facing docs.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Keep primary documentation focused on Rust, Python, and Node.js. Treat Go, WebAssembly, and raw FFI as experimental and source-first unless binding-support guidance changes.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Scope stacks are hierarchical and always have a root scope. They establish parent-child event relationships, visibility for scope-local middleware and subscribers, cleanup boundaries, and concurrent request isolation.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Scope-local middleware and subscribers are owned by a scope and disappear when that scope closes. Global registrations stay process-wide until removed.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Middleware is priority-ordered after merging global and visible scope-local entries.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Intercepts change the real execution path. Request intercepts rewrite the request. Execution intercepts wrap or replace the callback. Stream execution intercepts handle streaming lifecycle behavior.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Guardrails either block execution or sanitize emitted observability payloads. Sanitize guardrails do not rewrite the real callback arguments or return value.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Managed execution order is conditional guardrails, request intercepts, sanitize-request guardrails for start events, execution intercepts, callback execution, then sanitize-response guardrails for end events.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Events use ATOF `0.1` as the canonical event format. Scope events use start/end pairs; mark events record runtime checkpoints.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: LLM and tool event metadata belongs in the category profile, such as `model_name`, `tool_call_id`, and custom `subtype` fields.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Exporters can transform runtime events to ATIF trajectories, OpenTelemetry traces, or OpenInference-compatible output. Root scope identity is used to isolate concurrent agents.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Rust is the source of truth for runtime behavior. Binding APIs should mirror the Rust semantics unless a language-specific wrapper intentionally improves ergonomics.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Python wrapper modules live under `python/nemo_flow/`; the native extension is built from `crates/python` with `maturin`.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Node.js public entry points include the main runtime package plus `nemo-flow-node/typed`, `nemo-flow-node/plugin`, and `nemo-flow-node/adaptive`.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Go uses the C FFI and requires the FFI library build before tests; `just test-go` handles the library path setup.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: WebAssembly includes Rust wasm-bindgen tests plus JS wrapper/package tests; `just test-wasm` runs both paths.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Use the stable root-level wrappers for third-party integrations: `./scripts/bootstrap-third-party.sh`, `./scripts/apply-patches.sh`, and `./scripts/generate-patches.sh`. Apply patches to clean checkouts.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Update `README.md`, `docs/`, package READMEs, and binding-support notes when public behavior, package names, examples, or supported bindings change.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Keep release-process details in maintainer docs such as `RELEASING.md`. Do not move release-history policy into user-facing docs or `CHANGELOG.md`.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Keep stable public wrappers at the `scripts/` root in docs and examples. Reference namespaced helper paths only when documenting internal maintenance work.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Use branch prefixes from the contributor docs: `feat/`, `fix/`, `docs/`, `test/`, or `refactor/`.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Use signed-off commits for PR work: `git commit -s`.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Before creating, opening, publishing, or editing a pull request, read `.github/pull_request_template.md` and use it as the PR body skeleton. Preserve visible headings, checklist items, and related-issue guidance.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: PR descriptions should include what changed, why, how it was tested, and any breaking changes within the repository template format.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: If repo-local PR guidance such as the `prepare-pr` skill conflicts with generic GitHub connector or plugin guidance, follow the repo-local PR guidance for PR body format and review handoff details.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Run tests for every language affected by a change. If touching the Rust core runtime, middleware semantics, event shape, scope behavior, typed codecs, plugins, or observability, validate every affected binding.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Prefer the repository `just` recipes over raw tool commands. Use raw `cargo`, `pytest`, `go test`, `npm`, or `wasm-pack` commands only for focused debugging or targeted single-test reruns.
Learnt from: CR
Repo: NVIDIA/NeMo-Flow

Timestamp: 2026-05-03T18:59:04.262Z
Learning: Before review, prefer `uv run pre-commit run --all-files` when the change crosses languages or tooling. The hooks enforce SPDX headers, file hygiene, Ruff, `ty`, docs link checks, Cargo formatting/lints/audits, Go formatting/vet, and Node formatting.
🪛 LanguageTool
AGENTS.md

[uncategorized] ~239-~239: The official name of this software platform is spelled with a capital “H”.
Context: ...ishing, or editing a pull request, read .github/pull_request_template.md and use it as...

(GITHUB)

🔇 Additional comments (3)
AGENTS.md (1)

239-241: LGTM: PR template preservation guidance looks correct; keep .github/... path casing.

The change correctly instructs agents to read .github/pull_request_template.md and preserve its visible headings/checklist intent. If tooling flags “GitHub” capitalization here, it’s likely a false positive because the lowercase .github is a filesystem path and should not be changed to .GitHub.

.agents/skills/prepare-pr/SKILL.md (2)

3-24: LGTM: Expanded PR-skill scope + precedence rule are clear and consistent.

The updated description (Line 3), the broader “when to use this skill” guidance (Lines 17-20), and the precedence statement about repo-local guidance winning over generic GitHub guidance (Lines 21-23) are coherent and actionable for agents.


45-65: LGTM: PR body handling rules align with template preservation + re-validation.

The “don’t use generic headings unless the repo template uses them” rule (Lines 49-51) and the “after creating/editing, re-fetch rendered PR body and verify headings/checklist presence” rule (Lines 63-65) directly support the PR-template preservation workflow this repo expects.

Signed-off-by: Will Killian <wkillian@nvidia.com>
@willkill07 willkill07 merged commit bcc7b33 into NVIDIA:main May 3, 2026
51 of 52 checks passed
@willkill07 willkill07 deleted the wkk_codecov-coverage-reporting branch May 3, 2026 20:12
@willkill07 willkill07 self-assigned this May 3, 2026
@willkill07 willkill07 added this to the 0.2.0 milestone May 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci PR alters/improves CI lang:js PR changes/introduces Javascript/Typescript code size:M PR is medium

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant