mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-10-06 11:48:24 +00:00
A rotation replaced the channel's current key in the List and dropped the
old one. `seed` only anchors keys held at join, so a channel created or
privatised later had nowhere else to keep them: after the next restart the
rotator (and every member that adopted the rotation) lost all history from
before it. Seen on RK Test: #p came back empty after a Rotate key.
A rotation now appends the key it replaces to the channel's `priors`
(`{key, epoch, retired_at}`, the reference client's shape, which we already
read), plus any intermediate keys an adoption walk stepped over — the walk
computed them with their publish times and then threw them away.
This leaves CORD-02 §8's preference to keep intermediate keys out of the
List: re-walking from `seed` cannot reach a channel that isn't in `seed`.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>