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:
vjrj 2026-07-11 13:03:20 +02:00
parent 4af90876f4
commit dc7b2eee27
25 changed files with 595 additions and 863 deletions

View file

@ -540,29 +540,18 @@
"count": "Vouched for by {n}",
"vouch": "I know this person",
"vouched": "You vouch for them",
"circle": "In your circle",
"member": "Trusted member of the network"
"circle": "In your circle"
},
"wot": {
"title": "Network of trust",
"open": "Network of trust",
"help": "How trusted membership is decided: people vouch for each other, and trust spreads outward from a set of founding roots.",
"roots": "Trust roots",
"rootsHelp": "The founding identities the network is anchored to. Add people you trust (paste their identity code); membership is measured outward from them.",
"noRoots": "No trust roots yet — membership can't be worked out until the network is seeded.",
"addRoot": "Add a trust root",
"rootHint": "Paste an identity code (npub…)",
"add": "Add",
"rootAdded": "Trust root added",
"rootInvalid": "That's not a valid identity code",
"remove": "Remove",
"params": "Advanced parameters",
"paramsHelp": "Duniter rules. Loosen them for a young network; tighten as it grows.",
"sigQty": "Vouches to become a member",
"stepMax": "Max distance from a root",
"validityDays": "Vouch validity (days)",
"reset": "Reset to Duniter defaults",
"saved": "Saved"
"yourPeople": {
"title": "Your people",
"help": "People you've met and vouch for, and people who vouch for you.",
"youVouchFor": "You vouch for",
"vouchesForYou": "They vouch for you",
"youVouchForEmpty": "You don't vouch for anyone yet. When you meet someone, open your chat with them and tap \"I know this person\".",
"vouchesForYouEmpty": "No one vouches for you yet",
"revoke": "Stop vouching",
"revokeConfirm": "Stop vouching for this person?",
"offline": "You're offline — try again when you're connected"
},
"notifications": {
"newMessageFrom": "New message from {name}"