Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
2b9991c
perf(security): avoid Unicode folding for ASCII characters (#907)
longfie Oct 28, 2026
083db7d
feat: support Python 3.15 (#864)
daeho-ro Oct 28, 2026
1eab708
Fix fail-closed on ordinary lists of verb names (#898)
Varshith-Kali Oct 28, 2026
0175678
fix(cli): render error text literally instead of as Rich markup (#899)
farzamfallahi Oct 28, 2026
8cbe5ef
perf(cli): defer scan imports for version output (#876)
agentsope Oct 28, 2026
52cd2df
fix(report): preserve each compacted occurrence's finding text (#851)
bharathvemula Oct 28, 2026
6286f56
feat(cli): configure the recursive skill count limit (#847)
agentsope Oct 28, 2026
185c693
test(batch): cover pooled model cancellation and slot recovery (#763)
YMuskrat Oct 28, 2026
9d2890f
fix(p2): retain remaining reference-comment safety fixes from #819
rng1995 Oct 30, 2026
7635245
fix(analyzers): carve out structurally benign P2 header comments (#622)
Yoseph-Zuskin Oct 28, 2026
5f7c4b4
fix(tm1): abstain on uppercase HTTP DELETE verbs in REST route tables…
JohnnyWilson16 Oct 29, 2026
faf27a1
fix(llm): keep CLI prompts under MAX_INPUT_BYTES when batching large …
elliottwaves-20 Oct 29, 2026
1b87e1b
fix(p2): keep reference destinations out of the benign-header exempti…
udsy19 Oct 29, 2026
a906547
fix(pe3): ignore exact Python glab setting literals (#943)
deepujain Oct 29, 2026
f05970f
fix(mp2): ignore repetition inside proven Markdown tables (#872)
bharathvemula Oct 30, 2026
c8869c5
fix(ra1): honor prohibitions on recommending a self-update (#929)
bharathvemula Oct 30, 2026
bdc0823
Merge pull request #436 from deepujain/fix/435-lazy-graph
rng1995 Oct 4, 2026
c9cd44e
feat(providers): support custom OpenAI-compatible HTTP headers (#914)
jh49choi Oct 28, 2026
e70b5f2
perf(providers): defer chat client imports from metadata path (#904)
syedataiba12311-coder Oct 28, 2026
6e6cc69
fix(providers): keep OpenCode's internal plugins so OAuth logins work
elliottwaves-20 Oct 8, 2026
8a1db5e
docs(providers): describe the plugin scope precisely and pin the env …
elliottwaves-20 Oct 8, 2026
1f41ed1
feat(providers): accept OpenCode 1.18.31-1.19.4 through an explicit v…
Yoseph-Zuskin Oct 28, 2026
d3ad8b8
fix(report): keep missing references as non-blocking caveats (#805)
efegokdemir Oct 28, 2026
0a30466
fix(coverage): account for inspected linked ZIP containers (#939)
chrisknvidia Oct 29, 2026
406c941
test(cli): retain recursive output error contract from #662
rng1995 Oct 30, 2026
9ebb845
fix(providers): stop forcing tool calls on models that reject them (#…
stefanoamorelli Sep 28, 2026
2e8769e
Merge pull request #598 from chinmay1819/main
rng1995 Sep 28, 2026
736cccb
Merge pull request #650 from Yoseph-Zuskin/feat/gpt-6-sol-luna-budgets
rng1995 Sep 28, 2026
94cc0df
Merge pull request #690 from Yoseph-Zuskin/feat/gpt-6.1-sol-budget
rng1995 Oct 2, 2026
8a29eb2
Merge pull request #708 from FenjuFu/fix/openai-compatible-auto-tool-…
rng1995 Oct 4, 2026
912e3ff
feat(providers): adopt GPT-6.1 Sol and Claude Opus 5.5 defaults with …
rng1995 Oct 13, 2026
dd97faa
Merge pull request #824 from NVIDIA/naren/pr-806-defaults-mcp-follow-up
rng1995 Oct 14, 2026
5a6ad47
fix(release): retain maintenance model-validation contracts
rng1995 Oct 30, 2026
d54f1ce
release: prepare incremental SkillSpector 2.14.0 candidate
rng1995 Oct 30, 2026
774bd45
test: align availability mocks with timeout-aware model controls
rng1995 Oct 30, 2026
ae6f3eb
docs(release): tabulate included PRs and record validation scope
rng1995 Oct 30, 2026
7d496ed
Merge integrated 2.13.3 maintenance baseline into the 2.14.0 candidate
rng1995 Nov 2, 2026
c656cc3
feat(supply-chain): inspect locked npm dependency contents (#952)
YMuskrat Oct 31, 2026
59b203c
fix(osv): fall back to static data when no_proxy breaks httpx client …
bharathvemula Nov 2, 2026
4bdfa07
fix(supply-chain): strip leading BOM before parsing requirements.txt …
bharathvemula Nov 2, 2026
7d67733
fix(analyzer): report malformed dependency manifests (#773)
efegokdemir Nov 2, 2026
2767623
fix(deps): bump uv.lock past four packages with published advisories …
viwe-monai Nov 2, 2026
19ab7a6
fix(scanner): tighten bounded parser ownership (#947)
kshitijrajes Oct 31, 2026
91b4fbf
fix(static): stop backticks/apostrophes in comments and prose from tr…
Varshith-Kali Oct 31, 2026
a45c445
fix(analyzer): recognize JavaScript template literals (#801)
efegokdemir Oct 31, 2026
c1945fb
fix(static): preserve shell and browser template boundaries (#948)
yashrajp22 Nov 2, 2026
e55430e
fix(ea5): stop reading option-listing help rows as model-switch comma…
tanishqbaweja Nov 2, 2026
572571d
fix(markdown): preserve bounded inline and list-fence ownership (#950)
kshitijrajes Nov 2, 2026
9344743
fix(analyzer): enforce deadlines for projected prompt matching (#742)
yashrajp22 Nov 2, 2026
91e3b8b
fix(analyzer): keep checking command lines inside a word that spans l…
elliottwaves-20 Nov 2, 2026
dd4380a
fix(analyzer): keep PowerShell host syntax from inventing shell parse…
Flotrpy Nov 2, 2026
3116f15
style(analyzer): format the multiline word-shadow guard
rng1995 Nov 2, 2026
ec6f388
fix(ra1): keep double negatives from exempting the action (#957)
udsy19 Oct 31, 2026
9a76de5
fix(yara): require a browser cookie-store path in info_stealer (#752)
elliottwaves-20 Oct 31, 2026
b7451f0
fix(cli): reject non-regular report outputs before scanning (#955)
bharathvemula Oct 31, 2026
645d9bc
fix(p6): stop reporting Python returns of local names as prompt extra…
tanishqbaweja Nov 2, 2026
15644ca
fix(providers): reject SKILLSPECTOR_TEMPERATURE for all Claude models…
pcbeingused333 Nov 2, 2026
5fc8bcd
perf: defer workflow warning imports until graph initialization (#972)
Patrick-Erichsen Nov 2, 2026
f583e0b
feat(report): expose the file surface a finding landed on (#703)
Harbor404 Nov 2, 2026
1883ccf
docs(release): record merged P0 and P1 additions for 2.14.0
rng1995 Nov 2, 2026
113640b
fix(llm): retain safe diagnostics for failed requests (#979)
Patrick-Erichsen Nov 3, 2026
2f6a4b7
test(release): align nested fence projection expectations
rng1995 Nov 3, 2026
ca22d27
docs(release): include latest merged P1 fix in 2.14.0
rng1995 Nov 3, 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
13 changes: 12 additions & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,19 @@ OPENAI_BASE_URL=
# Optional provider- and model-dependent reasoning-effort setting. Non-empty values
# are trimmed and passed through unchanged. Unset or blank sends high for nv_build
# with z-ai/glm-5.3; other provider/model combinations keep their endpoint defaults.
# gpt-6.1-sol accepts only low, medium, high, xhigh or max; any other value stops
# a scan before analysis (exit code 2).
SKILLSPECTOR_REASONING_EFFORT=
# Optional language for human-readable LLM finding text. Machine-readable values
# such as rule IDs and severity values remain unchanged.
SKILLSPECTOR_OUTPUT_LANGUAGE=
# Optional sampling controls. Temperature is supported by hosted providers;
# seed is forwarded only to OpenAI-compatible and Azure OpenAI endpoints.
# Unset or blank values preserve provider defaults.
# Unset or blank values preserve provider defaults. gpt-6.1-sol rejects every
# explicit temperature. Claude Opus 4.7+, Sonnet 5, Fable 5 and Haiku 5 models accept only 1.0
# on the native Anthropic endpoint; other routes reject every explicit value.
# Unsupported settings on active LLM slots stop the scan before analysis.
# Static scans (--no-llm) skip provider initialization and these checks.
SKILLSPECTOR_TEMPERATURE= # range: 0..1
SKILLSPECTOR_SEED= # integer

Expand Down Expand Up @@ -73,11 +79,16 @@ AZURE_OPENAI_ENDPOINT=
# For SKILLSPECTOR_PROVIDER=openai_compatible.
SKILLSPECTOR_COMPAT_API_KEY=
SKILLSPECTOR_COMPAT_BASE_URL=
# Optional JSON object with string header names and values; may contain secrets.
# SKILLSPECTOR_COMPAT_HEADERS='{"X-Tenant-ID":"my-tenant","X-API-Key":"gateway-key"}'

# claude_cli, gemini_cli, and opencode_cli use their CLI's existing local
# authentication session and do not need an API key here.

# SkillSpector config
# Defaults: openai uses gpt-5.4; anthropic uses claude-opus-4-6 and
# claude-sonnet-4-6 for meta_analyzer. Sol and Claude 5.5 remain opt-in pending
# live scanner acceptance (see README).
SKILLSPECTOR_MODEL= # leave empty to use the active provider's bundled default (see README); set to override (e.g. gpt-5.2)
# SKILLSPECTOR_MODEL_REGISTRY=./model_registry.yaml # optional override; defaults to each provider's bundled YAML in src/skillspector/providers/
SKILLSPECTOR_LOG_LEVEL=WARNING # options: DEBUG|INFO|WARNING|ERROR
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ name: CI

on:
pull_request:
branches: ["main", "yashraj/v2.13.0-base"]
branches: ["main", "yashraj/v2.13.0-base", "yashraj/release-2.13.3"]
push:
branches: ["main", "yashraj/v2.13.0-base"]

Expand Down Expand Up @@ -89,6 +89,8 @@ jobs:
python-version: ${{ env.PYTHON_VERSION }}
- run: make install-dev
- run: uv run skillspector --version
- name: Check isolated dependency inspection before the full suite
run: uv run pytest -q tests/unit/test_dependency_inspection.py
- run: uv run make test-ci

test-opencode:
Expand Down
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
### 2.14.0 (Unreleased)
### Changes after the integrated 2.13.3 baseline
* Include 42 merged priority sources (19 P0, 23 P1), 5 required prerequisites and seven model sources: 54 distinct sources with new deltas. Retain all 31 original selections; count inherited overlaps separately.
* Add bounded npm content inspection, truthful malformed-manifest/BOM/fallback coverage, advisory dependency pins, parser/quote/PowerShell/Markdown ownership, interruptible matching and multiline-shadow handling.
* Add occurrence surface metadata, cookie-store and local-return precision, safe report-output preflight, supported model-control guards, option-help precision and deferred startup warnings. The earlier RA1 double-negative gap is corrected by #957.
* Keep GPT-5.4/Claude 4.6 defaults and opt-in newer models. Absorb final #958/#976 maintenance work; #877 is fully inherited, #948 contributes only its new residual, and #981 is a formatter prerequisite.
* Retain sanitized failed-request diagnostics for synchronous and asynchronous model calls without copying request/source content or changing exception/usage behavior. (#979)
* Final validation and release review remain required; historical results do not establish current-candidate acceptance.
* See [release notes](docs/release/skillspector-2.14.0.md) and [selection manifest](docs/release/skillspector-2.14.0-manifest.json) for source and overlap evidence.
---
### Unreleased maintenance fixes
### Fixes
* Backport scoped `allowed-tools` grant handling from #768: recognize declarations such as `Bash(git:*)`, preserve spaces and commas inside scopes, and keep malformed grants or embedded tool names from declaring shell capability. Command restrictions remain intact in the manifest.
Expand Down
Loading
Loading