mirror of
https://github.com/block/buzz.git
synced 2026-11-14 05:12:27 +00:00
Desktop and mobile derive the same starter channel id, so an archived starter left at that id makes the relay answer "duplicate: channel already exists". The directory omits archived channels, so the reload found no holder and the invite stayed stuck in setup. When a create is refused as a duplicate and the reload has no match, read the channel at that id directly (kind:39000 via fetchOpenChannel) and skip the starter if it is archived. Every other case still rethrows so setup stays recoverable. Also make the scope-fence test able to fail: it now flips the scope on the reload after the last starter's refusal, so deleting the post-reload fence fails it. relayErrorMessage also strips the relay's error:, rate-limited: and auth-required: prefixes. Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Logan Johnson <loganj@squareup.com>