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/vi.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/locales/vi.json') diff --git a/src/locales/vi.json b/src/locales/vi.json index afce28e..91ae1e4 100644 --- a/src/locales/vi.json +++ b/src/locales/vi.json @@ -206,5 +206,13 @@ "profFollowersNone": "Không tìm thấy người theo dõi.", "profFollowersPartial": "Đang hiển thị {n} trên {total} người theo dõi.", "showMore": "Xem thêm", - "arkZapNoPostZap": "Không thể zap bài này: tác giả không có địa chỉ Lightning hay địa chỉ Ark." + "arkZapNoPostZap": "Không thể zap bài này: tác giả không có địa chỉ Lightning hay địa chỉ Ark.", + "followHistTitle": "Danh sách theo dõi", + "followHistDesc": "Bạn đang theo dõi {n} người. Nếu một ứng dụng khác đã thay danh sách theo dõi của bạn, bản cũ có thể vẫn còn trên relay lưu lịch sử. Khôi phục sẽ thêm lại tất cả; không ai bị xóa.", + "followHistLook": "Tìm bản cũ", + "followHistPeople": "{n} người", + "followHistRestore": "Khôi phục {n}", + "followHistNone": "Không bản cũ nào có người mà danh sách của bạn đang thiếu.", + "followHistNothing": "Mọi người trong bản đó đã có trong danh sách của bạn.", + "followHistRestored": "Đã khôi phục {n} người theo dõi." } -- cgit v1.2.3