element-hq / element-meta

Shared/meta documentation and project artefacts for Element clients
66 stars 11 forks source link

Add ability to mark messages unread #347

Open colans opened 7 years ago

colans commented 7 years ago

As in other messaging applications, it would be nice to mark a particular message in a room as unread, returning to the state before it was read. This is helpful for when you need a future reminder to do something, or you didn't have a chance to read everything up to the present, and would like to move the unread marker back.

So when clicking on the 3 dots to open the message menu, ideally there would be an item entitled Mark unread.

Amendment (2021-11-30): I'd be fine with being able to mark the entire room/conversation unread. Signal did this, and it works well enough for me so I believe it could work here as well, even though it would be slightly less than optimal.

Remaining tasks:

uhoreg commented 7 years ago

Being able to "star" messages (#2938) might be better for being able to find something later. But I can see how it could be useful to "mark as unread from this point forward" if, say, you started reading something but decided you want to read it later instead.

colans commented 7 years ago

Makes sense. Let's keep these as two separate issues.

MurzNN commented 6 years ago

Star and Mark unread are different things, Stars can't replace unread marker, because very often I open room, see long messages and have no time to read whole messages, so I want to switch room and read it later. But if I go to another room - unread marker will disappear and I don't bethink that room have unread message.

nunoperalta commented 5 years ago

I completely agree with implementing this feature.

And, if possible, allow choosing a message (either right-click or long-tap on a message I choose) and "Mark Unread from Here". Skype has this functionality.

Sometimes I read messages my colleague sent, but I don't have time to reply right now. So, I want to be able to mark as unread from where I need to reply, and reply later.

Throne3d commented 5 years ago

(Copied from https://github.com/vector-im/riot-web/issues/8666#issuecomment-464410039, where I put it first:)

From #riot-web:matrix.org:

Throne3d, 02:35 Discord uses alt+clicks to let you manually mark some point read/unread, so you can move your unread marker to save your place if you're reading history (it's not very well advertised as a feature) I find that very useful – maybe it'd be a good thing to add wrt this?

(If you alt+click the last message in a channel, it marks the whole channel as read – in fact, it marks everything up to, and including, the message you click, as read, and everything after it as unread.)

jamesmontalvo3 commented 5 years ago

I'm using riot.im regularly. I also use other proprietary chat programs regularly. Lack of "mark unread" in riot is the one thing that makes using it very painful. I have several coworkers who refuse to use riot for this reason.

MurzNN commented 5 years ago

@jamesmontalvo3 can you describe which other chat apps can mark messages as unread?

jamesmontalvo3 commented 5 years ago

Slack and every email client.

nunoperalta commented 5 years ago

and Facebook Messenger, WhatsApp, Skype, Linked In, Signal, and pretty much every other email/chat client I know.

t3chguy commented 5 years ago

I'm struggling to find this in WhatsApp and Facebook, unless you mean mark conversation as unread, which is very different to mark individual messages as read /unread

jamesmontalvo3 commented 5 years ago

Just making sure we’re talking about the same thing: riot shouldn’t allow individual messages marked unread; it should allow you to select a message and mark it “unread” which just moves the unread pointer to that message, implying everything before that is read and everything after unread. I’m not expecting specific messages to be unread interspersed with read messages.

t3chguy commented 5 years ago

Do Facebook and WhatsApp have that? I think they just have a mark as unread for the whole chat and I guess it just marks the latest message as unread

nunoperalta commented 5 years ago

Sorry for any confusion. The question was "mark messages", so I listed apps where the "mark unread" is present, whether it is individual or threads. Facebook and Whatsapp just mark whole thread. Riot doesn't even have that function at all.

If Riot could have something like Skype, where we can move the pointer to a specific message, that would be absolutely perfect!

t3chguy commented 5 years ago

I now understand :D That seems reasonable. The only blocker atm is synapse only ever let's that pointer move forward

nunoperalta commented 5 years ago

Thank you. Can we get them to change that? :)

t3chguy commented 5 years ago

Presumably it has its reasons, so maybe we need a way to force, to say to a matrix server that we're explicitly putting it into the past. This would need an MSC so that it's in the spec and not specific to riot/synapse

nunoperalta commented 5 years ago

Even if we could do it in a way that Riot stores an override in a cookie/LocalStorage or so... meaning that Synapse has its own counter, but Riot has an override (per thread), and uses that override instead, if exists. I know this wouldn't be ideal, but would prevent changes in Synapse.

t3chguy commented 5 years ago

But then it would be a riot specific thing, which isn't ideal, many people use other clients too. Best would be to get it into the matrix specification

nunoperalta commented 5 years ago

Fully understand that. But until the specification is created and Synapse implements it, we could have this Riot-specific feature which users have been waiting for a long time. When Synapse implements the better way, Riot could use Synapse instead. Just my suggestion :) Thank you.

colans commented 5 years ago

Would someone kindly create a Synapse issue and post the link to it here? (Assuming it's not there yet, I'd create it and add the link myself, but don't believe I have enough context to open the issue.) Thanks!

turt2live commented 5 years ago

For the time being tracking it here is best - once it lands on the team's radar then issues, MSCs, Synapse implementation, etc will be created.

nunoperalta commented 5 years ago

There is this issue: https://github.com/matrix-org/synapse/issues/2632

turt2live commented 5 years ago

@nunoperalta that's unrelated - it talks more about how clients and servers interact with respect to unread messages, not the feature request of marking messages as unread.

nunoperalta commented 5 years ago

Ok. I created a new one then: https://github.com/matrix-org/synapse/issues/5601

MurzNN commented 5 years ago

Why this feature can't be implemented using current m.fully_read marker?

In Riot user open message menu, choose item "Mark messages as unread from here to down", Riot will send read_markers event to room with selected event id:

{
  "m.fully_read": "$somewhere:domain.com",
  "m.read": "$elsewhere:domain.com"
}

and that's all. Not?

nunoperalta commented 3 years ago

Any update on this? This has been asked already since 2017... This is one of the most basic features a Chat system like this needs to have. Thank you.

colans commented 3 years ago

How much would it cost to sponsor this feature to move it up in the roadmap?

aaronraimist commented 3 years ago

@colans I would guess emailing contact-sales@element.io would get you talking to the right people

MightyCreak commented 3 years ago

Maybe there is a bounty system in place? This feature doesn't have to be implemented by a dev from the Matrix team

nunoperalta commented 3 years ago

This feature doesn't have to be implemented by a dev from the Matrix team

The comments vector-im/element-meta#347 and vector-im/element-meta#347 seem to say that Matrix/Synapse needs an implementation.

aaronraimist commented 3 years ago

@MightyCreak yes a public bounty can be added using websites like https://www.bountysource.com/. They had asked how to move it up in the roadmap. The roadmap is for the Element team so to move it up in the roadmap that’s who you need to talk to.

@nunoperalta yes that’s true however Synapse is also open source. Anyone can contribute code to Element and anyone can contribute code to Synapse so anyone could implement this feature.

colans commented 3 years ago

I've sent a message to the above address, and was informed that I'll hear back from the right people soon. If it's not a small amount that we can just pay ourselves, I'll ask if they'd be open to to bountifying it. Then all of us in here can contribute.

yousefamar commented 3 years ago

@colans did anything ever come from that? This is a feature I'd gladly put money behind too

colans commented 3 years ago

Here's the timeline:

On 2020-12-22, 14:36:24, I wrote:

How much would it cost to sponsor the feature Add ability to mark messages unread to move it up in the roadmap?

On 2020-12-23 07:11, Element Sales wrote:

Thank you for reaching out!

I've reached out internally to get some details on this for you. Should my colleagues already be on holiday, you might not get a response until the new year.

In the meantime, I wish you a wonderful time over the holidays and a happy new year!

On 2021-02-09 15:12, I wrote:

Any updates on this? I still haven't heard anything. Thanks!

...and I haven't heard anything since. My plan, once I got in touch with them, was to suggest that they open it to a bounty so that any folks here that are interested could contribute. But it seems like they have no interest in paid work, which contradicts what they say in the FAQ:

If you would like to sponsor the team as a corporation, or are interested in paying for prioritised or custom development, please get in touch.

It's disappointing that they're not open to paid work from the community, which is normally how open-source software gets funded. If they're getting enough cash from other sources, I suppose they have no reason to care. Sigh. :disappointed:

If anyone from the company is reading this, please update the FAQ to say that you're no longer interested in sponsored features, fixes, etc. to avoid confusion. Thanks.

t3chguy commented 3 years ago

it seems like they have no interest in paid work

The issue is we are swamped with paid work already compared to the engineering resources we have, so are having to prioritise existing recurring contracts rather than new one-offs, your query should definitely have been responded to and not just ignored though

I suppose they have no reason to care

Its really not great to say we don't care about open source; https://merge-chance.info/target?repo=matrix-org/matrix-react-sdk - you could easily put money forward to a community dev to implement something well and the chance of it accepted is very high,

you're no longer interested in sponsored features, fixes, etc. to avoid confusion

This is just false, it'd just be that the timeline of those would be longer than you may wish for, the fact that your request (sample size of 1) fell through a crack whilst a company is growing by 50% is a really poor baseline.

colans commented 3 years ago

Its really not great to say we don't care about open source

I'm not talking about open source, I'm talking about having folks sponsor features. Obviously you're committed to open source, which is one of the reasons why I love the work you've all been doing.

I sent two e-mails, and got nothing back. Agreed, simply telling me what you told me now would have been nice, but without a response, what are we supposed to think? I appreciate the explanation. Thank you for clearing it up. If you're too busy to even respond to these requests, it would be great if you could at least update the FAQ explaining what you just told me.

This is just false, it'd just be that the timeline of those would be longer than you may wish for, the fact that your request (sample size of 1) fell through a crack whilst a company is growing by 50% is a really poor baseline.

Fair enough. I'll admit I was being overly emphatic (sorry), but in the future, please communicate (and keep up the great work).

t3chguy commented 3 years ago

I've raised it internally for someone to hopefully get back to you soon, we should definitely not be too busy to respond to sales queries, only engineering resources are really stretched. Hopefully you'll finally get a reply soon, it shouldn't have taken this long nor this route

yousefamar commented 3 years ago

The issue is we are swamped with paid work already compared to the engineering resources we have

Wouldn't the public bounty suggestion solve this problem? Either way, IMO, this is a good problem to have — you can now hire more developers. In fact, it sounds like you should be preemptively hiring because this is only going to get worse. If the issue is the overhead in managing all that, I think these bounty programmes are exactly suited for that, as you can use them to incentivise external developers to contribute, right? I don't think it's a good idea for non-maintainers to manage a bounty programme on your behalf, that's my 2 cents.

t3chguy commented 3 years ago

Wouldn't the public bounty suggestion solve this problem?

Yup, quite a few issues in this bug tracker alone were sponsored and successfully completed by bounties placed on sites like BountySource

you can now hire more developers.

We are trying... https://www.linkedin.com/feed/update/urn:li:activity:6773564228063293440/

yousefamar commented 3 years ago

Ah, awesome! I'll circulate your ad in my network too. Basically, I want to pay you, but can't yet it seems. Hopefully I can when your team grows :)

t3chguy commented 3 years ago

Basically, I want to pay you, but can't yet it seems.

image

colans commented 3 years ago

I just had some back and forth e-mails with the sales folks (thanks to @t3chguy for getting this rolling again), who said they'll get back in touch after discussing internally. I suggested either a traditional or reverse bounty (i.e. crowdfunding) as we discussed both of those options here. I'll provide updates as they're available.

A traditional bounty probably makes more sense if the company has more cash than developers as the moment.

colans commented 3 years ago

I also promoted the call for developers on LinkedIn. :smile:

colans commented 3 years ago

On 2021-03-10 12:11, Element Sales wrote:

After speaking with the team I've had some suggested time frames around how long a piece of work like this would take on our side. We're looking at about 2 weeks work (we cannot guarantee it won't take longer than this). The cost for this would be $1,500 per day so you'd be looking at about $15,000 in order to sponsor moving this up the roadmap.

As an organisation, Element will not crowdfund to do this. To move forward, we will need an idea from you how much you can contribute towards this figure and from there we can see what type of plan we can put together to potentially move this up the road map.

I hope this clears things up in terms of what a sponsorship looks like and how we can potentially move forward together!

I'm not sure where this leaves the community pooling resources. :man_shrugging:

d33tah commented 2 years ago

I skimmed through the comments here and wanted to underline something: lack of presence for this feature can and will affect the mental health of users. I'm not exagerrating. When using Element, it's way more often than you imagine that you get a message sometime late during the day and have to decide whether read it and react immediately or skip it and regret because it was important. Given the pandemic, it's something that has even more importance. Especially since there's no way that I can see to turn off read notifications (see vector-im/element-web#2527), so it's a pretty nasty combination, creating unnecessary stress and miscommunication.

ShadowJonathan commented 2 years ago

There is a "partial" spec support MSC for this at MSC2867, which can mark whole rooms as unread. While not a complete solution, I think that MSC is simple to implement, and can "take the edge off" on the stress that the absence of this feature can cause. I most often find myself reaching for a feature like this, after years of telegram, (some) whatsapp, and discord usage.

gwpl commented 2 years ago

The other way to to could be to be able to "bookmark" some messages and they appear.then in "saved"/"bookmarked" (as.on slack)

On Tue, 30 Nov 2021, 14:25 Jonathan de Jong, @.***> wrote:

There is a "partial" spec support MSC for this at MSC2867 https://github.com/matrix-org/matrix-react-sdk/pull/6314, which can mark whole rooms as unread. While not a complete solution, I think that MSC is simple to implement, and can "take the edge off" on the stress that the absence of this feature can cause. I most often find myself reaching for a feature like this, after years of telegram, (some) whatsapp, and discord usage.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <vector-im/element-meta#347>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABWBW3PXN6QD4CDS2HPDITUOTGDNANCNFSM4DQRKHTA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

ShadowJonathan commented 2 years ago

That's a whole separate feature; vector-im/element-meta#319

colans commented 2 years ago

As the person who opened this issue, I updated the issue summary to state that I'd be fine with marking the whole room/conversation unread.

SethFalco commented 2 years ago

When or if this is implemented, it would be nice if we could hold ALT and click a message to mark all messages up-to that one selected as unread.

Both Discord and Slack have this behavior.

With both Discord and Slack, it works like a marker. For example, it doesn't matter where the last unread message was, when I hold ALT and click, it will mark anything above it as read, and anything below it as unread. (Even if messages above it were previously unread.)