refactor(trust): ego-centric trust replaces the global Duniter membership
The global membership rule (curated bootstrap referents + sigQty/stepMax parameters) solved sybil-proof identity for a UBI — a problem this app doesn't have — and its screen leaked graph jargon (npub roots, parameter steppers). Trust is now computed from the user's own position only: you vouch / vouched by people you know (distance <=2) / vouched by N. - TrustCubit: drop networkMember tier, referents and params; keep the circle rule and the 365-day vouch expiry (renewable, self-pruning). - Delete TrustReferents, WotSettings, TrustNetworkScreen and the bundled referents asset; unwire injector/bootstrap/app/chat. - New 'Your people' screen (/your-people, from the profile): who you vouch for (revocable) and who vouches for you, names via ProfileCache. - i18n: wot.* removed, yourPeople.* added (en/es/pt/ast); trust.member removed. Kind 30777 events on relays stay fully compatible — only the interpretation changes.
This commit is contained in:
parent
4af90876f4
commit
dc7b2eee27
25 changed files with 595 additions and 863 deletions
|
|
@ -76,7 +76,7 @@ class TranslationsEs extends Translations with BaseTranslations<AppLocale, Trans
|
|||
@override late final _Translations$chatList$es chatList = _Translations$chatList$es._(_root);
|
||||
@override late final _Translations$chat$es chat = _Translations$chat$es._(_root);
|
||||
@override late final _Translations$trust$es trust = _Translations$trust$es._(_root);
|
||||
@override late final _Translations$wot$es wot = _Translations$wot$es._(_root);
|
||||
@override late final _Translations$yourPeople$es yourPeople = _Translations$yourPeople$es._(_root);
|
||||
@override late final _Translations$notifications$es notifications = _Translations$notifications$es._(_root);
|
||||
@override late final _Translations$plantare$es plantare = _Translations$plantare$es._(_root);
|
||||
@override late final _Translations$sale$es sale = _Translations$sale$es._(_root);
|
||||
|
|
@ -788,35 +788,24 @@ class _Translations$trust$es extends Translations$trust$en {
|
|||
@override String get vouch => 'Conozco a esta persona';
|
||||
@override String get vouched => 'Avalas a esta persona';
|
||||
@override String get circle => 'En tu círculo';
|
||||
@override String get member => 'Miembro de confianza de la red';
|
||||
}
|
||||
|
||||
// Path: wot
|
||||
class _Translations$wot$es extends Translations$wot$en {
|
||||
_Translations$wot$es._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||
// Path: yourPeople
|
||||
class _Translations$yourPeople$es extends Translations$yourPeople$en {
|
||||
_Translations$yourPeople$es._(TranslationsEs root) : this._root = root, super.internal(root);
|
||||
|
||||
final TranslationsEs _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
@override String get title => 'Red de confianza';
|
||||
@override String get open => 'Red de confianza';
|
||||
@override String get help => 'Cómo se decide quién es miembro de confianza: la gente se avala entre sí, y la confianza se extiende desde un conjunto de raíces fundadoras.';
|
||||
@override String get roots => 'Raíces de confianza';
|
||||
@override String get rootsHelp => 'Las identidades fundadoras que anclan la red. Añade a quien te fíes (pega su código de identidad); la membresía se mide hacia fuera desde ellas.';
|
||||
@override String get noRoots => 'Aún no hay raíces de confianza — no se puede calcular la membresía hasta sembrar la red.';
|
||||
@override String get addRoot => 'Añadir una raíz de confianza';
|
||||
@override String get rootHint => 'Pega un código de identidad (npub…)';
|
||||
@override String get add => 'Añadir';
|
||||
@override String get rootAdded => 'Raíz de confianza añadida';
|
||||
@override String get rootInvalid => 'Ese no es un código de identidad válido';
|
||||
@override String get remove => 'Quitar';
|
||||
@override String get params => 'Parámetros avanzados';
|
||||
@override String get paramsHelp => 'Reglas Duniter. Aflójalas para una red joven; apriétalas según crece.';
|
||||
@override String get sigQty => 'Avales para ser miembro';
|
||||
@override String get stepMax => 'Distancia máxima a una raíz';
|
||||
@override String get validityDays => 'Validez del aval (días)';
|
||||
@override String get reset => 'Restablecer a valores Duniter';
|
||||
@override String get saved => 'Guardado';
|
||||
@override String get title => 'Tu gente';
|
||||
@override String get help => 'Personas que conoces y avalas, y personas que te avalan.';
|
||||
@override String get youVouchFor => 'Tú avalas a';
|
||||
@override String get vouchesForYou => 'Te avalan';
|
||||
@override String get youVouchForEmpty => 'Aún no avalas a nadie. Cuando conozcas a alguien, abre vuestro chat y toca "Conozco a esta persona".';
|
||||
@override String get vouchesForYouEmpty => 'Nadie te avala todavía';
|
||||
@override String get revoke => 'Dejar de avalar';
|
||||
@override String get revokeConfirm => '¿Dejar de avalar a esta persona?';
|
||||
@override String get offline => 'Sin conexión — inténtalo cuando estés en línea';
|
||||
}
|
||||
|
||||
// Path: notifications
|
||||
|
|
@ -1633,26 +1622,15 @@ extension on TranslationsEs {
|
|||
'trust.vouch' => 'Conozco a esta persona',
|
||||
'trust.vouched' => 'Avalas a esta persona',
|
||||
'trust.circle' => 'En tu círculo',
|
||||
'trust.member' => 'Miembro de confianza de la red',
|
||||
'wot.title' => 'Red de confianza',
|
||||
'wot.open' => 'Red de confianza',
|
||||
'wot.help' => 'Cómo se decide quién es miembro de confianza: la gente se avala entre sí, y la confianza se extiende desde un conjunto de raíces fundadoras.',
|
||||
'wot.roots' => 'Raíces de confianza',
|
||||
'wot.rootsHelp' => 'Las identidades fundadoras que anclan la red. Añade a quien te fíes (pega su código de identidad); la membresía se mide hacia fuera desde ellas.',
|
||||
'wot.noRoots' => 'Aún no hay raíces de confianza — no se puede calcular la membresía hasta sembrar la red.',
|
||||
'wot.addRoot' => 'Añadir una raíz de confianza',
|
||||
'wot.rootHint' => 'Pega un código de identidad (npub…)',
|
||||
'wot.add' => 'Añadir',
|
||||
'wot.rootAdded' => 'Raíz de confianza añadida',
|
||||
'wot.rootInvalid' => 'Ese no es un código de identidad válido',
|
||||
'wot.remove' => 'Quitar',
|
||||
'wot.params' => 'Parámetros avanzados',
|
||||
'wot.paramsHelp' => 'Reglas Duniter. Aflójalas para una red joven; apriétalas según crece.',
|
||||
'wot.sigQty' => 'Avales para ser miembro',
|
||||
'wot.stepMax' => 'Distancia máxima a una raíz',
|
||||
'wot.validityDays' => 'Validez del aval (días)',
|
||||
'wot.reset' => 'Restablecer a valores Duniter',
|
||||
'wot.saved' => 'Guardado',
|
||||
'yourPeople.title' => 'Tu gente',
|
||||
'yourPeople.help' => 'Personas que conoces y avalas, y personas que te avalan.',
|
||||
'yourPeople.youVouchFor' => 'Tú avalas a',
|
||||
'yourPeople.vouchesForYou' => 'Te avalan',
|
||||
'yourPeople.youVouchForEmpty' => 'Aún no avalas a nadie. Cuando conozcas a alguien, abre vuestro chat y toca "Conozco a esta persona".',
|
||||
'yourPeople.vouchesForYouEmpty' => 'Nadie te avala todavía',
|
||||
'yourPeople.revoke' => 'Dejar de avalar',
|
||||
'yourPeople.revokeConfirm' => '¿Dejar de avalar a esta persona?',
|
||||
'yourPeople.offline' => 'Sin conexión — inténtalo cuando estés en línea',
|
||||
'notifications.newMessageFrom' => ({required Object name}) => 'Nuevo mensaje de ${name}',
|
||||
'plantare.title' => 'Plantares',
|
||||
'plantare.help' => 'Un Plantare es el compromiso de reproducir una semilla y devolver una parte — así una variedad sigue viajando de mano en mano. No es una venta.',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue