chore: land 0.2.0 on main (PR #2 merged into its stacked base) #3

Merged
jonah merged 2 commits from feat/core-and-redact-proxy into main 2026-10-05 21:23:23 +02:00
Owner

PR #2 was stacked on feat/core-and-redact-proxy and merged there, so main is still 0.1.1.

This brings main up to 0.2.0: the accuracy harness, the synthetic test set, the 400 on non-text content parts, and the fix for the fail-open content gate. The diff against main is the single commit b21263c.

🤖 Generated with Claude Code

PR #2 was stacked on feat/core-and-redact-proxy and merged there, so main is still 0.1.1. This brings main up to 0.2.0: the accuracy harness, the synthetic test set, the 400 on non-text content parts, and the fix for the fail-open content gate. The diff against main is the single commit b21263c. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat: accuracy harness + synthetic test set (stacked on #1) (#2)
Some checks failed
CI / policy (pull_request) Failing after 3s
CI / python (pull_request) Successful in 21s
CI / checks (pull_request) Successful in 1m16s
b21263c7eb
Stacked on #1: base is `feat/core-and-redact-proxy`. Merge #1 first, then retarget this to `main`.

## What
- Seeded NL/DE/EN test-set generator with exact gold spans, incl. checksum-failing look-alikes as unlabelled negatives.
- `python -m redact_proxy.eval`: span-level recall, precision, F1, leak rate per entity.
- Hermetic CI test: 99% recall floor on checksum entities.
- README accuracy table (spaCy md, 1,000 docs per language).
- **Behaviour change:** image/audio/file content parts return 400 by default (they were forwarded unredacted). `allow_non_text_parts: true` opts out.
- 0.2.0.

## Measured (synthetic, so an upper bound)
Leak rate: NL 16.5%, DE 7.4%, EN 8.8%. Weak: bare postcode/PLZ (33-47%), credit card (63-76%), phone (78-88%).

## Not done
`gliner2-pii` backend, `--verifier`, Gretel/ai4privacy corpora, lg-model comparison. Docker, Forgejo CI and live Ollama still unverified (see #1).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01JZCbAYmY516SAe7umoLKWt
Co-authored-by: CodeAndCanvas728 <cedar-elk-01@icloud.com>
Reviewed-on: #2
Author
Owner

🤖 Auto-review status · jonah/safe-ai-tools PR #3

⏭️ Superseded — a newer push is being reviewed instead.

Last updated: 2026-10-05T19:27:41.459Z

<!-- opencode-status --> **🤖 Auto-review status** · `jonah/safe-ai-tools` PR #3 ⏭️ **Superseded** — a newer push is being reviewed instead. *Last updated: 2026-10-05T19:27:41.459Z*
Merge branch 'main' into feat/core-and-redact-proxy
Some checks failed
CI / checks (pull_request) Successful in 1m21s
CI / policy (pull_request) Failing after 3s
CI / python (pull_request) Successful in 23s
69deb2a90f
jonah merged commit 4dcd2d7039 into main 2026-10-05 21:23:23 +02:00
jonah deleted branch feat/core-and-redact-proxy 2026-10-05 21:23:23 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
jonah/safe-ai-tools!3
No description provided.