* In place of the Help and Settings buttons, add a hamburger menu
dropdown and place the links under there.
* Also in the dropdown is Close All Cameras and Mute All Cameras (if you
have any cams open; the links are hidden if not)
* Also in the dropdown add a Logout button that just links to a new
/logout route in order to unload the page and align with some users'
expectations (not knowing closing out of the chat page was enough to
log out of the room before)
* Bring back "(offline)" indicators when a user is no longer in the
room.
* Deadlock detection: the chatbot handlers will spin off a background goroutine
to ping DMs at itself and test for responsiveness. If the echoes don't return
for a minute, issue a /api/shutdown command to the HTTP server to force a
reboot.
* New admin API endpoint: /api/shutdown, equivalent to the operator '/shutdown'
command sent in chat. Requires your AdminAPIKey to call it. Used by the chatbot
as part of deadlock detection.
* Adjust some uses of mutexes to hopefully mitigate deadlocks a bit.
* Do Not Disturb: if users opt to "Ignore unsolicited DMs" they will set a DND
status on the server which will grey-out their DM icon for other chatters.
* Bring back an option for ChatServer to notify you when somebody begins watching
your camera (on by default).
* Automatically focus the message entry box when changing channels.
* Lower webcam resolution hints to 480p to test performance implications.
* New "Misc" tab added to the Settings modal with options to reduce spam
and improve privacy.
* Opt in (or out) for public channel join/leave presence
notifications
* New option to auto-ignore unsolicited DMs
* New sound effects for Watched and Unwatched (your camera)
* Reduces spam so ChatServer doesn't need to tell you every time
somebody opens your camera.
* New spinner icon when opening someone else's camera.
* If their cam takes a while to appear, the video button shows a
spinner icon as feedback so we avoid ChatClient spam giving you
acknowledgement of the cam trying to open.
* Added support for Webhooks and you can configure a Report Message hook
to let users report messages on chat.
* Add /reconfigure command to dynamically reload the server
settings.toml
* TODO: documentation for the webhooks.
* Color code usernames on video windows to be blue or red depending on
their local cam explicit setting
* Attempt to detect freezes on RTCPeerConnection videos by registering a
video onmute handler. If a freeze is detected, show a cyan mountain
icon by their name. Clicking the icon will re-connect their video.
* Update the video buttons on the Who List to always re-connect video
instead of toggling it opened and closed. The X buttons on videos are
now how you close a video.
* New API endpoint: /api/blocklist where your site can pre-deliver muted
username lists for users before they enter the chat.
* Image sharing in DMs is allowed if either party is an operator.
* Add a scrollback buffer option to the chat Settings to trim room history
so your browser can manage its memory usage
* Update the wording that ChatServer sends to users when the /nsfw command
has been used on them
* Fix the ordering of active DMs for Chromium browsers so the most recently
updated DM thread moves to the top of the list
* Show an indicator on videos whether the person you watch also watches
you back
* Fix the "X" button on the photo modal not functioning correctly
* When JWT tokens are used to join the chat and the username conflicts:
instead of renaming the new user to add a "2" it will disconnect the
original login (sending a message that they have signed in somewhere
else and are logged out now)
* When disconnected the text entry box will be greyed out.
* Improvements for the mobile user experience: if you're viewing the
chat history panel and have unread messages or DMs, a number indicator
appears on the channels button. It is grey for public channel messages
or red if any of them are DMs
* Fix the emoji picker drop-down on the first messages of a DM thread
* Consolidate all the Video flags (active, nsfw, mutual, mutualOpen)
into a bitmask flag (single integer)
* New video flag for when the source has muted their video, to show a
crossed out grey mic on their camera for other chatters
* Bugfixes around syncing the mute state for self and other videos when
videos are opened, closed and opened again
* Profile pictures on the DMs list