So, how is that @ thing supposed to work anyway?

Thanks @codinghorror!

This is off topic, and risks diluting the thread. Please start a new thread if you want to discuss other issues.

Please report off-topic posts, however, as this site doesn’t allow “junior modding”. Best to report it as “other” and explain the problem, as the canned choices can be hard for the mods to work with. If we ever get an active admin, we plan to disable or rename the other options.

It was indeed a bug due to the migration. I’ve manually fixed the database and the mentions should be much better :+1:

Yes, this was an artifact of the migration, and yes, it was incredibly annoying, so thanks for bringing it to our attention, and our apologies for the super erratic way it was behaving!

If you’d like technical details, here they are:

When you start adding letters after the initial @ , we are prioritizing exact matches (using username_lower ) and then we’re filtering the users using the user_search_data table.

On SD however, only ~10k of the 210k users have a user_search_data record. That is definitely a migration artefact but that’s something Discourse should be fixing automagically.

The user Elmer_J.Fudd did not have a user_search_data record so that’s why it wasn’t showing up when you were typing their username!

We made it so that the user_search_data discrepancy is automagically fixed by the background task, so this particular problem is (in theory) fixed forever.

Feel free to reply with or comment on any peculiar @ mention behavior, but before you do, let me explain the philosophy of the @ name mention feature:

  • prioritize people in the current topic
  • who were seen recently (note that I didn’t say posted!)
  • if the list is still less than 20 people, widen scope to the current category
  • if there is an exact match for a name, e.g. “david” give that match extra priority in the list, but only if that person was seen less than a year ago

And all of the above tries to match on both username and full name; the more you type, the more we have to match with.

Depending on how active / large the topic is, you might branch out to people seen recently who posted any reply to any topic in the current category.

I know, the level of detail is mind numbing, but hey, welcome to the wild and wooly world of software programming, where even a single incorrect character brings everything crashing down!

As a former IT guy with the gray hair and decrepit liver to go along with that, thank you. It was obviously badly broken and dirty data smelled like the cause.

Your explanation of the correctly functioning logic was especially helpful. It’s at odds with what some of us had intuited, but it’s not insane either. It should produce sensible (= more or less as expected, reliable-seeming) results almost all of the time.

Bravo good Sir! And a heartfelt Thank you!

Yeah ordering by post count is “logical”, but would implicitly encourage a lot of back-and-forth between the same people racking up massive post counts, which (in my experience at least) does not lead to the best conversations overall… hence ordering by last seen instead.

There are a lot of implicit nudges in Discourse, it is fairly opinionated about its goals, but I* believe those goals (diverse, sustainable, community-moderated civil conversations) are noble ones.

* but I am obviously extreeeeeeeemely biased

Yay! I just played around with it, and got some very reasonable and helpful results.

Thanks!

Hooray! It now finds Elmer_J.Fudd, puzzlegal, Northern_Piper and all the other users who were mysteriously missing before.

Thank you for fixing it.

Thanks again @codinghorror and @zogstrip for fixing this. :+1:

You’re welcome but it was all @zogstrip … the good news is we made a “forever” fix so this mistake won’t happen again in future migrations.

And I think I know now why my name was one of the few that did autocomplete. I had edited the Name field and that probably caused the database to update.

Just deployed a fixed that will prioritize exact username match iif the user has been seen in the past year. So typing @su, in this topic, won’t show @su who hasn’t been seen in over a decade…

Yes, that’s probably right :+1:

I’m glad we got to that change! It’s an excellent one for all instances. The odds of someone needing to mention a particular user who hasn’t been seen in over a year are… uh, low.

(Also more of a problem with short usernames; the minimum username length in Discourse as I recall is 3 so having a user named su (apologies to Johnny Cash) wouldn’t usually be possible to gunk up the name mention algorithm.)

It’s working 200% better. I can now find users without having to know exactly how to spell their usernames, which kind of defeated the point.

There are a few less serious bugs we’ve noticed, should we report them here in #site-feedback, or is there somewhere off site for general Discourse bugs that would be better?

https://meta.discourse.org would be much better for bugs that would benefit all Discourse :+1:

It’s better to report them here first, so that others can share their site-specific experiences.