App Configuration Architecture & Database Management UI#892
Conversation
Code Review — PR #892: App Configuration Architecture & Database Management UIReview Type: Full Pragmatic Review (first review, no prior comments) SummaryThis is a well-structured, three-phase implementation that delivers genuine architectural value: eliminating scattered constants, establishing a proper The implementation is a clear net improvement to code health. However, there are several issues that should be addressed before merge: one functional correctness issue, one missing test requirement explicitly called out in the acceptance criteria, and a handful of design gaps that affect UX correctness. Requirements CheckPhase 1: Config Foundations
Phase 2: Database Management Menu
Phase 3: Settings UI Pane
Findings[Improvement]
|
Review Feedback Addressed✅ Addressed (3)
⏭️ Skipped (4)
Commit: 64ebc61 |
) Introduces a unified AppConfig runtime configuration layer, extends preferences with display/import structs, consolidates scattered constants, and builds a complete settings UI pane with database management. Phase 1: Config foundations - Consolidate TAURI_CLIENT_ID (4 files) and MODEL_FILENAME into constants.rs - Extend AppPreferences with DisplayPreferences and ImportSourcePreferences - Create AppConfig struct as single source of truth for runtime settings - Refactor init_services() to read from AppConfig Tauri state - Add get_settings and update_display_settings commands Phase 2: Database management menu - Add select_new_database, restart_app, reset_database_to_default commands - Restructure File menu: New Database, Open Database, Import submenu, Settings - Wire Cmd+, shortcut for Settings - Delete old select_db_location command (broken after first init) Phase 3: Settings UI pane - Add 'settings' tab type to navigation system - Create settings store with loadSettings/updateDisplaySetting - Build settings pane with sidebar nav and 4 sections: Database, Display, Import Sources, About - Integrate theme selector with existing theme system Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Sync theme from backend preferences on Tauri startup so display settings survive app restarts (fixes theme persistence gap) - Validate theme string in update_display_settings (reject invalid values) - Standardize settings-changed event to camelCase keys (renderMarkdown) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
64ebc61 to
27795c9
Compare
* Add app configuration architecture & database management UI (closes #891) Introduces a unified AppConfig runtime configuration layer, extends preferences with display/import structs, consolidates scattered constants, and builds a complete settings UI pane with database management. Phase 1: Config foundations - Consolidate TAURI_CLIENT_ID (4 files) and MODEL_FILENAME into constants.rs - Extend AppPreferences with DisplayPreferences and ImportSourcePreferences - Create AppConfig struct as single source of truth for runtime settings - Refactor init_services() to read from AppConfig Tauri state - Add get_settings and update_display_settings commands Phase 2: Database management menu - Add select_new_database, restart_app, reset_database_to_default commands - Restructure File menu: New Database, Open Database, Import submenu, Settings - Wire Cmd+, shortcut for Settings - Delete old select_db_location command (broken after first init) Phase 3: Settings UI pane - Add 'settings' tab type to navigation system - Create settings store with loadSettings/updateDisplaySetting - Build settings pane with sidebar nav and 4 sections: Database, Display, Import Sources, About - Integrate theme selector with existing theme system Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Address review: theme persistence, validation, event casing - Sync theme from backend preferences on Tauri startup so display settings survive app restarts (fixes theme persistence gap) - Validate theme string in update_display_settings (reject invalid values) - Standardize settings-changed event to camelCase keys (renderMarkdown) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Closes #891