github ancsemi/Haven v4.29.0
Haven 4.29.0

latest release: v4.30.0-beta.1
59 minutes ago

Added

  • Call controls in fullscreen (thanks Roolk, #5849): mute, deafen, camera, screen share, call settings and leave stay on screen over a fullscreen camera or screen share, and a picker switches which stream is shown without leaving fullscreen.
  • Video players in chat have Theater (as wide as the chat) and Fullscreen buttons: YouTube cards, uploaded videos and videos in link previews.
  • Platform emoji built into Haven: Windows, Mac, iPhone, Android and Linux, under Platforms in the emoji picker. They work in messages, reactions and role menus.
  • Role menus: each role's emoji is picked from a searchable list of every emoji, the server's custom ones and Haven's own included. A role named after a platform starts with its icon.
  • Add members to a channel that already exists: right-click it and pick people one by one, a whole role at a time, or All users. People already in it are shown, and banned people are left out. It works for the admin and anyone who can invite people, and on a private channel for whoever may invite to it (its creator or a moderator there).
  • Hide pictures and videos (Settings > Chat & media): pictures, GIFs and videos in chat show as a small tag you click to see them, videos keep their file name, and link cards start folded. For reading chat around other people. Only changes what you see, on that device (thanks MutantRabbit767).
  • Video tutorials: short how-to videos are linked from the website, the README and the setup guide, and are on YouTube and Rumble.
  • Mentions and replies: the @ button next to your name lists every message that @mentions you or replies to you, newest first, and clicking one jumps to it. A small count on the button shows how many you have not seen yet, including ones sent while you were away, and while it is above zero the @ takes the accent color and the count pulses gently (it stays still when reduced motion is on) (thanks broilpromptu). Typing mentions:me in search does the same and works with the other filters.
  • Click an @mention of a person in a message to open their profile card, the same card as clicking their name (#5878, asked for by birdcrazy).
  • Blocked names (Settings > Admin > Who can sign up): words no username or display name may contain. Checked when someone signs up, joins as a guest or changes a display name, ignoring capitals, spaces, symbols, accents and look-alike numbers, so "B4d_W0rd" counts as "badword". Members who already have one are listed so the admin can deal with them. The admin is not held to the list.
  • Ferry carries reactions both ways (asked for by Raidenphantom). A reaction on Discord shows on the Haven copy with the person's Discord name, and a reaction in Haven makes the bridge bot react on Discord, once per emoji, since Discord only lets a bot react as itself. The bot needs Add Reactions in the channel; new invite links ask for it.
  • Default banner height and offset (Settings > Admin > Branding, asked for by MutantRabbit767): the admin sets how tall the server banner is and which part of it shows, for everyone. A member's own choice under Banner Display still wins on their device, and a new "Use the server's default" button there goes back to the admin's.
  • Favorite emoji (asked for by quakeman00, #5874): right-click an emoji in the picker, or press and hold it on a touch screen, and it goes into a Favorites row at the top. Do the same to take it out. Press Alt+Enter on the highlighted emoji to do it from the keyboard. The row also tops the picker you get from the ⋯ button on a message's reactions. Your favorites are saved on your account, up to 40, so they follow you to other devices.
  • Pin DMs to the top: right-click a DM (or tap its ... button) and pick Pin to top. Pinned DMs stay above the rest of your DM list in the order you pinned them, whatever sort you use, and show a small pin. Only you see your pins, and they follow your account to every device.
  • Take replies back out of a thread: while selecting messages to move, click replies in an open thread (docked or popped out, or use the new select button in the thread's header), then Move to... and "Back to #channel". They become normal messages in the channel, in the spot they were written, and keep their authors, reactions and pins. Anyone who can move messages into a thread can take them out again, and it goes on the audit log.
  • Back and forward on the mouse's side buttons (Mouse 4 and Mouse 5), the way a browser uses them. Back closes the thread you opened, leaves a forum topic for the forum's list, closes a pop-out DM or returns to the channel you came from, whichever was your last step, and forward undoes it. With a window open on top (settings, a picture, a picker), back closes that first. In a browser the side buttons no longer leave Haven. A side button set as a shortcut in the desktop app (push to talk, for one) keeps doing only that.
  • Hardware requirements, measured: node scripts/benchmark.js runs a throwaway server at several community sizes and prints the memory and processor time each one took. The results and what they mean for small machines are in docs/hardware.md. The load tester (scripts/loadtest.js) now reports the server's memory and processor use for each phase.

Changed

  • Add a Server asks for the address first and the name is optional: left blank, the server's own name is used. The window also says that you sign in, or make an account, on that server when you open it (reported by Grester).
  • Tooltips are drawn by Haven: they wrap at a readable width, stay inside the window and follow the theme. A long one used to run far past the edge of the app.
  • In Permissions, clicking a role's name opens its full settings (name, level, color, icon) on top of the table, and changes waiting to be saved stay. A click anywhere in a box's cell ticks the box.
  • The controls on videos, sounds and link previews are rebuilt: matching drawn icons in one size, with playing controls and view controls in separate groups. The speaker button mutes, and the size button opens a menu of Small, Medium and Large. It used to look like a fullscreen button.
  • The "Full" preview size is now called Large, and a YouTube player at that size is about 750 pixels wide instead of 480. At every size the player now fills its card.
  • With a mouse, the buttons that appear when you hover a message (react, reply, quote, thread, more) now sit at the bottom of the message: beside the reaction chips when it has some, and in the bottom corner when it doesn't. They used to cover the top right of the message. Touch screens are unchanged.
  • The donors list calls the people who give every month Monthly Supporters instead of Sponsors.
  • The account bar at the top of the sidebar shows your profile picture, in your chosen shape, and clicking it opens Edit Profile. The server connection light sits on its top-left corner.
  • Your custom status shows under your name in the account bar, or Set status when you have none, and clicking it opens the status picker. It used to be hidden behind the status dot (thanks reverb256, #5859).
  • Reading a channel on one device clears its unread badge and closes its notification on your other devices too, Haven Desktop's included once it is updated (thanks Roolk).
  • The emoji picker offers people as a man or a woman. The gender-neutral versions (person shrugging, technologist, Mx Claus and so on) are gone wherever a man and a woman version exist. People with no man or woman version, like baby, ninja or snowboarder, stay. Pregnant man, woman with beard, man with veil and woman in tuxedo are gone too.
  • Emoji search knows far more words: Unicode's keywords for every emoji plus everyday chat words, so "this" finds 👆, "dead" finds 💀 and "sus" finds 🤨. Results are ordered best match first, and a word has to start with what you type, so "ok" no longer turns up "book". Works in the emoji picker, reactions, role menus and : autocomplete.
  • Role menus show each role once, as its button. The list of roles in the message text and the row of reaction chips under it are no longer shown on top of the buttons.
  • Hover a role button in a role menu to see who picked that role, the way a reaction lists its people (asked for by quakeman00, #5869). A role hidden on profile cards keeps who holds it hidden here too.
  • New Android, iPhone and Mac emoji: the Android robot, a modern iPhone and an iMac.
  • Groundwork for optional PostgreSQL support (thanks Slyke, #5827, #5852). Haven's database calls start moving behind a common layer. SQLite stays the default and nothing changes for it; PostgreSQL cannot be turned on yet. The start-up message now gives the whole reason when Haven cannot start.

Fixed

  • The size menu on a link preview opened behind a thread, a forum topic or a pop-out DM, so the button seemed to do nothing there. It opens on top now, and has its border back.
  • The emoji picker for reactions could stay on screen with no way to close it: open it on a message, open the full list with its "...", then pick one of the quick emoji instead. It also goes away now when the thread or pop-out DM it was opened in closes.
  • When the server turned a reconnect away (too many connections from one address in a minute, or a passing server error), the app never tried again and stayed offline until it was reloaded. It now tries again after a few seconds, waiting longer each time (#5875).
  • On a phone, chat could go quiet after about a minute and stay that way until the page was reloaded, even though Haven still said it was connected (#5875). The link drops, the socket connects again, and the handshake succeeds, but the channel that was open never starts delivering messages. Haven now asks for that channel again and reloads the page if it stays silent. A reconnect from the same tab also closes the socket it replaced, so those do not pile up.
  • Uploaded .aac, .flac and .opus files were sent with old or missing file types (audio/x-aac, audio/x-flac, none for .opus). They now go out as audio/aac, audio/flac and audio/ogg, the names players check for.
  • Muting a sub-channel moved it to the bottom of the whole list, out of its category, so the category showed twice: once for its channels and again for its muted ones. A muted sub-channel now goes to the end of its own category (reported by Grester).
  • Right-clicking a forum in the channel list and choosing Mark as Read, or Mark everything as read, left the forum's dot on: its unread topics are counted apart from channel messages and were not being marked. Both now clear them (reported by Grester).
  • A message sent during a timeout was refused with a notice but the text was thrown away. It now goes back in the box (reported by Grester).
  • In a Custom or RGB theme, the green, red and amber used for online, do not disturb, warnings and delete buttons turned with the picked color, so a blue theme showed online people with a red dot. They now keep their own colors (reported by Grester).
  • Two channels whose names differ only in capitals (#Bug-Reports and #bug-reports) both linked to the same one. A #channel link now goes to the channel spelled the way it was typed (reported by Grester).
  • Settings search in a browser showed Desktop Shortcuts (push to talk and the rest), which only work in Haven Desktop, with buttons that did nothing. Search now leaves out sections you cannot use. In Haven Desktop those settings have their own page, Shortcuts & desktop app, instead of sitting under Plugins & advanced (reported by QUAKEMAN).
  • In a channel with text turned off and media left on, a picture or file you attached could not be sent from a browser or the desktop app: the message box and the send button were both hidden. The send button now stays there, also for people who chose to hide it (#5880, reported by TheStutterNerd).
  • A server with no GIF key had no way to add one: the GIF button hides itself until a key is set, and the only place to enter the key was inside the picker that button opens (reported by Aphexamine). Admins, and anyone who can manage the server, now keep the button so they can set it up, and there is a GIF Search section under Settings > Admin > Content to add or remove the key. Members' GIF buttons appear as soon as a key is saved, without a reload.
  • In a DM with a short name, the lock menu (Verify Encryption and the rest) opened partly under the left sidebar. Menus from the chat header now stay inside the chat area.
  • In a narrow window, or with search open next to the app pills, the chat header ran on under the right sidebar: Join Voice, the search box and its filters were cut off and the channel name shrank to nothing. The header now wraps onto a second row instead.
  • Leaving a call while Haven was still joining it (after a reconnect, for example) let the join finish and put the microphone back on, and a second click on a voice channel you were already in left and rejoined, opening the mic again (#5850).
  • Pressing the voice message button twice quickly started two recordings, and the first one's microphone stayed on until Haven was closed.
  • A message you had already sent could come back in the message box the next time you opened Haven, mostly in Haven Desktop. Sending now forgets the saved draft for that channel.
  • Timestamps (and other text) could show as raw names like "utils.today_at" for a whole visit when Haven's language file failed to load once, for example while the server restarted for an update. It is tried again, and the page fixes itself when it arrives.
  • A DM deleted while it was open in the pop-out DM window could come back, with its messages, after switching servers or reloading (#5848). The delete is now confirmed by the server before the app drops the conversation, and a fresh channel list no longer puts a DM the server no longer has back in the sidebar.
  • A call's camera or screen share in fullscreen paused when clicked. Fullscreen now goes on the stream's frame instead of the bare video, in the call grid and in popped-out streams.
  • Everyone could stop hearing you for the rest of a call, with Haven still showing you connected, after your microphone went away mid-call (a headset unplugged or reconnecting, for example). Only leaving and rejoining brought your voice back. Haven now opens the microphone again by itself, falling back to the default one, and tries again when a device appears (thanks Amnibro, #5851).
  • Scrolling up through older messages could snap you back to where you were when they loaded, again and again for a while, as their pictures and link previews finished loading. It stays where you scroll now (thanks Amnibro and reverb256, #5858).
  • The last plain browser pop-ups are Haven's own themed dialogs now: moving a channel under another, leaving a channel, deleting a webhook, bot or member, backups, invite links and more. The password box for signing out other sessions hides what you type.
  • A /tts message with a line break or a slash in it (a link, "and/or") posted as plain text with /tts showing and never spoke. The same went for other slash commands.
  • Clicking the ... button on a voice-only channel also joined its voice. It only opens the menu now (thanks dlmorgan999, #5846).
  • A spoiler's text showed in the places a message is previewed as plain text: reply previews, the Replying to bar, the Threads list, forum post titles and snippets, pop-up notifications and phone notifications. It's hidden in all of them now (thanks birdycrazy).
  • On a phone, an uploaded video's controls squeezed its file name into a column one letter wide. The controls sit in their own shaded box now, so they no longer read as part of the name, and move below the name when the row is narrow (#5855).
  • Opening a picture from an encrypted DM on a phone, in an installed app window or in the Android app showed a white page. It opens in Haven's own picture viewer there now (#5853).

Security

  • Add all members (new in this version) could be used by a member with Invite Users on a hidden-code channel, or on a sub-channel of a private one, which put everyone on the server into it. Both are refused now, as inviting one person there already was, and guests are only added when the admin does it.
  • The libraries the backup zip writer leans on (glob and minimatch) are moved to their fixed versions. Haven never handed them anything a user typed, so this closes two Dependabot alerts rather than a hole anyone could use.

Don't miss a new Haven release

NewReleases is sending notifications on new releases.