nyuuzyou/wikis huggingface dataset:
Untitled babysitting episode

On The Unofficial Official Fish Hooks Blog!, a post on a storyboard panel was wrote. The caption of the single storyboard picture is: "Here’s a panel from the board I’m working on. It’s probably the most horribly off-model drawing of Pirahnica ever made. She’s saying, “Well if you didn’t want me to eat them, you should’ve told me that BEFORE you asked me to babysit your kids.”"
==Episode Summary==
==Credits==
==Gallery==
==Quotes==
==Notes==
==Goofs==
==External links==
Untitled episodes

This is a list of untitled episodes, episodes that have yet to be given a title that is made public. The following episodes are in season 3:
==Untitled babysitting episode==
On The Unofficial Official Fish Hooks Blog!, a post on a storyboard panel was wrote. The caption of the single storyboard picture is: "Here’s a panel from the board I’m working on. It’s probably the most horribly off-model drawing of Piranhica ever made. She’s saying, “Well if you didn’t want me to eat them, you should’ve told me that BEFORE you asked me to babysit your kids.”"
=="oom" episode==
On August 16, 2012, C.H. Greenblatt posted an image on his blog showing a drawing he drew on a Fish Hooks story outline. It has a code of "724D-330", similar to the code on "Fish Lips Sink Ships"' prototype title card. The title is crossed out, but the last three letters of the title can be seen as "oom".
=="Cool Jocktopus" episode==
On April 1, 2013, Tom Warburton posted an image on his blog showing a television and a scene from an episode of Fish Hooks on it. The scene shows Jocktopus sitting on a car while playing a guitar and wearing sunglasses.
Category:Episodes
We've Got Fish Spirit

When Oscar's college dreams and aspirations are put in jeopardy because of his lack of extracurricular activities, he enlists Bea and Milo's help in finding a school club he can join. Unfortunately, none of the clubs seem to quite appeal to Oscar's senses and the trio is just about at a loss. There is only one option left - the cheer squad. It just so happens that Clamantha's squad has become incapacitated due to a tragic accident and she needs a ragtag group of students to compete at the All Species Cheer Off against her old school rival, Clamanda. Oscar plunges into the cheer life and finds that having a little fish spirit can go a long way.
==Episode Summary==
==Credits==
Snake and Mouse have a frog in their tank.
==Gallery==
==Quotes==
:Ms. Lips: Rowzers! Well someone deserves some stickers!
==Notes==
*A clip from this episode was released on April 21, 2011 by Disney Channel's YouTube account.
*This episode first aired in Poland on May 21, 2011 at 08:55 (Poland local time).
*This is the first double-length episode.
*This episode marks the second appearance of Ms. Lips and her first speaking appearance.
*This episode is the first new episode to have its debut outside of the United States.
==Goofs==
*In one scene at the cheer-off, the "F" on Koi's shirt overlapped the belt on her water suit.
*There are not enough clams in Clamanda's team to perform some stunts her team performed.
*The clams don't need water to breathe in this episode, however in "Underwater Boy", Clamantha is seen jumping up and down, as she can't breathe with the lack of water in the gecko tank.
==External links==
*
Category:Double-length episodes
Category:Bea episodes
Category:Oscar episodes
William Reiss

William "Bill" Reiss (born May 29, 1970) (age 44) is an American writer, actor, director, producer, storyboard artist and a television show developer. He is most likely best known for his work on and . He is currently a storyboard artist, a writer and a director on Fish Hooks, as well as having developed the show for television. He also voiced Oatmeal in the Fish Hooks season 2 episode "Spiders Bite". He will direct an all new Wander Over Yonder episode "The Last Ship".
Category:Cast and crew
Winnie Grouper

Winnifred "Winnie" Grouper is a cheerleader at Freshwater High. She has a long ponytail, freckles, a blue bodysuit and a high-pitched voice that sounds like Snake. In the final episode "Fish Graduation", she graduated offscreen.
== Personal life ==
Winnie was one of Randy's customers when he produced his version of the Fridge Hat. She bought a "Better Fridge Hat", and when the "Better Fridge Hat Minis" were introduced, she was very excited. She ripped off the Better Fridge Hat, but one of the consequences of leaving it on too long was that the hair stuck to the bottom of it. Winnie screamed when she realized her hair was stuck to the Fridge Hat. She bought an Emergency Rainbow Afro of Love to cover her bald head. ("Milo's Big Idea")
She was dressed up as a peasant for the play. ("Fish School Musical")
When the feud between Clamantha and Shellsea started, Winnie paid for a "Team Clamantha" shirt. ("Fish Talent Show") 
When the news about Mr. Baldwin's crush on Ms. Lips circulated, Winnie told her friends that she heard that Baldwin had been obsessed with Ms. Lips since 1986. ("Fish Lips Sink Ships")
She attended an emergency meeting with Tabitha to discuss who would be on that year's Freshwater Catch of the Month Dude Edition Calendar. ("Fish Flakes")
Winnie was dancing with her friends at prom. ("Fish Prom")
==Appearances==
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
* 
*
Woodshop

200px||thumb|right|Jocktopus, Randy Pincherson and Albert Glass in woodshop with Dr. Frog.
Woodshop is a class at Freshwater High. Dr. Frog was assigned the teacher, as a replacement for his journalism class, which only had one student. However, Dr. Frog isn't qualified for woodshop, and hardly knows anything about the tools used. Finberley, Jocktopus, Albert Glass, Oscar, Clamantha, Milo, Esmargot, Ann Chovie, Jumbo Shrimp, Bea and Randy Pincherson attend the class.
Category:Freshwater High
World's Greatest Grandma

World's Greatest Grandma is an upcoming episode in Season 2. No plot details have been released at this time.
==Episode Summary==
==Credits==
==Gallery==
==Quotes==
==Notes==
*It was revealed on The Unofficial Official Fish Hooks Blog this episode held the production code of 219a - but "Principal Bea" is both 219a and 219b. It was unknown what the correct production code for this episode and "Crawdaddy Knows Best" was, but it was likely to be 220a, 220b, 221a or 221b, before it was confirmed that "Koi Story" and "Super Extreme Grandma Games to the Max" were 220a and 220b respectively, meaning that this episode, and "Crawdaddy Knows Best" is 221a or 221b.
==Goofs==
==External links==
YOLO

YOLO (born as You Only Live Once) is Fish Vartan's pet dog. He is voiced by June Foray while he is sleeping and Frank Welker when he wakes up and snarls.
==Appearences==
===The Greatest===
YOLO was first appeared sleeping.
===The Little Guy===
YOLO was last appeared in the end credits with Snake and Mouse sleeping, at the end, he wakes up and snarls at Snake and Mouse as they scream.
Yearbook Office

The Yearbook Office is a room in Freshwater High, where Clamantha collects the yearbook picture photos and puts them in the yearbook. To enter the photo storage compartment, a password must be entered.
When Bea thought that her school photo didn't turn out as good as she thought, she asked for a retake, but Clamantha - the yearbook editor, did not allow her to take one. So, Bea and Milo snuck into the office and entered the password "OSCAR", which was given to the two by Oscar when he was on a date with Clamantha and he told her how pretty she was. Once getting through the many obstacles, Bea and Milo found Bea's picture - which was perfect. ("Bea Stays in the Picture") 
Later, Clamantha is seen cutting Shellsea out of the yearbook photos in an office completely different to the one Milo and Bea snuck into. ("Fish Talent Show")
==Appearances==
*
*
Category:Freshwater High
You're Watching Disney Channel bumpers

In 2012, "You're Watching Disney Channel" bumpers with Fish Hooks characters in were released on three Disney Channels - Disney Channel Latin America, Disney Channel Japan and Disney Channel France. The French version of the bumpers have different music. They have not yet been aired on the US Disney Channel.
==Gallery==
File:Disney Channel bumper Bea.png|YouTube video
File:Disney Channel bumper Milo.png|YouTube video
File:Disney Channel bumper Oscar.png|YouTube video
==Notes==
*Bea is the only character who just draws the Disney Channel logo - not using anything else to help draw it.
==External links==
*YouTube - Fish Hooks - Classic "You're Watching Disney Channel" bumpers
Category:Fish Hooks
Zapped! (character)

is a fish.
==Biography==
Zapped is an good guy at the beginning. But during the episode, he turns bad and has an evil plan for taking over Freshwater High. At the end, he got zapped by Milo while saying "OWWWWW!"
==Personal life==
Zapped!'s has a British accent.
==Appearances==
{{EpApp|Zapped!
Zapped! (episode)

{{Infobox episode
|name=
 is an second episode in Season 2.
==Episode Summary==
A robe visitor from a distant future comes to Freshwater High.
==Credits==
Zapped is getting zapped by Milo. During the end logo, he yells "OWWWWWW!"
==Gallery==
==Quotes==
Zapped!: Silence!
==Notes==
* Scott Baio guest stars as Zapped!
==Goofs==
* OWWWWW! is what Zapped! said.
==External links==
*
A/B testing

In the Wikimedia platform, the impact of many new features are tested using controlled experiments. Many more should be. This page collects any thoughts, questions, and links that are relevant to the topic.
== Infrastructure ==
* Metrics_Platform
* Phab tasks
**T76917 (2014): Investigate using Optimizely for UI A/B testing [declined]
**T76919 (2014): Implement reusable framework for A/B testing product features [declined]
**T135762 (2016): A/B Testing solid framework [declined]
**T208089 (2018): Infrastructure for interventions impacting editing metrics [declined]
**T213315 (2019): [Better Use of Data] Output 3.2: Controlled experiment (A/B test) capabilities [resolved]
* The "bucket" field is the standard for recording buckets in EventLogging data. Maybe this could be made a default part of every schema, and general tools provided so that a bucketed user would have their bucket set along with all of their events for the duration of the test.
== Bucketing ==
* The most common way to bucket editors for A/B tests has been on their user ID. If the test spans multiple wikis, it would be an improvement to do it on their user name, because that's consistent across wikis, and would ensure they're placed in the same bucket across multiple wikis. This would mean we need to hash the user name to ensure a consistent distribution.
**It would also be possible to user the global user ID, which would remove the need for hashing, although as of April 2019, that's not available to client-side JavaScript.
== Sample size / power analysis ==
* Evan's Awesome A/B Tools 
== General advice ==
* Emily Robinson, Guidelines for A/B Testing
*Privacy-conscious AB testing at Wikimedia Foundation
=== A/B testing on wiki ===
This is from an email from Aaron Halfaker.
This generally applies for any study that might affect our users.  An experiment, a survey, or a large-scale interview study, etc.
# Create a description of the study on Meta in the Research namespace
#* https://meta.wikimedia.org/wiki/Research:New_project
#* Make sure to clear describe the goals of the study and any disruption it might cause.
# Post on a community forum where the active users are likely to take note.  E.g. the Village Pump on English Wikipedia.
# Engage in the discussion there.  
#* Make sure to link to your Meta page.  
#* It's common for no one to respond.  You should wait at least a few days.  Consider making a follow-up post reminding people that you'd like to start the study soon (bonus points for a target deployment date.
#* Sometimes there will be a negative response.  Try your best to address concerns and make modifications to the study design.  If the negative response persists, consider rescheduling or fundamentally redesigning the study.
# Assuming the discussion went well, do the study.  Update the meta page with results and discussion.
# Post the results of the study in the same community forum and consider bringing it to the Wikimedia Research Showcase.
== Software ==
Some Wikimedia A/B tests are hard-coded, such as A/B testing used for the skin Vector 2022. As of 2023, an example file they use can be found in the Vector 2022 repo and is named A/B.js.
APT Staging repository

In addition to the main APT repository, which contains packages from upstream, we also run a repository for testing packages from Wikimedia-originated projects. Packages can be imported from Gitlab, currently Gerrit is not supported. 
== Requirements == 
To have your package imported automatically from Gitlab to the apt-staging repository, your package must meet the following conditions: 
# Be built by the WMF DebCI pipeline (docs)
# Be built by a Trusted Runner
# Be part of a protected branch (i.e., main, production, etc.)
The tool will accept options to bypass the trusted runner and protected branch for development/testing purposes, but these should not be used in production to ensure that packages are built correctly and securely.
== How the pipeline works ==
A cron job on the apt-staging host fetches the list of jobs that run on trusted runners. Then, it fetches the last 50 CI jobs and checks to see if they match the requirements above. 
If a package matches, it fetches it and places it in the repository "incoming" directory and then executes `/usr/bin/reprepro -b /srv/aptrepo/wikimedia-staging processincoming default` to pull the packages in to the repository.
Packages are signed with a separate key to the main apt repository, this is deployed with puppet and added to the root gpg keyring, then specified in the apt repo config.
=== Limitations ===
This is slightly more cumbersome because of the limitations with Gitlab. The GraphQL endpoint would allow us to perform a single search across all repos to find the packages that match our requirements, however this particular endpoint is not available in our plan.
== Promote packages to the main repository ==
In order to promote packages to the main APT repository, you need to set up the process with a puppet patch, that will need to modify two files before you can perform your first import.
In modules/aptrepo/files/updates, add an entry like this:
Name: vopsbot # Change to your package name
Method: https://apt-staging.wikimedia.org/wikimedia-staging/
Components: main # Change to the component you want to add it to
Suite: bookworm-wikimedia # If you have more than one suite, you will need to list them separately
UDebComponents:
Architectures: amd64
VerifyRelease: 671B51EA4CC7E5B2
ListShellHook: grep-dctrl -e -S '^vopsbot$' || [ $? -eq 1 ] # Change to your package name
In modules/aptrepo/files/distributions-wikimedia, add your package name to the relevant list given the Suite and Components that you have chosen.
Once you've done that, you can import your package in reprepro.
APT repository/Key

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.11 (GNU/Linux)
mQGiBEUtBY8RBACJTZdWEBZHlibArWM1HrX5rcPCb+o2nmeTfNrtMpmVbkmi9vBE
VmIDnjc+VQlJNoiBOKMhAhRSO0rIwEbOTewiQSPERfsClGpv0ikb3kQVFls5HpfZ
49u9EAERRez+P2VJUH7CBmigKdxtKRGM5aLI+eOLUl+lZUn4NU6BsQOUGwCgtLiL
I+8DSNkoiV40UR3uFsS9KLMD/30Lth9A9JgwrDTFl8rlNxq3Eluulv0+2MYoDutW
2p384vJ8Vil+x1GPzZXT1NVHCPdJMXqfnUl33XkPJEFSJ3B1WhwU3muItPoM+GKM
cnJMn2rYJa6Fae7UZy8iRJwSuqSg4mGNa900m/izyYoijJzl1u4HtZhbV++lgubO
j+YfA/4sz68H/ZQZwG+d8X/xTgZ3+9qekqGFgxdGTICtiD7IRPPaQ7EUWOBml6tn
SHfd0TBkCKtfFkr6+rA3ZJ5pyo3OwO2yUAvlBOPeaX4ZKTl7+8lG9kqqGIBm/iZy
bHC75DF506Zm4IiesAXRmRqfB8gReOHEJybZkaCg8FZqhdGErLQ8V2lraW1lZGlh
IEFyY2hpdmUgQXV0b21hdGljIFNpZ25pbmcgS2V5IDxyb290QHdpa2ltZWRpYS5v
cmc+iF8EExECACAFAkUtBY8CGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRAJ
29n5P2zUSmaGAJjipA+xkWInJJHCCcoJrf7rBzqEAJ9OEsJuxbBOvOJBovwpWtNh
goMcubkCDQRFLQWdEAgAvEAe6PnzhGdOC3ZYIeJalQyBEelRZiEdzjtdojTNEf29
6J75O8QqjQt/pyOZ9w/DCiy81dym3GlXeS61tcfNdSBMXqGtgXAskLV1djz0U7SU
89MiwjrSiYhYRYNSQcrshVDjzpHkj8HY0gwNyN5yZ1xnZ9/WG46Kay6quHQbfKn7
Egxs6ONJJaW7H1MM2cPzsJuzk1aXq4PJOFHgDo9J2j+nGVgk8XdGqgk5t0we69Oh
YXlxUTjgOE+XMxk4PEOFDjk0pTmxOUMP0b08dpvJf652O4jpnylBIiT9ZxRadENM
zmeBT//sJJIleYDh2a1xeDDQwzRig1swFnfYeuEugwADBQf/b7xdqYrLZYqtJVLO
fgh3HOJ605KNYlyreKj67x04fy8lIhrkp3wraVTN74+jObNhJTq3VesUoPPgJqRi
sABCwbGQeKriz7NUAflBliVapPjSd7qD696zO+wQd03z8wJecdxAcmw89+8jyHWV
bgSf3Thy0pfCDBOZL5ApDzPp/zveTAJJdl9xJ+kQA9g4kXIbqdsv0ytqfT56CAOC
vBIJ7JuzIz8eKZ5LlPoGosU5C6TPwlHwfrh1ttD5/LdoSbcz1ThCM3Q9nasvmQjQ
EGZteBiJH8UogRLTsqbJCtQM6aQL8J/+bWjSrmPdCp2z/dzFTgtga4DKcXiSYo+U
JVwilYhJBBgRAgAJBQJFLQWdAhsMAAoJEAnb2fk/bNRK/HEAn0ud2S4zsHv4Ayzp
QqdXQFnLYQ6mAJ9LlSuxDwXm+ln+7o++xUBMQCKJ7g==
=XekF
-----END PGP PUBLIC KEY BLOCK-----
APT repository/Stretch-Key

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1
mQINBFieKQEBEACZXCSJEwJnXsEofPUIunQTqF8p1IipjkDF4sNSgyuA17AD235h
EEll1Czzd13bajM4D9dO+Yz4q9lWcrdoaHXklTEnA1Dhjk0wgTRqEqa37PBxjm7p
xTuSOEFAHnQfjM9ZzV6Bd3kzIlfxnTguiYbN1pf4KQ7u4TQSchKr8V4p+mf4Y+Xg
6hhskLrvMRYO7mNGEzm0vdfWsGbbvPZlhrRMea4oyCrOGd2piXAIPLR6DFXpyrb9
GdEKrg8evTUnntsIqQ60h8veFETGNUmtpSF9OwzVGfH8TKACV7qA30Bbp6wDSLeY
JefpX4yBexY3FbNx1oxXbXTZbDR8RZ4olWjP+inKYJTwHxQnvYjXWgMeNR/BgX2s
ontLXqK5BzBP+1E0vHdAAYSU/8vjr+zmy1qyDWYtIlqdMXzDkXTCZIkJE0WPp5Sx
sEFqpLdO7ggqJV5UF7h/yIq9bcxoaNxYGJFRDWg3Lj6ZLCxiSN/QHuqascMijKAU
2RHzQtXhfXzZA8PwZp92dalOZOguytEYyhzrPfJlysvOnXTigHa9WeybDcJgsOO8
xFbgU9P98NgyE4ZIel6P1GpLnBY8j0KpbhWfCi5mmomwwK5OUWe0g9/u4z5FmN3z
/WWA/8BjuJI9MFnS3YoU3safEUi0vD5pnuktVQGJOkSnR6gAN4dAoCcVEwARAQAB
tDxXaWtpbWVkaWEgQXJjaGl2ZSBBdXRvbWF0aWMgU2lnbmluZyBLZXkgPHJvb3RA
d2lraW1lZGlhLm9yZz6JAjcEEwEKACEFAlieKQECGwMFCwkIBwMFFQoJCAsFFgID
AQACHgECF4AACgkQnTktP/rfGPtmohAAhQhGkOe0DX5ZSK6uEs2IpB1W3EvCPK87
vSgI6FZyGEURH7s/MknQR2lMShgHZ1oqLwZV1DE5ao/D4khPw1JZFeYajXOxQ3Sr
/Qjg6ZayrJ/r9sSchC4nd6m+rFpzuRsx22FWrVenzRBau6/J6OUz3WawsjX3Bwrg
/Hw11/+kgsabkdsdK28ENWdVj0tLp5asSxrs4L4d2RjKpfiufBAGpkqFV5p2J8aw
cJ7Wh3/1mMo+biTtuemHtWf4XfWmXv99ltSEVe8PpMYQ+FjNUHDzEZMS5K39em+V
EOC7GsE+SHHF6lgjH2BtDcpkimbU9uROnGeIWtpRr+PNMu/yhFLUCxe7tf4yffIJ
NIAL3RFcRhLj0xCbL3fd5DbQP4eB68k9pLHwYxpKba7DDmH0aMstvk5xrpphdHAP
p03VbE6ZThKxA828yb2jWtumDhoYRlkHs2KrVufUPA411mUE+A53pwqBse/KM9Iq
Pidc+TwMwy2nByRB9WFyyGS08wqhewpwp8mwIOejvRf+3yi+CGHM2Xi4bTmEqVL+
Jm1D5W49O5/j1T6HyVPGsyH/0QgYwg2IVZwL5Jfy9w3974jTV3QAcCBafR9hcZCS
S2wOIo0ckRI0APw6DQSFMyBrNs9rWy72Ixu9RC1GtzCCn5OaMRUM9FaqjRnTKX4m
grWsU8i35fI=
=ib96
-----END PGP PUBLIC KEY BLOCK-----
ActiveMQ

ActiveMQ used to be part of our fundraising architecture. It stood between civicrm and our operational cluster running the Donation Gateway extension providing a new payment gateway.
It lived on silicon, a former member of frack.eqiad.wmnet. 
We have replaced it with Redis, running on frqueue1001. ActiveMQ had stability issues, crashing several times in the middle of important campaigns. In addition, we had been using it as a key-value store even though its architecture did not guarantee that all messages in the queue would be available by key (only those fresh enough to be in RAM). We use Redis strictly as a queue, and store messages needing key lookup in a 'pending' payments table.
The following was written when ActiveMQ was still a part of our operations.
= Software =
Currently we're running ActiveMQ 5.9.0 for our installation. The software needs to be puppetized but in the interim is located in /usr/local/apache-activemq, symlinked to the current version. The configuration is located in /etc/activemq.conf.
= Configuration =
== Config files ==
There are two important config files for ActiveMQ:
* /usr/local/apache-activemq/conf/actibemq.xml - This contains the specific conncetion information for activemq (eg defining transportConncetors). This gets loaded by activemq by default when activemq is invoked.
* /etc/activemq.conf - This contains some environment variables for activemq
== Connectors ==
<transportConnector name="stomp" uri="stomp://0.0.0.0:61613?transport.closeAsync=false"/>
= Start/Stop =
 /etc/init.d/activemq {start|stop}
note: if stop doesn't work then just killall java
= Escalation =
Arthur
= Activity =
Check /var/log/activemq.log for what's going on.
or to view in a web browser:
==Log in to tellurium. ex==
ssh khorn@tellurium.wikimedia.org -L 4000:silicon.frack.eqiad.wmnet:8161
==Login with your default terminal username==
ssh tellurium.wikimedia.org -L 4000:silicon.frack.eqiad.wmnet:8161
==Connect to ActiveMQ==
 http://localhost:4000/admin/queues.jsp
= Testing donation consumption =
# Follow the steps above to pull up the web interface.
# Under the "Operations" column click "Send to" for the "test_donations" queue.
# Insert a test message and click send. (The message body will consist of a JSON string. You can check the logs to see examples.)
# ssh to aluminium (or wherever civicrm-dev is running from).
# cd to the /srv/org.wikimedia.civicrm-dev directory
# run "drush qc" to consume the queue
# If there are no errors, log into https://civicrm-dev.wikimedia.org/civicrm/ and look for the donation.
Category: Fundraising
Category:Fundraising - Needs Updated
Add Link/Diagram: Fetching and completing link recommendation tasks

Compatible with https://sequencediagram.org
title Link recommendation service (task fetch and completion)
actor User
User->SpecialHomepage:Navigate to Special:Homepage, suggested edits module loads
SpecialHomepage<-ElasticSearch:list of tasks filtered by type/topic fetched from ElasticSearch backend. Tasks with "hasrecommendation:link" included in the query.
SpecialHomepage->Article:User clicks on an article of "link-recommendation" type 
Article<-BeforePageDisplayHook:Hook runs on server-side
BeforePageDisplayHook<-Database:get JSON link recommendation data from growthexperiments_link_recommendations cache table
LinkRecommendationVisualEditorPlugin<-Article:VisualEditor link recommendation plugin loads with server-side exported JSON data for link recommendations
LinkRecommendationVisualEditorPlugin->AddLinkSubmissionHandler:User interacts with link recommendation suggestions, and saves the article with link recommendations accepted/rejected/skipped
AddLinkSubmissionHandler->Database:Link recommendations saved to growthexperiments_link_submissions, normal edit save also occurs with additional change tags added
AddLinkSubmissionHandler->CachePurge:Article is removed from the task queue cache in growthexperiments_link_recommendations table
AddLinkSubmissionHandler->ElasticSearch: Search index is updated to remove "hasrecommendation:link" flag for the article.