mgmt: #85 anti-spoof greet-leave appears to break the manual operator invite-then-relink flow for >2-member rooms #120
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
dark/nether-voicebridge#120
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found while building #111 (see PR #119):
greet_when_joined's #85 anti-spoof check leaves ANY joined room that isn't a ≤2-member DM. It runs after every accepted invite — including an operator's invite of the bot into a to-be-bridged room. For a room with >2 joined members, the sequence appears to be: operator invites bot → bot joins → greeting task sees a group room → bot leaves within ~14 s → the operator's follow-uplinkprobe can't join (invite consumed, invite-only room) → the documented manual invite-then-relink flow is broken.Not user-reported yet (rooms bridged so far were either publicly joinable, ≤2-member at invite time, or went through the probe/#111-intent paths, which skip the greeting task). Needs a live reproduction to confirm, then a fix — likely: skip the #85 leave for operator-accepted invites (the anti-spoof exists to stop self-serve users pulling the bot into group rooms via a forged
is_direct; an operator may put the bot anywhere by definition). With #111's auto-resume shipped, the manual flow matters less, but it should still not be silently broken.Reproduced live — the theory is confirmed.
New scenario
mgmt_operator_room_invite(suite → 28): harness operator creates an invite-only room, two extra members join (3 joined humans), operator invites the bot. Result:The bridge log shows the exact sequence:
accepting invite from allowlisted operator→ join →invited room is not a DM (spoofed is_direct?) — leaving (#85). The bot is gone within seconds, and since the invite is consumed, a follow-uplinkprobe cannot rejoin an invite-only room — the documented manual invite-then-relink flow is broken for any >2-member room.Fix (in progress): the #85 leave exists to stop self-serve users pulling the bot into group rooms via a forged
is_direct; an operator may place the bot anywhere by definition. Thread the inviter's tier intogreet_when_joined: operator-accepted invites skip the leave (and the greeting — it's a group room), everything else unchanged. The scenario flips toPasswith the fix and stays as the regression guard.Fix merged (PR #121) and shipped in v0.3.0;
mgmt_operator_room_inviteguards it (suite → 28). Closing.