mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-10-06 03:38:23 +00:00
Rekeys and Refoundings (CORD-06): - Chunks are 1-based on the wire and parsed strictly (0 / i > n refused), so Armada no longer drops our Refoundings (I8). - Chunks are budgeted by bytes (40,960-byte rumor, Armada's ceiling) as well as the 120-blob cap, keeping the wrap under NIP-44's 65,535-byte plaintext with 136-byte staff blobs (I10). - Rotations cite the rotator's Grant (`vac`) on every chunk; receivers honor only BAN holders whose citation their fold has synced, in the app drain and `amy concord rekey` (I9). - Racing authorized rotations converge on the lowest new root; sessions watch their own epoch's rekey address and heal down-only, keeping the losing root for its messages; retries reuse reserved keys (I12). - Rekey rumors must ride an encrypted 20013 seal. - Compaction aborts when a head the refounder honors cannot be carried; the plane is swept paged first, rekey chunks are confirmed before the compacted plane is published (S12). - No rekey adoption, recovery or Refounding for a dissolved community, in the app and the CLI (S13). Invites (CORD-05): - Bundles are bounded (>256 channels refused, relays capped at 5) (S11); invite fragments carry and accept at most 3 bootstrap relays (I11). - classify verifies kind, author == link signer, d == "" and the signature itself, so a forged newer revocation cannot kill a link (S14); the invite preview honours revocation the same way. - Stranded recovery only detects: a bundle never moves a held community's base; the user re-opening the link (or `amy concord recover --rejoin`) is the way forward (S4). - Joins echo invite attribution in the Guestbook Join, mints set creator_npub, `amy concord join` publishes a Guestbook Join; the Invite List merge is first-wins and carries untyped tombstones (I18). Review: quartz/plans/2026-09-29-concord-spec-conformance.md Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PmuzkD5qdqgv6dMeRMoC5N