Conversation
|
Never mind, I think I understand what problem this is also trying to solve. |
|
@SadieCat This spec does that and defines |
|
This looks good! Implementations: |
|
cc @kylef : can |
|
From implementing this in Ergo (ergochat/ergo#2044) and discussion with @emersion, two changes:
|
|
@slingamn its not quite the same thing. They have different semantics as BACKGROUND/FOREGROUND are (client -> bouncer) whereas AWAY/UNAWAY is (client -> bouncer -> server). BACKGROUND/FOREGROUND do not leak the away state of the client to other clients. If that could be a privacy concern for a user I do not know. In Palaver "auto away" is not enabled by default. BACKGROUND/FOREGROUND will be sent for supporting servers regardless of the user's "auto away" preference as it is for managing notification state and not exposing an away state. Slightly related, in ZNC (using the clientaway module), a per-client away state can be configured, where if all clients have decided to be away then the away can (optionally) be propagated to the upstream server (to be visible by other clients). I presume that is the desirable behaviour with the proposed specification and what we might see in Ergo utilising |
With a mobile application, you may also be going away/unaway very frequently and may not want this to by directly visible to others IRC users when jumping back and fourth between applications. In this context if AWAY/UNAWAY is a proposed alternative to BACKGROUND/FOREGROUND, it may be desirable for server implementations to offer some form of "delay" so that if a client aways and unaways within 10 seconds for example, it is not the user's away state. |
|
Thanks, that makes sense. What information do |
extensions/pre-away.md
Outdated
|
|
||
| If the client's nickname was not already present on the server, then `AWAY` pre-registration sets the away message but does not inhibit reporting of the change in nickname status, e.g. via [monitor][monitor]. | ||
|
|
||
| Clients receiving `*` as an away message (for example, in `301 RPL_AWAY` or [away-notify][away-notify]) SHOULD treat it as indicating that the user is not present for an unspecified reason. Servers MAY substitute a human-readable message for the `*` if it would otherwise be relayed as an away message. |
There was a problem hiding this comment.
Can you clarify whether this means a client receiving it for themself or other users? If it's the latter then this gonna cause weird behaviours on servers that don't support the spec. Might be best to require servers to rewrite it to something sensible?
There was a problem hiding this comment.
If I changed it to say "Clients having negotiated the capability", would that alleviate concerns about behavior on servers not supporting the spec?
|
I think the language is more clear now:
|
The IRCv3 spec is stalled, so let's just ship a vendored extension for now. References: ircv3/ircv3-specifications#514
|
Now replaced with the draft spec! |
jesopo
left a comment
There was a problem hiding this comment.
this functionality isn't super important to me, but it seems to be to others and i have no objections to it. lgtm
|
Thanks a lot! |
|
That USER bitmask in rfc2812, tho :) |
|
As a minor (dont let this block anything) bikeshed before this is ratified: given that |
This comes out of ircv3/ircv3-ideas#96 . It provides a mechanism to indicate that a new connection was not initiated by an end user and does not indicate that the end user is present. The core objective is to work with auto-away systems, but the mechanism is potentially more general.