Sneedchat: Whispers broken #58

Closed
opened 2026-09-01 19:31:45 -04:00 by Salastil · 3 comments
Owner

Currently whispers are not received at all and whispers we send outbound open a DM window which is not intended behavior. Correction in that the command is /w @username not /whisper. The intended behavior is that we highlight the message, put it in italics and make it known that its a whisper. Ditto for outbound messages. The highlight color should be a purple of some sort.

Currently whispers are not received at all and whispers we send outbound open a DM window which is not intended behavior. Correction in that the command is /w @username <message here> not /whisper. The intended behavior is that we highlight the message, put it in italics and make it known that its a whisper. Ditto for outbound messages. The highlight color should be a purple of some sort.
Author
Owner

Finished.

The command was the root of it: /whisper is not a command the site knows, and an unrecognised command is not rejected — it is posted as ordinary text. Every whisper sent from moho went to the whole room with /whisper @name in front of it, which is also why none ever came back: there was never a conversation to reply to. It sends /w now, and /w @name message typed straight into the box works too.

Inbound whispers arrive as ordinary messages with no room attached, and that absence is the only thing marking them — the code was waiting for a separate Whisper frame that does not come. Both shapes are handled now.

They appear in the room rather than a buffer of their own, purple and italic with a "whisper" tag, in both directions. One whisper raises one alert however many rooms carry it.

Finished. - moho b83a7d5 — https://git.salastil.com/Salastil/moho/commit/b83a7d5 - nobilis 615c2ac — https://git.salastil.com/Salastil/nobilis/commit/615c2ac The command was the root of it: `/whisper` is not a command the site knows, and an unrecognised command is not rejected — it is posted as ordinary text. Every whisper sent from moho went to the whole room with `/whisper @name` in front of it, which is also why none ever came back: there was never a conversation to reply to. It sends `/w` now, and `/w @name message` typed straight into the box works too. Inbound whispers arrive as ordinary messages with no room attached, and that absence is the only thing marking them — the code was waiting for a separate `Whisper` frame that does not come. Both shapes are handled now. They appear in the room rather than a buffer of their own, purple and italic with a "whisper" tag, in both directions. One whisper raises one alert however many rooms carry it.
Author
Owner

Follow-up: the comma was the missing part.

/w @Fishtank Observer, aaa — the comma is required rather than tidy. Sneedchat names are display names and contain spaces, so without it the site cannot tell where the name ends and the message begins, and takes only the first word as the target.

This module already used that convention on the other path — as_reply writes @Name, because that is what the site's own client writes — while the whisper path was written as though a name were one word, and its comment claimed a name with a space "cannot be whispered", stating a limit of the code as though it were a limit of the protocol.

nobilis 1d035c4 — https://git.salastil.com/Salastil/nobilis/commit/1d035c4

Follow-up: the comma was the missing part. `/w @Fishtank Observer, aaa` — the comma is required rather than tidy. Sneedchat names are display names and contain spaces, so without it the site cannot tell where the name ends and the message begins, and takes only the first word as the target. This module already used that convention on the other path — `as_reply` writes `@Name,` because that is what the site's own client writes — while the whisper path was written as though a name were one word, and its comment claimed a name with a space "cannot be whispered", stating a limit of the code as though it were a limit of the protocol. nobilis 1d035c4 — https://git.salastil.com/Salastil/nobilis/commit/1d035c4
Author
Owner

Inbound whispers: the key on the wire is whisper, and the field asking for it said Whisper. serde's rename is case-sensitive, so every whisper this account ever received fell into the undecoded bucket — where a log line named it, and that log line was switched off by the default filter.

nobilis c1ef299 — https://git.salastil.com/Salastil/nobilis/commit/c1ef299
nobilis 1f339a8 — https://git.salastil.com/Salastil/nobilis/commit/1f339a8 (the daemon's own logs now reach the frontend at all, which is what made this findable)
nobilis 919a7c3 — https://git.salastil.com/Salastil/nobilis/commit/919a7c3 (whispers were written to general while the buffer is #general, which is the "new chat buffer" that opened)
nobilis 1d035c4 — https://git.salastil.com/Salastil/nobilis/commit/1d035c4 (the comma that ends a whispered name)

Outbound is confirmed working. Inbound wants one more whisper to confirm.

Inbound whispers: the key on the wire is `whisper`, and the field asking for it said `Whisper`. serde's rename is case-sensitive, so every whisper this account ever received fell into the undecoded bucket — where a log line named it, and that log line was switched off by the default filter. nobilis c1ef299 — https://git.salastil.com/Salastil/nobilis/commit/c1ef299 nobilis 1f339a8 — https://git.salastil.com/Salastil/nobilis/commit/1f339a8 (the daemon's own logs now reach the frontend at all, which is what made this findable) nobilis 919a7c3 — https://git.salastil.com/Salastil/nobilis/commit/919a7c3 (whispers were written to `general` while the buffer is `#general`, which is the "new chat buffer" that opened) nobilis 1d035c4 — https://git.salastil.com/Salastil/nobilis/commit/1d035c4 (the comma that ends a whispered name) Outbound is confirmed working. Inbound wants one more whisper to confirm.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Salastil/moho#58