Page MenuHomePhabricator

Support Feed/Notifications in Conpherence
Open, NormalPublic

Description

NOTE: Before we implement this, we should ship more of Conpherence (particularly, the chat column) and make sure the need is still there. In particular, the desire for this feature may mostly be driven by having separate chat + workflow tools (like Slack + Phabricator, or IRC + Phabricator), and if Phabricator provides chat, the builtin notifications may be sufficient (and room notifications might all just be redundant spam). It's not clear how much of the need here is an integration issue vs actually wanting to silo/filter notifications into rooms.

A major feature of similar software like Slack is the ability to publish notifications into rooms. We approximately do this ourselves in IRC with phabot, and users often express interest in publishing notifications from one system to another.

For example, it should be possible to have a transcript like this:

alincoln: Can you land D123? The rest of it looked good to me.
epriestley: Sure, one sec.
epriestley closed revision D123: foobar the snafu.


One way we might do this is:

  • Allow threads and rooms to be registered for notifications that affect certain users and projects.
    • For example, "Conpherence Engineering" might be registered for Conpherence.
    • "Backend Team" might be registered for the individual members of the team, so all their personal activity shows up there.
    • This could be a dropdown > edit notification settings > type some junk into a tokenizer sort of thing. For v0, supporting either users or projects (whichever is easier) seems perfectly fine if we don't get both for free.
  • When notifications are published, also publish notification transactions into relevant threads.
  • Give Conpherence some kind of "story" transaction type which can render a feed story with appropriate text and permissions (users who can't see the original story shouldn't be able to see the transaction at all, probably? Seems better than "something mysterious which you don't have permission to see happened".)
  • Then figure out how much extra UI we need to customize story types.
    • And, do we need "Differential stories from Conpherence, Maniphest stories from Differential, all stories from @epriestley"?
    • If the high-end of need is too bizarre to easily represent, we could use Herald, especially after T5791.
    • But we should keep this as simple as possible for the first couple versions. This UI mess is probably the majority of the actual work, and we should ship the feature and get a feel for it before investing too heavily in UI and tweaks.

(Another way we might do this is by supporting chat bots as first-class users, but I think we should push bot/API stuff to Conpherence v3.)

Related Objects

StatusAssignedTask
OpenNone
DuplicateNone
Resolvedbtrahan
Resolvedbtrahan
Resolvedepriestley
ResolvedNone
Resolvedbtrahan
Resolvedepriestley
Resolvedepriestley
Resolvedbtrahan
Resolvedbtrahan
Resolvedbtrahan
Resolvedbtrahan
Resolvedbtrahan
Resolvedepriestley
Resolvedepriestley
Resolvedbtrahan
Resolvedbtrahan
Resolvedbtrahan
Resolvedbtrahan
Resolvedbtrahan
Resolvedbtrahan
Resolvedbtrahan
Resolvedbtrahan
Resolvedbtrahan
Resolvedbtrahan
Resolvedbtrahan
Resolvedbtrahan
Resolvedbtrahan
Resolvedbtrahan
Resolvedepriestley
Resolvedepriestley
ResolvedNone
Resolvedepriestley
ResolvedNone
ResolvedNone

Event Timeline

epriestley raised the priority of this task from to Normal.
epriestley updated the task description. (Show Details)
epriestley added a project: Conpherence.
epriestley added subscribers: chad, btrahan, epriestley.

I've been thinking about this a little, and wonder if there is actually a pretty simple way forward. There would be essentially two pieces.

  • Rooms can select a Feed Query to show events from.
  • Participants can mute that Query for themselves, per room basis.

This puts the onus more on improving Feed's ApplicationSearch abilities to provide proper filtering and context. For example maybe you have a "Photos Team Eng" Room and just want Feed Stories with Projects "Photos" and only for Applications "Maniphest", "Differential", and "Diffusion".