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.
c11d85acfcSimone committed on 9/10/2026, 10:54:45 PM· committed by GitHubparent138ed59
8 files changedLine totals unavailable