Page MenuHomePhabricator

πŸ‚ [Spike] engineering for language links being removed from RecentChanges / Watchlists
Closed, ResolvedPublic

Description

Plan out and estimate how long it will take, to inform timelines

Stop sending language link notifications to 'different language from the current wiki'

Architecture

Deploy per pilot wiki. Drop entity notifications after a client receives it from the Wikidata end, when the change matches criteria.

Add a feature flag so it can be rolled back as quick as possible (within 1 day, limited to Monday-Thursday)

We are not currently planning any secret workarounds such as a hidden URL parameterβ€”the data will not be present.

Implementation details

To intercept on the client, we can detect the condition in Wikibase\Client\Changes\ChangeHandler, where we have the EntityChange containing enough information to discriminate other language link updates. It should be checked before getAffectedUsagesByPage to avoid unnecessary database lookups.

New behavior will be toggled with a new configuration variable suppressOtherLanguageLinkUpdates.

  • Make sure that suppressing the change propagation won't affect the language selector functionality to show which other languages are available. This seems to come from SiteLinkLookup, always pulling from the Wikibase repo's wb_items_per_site table.

Monitoring

The following changes are expected on wikis where we enable the new flag. No change is expected on other wikis.

  • InjectRCRecordJob count. Expected to decrease by c. 50% immediately. Filter job volume dashboard to "eqiad.mediawiki.job.wikibase-InjectRCRecords". (Note that it can not be limited to a single client wiki.)
  • EntityChangeNotificationJob count. Expected to stay the same. Filter job volume dashboard filtered to "eqiad.mediawiki.job.EntityChangeNotification". (Note that it can not be limited to a single client wiki.)
  • recent_changes row count. Expected Wikibase-injected RC count to fall by c. 50% over 30 days. dashboard
  • Dropped messages will be logged at "debug" level under the "Wikibase" facility, with normalized message "{method}: dropping change #{changeId} as an other-language sitelink". Expected to occur roughly as often as the decrease in InjectRCRecordJob counts.
    • wmgMonologChannels is currently configured to limit the Wikibase channel to warning-level. We should decide whether we care enough about the debug messages to enable them.
  • Errors in the jobs. None expected. dashboard
  • Rate of language-link recentchanges and proportion of recentchanges made up of language-link changes

Details

Event Timeline

SuzanneWood-WMDE renamed this task from [Spike] engineering for language links being removed from RecentChanges / Watchlists to 🧹[Spike] engineering for language links being removed from RecentChanges / Watchlists.Sep 10 2026, 12:06 PM
Danny_Benjafield_WMDE renamed this task from 🧹[Spike] engineering for language links being removed from RecentChanges / Watchlists to πŸ‚ 🧹[Spike] engineering for language links being removed from RecentChanges / Watchlists.Sep 11 2026, 8:19 AM

I'm switching from a sender- to a receiver- filter for a couple of reasons:

  • Logic to distinguish message type already exists on the clients.
  • Job / message is lightweight to repeat across clients.
  • Allows simple per-wiki configuration rather than all at once.

This has some drawbacks,

  • Does not reduce injection job count.

Change #1341166 had a related patch set uploaded (by Awight; author: Awight):

[mediawiki/extensions/Wikibase@master] [WIP] Suppress other language link changes

https://gerrit.wikimedia.org/r/1341166

awight renamed this task from πŸ‚ 🧹[Spike] engineering for language links being removed from RecentChanges / Watchlists to πŸ‚ [Spike] engineering for language links being removed from RecentChanges / Watchlists.Thu, Sep 17, 9:45 AM
awight updated the task description. (Show Details)

Change #1341166 merged by jenkins-bot:

[mediawiki/extensions/Wikibase@master] Suppress other language link changes

https://gerrit.wikimedia.org/r/1341166

Should be available for testing on beta cluster

May require multiple clients being connected