feat(block2): 'in your circle' trust — friend-of-a-friend, not a raw count

A network-wide 'N people vouch' count invites spam and means little. Now the
trust banner computes whether the peer is within YOUR circle — you vouch for
them, or someone you vouch for does (friend-of-a-friend) — via the pure
WebOfTrust rule (seeds={you}, threshold 1, distance 2). When known, the banner
turns green with 'In your circle' (else it falls back to the count).

The full member policy (threshold/distance/bootstrap) stays open (network-trust
§2); this is a deliberately loose 'people near you' heuristic.

Analyzer clean; trust cubit test adds a friend-of-a-friend vs stranger case
(run flutter test locally to confirm — the widget suite is too slow to run here).
This commit is contained in:
vjrj 2026-07-10 12:10:06 +02:00
parent 46b5537a11
commit f3a7ad198d
10 changed files with 96 additions and 16 deletions

View file

@ -659,6 +659,7 @@ class _Translations$trust$es extends Translations$trust$en {
@override String count({required Object n}) => 'Avalada por ${n}';
@override String get vouch => 'Conozco a esta persona';
@override String get vouched => 'Avalas a esta persona';
@override String get circle => 'En tu círculo';
}
// Path: intro.slides
@ -1333,6 +1334,7 @@ extension on TranslationsEs {
'trust.count' => ({required Object n}) => 'Avalada por ${n}',
'trust.vouch' => 'Conozco a esta persona',
'trust.vouched' => 'Avalas a esta persona',
'trust.circle' => 'En tu círculo',
_ => null,
};
}