AO3 News

Post Header

2020-03-18 23:16:03 UTC

Our latest releases include improvements for new users, site admins, creators of anonymous or unrevealed works, and the kudos database table.

A special thank you to our first-time contributor Morrgani!


  • Coders: cosette, james_, Morrgani, redsummernight, Sarken, Tal Hayon, ticking instant
  • Code reviewers: Ariana, james_, redsummernight, Sarken, ticking instant
  • Testers: Arcadion, C. Ryan Smith, Capi, Danielle Strong, GoldenFalls, hel, james_, lydia-theda, MagnusIsMyRock, Matty, Paula, redsummernight, Sammie Louise, Sarken


User Accounts

  • [AO3-5723] - We've tweaked the text of the email you receive when you create a new account. It will now be more consistent with our usual way of wording things.
  • [AO3-5316] - When you first activate a new AO3 account, you're supposed to get a success message. That message wasn't working, which led users to follow the activation a second time, which also didn't display a message it was supposed to display. Both of those messages should turn up now, hopefully leading to less confusion and fewer Support tickets.


  • [AO3-5676] - The script that we use to handle GDPR data requests from users used to write to a file, which was slightly annoying to get to. We've made it write to standard output, a.k.a. the screen that the admin running the script is looking at.
  • [AO3-5863] - We also updated the GDPR data requests script to handle some changes we made when we moved the logging in process to Devise.
  • [AO3-3547] - Our Policy & Abuse team has always been able to add notes to user accounts when giving warnings or suspensions, but sometimes they wanted to make a note without doing either of those things. We've given them that ability.
  • [AO3-4205] - To help with spam and abuse, we let admins see the IP address of the user who posted a work. However, we forgot to record that information on works imported using the "Post without previewing" option, so there was nothing for admins to see. We've now corrected that oversight.


  • [AO3-5851] - In a previous release, we added a column to the kudos table to store the user (rather than the pseud) that left kudos. Now we've gone back and filled in this information for existing kudos.
  • [AO3-5869] - We have around 640 million kudos on the Archive, so the database table we keep them in was getting rather full. We moved them to a larger table that will be able to hold 9,223,372,036,854,775,807 kudos (yes, really!). The new table also has a uniqueness constraint that was missing from the old one, so now any duplicate kudos that sneak past our code will also be rejected by the database.
  • [AO3-5868] - When a logged in user leaves kudos on a work, we used to check to make sure the user's default pseud hadn't previously left kudos on the work. Now we check that the user hasn't left kudos on that work before.
  • [AO3-5873] - When we moved all the kudos to their new table, some works experienced a change in their kudos counts due to duplicate kudos being removed. We've made sure the kudos counts for those works are updated in our search engine.


  • [AO3-5874] - A few months ago, the hardware for our staging environment went belly up, so we began temporarily using a cloud service. While we were using this temporary setup, our heroic sysadmin james_ went and got the broken hardware from its facility, repaired it, drove it back to the facility, and plugged it back in. Shortly afterwards, we updated our configuration to put the newly repaired hardware back into service.
  • [AO3-5875] - In January, we started using a gem to password protect our staging site. We've switched to a different form of password protection and removed that gem.
  • [AO3-5872] - We've reorganized our automated tests to match the structure RSpec automatically assumes we're using. This will help make sure all of our tests are actually being run.


  • [AO3-5857] - We restored the default Dutch translations that got lost when we updated our translation tool.
  • [AO3-4139] - In Reversi, we've changed the color of the little footnotes on required fields to make them more readable. Goodbye, dark grey text on a slightly less dark grey background!
  • [AO3-4836] - In the unlikely scenario you were trying to approve all the moderated comments on a work you didn't own, you'd get a 500 error. Now you'll get redirected to the homepage with an error message.
  • [AO3-5028] - If you add your work to a collection and the moderators later make the work anonymous or unrevealed, you'll now receive an email letting you know about that change and reminding you how to remove your work from the collection if you're not okay with the change. (Please note that you'll get this email even if you have your preferences set to disallow emails from collections.)
  • [AO3-5879] - We -- or more accurately, the friendly bot who lets us know about security issues with gems -- upgraded the version of the nokogiri gem we're using.
  • [AO3-5807] - There was a column in the support ticket database table that we weren't using and thus wanted to get rid of. This worked out quite well because it let us test a method of modifying database tables that we wanted to use for our work on the kudos table.
  • [AO3-5888] - We got the new Elasticsearch servers we've been waiting for! 🎉 This allowed us to repurpose some old servers, which required us to update our deploy script.