Page MenuHomePhabricator

Add a setting to not trigger notifications when moving task across workboard columns
Closed, ResolvedPublic

Description

This creates a *lot* of noise in the notifications when people re-arrange things.

Event Timeline

swisspol raised the priority of this task from to Needs Triage.
swisspol updated the task description. (Show Details)
swisspol added a subscriber: swisspol.
chad added subscribers: epriestley, chad.

I think all the things you may want and not want to get notified on Phabricator is going to continue to expand at an exponential rate. I don't see continually adding settings as one-offs as something we'll do, so I think people will have to wait for some appropriately engineered solution that tracks Transactions 1:1. I sort of recall discussing this as some point, @epriestley might remember more or know if we have an individual task (I couldn't dig one up at first glance).

We never suppress notifications from anything right now.

We might move forward here by moving the "mail tags" system more into ApplicationTransactions, and then allowing you to select different notification levels for different events (e.g., email me vs notify me vs ignore), but this isn't near the top of my list.

Also @swisspol, please define "noise". :) The notifications are sent only when a task changes either column in the workboard or priority or both, which are relevant changes in a task. Unless people are just playing with the workboard just because, which is another problem that you could also solve with permissions or an educational conversation.

At /settings/panel/emailpreferences/, users can define their email preferences. If change of priority is noise for a user, then they can disable those notifications. I'm not sure the change of column is contemplated yet in those preferences. Maybe under "Other task activity not listed above occurs."?

Now and then, someone will reorganize a workboard. Or move things from generic project e.g. "Android App" to a specific one "Android 1.1" when we scope a release, and then organize tasks in the new project's workboard.

This can generate 50-100 notifications easily, which fundamentally do not bring valuable information. This therefore is noise which can likely make me miss some other type of notifications, which would be more important.

Many people at our org (myself included) have turned off all notifications in the email settings to use exclusively the web-based notifications. This doesn't work around this problem.

If you can let me know where in the code I can prevent these notifications from firing entirely, I will try this out for a few weeks and see what people say.

Untested, but this probably does it.

diff --git a/src/applications/maniphest/storage/ManiphestTransaction.php b/src/applications/maniphest/storage/ManiphestTransaction.php
index 4e29753..41eff65 100644
--- a/src/applications/maniphest/storage/ManiphestTransaction.php
+++ b/src/applications/maniphest/storage/ManiphestTransaction.php
@@ -55,6 +55,15 @@ final class ManiphestTransaction
     return $blocks;
   }
 
+  public function shouldHideForFeed() {
+    switch ($this->getTransactionType()) {
+      case self::TYPE_PROJECT_COLUMN:
+        return true;
+    }
+    return parent::shouldHideForFeed();
+  }
+
+
   public function getRequiredHandlePHIDs() {
     $phids = parent::getRequiredHandlePHIDs();

T4036 will potentially implement another high-noise, questionable-signal notification and might help motivate whatever kind of solution we come up with here.

There's some possible middle ground too, like display-time aggregation, so you get one notification for all the column changes you haven't acknowledged yet. I'm not sure this is really a good solution to the problem, though.

@epriestley the patch you provided appears to work after a few days of testing, thanks.

Specifically: Settings > Email Preferences > Maniphest Tasks > "A task is moved between columns on a workboard." > Ignore