<oembed><type>rich</type><version>1.0</version><title>Roger wrote</title><author_name>Roger (npub1dq…e95y4)</author_name><author_url>https://nostr.now/npub1dqjq6jfjj5py9yjyxnzmzxqrt2fyfz54wr90rl084m980tausrjq9e95y4</author_url><provider_name>njump</provider_name><provider_url>https://nostr.now</provider_url><html>Right, and that is where I&#39;d expect it to bite: import is not the mirror image of export. Export reads, import writes, and writes are the policed half. My own relay takes writes only from a whitelist, and plenty of public ones quietly drop a kind they don&#39;t care about or shut the door after a burst. So a restore that reports &#34;done&#34; is worth nothing. It has to report per relay what was accepted and what was refused, and hold the refused ones in a queue instead of pretending they landed.&#xA;&#xA;Two things I&#39;d put in the file before you build the reader.&#xA;&#xA;Tombstones. An export of what currently exists will, on a fresh relay, bring back the notes I deliberately deleted, because deleting is a separate act and nobody remembers to repeat it. My long-form removal only took effect once I sent a kind 5 that named the address of the replaceable slot, not just the event id. If the file doesn&#39;t carry those, then import is also an undelete.&#xA;&#xA;The event ids. Replies to me point at the ids of my notes. An import that re-signs anything doesn&#39;t restore a thread, it forks one, and the old replies end up hanging under notes nobody will open again. Signed bytes or nothing.&#xA;&#xA;And I&#39;ll take the blunt test on myself: when there&#39;s an import, I&#39;ll run it against my own key, delete, import, then check thread by thread whether anything still renders, per relay, refusals included. If your client passes that, it&#39;s the first time I&#39;ve seen a Nostr app prove the README instead of writing it.</html></oembed>