Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions docs/get-started/dgx-station-preparation.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ NemoClaw also recognizes these exact no-OTA factory profiles for bounded qualifi
Each profile requires `DGX_PLATFORM=DGX Server for GALAXY-GB300`, requires every `DGX_OTA_*` field to be absent, and requires every profile-specific field below:

- April 2026 NVIDIA Colossus BaseOS with `DGX_PRETTY_NAME=NVIDIA DGX Server`, `DGX_SWBUILD_VERSION=7.5.0-GB300ws-GB200ws`, and `DGX_SWBUILD_DATE=2026-04-02-08-20-16`.
- June 2026 NVIDIA AI Developer Tools with `DGX_PRETTY_NAME=NVIDIA DGX GB300WS`, `DGX_SWBUILD_VERSION=7.5.0`, and `DGX_SWBUILD_DATE=2026-06-16-11-48-10`.
- May and June 2026 NVIDIA AI Developer Tools with `DGX_PRETTY_NAME=NVIDIA DGX GB300WS`, `DGX_SWBUILD_VERSION=7.5.0`, and `DGX_SWBUILD_DATE` set to `2026-05-13-18-42-38` or `2026-06-16-11-48-10`.

By default, an unknown version, malformed or unsafe marker, unmatched no-OTA factory image, or other Station generation stops before host preparation.
On an unqualified system, set `NEMOCLAW_PROVIDER` or `NEMOCLAW_NO_EXPRESS=1` explicitly to continue without Station host automation.
Expand Down Expand Up @@ -154,7 +154,8 @@ The Colossus BaseOS path still blocks on `packagekitd`, while generic Ubuntu qui
When that CDI device is missing, the AI Developer Tools path first confirms that no workloads are active, then enables the packaged `nvidia-cdi-refresh.path` and `nvidia-cdi-refresh.service` units, starts the path unit, restarts the refresh service, and checks the device again.
It stops with service diagnostics if packaged refresh fails or omits the device.
It never generates CDI directly, rewrites the Docker runtime, or restarts Docker or containerd.
This compatibility repair is owned by the June 2026 AI Developer Tools factory-image boundary, which can leave its packaged CDI units disabled; it can be removed after repeat clean-host qualification shows that the qualified image consistently advertises `nvidia.com/gpu=all` at boot.
The qualified May and June 2026 AI Developer Tools factory-image boundary defines this compatibility repair because those images can leave their packaged CDI units disabled.
NemoClaw maintainers can remove the repair after repeated clean-host qualification confirms that the qualified images consistently advertise `nvidia.com/gpu=all` at boot.
The Colossus BaseOS path requires the exact reviewed package and failed-service fingerprints, preserves the factory kernel, driver, DKMS, Docker, and NVIDIA Container Toolkit packages, and prepares only Docker access and packaged CDI.
Only the Colossus BaseOS path registers the NVIDIA Docker runtime when the launch probe proves that the runtime is missing, and it restores the prior daemon configuration if registration fails.
The preparation helper writes a private audit log under `~/station-bootstrap-logs`.
Expand Down
11 changes: 6 additions & 5 deletions scripts/prepare-dgx-station-host.sh
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,8 @@ dgx_station_release_profile() {
"NVIDIA DGX Server|7.5.0-GB300ws-GB200ws|2026-04-02-08-20-16")
printf '%s' supported-colossus-baseos
;;
"NVIDIA DGX GB300WS|7.5.0|2026-06-16-11-48-10")
"NVIDIA DGX GB300WS|7.5.0|2026-05-13-18-42-38" | \
"NVIDIA DGX GB300WS|7.5.0|2026-06-16-11-48-10")
printf '%s' supported-ai-developer-tools
;;
*) return 1 ;;
Expand Down Expand Up @@ -2415,10 +2416,10 @@ verify_dgx_os_runtime_sudo() {
|| fatal "The local Docker daemon is not reachable with sudo on the Station factory image"
station_sudo_local_default_docker buildx version >/dev/null 2>&1 \
|| fatal "Docker Buildx is unavailable on the Station factory image"
# The June 2026 AI Developer Tools factory image can leave its packaged CDI
# refresh units disabled. Image production owns that source state; remove
# this repair after clean-host qualification consistently supplies the CDI
# device at boot.
# The qualified May and June 2026 AI Developer Tools factory images can leave
# their packaged CDI refresh units disabled. Image production owns that
# source state; remove this repair after clean-host qualification consistently
# supplies the CDI device at boot.
if [[ "$STATION_HOST_PROFILE" == "ai-developer-tools" ]]; then
if sudo nvidia-ctk cdi list | grep -Fxq 'nvidia.com/gpu=all'; then
info "cdi=nvidia.com/gpu=all source=factory_runtime"
Expand Down
11 changes: 11 additions & 0 deletions src/lib/readiness/platform-qualification.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -388,6 +388,17 @@ describe("platform readiness qualification (#7410)", () => {
});
});

it("classifies the exact GB300WS 7.5.0 build 2026-05-13-18-42-38 as supported-ai-developer-tools (#7979)", () => {
expect(
collectStationIdentity(
noOtaStationRelease({ version: "7.5.0", buildDate: "2026-05-13-18-42-38" }),
),
).toMatchObject({
stationProfile: "supported-ai-developer-tools",
stationGb300PciGpu: true,
});
});

it.each([
["different lineage", { prettyName: "NVIDIA DGX Server" }],
["older no-OTA version", { version: "7.5.0" }],
Expand Down
3 changes: 3 additions & 0 deletions src/lib/readiness/platform-qualification.ts
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,9 @@ function parseStationRelease(contents: string): StationProfile {
if (identity === "NVIDIA DGX GB300WS|7.5.0|2026-06-16-11-48-10") {
return "supported-ai-developer-tools";
}
if (identity === "NVIDIA DGX GB300WS|7.5.0|2026-05-13-18-42-38") {
return "supported-ai-developer-tools";
}
return "unsupported-dgx-os";
}

Expand Down
11 changes: 11 additions & 0 deletions test/install-express-prompt.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1189,6 +1189,17 @@ detect_express_platform
expect(result.stdout).toBe("DGX Station");
});

it("classifies the exact GB300WS 7.5.0 build 2026-05-13-18-42-38 as Station Express (#7979)", () => {
const release = noOtaFactoryRelease("ai-developer-tools").replace(
"2026-06-16-11-48-10",
"2026-05-13-18-42-38",
);
const result = detectExpressPlatformForStockDgxRelease("DGX Station GB300", release);

expect(result.status, `${result.stdout}${result.stderr}`).toBe(0);
expect(result.stdout).toBe("DGX Station");
});

it("requires explicit intent before treating unrecognized metadata as Station Express", () => {
const releasePath = path.join(
fs.mkdtempSync(path.join(os.tmpdir(), "nemoclaw-dgx-release-force-")),
Expand Down
21 changes: 18 additions & 3 deletions test/install-station-dgx-os.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -198,9 +198,24 @@ describe("DGX Station stock DGX OS classification", () => {
});

it.each([
["supported-colossus-baseos", writeNoOtaFactoryRelease("colossus-baseos")],
["supported-ai-developer-tools", writeNoOtaFactoryRelease("ai-developer-tools")],
])("accepts the exact no-OTA factory profile as %s", (expected, release) => {
[
"April 2026 Colossus BaseOS",
"supported-colossus-baseos",
writeNoOtaFactoryRelease("colossus-baseos"),
],
[
"June 2026 AI Developer Tools",
"supported-ai-developer-tools",
writeNoOtaFactoryRelease("ai-developer-tools"),
],
[
"May 2026 AI Developer Tools build 2026-05-13-18-42-38",
"supported-ai-developer-tools",
writeNoOtaFactoryRelease("ai-developer-tools", {
buildDate: "2026-05-13-18-42-38",
}),
],
])("accepts the exact no-OTA %s profile as %s", (_scenario, expected, release) => {
const { result, output } = runSourced(
STATION_PREPARE,
`
Expand Down
Loading