I’m very sorry. I just checked and you’re right. Here’s what it looks like I failed to catch:
If a user has already received a notification for the topic/post at some point, they will not be notified again after the topic is moved. The topics I tested with must have met that criteria and so all seemed well. With that said, I feel strongly that the expected behavior should be when a topic is unlisted it should not notify a user if it is moved to a new category in any scenario. It doesn’t seem right for my non-staff test account that was watching the destination category to get a notification for a topic that doesn’t even appear in the topic list. It brings attention and a direct link to something that is supposed to be hidden.
Anyway, it looks like the only way to avoid both notifications/emails is by changing the category from the command line. You would need to gather a list of topic ids and use the command I mentioned above:
topic_ids = [<topic_id_1>, <topic_id_2>, ...]
Topic.where(id: topic_ids).update_all(category_id: <to_category_id>)
I’m not sure what your intended workflow is, but if you were going into each topic to see the content and judge it’s destination category, you can get the topic ID at the end of the URL (just make sure to exclude any reply number) and compile a comma separated list in a notepad then run the above command.
There’s also the data explorer plugin where you could get a list of topic IDs based on a keyword in the title. That could cut down some of the work potentially.
In any case, I sincerely apologize that I failed to pick up on how the unlisted topic moves currently work. I hope it didn’t cause too much inconvenience for you.