settings/SU-5: SettingsSaveBar primitive; convert Appearance Apply → sticky bar #836
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/claude-hooks#836
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
User story
As an operator, I want the same save UX on every multi-field settings page, so that I never have to guess whether changes auto-save, need an Apply, or need a Save click.
Context
Three different save patterns today:
Acceptance criteria
Save rule (codified)
[Discard] [Save changes]+ dirty-field count.Primitive
apps/web/src/components/settings-save-bar.tsxexports<SettingsSaveBar dirtyCount onSave onDiscard saving />.dirtyCount === 0.apps/web/CLAUDE.md).Migrations
setMode/setDarkPack/setLightPack.Tests
Out of scope
References
apps/web/src/routes/settings.appearance.tsx— Apply button to remove.apps/web/src/routes/settings.index.tsx:1029-1051— Voice Save/Discard pattern.apps/web/src/routes/settings.service.tsx:248-263— destructive confirm dialog (preserve).