Unread state is entirely local — Buffer.last_activity_ts and nothing else. Discord's read state is never read from READY and never written back; there is no /messages/{id}/ack call and no MESSAGE_ACK handler.
The consequence is the gap most visible to anyone using Discord on more than one device: reading a channel in moho does not clear it on your phone, and reading it on your phone does not clear it in moho. Every channel you have already dealt with elsewhere still looks unread here.
Done looks like: read state seeded from READY, acked on buffer read, and MESSAGE_ACK handled so a read elsewhere clears here. Worth doing together with #49 since both are gateway-adjacent, but this is the one people will notice.
Filed from a protocol coverage survey of the four deployed protocols, 2026-08-29 (moho 1a11250, nobilis 030707f).
Unread state is entirely local — `Buffer.last_activity_ts` and nothing else. Discord's read state is never read from `READY` and never written back; there is no `/messages/{id}/ack` call and no `MESSAGE_ACK` handler.
The consequence is the gap most visible to anyone using Discord on more than one device: reading a channel in moho does not clear it on your phone, and reading it on your phone does not clear it in moho. Every channel you have already dealt with elsewhere still looks unread here.
**Done looks like:** read state seeded from `READY`, acked on buffer read, and `MESSAGE_ACK` handled so a read elsewhere clears here. Worth doing together with #49 since both are gateway-adjacent, but this is the one people will notice.
---
_Filed from a protocol coverage survey of the four deployed protocols, 2026-08-29 (moho `1a11250`, nobilis `030707f`)._
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Unread state is entirely local —
Buffer.last_activity_tsand nothing else. Discord's read state is never read fromREADYand never written back; there is no/messages/{id}/ackcall and noMESSAGE_ACKhandler.The consequence is the gap most visible to anyone using Discord on more than one device: reading a channel in moho does not clear it on your phone, and reading it on your phone does not clear it in moho. Every channel you have already dealt with elsewhere still looks unread here.
Done looks like: read state seeded from
READY, acked on buffer read, andMESSAGE_ACKhandled so a read elsewhere clears here. Worth doing together with #49 since both are gateway-adjacent, but this is the one people will notice.Filed from a protocol coverage survey of the four deployed protocols, 2026-08-29 (moho
1a11250, nobilis030707f).Finished — nobilis
6c7be5a, moho7c81024