Files
amethyst/docs
Claude c13db181b8 feat(concord): tell a stranded member they were left behind
A CORD-06 Refounding carries no recipient list, so a member left out of the
rekey set sits on a dead root while everyone else moves on. Every plane
address they still derive is dead, and a dead address returns nothing rather
than erroring — so the community rendered as an ordinary quiet one, with no
affordance anywhere that could hint otherwise. Recovery ran on a 15-minute
timer and logged.

Two things were missing, not one.

Detection. The rekey drain treated "no blob for me" as nothing to do. But the
rotation's wraps sit at an address every current member derives, so an
excluded member can watch the rotation happen and find no blob addressed to
them — that is a direct signal, not an inference from silence. It is now
recorded, gated on ConcordRefounding.isCompleteRotation: the recipient blobs
are chunked, so on a partial fetch the absence of ours proves nothing, and
exclusion may only be concluded once chunk indices 0..total-1 are all in hand.

Reporting. ConcordCommunityHealth per community, rendered by
ConcordCommunityBanner above the feed on both the channel list and an open
channel — because these states explain what you are seeing, and the composer
slot at the bottom is the wrong place to explain an empty feed. Dissolution
moves here too; the composer notice could only ever show it to someone
already inside a channel.

The health value is a single value rather than a set of flags, so two banners
cannot stack — that is the difference between a status surface and chrome.

The recovery sweep's collapsed `continue`s now distinguish revoked / expired /
unreadable / no-anchor, so the copy can ask for a new invite when that is
genuinely the fix. A dead link is only reported once it is actually what
stands between us and getting back in; on a community we are current with it
costs nothing and would be alarming noise. While a way back exists the banner
shows progress, since recovery is automatic.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q3KXHjmCpUDzrSRyxatbyB
2026-07-30 03:51:43 +00:00
..
2026-03-26 14:35:18 -04:00
2026-01-06 06:49:59 +02:00