Skip to content

Sync upstream OSS release snapshots into main#3

Merged
will-exaforce merged 25 commits into
mainfrom
sync-upstream
Jun 18, 2026
Merged

Sync upstream OSS release snapshots into main#3
will-exaforce merged 25 commits into
mainfrom
sync-upstream

Conversation

@will-exaforce

Copy link
Copy Markdown

Purpose

Pull the upstream NVIDIA/SkillSpector changes into ExaForce main. This is the upstream-sync PR, kept separate from the meta-analyzer runaway fix (e25f243, on runaway-fix) so the two can be reviewed and merged independently.

Contents

All commits currently on runaway-fix except e25f243 — i.e. the OSS release-snapshot syncs and related upstream fixes (Docker base/git install, invalid skill-path rejection, Python-version constraints, version bumps, etc.). No SkillSpector behavior change from this branch beyond what upstream shipped.

Notes

  • Base repo is ExaForce/SkillSpector, not NVIDIA.
  • The runaway fix lands on top of this via its own PR from runaway-fix.

🤖 Generated with Claude Code

lrecknagel and others added 25 commits June 3, 2026 08:11
Added pin to python 3.13 for uv venv as make install do not complete with python >3.13
feat: adds dockerfile to run it without installing python
Refresh the public SkillSpector tree from internal OSS release branch release/oss-2026-06-13 at a2a659364f9a5a72dafa71f56098b51f1ef2e9d5.

Changes:

- Bump package metadata and uv lock entry from 2.1.3 to 2.1.4.

- Drop a trailing blank line from the generated Makefile.

Verification:

- PYENV_VERSION=3.13.12 PYTHONPATH=src ./scripts/create-oss-release.sh release/oss-2026-06-13 (includes make test-unit: 600 passed, 11 skipped, 22 deselected).

- PYENV_VERSION=3.13.12 PYTHONPATH=src pytest -m 'not integration' tests/ (600 passed).
Signed-off-by: medhdj <medhdjdevs@gmail.com>
Install git and ca-certificates in the runtime Docker image so SkillSpector can scan remote Git repositories, including HTTPS GitHub URLs, from inside the container.

Add a reusable Docker smoke suite and `make docker-smoke` to validate:
- SkillSpector starts in the image
- git is available in the image
- local fixture scans still work
- GitHub URL scans clone and produce valid JSON reports

The internal GitLab Docker smoke job now calls the shared suite instead of carrying inline shell checks.

Source:
- GitHub PR: NVIDIA#78
- GitHub author: medhdj
- GitHub head SHA: 09e2ac3

Verification:
- make docker-smoke
- sh -n tests/docker/smoke.sh
- git diff --check

Co-authored-by: medhdj <medhdjdevs@gmail.com>
Signed-off-by: medhdj <medhdjdevs@gmail.com>
Refresh the public SkillSpector tree from the internal OSS release branch release/oss-2026-06-15 at a7ebb82733fba54512c546fed08cd17a2cbc4a17.

Changes remaining after rebasing onto GitHub main:

- Add explicit returns in Docker smoke helper functions.

- Correct the documented bundled model registry path.

Verification:

- PATH="/private/tmp/skillspector-github-release-redo.wVmbW5/SkillSpector/.venv/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/pmk/env/global/bin:/Library/TeX/texbin:/opt/homebrew/bin:/Users/keshavp/.cargo/bin:/Users/keshavp/.codex/tmp/arg0/codex-arg0xPENbg:/Applications/Codex.app/Contents/Resources" ./scripts/create-oss-release.sh release/oss-2026-06-15

- git diff --check origin/main..HEAD
Refresh the public SkillSpector snapshot from the internal OSS release branch
release/oss-2026-06-15 at a7ebb82733fba54512c546fed08cd17a2cbc4a17.

Changes:
- Correct the documented bundled model registry path for SKILLSPECTOR_MODEL_REGISTRY.
- Add explicit returns in Docker smoke helper functions.

Notes:
- Rebased onto latest GitHub main after NVIDIA#78 merged.
- Supersedes the original provider-registry documentation PR NVIDIA#30.

Verification:
- PATH="$PWD/.venv/bin:$PATH" ./scripts/create-oss-release.sh release/oss-2026-06-15
  - includes make test-unit: 600 passed, 11 skipped, 22 deselected
- git diff --check origin/main..HEAD
…toplace/fix/build-context-invalid-skill-path

Reject missing, empty, nonexistent, or file-valued skill_path inputs in
build_context instead of returning an empty scan context.

Previously, direct graph/API callers could pass an invalid skill_path and still
receive a successful-looking report with risk_score 0 and SAFE recommendation.
That made bad CI or automation input indistinguishable from a genuinely clean
scan.

Existing empty directories remain valid scan targets and continue to produce an
empty scan result. Tests cover the node-level invalid path cases and the graph
regression so invalid skill_path no longer returns a clean low-risk report.

Validation:
- uv run --extra dev pytest
- uv run --extra dev pytest -m integration tests/integration/test_graph.py
- uv run --extra dev ruff check src/skillspector/nodes/build_context.py src/skillspector/nodes/resolve_input.py tests/nodes/test_build_context.py tests/integration/test_graph.py
Refresh the public SkillSpector tree from the internal OSS release branch release/oss-2026-06-15-2 at 9edade32a5ceacb523b591c70eea5de1aec176ba. The snapshot was generated by scripts/create-oss-release.sh, which removes internal-only files and commits a sanitized orphan-branch tree for public publication.

Changes:

- Bump the public package version from 2.1.4 to 2.1.5 in pyproject.toml and uv.lock.

- Sync the generated OSS Makefile snapshot.

Verification:

- ./scripts/create-oss-release.sh release/oss-2026-06-15-2 was run; its bare make test-unit step initially could not find pytest on PATH.

- PATH="/private/tmp/skillspector-github-release.YVVxNl/SkillSpector/.venv/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/pmk/env/global/bin:/Library/TeX/texbin:/opt/homebrew/bin:/Users/keshavp/.cargo/bin:/Users/keshavp/.codex/tmp/arg0/codex-arg0xPENbg:/Applications/Codex.app/Contents/Resources" make test-unit passed on the generated OSS branch: 601 passed, 11 skipped, 23 deselected.
…keshavp/oss-release-2026-06-15-2

Refresh the public SkillSpector repository from the internal OSS release
snapshot release/oss-2026-06-15-2.

This publishes the sanitized internal snapshot at
9edade32a5ceacb523b591c70eea5de1aec176ba. The public diff bumps the package
version from 2.1.4 to 2.1.5 in pyproject.toml and uv.lock, and syncs the
generated OSS Makefile snapshot.

Changed files:
- Makefile
- pyproject.toml
- uv.lock

Verification:
- ./scripts/create-oss-release.sh release/oss-2026-06-15-2 was run.
- PATH="$PWD/.venv/bin:$PATH" make test-unit
  - 601 passed, 11 skipped, 23 deselected
Refresh the public SkillSpector tree from the internal OSS release branch release/oss-2026-06-16 at 94599d2baae5d532d83f630ddeeeead1f33c8cbb. The snapshot was generated by scripts/create-oss-release.sh, which removes internal-only files and commits a single orphan-branch tree for public publication.

Changes:

- Bump the public package snapshot to 2.2.3 and widen Python metadata/lock coverage to <3.15, including Python 3.14 classifiers and lock entries.

- Add native provider-backed LangChain chat model creation, including Anthropic support and shared OpenAI-compatible helpers.

- Add live provider test targets and provider endpoint tests while keeping unit/coverage targets scoped away from provider/integration markers.

- Update LLM response text handling and provider unit coverage for the new chat model factory path.

Verification:

- PATH=/tmp/skillspector-oss-release-venv-20260616/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/pmk/env/global/bin:/Library/TeX/texbin:/opt/homebrew/bin:/Users/keshavp/.cargo/bin:/Users/keshavp/.codex/tmp/arg0/codex-arg0xPENbg:/Applications/Codex.app/Contents/Resources ./scripts/create-oss-release.sh release/oss-2026-06-16 (includes make test-unit: 621 passed, 12 skipped, 26 deselected)

- git diff --cached --check
…keshavp/oss-release-2026-06-16

Refresh the public SkillSpector tree from the internal OSS release branch
release/oss-2026-06-16 at 94599d2baae5d532d83f630ddeeeead1f33c8cbb.

This snapshot was generated by scripts/create-oss-release.sh, which removes
internal-only files and produces a single orphan-branch tree for public
publication.

Changes:
- Bump public package snapshot to 2.2.3.
- Carry Python metadata and uv.lock support for >=3.12,<3.15, including Python 3.14.
- Add native provider-backed LangChain chat model creation, including Anthropic support.
- Resolve Anthropic API call failures caused by unsupported maximum/minimum parameters in structured-output tool schemas.
- Add shared OpenAI-compatible chat model helper.
- Add live provider test targets, docs, and provider endpoint tests.
- Keep default unit and coverage targets scoped away from provider/integration tests.
- Update LLM response text handling and provider unit coverage.

Resolves #4, NVIDIA#34, NVIDIA#66, NVIDIA#76.

Verification:
- scripts/create-oss-release.sh release/oss-2026-06-16
  - includes make test-unit: 621 passed, 12 skipped, 26 deselected
- git diff --cached --check
@will-exaforce
will-exaforce requested review from pupapaik and smoy June 18, 2026 19:42
@will-exaforce
will-exaforce merged commit e102865 into main Jun 18, 2026
@will-exaforce
will-exaforce deleted the sync-upstream branch June 18, 2026 20:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants