Fixes
- Restore cloudcheck tag propagation to URL / OPEN_TCP_PORT children (#3309).
_minimize()was wiping_resolved_hostson parent events, starvingdnsresolvewhen child events reached it. Cloud tags never made it past the DNS_NAME. - Fix
virtualhost.finish()crash when the baseline request returnedNone(#3273). - Escape control characters in console output so raw bytes in scan data can't garble the terminal (#3274, closes #3258).
- Fix stale
baddnsconfig key in thekitchen-sinkpreset; adds a test that validates every bundled preset (#3280, closes #3279). - Fix
openssl_dev_headersdep check to actually require the header, so minimal images (e.g.python:3.11-slim) no longer skip installinglibssl-dev(#3282, closes #3272). - Point API-key docs to
secrets.ymlin the sections that still mentionedbbot.yml(#3283, closes #3270).
waf_bypass improvements
- Lower
neighbor_cidrdefault from /24 to /28 (module +waf-bypasspreset). - Parallelize bypass checks in
finish()up to 100 by default. - Distinguish direct vs neighbor bypass candidates in log output.
- Demote non-IP DNS result log from warning to verbose.
Tooling updates
Dependency bumps
beautifulsoup4 4.14.3→4.15.0, cachetools 6.2.6→7.1.4, cryptography 46.0.5→48.0.1, deepdiff 8.6.1→9.1.0, dnspython 2.7.0→2.8.0, griffe 1.15.0→2.1.0, idna 3.11→3.18, lxml 6.0.2→6.1.0, maturin 1.13.3→1.14.1, mike 2.1.3→2.2.0, mkdocs-material 9.7.1→9.7.7, mkdocstrings 0.30.1→1.0.6, mkdocstrings-python 2.0.2→2.0.5, pip 26.0.1→26.1.2, pre-commit 4.5.1→4.6.0, pydantic 2.12.5→2.13.4, pymdown-extensions 10.20.1→11.0.1, pytest 8.4.2→9.1.1, pytest-cov 7.0.0→7.1.0, pytest-env 1.1.5→1.6.0, pytest-rerunfailures 16.1→16.4, regex 2026.1.15→2026.7.10, requests 2.32.5→2.33.0, ruff 0.15.18→0.15.22, soupsieve 2.8.3→2.8.4, starlette 0.52.1→1.3.1, tornado 6.5.4→6.5.7, urllib3 2.6.3→2.7.0, websockets 15.0.1→16.0, werkzeug 3.1.5→3.1.8, xxhash 3.6.0→3.8.1, ansible-runner 2.4.2→2.4.3, plus actions/cache v5→v6.
Full changelog: v3.0.0...v3.0.1