solidprivacy-nl commited on
Commit
6284c2f
·
1 Parent(s): 008d64e

Add handover for v13.5 two-mode UI planning

Browse files
handover/workpackages/20260608_0000_v13_5_two_mode_ui_planning.md ADDED
@@ -0,0 +1,151 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Handover — WP11 — v13.5 Two-mode reinsert UI planning
2
+
3
+ Repository: `solidprivacy-nl/scrub`
4
+ Status: completed; planning/specification-only workpackage
5
+
6
+ ## Summary
7
+
8
+ WP11 planned the future two-mode UI before changing Streamlit UI code.
9
+
10
+ The planning document recommends moving Scrub toward two clear modes:
11
+
12
+ ```text
13
+ 1. Anonimiseren
14
+ 2. Originele waarden terugzetten
15
+ ```
16
+
17
+ The recommended first implementation is a low-risk Streamlit tabs / mode-panel skeleton, not a full landing-page refactor yet.
18
+
19
+ The long-term product direction remains a landing choice with two large cards/buttons, but that should come after the current patch-based UI is simplified or replaced.
20
+
21
+ ## Files added
22
+
23
+ - `TWO_MODE_UI_SPEC.md`
24
+ - `handover/workpackages/20260608_0000_v13_5_two_mode_ui_planning.md`
25
+
26
+ ## Files changed
27
+
28
+ - `WORKPACKAGES.md`
29
+ - `CHANGELOG.md`
30
+
31
+ ## Tests
32
+
33
+ - Tests: not applicable; planning/specification-only workpackage.
34
+ - No tests added or changed.
35
+ - No local test run required by scope.
36
+
37
+ ## Validation status
38
+
39
+ - Documentation/spec validation: completed.
40
+ - GitHub Actions: not required for planning-only documentation change.
41
+ - Hugging Face sync: not required for planning-only documentation change.
42
+ - App verification: not applicable; no UI behavior changed.
43
+
44
+ ## GitHub Actions status
45
+
46
+ Not required / not checked for this planning-only documentation workpackage.
47
+
48
+ ## Hugging Face sync status
49
+
50
+ Not required / not checked for this planning-only documentation workpackage.
51
+
52
+ ## App verification status
53
+
54
+ Not applicable; no UI behavior changed.
55
+
56
+ ## Main recommendations
57
+
58
+ 1. Move to a two-mode UI:
59
+
60
+ ```text
61
+ Anonimiseren
62
+ Originele waarden terugzetten
63
+ ```
64
+
65
+ 2. Use Streamlit tabs or two clear mode panels first.
66
+ 3. Treat landing cards as the later mature product direction.
67
+ 4. Keep pasted-text reinsert available as the simplest fallback.
68
+ 5. Add TXT upload/download reinsert UI after the mode skeleton is verified.
69
+ 6. Add DOCX upload/download reinsert UI later using the WP10 helper.
70
+ 7. Keep PDF reinsert excluded until a separate reliability review.
71
+ 8. Keep AI/cloud behavior out unless explicitly approved.
72
+
73
+ ## Options compared
74
+
75
+ - Option A — current single-scroll workflow:
76
+ - lowest short-term cost;
77
+ - not recommended as the next growth step because privacy states are not separated enough.
78
+ - Option B — Streamlit tabs:
79
+ - recommended first implementation direction;
80
+ - clear mode separation with lower patch-based implementation risk.
81
+ - Option C — landing choice with two large cards/buttons:
82
+ - best long-term product UX;
83
+ - not recommended as the immediate next step because it requires a larger refactor.
84
+
85
+ ## Required journeys specified
86
+
87
+ `Anonimiseren` journey:
88
+
89
+ 1. Upload/paste source text or document.
90
+ 2. Review detected replacements.
91
+ 3. Download currently supported scrubbed TXT/DOCX/PDF outputs.
92
+ 4. Optionally download Scrub Key JSON.
93
+ 5. Warn that the Scrub Key is reversible/pseudonymization.
94
+
95
+ `Originele waarden terugzetten` journey:
96
+
97
+ 1. Load/paste Scrub Key.
98
+ 2. Choose input type: paste text, upload TXT, upload DOCX.
99
+ 3. Validate key locally.
100
+ 4. Reinsert original values locally.
101
+ 5. Show audit summary.
102
+ 6. Warn restored output may contain sensitive/confidential data again.
103
+ 7. Download restored TXT or DOCX where supported.
104
+
105
+ ## Boundaries preserved
106
+
107
+ - No UI code changed.
108
+ - No edit to `fix_streamlit_nested_expanders.py`.
109
+ - No edit to `presidio_streamlit.py`.
110
+ - No edit to `scrub_key_document_reinsert.py`.
111
+ - No edit to `scrub_key_reinsert.py`.
112
+ - No edit to `scrub_key.py`.
113
+ - No edit to `scrub_key_import.py`.
114
+ - No edit to `tests/*`.
115
+ - No TXT/DOCX reinsert UI added.
116
+ - No PDF reinsert added.
117
+ - No AI calls added.
118
+ - No cloud processing added.
119
+ - No existing TXT, CSV, DOCX or PDF scrubbed export/download behavior changed.
120
+ - No Scrub Key export/import behavior changed.
121
+ - No secrets, tokens or real personal data stored.
122
+
123
+ ## Remaining risks
124
+
125
+ - The current app is still patch-based through `fix_streamlit_nested_expanders.py`; future UI implementation must be sequential.
126
+ - Tabs can still share session state if implemented carelessly, so WP12 must keep state explicit.
127
+ - Moving reinsert out of the export flow must not break existing scrubbed downloads.
128
+ - DOCX reinsert UI must later show WP10 limitations clearly.
129
+ - PDF reinsert remains high risk and must stay out of implementation until a separate reliability review.
130
+
131
+ ## Next recommended step
132
+
133
+ Start:
134
+
135
+ ```text
136
+ WP12 — v13.6 Two-mode UI skeleton and tab separation
137
+ ```
138
+
139
+ Recommended WP12 scope:
140
+
141
+ - UI skeleton/navigation only;
142
+ - use two tabs or clear mode panels;
143
+ - keep current anonymization workflow working;
144
+ - keep pasted-text reinsert available;
145
+ - no TXT upload reinsert yet;
146
+ - no DOCX upload reinsert yet;
147
+ - no PDF reinsert;
148
+ - no AI/cloud behavior;
149
+ - no export/download semantics change;
150
+ - add patch-level UI tests;
151
+ - require app verification after sync.