Jump to content

Community Tech/Watchlist Labels

From Meta, a Wikimedia project coordination wiki

The watchlist labels project was undertaken as part of focus area 1 of the Community Wishlist, which aims to "make it easier for patrollers and other editors to prioritize tasks". The wish that informed this project was primarily W372: Multiple Watchlists . As part of the preliminary work for this project we also fulfilled W231: Watchlist review timeout issue .

The basic idea of this project is to add a way of dividing a user's watchlist up in to different bundles of pages, so that they can have a custom view of their watchlist. Initially this was called "multiple watchlists" but after investigation it became "watchlist labels" because that is more descriptive of what most discussion was suggesting.

Previous proposals

[edit]

The main Phabricator task (T3492) describing the wish was created in February 2005. Since then there has been various other discussions and proposals about how to handle multiple watchlists, notably in the Community Wishlist:

Background & problem space

[edit]
  • Signal-to-noise issues: For large wikis with lots of activity, Special:RecentChanges lacks utility as the feed is overwhelming and unfocused, and so users create large watchlists with only the pages they are interested in. That in turn means that their watchlists are also very busy, leading them to want better ways to manage and filter their watchlists.
  • Performance issues: Prior to our work, watchlists were edited via a list of checkboxes and page titles, with a user's entire watchlist being shown on one page. This meant that for large watchlists the page would load very slowly or time out completely. For example, there were 127k slow watchlist queries in June-July 2025.
  • Poor discoverability and UX: Many filters and “power tools” for watchlists and recent changes exist, however users are not able to find or make use of them. Settings are also scattered across pages.
  • Variance in signal efficacy: Editors are sometimes distrustful of ML-scored edit reviews, and have varying opinions on key data such as the usefulness of byte size. As a workaround, editors feel a need to manually scan their watchlist.
  • DIY task management: While watchlists and recent changes are starting points, advanced editors create their own workflows to manage tasks in and outside of the wikis.
  • Unsuited for mobile: Users prefer the desktop view of Special:Watchlist, even on mobile. The simplified form of the mobile watchlist is aimed at users who are unlikely to need labels, so we only targetted the mobile advanced mode.

Preliminary work

[edit]
  • Pagination for Special:EditWatchlist

Acceptance Criteria MVP Phase 1

[edit]
  • Updating the database schema. We added two new tables:watchlist_label, connected to the user and containing the watchlist label name; and watchlist_label_member connecting the label to the watchlist. This structure aimed to not add anything extra to the watchlist table, but also be flexible enough to be useful into the future (for example, to add colours to labels).
  • Creating, editing, and deleting labels via Special:WatchlistLabels.
  • Bulk assigning and unassigning on Special:EditWatchlist. The new assign and unassign buttons were added as a new Vue app to the existing HTML page, which made for some slightly odd technical structures (such as the dialog submission buttons actually submitting the page's form, resulting in a page reload). This was done in order to not have to rebuild the entire page as a Vue app.
  • Updating the un-watch flow. As a result of adding the above assign and unassign buttons, we also reworked how the existing unwatch button behaved. It was incorporated into the same Vue app, so that a confirmation dialog is displayed when a user is unwatching any pages.
  • Displaying labels next to entries on the watchlist
  • Filtering Special:Watchlist by label. This operates in the same way that tag and other filters do, with it being possible to filter by multiple labels and invert or highlight the filter.
  • Tracking the usage of the new feature was not done with any front-end instrumentation or event logging, but rather by running periodic SQL queries against the database. This kept things simpler, didn't track our users, and still gave us a view of how popular it was.

Acceptance Criteria Phase 2

[edit]
  • Assigning existing labels when watching pages (via watch star)
  • Assigning existing labels in the source edit page
  • Assigning existing labels in the VE publish changes dialogs

Release Timeline

[edit]

Technical Investigation

[edit]

Proposed Solutions

[edit]

Design requirements

[edit]
  • Editors can apply, remove, and manage labels on watched articles, with label names limited to a maximum character count
  • A dedicated “Label Manager” that allows editors to create, rename, and delete labels, with deletion requiring confirmation and only removing the label association
  • Editors can apply labels to one or multiple articles from a page, through the watch star and Special:Watchlist
  • Labels are visible on articles in the edit watchlist and Special:Watchlist and users can filter the watchlist by labe.

What are we building?

[edit]

Community tech opted to build functionality into the watchlist to manage user-defined labels and add them to watched pages. Users will then be able to filter by these labels.

What are we not building?

[edit]

Multiple, distinct watchlists.

Updates & Decision Log

[edit]

[edit]