diff options
| author | Adam Soltys <[email protected]> | 2026-10-30 18:29:14 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2026-10-30 18:29:14 -0700 |
| commit | f675fef1321e69f434f076211d13438c0e1aff59 (patch) | |
| tree | e07ff6ba80faa9738dccf9bb2c1135d0c8e4c918 /src/i18n.js | |
| parent | e7961f2e0d9df26b846c2c7f976c0d567ffbcc15 (diff) | |
| download | coinosv3-f675fef1321e69f434f076211d13438c0e1aff59.tar.gz coinosv3-f675fef1321e69f434f076211d13438c0e1aff59.zip | |
A profile (kind 0) is never written over one we failed to find. 2026-10-30, a long-time nostr user signed in with his key for the first time; our relays had never seen his kind 0 (it lived on ditto, snort and oxtr), the 3 s lookup came back empty, and the payment-address publish went out as {lud16, nip05} alone: name, picture and banner gone from every relay (nicstazzema, shown as npub1yk2lkr7). An empty quick lookup now widens to the same search the follow list got after its own overwrite (indexes, archives, the key's own write relays, Primal's signed copy) before anything is written, once per key per session so a brand-new key's first publish waits once. For anyone already hit, the profile editor offers "Look for older copies": a kind 0 from a history-keeping relay fills only the fields still empty in the editor, and Save publishes it. tools/kind0-overwrite-test.js plays the incident against a fake relay network where only an archive holds the profile
Co-Authored-By: Claude Fable 5.1 <[email protected]>
Diffstat (limited to 'src/i18n.js')
| -rw-r--r-- | src/i18n.js | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/i18n.js b/src/i18n.js index 8190030..636362e 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -109,6 +109,17 @@ const STR = { profDisplayName: 'Display name', profPublicKey: 'Nostr public key', profKeyLink: 'Public key', + profHistDesc: 'If another app replaced your profile, an older copy may still be on a relay that keeps history. Using one fills only the fields that are empty here.', + profHistLook: 'Look for older copies', + profHistUse: 'Use', + profHistNoName: '(no name)', + profHistNone: 'No older copy has anything this one is missing.', + profHistNothing: 'Everything in that copy is already here.', + profHistFilled: 'Filled {n} fields from the older copy. Save to publish.', + profHist_name: 'name', + profHist_about: 'bio', + profHist_picture: 'picture', + profHist_banner: 'banner', followHistTitle: 'Follow list', followHistDesc: 'You follow {n} people. If another app replaced your follow list, an older copy may still be on a relay that keeps history. Restoring adds everyone from it back; nobody is removed.', followHistLook: 'Look for older copies', |
