fix(usage): derive empty-usage identity from validated account fields (#271)

Malformed identity payloads made ProviderSnapshot.normalize treat a provider
without any valid account identity as if it had one: the raw-item length
checks counted arrays and other discarded values, so the popup showed the
limits-unavailable message instead of no-usage. The placeholder now follows
the already-validated account, organization, and loginMethod strings, which
also keeps legacy usage.accountEmail providers eligible.

Regression coverage in tst_provider_snapshot covers malformed fields and the
legacy nested-identity path.
a3bee63540Simone committed on 9/17/2026, 8:39:06 AM· committed by GitHubparent38d05a9
3 files changedLine totals unavailable