AO3 News

Post Header

2019-08-16 16:31:29 -0400

Our latest releases bring improvements for tag wranglers and site admins, along with a handful of user-facing bug fixes.


  • Coders: Ariana, cosette, Elz, Enigel, james_, redsummernight, Sarken, Tal Hayon, ticking instant
  • Code reviewers: Ariana, james_, Naomi, redsummernight, Sarken, ticking instant
  • Testers: Alison Watson, antonomasia09, bingeling, cosette, doughtier, Dre, Hvalrann, james_, Lady Oscar, Matty, Paula, redsummernight, Sammie Louise, Sarken, Scott, ticking instant, and the entire Support and Policy & Abuse Committees!


Site Administration

  • [AO3-5126] - When an admin searched for a user, the results would be accurate, but the tally would be too high. Turns out the code was counting the total number of pseuds for every user whose email address matched the search query! We made it count the users now.
  • [AO3-5097] - Speaking of admins searching for users, some of the code for it was very long and messy and in places it had no business being -- in short, an abomination. (Direct quote from the issue description.) It is now much cleaner, properly located, and less abominable!
  • [AO3-5099] - We've made it easier for admins to search for users by letting them specify whether to search by username or email address and by giving them an option to only get results that are exact matches.
  • [AO3-4159] - Our Policy & Abuse team used to need to ask our database admins to check when and from what IP address a user had last logged in. This was terribly inefficient for everyone, so we've put that information in the admin interface now.
  • [AO3-5549] - We send spam reports to our Policy & Abuse team, but sometimes these emails failed due to a spam user deleting their account. Now the emails should go out even if that happens.

Tag Wrangling

  • [AO3-2452] - It used to be possible for wranglers to add the wrong sort of parents to a tag, e.g. making the fandom Big Hero 6 a parent of the media tag Movies. Worse still, when this happened, the incorrect parent couldn't be removed. We made a bunch of changes to the tag code to prevent this and cleaned up all of the existing incorrect parents.
  • [AO3-5697] - Our code checks to make sure no tags acquire duplicate meta tags, but code isn't a foolproof way to ensure something is unique, so now we've added a check at the database level as well.
  • [AO3-4682] - We were missing a success message that would let wranglers know they had successfully unassigned a wrangler from a fandom. We've added one!


  • [AO3-3953] - When browsing works in a collection, following one of the tags in the work blurb would take you to other works in the collection that had that tag. This was all well and good in theory, but sometimes those collection-scoped links would escape, and you'd be browsing works outside a collection only to end up trapped in a random collection. We've changed it so tag links will always take you to the full work listing for that tag, even if you're in a collection.
  • [AO3-4592] - Back in 2016, it was possible for collection maintainers to invite works to anonymous or unrevealed collections, and those works would immediately be marked anonymous and/or unrevealed without their creators' knowledge. We fixed the bug when it was discovered, but the fix didn't apply retroactively, so we wrote a little clean-up task to fix all the works that were still affected by this bug. Turns out there weren't any!
  • [AO3-5720] - Under certain circumstances, it was possible for a collection maintainer to add someone's work to their collection without that someone's approval. We've made that un-possible now.

Miscellaneous Fixes

  • [AO3-5699] - When Open Doors uses the mass importing tool, it's supposed to send an email to everyone whose work was imported. That was broken for a bit, but now it's working again!
  • [AO3-5694] - The orphan_account's dashboard had mysteriously stopped loading. We made an educated guess that the code for tallying the fandoms on dashboard pages was to blame, and we were right! The page loads now, but it will be sans fandom list until we can speed up the code. (Other accounts, and even any pseuds for orphan_account, will still have fandoms listed on their dashboard.)
  • [AO3-5039] - If you were up to some sneaky HTML manipulation, it was possible to add a tag that wasn't canonical as a Favorite Tag. We've put the kibosh to that now.
  • [AO3-5691] - When a user tried to change a work's publication date to the future, the error message would say "translation missing," followed by a bunch of nonsense. Now it correctly says something more like, "Hey, you can't do that with the publication date."

Infrastructure and Security

  • [AO3-5695] - We updated the gem for our error monitoring service.
  • [AO3-5678], [AO3-5682], and [AO3-5689] - We use a nifty tool called Brakeman to warn us about potential vulnerabilities in our code. Sometimes, though, it misses some context and worries about things that aren't actually problems. We did some refactoring to make it realize three such issues were all in its head.
  • [AO3-5480] - The company our Support and Policy & Abuse teams use made some changes to their code, which required us to make some changes to our code if we wanted the Support and Abuse Report forms to keep working. We decided that was kinda important, so we made the changes.