Discord: status beyond online/idle, and friend requests #79

Closed
opened 2026-09-02 00:04:21 -04:00 by Salastil · 1 comment
Owner

Status. presence_payload (discord.rs:3868) and apply_status (:3890) collapse everything to online or idle; the frontend type agrees (store.ts:993). No do-not-disturb, no invisible, no custom status. Invisible in particular is the one people actually want from a third-party client.

Friend requests. Only accepted friends (type == 1) are surfaced; incoming and outgoing requests and blocks are filtered out at :2658-2659, and RELATIONSHIP_ADD/REMOVE are unhandled. addDiscordFriend can send one, but an incoming request is invisible and cannot be accepted.

**Status.** `presence_payload` (`discord.rs:3868`) and `apply_status` (`:3890`) collapse everything to `online` or `idle`; the frontend type agrees (`store.ts:993`). No do-not-disturb, no invisible, no custom status. Invisible in particular is the one people actually want from a third-party client. **Friend requests.** Only accepted friends (`type == 1`) are surfaced; incoming and outgoing requests and blocks are filtered out at `:2658-2659`, and `RELATIONSHIP_ADD`/`REMOVE` are unhandled. `addDiscordFriend` can send one, but an incoming request is invisible and cannot be accepted.
Salastil added the featurelow priority labels 2026-09-03 13:11:28 -04:00
Author
Owner

Finished — https://git.salastil.com/Salastil/nobilis/commit/89b180e and https://git.salastil.com/Salastil/moho/commit/38458b6

Four statuses (online, idle, do-not-disturb, invisible) on both the gateway presence and the account setting, with Matrix told whatever it can make of them. Friend requests in both directions now travel with the friends list, each labelled, with accept/decline (and cancel, for your own) in the Join panel; RELATIONSHIP_ADD/REMOVE keep it right while the client runs.

Verified: the four statuses round-trip through the daemon and Matrix accepts each mapping; a bogus one is refused. The friends list carries the new kind on all 21 entries.

Not verified: this account has no pending requests, so the incoming/outgoing rows and the accept path were not exercised against a live request.

Finished — https://git.salastil.com/Salastil/nobilis/commit/89b180e and https://git.salastil.com/Salastil/moho/commit/38458b6 Four statuses (online, idle, do-not-disturb, invisible) on both the gateway presence and the account setting, with Matrix told whatever it can make of them. Friend requests in both directions now travel with the friends list, each labelled, with accept/decline (and cancel, for your own) in the Join panel; `RELATIONSHIP_ADD`/`REMOVE` keep it right while the client runs. **Verified:** the four statuses round-trip through the daemon and Matrix accepts each mapping; a bogus one is refused. The friends list carries the new `kind` on all 21 entries. **Not verified:** this account has no pending requests, so the incoming/outgoing rows and the accept path were not exercised against a live request.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Salastil/moho#79