Skip to content

[Epic] Icon consolidation — finish the domain-icon registry rollout #1630

Description

@ka1kqi

Domain concepts (tokens, cost, model, user, session, trace, …) were each drawn with a lucide icon picked ad-hoc per file, so one concept drifted to several glyphs across the app. The registry work introduced frontend/ui/src/components/icons/domain-icons.ts as the single source of truth, migrated ~25 surfaces onto it, and added a no-restricted-imports guard so the registry cannot be bypassed.

These are the pieces deliberately left out of that change, either because they needed their own design decision or because they were cross-cutting refactors that did not belong in a feature PR.

Scope

Ordering

#1627 is the highest value: it closes a live case of one component being drawn under two spellings, and it is the only item that removes a documented carve-out from the lint guard. #1628 is a small self-contained fix. #1629 is pure hygiene and can go last.

Not in scope

Some lucide glyphs stay deliberately unrestricted because each has a genuine second meaning in this app: Eye (password visibility), Hash (Slack channel), Clock (durations), ArrowRight (call-to-action arrows), Sparkle ("magic"), CircleAlert (generic warnings). Those are correct as-is and should not be migrated.

Metadata

Metadata

Assignees

No one assigned

    Labels

    epicTracking issue spanning multiple sub-issuesui

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions