When a CLI provider record included a whitespace-only displayName, ProviderSnapshot.normalize treated it as truthy, trimmed it to an empty string, and broke out of the candidate loop without checking the fallback title or leaving displayName null. Downstream, snapshot.displayName === null evaluated to false, causing the empty string to bypass the configured roster display name and clear the provider title. Require candidate display text to be non-empty after bounding and trimming before accepting it and breaking the candidate loop. Regression tests: QtTest fallback in tst_provider_snapshot.qml and roster display-name retention in test_provider_metadata.py.
4 files changedLine totals unavailable