# fix\(popup\): normalize overview provider selection for aliases and mixed case \(\#212\) · lucenx/codexbar-plasma

[View on GitCafe](https://git.cafe/lucenx/codexbar-plasma/commit/c11d85acfc549885779b16d4ec128710fa6b26ea)

Repository: [lucenx/codexbar-plasma](https://git.cafe/lucenx/codexbar-plasma)

Visibility: public

Requested revision: c11d85acfc549885779b16d4ec128710fa6b26ea

Requested commit: c11d85acfc549885779b16d4ec128710fa6b26ea

Commit: c11d85acfc549885779b16d4ec128710fa6b26ea

Tree: a253cc802a4b5afee85f7c10feb91790f3574725

Author: Simone

Committer: GitHub

## Message

```
fix(popup): normalize overview provider selection for aliases and mixed case (#212)

* fix(popup): normalize overview provider selection for aliases and mixed case

Overview checkboxes compared raw CLI spellings, so a stored canonical ID
stayed unchecked when the roster spelled it as an alias (groq vs groqcloud)
and vice versa. The runtime and the panel selection already normalize through
ProviderOrder, which caused the settings display to disagree with the applied
selection. Parse, resolve, select, and toggle now normalize with Guards key
checks, store canonical IDs, and still cap at three with absent-preservation
and __none__ semantics.

* refactor(popup): extract overview selection into shared pure module

Address Codex P1: move Overview parsing, resolution, selection, and toggle
transitions into OverviewProviders.js, tested directly without the KCM.
configPopup.qml keeps thin roster adapters plus the config write, and the
runtime shares configuredProviderIDs so settings and selection cannot drift
again. No behavior change from the alias/case fix.

* fix(popup): address review follow-ups on overview selection normalization

Remove dead overviewProviderIDsText wrapper and unused test helper,
assert the overview cap strictly, normalize stored IDs in toggledSelection,
and correct stale raw-ID comments.
```

## Parents

- [138ed591be8f77b2bdcdceb479591d90e5aeddba](https://git.cafe/lucenx/codexbar-plasma/commit/138ed591be8f77b2bdcdceb479591d90e5aeddba?format=markdown)

[Source at this commit](https://git.cafe/lucenx/codexbar-plasma/tree/c11d85acfc549885779b16d4ec128710fa6b26ea?format=markdown)
