═══════════════════════════════════════════════════════
Changelog preview: v3.1.0
Since: v3.0.0 (5685 commits)
Breakdown: 1173 feat, 2941 fix, 11 sec
Showing: top 20 (ranked by impact)
═══════════════════════════════════════════════════════
What's changed in v3.1.0 (since v3.0.0)
New features
- audit: land core/audit bulk and remaining dependencies (220 commits, 233,866 lines)
- sca: supply-chain detector arc + first-party hardening of sca-self-bump (#783) (149 commits, 85,094 lines)
- SCA mechanical pipeline — full implementation (51 commits, 118,387 lines)
- core: OCI registry + Dockerfile + tar substrate (49 commits, 49,241 lines)
- sandbox: --audit mode (#269) (47 commits, 37,806 lines)
- llm: full provider support — Mantle + InvokeModel coexistence (#790) (46 commits, 17,405 lines)
- source_intel: substrate + axis 1 minimal rule (35 commits, 14,992 lines)
- corpus: corpus runner, rule evaluation, and label linter (35 commits, 16,196 lines)
- analysis: add leaf analysis modules from audit branch (35 commits, 23,948 lines)
- cve-env: integrate cve-env as packages/cve_env (Phase 1 lift-and-shift) (#802) (9 commits, 42,630 lines)
- inventory: sanitizer-cut suppressor (#794) (21 commits, 23,152 lines)
- validate: emit per-function annotations across stages A, B, D (#409) (21 commits, 8,528 lines)
- iris: restore runtime CodeQL pack discovery (lost in #322 merge) (#323) (23 commits, 9,060 lines)
- understand: mechanical sink discovery and framework API detection (MAP-5f) (#836) (18 commits, 9,274 lines)
- agentic: KNighter follow-up — synthesise checker per confirmed finding (#403) (17 commits, 8,297 lines)
- reachability: JS/Go function-as-argument framework registration (#604) (18 commits, 7,925 lines)
- coverage: persistent verdict-bearing coverage store, wired to the real pipeline (#691) (14 commits, 8,277 lines)
- frida: evidence pipeline, full consumer wiring, reachability integration (#833) (12 commits, 9,254 lines)
- web: the bare-host correlation tier — expectations, check legs, and the poisoned-render oracle (17 commits, 5,126 lines)
- codeql: proxy-hosts auto-calibrate (#418) (16 commits, 4,874 lines)
- ...and 103 more
Security
- trust-scan gaps, redaction coverage, envelope hardening
- contain attacker-influenced inputs (P0/P1s from review) (#784)
- harden shared read/write substrate against hostile manifests
- sanitise advisory text on output
- round-3 hardening — cap+clip context-map ingest, lifecycle safety
- round-2 hardening — 12 additional fixes from adversarial review
- validate the full shape of canonical codeql pack refs
- sanitise non-vuln detail strings in markdown emitter
- report-writer audit matches attribute-chain receivers
- refuse a cross-family checker for an unknown-family producer
- peel every family_of provider stem in bare_model_id
Bug fixes
- Joern field swap, Z3 subprocess isolation, ensemble pipeline, new detectors
- cve-diff audit — 10 bug fixes, shared package migration, url_re shim removal (#301)
- close bypasses across seccomp, proxy, Landlock, and spawn paths
- correctness fixes across checkers and heuristics
- resolve, allowlist-sanitize, and egress-confine compose stacks
- runtime probes execute inside the sandbox
- address SCA correctness and hardening bugs across 162 files
- journal and checklist bookkeeping integrity
- fail closed when the LLM auth layer refuses persistently
- fail loud when isolation can't engage, never silent "0 findings" (#782)
- merge WIP SAGE work after rebase onto main
- improve format string mitigation handling (#878)
- scorecard idempotency + json lazy + sandbox/seatbelt swallow-site promotions (4 defects) (#515)
- shared guard-exit unlock classifier, callback-lifetime detection
- three-layer DB-coverage gate before refute can fire
- harden analysis passes against hostile input and drift
- scope AF_UNIX connect on the mount-ns spawn path via seccomp user-notify
- fresh trust verdicts; live workers; leaner eval grammar
- mechanical checker correctness + land missing branch modules
- harden dark_verify witness oracle against forged verdicts
- ...and 2921 more
Full diff: v3.0.0...v3.1.0