Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handle message receipts #141

Open
gferon opened this issue Mar 20, 2023 · 2 comments
Open

Handle message receipts #141

gferon opened this issue Mar 20, 2023 · 2 comments
Milestone

Comments

@gferon
Copy link
Collaborator

gferon commented Mar 20, 2023

And mark messages as seen/read in the store.

@gferon gferon added this to the 0.6.0 milestone Apr 19, 2023
@gferon gferon modified the milestones: 0.6.0, 0.7.0 Feb 24, 2024
@aeblyve
Copy link
Contributor

aeblyve commented Apr 11, 2024

I might be able to find the time to take a look at this. It /appears/ to be a more simple project:

  1. When a message is received, queue up a message receipt, and send it in a resilient way (avoid a bug where the receipt doesn't get sent because of hardware shutdown etc). Maybe this should be more of a client-exposed feature, i.e., implement message.acknowledge or acknowledge(message_id)?
  2. When receiving a receipt, mark the message as read.

Group chats might complicate things a bit, I am not sure.

Anything I need to know/read before hacking?

@gferon
Copy link
Collaborator Author

gferon commented Apr 12, 2024

Sounds good, any help is appreciated!

w.r.t the API, you're definitely right that presage would benefit from having a queue of messages that are waiting to be sent and this is kind of the reason why we currently don't have this (read receipts). Sending messages interleaved with receiving messages, especially when syncing, makes everything dead slow.

If you feel up for it, maybe we can start by adding a method in the public API like you suggested? Something like Manager::mark_message_as_read(id)?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants