AO3 News

Post Header

2022-08-18 08:55:30 UTC

Over the last few months, we introduced a couple of new features, like a revamped tag search and the ability to block users (which currently prevents them from leaving comments on your works or replying to your comments). We also provided the Policy & Abuse team with some new tools in their work against harassment and abuse, fixed a whole host of bugs, and continued to optimize our code and infrastructure.

A special thank you to everyone who contributed a bug fix or improvement for the first time: Tara Rosenthal, dark-veracity, Ceithir, EchoEkhi, irrationalpie, giuxtaposition, Potpotkettle, printfn, and speckled_dragon! And thank you to Affan Rashid for alerting us to a security issue, which is now fixed.


  • Coders: agenderdanvers, Brian Austin, C.M. Carreiro, Ceithir, dark-veracity, EchoEkhi, Enigel, giuxtaposition, irrationalpie, korrien, Potpotkettle, printfn, redsummernight, Sarken, speckled_dragon, Stephen Lewis, Tara Rosenthal, ticking instant, weeklies
  • Code reviewers: Enigel, james_, redsummernight, Sarken, ticking instant
  • Testers: AmberW, CJ Record, Frost the Fox, GoldenFalls, james_, lydia-theda, Maine, mumble, Nary, Nat, Priscilla, Qem, redsummernight, Rebecca Sentance, Runt, Sarken, Teyke



Deployed on April 23. Included a tag search overhaul, changes to the abuse report form, and invisible code improvements.

  • [AO3-5830] - We greatly improved our Tag Search by letting you limit your searches to tags within in a specific fandom, allowing searches for non-canonical tags, and sorting your results.
  • [AO3-6309] - We updated the message you receive if you try to report a work on the Archive more than the allowed number of times. (Our Policy & Abuse team only need one report. Any more reports of the same issue needlessly slow them down.)
  • [AO3-6274] - Additionally, there is now a limit to the number of abuse reports one person (i.e., email address) can submit per day. (Please only report issues you encounter as part of your Archive experience, and don't specifically seek out problems for mass-reporting.)
  • [AO3-6306] - It was previously impossible to bookmark an external work if the URL in question gave a server response of 307 or 308 (i.e., a redirect). Now you can create that bookmark just fine!
  • [AO3-6305] - The entries in the "Hi, NAME!" dropdown menu, such as My Dashboard or My Works, weren't links if you were currently on that page. Now everything stays a link at all times, as is proper.
  • [AO3-5955], [AO3-5956], [AO3-6294] - We now automatically retry sending emails that fail with certain error messages. This helps keep expected errors off the Resque error page, allowing us to focus on errors we don't expect that may indicate new bugs. (An expected error would happen when, e.g., a subscriber to a work deletes their AO3 account after the work is updated but before the subscription email is sent.)
  • [AO3-6253] - We've started localizing dates in our email footers in preparation for translated emails.
  • [AO3-6330] - We updated the nokogiri gem to 1.13.4.
  • [AO3-6185] - Cleaned up some unused comment code that was still hanging around!


Deployed on May 17. Improved the search engine and gave the Policy & Abuse team some new tools.

  • [AO3-6333] - We made the code for listing comments on a work more efficient.
  • [AO3-6291] - Previously, it was possible for a work to show up on more than one page of search results, due to the way things were sorted (or not sorted) in our search index. Now we tell our search engine how to break a tie if multiple works fulfill the same search criteria, for more consistency.
  • [AO3-6315] - When bulk updating the data in our bookmark search index, only works with bookmarks were queued for reindexing. Then we found that simply queuing all works is much faster, so we're doing that now.
  • [AO3-5763] - The email notification informing you of a gift work only contained the title, creator, word count, fandom, and summary of said work. We now include all the metadata, so you're aware of any warnings or additional tags before accessing the work.
  • [AO3-5348] - Gift notifications are now translateable.
  • [AO3-6256] - To prepare for translated emails, we made sure that the word for "guests" in our kudos notifications would be displayed correctly in languages that capitalize the word.
  • [AO3-6254] - We also found that, when determining the correct verb form for the kudos notification, we were counting the number of people who have left kudos incorrectly. This doesn't matter much in English, but might affect the verb form in other languages. That's fixed now! (Note: The counts in the emails were never wrong -- this is only a grammar issue.)
  • [AO3-4313] - To fix an issue with draft chapters, we now make sure that only posted chapters are considered when showing a work in chapter-by-chapter mode.
  • [AO3-6342] - We limited which admins can set a banner, such as a downtime announcement or membership drive information.
  • [AO3-6156] - Members of the Policy & Abuse team are now able to edit user profiles.
  • [AO3-6148] - We've further restricted which admins can access the IP address associated with works and comments, and also made the email address associated with guest comments available to certain admins.
  • [AO3-6334] - To help with spam, we'd put a limit on the number of times a password reset could be requested for a given account (e.g., two requests per hour), but in some cases the restriction was preventing users from actually changing their password after making the request. We've now made sure the server can apply the limit to requesting the reset without affecting actually resetting the password.
  • [AO3-6146] - We've limited how frequently a user can change their username.
  • [AO3-6323] - We have added a class containing a user's ID to their comments, so you can create (for example) a skin that hides all comments by a specific user. (You can find detailed instructions in our post announcing comment blocking.)
  • [AO3-6214] - You previously had to select "Choose Skin" in the footer to access a list of official site skins. We now display all of the supported skins by default.
  • [AO3-6030] - Fixed a couple of bad page titles!
  • [AO3-6340] - We updated the sinatra gem from 2.1.0 to 2.2.0.


Deployed on May 30. A few things we needed to do before comment blocking.

  • [AO3-6351] - Comments from the Dawn of Time (i.e., 2009) didn't have the right data to tell them how to thread themselves. We wrote and ran a script to fix that.
  • [AO3-6325] - We added a class containing a user's ID to bookmarks (both bookmarks they created and bookmarks of their works), so you can hide those with a site skin, too.
  • [AO3-5986] - Several of our teams own AO3 accounts that they use to communicate with users on news posts. Previously, those comments were indistinguishable from those left by any other account. They now come with an "(Official)" note to show that they are indeed that.
  • [AO3-6350] - We updated Rack to
  • [AO3-6347] - Also bumped the nokogiri gem to 1.13.6.


Deployed on June 10. The first set of blocking features! 🥳

  • [AO3-6327] - You can now block other users from commenting on your works or replying to your comments elsewhere on the site.
  • [AO3-4659], [AO3-5239] - The user autocomplete on Collection Participants and Blocked User pages looked very wonky. We updated the styling for autocomplete boxes and now they're all shiny and functional on mobile.
  • [AO3-6354] - In some of our automated tests, we were using a setting that takes page elements into account even if those are hidden to the user. For more consistency, we changed this setting to ignore invisible content, which better matches the user experience.


Deployed on July 9. Fixed some issues with downloads!

  • [AO3-6200] - When logged into the orphan_account (something certain volunteers can do), it was impossible to access any work pages. It turns out this was because orphan_account has a whole lot of pseuds, which meant checking to see if orphan_account had the work bookmarked was very slow. We made that code a lot faster, which now makes the work load.
  • [AO3-6216] - In downloads, the "Inspired by:" links leading to a related work were broken if the work wasn't hosted on the Archive. Now the links point to the external work in question.
  • [AO3-5775] - We now include language information at the top of downloaded works, just like on the site itself.
  • [AO3-5709] - The author information in the metadata of a downloaded work only contained the pseud, not the username it belonged to. Now it uses the proper "Pseud (Username)" format.
  • [AO3-6346] - Appending .htm to the URLs for Archive pages (like a work or a collection) would sometimes lead to an ugly white error page (and sometimes just display the intended page). We now make sure you get a nice-looking Error 404 at least.
  • [AO3-6345] - Trying to access the admin page for a nonexistent user would cause an internal server error (500). Now the site admin gets a more helpful error 404.
  • [AO3-6159] - On the confirmation page for deleting a pseud, we previously provided incorrect information about what would happen to comments. It now correctly states that any works, series, or comments you have created under the about-to-be-deleted pseud will be transferred to your default pseud.
  • [AO3-3846] - When reordering a work's chapters, it wasn't possible to move draft chapters, because draft chapters weren't listed on that page. Now they are.
  • [AO3-2675] - When creating a site skin and choosing to add a parent skin without actually entering a parent skin, a snippet of unwanted CSS would be added to the skin. Now if you open the parent skin field, but leave it empty, we'll just quietly pretend nothing happened.
  • [AO3-5780] - We added thousands separators to all numbers on series pages (such as the number of bookmarks of that series).
  • [AO3-6339] - Updated Rails to 6.0.5.
  • [AO3-6357] - Bumped mechanize from 2.8.4 to 2.8.5.
  • [AO3-6355] - Bumped jmespath from 1.5.0 to 1.6.1.
  • [AO3-6338] - Cleaned up some unused code.
  • [AO3-6358] - We updated our Docker file to make it easier to rerun if it fails the first time.
  • [AO3-6352] - We added Content-Security-Policy: frame-ancestors 'self' to our default response headers to complement our existing X-Frame-Options header.


Post Header

2022-04-27 17:07:08 UTC

From mid-February through mid-April, we did a whole bunch of necessary but largely unnoticeable work like updating Rails, reducing the number of unhelpful errors in Resque, and tweaking our automated tests and GitHub workflow. We also included a few bug fixes and one (1) performance improvement, because what's an update without those?


  • Coders: bird, Elz, redsummernight, Sarken, ticking instant, weeklies
  • Code reviewers: Enigel, james_, redsummernight, Sarken, ticking instant
  • Testers: james_, Jennifer Davis, lydia-theda, Maine, Nary, Paula, Priscilla, redsummernight, Qem, Ridicully, Runt, Sammie Louise, Sarken, Taylor Clossin, Teyke



Assorted bug fixes and improvements, February 18.

  • [AO3-5392] - When you posted a backdated work between the hours of midnight and 04:00 UTC, the work would use the actual posting date in the upper right of its blurb (as seen on your works pages, tag listings, etc.) instead of the backdated date. We already fixed this issue for newly-created works (AO3-6190). This time, we made changes so that creators of affected existing works can fix the issue themselves by setting a new backdated date.
  • [AO3-6230] - Admins who can search users can now do so by user ID.
  • [AO3-6271] - We fixed the alignment of the blurb icons and work titles in the "Is it later?" section of the homepage.
  • [AO3-4530] - In the main menu, links would become unclickable when you were already on the page in question. That's usually fine, but we changed it to have links always stay links anyway, to prevent problematic caching behavior.
  • [AO3-3852] - When you filtered a works or bookmarks page, it sometimes caused the Works or Bookmarks link in the main navigation's Browse menu to turn into plain text. We've fixed it so it will always be a link.
  • [AO3-5717] - It was previously possible to make the expected chapter count lower than actual chapter count. We now always check how many posted chapters there actually are when displaying how done an ongoing work is.
  • [AO3-6292] - We renamed the new gift preference to "Allow anyone to gift me works" and updated the related text that appears on challenge sign-up forms.
  • [AO3-6116] - For better performance, we now cache fandom, work, and bookmarked item counts for collections.
  • [AO3-5063] - The works count in a collection sidebar was wrong if a work belonged to two subcollections or to the parent collection and a subcollection. It will now only count the work once, not once for each collection it appears in.
  • [AO3-6293] - When a tag is changed, we start a background process to update the caches for works using that tag. However, this background process sometimes happens so quickly that it cannot find newly created tags in the database yet. It would cause errors cluttering up our logs and wasn't necessary anyway, because new tags have no existing works! So we skipped the background process in that case.
  • [AO3-6295] - While it is possible to reply to a comment left by a deleted account, the system shouldn't then try to send a notification to the nonexistent user, because that will only end in tears/errors. We no longer try to send emails in this case.
  • [AO3-6296] - We had intermittent errors when loading external works in our automated tests, so we switched to faking the responses from the external URLs to make our tests more robust.
  • [AO3-6287] - The code scanning service we used shut down, so we switched to GitHub Actions for running Brakeman.
  • [AO3-4488] - Many of our automated tests use VCR for caching remote websites so we don't need to fetch them afresh every time. However, a few of these were out of date and causing issues, so a refresh was in order.
  • [AO3-6299] - Our error-monitoring service was running in our automated test environment, slowing things down. We've stopped running it and sped things up.
  • [AO3-6228] - Once upon a time, automatically reconnecting to the database and retrying a command after a timeout seemed like a good idea. Unfortunately, it turned out to be a good way to end up with half-completed tasks, so we've stopped doing that.


Rails timezone change to UTC, February 24.

  • [AO3-6300] - We changed the timezone Rails uses from U.S. Eastern to UTC, to match the timezone used by our servers' operating system.


Update to Rails 6, April 3.

  • [AO3-6085], [AO3-6002] - We updated Rails from 5.2 to 6.0.
  • [AO3-6275] - We fixed the plural rules for Serbian.
  • [AO3-5819] - When we review pull requests on GitHub, we use labels to keep track of our progress (is it the coder's or the reviewer's turn to respond?) and whether the changes need special attention (is there a database migration or a one-off task we need to run if we merge this pull request?). We now use GitHub Actions to automatically add or remove some labels.
  • [AO3-5968] - When we created chapters in our automated tests, they were created as drafts unless we specified they should be posted, which was silly because we usually want to test posted chapters, not drafts. We've switched it so our test chapters are posted by default.


Bug fixes for pseud icons, April 12.

  • [AO3-6322] - We deleted some unused JavaScript files from our code repository. 🗑
  • [AO3-6316] - Users with invalid pseud icons (file type not allowed, alt text or comment too long) couldn't request a password reset or be suspended by an admin. This only affected a small group of users, which have received an email about the issue, so they could solve the problem on their end. From our end, the solution was to remove the invalid icon or text after the deadline given in the email.
  • [AO3-3293] - If you deleted the icon for one of your pseuds, or changed it to a different format, your existing comments would show a broken image. We've made it so your new icon (or the placeholder) will show.


Post Header

2022-03-20 22:32:39 UTC

The last few releases focused on maintenance and our road to internationalization. We additionally made it possible to opt in or out of gifts.

A special thank you to first-time contributors Arianna Story, Brian Austin, Jesse Weinstein, keziah, weeklies!


  • Coders: Ariana, Arianna Story, bird, Brian Austin, Cesy, cosette, Daroc Alden, james_, Jesse Weinstein, Kate Boyd, keziah, korrien, redsummernight, Rudolf M. Schreier (ThePadawan), Sarken, ticking instant, weeklies
  • Code reviewers: Lara_S, redsummernight, Sarken, ticking instant
  • Testers: CJ Record, Frost The Fox, GoldenFalls, Heleen, james_, Laure Dauban, lydia-theda, Maine, Nary, Priscilla, Qem, redsummernight, Ridicully, Runt, Sammie Louise, Sarken, Teyke



Update from Elasticsearch 6 to 7, deployed on November 24, 2021.

  • [AO3-5671] – We updated Elasticsearch to version 7.15.


A couple of quick and boring-yet-necessary changes, deployed on December 5, 2021.

  • [AO3-6263] – We made SSL for SMTP configurable so sending mail wouldn’t error when we updated Debian.
  • [AO3-6260] – We removed some configuration and setup files for a service we no longer use to run automated tests.


Assorted bug fixes and improvements, with some progress on internationalization, deployed on January 6, 2022.

  • [AO3-6262] – We installed the rails-i18n gem so we’d have pluralization rules for all languages and would stop getting errors about missing keys.
  • [AO3-6225] – When you change your account’s email address, you have to enter the address twice to make sure you didn’t make a typo. It used to require the capitalization of the addresses to match, which was taking things to a bit of an extreme; now it won’t complain if the capitalization doesn’t match.
  • [AO3-6189] – We stopped setting the time zone in the backend when displaying gift exchanges and prompt memes, because it was contributing to dates displaying inconsistently. Now dates may still display inconsistently, but for different reasons. Progress!
  • [AO3-6161] – The form for uploading an icon says your icon has to be in png, jpeg or gif formats, but it was still letting bmp files be uploaded. We’ve fixed that.
  • [AO3-5926] – If you deleted the first chapter of a two-chapter work, the remaining chapter would continue to be called “Chapter 2.” We’ve made sure it gets renumbered properly.
  • [AO3-6132] – We added user IDs to series blurbs to make it easier to hide or highlight series based on their creators.
  • [AO3-6093] – We’ve made it so translations of news posts will automatically inherit the tags used on the English version, eliminating the need for translation uploaders to copy the information manually.
  • [AO3-6261] – We had an outdated link for contacting the Open Doors team in a few places, so we’ve updated it.
  • [AO3-6270] – We bumped our version of the Elasticsearch gem up to 7.16.1, since that’s the version we were actually using.


Opting in or out of gifts, plus assorted bug fixes and cosmetic changes, deployed on Feb 6, 2022.

  • [AO3-6269] – When you have invitations to share, you have to select which one you want to send. However, the labels and buttons for doing this weren’t coded accessibly. We’ve fixed that.
  • [AO3-6190] – We started using the Rails time zone for work and chapter date calculations. They were previously using the servers’ time zone, which resulted in some fun date-related bugs when posting between the hours of midnight and 04:00 UTC.
  • [AO3-5754] – If you didn’t enter enough text when trying to reply to a comment from the homepage, the error message would be partially covered by the buttons for submitting the comment or closing the form. We’ve uncovered it so you can read it.
  • [AO3-5718] – URLs with non-ASCII characters were giving timeout errors when citing related works or creating bookmarks of external works, so we’ve fixed that.
  • [AO3-5246] – If you try to access a restricted work while logged out, the page would link to the account creation page even if account creation was off. We’ve made sure it’ll have the correct information regardless of the site’s current settings.
  • [AO3-5127] – Mystery work blurbs were listing all unrevealed collections the work was in, even moderated collections where it was pending approval. We’ve made it so it will only list approved collections.
  • [AO3-6258] – We changed the subject of the email sent after creating an account.
  • [AO3-6242] – Policy & Abuse can now search invitation requests by IP address.
  • [AO3-6257] – We made it possible for users to opt in or out of gifts.
  • [AO3-5867] – To make our translators’ lives a bit easier, we made some changes to how co-creator and Open Doors emails are coded.
  • [AO3-5619] – Because our Policy & Abuse team handles more than abuse reports, we’ve changed the old “Report Abuse” link text in the footer and site map to say “Policy Questions & Abuse Reports” instead.
  • [AO3-6231] – We updated the help text for the “Turn off emails about collections” preference.
  • [AO3-6249] – The “Pseuds” link in Dashboard menu would switch to displaying the person’s username on pages other than the Dashboard. Now it’ll just say “Pseuds” all the time.
  • [AO3-6182] – We tidied up the code for collection items by making their approval status attributes into enums.
  • [AO3-4037] – We had tons of errors in Resque due to trying to send email for comments that were nonexistent (e.g., because they hadn’t been fully saved to the database yet or because they’d been quickly deleted). This was making it hard to see other important errors, so we’ve made it retry sending the email three times (in case the database just wasn’t updated) and then fail silently.
  • [AO3-6227] – If the creator of a work in your History deleted said work, the lingering information wasn’t being styled correctly, nor was it getting immediately removed when you deleted it from your history. We fixed both of these things in one fell swoop by putting back a CSS class we’d accidentally removed.
  • [AO3-6289] – We resolved some Brakeman warnings about permitted parameters in several URLs.



Post Header

2021-11-11 23:43:18 UTC

In these recent releases, we added the ability to freeze comment threads on works and news posts; added a limit to the number of tags on works; and prepared the site for localization, starting with our email notifications. As usual, there are also bug fixes and behind-the-scenes improvements. A special thank you to our first-time contributors Chantal, Daroc Alden, Gareth Bedford, Jonathan Means, Julia Feitosa, Kate Boyd, katzenfabrik, NightGlyde, Rudolf M. Schreier (ThePadawan), and Sharra Neely!


  • Coders: ahiijny, Chantal, cosette, Daroc Alden, Enigel, Gareth Bedford, james_, Jonathan Means, Julia Feitosa, Kate Boyd, katzenfabrik, korrien, NightGlyde, redsummernight, Rudolf M. Schreier (ThePadawan), Sarken, Sharra Neely, ticking instant, tlee911
  • Code reviewers: james_, redsummernight, Sarken, ticking instant
  • Testers: Ant, Bea, Chrome, CJ Record, Claire Baker, Claudia, GoldenFalls, Huey, Izzy, james_, Lady Oscar, Laure Dauban, lydia-theda, mumble, Nary, Nat, Priscilla, Paula, QED, Qem, Rebecca Sentance, redsummernight, Ridicully, Runt, Sammie Louise, Sarken, Teyke



Comment freezing and news post comment settings, deployed on February 12th. We missed this release from the last change log post...

  • [AO3-4709] - We added comment freezing to all comments.
  • [AO3-5880] - Anonymous series used to be included in the Recent Series list on your dashboard, spoiling the whole anonymous thing a bit. They're no longer there.
  • [AO3-5928] - We disabled automatic schema dumping after migrations, since we prefer to do manual updates and it was causing annoying error messages.
  • [AO3-5972] - It's now possible to delete a comment that's been marked as spam even if it has replies.
  • [AO3-6027] - Admins can now turn off or restrict comments to registered users on admin posts.
  • [AO3-6078] - There was escaped HTML in the success message when deleting works with certain characters in the titles. We've fixed that now.
  • [AO3-6105] - We added a check to make sure edited tag set nominations belong to the tag set specified in the URL.
  • [AO3-6107] - We updated the nokogiri gem to 1.11.0.
  • [AO3-6108] - For better performance, we now cache comment counts in more places.
  • [AO3-6111] - Also for better performance, we changed the way additional kudos are loaded at the bottom of works.
  • [AO3-6115] - We fixed the rate limiting on log in attempts.
  • [AO3-6122] - We made some changes to wrangling that had the unintended side effect of preventing some tags from being added to works (and making works that already used those tags impossible to edit). We reverted those wrangling changes.
  • [AO3-6123] - We updated the mechanize gem to 2.7.7.
  • [AO3-6124] - We made it so editing the comment settings on an admin post will update the settings for translations of the post as well -- that way, no one has to manually edit a few dozen posts.


Various tag clean-up tasks and security fixes, deployed on July 27th.

  • [AO3-6187] - It was previously possible to set your works' "revised at" information to whatever you wanted, including a date in the future. Now we prevent that.
  • [AO3-6126] - Trying to delete a work that had comment threads with deleted comments in the middle used to cause an error, but now the work will be deleted successfully.
  • [AO3-6193] - We've fixed some flaky automated test failures for editing works.
  • [AO3-5941] - We've made it faster for database admins to find out which accounts have used certain IP addresses.
  • [AO3-5922] - We've also made it faster for them to look up comments by email.
  • [AO3-6186] - We cleaned up some unused bits of code relating to prompts, to make things neater.
  • [AO3-6195] - We also removed some unused scripts that were used for setting up development and staging databases. 🧹
  • [AO3-5988] - There were some works in our database with non-canonical Rating and Category tags (e.g. "Teen & Up Audiences" instead of "Teen And Up Audiences"), so we added some code that would take care of those works and get rid of the erroneous tags.
  • [AO3-6065] - We then made sure that works without a rating would receive the "Not Rated" tag (because otherwise those works were broken).
  • [AO3-5964] - There were duplicates of tags, except with spaces added at the beginning or end, which led to problems when trying to edit the space-less tags. We made those duplicates more visibly distinct and thus manageable.
  • [AO3-6110] - It was previously possible to add a parent skin of your choice to any skin you wanted, which really should not be possible! So we took care of that interesting little loophole.
  • [AO3-5679] - On the page where moderators edit challenge assignments before sending them, we weren't properly sanitizing the input our autocomplete received from the "Giver" and "Recipient" fields. We've fixed that.
  • [AO3-6165] - Whether deliberately or by accident, guest commenters sometimes enter other people's email addresses when leaving a comment. When someone replies to those comments, an annoyed person who has never used AO3 in their life writes in to complain, and then an annoyed volunteer has to manually update the email on the comment after another annoyed volunteer bans the email from being used in future comments. Now banning the email will prevent the sending of any future replies to comments from that address, eliminating one level of annoyance. (Please double check your email when you leave a guest comment! Only you can prevent annoyance fires!)
  • [AO3-6165] - We updated the addressable gem from 2.7.0 to 2.8.0.


Tag limit on works plus some code clean-up, deployed on August 26th.

  • [AO3-6094] - When sending an invitation code to someone, there should be a record of when it was sent. For some reason, there wasn't. Now this information is properly stored and displayed.
  • [AO3-5565] - It was previously possible to bookmark the same work multiple times (i.e. if you had it open in different tabs). Since you really only need one (1) bookmark of a work, we make sure to prevent duplicates now.
  • [AO3-5049] - Trying to change your email address to one already in use would result in a confusing little stack of error messages, some of which weren't even relevant. We now just give you the one that tells you that you'll have to pick a different email address, which is more helpful.
  • [AO3-6206] - We updated the text of the email that is sent to a user when an admin hides one of their works.
  • [AO3-6205] - We have added a user's ID to the user page accessed by admins, e.g. members of the Policy and Abuse team.
  • [AO3-6153] - We introduced a limit to the number of tags that can be added to a work, requiring you to remove tags if you want to edit an existing work that goes over the new limit.
  • [AO3-6196] - In our automated tests, we were using the contents of actual works graciously provided by volunteers. We have now replaced this text with more neutral placeholders.
  • [AO3-6181] - We did some rewriting of the challenge signup code to make it less redundant.
  • [AO3-5557] - We removed tests, code, and config variables for emailing abuse reports to the Policy & Abuse committee (since they already get a copy in their ticket tracker).
  • [AO3-6070] - We still had some insecure http links languishing in the footer; those are now proper https links as well.
  • [AO3-6149] - There used to be an admin-only page displaying the most recent comments across the whole site. It served no actual purpose, so we got rid of it.
  • [AO3-6069] - Our linters (tools that analyze code for style or security issues) were living in a separate file from our other gems because one of them didn't play nice with our development environments. We figured out how to fix that and moved them into the file with our other gems.


Bug fixes and lots of internationalization work, deployed on November 1.

  • [AO3-6188] - While all tag wranglers can make changes to a tag's diacritics or capitalization, only admins can make more significant edits to tag names. However, we mistakenly allowed wranglers to change any Asian characters in tag names, which definitely fell into the category of "significant edits." We've fixed it so only admins can change those characters.
  • [AO3-6168] - The position of the button for leaving kudos will no longer cause the first line of kudos-givers to wrap prematurely.
  • [AO3-6120] - When users access the Archive via a proxy, we display a security warning. However, the warning was appearing even for some addresses we own, causing confusion and concern. We've fixed that now.
  • [AO3-6038] - We now give an error message if the comment you're replying to was marked as spam before you posted your reply. (Previously, the reply would be posted.)
  • [AO3-3828] - We've made it so the automatic text on a work posted in response to a prompt in a Prompt Meme will now link to that prompt.
  • [AO3-3642] - A wrangling error message that linked to the wrong tag due to non-escaped quotation marks will now link to the correct tag.
  • [AO3-6220] - We updated some outdated FAQ links in some emails, as well as in the Terms of Service and Terms of Service FAQ.
  • [AO3-6209] - We added some new database indexes related to tag sets to speed things up a bit.
  • [AO3-6109] - For the third (and hopefully last!) time, we updated the configuration for the service our translators will use when translating emails and site copy.
  • [AO3-6103] - We did a whole bunch of work to make the text of our emails more consistent so it will be easier to translate them.
  • [AO3-5731] - If you didn't include a name in your support ticket, there was an extra space in the greeting of the emailed copy of your ticket. The space has been removed.
  • [AO3-5372] - We've tweaked the padding on bookmarks to make it more consistent across the site.
  • [AO3-2380] - Autocomplete tag suggestions will no longer rely on what the user enters matching the tag's diacritics, e.g., typing A should return results for  and vice versa.
  • [AO3-6234] - We regenerated the list of false positives and issues that still need fixing raised by our security scanner.
  • [AO3-6221] & [AO3-6222] - We updated the text of the Support and Policy & Abuse forms to reflect recent changes to the committees' responsibilities.
  • [AO3-4311] - Changing the ISO code for an existing locale with an FAQ used to cause all FAQ pages to give a 500 error. Now the FAQs will continue to work!
  • [AO3-6164] - It was possible to create an invalid FAQ category and cause all the FAQ pages to error. Fixing that seemed like a thing we should do, so we did it.


There's a limit on how many kudos guests can give in a certain time period, and on November 8, we deployed a JavaScript tweak to make that more user-friendly.

  • [AO3-6252] - We added a helpful little error message in case you try to leave kudos and run into the rate limit.


Post Header

2021-07-27 20:15:19 UTC

This large batch of updates includes a rewrite that killed several tag saving bugs, new tools and fixes to prevent abuse and customize your Archive experience, and a generous helping of behind-the-scenes improvements.

Special thanks to agenderdanvers, hocestcorpus, korrien, and lethnie, who all submitted their first fix! (If you'd like to contribute to the Archive codebase as well, please refer to our Contributing Guidelines.)


  • Coders: agenderdanvers, Alix R, cosette, Enigel, hocestcorpus, korrien, lethnie, redsummernight, Sammie Louise, Sarken, ticking instant, tlee911
  • Code reviewers: Ariana, james_, redsummernight, Sarken, ticking instant
  • Testers: Alison Watson, Claire Baker, cosette, GoldenFalls, james_, Jocelin, Lady Oscar, lydia-theda, Nary, QED, Qem, Rebecca Sentance, redsummernight, runt, Sarken, Taylor Clossin, Teyke



Security fixes and visible user/work IDs to make hiding content easier, deployed on March 16th.

  • [AO3-5585] - We fixed a security risk concerning challenge assignments.
  • [AO3-6011] - We also made sure you can't claim a prompt pretending to be another user.
  • [AO3-6137] - When an admin changes a user's roles (e.g., makes them a tag wrangler), that change is supposed to be logged in the account's history. However, for the past ten years, it... hadn't been getting logged. We've fixed that now.
  • [AO3-5525] - We've added an option for our Policy & Abuse team to turn off password reset emails for users who report being harassed in this manner.
  • [AO3-6025] - Two of the emails related to work imports asked users to whitelist emails from the domain. We've updated the wording to "add email addresses from to your list of safe contacts" instead.
  • [AO3-6131] - We've added user and work IDs to work blurbs to allow hiding or highlighting via site skins. (For instructions on doing this, please check out our update on blocking and muting. We'll have a dedicated post once we've expanded this ability to bookmarks and series.)
  • [AO3-6135] - The list of servers we deploy to used to live in the Capistrano deploy scripts, which sounds reasonable -- deploy is in the name! -- but it was terribly inconvenient because it required a code change every time we changed our servers. We've moved that list somewhere else, where it's easier to change.


Search index improvements (part 1), deployed on March 22nd.

  • [AO3-6147] - To shift some data around in Elasticsearch, we had to add a task to update the mapping.


Search index improvements (part 2), deployed on April 1st.


Upgrade to Ruby 2.7.3 plus various bug fixes, deployed on May 9th.

  • [AO3-6155] - The preferences page previously referred to your History as your Viewing History. We never call it that, so we've corrected the phrasing.
  • [AO3-6145] - If you tried to add duplicate tags to a bookmark, e.g. both Angst and angst, it would give a 500 error. Now it saves the bookmark with just one of the tags, much like what happens if you try to add duplicate tags to a work.
  • [AO3-5740] - Editing a work to add a series, previewing your changes, and then cancelling used to result in your work still being added to the series. Now it respects your wishes and doesn't add the work to the series.
  • [AO3-5056] - Designated archivists can import works for others, e.g., when moving a whole collection of works to the AO3. The creators of those works receive an email about the import and can make some choices about having their works imported. Previously, those choices would not be properly saved under some circumstances; now they are.
  • [AO3-4008] - The Comments button on works now properly jumps you to the comments section, not the list of kudos.
  • [AO3-6157] - We've upgraded to Ruby 2.7.3, which also involved changing the gem we use to handle pseud and collection icons.
  • [AO3-6162] - We updated some broken FAQ links in the help pop-ups on the work posting form.
  • [AO3-6151] - Our Gemfile previously installed every AWS gem imaginable even though we only really needed one. We're rectified that.
  • [AO3-5910] - We've updated our repository's database schema and structure files to match the current state of the database on production.


Gem updates, deployed on June 2nd.

  • [AO3-6170] - We updated Rails due to a security vulnerability in actionpack.
  • [AO3-6173] - We updated nokogiri due to a security vulnerability.
  • [AO3-6169] - The Twitter widget would sometimes cause our tests to fail, so we stopped loading the Twitter widget in our tests.


Various bug fixes and infrastructure improvements, deployed on June 18th.

  • [AO3-6177] - Our automated tests for rate limiting sometimes failed even though the rate limiting code works just fine. We made it so the tests stop lying.
  • [AO3-6174] - Headings consisting of long, unbroken strings of characters would cause pages to scroll horizontally. Now we force the text to break so that doesn't happen.
  • [AO3-4936] - Occasionally, works are saved without fandom tags. It used to be that when this happened with multi-chapter works, you'd get a 500 error if you tried to access the work in Chapter by Chapter mode. Now the work will load.
  • [AO3-3498] - If you posted a work from a draft, sometimes the word count would just be blank. That won't happen anymore.
  • [AO3-6178] - Our CI will no longer mark builds as failing just because the process of uploading a coverage report failed.
  • [AO3-6072] - If you set up a new development environment, there wouldn't be any language options available on the pages for submitting support tickets or abuse reports. We've made it so there will always be a language available.
  • [AO3-5408] - We no longer store IP address from Support tickets in the database. Now we just hand them off to our spam checker when someone presses the "Submit" button.
  • [AO3-6180], [AO3-6179], [AO3-5437], [AO3-5431] - We removed some unused code. 🧹


Rewriting some of the code to ensure changes to tags aren't saved until the taggable item (e.g. the work) itself is saved knocked out several bugs at once. Deployed June 22nd.

  • [AO3-6043] - If you tried to edit a work to remove all of its warning tags, it would seem to save, but the tags would still be there. This was sort of good, since works need to have at least one warning, but not great because it didn't tell you there was a problem saving your work. Now it will give an error message.
  • [AO3-5978] - If you tried to edit a bookmark to add a tag that was over 100 characters long (the maximum length for tags), you'd get either a 422 error or a blank white page depending on your browser. Now you'll get redirected to the editing form with a note that your tag is too long.
  • [AO3-4932] - Removing a work's fandom and pressing Cancel on the resulting error page used to save the work without a fandom, which was terrible: all works need at least one fandom tag! We've made it so works without a fandom will definitely not be saved.
  • [AO3-3661] - If you wanted to remove all of the category tags from your work and you tried to preview your change, the tags wouldn't get removed upon saving. Now they will!
  • [AO3-3455] & [AO3-5041] - When editing the tags or language on your work, you wouldn't see the changes during preview. Now you can see your work's new info in all its glory right there on the preview page.


Post Header

2021-01-23 19:09:49 UTC

The latest release includes a tiny CSS change that ensures large images aren't cut off on small screens, as well as several bug fixes and behind-the-scenes improvements. Now that Flash is dead, we have also converted all works using Dewplayer for audio embeds to use the HTML audio tag instead.


  • Coders: Alix R, cosette, james_, Jeff Kingswood (Littlelines), redsummernight, Sarken, Stephen Burrows, ticking instant, tlee911, Tom Milligan, translatorzepp
  • Code reviewers: redsummernight, Sarken, ticking instant
  • Testers: CJ Record, Claire Baker, james_, lydia-theda, Nat, QED, Qem, redsummernight, Ridicully, Sammie Louise, Sarken, Taylor Clossin


Frontend improvements

  • [AO3-5791] - We tweaked the CSS so large images in works will no longer overflow their container and cause sideways scrolling. The "Upcoming changes to images" announcement has a bit more information.
  • [AO3-5822] - We've made it so HTML list items (<li>) and description details (<dd>) in right-to-left languages now have a margin on the right, not the left, as they should.
  • [AO3-6057] - Our code includes a list of right-to-left languages to make sure they display properly in the AO3 FAQ and news posts. In addition to Arabic and Hebrew, this list now includes Persian.
  • [AO3-6019] - Other users can add you as a co-creator to their works; however, you have to approve this request first. Those requests could be reached from a menu item called "Creator Invitations", which sounded like you could send invitations to your friends from this page. We have now renamed this to "Co-Creator Requests" to avoid confusion.
  • [AO3-6009] - We updated the banner new users are presented with when they log in for the first time. Now it helps folks find our FAQs and Support form in case they have trouble using the site, and our Policy & Abuse form in case they experience harassment or have questions about our Terms of Service.

Bug fixes

  • [AO3-3765] - When a tag had more than one page of tag comments, the notification email to the wrangler would include incorrect links (i.e. to the first page of comments instead of the comment in question). The links now lead to the correct places!
  • [AO3-5615] - It was previously possible to mark a tag as unwrangleable even if it hadn't been assigned to a fandom, making it essentially unfindable in the wrangling interface. Now you have to attach it to a fandom first.
  • [AO3-6091] - We've added an ownership check so you can't add yourself as a co-owner of another person's collection.
  • [AO3-6100] - Site admins with the Support role can now create news posts.
  • [AO3-4743] - We fixed the page listing all external works, which was returning errors for site admins.
  • [AO3-4744] - When you bookmark an external work, the form should recognize any URL that had previously been bookmarked and auto-fill creator, summary, tags, etc. for you, if those had previously been provided. However, this wasn't working. Now it does!
  • [AO3-6046] - If you saved an AO3 page using some browsers' "Save Page As" option, you'd be presented with the notice we automatically insert on AO3 proxy sites. That won't happen anymore!
  • [AO3-5909] - Skins couldn't be deleted if JavaScript was disabled. Now they can!
  • [AO3-5685] - If you accidentally visit the log out URL (e.g. because your browser's autocomplete helpfully added /users/logout when you typed, we made it so you would see a confirmation page and not actually get logged out.

Behind the scenes

  • [AO3-6096] - We have added a way for us to automatically convert new and existing works that use the Dewplayer audio player to use the HTML5 <audio> tag instead. (Find more details in our announcement post: What the death of Flash means for your audio and video embeds.)
  • [AO3-4879] - We fixed an issue with displaying an error message if we fail to update preferences for authors of works imported by Open Doors.
  • [AO3-6063], [AO3-6064], [AO3-6066] - We fixed indexing errors that would sometimes occur when deleting works, when deleting users, and when there's nothing to actually index.
  • [AO3-5958] - The way we test authentication and user permissions in our automated tests wasn't ideal, so we improved it.
  • [AO3-6086] - We laid the groundwork for moving collections data to Elasticsearch, which functions as a helpful layer between the database and the site to make browsing and filtering much faster! Stay tuned for further developments.
  • [AO3-6090] - After adding the option to disable anonymous comments on works, there was a little more code and database clean-up left to do. Now everything is tidy! \o/
  • [AO3-6098] - Since we've recently added, repurposed, and decommissioned quite a few servers, our deploy script had to be updated to reflect these changes.
  • [AO3-3582] - We've updated a JavaScript plugin that was long overdue for an update.
  • [AO3-6048] - We updated our Docker setup to include pwgen, which will make it easier for people using Docker to create admin accounts.
  • [AO3-6068] - Whenever a developer set up a local copy of the Archive code to work on, they'd have to manually set the default site skin, or else they'd be looking at a boring white page with black text and blue links. We've fixed it so the site style loads automatically now.


Post Header

2020-12-08 15:06:47 UTC

The last two deploys included a Rails upgrade and a variety of bug fixes and code cleanup. (Life has been turbulent enough, so we're keeping it very boring for us and our users. You're all welcome!)

A special thank you to our first-time contributors, ahiijny and translatorzepp!


  • Coders: ahiijny, Alix R, Cesy, cosette, Elz, Enigel, james_, redsummernight, Sarken, Stephen Burrows, ticking instant, tlee911, Tom Milligan, translatorzepp
  • Code reviewers: james_, redsummernight, Sarken, ticking instant, tlee911
  • Testers: Aline, bingeling, Claire, cosette, GoldenFalls, Harlow, james_, Jennifer D, lydia-theda, Matty, mumble, Nary, Nat, Paula, QED, Qem, redsummernight, Runt, Sammie Louise, Sarken, Taylor Clossin, tlee911



Upgrade to Rails 5.2, deployed on October 1st.

  • [AO3-5765] - In order to stay current with Rails, we had to upgrade from Rails 5.1 to 5.2. A lot of the work involved upgrades to associated gems and fixes for deprecated features that will be removed in Rails 6. A million thanks to everyone who helped out with testing almost every aspect of every single Archive feature (and there are a lot) to make sure everything was still working correctly! An extra special shoutout to Sarken, Nary, and lydia-theda, who went above and beyond to become the top 3 testers in our sprawling spreadsheet. <3!
  • [AO3-3908] - Trying to simultaneously reject and remove a work from a collection would give an Error 500. It's now possible to do both at the same time, as it should be.
  • [AO3-4829] - Changing the default skin (i.e. look of the Archive) would lead to a loss of all styling (i.e. a naked looking Archive) for all users. Now it's possible for admins to designate another skin as the AO3 default.
  • [AO3-4551] - Changes to parent skins would not update the child skin. This has been fixed!
  • [AO3-6033] - We upgraded our code coverage gem from version 0.1.14 to 0.2.0. (As you can see on our GitHub page, 90% of our codebase is currently covered by automated tests that are run whenever someone commits a fix or enhancement!)
  • [AO3-6049] - A few of our tests would sometimes fail for no reason. We fixed them so they should now reliably pass if there are no actual issues.
  • [AO3-6014] - We are now able to specify different robots.txt rules for different Archive installs depending on the full domain name associated with each, so nothing gets erroneously overwritten anymore.


Bug fixes and behind-the-scenes work, deployed on December 8th.

  • [AO3-6083] - We've started using HTML5 data-* attributes for our autocomplete code instead of some old invalid custom attributes.
  • [AO3-5833] - On iOS devices, the autocomplete didn't generally offer suggestions -- it usually just told you it was looking for some. We've tweaked it to make it more likely to provide help.
  • [AO3-5357] - If Creator A listed an anonymous work by Creator B as the inspiration for one of their works, when someone went to Creator B's Related Works page, they would see the anonymous work there... even though the point of anonymous works is to prevent folks from knowing who created them. To preserve anonymity, only Creator B will be able to see their anonymous works on their Related Works page.
  • [AO3-5861] - The "Works in Collections" button on any user's dashboard takes you, rather fittingly, to all of that user's works in collections (save for the anonymous ones, obviously). It's also a way to find all your own works in collections (including the anonymous ones). When accidentally trying to access this page for a nonexistent user, you are now greeted by a 404 page instead of an Error 500.
  • [AO3-6079] - By manipulating the HTML of the bookmark form, it was theoretically possible to change a work's tags. We've changed it so that's no longer possible.
  • [AO3-5168] - If you neglected to fill in a required field when bookmarking a new external work, the rating and category tags you selected would be cleared out and you'd have to reenter it. We've made sure it will be preserved.
  • [AO3-5924] - The Donate or Volunteer page had the browser page title "Donate Home", which didn't make a lot of sense. Now it is "Donate or Volunteer".
  • [AO3-6000] - We renamed the fields on the guest comment form to reduce the chances your browser will helpfully autofill the form with your non-fannish name.
  • [AO3-5925] - The guest comment form didn't mention that you can use HTML in comments, so we added some information about that to the form.
  • [AO3-6007] - Unlike a pseud's works and bookmarks pages, its series page didn't indicate which pseud it belonged to or how many series it contained. Now the header on the page will say "(#) Series by pseud (username)" instead of just "Series by username".
  • [AO3-6006] - Dashboards had a similar problem, in that they'd display only the pseud at the top of the page, but not the associated username. Now the Dashboard also follows the "pseud (username)" convention.
  • [AO3-5820] - When updating the status of items in your inbox, you have to tick a checkbox for the items you want to select. This checkbox was very small and could be hard to select, so we added a label to it to increase the area you can click or tap to tick the box.
  • [AO3-5952] - The text in table headers in right-to-left languages (e.g. Arabic) was left-aligned. We've made it right-aligned instead.
  • [AO3-5987] - The "Share" button on bookmark pages was set up so that all of the sharing options are rendered and embedded in the page, which meant that our servers were performing extra work and referrer information was being sent to Twitter and Tumblr each time a bookmark page was loaded. We've improved performance by not rendering share options until the "Share" button gets pressed, and we've improved privacy by using different buttons that don't track the user or load third party JavaScript.
  • [AO3-5950] - We tweaked the settings on the homepage Twitter widget to disable Twitter's tracking and to return it to its original size.
  • [AO3-6056] - The confirmation pop-up for prompt memes claims' "Drop Claim" option used wording that wasn't consistent with other confirmation pop-ups. We've adjusted it.
  • [AO3-6016] - Now that the option to disable comments has gone live, we removed an unnecessary database column and related code.
  • [AO3-6020] - Removed some other unused code.
  • [AO3-6021] - Removed even more unused code! 🧹
  • [AO3-6082] - One of the services we used for running automated tests began charging, and it would've cost a small fortune for us to keep using it. We've switched to GitHub's built-in option, which doesn't charge us anything (at least for now).


Post Header

2020-08-17 13:53:14 UTC

The last handful of releases included some shiny new features, such as the option to disable comments on works and the beginnings of a more robust system for managing Archive admins, as well as bug fixes and performance improvements.

We've also begun offering a Docker container image to make it even easier to contribute to the Archive's development. Thank you to tlee911, Tom Milligan, james_, Ariana, curtisxk38, elebow, and Z, who helped make this happen!

A special thank you to our first-time contributors, tlee911 and Tom Milligan!


  • Coders: Alix R, Cesy Avon, Elz, Enigel, james_, Jeff Kingswood (Littlelines), Matt Sears (Littlelines), redsummernight, Sarken, Stephen Burrows, Tal Hayon, teyla, ticking instant, tlee911, Tom Milligan, Tyme
  • Code reviewers: Ariana, curtisxk38, elebow, Enigel, james_, redsummernight, Sarken, ticking instant, Z
  • Testers: Adi M., Alison Watson, C. Ryan Smith, Chrome, Claudia, cosette, Ehryn, Hel, james_, Jessie, lydia-theda, Matty, Nary, Paula, QED, Qem, redsummernight, Relle, Runt, Sammie Louise, Sarken, ZoëRenee



Bug fixes and performance improvements, deployed on June 28.

  • [AO3-5007] - It used to be technically possible to create non-canonical Warning, Category, and Rating tags. We have now added checks to prevent this. (See the 0.9.293 deploy for an exciting update to this fix!)
  • [AO3-5878] - If you edited your gift exchange sign-up using the "Edit Prompt" option and your new offer didn't actually meet the challenge requirements, your changes wouldn't be applied, but you also wouldn't know why. You now get a helpful error message when you try to submit your changes.
  • [AO3-5969] - The "Update Tag Filters" troubleshooting option (available to admins) wasn't working for all tags, and now it does!
  • [AO3-5737] - The blockquotes within userstuff (which contains work as well as FAQ content) always had a border on the right side, which looked off for right-to-left languages. It now applies the border on the left for those languages.
  • [AO3-5882] - The page title for the "Marked for Later" page was "Saved for Later", creating a certain tension between the heading on the page and the title displayed in the browser window or tab. This has been marked as resolved. (Boom-tish!)
  • [AO3-5907] - The "Share" button on works was preparing all the sharing options if you merely opened a work, creating unnecessary server load and needlessly saying hello to Twitter and Tumblr. Now it gathers up the work blurb (for easy copy-pasting) and creates the social media buttons only when pushed. We also improved user privacy by limiting HTTP requests to those third-party sites from work pages.
  • [AO3-5930] - The code that shows information about works within a series used to load all the works' fields from the database. It is now only fetching the fields it strictly needs, which is a great load off its mind, and less error prone when we change or rename some work attributes.
  • [AO3-5957] - We've updated the Rack gem to 2.2.3.
  • [AO3-5974] - We added the recommended workaround for a gem that was giving off security warnings, so it's not bothering us until we're ready for an upgrade.
  • [AO3-5976] - We made updates to our deploy script to account for new servers! \o/ (And decommissioned servers, RIP.)


Bug fixes and behind-the-scenes work, deployed on July 1.

  • [AO3-5771] - We made the links for tags revealed via "Show warnings" and "Show additional tags" go to the appropriate works page instead of the page for the tag.
  • [AO3-5881] - On the "Edit Multiple Works" page, we had checkboxes for the visibility options ("Only show to registered users" and "Show to all") which you could both check, destroying the space-time continuum in the process. It's now a proper set of radio buttons.
  • [AO3-5973] - We added a new column to the works table to store whether the work has comments disabled, in preparation for an option that lets you, well, disable comments on your works.
  • [AO3-5947] - We added a bunch of rules to the tool that hounds us about style issues in our code changes.


Better control over permissions for site administrators, deployed on July 29.

  • [AO3-5518] - We are introducing separate roles for site admins, with different permissions for Policy & Abuse, Support, Tag Wrangling, Translation, and other volunteers who might need access to the Archive's administration interface. To roll this out in a workable manner, we're defining actions and settings that we want to limit access to, so we can then give the relevant permissions to each admin role.
  • [AO3-5519] - Restricts the ability to create and edit AO3 News posts (like this one!).
  • [AO3-5883] - Restricts access to the Settings panel, where we configure things like how many invitations from our automated queue are sent each day.
  • [AO3-5884] - Restricts the ability to search for users and update user information, such as their Fannish Next of Kin.
  • [AO3-5885] - Restricts the ability to delete, hide, or modify user creations (works, series, bookmarks, and external works).
  • [AO3-5886] - Restricts the ability to delete comments or mark comments as spam.
  • [AO3-5980] - We updated the script we use to create admin accounts. Now it allows us to set roles and easily update admins' email addresses.
  • [AO3-5623] - Said script included a link that started with http:// and we updated it to the proper HTTPS protocol while we were at it.
  • [AO3-5979] - We were enforcing uniqueness constraints for admin accounts and their associated email addresses in the code, but not at the database level. Now it's airtight!
  • [AO3-5992] - We fixed a bug preventing our Policy & Abuse volunteers from periodically receiving reports on spam accounts.
  • [AO3-5967] - We fixed an issue where it was possible to use the "Import New Work" form on URLs that are otherwise only visible to the Archive's internal network.
  • [AO3-4923] - We added more automated tests for bookmarks.
  • [AO3-5999] - We made comments created in our automated tests better resemble valid comments on the actual Archive.
  • [AO3-5983] - We added another bunch of rules to the hounding tool.
  • [AO3-5793] - We now support Docker for creating a development environment! 🥳


Adding the option to disable comments on works and cleaning up faulty warning tags, deployed on August 14.

  • [AO3-5897] - You can now choose to turn off comments on your works.
  • [AO3-4275] - After preventing users from adding new Warning tags to the database (in the 0.9.290 deploy), we needed to clean up any existing tags that didn't belong in our very small set of Archive Warnings. This is now also done.
  • [AO3-4634] - It used to be possible for all logged in users to access the "Unposted Claims" page of a prompt meme challenge. Now this list of all claims is restricted to the challenge mods.
  • [AO3-5975] - We have added a banner that will be automatically displayed on proxy sites run by third parties, advising users that if they log in to their Archive account on the proxy site, the site owner can see their password.
  • [AO3-4925] - We added more tests and removed some unused code involving tag wrangling.
  • [AO3-6012] - We started using MariaDB instead of MySQL for our Docker and automated test databases.


Pages Navigation