feat(web): settings persistence — profile, preferences save to DB (#124) #145

Merged
jason.woltje merged 1 commits from feat/p7-013-settings-persist into main 2026-03-15 18:43:52 +00:00
Owner

Summary

  • Add tabbed settings UI (Profile, Appearance, Notifications, Providers)
  • Profile name and avatar URL save via BetterAuth endpoint
  • Appearance preferences (theme, sidebar collapsed, default model) save to memory preferences API under category
  • Notification email toggles save to memory preferences API under category
  • Each tab loads its preferences from API on mount with loading state
  • All save buttons show saving/saved/error feedback inline

Test plan

  • Sign in, navigate to Settings
  • Edit name and avatar URL in Profile tab, save, verify BetterAuth called
  • Switch theme, toggle sidebar collapsed, set default model in Appearance tab, save, verify upsert calls
  • Toggle notification preferences in Notifications tab, save, verify upsert
  • Reload page, verify preferences re-load correctly
  • Providers tab still works (test connection, model list expand)

Closes #124

🤖 Generated with Claude Code

## Summary - Add tabbed settings UI (Profile, Appearance, Notifications, Providers) - Profile name and avatar URL save via BetterAuth endpoint - Appearance preferences (theme, sidebar collapsed, default model) save to memory preferences API under category - Notification email toggles save to memory preferences API under category - Each tab loads its preferences from API on mount with loading state - All save buttons show saving/saved/error feedback inline ## Test plan - [ ] Sign in, navigate to Settings - [ ] Edit name and avatar URL in Profile tab, save, verify BetterAuth called - [ ] Switch theme, toggle sidebar collapsed, set default model in Appearance tab, save, verify upsert calls - [ ] Toggle notification preferences in Notifications tab, save, verify upsert - [ ] Reload page, verify preferences re-load correctly - [ ] Providers tab still works (test connection, model list expand) Closes #124 🤖 Generated with Claude Code
jason.woltje added 1 commit 2026-03-15 18:43:42 +00:00
feat(web): settings persistence — profile, preferences save to DB (#124)
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
b9ec4214dd
Add tabbed settings page with Profile, Appearance, Notifications, and
Providers sections. Profile name/avatar save via BetterAuth updateUser.
Appearance and notification preferences save to memory preferences API
(ui.theme, ui.sidebar_collapsed, ui.default_model, notify.*). Settings
load from API on tab activation with success/error feedback on save.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
jason.woltje merged commit 0809f4e787 into main 2026-03-15 18:43:52 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#145