Skip to content

fix(ci): unblock release checks - #415

Merged
rapids-bot[bot] merged 2 commits into
release/2.2from
ajay/ci-unblock-aug-2026
Aug 4, 2026
Merged

fix(ci): unblock release checks#415
rapids-bot[bot] merged 2 commits into
release/2.2from
ajay/ci-unblock-aug-2026

Conversation

@AjayThorve

@AjayThorve AjayThorve commented Aug 4, 2026

Copy link
Copy Markdown
Member

Summary

  • keep repository-wide Markdown link validation, but skip build.nvidia.com because NVIDIA Build returns HTTP 202 for valid pages and the checker treats that response as dead
  • update the isolated MCP release lock from aiohttp 3.14.1 to 3.14.3 and from cryptography 48.0.1 to 50.0.0, resolving the newly published advisories blocking every PR
  • preserve fail-closed runtime dependency validation with exact compatibility exceptions for langchain-litellm, nvidia-nat-core, and oci
  • update the MCP security documentation and compatibility tests to match the audited release profile

Root cause

PR #413 exposed two release-branch-wide CI failures unrelated to its GPT compatibility diff:

  1. NVIDIA Build began returning HTTP 202 for valid public model and documentation pages. markdown-link-check classified every such page as dead.
  2. New aiohttp and cryptography advisories were published after the current MCP release lock was created. The required production audit correctly rejected the vulnerable versions.

Validation

  • full pre-commit run --all-files
  • MCP suite: 238 passed, 18 skipped
  • CI script test harness: 11 passed, 0 failed
  • production-only MCP sync and runtime import canary
  • production vulnerability gate: 308 packages audited, 0 vulnerabilities
  • CycloneDX SBOM and license inventory generation
  • MCP wheel build and license-file assertion

The local Docker daemon was not running, so the Compose health/protocol smoke was not reproduced locally; GitHub Actions will exercise that boundary.

Summary by CodeRabbit

  • Documentation

    • Updated MCP release and security guidance for cryptography 50.0.0.
    • Clarified Linux x86_64 with CPython 3.13 support, container usage, and development-only platforms.
    • Documented unsupported macOS and 32-bit Windows configurations.
  • Chores

    • Updated dependency resolution and validation rules for the new security baseline.
    • Excluded NVIDIA Build URLs from automated Markdown link checking.
  • Tests

    • Expanded coverage for dependency compatibility and platform policy consistency.

Signed-off-by: Ajay Thorve <athorve@nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented Aug 4, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: d3b2a302-9220-456b-afc1-2b5de2e77fe2

📥 Commits

Reviewing files that changed from the base of the PR and between 69ded0b and d47356e.

📒 Files selected for processing (8)
  • .secrets.baseline
  • AGENTS.md
  • README.md
  • docs/source/deployment/docker-build.md
  • docs/source/integration/mcp-server.md
  • mcp/README.md
  • mcp/SECURITY.md
  • mcp/tests/test_config_and_packaging.py
📜 Recent review details
⏰ Context from checks skipped due to timeout. (3)
  • GitHub Check: Lint and Hooks
  • GitHub Check: Script Validation
  • GitHub Check: Pytest and Coverage
🧰 Additional context used
📓 Path-based instructions (6)
**/*

📄 CodeRabbit inference engine (CONTRIBUTING.md)

**/*: Do not include secrets, credentials, private hostnames, internal-only logs, customer data, or generated local artifacts.
Add or update tests for behavior changes.

Files:

  • AGENTS.md
  • mcp/README.md
  • README.md
  • mcp/tests/test_config_and_packaging.py
  • docs/source/integration/mcp-server.md
  • docs/source/deployment/docker-build.md
  • mcp/SECURITY.md
**/*.{py,yml,yaml,js,jsx,ts,tsx,json,md}

📄 CodeRabbit inference engine (AGENTS.md)

Never commit secrets, tokens, or environment-specific hostnames; use environment variables and SecretStr, and resolve API keys at runtime.

Files:

  • AGENTS.md
  • mcp/README.md
  • README.md
  • mcp/tests/test_config_and_packaging.py
  • docs/source/integration/mcp-server.md
  • docs/source/deployment/docker-build.md
  • mcp/SECURITY.md
{docs/**,README.md,CONTRIBUTING.md,SECURITY.md,CODE-OF-CONDUCT.md}

⚙️ CodeRabbit configuration file

{docs/**,README.md,CONTRIBUTING.md,SECURITY.md,CODE-OF-CONDUCT.md}: Review documentation for command accuracy, branch-name consistency, current CI and copy-pr-bot behavior, public
vs internal boundary clarity, stale examples, and links that no longer match the repository layout.

Files:

  • README.md
  • docs/source/integration/mcp-server.md
  • docs/source/deployment/docker-build.md
**/*.py

📄 CodeRabbit inference engine (CONTRIBUTING.md)

**/*.py: Run uv run ruff check . and uv run ruff format --check . for root Python changes.
Run uv run pytest for root project Python changes.

**/*.py: Use Ruff for Python linting and formatting with line length 120, Python 3.11, rules E,F,W,I,PL,UP, and single-line imports; do not reformat unrelated code.
Never print or log secret values, including in tool output or error messages.
Missing-secret paths must degrade gracefully by stubbing or skipping rather than crashing or leaking information.
Respect authenticated data sources: honor requires_auth, pass through per-user tokens, use backend token validators, and apply owner guardrails before loading protected report or artifact context into an agent.
Do not weaken or bypass AuthMiddleware, authentication validators, or auth gating without prior design discussion.

Files:

  • mcp/tests/test_config_and_packaging.py
mcp/**/*.py

📄 CodeRabbit inference engine (CONTRIBUTING.md)

For MCP changes, run the MCP development dependency setup and uv run --project mcp --extra dev pytest mcp/tests.

Files:

  • mcp/tests/test_config_and_packaging.py
docs/source/**/*

📄 CodeRabbit inference engine (AGENTS.md)

Update canonical documentation under docs/source/ when behavior, configuration, or workflows change; do not duplicate full documentation pages into skills.

Files:

  • docs/source/integration/mcp-server.md
  • docs/source/deployment/docker-build.md
🧠 Learnings (1)
📓 Common learnings
Learnt from: CR
Repo: NVIDIA-AI-Blueprints/aiq

Timestamp: 2026-08-04T19:26:57.314Z
Learning: Stay inside this repository; do not edit adjacent repositories, and scope changes to the smallest relevant `sources/*` package.
Learnt from: CR
Repo: NVIDIA-AI-Blueprints/aiq

Timestamp: 2026-08-04T19:26:57.314Z
Learning: For substantial behavior, authentication, UI, or architecture changes, open a design discussion before coding.
Learnt from: CR
Repo: NVIDIA-AI-Blueprints/aiq

Timestamp: 2026-08-04T19:26:57.314Z
Learning: Keep pull requests scoped: avoid unrelated files and accidental generated artifacts, never include secrets, and provide validation commands and results.
Learnt from: CR
Repo: NVIDIA-AI-Blueprints/aiq

Timestamp: 2026-08-04T19:26:57.314Z
Learning: Every commit must be signed off with `git commit -s`; commits must contain a `Signed-off-by` trailer.
🔇 Additional comments (8)
.secrets.baseline (1)

136-136: LGTM!

Also applies to: 358-358

mcp/SECURITY.md (1)

85-96: LGTM!

Also applies to: 98-110, 112-116

mcp/README.md (1)

17-25: LGTM!

Also applies to: 133-136

AGENTS.md (1)

108-113: LGTM!

README.md (1)

381-387: LGTM!

docs/source/deployment/docker-build.md (1)

71-79: LGTM!

docs/source/integration/mcp-server.md (1)

36-52: LGTM!

mcp/tests/test_config_and_packaging.py (1)

25-32: LGTM!

Also applies to: 189-189, 221-236, 250-262


Walkthrough

The MCP release profile now targets cryptography 50.0.0. Dependency overrides, runtime checks, documentation, and tests cover three affected packages. Platform support is documented. Markdown link checks and secrets-baseline metadata are also updated.

Changes

MCP cryptography dependency update

Layer / File(s) Summary
Update MCP dependency overrides
mcp/pyproject.toml, mcp/SECURITY.md, mcp/README.md, AGENTS.md
The MCP configuration and security policy now use cryptography 50.0.0. Overrides cover langchain-litellm, nvidia-nat-core, and oci.
Document the audited platform profile
README.md, mcp/README.md, docs/source/deployment/docker-build.md, docs/source/integration/mcp-server.md
Documentation identifies Linux x86_64 with CPython 3.13 as the release-supported profile. It documents container usage and unsupported macOS and 32-bit Windows targets.
Align runtime validation and packaging tests
mcp/scripts/check_runtime_dependencies.py, mcp/tests/*
Runtime checks and tests validate the 50.0.0 baseline, all three dependency overrides, and the documented security-policy contracts.

Repository maintenance updates

Layer / File(s) Summary
Ignore build.nvidia.com links
ci/markdown-link-check-config.json
The link-check configuration ignores https://build.nvidia.com URLs with optional paths.
Refresh secrets baseline metadata
.secrets.baseline
The baseline updates a recorded README line number and its generation timestamp.

Estimated code review effort: 2 (Simple) | ~10 minutes

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description explains the changes and validation, but it omits the required DCO sign-off, validation checklist, reviewer starting point, and related-issues section. Add the required template sections, replace the DCO placeholder with a valid sign-off, and complete the validation checklist.
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 (3 passed)
Check name Status Explanation
Title check ✅ Passed The title follows Conventional Commits format, uses an allowed type and scope, stays under 72 characters, and summarizes the CI release-check fix.
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.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ajay/ci-unblock-aug-2026

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

@AjayThorve
AjayThorve marked this pull request as ready for review August 4, 2026 17:04
@AjayThorve
AjayThorve requested a review from a team August 4, 2026 17:04
@AjayThorve AjayThorve added this to the v2.2 milestone Aug 4, 2026

@KyleZheng1284 KyleZheng1284 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Agent-assisted review by Codex of b2c8e11fafd080f23f9528463ec00ae40aa2a553 against release/2.2. The API/config surface is unchanged, and the local MCP suite plus the Linux container CI path pass. I found two compatibility/documentation items that should be addressed before describing the PR as fully non-breaking; details are inline.

Comment thread mcp/pyproject.toml
Comment thread mcp/README.md
@copy-pr-bot

copy-pr-bot Bot commented Aug 4, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

Signed-off-by: Ajay Thorve <athorve@nvidia.com>
@AjayThorve
AjayThorve force-pushed the ajay/ci-unblock-aug-2026 branch from 69ded0b to d47356e Compare August 4, 2026 19:26
@tanleach

tanleach commented Aug 4, 2026

Copy link
Copy Markdown
Collaborator

/ok to test d47356e

@AjayThorve
AjayThorve requested a review from tanleach August 4, 2026 20:28

@tanleach tanleach left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks for this! LGTM

@AjayThorve

Copy link
Copy Markdown
Member Author

/merge

@rapids-bot
rapids-bot Bot merged commit f804ed4 into release/2.2 Aug 4, 2026
11 checks passed
rapids-bot Bot pushed a commit that referenced this pull request Aug 4, 2026
#### Overview

Some OpenAI-compatible frontier providers return the requested Pydantic contract as schema-valid JSON in ordinary assistant content instead of emitting the structured-output tool call. In deep research, that prevents `SourceRoutingPlan`, `ResearchPlan`, or `ResearchNotes` from reaching the persistence middleware and can leave the workflow retrying a completed stage.

This change:

- promotes exact, schema-valid JSON assistant content to the requested structured response;
- makes at most one tools-disabled corrective call for empty or invalid plain-text responses, so the fallback cannot spiral;
- leaves native structured responses and ordinary tool calls unchanged;
- applies the compatibility middleware only at the source-router, planner, and researcher structured-response boundaries; and
- updates the existing frontier profile to use the direct OpenAI provider with `OPENAI_API_KEY`: GPT Sol for orchestration, planning, and writing, and GPT Luna for source routing and research.

The default Ultra profile is unchanged.

#### DCO sign-off for the squash commit

Signed-off-by: Ajay Thorve <athorve@nvidia.com>

#### Validation

- [x] `uv run ruff check .`
- [x] `uv run pytest -q` — 2022 passed, 13 skipped
- [x] Focused post-format run — 183 passed
- [x] `uv run nat validate --config_file configs/config_frontier_models.yml`
- [x] `uv run nat validate --config_file configs/config_web_default_llamaindex.yml`
- [x] GPT Sol/Luna semantic smoke advanced through routing, planning, research, and writing with a non-sentinel cited report.
- [x] Deterministic 20-task GPT DRB-II pilot completed with 20/20 generation and 20/20 official judge coverage.
- [x] Patched-runtime Ultra regression smoke completed a DRB-II task with a 24.6k-character cited report, 1/1 clean collection, and no fallback correction. Harbor used one internal retry before the successful attempt.
- [x] I added or updated tests for behavior changes.
- [x] Documentation changes are not required; the user-facing frontier example config is updated directly.
- [x] I confirmed this PR does not include secrets, credentials, internal endpoints, or internal-only data.
- [x] I certify this contribution under the Developer Certificate of Origin (DCO) and signed my commit with `git commit -s`.
- [x] I replaced the DCO sign-off placeholder with my GitHub commit identity and kept the required angle brackets around the email address.

The remaining all-files Markdown-link and dependency-audit failures are release-branch-wide CI issues unrelated to this diff and are addressed separately by #415.

#### Where should reviewers start?

Start with `StructuredResponseTextFallbackMiddleware` in `custom_middleware.py`, then its three placements in `factory.py`, and finally the direct-OpenAI Sol/Luna role split in `config_frontier_models.yml`.

#### Related Issues

- Relates to the model endpoint deprecation migration.



## Summary by CodeRabbit

* **New Features**
  * Improved deep-research reliability by automatically correcting responses that do not match the expected structured format.
  * Preserved valid structured responses while retrying invalid responses without tool calls.

* **Configuration**
  * Updated frontier-model workflows to use GPT Sol and GPT Luna for orchestration, planning, writing, routing, and research.
  * Updated model inference settings and token limits.

* **Tests**
  * Added coverage for structured-response recovery, retry behavior, middleware integration, and frontier-model configuration.

Authors:
  - Ajay Thorve (https://github.com/AjayThorve)

Approvers:
  - Chantal D Gama Rose (https://github.com/cdgamarose-nv)

URL: #413
cdgamarose-nv pushed a commit to cdgamarose-nv/aiq that referenced this pull request Aug 10, 2026
## Summary

- keep repository-wide Markdown link validation, but skip `build.nvidia.com` because NVIDIA Build returns HTTP 202 for valid pages and the checker treats that response as dead
- update the isolated MCP release lock from `aiohttp` 3.14.1 to 3.14.3 and from `cryptography` 48.0.1 to 50.0.0, resolving the newly published advisories blocking every PR
- preserve fail-closed runtime dependency validation with exact compatibility exceptions for `langchain-litellm`, `nvidia-nat-core`, and `oci`
- update the MCP security documentation and compatibility tests to match the audited release profile

## Root cause

PR NVIDIA-AI-Blueprints#413 exposed two release-branch-wide CI failures unrelated to its GPT compatibility diff:

1. NVIDIA Build began returning HTTP 202 for valid public model and documentation pages. `markdown-link-check` classified every such page as dead.
2. New `aiohttp` and `cryptography` advisories were published after the current MCP release lock was created. The required production audit correctly rejected the vulnerable versions.

## Validation

- full `pre-commit run --all-files`
- MCP suite: 238 passed, 18 skipped
- CI script test harness: 11 passed, 0 failed
- production-only MCP sync and runtime import canary
- production vulnerability gate: 308 packages audited, 0 vulnerabilities
- CycloneDX SBOM and license inventory generation
- MCP wheel build and license-file assertion

The local Docker daemon was not running, so the Compose health/protocol smoke was not reproduced locally; GitHub Actions will exercise that boundary.



## Summary by CodeRabbit

* **Documentation**
  * Updated MCP release and security guidance for `cryptography` 50.0.0.
  * Clarified Linux x86_64 with CPython 3.13 support, container usage, and development-only platforms.
  * Documented unsupported macOS and 32-bit Windows configurations.

* **Chores**
  * Updated dependency resolution and validation rules for the new security baseline.
  * Excluded NVIDIA Build URLs from automated Markdown link checking.

* **Tests**
  * Expanded coverage for dependency compatibility and platform policy consistency.

Authors:
  - Ajay Thorve (https://github.com/AjayThorve)

Approvers:
  - Tanner Leach (https://github.com/tanleach)

URL: NVIDIA-AI-Blueprints#415
cdgamarose-nv pushed a commit to cdgamarose-nv/aiq that referenced this pull request Aug 10, 2026
#### Overview

Some OpenAI-compatible frontier providers return the requested Pydantic contract as schema-valid JSON in ordinary assistant content instead of emitting the structured-output tool call. In deep research, that prevents `SourceRoutingPlan`, `ResearchPlan`, or `ResearchNotes` from reaching the persistence middleware and can leave the workflow retrying a completed stage.

This change:

- promotes exact, schema-valid JSON assistant content to the requested structured response;
- makes at most one tools-disabled corrective call for empty or invalid plain-text responses, so the fallback cannot spiral;
- leaves native structured responses and ordinary tool calls unchanged;
- applies the compatibility middleware only at the source-router, planner, and researcher structured-response boundaries; and
- updates the existing frontier profile to use the direct OpenAI provider with `OPENAI_API_KEY`: GPT Sol for orchestration, planning, and writing, and GPT Luna for source routing and research.

The default Ultra profile is unchanged.

#### DCO sign-off for the squash commit

Signed-off-by: Ajay Thorve <athorve@nvidia.com>

#### Validation

- [x] `uv run ruff check .`
- [x] `uv run pytest -q` — 2022 passed, 13 skipped
- [x] Focused post-format run — 183 passed
- [x] `uv run nat validate --config_file configs/config_frontier_models.yml`
- [x] `uv run nat validate --config_file configs/config_web_default_llamaindex.yml`
- [x] GPT Sol/Luna semantic smoke advanced through routing, planning, research, and writing with a non-sentinel cited report.
- [x] Deterministic 20-task GPT DRB-II pilot completed with 20/20 generation and 20/20 official judge coverage.
- [x] Patched-runtime Ultra regression smoke completed a DRB-II task with a 24.6k-character cited report, 1/1 clean collection, and no fallback correction. Harbor used one internal retry before the successful attempt.
- [x] I added or updated tests for behavior changes.
- [x] Documentation changes are not required; the user-facing frontier example config is updated directly.
- [x] I confirmed this PR does not include secrets, credentials, internal endpoints, or internal-only data.
- [x] I certify this contribution under the Developer Certificate of Origin (DCO) and signed my commit with `git commit -s`.
- [x] I replaced the DCO sign-off placeholder with my GitHub commit identity and kept the required angle brackets around the email address.

The remaining all-files Markdown-link and dependency-audit failures are release-branch-wide CI issues unrelated to this diff and are addressed separately by NVIDIA-AI-Blueprints#415.

#### Where should reviewers start?

Start with `StructuredResponseTextFallbackMiddleware` in `custom_middleware.py`, then its three placements in `factory.py`, and finally the direct-OpenAI Sol/Luna role split in `config_frontier_models.yml`.

#### Related Issues

- Relates to the model endpoint deprecation migration.



## Summary by CodeRabbit

* **New Features**
  * Improved deep-research reliability by automatically correcting responses that do not match the expected structured format.
  * Preserved valid structured responses while retrying invalid responses without tool calls.

* **Configuration**
  * Updated frontier-model workflows to use GPT Sol and GPT Luna for orchestration, planning, writing, routing, and research.
  * Updated model inference settings and token limits.

* **Tests**
  * Added coverage for structured-response recovery, retry behavior, middleware integration, and frontier-model configuration.

Authors:
  - Ajay Thorve (https://github.com/AjayThorve)

Approvers:
  - Chantal D Gama Rose (https://github.com/cdgamarose-nv)

URL: NVIDIA-AI-Blueprints#413
@AjayThorve
AjayThorve deleted the ajay/ci-unblock-aug-2026 branch September 2, 2026 22:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants