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.)