Skip to content

Commit e91308b

Browse files
committed
docs: update version references for 4.8.0
1 parent eef05e3 commit e91308b

10 files changed

Lines changed: 73 additions & 68 deletions

File tree

AGENTS.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,19 @@
1313

1414
## Current Project Status
1515

16-
**Stable version: 4.4.0**
16+
**Stable version: 4.8.0**
1717

18-
**Development version: 4.4.0a5**
18+
**Development version: 4.8.0**
1919

20-
**Next minor target: 4.5.0**
20+
**Next major target: 5.0.0**
2121

2222
### ✅ Recently Completed (Latest)
2323

24+
- **Redaction Correctness**: Document-order token numbering, overlap-safe span handling, and stable mask mappings
25+
- **Allowlists and Typing**: Exact and regex allowlists, Presidio-style aliases, and `py.typed`
26+
- **Agent & Gateway Firewall**: Claude Code hook and LiteLLM guardrail adapters
2427
- **GLiNER Integration**: Modern NER engine with PII-specialized models
25-
- **Smart Cascading**: Intelligent regex → GLiNER → spaCy progression
26-
- **Enhanced CLI**: Model management with `--engine` flags
2728
- **Performance Validation**: 100x+ regex speedup reproducible via `benchmarks/`; 32x GLiNER
28-
- **CI/CD Consolidation**: 7 workflows → 3 (ci, release, benchmark)
2929

3030
## Quick Development Setup
3131

@@ -41,7 +41,7 @@ pre-commit install
4141

4242
# 3. Install ML extras for advanced features
4343
pip install -e ".[nlp]" # spaCy
44-
pip install -e ".[nlp-advanced]" # GLiNER (NEW)
44+
pip install -e ".[nlp-advanced]" # GLiNER
4545
pip install -e ".[all]" # Everything
4646

4747
# 4. Verify installation
@@ -89,7 +89,7 @@ pip install datafog[ocr] # Image processing
8989
pip install datafog[all] # Everything
9090
```
9191

92-
## GLiNER Integration (NEW)
92+
## GLiNER Integration
9393

9494
### Overview
9595

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ It provides:
66

77
- Fast structured PII detection via regex
88
- An offline PII firewall for AI agents: a Claude Code hook and a LiteLLM
9-
gateway guardrail (new in 4.6)
9+
gateway guardrail (introduced in 4.6)
1010
- Optional NER support via spaCy and GLiNER
1111
- A simple agent-oriented API for LLM applications
1212
- Backward-compatible `DataFog` and `TextService` classes
1313

14-
## Agent & Gateway Firewall (4.6)
14+
## Agent & Gateway Firewall
1515

16-
DataFog 4.6 adds two ready-made enforcement points that catch PII at the
16+
DataFog includes two ready-made enforcement points that catch PII at the
1717
moment it would leave your machine — offline, in microseconds, with matched
1818
values never echoed into logs or transcripts:
1919

@@ -72,8 +72,8 @@ pip install datafog[all]
7272

7373
Python 3.13 support is certified for the core SDK, CLI, `nlp`,
7474
`nlp-advanced`, and `ocr` install profiles. Donut OCR still requires a model
75-
that is available locally before runtime use. `distributed` and `all` are not
76-
newly certified on Python 3.13 in the 4.x line.
75+
that is available locally before runtime use. `distributed` and `all` remain
76+
optional, heavier profiles and are not part of the lightweight core path.
7777

7878
## Quick Start
7979

ROADMAP.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# DataFog Roadmap
22

3-
The roadmap — current release status (4.7.x) and v5.0.0 plans — lives in
3+
The roadmap — current release status (4.8.x) and v5.0.0 plans — lives in
44
[docs/roadmap.rst](docs/roadmap.rst).
55

66
Roadmap priorities are shaped by user feedback — open a

benchmarks/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ All suites use the production default entity set
4949

5050
## Reference results
5151

52-
Apple M5 Pro, macOS, CPython 3.13, datafog 4.7.0, litellm 1.91.0,
52+
Apple M5 Pro, macOS, CPython 3.13, datafog 4.8.0, litellm 1.91.0,
5353
presidio-analyzer 2.2.363, spaCy 3.8 (`en_core_web_sm`). Medians of the
5454
full (non-quick) run; expect different absolute numbers on different
5555
hardware, but the ratios and orders of magnitude should hold.

docs/contributing.rst

Lines changed: 33 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,32 @@
1-
=======================================
2-
Contributor Setup And 4.5 Release Flow
3-
=======================================
1+
==================================
2+
Contributor Setup And Release Flow
3+
==================================
44

5-
This page is the contributor runbook for DataFog 4.5 work. It is meant for
5+
This page is the contributor runbook for DataFog 4.x work. It is meant for
66
humans and agents preparing local changes, choosing verification commands, and
7-
understanding where the 4.5 release boundary sits.
7+
understanding where the current release boundary sits.
88

99
Version Frame
1010
=============
1111

1212
Current release planning uses this frame:
1313

14-
* Stable package release: ``4.4.0``.
15-
* Current development package version: ``4.4.0a5``.
16-
* Next minor target: ``4.5.0``.
14+
* Stable package release: ``4.8.0``.
15+
* Current development package version: ``4.8.0``.
16+
* Next major target: ``5.0.0``.
1717

18-
Do not bump routine feature, documentation, or cleanup branches directly to
19-
``4.5.0``. Keep the version stable during local release-prep work, then handle
20-
the final version and release-note alignment in the release-readiness slice.
18+
Do not bump routine feature, documentation, or cleanup branches directly to a
19+
future release number. Keep the version stable during local work, then handle
20+
final version and release-note alignment in the dedicated release slice.
2121

2222
Python Environments
2323
===================
2424

2525
DataFog currently declares support for Python ``>=3.10,<3.14``. The CI matrix
2626
tests core, NLP, and NLP-advanced installs on Python 3.10, 3.11, 3.12, and
2727
3.13. OCR profile smoke checks also run on Python 3.13 with system Tesseract
28-
installed. Distributed and all-profile Python 3.13 validation remain outside
29-
the 4.5 support claim.
28+
installed. Distributed and all-profile installs remain heavier optional
29+
profiles rather than the lightweight core support claim.
3030

3131
Create one virtual environment per Python version when you need to compare
3232
profiles locally:
@@ -171,41 +171,35 @@ Live Modules
171171
============
172172

173173
Use :doc:`live-module-map` before changing core package structure. It lists the
174-
live 4.5 modules for each concept and the historical ``*_lean`` and
174+
live 4.x modules for each concept and the historical ``*_lean`` and
175175
``*_original`` files that are kept only as non-live compatibility/audit
176176
artifacts.
177177

178-
4.5 Release Flow
179-
================
178+
Release Flow
179+
============
180180

181-
The 4.5 work lands as focused pull requests into ``dev``. Keep feature and docs
182-
branches narrow, and avoid mixing local cleanup, external PR review, and final
183-
release mechanics in one branch.
181+
4.x and v5 preparation work lands as focused pull requests into ``dev``. Keep
182+
feature and docs branches narrow, and avoid mixing local cleanup, external PR
183+
review, and final release mechanics in one branch.
184184

185-
The release flow for 4.5 is:
185+
The release flow is:
186186

187-
1. Land the local release-prep baseline and follow-up cleanup/docs slices.
188-
2. Review the external German regex PR after the local release-prep baseline is
189-
in place.
190-
3. Integrate German regex support only if review says it fits the 4.5
191-
lightweight text screening thesis.
192-
4. Validate optional Python 3.13 profiles before claiming support beyond core
193-
SDK and CLI.
194-
5. Prepare release readiness with :doc:`v45-release-readiness`: changelog and
195-
release notes, package checks, docs build, CI state, and version alignment.
196-
6. Bump or override the final stable release to ``4.5.0`` only during the
197-
release-readiness and stable-release path.
187+
1. Land focused feature, fix, or docs slices into ``dev``.
188+
2. Update the changelog, release notes, package checks, docs build, CI state,
189+
and version alignment in a dedicated release-readiness change.
190+
3. Validate optional Python 3.13 profiles before expanding support claims.
191+
4. Bump or override the final stable release version only during the
192+
stable-release path.
198193

199194
The current release workflow strips prerelease suffixes from the package
200-
version unless a manual stable ``version_override`` is provided. For the final
201-
4.5 stable release, use a dedicated release-readiness change or the stable
202-
workflow override so the published version is ``4.5.0`` rather than another
203-
``4.4.0`` prerelease line.
195+
version unless a manual stable ``version_override`` is provided. Use a
196+
dedicated release-readiness change or the stable workflow override when the
197+
published version should move to a new stable line.
204198

205199
External PR Boundary
206200
====================
207201

208-
The external German PII regex PR belongs after local baseline cleanup. Review
209-
it as a 4.5 candidate, not as a v5 planning shortcut. If accepted, adapt it in
210-
the German regex integration slice with tests, documentation of locale
211-
coverage, and no new dependency burden on the core path.
202+
Review external PII regex PRs against the current lightweight text screening
203+
thesis, not as v5 planning shortcuts. If accepted, adapt them with tests,
204+
documentation of locale coverage, and no new dependency burden on the core
205+
path.

docs/getting-started.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,11 +123,11 @@ The CLI core path is text-first:
123123
Image commands are optional. Install ``datafog[ocr]`` for local OCR and
124124
``datafog[web,ocr]`` when the CLI needs to download image inputs.
125125

126-
What 4.5 Is Not
126+
What 4.x Is Not
127127
===============
128128

129-
DataFog 4.5 prepares the package for future middleware use cases, but it does
130-
not ship dedicated Sentry, OpenTelemetry, logging-framework, or cloud DLP
129+
DataFog 4.x prepares the package for broader middleware use cases, but it does
130+
not yet ship dedicated Sentry, OpenTelemetry, logging-framework, or cloud DLP
131131
adapters. Those integrations are future-facing work built on the same core
132132
text screening path.
133133

@@ -137,4 +137,4 @@ Next Pages
137137
* :doc:`python-sdk` documents the Python API surface.
138138
* :doc:`cli` documents command-line usage.
139139
* :doc:`optional-surfaces` documents OCR and Spark install notes.
140-
* :doc:`roadmap` explains how 4.5 leads toward later middleware work.
140+
* :doc:`roadmap` explains how the 4.x line leads toward later middleware work.

docs/roadmap.rst

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
Release Roadmap
33
================
44

5-
Where DataFog is today (4.7.x) and where it is going (v5.0.0). The 4.x
5+
Where DataFog is today (4.8.x) and where it is going (v5.0.0). The 4.x
66
line delivered the lightweight-core architecture and, from 4.6.0 on, an
77
offline PII firewall for AI agents and gateways. The v5 cycle turns that
88
foundation into the fastest, easiest offline PII firewall for AI apps,
@@ -12,13 +12,13 @@ logs, and datasets.
1212
:local:
1313
:depth: 1
1414

15-
Current status — 4.7.x
15+
Current status — 4.8.x
1616
----------------------
1717

18-
DataFog ``4.7.0`` is the current stable release (July 2026). Patch
19-
releases on the 4.7.x line focus on detection precision — reducing
20-
SSN/phone false positives surfaced by real-world agent traffic — while
21-
v5.0.0 is prepared.
18+
DataFog ``4.8.0`` is the current stable release (July 2026). Patch
19+
releases on the 4.8.x line focus on redaction correctness, detection
20+
precision, and keeping the 4.x agent/gateway firewall stable while v5.0.0
21+
is prepared.
2222

2323
Every published performance number is reproducible with one command:
2424
``python benchmarks/run.py`` (see ``benchmarks/`` for methodology,
@@ -112,6 +112,17 @@ Both default to the high-precision entity set (``EMAIL``, ``PHONE``,
112112
4.7.x patch releases: SSN and phone precision fixes (hex-string and
113113
no-dash false positives).
114114

115+
✅ 4.8.0 — Redaction Correctness (Released July 2026)
116+
------------------------------------------------------
117+
118+
* **Document-order redaction tokens**: repeated entities are numbered from
119+
left to right, so the first email in a document becomes ``[EMAIL_1]``.
120+
* **Overlap-safe redaction**: public ``redact()`` calls now suppress
121+
overlapping and duplicate spans before applying replacements, avoiding
122+
corrupted output fragments.
123+
* **Mask mapping preservation**: same-length values no longer collide in
124+
``mask`` strategy mappings; each masked value receives a stable indexed key.
125+
115126
v5.0.0 — Offline PII Firewall for AI Apps (In Progress)
116127
--------------------------------------------------------
117128

examples/quick_start.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
{
1717
"cell_type": "markdown",
1818
"metadata": {},
19-
"source": "# DataFog Quick Start Guide\\n\\n> **📦 Version Requirement**: This guide is for DataFog v4.2.0 and above\\n> \\n> ✅ **New in v4.2.0**: GLiNER integration, smart cascading, and enhanced performance\\n\\nWelcome to DataFog! This notebook demonstrates how to get started with DataFog's fast PII detection and anonymization capabilities.\\n\\n## What makes DataFog special?\\n\\n- **🚀 Ultra-Fast**: 190x faster than spaCy for structured PII, 32x faster with GLiNER\\n- **🪶 Lightweight**: <2MB core package with optional ML extras\\n- **🧠 Smart Engines**: Choose from regex, GLiNER, spaCy, or smart cascading\\n- **📦 Production Ready**: Comprehensive testing and performance validation\"",
19+
"source": "# DataFog Quick Start Guide\\n\\n> **📦 Version Requirement**: This guide is current for DataFog v4.8.0 and above\\n> \\n> ✅ **4.x Highlights**: GLiNER integration, smart cascading, agent guardrails, allowlists, and redaction correctness fixes\\n\\nWelcome to DataFog! This notebook demonstrates how to get started with DataFog's fast PII detection and anonymization capabilities.\\n\\n## What makes DataFog special?\\n\\n- **🚀 Ultra-Fast**: 190x faster than spaCy for structured PII, 32x faster with GLiNER\\n- **🪶 Lightweight**: <2MB core package with optional ML extras\\n- **🧠 Smart Engines**: Choose from regex, GLiNER, spaCy, or smart cascading\\n- **📦 Production Ready**: Comprehensive testing and performance validation\"",
2020
"outputs": []
2121
},
2222
{
@@ -624,4 +624,4 @@
624624
},
625625
"nbformat": 4,
626626
"nbformat_minor": 4
627-
}
627+
}

setup_lean.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from setuptools import find_packages, setup
22

3-
# Historical shadow packaging snapshot. The live DataFog 4.5 packaging input is
3+
# Historical shadow packaging snapshot. The live DataFog packaging input is
44
# setup.py. Do not use this file for builds, releases, or dependency changes.
55

66
# Read README for the long description

setup_original.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from setuptools import find_packages, setup
22

3-
# Historical shadow packaging snapshot. The live DataFog 4.5 packaging input is
3+
# Historical shadow packaging snapshot. The live DataFog packaging input is
44
# setup.py. Do not use this file for builds, releases, or dependency changes.
55

66
# Read README for the long description

0 commit comments

Comments
 (0)