2.2.363
zeroclaw-labs/zeroclaw2.2.363Jun 28, 2026by github-actions[bot]
AI Summary
This release introduces new PII recognizers for various international formats (German, Swedish, Canadian, UK, and Turkish) and optimizes the NLP engine for better performance. It also includes critical fixes for Docker configuration handling and dependency management.
Key Highlights
- Added support for German, Swedish, Canadian, UK, and Turkish PII formats
- Introduced the Slim NLP Engine for improved performance
- Fixed configuration path resolution and Docker conf file handling
- Enhanced supply-chain security and updated major dependencies
New Features
- German PII recognizers (DE_*)
- Swedish Personal ID code pattern recognizer
- Swedish Recognizer for Organisationsnummer
- Canadian SIN recognizer
- UK driving licence number recognizer
- Turkish National ID recognizer
- Slim NLP Engine
- merge_entities_with_whitespace parameter for anonymize()
Full Release Notes
## What's Changed * feat(analyzer): add German PII recognizers (DE_*) by @MvdB in https://github.com/data-privacy-stack/presidio/pull/1909 * build(deps): bump azure/login from 2.3.0 to 3.0.0 by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1915 * build(deps): bump github/codeql-action from 4.32.6 to 4.34.1 by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1914 * build(deps): bump actions/cache from 5.0.3 to 5.0.4 by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1913 * Fix: config path resolution for PyPI installs (langextract recognizer) by @RonShakutai in https://github.com/data-privacy-stack/presidio/pull/1917 * build(deps): bump github/codeql-action from 4.34.1 to 4.35.1 by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1920 * fix(ci): skip coverage PR comment step when not in a PR context by @SharonHart with @Copilot in https://github.com/data-privacy-stack/presidio/pull/1921 * Swedish personal ID code pattern recognizer by @goveebee in https://github.com/data-privacy-stack/presidio/pull/1912 * Publish sdist alongside wheels to PyPI by @SharonHart with @Copilot in https://github.com/data-privacy-stack/presidio/pull/1924 * build(deps): bump python from 3.13-windowsservercore to 3.15.0a7-windowsservercore in /presidio-anonymizer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1927 * Swedish Recognizer for Organisationsnummer by @goveebee in https://github.com/data-privacy-stack/presidio/pull/1918 * Fix conf files handling in Docker + Stanza model accessibility issues by @TheSabari07 in https://github.com/data-privacy-stack/presidio/pull/1930 * fix: revert presidio-analyzer Dockerfiles to Python 3.12 and configure dependabot to allow only patch and digest updates by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1928 * build(deps): bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1935 * build(deps): bump python from `f50f56f` to `f1927c7` in /presidio-image-redactor by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1936 * Add Canadian SIN recognizer by @kennionblack in https://github.com/data-privacy-stack/presidio/pull/1934 * build(deps): bump python from `fb83750` to `5e59aae` in /presidio-anonymizer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1937 * build(deps): bump python from `f3fa41d` to `5072b08` in /presidio-analyzer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1938 * Update IP recognizer regexes by @kennionblack in https://github.com/data-privacy-stack/presidio/pull/1941 * Slim NLP Engine by @SharonHart in https://github.com/data-privacy-stack/presidio/pull/1916 * chore: harden supply-chain security — dependabot.yml controls and pyproject.toml defensive version ranges by @SharonHart with @Copilot in https://github.com/data-privacy-stack/presidio/pull/1965 * build(deps): bump python from `5072b08` to `804ddf3` in /presidio-analyzer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1968 * build(deps): bump python from 3.13-slim to 3.13.13-slim in /presidio-image-redactor by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1967 * build(deps): bump python from `5e59aae` to `bc389f7` in /presidio-anonymizer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1966 * Updated copilot instructions by @omri374 in https://github.com/data-privacy-stack/presidio/pull/1866 * feat: Add UK driving licence number recognizer by @tee-jagz in https://github.com/data-privacy-stack/presidio/pull/1857 * feat: add merge_entities_with_whitespace param to anonymize() by @harishkernel in https://github.com/data-privacy-stack/presidio/pull/1932 * build(deps-dev): update azure-identity requirement from <2.0.0,>=1.23.0 to >=1.25.3,<2.0.0 in /presidio-anonymizer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1983 * build(deps-dev): update stanza requirement from <2.0.0,>=1.10.1 to >=1.11.1,<2.0.0 in /presidio-analyzer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1982 * build(deps-dev): update gliner requirement from <1.0.0,>=0.2.13 to >=0.2.26,<1.0.0 in /presidio-analyzer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1981 * build(deps): update opencv-python requirement from <5.0.0,>=4.0.0 to >=4.13.0.92,<5.0.0 in /presidio-image-redactor by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1980 * build(deps-dev): update spacy-huggingface-pipelines requirement from <1.0.0,>=0.0.1 to >=0.0.4,<1.0.0 in /presidio-analyzer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1979 * build(deps-dev): update gunicorn requirement from <26.0.0,>=20.0.0 to >=25.3.0,<26.0.0 in /presidio-image-redactor by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1978 * build(deps): update pytesseract requirement from <0.4,>=0.3.7 to >=0.3.13,<0.4 in /presidio-image-redactor by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1977 * build(deps): bump actions/cache from 5.0.4 to 5.0.5 by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1976 * build(deps): bump github/codeql-action from 4.35.1 to 4.35.2 by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1975 * Add dependency groups for Docker and actions by @SharonHart in https://github.com/data-privacy-stack/presidio/pull/1984 * build(deps): update pydantic requirement from <3.0.0,>=2.0.0 to >=2.12.5,<3.0.0 in /presidio-analyzer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1989 * build(deps): update pyyaml requirement from <7.0.0,>=6.0.0 to >=6.0.3,<7.0.0 in /presidio-analyzer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1988 * build(deps-dev): update azure-ai-textanalytics requirement from <6.0.0,>=5.3.0 to >=5.4.0,<6.0.0 in /presidio-analyzer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1987 * build(deps): update azure-ai-formrecognizer requirement from <4.0.0,>=3.3.0 to >=3.3.3,<4.0.0 in /presidio-image-redactor by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1986 * build(deps): bump actions/github-script from 8.0.0 to 9.0.0 in the actions-deps group by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1985 * test(ip-recognizer): add ::1 loopback and mixed :: / ::1 test cases by @extrasmall0 in https://github.com/data-privacy-stack/presidio/pull/1940 * Fix dependabot coverage for all pyproject.toml package manifests by @SharonHart with @Copilot in https://github.com/data-privacy-stack/presidio/pull/1929 * build(deps): bump py-cov-action/python-coverage-comment-action from 3.40 to 3.41 in the actions-deps group by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1991 * build(deps): update phonenumbers requirement from <10.0.0,>=8.12 to >=9.0.28,<10.0.0 in /presidio-analyzer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1994 * build(deps): update tldextract requirement from <6.0.0,>=3.0.0 to >=5.3.1,<6.0.0 in /presidio-analyzer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1992 * build(deps-dev): update azure-core requirement from <2.0.0,>=1.20.0 to >=1.39.0,<2.0.0 in /presidio-analyzer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1993 * build(deps): bump python-dotenv from 1.0.0 to 1.2.2 in /docs/samples/deployments/openai-anonymaztion-and-deanonymaztion-best-practices/src/client_app in the pip group across 1 directory by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/1996 * feat: add Turkish National ID (TR_NATIONAL_ID) recognizer by @mrcuren in https://github.com/data-privacy-stack/presidio/pull/1995 * refactor(de-recognizers): complete Prüfziffer validation per primary sources (fixes #1972, supersedes #1974) by @MvdB in https://github.com/data-privacy-stack/presidio/pull/1990 * build(deps-dev): update azure-identity requirement from <2.0.0,>=1.23.0 to >=1.25.3,<2.0.0 in /presidio-analyzer by @dependabot[bot] in https://github.com/data-privacy-stack/presidio/pull/2001 * Consolidate Dependabot updates into a single PR via multi-ecosystem grouping by @SharonHart with @Copilot in https://github.com/data-privacy-stack/presidio/pull/2005 * feat: add Turkish license plate (TR_LICENSE_PLATE) recognizer by @mrcuren in https://github.com/data-privacy-stack/presidio/pull/1999 * Fix incorrect PESEL checksum validation in PlPeselRecognizer by @sienioApius in https://github.com/data-privacy-stack/presidio/pull/1998 * Fix PhoneRecognizer default regions typo: "FE" → "FR" by @omri374 with @Copilot in https://github.com/data-privacy-stack/presidio/pull/2009 * Fix anonymization typos in OpenAI deployment sample by @ynachiket in https://github.com/data-privacy-stack/presidio/pull/2017 * Feature/es passport recognizer by @asensionacher in https://github.com/data-privacy-stack/presidio/pull/2011 * Phonenumber configurable entity by @max-tarlov-infinitusai in https://github.com/data-privacy-stack/presidio/pull/2014 * fix: Preserve GLiNER config fields through Pydantic validation by @yuriihavrylko in https://github.com/data-privacy-stack/presidio/pull/2007 * feat(analyzer): add optional country filter to load_predefined_recogn… by @ynachiket in https://github.com/data-privacy-stack/presidio/pull/2000 * docs: clarify Fabric sample dependency versions by @ynachiket in https://github.com/data-privacy-stack/presidio/pull/2027 * fix: Custom operator validate() must not invoke the lambda by @HammadSiddiqui in https://github.com/data-privacy-stack/presidio/pull/2025 * feat: add Turkish phone number (TR_PHONE_NUMBER) recognizer by @mrcuren in https://github.com/data-privacy-stack/presidio/pull/2006 * docs: remove duplicate zip code pattern in recognizer registry example by @BelizSertcan in https://github.com/data-privacy-stack/presidio/pull/2034 * feat: add Philippine mobile number (PH_MOBILE_NUMBER) recognizer by @Surya-5555 in https://github.com/data-privacy-stack/presidio/pull/2038 * Add explicit click dependencies for Presidio packages by @SharonHart with @Copilot in https://github.com/data-privacy-stack/presidio/pull/2058 * fix(image-redactor): return rendered image when no text is detected in verify by @AlexanderSanin in https://github.com/data-privacy-stack/presidio/pull/2040 * test(ip-recognizer): add regression tests for IPv6 double-colon bugs (#1476) by @AlexanderSanin in https://github.com/data-privacy-stack/presidio/pull/2062 * fix(analyzer): cap url recognizer host to stop quadratic backtracking by @uwezkhan in https://github.com/data-privacy-stack/presidio/pull/2063 * fix(analyzer): ignore empty allow_list terms in regex match by @uwezkhan in https://github.com/data-privacy-stack/presidio/pull/2061 * feat(analyzer): add South African ID number recognizer (ZA_ID_NUMBER) by @thatomokoena in https://github.com/data-privacy-stack/presidio/pull/2064 * feat: add Philippines TIN (PH_TIN) recognizer by @aaronaco in https://github.com/data-privacy-stack/presidio/pull/2016 * Support Azure credentials for DocumentIntelligenceOCR by @mturac in https://github.com/data-privacy-stack/presidio/pull/2085 * fix(image-redactor): fix duplicate entity sorting discard in DICOM verification engine by @ArjunPakhan in https://github.com/data-privacy-stack/presidio/pull/2084 * fix(image-redactor): remove double bbox formatting in eval_dicom_instance by @AlexanderSanin in https://github.com/data-privacy-stack/presidio/pull/2079 * fix: pin numpy<2.5.0 to resolve Python 3.12 CI failure by @SharonHart with @Copilot in https://github.com/data-privacy-stack/presidio/pull/2090 * Fix SG UEN detection missing Format C UENs with the 'R' prefix by @jichaowang02-lang in https://github.com/data-privacy-stack/presidio/pull/2088 * Fix numpy IndentationError in Test Analyzer (Python 3.12) CI job by @SharonHart with @Copilot in https://github.com/data-privacy-stack/presidio/pull/2091 * Fix AU ACN checksum rejecting valid ACNs whose check digit is 0 by @jichaowang02-lang in https://github.com/data-privacy-stack/presidio/pull/2087 * fix(analyzer): preserve recognizer-specific config dumps by @ultramancode in https://github.com/data-privacy-stack/presidio/pull/2081 * docs(image-redactor): fix undefined di_ocr variable in Document Intelligence example by @Dashtid in https://github.com/data-privacy-stack/presidio/pull/2089 * Fix analyzer CI numpy resolver flake by @SharonHart in https://github.com/data-privacy-stack/presidio/pull/2092 * fix(iban): add EG/IQ/LY/LC/SC/UA registry formats so valid IBANs are detected by @AUTHENSOR in https://github.com/data-privacy-stack/presidio/pull/2078 * fix(email): match punycode/IDN domains so internationalized emails are detected by @AUTHENSOR in https://github.com/data-privacy-stack/presidio/pull/2077 * Migration notification message by @omri374 in https://github.com/data-privacy-stack/presidio/pull/2097 * Add project transition update link to README by @omri374 in https://github.com/data-privacy-stack/presidio/pull/2098 * docs: rebrand site to Data Privacy Stack by @SharonHart in https://github.com/data-privacy-stack/presidio/pull/2100 * Add Python 3.14 support for presidio-analyzer by @michaelgiraldo in https://github.com/data-privacy-stack/presidio/pull/2105 * Docs/dps migration phase1 by @omri374 in https://github.com/data-privacy-stack/presidio/pull/2104 * dps migration phase2 - code by @omri374 in https://github.com/data-privacy-stack/presidio/pull/2117 * docs: Material for MkDocs migration to Zensical by @SharonHart in https://github.com/data-privacy-stack/presidio/pull/2102 * Migrate to ghcr packages by @SharonHart in https://github.com/data-privacy-stack/presidio/pull/2103 * revert: undo accidental direct-to-main docs pushes (fix duplicate copyright) by @omri374 in https://github.com/data-privacy-stack/presidio/pull/2118 * docs: add Google Search Console site-verification meta tag by @omri374 in https://github.com/data-privacy-stack/presidio/pull/2119 * docs: publish docs with git CLI by @SharonHart in https://github.com/data-privacy-stack/presidio/pull/2120 * Final removal of Microsoft reference by @omri374 in https://github.com/data-privacy-stack/presidio/pull/2121 * Revert to Microsoft as copyright owner by @omri374 in https://github.com/data-privacy-stack/presidio/pull/2122 * fix(ci): restore id-token:write for provenance attestations in build-platform-images by @SharonHart with @Copilot in https://github.com/data-privacy-stack/presidio/pull/2123 * Prefer repository GITHUB_TOKEN for GHCR publishing in CI by @SharonHart with @Copilot in https://github.com/data-privacy-stack/presidio/pull/2124 * Fix URL test bounds for DPS domain by @SharonHart in https://github.com/data-privacy-stack/presidio/pull/2125 * Release 2.2.363 / 0.0.59 by @SharonHart in https://github.com/data-privacy-stack/presidio/pull/2126 ## New Contributors * @MvdB made their first contribution in https://github.com/data-privacy-stack/presidio/pull/1909 * @goveebee made their first contribution in https://github.com/data-privacy-stack/presidio/pull/1912 * @TheSabari07 made their first contribution in https://github.com/data-privacy-stack/presidio/pull/1930 * @kennionblack made their first contribution in https://github.com/data-privacy-stack/presidio/pull/1934 * @harishkernel made their first contribution in https://github.com/data-privacy-stack/presidio/pull/1932 * @extrasmall0 made their first contribution in https://github.com/data-privacy-stack/presidio/pull/1940 * @mrcuren made their first contribution in https://github.com/data-privacy-stack/presidio/pull/1995 * @sienioApius made their first contribution in https://github.com/data-privacy-stack/presidio/pull/1998 * @ynachiket made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2017 * @asensionacher made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2011 * @max-tarlov-infinitusai made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2014 * @yuriihavrylko made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2007 * @HammadSiddiqui made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2025 * @BelizSertcan made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2034 * @Surya-5555 made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2038 * @AlexanderSanin made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2040 * @uwezkhan made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2063 * @thatomokoena made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2064 * @aaronaco made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2016 * @mturac made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2085 * @ArjunPakhan made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2084 * @jichaowang02-lang made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2088 * @Dashtid made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2089 * @AUTHENSOR made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2078 * @michaelgiraldo made their first contribution in https://github.com/data-privacy-stack/presidio/pull/2105 **Full Changelog**: https://github.com/data-privacy-stack/presidio/compare/2.2.362...2.2.363