From e0a0a31dff28081fa329749bd9061847e87b96b3 Mon Sep 17 00:00:00 2001 From: faranm-stack <318811131+faranm-stack@users.noreply.github.com> Date: Fri, 23 Oct 2026 15:57:20 -0400 Subject: [PATCH 1/3] Fix certifi advisory and release smoke import path in nvidia-alchemi - Bump certifi to 2026.10.19 (GHSA-6q48-6c7w-9gw2, critical), which dependency review flagged after the previous fixes merged. - Let the checkpoint downloader tests locate /app/build themselves, so `python /app/release_smoke.py` runs unchanged in the deployed image. Image-build tests now run with the runtime PYTHONPATH to catch this. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- agents/nvidia-alchemi/CHANGELOG.md | 6 +++++- agents/nvidia-alchemi/README.md | 6 +++--- agents/nvidia-alchemi/tools/nvidia-alchemi/Dockerfile | 2 +- .../tools/nvidia-alchemi/requirements-build.txt | 2 +- .../nvidia-alchemi/tests/test_download_checkpoints.py | 8 ++++++++ 5 files changed, 18 insertions(+), 6 deletions(-) diff --git a/agents/nvidia-alchemi/CHANGELOG.md b/agents/nvidia-alchemi/CHANGELOG.md index adbb4e3..4c9a49a 100644 --- a/agents/nvidia-alchemi/CHANGELOG.md +++ b/agents/nvidia-alchemi/CHANGELOG.md @@ -14,6 +14,8 @@ checkpoint bytes are unchanged from 1.1.1. - Updated GitPython, hydra-core, multidict and urllib3 to patched versions after dependency review identified published advisories. +- Updated certifi to 2026.10.19 to remove the compromised emSign root CAs + (GHSA-6q48-6c7w-9gw2). - Checkpoints are downloaded, size/hash verified, and only then deserialized. - Runtime learned-model aliases resolve only to hash-verified checkpoints baked into the image; explicit existing local paths remain available for training @@ -36,7 +38,9 @@ checkpoint bytes are unchanged from 1.1.1. ### Fixed - Image-build tests can import the checkpoint downloader from `/app/build` - without adding that directory to the runtime import path. + without adding that directory to the runtime import path, so + `python /app/release_smoke.py` runs unchanged in the deployed image. Image-build + tests now run with the runtime `PYTHONPATH` to catch import-path regressions. - Screening validation tests explicitly use the selected test device, and the release-manifest test checks the shared AIMNet cache under `/opt/cache/aimnet`. diff --git a/agents/nvidia-alchemi/README.md b/agents/nvidia-alchemi/README.md index e52dfef..1b8ea8f 100644 --- a/agents/nvidia-alchemi/README.md +++ b/agents/nvidia-alchemi/README.md @@ -139,11 +139,11 @@ cannot alone prove logical independence; callers must retain real observations. Tests are in [tools/nvidia-alchemi/tests](tools/nvidia-alchemi/tests). Run them using Python's `unittest` discovery with the tool directory on `PYTHONPATH`; no pytest -dependency is required. Inside the image, include `/app/build` for the checkpoint -downloader tests: +dependency is required. Inside the image, the runtime `PYTHONPATH` is sufficient; the +checkpoint downloader tests locate `/app/build` themselves: ```bash -PYTHONPATH=/app:/app/build python -B -m unittest discover -s /app/tests -v +python -B -m unittest discover -s /app/tests -v ``` Image-build tests explicitly use the CPU test path. Set `ALCHEMI_TEST_GPU=1` on diff --git a/agents/nvidia-alchemi/tools/nvidia-alchemi/Dockerfile b/agents/nvidia-alchemi/tools/nvidia-alchemi/Dockerfile index 8e281c6..5e074ac 100644 --- a/agents/nvidia-alchemi/tools/nvidia-alchemi/Dockerfile +++ b/agents/nvidia-alchemi/tools/nvidia-alchemi/Dockerfile @@ -54,6 +54,6 @@ ENV PYTHONPATH="/app" \ ALCHEMI_AGENT_RELEASE="1.1.2" \ ALCHEMI_BASE_IMAGE="${BASE_IMAGE}" RUN python /app/build_release_manifest.py \ - && PYTHONPATH="/app:/app/build" python -B -m unittest discover -s /app/tests -v + && python -B -m unittest discover -s /app/tests -v WORKDIR /app/workdir CMD ["/bin/bash"] diff --git a/agents/nvidia-alchemi/tools/nvidia-alchemi/requirements-build.txt b/agents/nvidia-alchemi/tools/nvidia-alchemi/requirements-build.txt index d971563..30f818a 100644 --- a/agents/nvidia-alchemi/tools/nvidia-alchemi/requirements-build.txt +++ b/agents/nvidia-alchemi/tools/nvidia-alchemi/requirements-build.txt @@ -19,7 +19,7 @@ beartype==0.22.9 bibtexparser==1.4.4 botocore==1.43.56 cachetools==7.1.7 -certifi==2026.7.22 +certifi==2026.10.19 cftime==1.6.5 charset-normalizer==3.5.1 click==8.4.2 diff --git a/agents/nvidia-alchemi/tools/nvidia-alchemi/tests/test_download_checkpoints.py b/agents/nvidia-alchemi/tools/nvidia-alchemi/tests/test_download_checkpoints.py index c15fd5f..399cb48 100644 --- a/agents/nvidia-alchemi/tools/nvidia-alchemi/tests/test_download_checkpoints.py +++ b/agents/nvidia-alchemi/tools/nvidia-alchemi/tests/test_download_checkpoints.py @@ -3,10 +3,18 @@ import hashlib import json from pathlib import Path +import sys import tempfile import unittest from unittest.mock import patch +# The downloader lives beside the tests in the repository and in /app/build in +# the image, which is deliberately not on the runtime PYTHONPATH. +_TOOL_DIR = Path(__file__).resolve().parents[1] +for _candidate in (_TOOL_DIR, _TOOL_DIR / "build"): + if (_candidate / "download_checkpoints.py").is_file() and str(_candidate) not in sys.path: + sys.path.append(str(_candidate)) + import download_checkpoints as downloader From 366533025e601af33960ac0512bb5bc5db38ef1e Mon Sep 17 00:00:00 2001 From: faranm-stack <318811131+faranm-stack@users.noreply.github.com> Date: Tue, 27 Oct 2026 18:10:08 -0400 Subject: [PATCH 2/3] Update nvidia-alchemi dependencies for newly reviewed advisories Dependency Review fails on high or critical advisories. These were reviewed after the previous update and affect the pinned versions: - Pillow 12.3.0 -> 13.0.0 (28 high/critical, including 5 critical) - GitPython 3.1.62 -> 3.2.1 (5 high) - aiohttp 3.14.3 -> 3.14.4 (3 high) - filelock 3.32.3 -> 4.2.1 (1 high) - hydra-core 1.3.7 -> 1.3.8 (1 high) - setuptools 84.0.0 -> 84.1.0 (1 low) No pinned package declares a conflict with these versions, and none of them has a known advisory. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- agents/nvidia-alchemi/CHANGELOG.md | 3 +++ .../tools/nvidia-alchemi/requirements-build.txt | 12 ++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/agents/nvidia-alchemi/CHANGELOG.md b/agents/nvidia-alchemi/CHANGELOG.md index 4c9a49a..304eb90 100644 --- a/agents/nvidia-alchemi/CHANGELOG.md +++ b/agents/nvidia-alchemi/CHANGELOG.md @@ -16,6 +16,9 @@ checkpoint bytes are unchanged from 1.1.1. dependency review identified published advisories. - Updated certifi to 2026.10.19 to remove the compromised emSign root CAs (GHSA-6q48-6c7w-9gw2). +- Updated aiohttp 3.14.4, filelock 4.2.1, GitPython 3.2.1, hydra-core 1.3.8 and + Pillow 13.0.0 for high and critical advisories reviewed after the previous + update, and setuptools 84.1.0 for a low-severity advisory. - Checkpoints are downloaded, size/hash verified, and only then deserialized. - Runtime learned-model aliases resolve only to hash-verified checkpoints baked into the image; explicit existing local paths remain available for training diff --git a/agents/nvidia-alchemi/tools/nvidia-alchemi/requirements-build.txt b/agents/nvidia-alchemi/tools/nvidia-alchemi/requirements-build.txt index 30f818a..b4be5dc 100644 --- a/agents/nvidia-alchemi/tools/nvidia-alchemi/requirements-build.txt +++ b/agents/nvidia-alchemi/tools/nvidia-alchemi/requirements-build.txt @@ -6,7 +6,7 @@ absl-py==2.5.0 aimnet==0.2.0 aiobotocore==3.9.0 aiohappyeyeballs==2.7.1 -aiohttp==3.14.3 +aiohttp==3.14.4 aioitertools==0.13.0 aiosignal==1.4.0 annotated-types==0.8.0 @@ -44,13 +44,13 @@ donfig==0.8.1.post1 e3nn==0.4.4 einops==0.8.2 fastrlock==0.8.3 -filelock==3.32.3 +filelock==4.2.1 fonttools==4.63.0 frozenlist==1.8.0 fsspec==2026.7.0 gast==0.7.0 gitdb==4.0.12 -GitPython==3.1.62 +GitPython==3.2.1 google-crc32c==1.8.0 h11==0.16.0 h5py==3.16.0 @@ -58,7 +58,7 @@ hf-xet==1.6.0 httpcore==1.0.9 httpx==0.28.1 huggingface_hub==1.28.0 -hydra-core==1.3.7 +hydra-core==1.3.8 idna==3.19 importlib_metadata==9.0.0 jaxtyping==0.3.11 @@ -136,7 +136,7 @@ packaging==26.2 palettable==3.3.3 pandas==2.3.3 periodictable==2.0.2 -pillow==12.3.0 +pillow==13.0.0 pip==26.2.1 platformdirs==4.11.3 plotext==5.3.2 @@ -169,7 +169,7 @@ safetensors==0.8.0 scikit-learn==1.9.0 scipy==1.18.0 seaborn==0.13.2 -setuptools==84.0.0 +setuptools==84.1.0 six==1.17.0 smmap==5.0.3 spglib==2.7.0 From cee6af3891f435fbe6a1d53dddfc0015a8ed022d Mon Sep 17 00:00:00 2001 From: faranm-stack <318811131+faranm-stack@users.noreply.github.com> Date: Tue, 27 Oct 2026 18:18:51 -0400 Subject: [PATCH 3/3] Pin yarl 1.25.1 for aiohttp 3.14.4 aiohttp 3.14.4 requires yarl>=1.25.1; the image build's pip check rejected yarl 1.24.5. An offline pip-check of all 198 pins finds no other violations, and yarl 1.25.1 has no known advisories. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- agents/nvidia-alchemi/CHANGELOG.md | 3 ++- .../nvidia-alchemi/tools/nvidia-alchemi/requirements-build.txt | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/agents/nvidia-alchemi/CHANGELOG.md b/agents/nvidia-alchemi/CHANGELOG.md index 304eb90..5b0e41f 100644 --- a/agents/nvidia-alchemi/CHANGELOG.md +++ b/agents/nvidia-alchemi/CHANGELOG.md @@ -18,7 +18,8 @@ checkpoint bytes are unchanged from 1.1.1. (GHSA-6q48-6c7w-9gw2). - Updated aiohttp 3.14.4, filelock 4.2.1, GitPython 3.2.1, hydra-core 1.3.8 and Pillow 13.0.0 for high and critical advisories reviewed after the previous - update, and setuptools 84.1.0 for a low-severity advisory. + update, and setuptools 84.1.0 for a low-severity advisory. yarl moves to 1.25.1, + the minimum aiohttp 3.14.4 requires. - Checkpoints are downloaded, size/hash verified, and only then deserialized. - Runtime learned-model aliases resolve only to hash-verified checkpoints baked into the image; explicit existing local paths remain available for training diff --git a/agents/nvidia-alchemi/tools/nvidia-alchemi/requirements-build.txt b/agents/nvidia-alchemi/tools/nvidia-alchemi/requirements-build.txt index b4be5dc..c050370 100644 --- a/agents/nvidia-alchemi/tools/nvidia-alchemi/requirements-build.txt +++ b/agents/nvidia-alchemi/tools/nvidia-alchemi/requirements-build.txt @@ -197,6 +197,6 @@ warp-lang==1.16.0 wcwidth==0.8.2 wheel==0.48.0 wrapt==2.3.0 -yarl==1.24.5 +yarl==1.25.1 zarr==3.3.0 zipp==4.1.0