From 088333174c5b8c1e02b9df57cc694cd813361c2b Mon Sep 17 00:00:00 2001 From: Michael Chihlas Date: Tue, 27 Jan 2026 23:49:12 -0500 Subject: [PATCH] Add User Preferences to MVP, add Phase 2.5 Personal Branching specs - Fixed minor typescript errors that would show during compile --- .claude/settings.local.json | 25 ++++++++++++++ 03-DEVELOPMENT-ROADMAP.md | 5 +++ 04-FEATURE-SPECIFICATIONS.md | 47 ++++++++++++++++++++++++++ frontend/src/pages/TreeLibraryPage.tsx | 1 + frontend/tsconfig.app.json | 3 +- frontend/tsconfig.json | 6 ++++ frontend/tsconfig.node.json | 9 +++-- 7 files changed, 89 insertions(+), 7 deletions(-) create mode 100644 .claude/settings.local.json diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 00000000..fd446eb3 --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,25 @@ +{ + "permissions": { + "allow": [ + "Bash(tasklist:*)", + "Bash(findstr:*)", + "Bash(powershell -Command:*)", + "Bash(timeout:*)", + "Bash(netstat:*)", + "mcp__postgres__query", + "Bash(curl:*)", + "Bash(TOKEN=\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI0MjdjMDI1Ni00N2VmLTRiODAtYjZjNS1iODE5MDAyMzdhMjkiLCJleHAiOjE3Njk1NjA4NTgsInR5cGUiOiJhY2Nlc3MifQ.7eBGz7awT6BOPbfNv303zm4ERQBeUOGHLRPgQMgwchM\")", + "Bash(git add:*)", + "Bash(git commit:*)", + "Bash(git push:*)", + "Bash(dir /b \"C:\\\\Dev\\\\Projects\\\\Apoklisis\")", + "Bash(npm create:*)", + "Bash(npm install:*)", + "Bash(npx tailwindcss:*)", + "Bash(node node_modules/tailwindcss/lib/cli.js:*)", + "Bash(npm exec:*)", + "Bash(npm uninstall:*)", + "Bash(npm run build:*)" + ] + } +} diff --git a/03-DEVELOPMENT-ROADMAP.md b/03-DEVELOPMENT-ROADMAP.md index c9d63999..932d4923 100644 --- a/03-DEVELOPMENT-ROADMAP.md +++ b/03-DEVELOPMENT-ROADMAP.md @@ -67,6 +67,11 @@ - [x] Loading states - [x] Error handling and user feedback (ErrorBoundary) - [ ] Keyboard shortcuts - *Not yet implemented* +- [ ] User preferences + - [ ] Settings modal/page accessible from user menu + - [ ] Theme toggle (dark/light/system) + - [ ] Persist preferences in localStorage + - [ ] Default export format preference **Testing:** - [x] Michael tests on 5-10 real tickets diff --git a/04-FEATURE-SPECIFICATIONS.md b/04-FEATURE-SPECIFICATIONS.md index 9014dd63..64546cad 100644 --- a/04-FEATURE-SPECIFICATIONS.md +++ b/04-FEATURE-SPECIFICATIONS.md @@ -274,6 +274,52 @@ Started Citrix VDA service after resolving NetLogon dependency issue. VDA succes --- +### 5.5 User Preferences (MVP) + +**Description:** Basic user settings to personalize the application experience, stored locally for MVP with optional server sync in later phases. + +**MVP Settings:** + +| Setting | Options | Default | Storage | +|---------|---------|---------|--------| +| Theme | Light / Dark / System | System | localStorage | +| Default Export Format | Markdown / Text / HTML | Markdown | localStorage | + +**UI Components:** +- **Settings Access:** Gear icon in user menu dropdown +- **Settings Modal:** Simple modal with toggle/dropdown for each setting +- **Theme Toggle:** Can also be quick-access icon in header + +**Theme Implementation:** +``` +Light Mode: +- Background: White/light gray +- Text: Dark gray/black +- Accents: Brand colors + +Dark Mode: +- Background: Dark gray (#1a1a2e or similar) +- Text: Light gray/white +- Accents: Adjusted brand colors for dark backgrounds + +System: +- Follows OS preference via prefers-color-scheme media query +- Updates automatically if OS setting changes +``` + +**Technical Requirements:** +- Persist to localStorage immediately on change +- Apply theme without page reload (CSS variables) +- Respect system preference on first visit +- Export format preference used as default in export dialog + +**Future Enhancements (Phase 2+):** +- Sync preferences to user account (database) +- More settings: auto-save interval, keyboard shortcuts, notification preferences +- Per-tree preferences (remember last used export format per tree) + +--- + ### 5. Attachment Support **Description:** Upload and attach files (screenshots, logs, command outputs) to specific decision nodes during troubleshooting. @@ -724,6 +770,7 @@ Public and team steps can be rated by users to surface the most helpful content. | Tree Navigation | ✓ | | | | | | Basic Export | ✓ | | | | | | User Auth | ✓ | | | | | +| **User Preferences** | **✓** | | | | | | 5 Starter Trees | ✓ | | | | | | Team Management | | ✓ | | | | | Tree Editor | | ✓ | | | | diff --git a/frontend/src/pages/TreeLibraryPage.tsx b/frontend/src/pages/TreeLibraryPage.tsx index d8c2179b..3f85add3 100644 --- a/frontend/src/pages/TreeLibraryPage.tsx +++ b/frontend/src/pages/TreeLibraryPage.tsx @@ -95,6 +95,7 @@ export function TreeLibraryPage() {