## 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
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 <[email protected]>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Test plan
Closes #124
🤖 Generated with Claude Code