Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
5fb8399
Merge pull request #293 from NVIDIA/keshavp/oss-release-2026-07-21
keshprad Jul 21, 2026
9a7ca11
fix(anthropic): honor ANTHROPIC_BASE_URL env override
psvaggelis Jul 17, 2026
ee0430e
docs(anthropic): remove stale provider reference
keshprad Jul 22, 2026
de2b3a3
Merge pull request #282 from psvaggelis/fix/anthropic-honor-base-url
keshprad Jul 22, 2026
ae4f86f
fix(provider): isolate Claude settings hooks in spawned CLI (#295)
rodboev Jul 22, 2026
a9616cb
fix(provider): align Claude fallback contract with settings isolation…
rodboev Jul 22, 2026
128dfe5
Clarify CLI runtime model fallback in provider docs
rodboev Jul 22, 2026
8255b60
Merge pull request #298 from rodboev/pr/claude-cli-setting-sources
keshprad Jul 22, 2026
a54947c
Sync OSS release snapshot 2.4.3 (#299)
keshprad Jul 23, 2026
e10806c
fix(anthropic): honor ANTHROPIC_BASE_URL env override (#301)
psvaggelis Jul 23, 2026
fd25398
Publish OSS release snapshot 2.4.4 (#306)
keshprad Jul 24, 2026
34f6030
feat: publish 2.5.0 execution accounting (#308)
keshprad Jul 27, 2026
da5cb13
feat(llm): make analyzer fan-out concurrency configurable via env (#305)
Mark2Mac Jul 30, 2026
3f11bfa
release: publish OSS snapshot 2.5.1 (#320)
keshprad Jul 31, 2026
e48fc1a
fix(input-handler): bound URL, zip, and git ingest paths (#164)
rcha0s Jul 31, 2026
1df69ad
fix(analyzer): reduce instructional-prose false positives in static s…
rodboev Jul 31, 2026
233e2cf
(chore) pin dependencies for workflows and Docker base images (#238)
smoy Jul 31, 2026
5b07626
Clarify current AST10 coverage boundaries (#288)
rodboev Jul 31, 2026
ada7c14
fix(nv_build): cover reported model metadata (#279)
rodboev Jul 31, 2026
e8e08c5
fix: read exact versions from Python lockfiles for OSV (#263)
Root-Aamir Jul 31, 2026
a818f50
feat(mcp): add registry posture scanning (#280)
rodboev Jul 31, 2026
ee9612c
fix: exclude valid OMS signatures from content analysis (#261)
major-security Aug 3, 2026
c54967a
Revert "Clarify current AST10 coverage boundaries (#288)" (#338)
keshprad Aug 3, 2026
bfdcd5e
fix(static): markdown table and quote syntax is not an execution sign…
Mark2Mac Aug 3, 2026
aefa482
fix(agent-cli): Windows temp-cwd cleanup must not fail a successful b…
ppcvote Aug 4, 2026
7e9c19d
fix(supply-chain): SC4 must not claim a vulnerability it did not veri…
Mark2Mac Aug 4, 2026
082048b
test(mp2): lock the layout-span guard against regressions (#342)
Mark2Mac Aug 4, 2026
8ae8e93
docs: link to the Verified Skills pipeline and hosted docs (#347)
mosheabr Aug 4, 2026
f96de1d
chore: refresh public OSS release 2.5.2 (#346)
keshprad Aug 4, 2026
cf2e87f
fix(output-handling): avoid RegExp.exec false positives (#341)
chrisknvidia Aug 4, 2026
e6ebe70
fix(analyzers): share Python AST parsing for environment-read detecti…
mohgupta-ship-it Aug 5, 2026
0562b96
chore: public OSS release 2.5.3 (#348)
keshprad Aug 5, 2026
0a1546b
chore: public OSS release 2.8.1 (#352)
rng1995 Aug 7, 2026
d7f18dd
chore: sync upstream NVIDIA/SkillSpector 2.8.1 (inference usage telem…
will-exaforce Aug 10, 2026
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
12 changes: 6 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
outputs:
docker: ${{ steps.filter.outputs.docker }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0
- id: filter
Expand All @@ -61,7 +61,7 @@ jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Set up uv
# Pinned to a full commit SHA (third-party action); comment tracks the tag.
uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5
Expand All @@ -77,7 +77,7 @@ jobs:
test-unit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Set up uv
# Pinned to a full commit SHA (third-party action); comment tracks the tag.
uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5
Expand All @@ -95,13 +95,13 @@ jobs:
if: needs.changes.outputs.docker == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- run: docker version
- run: docker info
- run: docker build -t skillspector .
- run: tests/docker/smoke.sh
- if: always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: docker-smoke-reports
path: |
Expand All @@ -114,7 +114,7 @@ jobs:
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0

Expand Down
58 changes: 58 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

name: Publish GitHub Release

on:
pull_request:
branches: ["main"]
types: [closed]

permissions:
contents: read

concurrency:
group: publish-github-release
cancel-in-progress: false

env:
UV_VERSION: "0.10.10"
PYTHON_VERSION: "3.12"
UV_CACHE_DIR: .uv-cache
UV_LINK_MODE: copy

jobs:
publish:
if: >-
github.event.pull_request.merged == true &&
contains(github.event.pull_request.labels.*.name, 'release:publish')
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.merge_commit_sha }}
- name: Set up uv
# Pinned to a full commit SHA (third-party action); comment tracks the tag.
uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5
with:
version: "${{ env.UV_VERSION }}"
enable-cache: true
cache-dependency-glob: uv.lock
python-version: "${{ env.PYTHON_VERSION }}"
- name: Install locked build tooling
run: uv sync --locked --extra dev --no-install-project
- name: Build and validate distribution artifacts
run: |
uv run --no-sync python -m build --no-isolation
uv run --no-sync twine check dist/*
- name: Create the GitHub release
env:
GH_TOKEN: ${{ github.token }}
run: |
python scripts/release/public/create_github_release.py \
--repository "$GITHUB_REPOSITORY" \
--target "${{ github.event.pull_request.merge_commit_sha }}" \
--asset dist/*.whl \
--asset dist/*.tar.gz
5 changes: 3 additions & 2 deletions .skillspector-baseline.example.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
# See docs/SUPPRESSION.md for the full reference. All identifiers below are
# placeholders — replace them with your own rule ids, paths, and reasons.

version: 1
version: 2
scanner_version: "X.Y.Z" # generated automatically; do not edit

# Glob rules — human-authored, drift-tolerant (survive line/wording changes).
# A finding is suppressed when EVERY field a rule sets glob-matches it.
Expand All @@ -31,7 +32,7 @@ rules:
# Fingerprints — exact, machine-generated suppressions (one per accepted
# finding). Regenerate with `skillspector baseline` when a skill changes.
fingerprints:
- hash: "sha256:0123456789abcdef"
- hash: "sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
rule_id: "SDI-2"
file: "example-skill/SKILL.md"
reason: "Accepted: reads its own environment ($EXAMPLE_TOKEN) for context"
73 changes: 73 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,76 @@
### 2.8.1 (Thursday, August 06, 2026)
### Features/Bug Fixes
* fix(llm): isolate malformed structured responses per batch
---
### 2.8.0 (Thursday, August 06, 2026)
### Features/Bug Fixes
* fix(baseline): exclude selected baseline from scans
---
### 2.7.2 (Thursday, August 06, 2026)
### Features/Bug Fixes
* fix(pe3): distinguish OAuth access-token nouns from credential access
---
### 2.7.0 (Thursday, August 06, 2026)
### Features/Bug Fixes
* fix(telemetry): harden inference usage normalization
---
### 2.6.0 (Wednesday, August 05, 2026)
### Features/Bug Fixes
* feat(release): auto-generate versioned release notes like CHANGELOG
* feat(telemetry): export provider inference usage
---
### 2.5.3 (Tuesday, August 04, 2026)
### Features/Bug Fixes
* fix(analyzers): share Python AST parsing for environment-read detection (#332)
* fix(output-handling): avoid RegExp.exec false positives (#341)
* docs(skill): allow delegated import MR preparation
* docs(lifecycle): optimize OSS import queue and cutoff
---
### 2.5.2 (Tuesday, August 04, 2026)
### Features/Bug Fixes
* test(mp2): lock the layout-span guard against regressions (#342)
* fix(nv_build): cover reported model metadata (#279)
* (chore) pin dependencies for workflows and Docker base images (#238)
* fix(analyzer): reduce instructional-prose false positives in static scans (#103) (#232)
* fix(input-handler): bound URL, zip, and git ingest paths (#164)
* fix: read exact versions from Python lockfiles for OSV (#263)
* feat(mcp): add registry posture scanning (#280)
* fix: exclude valid OMS signatures from content analysis (#261)
* fix(static): markdown table and quote syntax is not an execution signal (#321)
* fix(agent-cli): Windows temp-cwd cleanup must not fail a successful batch (#317)
* fix(supply-chain): SC4 must not claim a vulnerability it did not verify (#319)
* docs: link to the Verified Skills pipeline and hosted docs (#347)
* test(release): make changelog assertions version-aware
* fix(release): harden patch publishing and changelog baseline
---
### 2.5.1 (Thursday, July 30, 2026)
### Features/Bug Fixes
* feat(llm): configurable analyzer fan-out concurrency via SKILLSPECTOR_MAX_LLM_CONCURRENCY (part of #303) (#305)
* release: prepare package and skill lifecycle
* fix(analyzer): avoid OH1 false positives for subprocess --output and capture_output
* docs: clarify 2.5.0 execution accounting
---
### 2.5.0 (Friday, July 24, 2026)
### Features/Bug Fixes
* feat: Implement canonical inspection ledger reporting
* fix(security): harden P6, PE3, and baseline fingerprints
* fix(release): preserve GitHub PR titles in changelog
* feat: publish GitHub releases from labeled PRs
* docs: add skill-driven GitHub lifecycle
---
### 2.4.4 (Thursday, July 23, 2026)
### Features/Bug Fixes
* fix(anthropic): re-apply ANTHROPIC_BASE_URL override reverted by 2.4.3 snapshot (#301)
---
### 2.4.3 (Wednesday, July 22, 2026)
### Features/Bug Fixes
* Clarify CLI runtime model fallback in provider docs
* fix(provider): align Claude fallback contract with settings isolation (#295)
* fix(provider): isolate Claude settings hooks in spawned CLI (#295)
* fix(suppression): match reported finding text
* ci: disable optional provider test
* feat: publish a public-safe changelog
---
### 2.4.2 (Tuesday, July 21, 2026)
### Features/Bug Fixes
* fix(oss): keep internal provider references private
Expand Down
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
FROM python:3.12-slim-bookworm AS builder
FROM python:3.12-slim-bookworm@sha256:8a7e7cc04fd3e2bd787f7f24e22d5d119aa590d429b50c95dfe12b3abe52f48b AS builder

WORKDIR /app
COPY pyproject.toml README.md ./
COPY src/ src/
RUN python -m venv .venv
RUN .venv/bin/pip install --no-cache-dir .

FROM python:3.12-slim-bookworm
FROM python:3.12-slim-bookworm@sha256:8a7e7cc04fd3e2bd787f7f24e22d5d119aa590d429b50c95dfe12b3abe52f48b

RUN apt-get update \
&& apt-get install --no-install-recommends -y git ca-certificates \
Expand Down
Loading
Loading