Page MenuHomePhabricator

[Intervention] Automatic topic subscriptions (full-page source)
Closed, DuplicatePublic

Description

In T284836, we implemented automatic topic subscriptions for comments posted, and conversations started with, DiscussionTools.

This task involves the work with extending automatic topic subscriptions to comments posted, and conversations started with, the full-page source editor.

Implementation details

Meta

Functional Requirements

  • Platforms: mobile and desktop
  • A topic subscription should be automatically initiated when someone makes either one of the following edits with the full-page source editor:
    • Start a new topic
    • Publishes a comment in an existing conversation
  • The software should continue considering a discussion/conversation to be any == H2 == section that exists on pages - used for hosting conversations (e.g. talk pages, pages in wgExtraSignatureNamespaces namespaces...more in T249036).
  • No new comment notifications should be sent for comments authored by users the would-be recipient has muted in Special:Preferences#mw-prefsection-echo > Muted users
  • By default, automatic topic subscriptions should be enabled for all people who have the Enable topic subscription setting enabled

Design Requirements

  • Not needed for this step of the workflow.

QA specifications

  • See Functional requirements above.

Relation to existing topic subscriptions
  • When automatic topic subscriptions are deployed, no one should be automatically subscribed to all topics they previously participated in.
Initiating a subscription

Functional Requirements

  • For people who have automatic topic subscriptions enabled, they should be automatically subscribed to a topic after taking either of the following actions:
    1. Posting a comment in a discussion they are not already subscribed to
      • After "1)", people should see the [ subscribe ] affordance on the page turn into [ unsubscribed ]
    2. Starting a new discussion

Design Requirements

  • Not needed for this step of the workflow.

QA specifications

  • See Functional requirements above.

Being made aware of automatic subscription | T262103

Functional Requirements

  • The first time someone is automatically subscribed to a conversation, they should be made aware:
    • They will receive a notification if/when someone posts a new comment in that discussion
    • Where they can adjust whether they are automatically subscribed to discussions they participate in the future

Design Requirements

  • User story
    • As someone posting a comment or starting a new conversation for the first time after automatic topic subscriptions became available:
      • I want to know that I will be made aware when someone posts a new comment in that discussion so that I have an accurate expectation for how I will know if someone responds to me.
      • I want to know where I can adjust whether I am automatically subscribed to the future discussions I start and/or participate so that I can ensure the notifications I receive are valuable to me.
  • Mockups
    • Mockups will be created in T262103.

QA specifications

  • See Functional requirements and Mockups above.

Notification delivery/receipt (no implementation required)

Functional Requirements

  • In general, new comment notifications initiated via an automatic subscription should be delivered in the same ways they are when initiated via manual subscriptions (T263820).
  • Notifications about new comments in sections people are subscribed to should appear in Notices

Design Requirements

  • Not needed for this step of the workflow.

QA specifications

  • See Functional requirements above.

Unsubscribing
  • When someone is automatically subscribed to a conversation, and they subsequently unsubscribe from that conversation using any method (e.g. clicking [unsubscribe] on the talk page or unsubscribing from within Echo), that person should remain unsubscribed to that conversation until they manually resubscribe to it.

Managing automatic subscription behavior

⚠️ TBD

QA specifications
⚠️ TBD

Event Timeline

ppelberg moved this task from Backlog to Triaged on the DiscussionTools board.
ppelberg moved this task from Untriaged to Next Up (this Quarter) on the Editing-team board.

On second thought, I'd like to fold this back into the original task (T284836).

Reasoning:

  • I'd like us to commit to fully supporting the full-page source editor wherever we can, to ensure we don't leave the people using it behind when working on new features.
  • I worry a little that if we leave the hard part for last, we might not actually ever get around to doing it, so I'd like to do it first.
  • In the long term, it will be easier to maintain this feature if we have just one implementation, rather than separate reply tool and full-page source editor implementations.
  • It's not actually that hard to implement, I just needed a few days to think it through – but that happens in parallel with other work :D