* 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>
9 files changedLine totals unavailable