Skip to content

Commit be01950

Browse files
committed
docs: record audit follow-ups (theme toggle, on-device theme verify, design-token adoption, backup posture, regex timeout)
1 parent 3e9bff3 commit be01950

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

ROADMAP.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -994,6 +994,28 @@ New items from an exhaustive research pass covering 5 parallel research agents (
994994

995995
### P2 — hardening and hygiene
996996

997+
## Audit follow-ups (engineering/UX/theming pass)
997998

999+
Items found during a deep audit that need human decision, on-device verification, or implementation work beyond an audit pass.
1000+
1001+
- [ ] P2 — On-device verification of the completed light (Catppuccin Latte) theme
1002+
Why: The light scheme was completed with full container/outline tokens, but this environment has no emulator. Verify contrast and surface layering across every mode and nested surface (modals, popovers, dropdowns, run-log/scene/flow cards, toasts) on a device before claiming theme parity.
1003+
Where: app/src/main/java/com/opentasker/ui/theme/Theme.kt, all ui/screens/*
1004+
1005+
- [ ] P2 — Manual theme toggle + persistence + high-contrast mode
1006+
Why: The app follows the system theme only (OpenTaskerTheme reads isSystemInDarkTheme with no override); there is no user-selectable light/dark/high-contrast preference or persistence. A persisted DataStore-backed theme setting plus a high-contrast scheme is premium-table-stakes.
1007+
Where: app/src/main/java/com/opentasker/ui/theme/Theme.kt, Setup screen
1008+
1009+
- [ ] P3 — Adopt DesignSystem spacing/radius/elevation tokens across screens
1010+
Why: DesignSystem defines Spacing/Radii/Elevation/ComponentSize scales but the UI hardcodes dp values throughout, so the design system is decorative and spacing/radius drift is unguarded.
1011+
Where: app/src/main/java/com/opentasker/ui/theme/DesignSystem.kt, all ui/screens/*
1012+
1013+
- [ ] P3 — Declare android:allowBackup explicitly and confirm backup privacy posture
1014+
Why: allowBackup is implicit (defaults true); backup rules correctly exclude the DB + shared prefs, but user_files/ and downloads/ written by file actions are still eligible for backup/transfer. Decide the privacy posture for a privacy-first app and declare the flag explicitly.
1015+
Where: app/src/main/AndroidManifest.xml, app/src/main/res/xml/backup_rules.xml, data_extraction_rules.xml
1016+
1017+
- [ ] P3 — Add a match-timeout to user-authored regex template/variable ops
1018+
Why: regex/replace ops bound pattern and input length but a crafted user pattern (e.g. nested quantifiers) can still backtrack on the bounded input. A wall-clock match timeout would fully neutralize ReDoS from self-authored automations.
1019+
Where: app/src/main/java/com/opentasker/core/engine/variables/VariableExpander.kt
9981020

9991021

0 commit comments

Comments
 (0)