Page MenuHomePhabricator

Add 'close as duplicate' functionality to the Wishlist
Open, In Progress, MediumPublic5 Estimated Story PointsFeature

Description

We get a lot of duplicate wishes. The way we typically deal with them is to redirect the duplicate to the original, along with copying/pasting any relevant content.

Instead I think we should do it like Phabricator, where the old wish remains fully intact (not a redirect), but we just hide it from the list of wishes.

Acceptance criteria

  • Add a "Reason" dropdown when declining a wish that allows user to select "Duplicate"
  • When "Duplicate" is selected as the "Declined" reason , users will see a text field where they can enter the duplicate wish ID (ex. W123)
    • Wish selection can just be an input for the wish ID, until we have a better search in place
  • After submission, change to the "declined" status.
  • Insert template community wishlist decline wikitext in the wish's description (ex: {{Community Wishlist/Decline|duplicate|W456}} )
  • If the proposer of the duplicate wish has a vote, it should be transferred to the other wish
  • This doesn't include a way to merge descriptions of both wishes

Event Timeline

Needs subtask to change ApiQueryWishes to accept a titleprex= parameter (or something) so that we can search for wishes by title.

This can later also be used to power the search on the wish index page, which is currently still an design experiment https://www.figma.com/design/JcTMFwbEJPpCKBiZ16Jkel/Future-of-the-Wishlist?node-id=3419-73841&p=f&t=oUL1TtdcCRBEBOmw-0

KSiebert set the point value for this task to 5.
HMonroy changed the subtype of this task from "Task" to "Feature Request".Oct 9 2025, 4:49 PM

I got stuck on the title search. I added a titlelike prop to ApiQueryWishes that essentially does a %search term% pattern search in SQL. I have a patch for that but I eventually realized we can fix things directly in CirrusSearch, and use that instead as it will do a better job overall. I'm exploring that as part of T406423.

Anyway, in the meantime, we could just have the input take the entity ID as opposed to the entity title.

Unlicking for now.

MusikAnimal changed the task status from In Progress to Open.Oct 31 2025, 8:59 PM
HMonroy changed the task status from Open to In Progress.Nov 3 2025, 9:12 PM
HMonroy claimed this task.
HMonroy subscribed.
HMonroy changed the task status from Open to In Progress.Dec 5 2025, 6:48 PM
HMonroy claimed this task.

Change #1217341 had a related patch set uploaded (by HMonroy; author: HMonroy):

[mediawiki/extensions/CommunityRequests@master] Bug: T401638

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