-
Notifications
You must be signed in to change notification settings - Fork 15
Description
Pairing Bot de-registers users at the end of their batch, along with a message saying they're welcome to re-register. If they do, they're in until their next batch.
If an alum re-registers, and then drops off the face of the earth, they'll still get matches indefinitely. This is a poor experience for current Recursers / active pairing-bot users.
It would be Nice to have some "eviction policy" for Pairing Bot: if a registered PB user misses enough pairings, they get one or more messages from PB poking them, and eventually get booted.
Detecting and defining inactivity
We don't currently have a definition for "inactive", or any state reflecting PB use beyond "configured schedule".
When Pairing bot makes a pairing thread, it's also a party to that thread. If either party responds to that thread, PB will also get a message. (Currently, PB ignores it.)
This suggests a definition for inactivity: if Pairing Bot receives a message from a user, in a private thread or a thread with two other users (i.e. humans), that counts as "an interaction with PB".
PB can keep, for each user, a count of the number of times it has paired that user since the last time the user interacted. That is, an interaction resets the count to 0.
We can then add a cron that checks this count for each user. If it's greater than some threshold (what?), we can send a message to that user that says "we've de-registered you for inactivity, but you're welcome to re-register".
Note this doesn't require a user to actually do the pairings: a response of "sorry, I can't pair today" still counts. I think this is fine, even desirable; we still trust Recursers who are active on Zulip to remove themselves or alter their schedule if they consistently can't make pairings. We're only trying to take care of the case where someone isn't checking / acting on Zulip.