refactor(overview): isolate row filtering and automatic selection (#261)

* refactor(overview): isolate row filtering and automatic selection

Move Overview eligibility, the stored provider selection, and the visible
limit into OverviewProviders, and the usage/severity ranking behind the
automatic provider selection into ProviderAutoSelect. main.qml keeps the
bindings, the roster it ranks, and the selection it commits.

Behavior is preserved, with one correction the module comment already
promised: the runtime now resolves stored Overview IDs against normalized
roster IDs, as the settings checkboxes do, so a roster entry using a raw CLI
spelling such as groqcloud no longer drops its selected row. Unusable roster
entries take no Overview slot instead of rendering an empty one.

Document module ownership and direct coverage. Review confirms README, usage,
translations, schema, metadata, and TODO remain current. No user-visible
behavior change requires a changelog entry.

Verification: full make check passed locally, including 1304 Qt cases and 96
Python tests. Optional KDE QML modules are absent here, so the pre-existing
settings-geometry and provider-filter cases are skipped, not passed; no
graphical session was available for an installed-widget runtime check.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* test(overview): pin the fully broken roster to its first provider

Review asked for a no-selection sentinel when every provider is error-only.
There is no such state downstream: PopupSelection falls back to the first
provider, and both the popup and the panel have to show one, so a sentinel
would return the same index after a wider contract change. Record the intent
in the module and cover the all-error-only roster instead.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
c9035520a9Simone committed on 9/13/2026, 2:57:36 PM· committed by GitHubparent12a4c85
9 files changedLine totals unavailable