mgmt: invite-flow polish — explain rejected non-direct invites via DM; stretch the greeting window for slow federated joins #101
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#101
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?
Two friction points from the first real-user night (2026-07-12), both survivors of the #97 fix:
Silent decline of non-direct invites. A user who invites the bot to a REGULAR room ("New room" instead of "Start chat" —
@qwertyad:qwertyad.onedid exactly this) is correctly rejected (not_direct, the #71 DMs-only contract) but sees only a wordless decline — it reads as rude/broken. Now that #97 makes bot-initiated DMs survive the reaper, the reject path cancreate_dm(inviter)and explain: "I only work in direct messages — start a chat with me and sendhelp." Rate-limit it (once per inviter per hour; reuse a stamp map) so a spammer can't farm outbound DMs. Also sharpen the wiki wording: Start chat, not create room.Greeting gives up too early on slow federated joins.
greet_when_joinedretries 1/3/10 s for the local room state to reach Joined; a slow federated join + sync lag exceeds that (room never reached joined state — skipping greeting, seen live at 04:19), leaving the new user in a silent room they assume is dead. Stretch to a capped backoff (~60 s total) — the greeting is the only signal the bot is alive.Both are small, both in
crates/matrix-rtc/src/mgmt.rs, both good candidates to ride the next mgmt release after alpha.25.tutorialcommand — guided, illustrated walkthrough over DM; unknown input should offer it #102