Spaces:
Running
Running
solidprivacy-nl commited on
Commit ·
79d771e
1
Parent(s): 5d879cc
Record v13.6 two-mode UI skeleton
Browse files- CHANGELOG.md +68 -144
CHANGELOG.md
CHANGED
|
@@ -26,132 +26,109 @@ For UI/UX-only work, prefer pure helper modules and tests before touching Stream
|
|
| 26 |
|
| 27 |
---
|
| 28 |
|
| 29 |
-
##
|
| 30 |
|
| 31 |
-
Status:
|
| 32 |
|
| 33 |
Purpose:
|
| 34 |
|
| 35 |
-
-
|
| 36 |
-
-
|
| 37 |
-
-
|
| 38 |
-
-
|
| 39 |
-
-
|
|
|
|
| 40 |
|
| 41 |
Files added or changed:
|
| 42 |
|
| 43 |
-
-
|
|
|
|
| 44 |
- Changed `WORKPACKAGES.md`.
|
| 45 |
- Changed `CHANGELOG.md`.
|
| 46 |
-
- Added `handover/workpackages/
|
| 47 |
|
| 48 |
-
Main
|
| 49 |
|
| 50 |
-
-
|
|
|
|
| 51 |
- `Anonimiseren`;
|
| 52 |
- `Originele waarden terugzetten`.
|
| 53 |
-
-
|
| 54 |
-
-
|
| 55 |
-
-
|
| 56 |
-
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
- better later after the patch-based UI has been simplified.
|
| 74 |
-
|
| 75 |
-
Specified user journeys:
|
| 76 |
-
|
| 77 |
-
- `Anonimiseren`:
|
| 78 |
-
- upload/paste source text or document;
|
| 79 |
-
- review detected replacements;
|
| 80 |
-
- download currently supported scrubbed TXT/DOCX/PDF outputs;
|
| 81 |
-
- optionally download Scrub Key JSON;
|
| 82 |
-
- show warning that Scrub Key is reversible/pseudonymization.
|
| 83 |
-
- `Originele waarden terugzetten`:
|
| 84 |
-
- load/paste Scrub Key;
|
| 85 |
-
- choose paste text, upload TXT or upload DOCX;
|
| 86 |
-
- validate key locally;
|
| 87 |
-
- reinsert original values locally;
|
| 88 |
-
- show audit summary;
|
| 89 |
-
- warn restored output may contain sensitive/confidential data again;
|
| 90 |
-
- download restored TXT or DOCX where supported.
|
| 91 |
-
|
| 92 |
-
Recommended implementation sequence:
|
| 93 |
-
|
| 94 |
-
1. `WP12 — v13.6 Two-mode UI skeleton and tab separation`.
|
| 95 |
-
2. `WP13 — v13.7 TXT reinsert upload/download UI`.
|
| 96 |
-
3. `WP14 — v13.8 DOCX reinsert upload/download UI`.
|
| 97 |
-
4. `WP15 — PDF text extraction reliability review only`.
|
| 98 |
|
| 99 |
Validation:
|
| 100 |
|
| 101 |
-
-
|
| 102 |
-
-
|
| 103 |
-
- GitHub Actions:
|
| 104 |
-
- Hugging Face sync:
|
|
|
|
| 105 |
|
| 106 |
Intentionally not changed:
|
| 107 |
|
| 108 |
-
-
|
| 109 |
-
- No
|
| 110 |
-
- No
|
| 111 |
-
- No edit to `scrub_key_document_reinsert.py`.
|
| 112 |
-
- No edit to `scrub_key_reinsert.py`.
|
| 113 |
-
- No edit to `scrub_key.py`.
|
| 114 |
-
- No edit to `scrub_key_import.py`.
|
| 115 |
-
- No edit to `tests/*`.
|
| 116 |
-
- No TXT/DOCX reinsert UI added.
|
| 117 |
- No PDF reinsert added.
|
| 118 |
- No AI calls added.
|
| 119 |
- No cloud processing added.
|
| 120 |
-
- No
|
| 121 |
-
- No
|
|
|
|
| 122 |
- No secrets, tokens or real personal data stored.
|
| 123 |
|
| 124 |
Outcome:
|
| 125 |
|
| 126 |
-
-
|
| 127 |
-
- Next recommended
|
| 128 |
|
| 129 |
---
|
| 130 |
|
| 131 |
-
##
|
| 132 |
|
| 133 |
-
Status: completed;
|
| 134 |
|
| 135 |
Purpose:
|
| 136 |
|
| 137 |
-
-
|
| 138 |
-
-
|
| 139 |
-
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 140 |
|
| 141 |
-
|
| 142 |
|
| 143 |
-
|
| 144 |
-
- GitHub combined commit status returned an empty status list.
|
| 145 |
-
- GitHub workflow-runs query for the commit returned no visible workflow runs.
|
| 146 |
-
- GitHub Actions: not visible through connector.
|
| 147 |
-
- Hugging Face sync: not visible through connector.
|
| 148 |
-
- App verification: not applicable; WP10 was helper/test-only and added no UI behavior.
|
| 149 |
|
| 150 |
Outcome:
|
| 151 |
|
| 152 |
- WP10B closeout is complete.
|
| 153 |
- Coordinator should verify Actions/sync externally before marking WP10 formally closed.
|
| 154 |
-
- Next recommended workpackage remains WP11 — v13.5 Two-mode reinsert UI planning.
|
| 155 |
|
| 156 |
---
|
| 157 |
|
|
@@ -159,18 +136,10 @@ Outcome:
|
|
| 159 |
|
| 160 |
Status: implemented; awaiting coordinator verification of Actions/sync.
|
| 161 |
|
| 162 |
-
Purpose:
|
| 163 |
-
|
| 164 |
-
- Prepare document-level reinsert without changing UI first.
|
| 165 |
-
- Add pure helper/test foundation for TXT and DOCX reinsert.
|
| 166 |
-
- Reuse the existing deterministic Scrub Key reinsert logic.
|
| 167 |
-
- Keep PDF, UI, AI calls and cloud processing out of scope.
|
| 168 |
-
|
| 169 |
Outcome:
|
| 170 |
|
| 171 |
- WP10 helper/test foundation is implemented.
|
| 172 |
- WP10 awaits coordinator verification of GitHub Actions and Hugging Face sync.
|
| 173 |
-
- Next recommended workpackage is WP11 — v13.5 Two-mode reinsert UI planning.
|
| 174 |
|
| 175 |
---
|
| 176 |
|
|
@@ -178,14 +147,6 @@ Outcome:
|
|
| 178 |
|
| 179 |
Status: completed; review-only workpackage.
|
| 180 |
|
| 181 |
-
Purpose:
|
| 182 |
-
|
| 183 |
-
- Decide what Scrub should do next for AI-output and document-level reinsert before implementation starts.
|
| 184 |
-
- Challenge whether pasted-text reinsert is enough.
|
| 185 |
-
- Challenge whether direct DOCX/PDF reinsert should be added immediately.
|
| 186 |
-
- Challenge whether anonymization and de-anonymization should remain in one combined long screen.
|
| 187 |
-
- Recommend a model architecture, product direction, tactical sequence, operational safety position and visual/UX direction.
|
| 188 |
-
|
| 189 |
Outcome:
|
| 190 |
|
| 191 |
- WP9 is complete.
|
|
@@ -203,48 +164,12 @@ Outcome:
|
|
| 203 |
|
| 204 |
---
|
| 205 |
|
| 206 |
-
## v13.3 — Deterministic reinsert UI implementation
|
| 207 |
-
|
| 208 |
-
Status: completed and app-verified after Actions/sync verification.
|
| 209 |
-
|
| 210 |
-
Outcome:
|
| 211 |
-
|
| 212 |
-
- v13.3 deterministic local reinsert UI is completed, app-verified and formally closed.
|
| 213 |
-
|
| 214 |
-
---
|
| 215 |
-
|
| 216 |
-
## v13.3 — Deterministic reinsert UI planning
|
| 217 |
-
|
| 218 |
-
Status: implemented; reinsert UI implementation completed in WP8B and app-verified in WP8C.
|
| 219 |
-
|
| 220 |
-
Outcome:
|
| 221 |
-
|
| 222 |
-
- v13.3 deterministic reinsert UI was planned and then implemented and app-verified.
|
| 223 |
-
|
| 224 |
-
---
|
| 225 |
-
|
| 226 |
-
## v13.3 — Deterministic reinsert helper verification reconciliation
|
| 227 |
-
|
| 228 |
-
Status: completed and formally closed after Actions/sync verification.
|
| 229 |
-
|
| 230 |
-
Outcome:
|
| 231 |
-
|
| 232 |
-
- v13.3 deterministic reinsert helper is completed and formally closed.
|
| 233 |
-
|
| 234 |
-
---
|
| 235 |
-
|
| 236 |
-
## v13.2 — Scrub Key import/reload UI app verification closeout
|
| 237 |
-
|
| 238 |
-
Status: completed, app-verified and closed.
|
| 239 |
-
|
| 240 |
-
Outcome:
|
| 241 |
-
|
| 242 |
-
- v13.2 Scrub Key import/reload UI is completed, app-verified and closed.
|
| 243 |
-
|
| 244 |
-
---
|
| 245 |
-
|
| 246 |
## Earlier completed work
|
| 247 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 248 |
- v13.2 Scrub Key import/reload UI integration.
|
| 249 |
- v13.2 Scrub Key import/reload helper and tests.
|
| 250 |
- v13.1 Scrub Key JSON export UI closeout.
|
|
@@ -268,8 +193,7 @@ Outcome:
|
|
| 268 |
|
| 269 |
Possible directions:
|
| 270 |
|
| 271 |
-
-
|
| 272 |
-
- Two-mode UI skeleton and tab separation.
|
| 273 |
- TXT reinsert upload/download UI.
|
| 274 |
- DOCX reinsert upload/download UI.
|
| 275 |
- PDF text extraction research only after separate reliability review.
|
|
|
|
| 26 |
|
| 27 |
---
|
| 28 |
|
| 29 |
+
## WP12 — v13.6 Two-mode UI skeleton and tab separation
|
| 30 |
|
| 31 |
+
Status: implemented; awaiting GitHub Actions, Hugging Face sync and app verification.
|
| 32 |
|
| 33 |
Purpose:
|
| 34 |
|
| 35 |
+
- Implement the first two-mode UI structure with minimal risk.
|
| 36 |
+
- Make the two main user intents visible:
|
| 37 |
+
- `Anonimiseren`;
|
| 38 |
+
- `Originele waarden terugzetten`.
|
| 39 |
+
- Keep existing behavior working.
|
| 40 |
+
- Avoid a full landing-page refactor.
|
| 41 |
|
| 42 |
Files added or changed:
|
| 43 |
|
| 44 |
+
- Changed `fix_streamlit_nested_expanders.py`.
|
| 45 |
+
- Added `tests/test_two_mode_ui_patch.py`.
|
| 46 |
- Changed `WORKPACKAGES.md`.
|
| 47 |
- Changed `CHANGELOG.md`.
|
| 48 |
+
- Added `handover/workpackages/20260608_0000_v13_6_two_mode_ui_skeleton.md`.
|
| 49 |
|
| 50 |
+
Main change:
|
| 51 |
|
| 52 |
+
- Added an idempotent startup patch that injects a small two-mode skeleton near the top of the app after the local-processing note.
|
| 53 |
+
- The skeleton uses Streamlit tabs:
|
| 54 |
- `Anonimiseren`;
|
| 55 |
- `Originele waarden terugzetten`.
|
| 56 |
+
- Each tab contains a short caption explaining the mode intent.
|
| 57 |
+
- The existing anonymization/scrub flow is left available.
|
| 58 |
+
- The existing pasted-text reinsert flow is left available.
|
| 59 |
+
- This is a navigation/skeleton step only; it does not move all app content into tabs yet.
|
| 60 |
+
|
| 61 |
+
Tests added:
|
| 62 |
+
|
| 63 |
+
- `tests/test_two_mode_ui_patch.py` checks:
|
| 64 |
+
- `Anonimiseren` is present;
|
| 65 |
+
- `Originele waarden terugzetten` is present;
|
| 66 |
+
- `st.tabs` and named tab variables are present;
|
| 67 |
+
- existing Scrub Key export/import labels remain;
|
| 68 |
+
- existing pasted-text reinsert labels remain;
|
| 69 |
+
- existing anonymization/download markers remain;
|
| 70 |
+
- existing scrubbed download behavior markers are not rewired;
|
| 71 |
+
- no TXT upload reinsert UI was added;
|
| 72 |
+
- no DOCX upload reinsert UI was added;
|
| 73 |
+
- no PDF reinsert was added;
|
| 74 |
+
- no AI/cloud/rehydration behavior was added;
|
| 75 |
+
- `apply_replacements_to_text` was not altered.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 76 |
|
| 77 |
Validation:
|
| 78 |
|
| 79 |
+
- Local clone/test run could not be performed in the container because outbound GitHub DNS failed:
|
| 80 |
+
- `Could not resolve host: github.com`.
|
| 81 |
+
- GitHub Actions: awaiting verification.
|
| 82 |
+
- Hugging Face sync: awaiting verification.
|
| 83 |
+
- App verification: required because UI behavior changed.
|
| 84 |
|
| 85 |
Intentionally not changed:
|
| 86 |
|
| 87 |
+
- `presidio_streamlit.py` was not directly edited.
|
| 88 |
+
- No TXT upload reinsert UI added.
|
| 89 |
+
- No DOCX upload reinsert UI added.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 90 |
- No PDF reinsert added.
|
| 91 |
- No AI calls added.
|
| 92 |
- No cloud processing added.
|
| 93 |
+
- No automatic document rehydration added.
|
| 94 |
+
- No existing TXT, CSV, DOCX or PDF scrubbed export/download semantics intentionally changed.
|
| 95 |
+
- No Scrub Key export/import behavior intentionally changed.
|
| 96 |
- No secrets, tokens or real personal data stored.
|
| 97 |
|
| 98 |
Outcome:
|
| 99 |
|
| 100 |
+
- WP12 is implemented and awaits GitHub Actions, Hugging Face sync and app verification.
|
| 101 |
+
- Next recommended workpackage is `WP12B — v13.6 Two-mode UI skeleton app verification closeout`.
|
| 102 |
|
| 103 |
---
|
| 104 |
|
| 105 |
+
## WP11 — v13.5 Two-mode reinsert UI planning
|
| 106 |
|
| 107 |
+
Status: completed; planning/specification-only workpackage.
|
| 108 |
|
| 109 |
Purpose:
|
| 110 |
|
| 111 |
+
- Plan the future two-mode UI before changing Streamlit UI code.
|
| 112 |
+
- Clearly separate `Anonimiseren` from `Originele waarden terugzetten`.
|
| 113 |
+
- Decide where pasted-text, TXT and DOCX reinsert should fit.
|
| 114 |
+
- Compare current single-scroll workflow, tabs and landing-card options.
|
| 115 |
+
- Define the next safe UI implementation workpackage.
|
| 116 |
+
|
| 117 |
+
Outcome:
|
| 118 |
+
|
| 119 |
+
- WP11 planning is complete.
|
| 120 |
+
- Next recommended implementation workpackage was `WP12 — v13.6 Two-mode UI skeleton and tab separation`.
|
| 121 |
+
|
| 122 |
+
---
|
| 123 |
|
| 124 |
+
## WP10B — v13.4 TXT/DOCX reinsert foundation verification and closeout
|
| 125 |
|
| 126 |
+
Status: completed; Actions/sync not visible through connector, coordinator verification required.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 127 |
|
| 128 |
Outcome:
|
| 129 |
|
| 130 |
- WP10B closeout is complete.
|
| 131 |
- Coordinator should verify Actions/sync externally before marking WP10 formally closed.
|
|
|
|
| 132 |
|
| 133 |
---
|
| 134 |
|
|
|
|
| 136 |
|
| 137 |
Status: implemented; awaiting coordinator verification of Actions/sync.
|
| 138 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 139 |
Outcome:
|
| 140 |
|
| 141 |
- WP10 helper/test foundation is implemented.
|
| 142 |
- WP10 awaits coordinator verification of GitHub Actions and Hugging Face sync.
|
|
|
|
| 143 |
|
| 144 |
---
|
| 145 |
|
|
|
|
| 147 |
|
| 148 |
Status: completed; review-only workpackage.
|
| 149 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 150 |
Outcome:
|
| 151 |
|
| 152 |
- WP9 is complete.
|
|
|
|
| 164 |
|
| 165 |
---
|
| 166 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 167 |
## Earlier completed work
|
| 168 |
|
| 169 |
+
- v13.3 deterministic reinsert UI implementation.
|
| 170 |
+
- v13.3 deterministic reinsert UI planning.
|
| 171 |
+
- v13.3 deterministic reinsert helper verification reconciliation.
|
| 172 |
+
- v13.2 Scrub Key import/reload UI app verification closeout.
|
| 173 |
- v13.2 Scrub Key import/reload UI integration.
|
| 174 |
- v13.2 Scrub Key import/reload helper and tests.
|
| 175 |
- v13.1 Scrub Key JSON export UI closeout.
|
|
|
|
| 193 |
|
| 194 |
Possible directions:
|
| 195 |
|
| 196 |
+
- WP12B app verification closeout.
|
|
|
|
| 197 |
- TXT reinsert upload/download UI.
|
| 198 |
- DOCX reinsert upload/download UI.
|
| 199 |
- PDF text extraction research only after separate reliability review.
|