moho shows who is composing on Matrix, Discord, Kick and Sneedchat. On IRC it shows
nobody, ever, and sends nothing - the +typing client tag is neither requested nor
emitted (backend/irc.rs:703 lists the capabilities asked for; message-tags is
among them, which is the half this needs).
IRC has had this for a while now and the clients people compare moho to support it:
it is a tag on an empty TAGMSG, gated on message-tags, and servers without it are
unaffected.
What is needed
Send @+typing=active TAGMSG while composing and =done on send or on stopping,
rate-limited the way the spec asks - a keystroke is not an event.
Read the same tag from others and feed it into the typing state the client already
keeps per buffer (typingByBuffer).
Nothing at all where the server does not offer message-tags, which is the ordinary
case on older networks and must stay silent rather than sending a stray TAGMSG.
Done looks like: the same "somebody is typing" line IRC's own modern clients show.
Reference: Halloy, Goguma, and the +typing client tag.
moho shows who is composing on Matrix, Discord, Kick and Sneedchat. On IRC it shows
nobody, ever, and sends nothing - the `+typing` client tag is neither requested nor
emitted (`backend/irc.rs:703` lists the capabilities asked for; `message-tags` is
among them, which is the half this needs).
IRC has had this for a while now and the clients people compare moho to support it:
it is a tag on an empty TAGMSG, gated on `message-tags`, and servers without it are
unaffected.
**What is needed**
- Send `@+typing=active` TAGMSG while composing and `=done` on send or on stopping,
rate-limited the way the spec asks - a keystroke is not an event.
- Read the same tag from others and feed it into the typing state the client already
keeps per buffer (`typingByBuffer`).
- Nothing at all where the server does not offer `message-tags`, which is the ordinary
case on older networks and must stay silent rather than sending a stray TAGMSG.
**Done looks like:** the same "somebody is typing" line IRC's own modern clients show.
Reference: Halloy, Goguma, and the `+typing` client tag.
+typing sent as a TAGMSG and read back the same way, gated on message-tags, feeding the same typing event every other backend emits. Six-second expiry, kept per buffer so one person stopping does not clear the others, and never opening a conversation that does not already exist — a stranger typing at you should not put a window on screen before they have said anything.
Verified live on Libera with a scratch client at the other end: the probe's @+typing=active TAGMSG showed as "mohoprobe3 is typing…" and cleared when it stopped; moho's own send arrived at the probe as @+typing=active TAGMSG mohoprobeB.
Worth knowing: this only worked after fixing the capability bug in the same commit — CAP ACK puts its list in the parameter before the trailing one, and moho read the trailing one, so no capability from any server had ever been recorded. See #129.
Finished — https://git.salastil.com/Salastil/nobilis/commit/d888104 and https://git.salastil.com/Salastil/moho/commit/7e9f07b
`+typing` sent as a TAGMSG and read back the same way, gated on `message-tags`, feeding the same typing event every other backend emits. Six-second expiry, kept per buffer so one person stopping does not clear the others, and never opening a conversation that does not already exist — a stranger typing at you should not put a window on screen before they have said anything.
Verified live on Libera with a scratch client at the other end: the probe's `@+typing=active TAGMSG` showed as "mohoprobe3 is typing…" and cleared when it stopped; moho's own send arrived at the probe as `@+typing=active TAGMSG mohoprobeB`.
Worth knowing: this only worked after fixing the capability bug in the same commit — `CAP ACK` puts its list in the parameter before the trailing one, and moho read the trailing one, so **no capability from any server had ever been recorded**. See #129.
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.
moho shows who is composing on Matrix, Discord, Kick and Sneedchat. On IRC it shows
nobody, ever, and sends nothing - the
+typingclient tag is neither requested noremitted (
backend/irc.rs:703lists the capabilities asked for;message-tagsisamong them, which is the half this needs).
IRC has had this for a while now and the clients people compare moho to support it:
it is a tag on an empty TAGMSG, gated on
message-tags, and servers without it areunaffected.
What is needed
@+typing=activeTAGMSG while composing and=doneon send or on stopping,rate-limited the way the spec asks - a keystroke is not an event.
keeps per buffer (
typingByBuffer).message-tags, which is the ordinarycase on older networks and must stay silent rather than sending a stray TAGMSG.
Done looks like: the same "somebody is typing" line IRC's own modern clients show.
Reference: Halloy, Goguma, and the
+typingclient tag.Finished — https://git.salastil.com/Salastil/nobilis/commit/d888104 and https://git.salastil.com/Salastil/moho/commit/7e9f07b
+typingsent as a TAGMSG and read back the same way, gated onmessage-tags, feeding the same typing event every other backend emits. Six-second expiry, kept per buffer so one person stopping does not clear the others, and never opening a conversation that does not already exist — a stranger typing at you should not put a window on screen before they have said anything.Verified live on Libera with a scratch client at the other end: the probe's
@+typing=active TAGMSGshowed as "mohoprobe3 is typing…" and cleared when it stopped; moho's own send arrived at the probe as@+typing=active TAGMSG mohoprobeB.Worth knowing: this only worked after fixing the capability bug in the same commit —
CAP ACKputs its list in the parameter before the trailing one, and moho read the trailing one, so no capability from any server had ever been recorded. See #129.