settings/SU-4: extract ScopeChips primitive; reuse across all scoped pages #835
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#835
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 a developer, I want one
ScopeChipsprimitive used by every settings page that has scope (Service, Agent types, Labels, Per-agent secrets), so that the scope-switch UX is identical and chip styling lives in one place.Context
ScopeChipsis duplicated:apps/web/src/routes/settings.service.tsx:50-89— Builtin / Global.apps/web/src/routes/settings.agent-types.tsx:70-108— Builtin / Global / Agent type / Instance.Labels (
settings.labels.tsx) and the AES Secrets store could also benefit but currently have ad-hoc tab-style pickers.Acceptance criteria
Primitive
apps/web/src/components/settings-scope-chips.tsxexportsScopeChips.scopes: string[],active: string,available: Set<string>,onSelect,readOnly?: Set<string>,labels?: Record<string,string>.+glyph, readOnly = disabled).Migration
settings.service.tsximports the primitive; deletes its local copy.settings.agent-types.tsximports the primitive; deletes its local copy.Tests
Out of scope
References
apps/web/src/routes/settings.service.tsx:50-89apps/web/src/routes/settings.agent-types.tsx:70-108apps/web/CLAUDE.mdborder-radius + shadow conventions.