From 65aa6c93153b28554127627dde2883a0685eeaff Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Fri, 2 Oct 2026 09:17:48 -0700 Subject: Never write a follow list over one we failed to find A kind 3 is replaceable: publishing one built on a list we didn't find wipes the real one wherever it lands. 2026-10-02, an Amethyst user with 398 follows (kept on her own relays and an archive) signed in to coinos for the first time; the starter-follows seed asked only our relays, saw nothing, and published Adam + coinos over her list. - deepContactList: our relays, the profile indexes, the archives, the person's own NIP-65 write relays, and Primal's signed copy (verified). - Starter follows only for a key with no follow list AND no profile anywhere ('new' meant new to coinos, not new to nostr). - A follow, follow-many or mute made while we have never seen the list does the deep lookup first and builds on what it finds. - Settings > Nostr > Follow list: find older copies on history-keeping relays and restore one as a union with the current list (nobody is removed), for anyone already hit. - tools/follows-overwrite-test.js: fake relay network, only an archive holds the list; fails on the old code with the exact two-person event. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Dmcrt9KyNDKVWFKnb8BREo --- src/locales/hi.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/locales/hi.json') diff --git a/src/locales/hi.json b/src/locales/hi.json index 013be87..e683ef2 100644 --- a/src/locales/hi.json +++ b/src/locales/hi.json @@ -870,5 +870,13 @@ "profFollowersNone": "कोई फ़ॉलोअर नहीं मिला।", "profFollowersPartial": "{total} में से {n} फ़ॉलोअर्स दिखाए जा रहे हैं।", "showMore": "और दिखाएँ", - "arkZapNoPostZap": "इस पोस्ट पर zap नहीं कर सकते: लेखक के पास न Lightning पता है, न Ark पता।" + "arkZapNoPostZap": "इस पोस्ट पर zap नहीं कर सकते: लेखक के पास न Lightning पता है, न Ark पता।", + "followHistTitle": "फ़ॉलो सूची", + "followHistDesc": "आप {n} लोगों को फ़ॉलो करते हैं। अगर किसी दूसरे ऐप ने आपकी फ़ॉलो सूची बदल दी, तो इतिहास रखने वाले किसी रिले पर पुरानी कॉपी हो सकती है। बहाल करने पर सब वापस जुड़ जाते हैं; कोई हटाया नहीं जाता।", + "followHistLook": "पुरानी कॉपियाँ खोजें", + "followHistPeople": "{n} लोग", + "followHistRestore": "{n} बहाल करें", + "followHistNone": "किसी पुरानी कॉपी में ऐसा कोई नहीं जो आपकी सूची में न हो।", + "followHistNothing": "उस कॉपी के सभी लोग पहले से आपकी सूची में हैं।", + "followHistRestored": "{n} फ़ॉलो बहाल किए गए।" } -- cgit v1.2.3