solidprivacy-nl commited on
Commit
d653643
·
1 Parent(s): 4d721e3

Record v13.0 Scrub Key model in changelog

Browse files
Files changed (1) hide show
  1. CHANGELOG.md +64 -0
CHANGELOG.md CHANGED
@@ -26,6 +26,70 @@ For UI/UX-only work, prefer pure helper modules and tests before touching Stream
26
 
27
  ---
28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  ## v12.5 — Final review summary
30
 
31
  Status: completed and app verified.
 
26
 
27
  ---
28
 
29
+ ## v13.0 — Scrub Key specification and pure model
30
+
31
+ Status: implemented; pending GitHub Actions and Hugging Face sync confirmation.
32
+
33
+ Purpose:
34
+
35
+ - Prepare the v13 Scrub Key / Reinsert phase without touching the active review UI.
36
+ - Define the local mapping file concept for future reversible workflows.
37
+ - Add a pure Python model with validation and JSON roundtrip support.
38
+ - Make pseudonymization safety boundaries explicit before UI/export work starts.
39
+
40
+ Files added or changed:
41
+
42
+ - `SCRUB_KEY_SPEC.md`
43
+ - `scrub_key.py`
44
+ - `tests/test_scrub_key.py`
45
+ - `WORKPACKAGES.md`
46
+ - `CHANGELOG.md`
47
+ - `handover/workpackages/20260607_1342_v13_0_scrub_key_spec_model.md`
48
+
49
+ Main changes:
50
+
51
+ - Added a Scrub Key specification for the future workflow:
52
+ - `Scrub → Review → Scrub Key → AI → Reinsert → Export → Audit`.
53
+ - Defined required mapping fields:
54
+ - original value;
55
+ - placeholder;
56
+ - entity type;
57
+ - user-facing type label;
58
+ - source;
59
+ - review status;
60
+ - include state;
61
+ - timestamp;
62
+ - optional document/project/dossier label.
63
+ - Added required safety language explaining that a Scrub Key makes scrubbed text reversible.
64
+ - Explicitly classified the Scrub Key model as pseudonymization, not full anonymization.
65
+ - Added local/protected key handling guidance and external-AI sharing warning.
66
+ - Added a deterministic pure helper model:
67
+ - `build_scrub_key(rows, document_label=None)`;
68
+ - `scrub_key_to_json(scrub_key)`;
69
+ - `scrub_key_from_json(text)`;
70
+ - `validate_scrub_key(scrub_key)`.
71
+ - Set the v13.0 excluded-row policy to `omitted`, so unchecked rows are not written into the key.
72
+ - Kept timestamp handling deterministic: the model does not create timestamps itself; validation catches missing timestamps.
73
+
74
+ Testing:
75
+
76
+ - Added `tests/test_scrub_key.py`.
77
+ - Local targeted validation passed: `PYTHONPATH=. pytest -q tests/test_scrub_key.py` → 6 passed.
78
+ - Tests cover valid key creation, excluded-row omission, required fields, JSON roundtrip, validation errors, and synthetic Dutch legal examples only.
79
+
80
+ Intentionally not changed:
81
+
82
+ - No direct edit to `presidio_streamlit.py`.
83
+ - No direct edit to `fix_streamlit_nested_expanders.py`.
84
+ - No export/download buttons.
85
+ - No reinsert UI.
86
+ - No cloud processing.
87
+ - No secret storage.
88
+ - No real personal data in tests or examples.
89
+ - No change to active review UI or export semantics.
90
+
91
+ ---
92
+
93
  ## v12.5 — Final review summary
94
 
95
  Status: completed and app verified.