-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AFK/Status Follow-up #5590
Comments
I dislike making it easier for people to use the "Away" status to lie about being away. At least rename "Away" to "Busy".
Reserving a space character, while possible, seems a bit subtle to me. I don't have a problem with
I did this a while ago: 4d80d4b And I already talked about this in #5587 (comment)
PMs should probably also clear the Idle state.
Don't we already distinguish these? 4d80d4b#diff-1b8e46b915ffe29285ad921677061fc9R275
Probably not a bad idea, but also probably should be restricted to public rooms.
I'd prefer for it to be a part of showjoins. Maybe custom message only.
That's probably a good idea.
Rank/group could be pills? Like how Discord does them.
Would make more sense to have it settable via usercard.
Seems like excessive configuration. Ideally we let it be 15 minutes, and give another solution for the "still online but PS's tab isn't focused" situation.
I don't think any other chat client does this. Seems unnecessarily complicated. |
I agree with the comments Zarel made, except I really think splitting away into two hard types is overcomplicating the issue. While I did add some extra things that remove the automatic idle, I saw this mostly as a courtesy. If we're making a busy status type (which we could) it should focus on blocking PMs/challenges/highlights/tournaments and that sort of thing, and not be a different kind of away. Regarding making pms should you as back, this was how I had it originally but pre wanted to be a lurker and still PM people. |
Actually I guess I suppose it's fine to have a specified difference between manual and auto away. But if we do that, I would also want to make the busy status behave like the afk statuses with a enum character for consistency. That was we could also add checks for users having a busy status elsewhere to suppress some notifications and messages. |
Maybe Busy -> Do not Disturb to make it clear that one should actually block messages (which was the intent) |
Maybe Do not disturb / Busy should disable notifications (highlights, tournaments, PMs, etc..) instead of blocking them? |
DND blocking challenges I can understand, but I'm not sure if it should block PMs. Discord's doesn't, after all. |
I like JetOU's idea of disabling notifications. |
Yeah personally I would say disable notifs on top of blocking challenges.
What do you all think?
|
Perhaps 'Away' is the wrong name for the state. 'Unavailable' /'Busy' / 'Away' / 'Do Not Disturb' - I don't really care what we call it, the concept we're going for is: "This user has explicitly indicated theyre perhaps not watching chat/going to respond in a prompt manner, maybe try back later or find someone else"
Possibly? One advantage people like about '(Idle)' status is that it is the one status that definitely guarantees a user was not active for a fixed time. I'm not super opinionated that we need to preserve that, just something to keep in mind. The point is - I think we want two 'unavailable' states - mark me back immediately and mark me back only when I say so.
Its for symmetry with group/ranks. And if we change the filters to exclude symbols from the first character of statuses, you can still have bots use
Um, yeah. This point was motivated by those comments... This isn't complete though, we still want a rank filter.
'Idle' sure (does it not already?). 'Unavailable', I'd rather not.
This is for language around reporting a name (help tickets). We haven't updated that.
Yup, SG. We discussed this briefly over VC with some US members but this need to be vetted more broadly.
Should showjoins also include renames? Should they all be condensed on one line?
Any thoughts around colors or icons?
Doh. Beauty! <3 Will implement.
Good point. I didn't realize you could set avatar that way, I agree the text in the usercard should be content-editable as well.
Discord is 10 minutes (600s) FWIW. I'd support 15. Bumba was the one who wanted 1hr+ before I talked him down to 30/60.
Such as?
OK. It was a suggestion that came up in chat, doesn't seem too important, just wanted to be thorough.
Right now the types are amorphous and don't play well with each other. I think we need to decide what we want to achieve and better tailor our statuses to that.
Many devs want this. If we have distinction between auto and manual idle this no longer becomes an issue - auto idle marks you back on PMs, manual doesnt. I have two concerns with 'Busy' status:
makes it super obvious who TF is actually around to talk to...
I agree, if we have a 'Busy' state it would make sense to have a different symbol than 'Away'/'Idle'. However, I feel Maybe 'manual-Away' is really just a Busy-status that only gets cleared on |
Consolidating what was discussed on our Discord and smogon/pokemon-showdown-client#1316: RESOLVED
POSSIBLY RESOLVED?
UNRESOLVED
|
Agree. in the code base they're also treated separately, so I don't see why it shouldn't be the same in the commands. Also it doesn't make sense for
Former. being explicit is almost always better.
Idle === Busy. It's really unnecessary to sort them, maybe if you really want the color coordination.
Maybe |
Yeah, this is mostly what I want. My OCD wants all the symbols to line up. my instinct is idle then busy, because yellow then red. which makes me ask - should we have a green symbol for online (will it look odd that only 2 out of the 3 visible states in the user list have symbols?) |
I am really annoyed at people for not understanding that this has nothing to do with explicitness. They're both equally explicit.
I think Idle is a type of Busy status. Therefore I prefer
Did we even decide we needed presets? This seems premature.
This also seems premature.
I'm fine with sorting them so the color-icon doesn't look weird. I don't want a green symbol for online. It would make sense if we also show offline users in the list, but we don't.
I don't understand the question here. Why are we considering a rename of this command? |
Maybe if no one agrees/understands it's because its not a good notation... Idle isnt a type of Busy status - you're not Busy because youre Idle. Idle doesnt blockpms/blockchallenges like Busy does. They denote two different states/ideas.
There is still an interest from US to pursue this, and while I would only consider implementing it after everything else, I'd rather we carve out a place in our design now so that if we do end up implementing them it can be done quickly as opposed to having to go back to the drawing board.
Once again, I'd rather design with the future in mind. Obviously they are going to come later on, but let's design with them in mind of now.
Online -> Idle -> Busy?
OK.
Because this is literally something you requested, though no one else really feels like we need to/should. If you also don't remember/don't want to rename it, I'm more than happy to call this resolved. |
You totally are busy because you're idle. It makes sense to me. I'm really modeling it as:
It's also relevant that I feel like there should be an "Away (reason: unspecified)" status, and that Busy is that status.
It's more that it doesn't seem like it would block anything. It wouldn't need protocol changes, just a command.
I still think "emoji in status" is a good model, but I'm open to alternatives.
I'd put Busy first.
I'm not a fan of Like, my model here is, "would doing everything else here make it harder to come back to this later?" and the answer for presets and a |
OK, here's what I think the remaining work is: Server
Client
|
This isn't a democracy. I'm not going to allow this without a bottom status unless someone gives me a good reason why we shouldn't have an "Away (unspecified reason)" status. If you don't think "Busy" is a good name for it, we can call it something else.
Isn't this already done?
If we change the idle timeout, we should probably allow all activity to wake PS, instead of needing to specifically send a message. I'm sure we've already realized that clicking a username should be enough, but so should just mousing over the window. I'm not particularly happy with the popup in general, but it would definitely be really bad if it were 15 minutes, and also would sort of defeat the purpose if it only happened once per session instead of every time. The popup exists to deal with a problem that some users don't want to be seen as idle if they're at their computer and responding to highlights. Do we have a better solution?
This definitely wouldn't need contenteditable, just a regular textarea. Heck, just an Edit button would probably be best.
Well, this part is pretty hard to implement with the newly specced protocol. I'd be okay with punting it. Everything else sounds good to me. |
Spoiler: my previous post was meant to be a forcing function. Seems to have worked :)
Bottom status is Online though, no? As for a bottom AFK status - thats kind of what I was originally going for with the Away vs. Busy vs. Idle split from the very first design. IDRC though, I just want to ship. Changed to
You're right.
Any activity on the connection causes a wake. Do we want mousing over the window to send a command to the server to wake?
? How does the popup affect this in any way? The popup was intended to explain to users why the heck they just went grey, it doesnt prevent them from going idle or anything.
Is contenteditable seems to be analogous to how the avatar-in-usercard design works (theres no 'change avatar' button). I was trying to keep the same design language.
Ah true. |
Probably throttled by "five minutes since last network activity", but yes.
The way @bumbadadabum explained it to me, it was also to remind them they needed to do something if they didn't want to go idle. Actually, his original idea was to do it a few minutes before going idle, for that reason.
I would probably have added an "edit" icon over the avatar if I had that kind of free time. I'd definitely want to add an Edit button/icon next to the status, although yes, clicking the status should also initiate editing. That's still different from actual contenteditable (I would honestly lean towards an invisible |
At this point why not just move setting idle to the client? Would also deal with the code to stop bots going idle in (imo) a much nicer way. |
That's probably a pretty good idea, but I've also wanted to add activity pings to PS, too. We have a lot of zombie connections because SockJS says they have a heartbeat but they actually don't. |
Proposal
The initial launch of AFK/statuses has revealed some design inconsistencies and opportunities for improvements.
Online
,Idle
,Away
,Offline
. A user becomesIdle
after a period of inactivity as determined by the server and can return from theIdle
state by performing any action whatsoever. TheAway
state only occurs manually, through use of the/away
command (and its aliases:/afk
,/brb
,/busy
), and a user only leaves this state through the use of/back
. No other action in theAway
state causes a user to leaveAway
(including joining/leaving a room or chatting in a chat room*, though these would cause you to leave theIdle
state).@
to be a symbol denoting the state of the user, which will currently either be'!'
forIdle
/Away
and' '
forOnline
, followed by the user's status message. The user's status is either inferred from the command used to mark the user asAway
(/brb
->!BRB
) or is whatever the user specified (/away eating
->!eating
).'!'
or' '
), and the message. The state character will currently be displayed on the client as a tag ('!'
->'(Away)'
,' '
->'Online'
), so'!Idle'
->'(Away) Idle'
and' LF shroomish'
->'(Online) LF shroomish'
. Instead of tags, the client may display the state symbol as a orb or in a different color etc. The state symbol also determines the color and user list position on the client -'!'
grays out the user and sorts it to the bottom of the user's respective rank.'/busy'
no longer has special meaning and is now simply an alias for'/away Busy'
(meaning it also sets the'!'
bit and grays the username). Blocking PMs and Challenges are better accomplished through the persistent toggle in the client, and/back
should only clear the users status/away state, not unblock anything.'|'
for protocol reasons, banwords/spoilers, and anything which could be confused with a rank (eg./(global|room|upper|senior)\s*(staff|admin|administrator|owner|operator|mod|moderator|driver|voice|creator)/gi
)*This is up for debate. PMs currently work this way with the
Away
state - users can still chat and be colored in the chat but show up as gray in the userlist. This proposal would extend this to regular chat rooms as well.Tweaks
"Someone is using an offensive username or pokemon nickname"
->"Someone is using an offensive username, status or pokemon nickname"
(needs translation support?)Idle
? At most we should only be doing this once per session (after the first time they've seen the popup they should understand why their name is gray the second time around), but perhaps we should switch to a non-notifying PM to be even less invasive?Moderation
/clearstatus
of users in their room. While/clearstatus
affects a user globally (clears their status in all rooms), it is much easier for users to recover from than being forcerenamed as status is not tied to to identity. Making it much easier for room auth to clear offensive statuses empowers them and means the burden of policing these statuses is more spread out and does not fall exclusively on global staff. If a user continues to require their status to be cleared, Global Staff can namelock/lock the user to prevent them from continuing to abuse the feature, but we would imagine this would occur less frequently./showjoins
can include status changes (perhaps only when a custom message is used, to reduce spamminess), or perhaps a separate/showstatuses
command can be added if we wish to not alter the existing behavior of/showjoins
.*Alternatively, Global Voice and above.
UI
'(Tag)'
as a colored status orb/icon instead a la Discord/MSN ?Away
/Online
state from the Options menu instead of purely through commands./idletimer 900
= becomeIdle
after 15 minutes instead of 30/60minutes). This should be a persistent setting, and also settable in the Options menu./idletimer 0
= disable. Policy TBD: Should Global Staff be allowed to lengthen/disable theirIdle
timer (similar to not being able to disable PMs indefinitely).Away|Idle
users in the userlist (eg."29 users"
->"29 users (5 away)"
)@Zarel @bumbadadabum @HoeenCoder @whalemer
The text was updated successfully, but these errors were encountered: