Skip to content

Forward-merge release/0.7 into main - #733

Open
rapids-bot[bot] wants to merge 1 commit into
mainfrom
release/0.7
Open

Forward-merge release/0.7 into main#733
rapids-bot[bot] wants to merge 1 commit into
mainfrom
release/0.7

Conversation

@rapids-bot

@rapids-bot rapids-bot Bot commented Aug 7, 2026

Copy link
Copy Markdown

Forward-merge triggered by push to release/0.7 that creates a PR to keep main up-to-date. If this PR is unable to be immediately merged due to conflicts, it will remain open for the team to manually merge. See forward-merger docs for more info.

#### Overview

Expands the GenAI OpenTelemetry projection so traces contain sanitized LLM instructions, prompts, responses, and complete Relay span parentage. It also adds an opt-in policy for retaining complete sanitized request history instead of applying current-turn filtering.

- [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

- Projects normalized system instructions, input messages, and output messages into `gen_ai.system_instructions`, `gen_ai.input.messages`, and `gen_ai.output.messages`.
- Serializes text, multimodal content, tool calls, and tool results using the OpenTelemetry GenAI message schemas while omitting empty message attributes.
- Emits canonical finish reasons, including the valid `tool_call` value.
- Adds the top-level `enable_full_payloads` option across Rust, Python, Node.js, and Go. It defaults to `false` and is listed last in each configuration for compatibility.
- When enabled, preserves complete sanitized LLM request inputs and annotations instead of applying current-turn filtering. Credential removal and configured sanitizers remain active.
- Emits minimal internal spans for Relay scope types without GenAI semantics so the original parent-child chain is not lost. Marks remain omitted from the GenAI projection.
- Updates the observability documentation and maintainer guidance for the expanded projection and payload policy.

The configuration change is additive and retains the existing current-turn filtering behavior by default.

Testing:

- `cargo test -p nemo-relay observability::otel::tests` (52 passed)
- Focused Rust full-payload policy and plugin lifecycle tests
- Focused Python, Node.js, and Go configuration serialization tests
- `just test-go`
- `cargo clippy -p nemo-relay --all-targets -- -D warnings`
- Changed-file pre-commit suite, including formatting, type checking, documentation links, Cargo checks, Go vet, and Node.js formatting

#### Where should the reviewer start?

Start with `crates/core/src/observability/otel_genai.rs` for the GenAI attribute and generic-span projection. Then review `crates/core/src/api/llm.rs` and `crates/core/src/observability/plugin_component.rs` for the full-payload runtime policy and configuration surface.

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

- Relates to: none

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

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

URL: #729
@rapids-bot
rapids-bot Bot requested review from a team as code owners August 7, 2026 02:38
@rapids-bot

rapids-bot Bot commented Aug 7, 2026

Copy link
Copy Markdown
Author

FAILURE - Unable to forward-merge due to an error, manual merge is necessary. Do not use the Resolve conflicts option in this PR, follow these instructions https://docs.rapids.ai/maintainers/forward-merger/

IMPORTANT: When merging this PR, do not use the auto-merger (i.e. the /merge comment). Instead, an admin must manually merge by changing the merging strategy to Create a Merge Commit. Otherwise, history will be lost and the branches become incompatible.

@github-actions github-actions Bot added size:L PR is large lang:go PR changes/introduces Go code lang:js PR changes/introduces Javascript/Typescript code lang:python PR changes/introduces Python code lang:rust PR changes/introduces Rust code labels Aug 7, 2026
@codecov

codecov Bot commented Aug 7, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 73.75000% with 63 lines in your changes missing coverage. Please review.
✅ Project coverage is 94.36%. Comparing base (326cf39) to head (8986d52).
⚠️ Report is 49 commits behind head on main.

Files with missing lines Patch % Lines
crates/core/src/observability/otel_genai.rs 68.02% 63 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #733      +/-   ##
==========================================
- Coverage   94.40%   94.36%   -0.04%     
==========================================
  Files         330      330              
  Lines       97496    97667     +171     
  Branches      113      113              
==========================================
+ Hits        92032    92157     +125     
- Misses       5464     5510      +46     
Components Coverage Δ
Rust Runtime 96.28% <73.64%> (-0.11%) ⬇️
Shared DTO Types 99.05% <ø> (ø)
CLI 92.09% <ø> (ø)
Go Binding 94.88% <ø> (ø)
Python Binding 95.24% <100.00%> (+0.06%) ⬆️
Node Binding 98.36% <ø> (ø)
Dynamic Plugin SDKs 96.46% <ø> (ø)
Files with missing lines Coverage Δ
crates/core/src/api/llm.rs 96.26% <100.00%> (+0.12%) ⬆️
crates/core/src/api/runtime/state.rs 99.16% <100.00%> (+<0.01%) ⬆️
crates/core/src/observability/otel.rs 97.83% <100.00%> (+0.32%) ⬆️
crates/core/src/observability/plugin_component.rs 95.67% <100.00%> (+0.04%) ⬆️
go/nemo_relay/observability_plugin.go 90.40% <ø> (ø)
python/nemo_relay/observability.py 99.21% <100.00%> (+0.01%) ⬆️
crates/core/src/observability/otel_genai.rs 88.21% <68.02%> (-9.24%) ⬇️

... and 4 files with indirect coverage changes


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 326cf39...8986d52. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lang:go PR changes/introduces Go code lang:js PR changes/introduces Javascript/Typescript code lang:python PR changes/introduces Python code lang:rust PR changes/introduces Rust code size:L PR is large

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant