Skip to content
Open
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
2 changes: 1 addition & 1 deletion .agents/skills/launch-openshell-gator/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -371,7 +371,7 @@ Symptoms: Dockerfile step failure, missing package, incompatible Codex CLI, regi
Actions:

- Confirm the build context is `scripts/agents/gator/` or the intended temporary `--from` context.
- Confirm Docker or the selected gateway runtime can pull `nvcr.io/nvidia/base/ubuntu:noble-20251013`.
- Confirm Docker or the selected gateway runtime can pull `nvcr.io/nvidia/base/ubuntu:noble-20260917`.
- For Codex CLI version experiments, adjust a temporary Docker context first.
- Do not commit Dockerfile version changes unless the repo should permanently use that version.

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/branch-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ jobs:
- name: Install uv
uses: astral-sh/setup-uv@ae62891fec2bb8e7d6c99fc78c9fec3a63790f8d # v10.0.0
with:
version: "0.10.12"
version: "0.13.4"
python-version: "3.13"

- name: Test docs navigation check
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/e2e-docker-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
matrix:
include: ${{ fromJSON(inputs.suite-matrix) }}
container:
image: ghcr.io/nvidia/openshell/ci:37072ee81cd7b294c714bfa5ecc829b6927b3d70@sha256:ffa96b8009de6e28bbf157060440c3abb312d3bcda444e9571c539c8c6115615
image: ghcr.io/nvidia/openshell/ci:9cb72baa2e61a1b5f12407e6e82da7fdba0aa722@sha256:67a9a0c32cb99825e6d3e9d9eec45d67149ea1ff7c11a1b1e1b3480d2d3df684
credentials:
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
Expand Down Expand Up @@ -100,6 +100,9 @@ jobs:
- name: Log in to GHCR
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u "${GITHUB_ACTOR}" --password-stdin

- name: Install pinned uv
run: mise install --locked uv

- name: Install Python dependencies and generate protobuf stubs
if: matrix.python_proto
run: uv sync --frozen && mise run --no-deps python:proto
Expand Down
8 changes: 8 additions & 0 deletions .github/workflows/release-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,11 @@ jobs:
- name: Fetch tags
run: git fetch --tags --force

- name: Install pinned uv
env:
MISE_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: mise install --locked uv

- name: Compute all versions
id: v
run: |
Expand Down Expand Up @@ -220,6 +225,9 @@ jobs:
- name: Mark workspace safe for git
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"

- name: Install pinned uv
run: mise install --locked uv

- name: Sync Python dependencies
run: uv sync

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
concurrency:
group: ${{ inputs.notes-only && format('release-notes-preview-{0}', github.ref) || 'release-stable' }}
cancel-in-progress: false
queue: max

Check failure on line 25 in .github/workflows/release.yml

View workflow job for this annotation

GitHub Actions / Actionlint (informational)

unexpected key "queue" for "concurrency" section. expected one of "cancel-in-progress", "group"

jobs:
preview-notes:
Expand Down Expand Up @@ -63,7 +63,7 @@

- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
with:
version: "0.10.12"
version: "0.13.4"
python-version: "3.13"

- name: Select candidate and verify qualification evidence
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sync-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@
concurrency:
group: docs-website
cancel-in-progress: false
queue: max

Check failure on line 106 in .github/workflows/sync-docs.yml

View workflow job for this annotation

GitHub Actions / Actionlint (informational)

unexpected key "queue" for "concurrency" section. expected one of "cancel-in-progress", "group"

defaults:
run:
Expand Down Expand Up @@ -163,7 +163,7 @@
- name: Install uv
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
with:
version: "0.10.12"
version: "0.13.4"
python-version: "3.13"

- name: Update docs snapshot
Expand Down
2 changes: 1 addition & 1 deletion deploy/docker/Dockerfile.ci
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# CI runner image with all development tools pre-installed
# Rebuild triggered automatically when mise.toml, mise.lock, tasks, or this file changes

FROM nvcr.io/nvidia/base/ubuntu:noble-20251013
FROM nvcr.io/nvidia/base/ubuntu:noble-20260917

ARG DOCKER_VERSION=29.5.1
ARG BUILDX_VERSION=v0.34.0
Expand Down
2 changes: 1 addition & 1 deletion deploy/docker/Dockerfile.gateway
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
#
# Distroless Debian provides the glibc runtime required by the binary.

ARG GATEWAY_BASE_IMAGE=gcr.io/distroless/cc-debian13:nonroot@sha256:e792ab3d241a468a4fd7519ddbbebe66b49b5f365771716ea688ad40b6c6f1c2
ARG GATEWAY_BASE_IMAGE=gcr.io/distroless/cc-debian13:nonroot@sha256:b7e81cb1af38d9345680e68bcf564d388f96304e25222030fc8c051faf8565b3
FROM ${GATEWAY_BASE_IMAGE} AS gateway

ARG TARGETARCH
Expand Down
2 changes: 1 addition & 1 deletion deploy/docker/Dockerfile.supervisor
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

# Keep the GNU runtime and CA roots without a shell or unused native TLS libraries.
# The default variant preserves UID 0 and /; compute drivers set the runtime UID.
ARG SUPERVISOR_BASE_IMAGE=gcr.io/distroless/base-nossl-debian13@sha256:af5cb8dd589b8520b8c06bebb9efb73d7e16406cab58e85c51761fff49d370a0
ARG SUPERVISOR_BASE_IMAGE=gcr.io/distroless/base-nossl-debian13@sha256:5ed6ba458b0e71eb06dba4395bfc9a86a8b914a858fea139fd45f92cf88c79d0
FROM ${SUPERVISOR_BASE_IMAGE} AS supervisor

ARG TARGETARCH
Expand Down
5 changes: 4 additions & 1 deletion docs/sdk/go.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,10 @@ patterns. Use the SDK and gateway from the same OpenShell release when possible.

## Install the SDK

The SDK requires Go 1.25.13 or later. Add it to your Go module:
The SDK requires Go 1.26.10 or later. On Go 1.27, use at least 1.27.3.
Rebuild existing SDK applications after upgrading Go.

Add it to your Go module:

```shell
go get github.com/NVIDIA/OpenShell/sdk/go@latest
Expand Down
6 changes: 6 additions & 0 deletions docs/security/verify-image-contents.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,12 @@ The same commands work for `ghcr.io/nvidia/openshell/supervisor`.

Every SBOM lists the base-image packages. Release Dev, Release, and Pre-release images also list the Rust crates compiled into their OpenShell binary.

CA trust-store fixes can change a certificate bundle without changing the
package version reported in the SBOM. Verify the certificate bundle from the
deployed image as well. Updating a binary does not replace the system trust
store in gateway, supervisor, or workload images; rebuild and redeploy those
images to apply trust-store fixes.

<Note>
OpenShell also publishes minimal SLSA provenance. It records how BuildKit produced the image, including its source revision, build platform, and base-image materials, without the extra build parameters included by full provenance.
</Note>
2 changes: 1 addition & 1 deletion e2e/docker/Dockerfile.external-kubernetes-gateway
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

ARG GATEWAY_BASE_IMAGE=gcr.io/distroless/cc-debian13:nonroot@sha256:d97bc0a941b8d4be647dc0ee75b264ddbb772f1ac5ba690a4309c00723b23775
ARG GATEWAY_BASE_IMAGE=gcr.io/distroless/cc-debian13:nonroot@sha256:b7e81cb1af38d9345680e68bcf564d388f96304e25222030fc8c051faf8565b3
FROM ${GATEWAY_BASE_IMAGE}

ARG TARGETARCH
Expand Down
2 changes: 1 addition & 1 deletion e2e/mcp-conformance/Dockerfile.client
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

FROM public.ecr.aws/docker/library/node:22-bookworm-slim
FROM public.ecr.aws/docker/library/node:22.23.4-bookworm-slim@sha256:5991875dfb80938dd8a6ba3fe3e96fd04929e70792762b3319d8caadbbe229bc

RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates iproute2 \
Expand Down
2 changes: 1 addition & 1 deletion e2e/python/Dockerfile.workload
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# SPDX-License-Identifier: Apache-2.0

ARG WORKLOAD_BASE=nvcr.io/nvidia/base/ubuntu:24.04
FROM ghcr.io/astral-sh/uv:0.12.17@sha256:10787c682e4184e4f290de1171fd4703dc63de99221f10fe1c99002ce7fa9acc AS uv
FROM ghcr.io/astral-sh/uv:0.13.4@sha256:9f130421e930bfbdc563c00740466603f8723158e90297d07957c2294640262b AS uv
FROM ${WORKLOAD_BASE}

COPY --from=uv /uv /uvx /usr/local/bin/
Expand Down
2 changes: 1 addition & 1 deletion e2e/rust/src/harness/sandbox.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ pub const E2E_WORKLOAD_IMAGE: &str = "openshell/e2e-python:dev";
/// Preserve the existing pullable fixture for E2E lanes that cannot build the
/// local container-engine fixture.
#[cfg(not(any(feature = "e2e-docker", feature = "e2e-podman")))]
pub const E2E_WORKLOAD_IMAGE: &str = "ghcr.io/astral-sh/uv:0.12.17-python3.12-trixie-slim@sha256:9a59bb7206905ccaae4f7dab222fbac47c125a21e5fc16f43f427cd6c940ade3";
pub const E2E_WORKLOAD_IMAGE: &str = "ghcr.io/astral-sh/uv:0.13.4-python3.12-trixie-slim@sha256:0d42b7b065ada5139af940bf3fb178b926675450e786badc854c9f73736cc6c4";

/// Extract the sandbox name from CLI create output.
///
Expand Down
17 changes: 17 additions & 0 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
inputs = {
flake-utils.url = "github:numtide/flake-utils";
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixpkgs-uv.url = "github:NixOS/nixpkgs/7bfe60fe75d8c7171b95e6ec2d610d4778cc549b";
# Keep the QEMU and OVMF runtime used by Apple Silicon test guests on a
# known-good release. Development shells and cross toolchains use nixpkgs.
nixpkgs-test-guest.url = "github:NixOS/nixpkgs/0954f7ee2f6bb3dc7d4e3d0d8bcb8fd4bde4cfc5";
Expand All @@ -32,6 +33,7 @@
{
flake-utils,
nixpkgs,
nixpkgs-uv,
nixpkgs-test-guest,
treefmt-nix,
rust-overlay,
Expand Down Expand Up @@ -70,7 +72,7 @@
kubernetes-helm
syft
trivy
uv
nixpkgs-uv.legacyPackages.${system}.uv
yq-go
zizmor
zstd
Expand Down
76 changes: 38 additions & 38 deletions mise.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions mise.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@ lockfile_platforms = ["linux-x64", "linux-arm64", "macos-arm64", "windows-x64",
[tools]
python = "3.14.5"
rust = "1.95.0"
node = "24.15.0"
node = "24.22.1"
kubectl = { version = "1.36.1", version_prefix = "v" }
uv = "0.10.12"
uv = "0.13.4"
protoc = "29.6"
go = "1.26.7"
go = "1.26.10"
"go:github.com/golangci/golangci-lint/v2/cmd/golangci-lint" = "2.12"
"go:google.golang.org/protobuf/cmd/protoc-gen-go" = "1.36.11"
"go:google.golang.org/grpc/cmd/protoc-gen-go-grpc" = "1.6.2"
Expand Down
4 changes: 2 additions & 2 deletions scripts/agents/gator/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
# tooling, but keeps the initial agent surface focused on Codex + GitHub tooling
# for the gator-gate workflow.

FROM nvcr.io/nvidia/base/ubuntu:noble-20251013 AS system
FROM nvcr.io/nvidia/base/ubuntu:noble-20260917 AS system

ENV DEBIAN_FRONTEND=noninteractive \
PYTHONDONTWRITEBYTECODE=1 \
Expand Down Expand Up @@ -50,7 +50,7 @@ RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && \
git \
jq \
less \
nodejs=22.22.1-1nodesource1 \
nodejs=22.23.4-1nodesource1 \
ripgrep \
vim-tiny \
nano \
Expand Down
2 changes: 1 addition & 1 deletion sdk/go/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ stream completion.

## Prerequisites

- Go 1.25.13 or later
- Go 1.26.10 or later. On Go 1.27, use at least 1.27.3.
- [mise](https://mise.jdx.dev) (recommended for reproducible builds)

## Build and Test
Expand Down
Loading
Loading