mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-10-06 03:38:23 +00:00
A readmission built the community's List entry from scratch and carried over only heldRoots. So it dropped the seed, channel_cuts (letting a key cut before the ban come back), retired channel keys and old private channel keys. It also wrote that entry with follow() from a snapshot taken before the join's suspensions, which the List's own contract forbids. `ConcordDirectInviteInbox.readmittedEntry` now puts the new base (root, epoch, control key, relays, name, join time) over the held entry. It keeps every held root plus the one being left, the seed and entry extras, and moves each re-delivered channel key through withChannelKey, which keeps the replaced key in `priors`. The join writes it through the List's read-modify-write. Verified on the emulator: amy bans Phone Tester in a Private community, refounds, unbans and re-invites. After Accept the channel shows both the pre-ban message and the post-refound one, and the composer is back. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>