Page MenuHomePhabricator

Tasks updating in real-time when dependents are changed
Closed, WontfixPublic

Description

If someone creates a subtask or adds a dependent task, someone looking at the parent Task should see it appear without refreshing the page. As seen in Trello and Asana.

Not critical but very useful for remote teams planning sprints together.

Event Timeline

qgil raised the priority of this task from to Needs Triage.
qgil updated the task description. (Show Details)
qgil added a project: Maniphest.
qgil added a subscriber: qgil.

I hesitate here, people generally don't expect live updates on these pages, and I don't peronally think it's super useful. The notification server should notify you that there are changes to the page, which sticks and reloads. My concern is that people will not notice when pages change in minor ways and a sticky "THINGS CHANGED" is a good call to action for when you do leave those pages open.

Did this question come about due to a bug, was someone not notified of a new changes to the page? It could be something missing of course, and we should fix that.

@epriestley will likely have more cohesive thoughts than I.

There's an optional notification server which probably hasn't been configured. It's running on this install, although you might not have caught any notifications yet. Instructions to configure it are here (they might be a bit out of date):

https://secure.phabricator.com/book/phabricator/article/notifications/

As @chad says, you'll get a notification that someone made an update ("alincoln updated the dependencies for this task.") and a sticky notification if it applies to the current object on the page ("This task has been updated, click to reload."), but the actual update won't be applied to the HTML in the page.

This is largely a technical choice: in approximate terms, Asana had a team of engineers work for more than a year to build the technology behind their updates. Our update server was built by three student interns in about a week. As a user, I generally haven't felt like I'm missing much by only getting a notification rather than a full update.

There's no reason we couldn't do some updates, and in some cases like Workboards this may make sense (we also have plans to make Conpherence do real-time updates). Rewriting everything to do functional-reactive-real-time-sync like Asana does is probably not really within the realm of technical possibility, but my belief is that we can capture a large part of the value with a small fraction of the effort.

The notification server is also definitely a bit under-engineered right now (see T4324) but it really was a week of work by three students two years ago, and has worked fine since then with a couple of minor changes as Node versions changed.

Anyway, I'd say: get the notification server configured, and then let us know which interactions feel like they're still lacking? Offhand, workboards seem pretty reasonable to look at tuning a bit, while dependencies feel like they're already pretty well-served by the existing stuff, at least to me.

epriestley claimed this task.

I'm going to close this one, since it's covered elsewhere:

  • The update notifications should already work, they just require some configuration.
  • After D9166, dependency closes/reopens (instead of just adds/removes) will also propagate to parents and notify.
  • We're generally satisfied with this relatively low-tech approach for now: we tell users things have changed, but don't automatically update to reflect changes. As users, this has felt sufficient. As implementors, this is dramatically simpler.
  • T4324 discusses infrastructure improvements to notifications.
  • T4900 covers improving workboards.
  • We're generally open to making specific, high-value interactions more magical, but want the case for them to be pretty strong.