I know that if an user has been recently in chat, you can ping him (autocompletion will appear when you start to type @user).
Does this hold if autocompletion doesn't appear?
Meta Stack Exchange is a question and answer site for meta-discussion of the Stack Exchange family of Q&A websites. It only takes a minute to sign up.Sign up to join this community
No, it doesn't. Since September 2014, autocompletion shows exactly the users who can be pinged.
What follows describes the situation at the time the question was posted.
You can sometimes ping a user even if their name isn't autocompleted, and conversely sometimes the name of unpingable users is completed. This is because your browser decides whether to autocomplete, whereas the server decides whether the
@user mention generates a ping, and they base their decision on different information.
The autocomplete names that you get offered are all names that the client [i.e. your browser] thinks you know about, which is every name it saw since you opened the chat page in the [browser] ("saw" being defined as either being in the room, or at least having a message visible).
(source: balpha, who wrote the code)
The server allows a ping to go through if the pinged user has been in the room during the last 2 days.
So if you've been in the room in the current browser session for more than two days, you may see names in completion that won't generate a ping because the user has been away for too long. Conversely, if you've been in the room in the current browser session for less than two days, the autocompleter will miss pingable users who were in the room but who left and whose last messages scrolled off before you joined.