Repository navigation
build(deps): bump setuptools from 82.0.1 to 83.0.0 - #2
Closed
dependabot[bot] wants to merge 451 commits into
Closed
dependabot[bot] wants to merge 451 commits into
dependabot[bot] wants to merge 451 commits into
Conversation
Add DEFAULT_MODEL and SLOT_DEFAULTS as ClassVar declarations to ModelMetadataProvider Protocol so callers no longer need type: ignore[attr-defined] when accessing provider attributes. Add validate_base_url() helper that warns on malformed (non-http/https or missing host) base URLs at model creation time, catching operator misconfigurations early without raising. Remove stale type: ignore[attr-defined] from constants.py. Signed-off-by: mimran-khan <[email protected]> (cherry picked from commit d0006e1)
Signed-off-by: Mohit Gupta <[email protected]> (cherry picked from commit 3490e1a)
Signed-off-by: Mohit Gupta <[email protected]> (cherry picked from commit 8fb192b)
…179-157 fix: address non-blocking reviewer nits from NVIDIA#178, NVIDIA#179, and NVIDIA#157
…e-exfiltration feat(analyzer): detect cloud-storage exfiltration as E5
docs(mcp): surface install extra in quick-start and add stdio caveat
…scape feat(analyzer): detect privileged container execution and escape primitives as PE5
…odel docs(mcp): document HTTP transport trust model
Summary: This fix allows SkillSpector to run in environments that already have a running event loop, preventing RuntimeError when asyncio.run() is called from within an existing loop. Problem: When running SkillSpector in environments like: - Jupyter Notebooks - LangGraph Studio - FastAPI applications - Any programmatic usage within async code The call to asyncio.run() throws a RuntimeError: This event loop is already running and falls back to unfiltered static findings, silently disabling LLM analysis. The previous approach of detecting this state via error message substring matching is fragile and locale-dependent. Solution: 1. Add utility function in that properly detects running loops using 2. When no running loop exists, fall back to directly 3. When a loop is already running, offload execution to a separate thread with its own event loop via 4. Replace all calls across all analyzer nodes with the new helper 5. Remove unused asyncio imports from analyzer files Test: Add comprehensive unit tests for run_async covering: - Normal execution without existing running loop - Nested execution inside an already running loop - Exception propagation from async coroutines - Correct handling of async functions with await calls Signed-off-by: zhenliemao <[email protected]>
Signed-off-by: zhenliemao <[email protected]>
supply_chain (SC1-SC6) covers package dependencies but not the container-image supply chain. A skill pulling images with verification disabled (--disable-content-trust, DOCKER_CONTENT_TRUST=0, --insecure-registry) accepts tampered images but scored 9/SAFE (NVIDIA#223). Add SC7_PATTERNS to the supply_chain analyzer (is_code_example filter) with pattern_defaults entries and 5 tests. --tls-verify=false is excluded since TM3's verify=False already covers it. Signed-off-by: CharmingGroot <[email protected]>
Signed-off-by: Ram Dwivedi <[email protected]>
…ider Signed-off-by: Ram Dwivedi <[email protected]> # Conflicts: # README.md # src/skillspector/providers/__init__.py # tests/nodes/test_meta_analyzer.py # tests/nodes/test_report.py
Signed-off-by: Hiten <[email protected]>
Signed-off-by: Steven Moy <[email protected]>
Signed-off-by: Rod Boev <[email protected]>
Signed-off-by: Rod Boev <[email protected]>
Signed-off-by: Rod Boev <[email protected]>
…SON formats Signed-off-by: Rod Boev <[email protected]>
…bsent Signed-off-by: Rod Boev <[email protected]>
…ged-workload feat(analyzer): detect privileged Kubernetes workload deployment as TM4
Support Python 3.14
…utput-203 fix(cli): write concatenated multi-skill report to --output for non-JSON formats
fix(input): support scp-style SSH Git URLs in host validation
feat(ossf-scorecard): add ossf-scorecard github action integration
…-field fix(mcp): treat allowed-tools as a permission declaration for LP3
feat(providers): local agent-CLI providers (claude/codex/gemini), no API key
docs: correct stale analyzer status and dangling references
Signed-off-by: Rod Boev <[email protected]>
Signed-off-by: Rod Boev <[email protected]>
Prepared by Codex for Mohit Gupta. Signed-off-by: Mohit Gupta <[email protected]>
release: SkillSpector 2.11.1 Merging this PR that adds a timeout fix
Deduplicate coverage findings for the same source line and target, and record one terminal event per source line with every emitted finding ID. This prevents Markdown label/destination duplicates and distinct targets on one line from generating fatal unaccounted_work errors. Prepared by Codex for Mohit Gupta. Signed-off-by: Mohit Gupta <[email protected]>
Distinguish simple runtime parameters from command substitutions and complex parameter expansions in the bounded printf recognizer. Count literal characters separately from already-consumed quoted spans so long prose can finish parsing without a spurious span-limit exception. Cover inline variables, skill invocations, PowerShell member access, math notation, long quoted prose, and preserved destructive-command detection and incomplete reconstruction accounting. Prepared by Codex for Mohit Gupta. Signed-off-by: Mohit Gupta <[email protected]>
Signed-off-by: yashrajbasav <[email protected]>
Two defects, both of which made the check quietly answer "fine" about declarations it had never looked at: - `_USES_RE` matched only `owner/repo@`, so the three-segment `github/codeql-action/init` and `/analyze` in codeql.yml were never parsed. The path now allows subdirectories, and the release lookup trims back to the repository that owns the tags. - github/codeql-action tags its latest release `codeql-bundle-v2.26.4`, which shares no numbering with the pinned v4.37.9, so the comparison returned "not newer" forever and the row read OK. The lookup now falls back to the tag list and takes the newest parseable version, and a row whose latest cannot be compared is CHECK FAILED rather than OK. Three tests pin the behaviour; restoring the owner/repo-only pattern turns them red. Two pre-existing gate failures are fixed alongside, because the gate cannot be green with them present: - src/skillspector/state.py diverged from upstream in 185d610 (SKILLSPECTOR_MAX_WORKFLOW_SECONDS) without a docs/DIVERGENCE.md row. It is the graph-wide half of the per-artifact budget row already registered above it, and is now registered with that reasoning. - tools/check_dependency_freshness.py was already failing `ruff format --check` before this change; both touched files are now formatted. Full gate green on Windows: 3969 passed, 39 skipped, 38 deselected, 4 xfailed. Found while porting this checker into SanHsien/dashi-ppt-skill; the same fix landed there and in SanHsien/agent-skills. Co-Authored-By: Claude Opus 5 <[email protected]>
The workflow has failed on every run since b02d8ae (2026-09-05) because the report carries 25 REVIEW UPDATE rows from upstream's pyproject.toml. The 2026-09-05 decision in docs/DECISIONS.md already ruled those informational -- the ruling just never reached the gate, so the monthly check was permanently red with no exit, which trains everyone to ignore it including the rows that are actionable. gating_rows() now fails the run only for Action pins whose declaring workflows are all fork-owned. Pins that appear in an upstream-owned workflow (ci.yml, release.yml, scorecard.yml, update-pr-branches.yml) are upstream's to move, for the same reason a `typer>=0.23.0` floor is: repinning them here states a compatibility choice on upstream's behalf and is overwritten at the next sync. Every row still appears in the report, and both section headings now say which half gates. Deferrals were the alternative and would have contradicted the ruling: entering the 25 rows as "reviewed, not now" claims they are actionable-but-postponed, and deferredLatest would expire them back to red as each package releases. UPSTREAM_WORKFLOWS is a constant, so test_fork_owned_workflows_matches_git cross-checks it against `git ls-tree` on the baseline commit and skips rather than passing when that commit is unavailable. Mutation-verified: gating on all rows again turns two tests red. Gate green on Windows: 3973 passed, 39 skipped, 38 deselected, 4 xfailed; `check_dependency_freshness.py --strict` now exits 0. Co-Authored-By: Claude Opus 5 <[email protected]>
Anonymous api.github.com allows 60 requests an hour per address and hosted runners share one, so past the limit every Action row's `latest` reads `unknown` at once. That matters more here than elsewhere: after 0fe6f22 the Action rows are the only half of this report that gates the run, so a silent rate-limit would take the gate with it. _github_json now sends `Authorization: Bearer` when GITHUB_TOKEN or GH_TOKEN is set, and the workflow's check step gets `GH_TOKEN: ${{ github.token }}`; the step previously ran without one while the Dependabot-listing step below it had a token all along. Without a token it still works, just against the anonymous limit. Defect first spotted on the SanHsien/commerce-agents line; the same fix landed in SanHsien/dashi-ppt-skill and SanHsien/agent-skills. Gate green on Windows: 3974 passed, 39 skipped, 38 deselected, 4 xfailed. Co-Authored-By: Claude Opus 5 <[email protected]>
…-accounting fix: preserve partial coverage for runtime printf paths
Refresh PR NVIDIA#507 after merging NVIDIA#508 into its source branch. No source files changed. Prepared by Codex for Mohit Gupta. Signed-off-by: Mohit Gupta <[email protected]>
…leteness fix: avoid false parser limits and reference accounting failures
Package the merged parser and reference-accounting fixes from NVIDIA#507 and the runtime executable-path coverage guard from NVIDIA#508. Update version metadata, changelog, and release notes. Prepared by Codex for Mohit Gupta. Signed-off-by: Mohit Gupta <[email protected]>
Prepared by Codex for Mohit Gupta. Signed-off-by: Mohit Gupta <[email protected]>
release: SkillSpector 2.11.2
Brings in 19 upstream commits: releases 2.11.1 and 2.11.2, including NVIDIA#468 (configurable workflow deadline) and the 2.11.2 security fixes. The only conflict was src/skillspector/state.py. Upstream NVIDIA#468 adds SKILLSPECTOR_MAX_WORKFLOW_SECONDS -- the same name this fork added in 185d610 -- with different semantics: a 600 s default and only positive finite overrides, where the fork used a 60 s default and <= 0 to lift the ceiling. Upstream's version is taken whole, as the fork's DIVERGENCE row for that file pre-registered ("drop this row if upstream adds a same-named or equivalent override"). It is also more complete: it wires the transitive budget in cli.py to the same setting. Consequence handled downstream: a gate that sets the variable to "0" would silently fall back to 600 s under upstream's rules. agent-skills and book-to-skill now set 86400, which means the same under both. tools/upstream_baseline.json moves the commit axis to 69dcdfb only; the PR and issue axes are unchanged and not yet re-triaged. AGENTS.md now says to verify on a venv outside OneDrive with UV_LINK_MODE=copy: the in-repo .venv becomes a Files On-Demand placeholder tree (os error 5 on reinstall), and hardlinked installs let the cloud filter claim uv's cache (os error 396), leaving packages with metadata but no module. Verified that way, in two batches: 4009 passed, 39 skipped, 38 deselected, 4 xfailed, 0 failed. check_divergence: 12 upstream files diverge, 12 registered. Co-Authored-By: Claude Opus 5 <[email protected]> Signed-off-by: SanHsien <[email protected]>
Dependency freshness went red on 75bd6f3. The only gating rows were the two github/codeql-action pins in codeql.yml, a fork-owned workflow, still at v4.37.9 after v4.38.0 was released. Both move to the v4.38.0 commit b96794f015dfd88f77b49b1c93e0fa7110f94c63 (tag object dereferenced), with the version kept in the trailing comment. The pins in upstream-owned workflows are informational by policy and stay as upstream has them. ruff reported UP035 in tools/check_dependency_freshness.py (Callable belongs to collections.abc). The gate never saw it because tools/dev_check.ps1 linted only two named scripts under tools/. It now lints and format-checks all of tools/, which holds only fork-owned maintenance tools. Verified: ruff check and format --check over src/ tests/ tools/ pass, tests/unit/test_fork_maintenance_checks.py 14 passed, check_dependency_freshness.py --strict exits 0 with both codeql-action rows OK, and dev_check.ps1 -Quick is green. Co-Authored-By: Claude Opus 5 <[email protected]> Signed-off-by: SanHsien <[email protected]>
test_rd04_large_file_pair_detects_start_boundary_and_end failed in run 34543263439 with analysis_completeness.is_complete False: under runner load the third public surface exhausted the 30-second per-artifact static budget. _allow_slow_static_fixture already relaxes the budgets for the two oversized acceptance fixtures, but only when os.name is "nt", and CI runs on ubuntu, so the relaxation never applied there. Upstream's own Linux CI fails the same way (runs 34447095261 and 34442162097, the latter together with test_nine_case_contract_across_public_surfaces). Applying the relaxation on every platform removes the load dependence from those two tests only; product defaults and all other tests are unchanged. Dropping the platform check also removes the fork-only "import os", which narrows the diff against upstream. The DIVERGENCE rows now state the all-platform scope and the evidence. Verified: tests/nodes/test_security_end_to_end.py and tests/unit/test_fork_maintenance_checks.py 59 passed; ruff check and format clean; check_divergence OK (12 diverging, 12 registered). Co-Authored-By: Claude Opus 5 <[email protected]> Signed-off-by: SanHsien <[email protected]>
…VIDIA#524 Raise reviewed_pr_through to 527 and reviewed_issue_through to 524 in tools/upstream_baseline.json (commit axis unchanged at 69dcdfb). Every item gets a verdict in docs/DECISIONS.md: NVIDIA#493/NVIDIA#507/NVIDIA#508/NVIDIA#511 verified via git merge-base --is-ancestor as already included through the 2.11.1/2.11.2 sync (including NVIDIA#521, which merged only into the still- open NVIDIA#516 stack, not main); the remaining 27 items stay "wait for upstream merge", none adopted now. Two items get dedicated comparison notes per docs/DIVERGENCE.md's static_runner.py and scripts/compare_scan_accuracy.py rows: NVIDIA#522 uses a different env var name and different default/semantics than this fork's SKILLSPECTOR_MAX_STATIC_SECONDS, so merging it cannot simply delete the divergence row and needs a downstream env var migration first; NVIDIA#490 extends this fork's own upstream PR NVIDIA#486 with a Python 3.14/POSIX edge case the fork's Windows environment does not hit, so NVIDIA#486 is left untouched pending upstream's own resolution. NVIDIA#501-NVIDIA#505 and NVIDIA#518 are also flagged as near-verbatim matches to this fork's existing Windows test divergence rows, worth revisiting for row deletion once merged. Co-Authored-By: Claude Opus 5 <[email protected]> Signed-off-by: SanHsien <[email protected]>
Bumps [setuptools](https://github.com/pypa/setuptools) from 82.0.1 to 83.0.0. - [Release notes](https://github.com/pypa/setuptools/releases) - [Changelog](https://github.com/pypa/setuptools/blob/main/NEWS.rst) - [Commits](pypa/setuptools@v82.0.1...v83.0.0) --- updated-dependencies: - dependency-name: setuptools dependency-version: 83.0.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]>
Dependabot opened #1 (cryptography 49.0.0 -> 50.0.0) and #2 (setuptools 82.0.1 -> 83.0.0) against uv.lock. uv.lock is upstream-owned and is byte-identical to upstream 69dcdfb; applying #1's lock makes tools/check_divergence.py report "Changed but not registered: uv.lock" (exit 1), which fails tools/dev_check.ps1 and would conflict on every upstream sync. Neither fixes a reachable defect. cryptography 50.0.0's CVE-2026-69247 is in pkcs7_decrypt_der and its variants; the packages that depend on cryptography here are langgraph-api, pyjwt and secretstorage, and src/ makes no PKCS#7 decryption call. setuptools is build-only. Recorded the rule in docs/DECISIONS.md: adopt a uv Dependabot PR only for a security fix the scanner's code path can reach, and then register uv.lock in docs/DIVERGENCE.md. The uv ecosystem stays in dependabot.yml as the signal that upstream's lock is behind. The PRs stay open. Co-Authored-By: Claude Opus 5 <[email protected]> Signed-off-by: SanHsien <[email protected]>
Author
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
SanHsien
added a commit
that referenced
this pull request
Sep 17, 2026
…\n\n- Bump cryptography (49.0.0 -> 50.0.1) and setuptools (82.0.1 -> 84.0.0)\n to remediate Dependabot alerts #1 (CVE-2026-59890) and #2 (CVE-2026-69247)\n- Fix CodeQL py/incomplete-url-substring-sanitization alerts #1-#4 in\n tests/unit/test_input_handler_ssrf.py by using set issubset assertions\n- Fix CodeQL py/overly-permissive-file alerts #5-#6 in\n tests/unit/test_input_handler.py by restricting permissions to owner\n- Register divergences for uv.lock and tests in docs/DIVERGENCE.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps setuptools from 82.0.1 to 83.0.0.
Changelog
Sourced from setuptools's changelog.
Commits
6519f72Bump version: 82.0.1 → 83.0.0d1151b1Merge pull request #5250 from pypa/feature/distutils-d7633fbeda2df31eCapture removal of dry_run parameter in changelog.00144dcMoved newsfragment to the release where it occurred.a4a5a2bAdd news fragment.77470c2Merge https://github.com/pypa/distutils into feature/distutils-d7633fbed3c43897Merge pull request #5247 from pypa/copilot/fix-pypy-version-issuebb6ea66Bump PyPy from 3.10 to 3.11 in CI workflowa2bc3acFix broken intersphinx reference to build's installation docs2d6a739Use stacked parametrize decorators instead of itertools.productDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)You can disable automated security fix PRs for this repo from the Security Alerts page.