fix(mgmt): tier-aware link join-failure reply (#111) #115

Merged
robocub merged 1 commit from fix/111-self-serve-link-reply into master 2026-07-13 02:58:02 +00:00
Collaborator

Fixes the self-serve link join-failure reply (#111): it told the requester to "invite the bot to it first, then run link again" — unsatisfiable for a self-serve user, whose non-direct invite to the bot is auto-rejected by the DMs-only gate.

  • Threads the requester's tier into probe_room_prereqs; message selection is extracted to a unit-tested join_failure_reply helper.
  • Operators keep the invite-me remedy (their invites are accepted anywhere).
  • Self-serve users get a reachable remedy: make the room publicly joinable, or ask the instance operator to link it.

Reword only — the pending-link invite-gate exemption (needs #83/#87 reap semantics) is deliberately left for later, so #111 stays open for it.

Verified on staging: 2 new unit tests + clippy -D warnings + build, and live fed_link_v12 + mgmt_self_serve_link both pass (they assert success-path strings; this only touches the join-failure path).

🤖 Generated with Claude Code

Fixes the self-serve `link` join-failure reply (#111): it told the requester to "invite the bot to it first, then run `link` again" — unsatisfiable for a self-serve user, whose non-direct invite to the bot is auto-rejected by the DMs-only gate. - Threads the requester's tier into `probe_room_prereqs`; message selection is extracted to a unit-tested `join_failure_reply` helper. - **Operators** keep the invite-me remedy (their invites are accepted anywhere). - **Self-serve users** get a reachable remedy: make the room publicly joinable, or ask the instance operator to link it. Reword only — the pending-link invite-gate exemption (needs #83/#87 reap semantics) is deliberately left for later, so **#111 stays open** for it. Verified on staging: 2 new unit tests + `clippy -D warnings` + build, and live `fed_link_v12` + `mgmt_self_serve_link` both pass (they assert success-path strings; this only touches the join-failure path). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix(mgmt): tier-aware link join-failure reply (#111)
All checks were successful
CI / test (push) Successful in 8m36s
CI / test (pull_request) Successful in 8m47s
a78f8b9e27
The self-serve `link` join-failure reply told the requester to "invite the
bot to it first, then run `link` again" — unsatisfiable for a self-serve
user, whose non-direct invite to the bot is auto-rejected by the DMs-only
gate.

Thread the requester's tier into probe_room_prereqs: operators keep the
invite-me remedy (their invites are accepted anywhere); self-serve users
get a reachable remedy — make the room publicly joinable, or ask the
instance operator to link it. Message selection is extracted to a
unit-tested `join_failure_reply` helper.

Reword only: the pending-link invite-gate exemption (needs #83/#87 reap
semantics) is deliberately left for later, so #111 stays open for it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
robocub merged commit dacc1c993a into master 2026-07-13 02:58:02 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
dark/nether-voicebridge!115
No description provided.