What's New
Changelog
Release notes for every version of Outpost, newest first. Full commit history is on
GitHub Releases.
v0.6.4 — 2026-08-18
- The iPhone app has its real icon. Every build until now shipped the default placeholder the project scaffolding came with, a blue cross on a grid, so that is what testers have had on their home screen since the first TestFlight upload.
- The iPhone app no longer claims to run on iPad. It never had a layout anyone had checked on one, and saying so was the honest fix rather than shipping a screen nobody had looked at. iPad can come back once it has been tried on a real one.
- Android releases now carry release notes on the Play listing. They never have, on any release, so testers got an update with nothing telling them what changed.
Nothing changed in the server, the web client or the desktop app. This release exists to get the corrected iPhone build out.
v0.6.3 — 2026-08-17
- Your encrypted DM key is filed under your account now, not under the server bookmark. It used to be stored against an id that got created fresh every time you added a server, so leaving a server and adding it back stranded the key and those conversations stopped opening. The same id said nothing about who was signed in, so signing in as a second account on a server you had already set up encryption on overwrote the first account's key in place. Both were silent. Keys stored the old way are picked up when you sign in, but only where the public half matches what your account publishes, because adopting more eagerly than that could hand one account another account's key.
- The Android app reports the version you actually have. It had said 0.3.6 on every build since v0.3.7.
v0.6.2 — 2026-08-13
- Encrypted messages no longer sit on "Decrypting…" forever on a new device. A new device has never been given your key. It cannot read messages encrypted before you set it up, and that is the point of encrypting them. It says so now, instead of waiting on a result that was never coming. Restore your recovery code in User Settings, Security, and they open.
- Fixed a conversation being marked unreadable when you switched into it from another one. Keys are worked out in the background, and for a moment the app was still holding the key for the conversation you just left.
- Fixed messages staying unreadable after you restored your recovery code. What the app had already given up on was remembered, including from before the restore, so the new key never got used until a reload.
v0.6.1 — 2026-08-12
- Fixed the row of tabs in User Settings. Adding Appearance made five where there was room for four, so it dropped onto a second line and stretched across it on its own, looking like a bug rather than a tab.
v0.6.0 — 2026-08-12
- The server rail is gone. Your servers moved into the name at the top of the channel list. Click it to switch, or to add one. Right-click a server there to leave it, the same as before. The rail spent 72 pixels of every screen on a strip that held one icon for most people, and the channel list gets that width back, so long channel names stop truncating.
- A light theme. Daylight is the first one. The backgrounds are warm rather than grey, so the app still looks like Outpost in a bright room.
- The theme is yours now, not just the owner's. The server still picks one, and that stays the default. But you can override it for yourself in User Settings, Appearance. Light or dark is a room and a time of day, and sometimes an accessibility need, so it should not be one person's decision for everyone.
- Compact density. Also in Appearance. Tighter spacing and smaller avatars, worth about two more messages a screen.
- Encrypted DMs say so in the header. The lock used to sit above the message box, so it left the screen as soon as you scrolled up. The header does not scroll. A changed key shows there too, in red.
- Pop out any video. Hover a camera or a screen share and use the button in its corner to float it in its own window, on top of whatever else you are doing. Browsers allow one such window at a time, so popping out a second feed moves the window to it.
- Fixed screen share labels all piling into one corner instead of sitting on the share they name. The tile they were meant to attach to was never given a position of its own, so they resolved against the whole video area.
- Fixed the user box at the bottom of the channel list staying dark on a light theme. Its colour was written in directly, from back when every theme was dark.
- Fixed the voice bar and the call view sitting in the wrong column after the rail was removed, which left them not resizing with the window.
- Avatars are square. People are square, the server icon stays round. Every Discord-style app does it the other way round. Shape still tells you a person from a place, the pairing is just ours.
- Fixed the selected channel in the sidebar. It drew white text on its highlight, which was fine on a dark theme and unreadable on a light one.
v0.5.1 — 2026-08-12
- Turning on encrypted DMs works straight away. It used to need an app restart before the conversation actually switched over — it would keep saying you hadn't turned encryption on, on every platform, not just Windows. The open chat now updates the moment you enable it.
- You can turn encrypted DMs off again. Off stops encrypting new messages and lets people message you in the clear, but keeps your key on the device — so everything you'd already encrypted stays readable, and turning it back on picks up exactly where you left off with the same key and the same recovery code. Forgetting your key is still a separate, deliberate action, because that one can't be undone.
- Both sides notice immediately. When someone turns encryption on or off, the person they're talking to sees it right away instead of on their next reload.
- Fixed conversation keys being reused after restoring a different recovery code, which could leave messages undecryptable with no explanation.
v0.5.0 — 2026-08-11
- You can sign in with your own identity provider. Anything that speaks standard OpenID Connect — Authentik, Authelia, Keycloak, Zitadel, Okta, Entra — can now be the login for your instance, and a “Continue with…” button appears above the password form once it's set up. It's off until you configure it, and there's a walkthrough in the self-hosting guide. Accounts created this way have no password at all, which is the point: there's nothing to guess, phish or reuse. They can still delete their own account, and two-factor set up here is still asked for on top of whatever your provider does.
- The desktop app signs in through your real browser, not a window inside the app. You're probably already signed in to your provider there, so it's often a single click, and your password manager works normally. The result comes back to the app automatically.
- Turning on a camera in a voice channel. Faces appear in a strip above whatever else is happening, so a screen share keeps the room to itself; your own preview is mirrored, and everyone else's isn't. Video is off every time you join — a camera that switches itself back on isn't a feature. Pick which camera in User Settings → Voice.
- Noise suppression, echo cancellation and automatic gain are now yours to turn off (User Settings → Voice). They've always been on and stay on, which is right for almost everyone — but noise suppression is tuned for speech and mangles an instrument or shared music, and automatic gain rides a quiet room's background noise up between sentences. The mic meter in settings now reflects whatever you've chosen, so it shows what the voice gate will actually hear.
- Fixed video failing on Android before it started: the app was declining the camera by name, the same way it once declined the microphone.
v0.4.0 — 2026-08-11
- Direct messages can now be encrypted end-to-end. Turn it on in User Settings → Security. Both people have to have it on; until then the conversation stays readable and says so rather than pretending otherwise. Your keys are generated on your own device and never sent to the server, so an encrypted DM can't be read by the server, by whoever runs it, or by anyone who gets hold of its database. You get a recovery code when you set up — keep it, because without it a new device can't read your old messages.
- Two behaviour changes come with encryption, and they're deliberate. Automod no longer applies inside encrypted DMs — the server can't inspect what it can't read. And search inside DMs is switched off rather than left to quietly return nothing, since encrypted messages have no server-readable text to match on.
- A marker in the conversation shows where encryption started. Old readable messages and new encrypted ones no longer look identical in the same scrollback. If a conversation ever drops back to unencrypted, that's marked too, as a warning.
- You can report a message or a member. Pick a reason, add context if you want, and it goes to your server's moderators — not to us. Reporting works inside encrypted DMs too: your own device supplies the text, and moderators are told plainly that it came from the reporter and isn't server-verified.
- Moderators get a real reports queue in Instance Settings, with the reported message captured at the time it was reported so it survives being deleted. Resolving or dismissing a report is recorded in the audit log.
- Blocking someone now actually hides them. It used to only stop DMs and friend requests; a blocked member's messages now disappear from channels, pins, search and live updates, and their text is stripped out of anyone else's replies quoting them. Block also moved onto the profile card, so you can block anyone rather than only people on your friends list.
- Fixed screen sharing in the desktop app. It had never worked there on any platform — the button did nothing and reported nothing. It works in a browser, which is why it looked like a platform problem.
- A screen share now fills the channel while you're watching it. It used to stay a small tile in the corner even on the voice channel's own view. It still shrinks back to that tile when you switch to another channel, so you can keep watching while you read.
v0.3.15 — 2026-08-10
- You now see who joined or left the voice channel you're in. A sound already played, but it never told you who — and it's easy to miss entirely with your volume down. Brief notices now name the person, stacking if several people arrive at once.
v0.3.14 — 2026-08-10
- Fixed the voice panel's left edge being swallowed by the server rail on mobile. On a phone the panel's title showed as “agnostic-test” instead of “diagnostic-test” and its button read “eave Voice”, with everything inside sitting off-centre — the panel was being drawn underneath the server icon rail rather than beside it. It now opens in the space next to the rail, fully visible.
v0.3.13 — 2026-08-10
- Every server in the left rail now shows its own icon, not just the one you're currently on. Server icons live behind each server's own login, so the app could previously only draw the active one and fell back to text initials for the rest. Icons are now cached locally, so they all render immediately at startup — and keep rendering even while a server is offline.
- Push-to-talk no longer clips the end of what you were saying. The mic used to cut the instant you released the key; it now stays open a moment longer.
- Voice sensitivity now adjusts itself automatically, and is the default. The old sensitivity slider had no correct value — the right setting depends on your room, your mic and whatever's making noise nearby, and both ways of getting it wrong are invisible to you: too low and you transmit every keystroke, too high and you're the person nobody can hear. Outpost now tracks your background noise continuously and keeps the threshold just above it, re-tuning as things change. The mic meter in Voice settings shows where it sits and lights up when you're actually transmitting. If you'd tuned the slider by hand, this replaces it — untick “Adjust sensitivity automatically” in User Settings → Voice to go back to setting it yourself.
v0.3.12 — 2026-08-10
- Added self-service account deletion (User Settings → Profile → Delete Account). Previously the only way off an instance was asking its owner to remove you by hand. Deleting requires your password and your typed username, plus your two-factor code if you use 2FA, and takes effect immediately on every device you're signed in on. Your account, profile, avatar, friends and reactions are removed; messages you already sent stay in their channels, shown as “Deleted User”, so the conversations other people took part in don't end up full of holes. Instance owners can't delete their own account — a server with no owner can't be administered by anyone.
- Messages from an account that no longer exists now show as “Deleted User” instead of a raw account ID, and no longer open a profile card for an account that's gone. This covers removed bot accounts too.
- Fixed a signed-in session for a deleted account returning a server error instead of a clean “signed out”.
- Fixed the app rendering under the status bar / notch on iOS. The main screen's server rail, channel list and sidebar header (including the settings gear) sat partly under the camera housing and were hard to tap.
v0.3.11 — 2026-08-07
- Fixed the desktop app never detecting updates. The Electron build's own version number had been stuck at 0.3.0 since it stopped getting bumped alongside every release, so an already-installed desktop app always saw "up to date" no matter how many newer releases existed. Resynced, and every future release should update correctly again.
- Added a
MANAGE_SERVER permission, and fixed the Instance Settings gear icon being hardcoded to the instance owner only. Previously, assigning a role every existing permission still didn't grant access to server settings — the settings endpoints had no permission check to grant against, and the gear icon itself was owner-only, so no role could even open the modal.
v0.3.10 — 2026-08-07
- Added self-service password recovery. Off by default — a self-hoster configures their own outbound SMTP under Instance Settings → Mail, and members get a real "Forgot password?" flow (single-use, 1-hour reset tokens, generic responses that never reveal whether an email matched a real account).
- DM and channel unread state now persists across a reload or a new session instead of resetting to empty every time.
- Added #channel-name autocomplete and clickable links in messages, mirroring @mention.
- Enabled spellcheck in the message composer.
- Added a sound when someone joins or leaves the voice channel you're in — and when you yourself connect or disconnect.
- Admins can now kick a member from just the voice channel they're in, without kicking them from the whole server.
- Added an AFK voice channel with a configurable idle timeout (Discord-style).
- Fixed the voice channel details popover not opening automatically when you join.
- Fixed a real high-severity Dependabot advisory (js-yaml DoS in Electron build tooling), a stale-message-on-reconnect bug, and the profile settings Save/Close buttons stacking oddly.
v0.3.9 — 2026-08-07
- Fixed native iOS voice never connecting, for real this time. The signaling WebSocket was completing its handshake successfully, then getting reset by the server within ~80ms. The Swift SDK defaulted to a legacy signaling endpoint this server mishandles, while the web client's JS SDK already used the newer one fine — fixed by enabling the SDK's own already-built option to use it too.
v0.3.8 — 2026-08-07
- Fixed a CI compile error in v0.3.7's diagnostic-only iOS build.
v0.3.7 — 2026-08-07
- Diagnostic-only iOS build to surface the real cause of native voice failing to connect, ahead of the real fix in v0.3.9.
v0.3.6 — 2026-08-06
- Fixed native iOS voice never connecting ("Network error(Validation request failed...Timed out)" on every network tested). Root-caused by walking LiveKit's actual Swift SDK source: the signaling WebSocket explicitly opts into Multipath TCP "handover" mode (iOS-only), which hung until the SDK's own 7-second join-response timeout — while curl, Safari, and the JS SDK (used by the web app) all connect fine against the same server, since none of them use Multipath TCP. Patched via a pinned fork rather than waiting on an upstream fix that exists but was closed unmerged.
- Fixed a real CI bug where the iOS build number wasn't being bumped automatically, silently failing the TestFlight upload on any release that didn't touch iOS code directly (this is why v0.3.5 never actually reached TestFlight). Now derived from the CI run number every time.
v0.3.5 — 2026-08-06
- Fixed a real permission gap: nobody, not even the instance owner, could delete a webhook-authored message. The delete button was gated only on
isOwn (message.authorId === currentUserId), but a webhook message's authorId is always null, so isOwn could never be true for one — even though the backend already correctly supported a MANAGE_CHANNELS holder deleting any message. Now gated on (isOwn || canModerate), matching the backend; editing stays isOwn-only since the backend has no moderator override for edits.
- Added the running version number to Instance Settings, so it's easy to confirm what's actually deployed.
- Centered the Save/Close button rows across every settings modal (previously right-aligned); on the General tab specifically, Save and Close now sit next to each other in one row instead of stacked separately.
v0.3.4 — 2026-08-04
- Fixed the iOS app rendering under the notch/Dynamic Island and home indicator. The app runs edge-to-edge in an unpadded WKWebView on iOS; nothing accounted for the device's safe area before this. The login screen, the main app shell (server list/channels/chat/members), the voice popout, and the connection banner are all now correctly inset.
- Login screen no longer gets stuck behind the keyboard. Switched from a fixed
100vh to a dynamic-viewport-aware height, so the form actually resizes when the on-screen keyboard opens instead of being pushed out of view.
- Added much more detailed error diagnostics for the iOS voice-connect failure currently under investigation — surfaces the full underlying error chain instead of a shallow one-line description, to help pin down a real-device-only connection timeout that server-side testing (TLS, HTTP/3, LiveKit room state) hasn't been able to reproduce or explain yet.
v0.3.3 — 2026-08-04
- Fixed the iOS build failing Apple's post-upload TestFlight processing (a real error, only caught once a build actually reached Apple's servers):
Info.plist was missing NSCameraUsageDescription/NSMicrophoneUsageDescription, required because the LiveKit voice SDK references camera/microphone APIs even though the app doesn't currently use camera itself.
v0.3.2 — 2026-08-04
- iOS TestFlight pipeline live for the first time. Real Apple Distribution certificate, App ID, provisioning profile, and App Store Connect API key wired into CI — this release is the first real signed, TestFlight-uploaded iOS build. Internal testing only for now; background-capable voice (the actual point of the native iOS build) still needs real-device verification next.
v0.3.1 — 2026-08-04
- Fixed the message avatar drifting away from the username on longer messages — it now stays consistently aligned regardless of how much text a message wraps to.
v0.3.0 — 2026-08-03
- Import an existing Discord server. New owner-only Import tab in Instance Settings — point it at a Discord server via a bot token you create yourself, and it recreates the channels, roles, and custom emoji here, with an opt-in (off by default) full message history backfill attributed to one per-author webhook identity rather than a single generic import account. Meant to be run once, early, before real content accumulates here — see the wiki guide for the Discord-side bot setup and known limitations.
- The Friends list now shows the same green "unread" dot as the DM sidebar when a friend has sent you a message you haven't opened yet.
- A first-login tutorial for new members. Registering on an already-set-up instance now shows a short, skippable walkthrough covering push-to-talk vs. voice-activity mode, @mentions and custom emoji, message reply/edit/thread, and where to find Friends/DMs.
v0.2.21 — 2026-08-03
- The Android app is downloadable for the first time. Grab a debug build from the Download page — it's the same web client wrapped for Android, not a from-scratch native app, and Android will warn it's from outside the Play Store since it isn't signed yet.
- Fixed voice channels not working at all in the Android app. Two bugs, both only reachable via real device testing: the mic permission request never reached Android's own permission system, and fixing that surfaced a second failure where the microphone couldn't actually be opened without putting the device's audio system into communication mode first. Voice now works end-to-end on a real device.
v0.2.20 — 2026-08-03
- The connected-voice details panel no longer covers the channel list. It used to open directly over the sidebar, blocking channel navigation while connected to voice. It now floats over the main chat area instead, and can be minimized down to a slim status bar to get it fully out of the way.
v0.2.19 — 2026-08-02
- Fixed captcha failures on the desktop app. Cloudflare Turnstile sitekeys are locked to specific domains, but the desktop app's UI runs from a
file:// origin, which never matches — so registration always failed there with "captcha verification failed," even though the same widget worked fine on the web. The captcha now renders inside an iframe pointed at the instance's own domain, so it runs same-origin no matter which client loads it.
- Fixed push-to-talk not actually gating the mic. Joining a voice channel in PTT mode left the mic hot until the first time you released the bind key. It now starts silent on join, as intended.
v0.2.18 — 2026-08-02
- The web app is actually usable on a phone now. Full-screen panes (server/channel list, chat, members) below tablet width, with a hamburger and back button to move between them — previously the desktop layout just got squeezed onto a small screen.
- Message actions (reply/react/edit/delete) now also open with a tap, not just a hover.
- Fixed videos and GIFs overflowing the screen on mobile instead of scaling down to fit.
- Bumped touch target sizes on the header icons and fixed them rendering too dim to see clearly on mobile.
- Push-to-talk now has an on-screen hold button for when there's no keyboard to bind a key on.
- Fixed a webhook bug where a per-message persona override would silently revert on page reload instead of sticking.
v0.2.17 — 2026-08-02
- Uploads are private now. Avatars, message attachments, and custom emoji were previously stored in a public-read bucket — anyone with a URL could view it forever, even after it was deleted. Uploads are now served through an authenticated route instead. No visible change for normal usage; this is a server-side hardening change.
v0.2.16 — 2026-08-02
- Inline video playback. Videos are now a real upload category (gated per-role, like documents/archives/code) and render as an actual playable video in chat instead of a download link. Upload cap raised from 8MB to 25MB.
- A real developer/bot API. Instance Settings → API Bots lets an admin create bot accounts — real members with real roles and permissions, authenticated by a token instead of a password, usable against the same API any human client uses.
- Owner-initiated password reset. If a member forgets their password, the instance owner can now generate a one-time temp password for them from Instance Settings → Members — previously there was no recovery path at all.
- A real moderation audit log. Every ban, kick, mute, and password reset now leaves a permanent record of who did it, to whom, and when.
- Login/register/2FA brute-force protection. These had no rate limiting before — now capped at 10 attempts per 10 minutes per IP.
- Fixed the full emoji picker rendering off the top of the screen for a message near the top of a channel. Moved the Friends button to the user bar so it's always reachable.
v0.2.15 — 2026-08-02
- Rich link previews. Paste a URL in a message and it now unfurls into a preview card — title, description, and image pulled from the page itself, same as Discord/Slack. URLs are also clickable now. Only the first link in a message gets a preview; a link inside a code block stays plain text and doesn't fetch anything.
- v0.2.14's Docker image briefly failed to start due to a dependency version mismatch — caught within minutes and rolled back, no data affected. Fixed here; if you're self-hosting and pulled
:0.2.14 or :latest in that window, update to :0.2.15.
v0.2.13 — 2026-08-01
- Custom emoji as message reactions. Following up on v0.2.12, custom server emoji are now usable as a reaction too, not just in message text.
v0.2.12 — 2026-08-01
- Custom server emoji. Upload your own emoji from Instance Settings → Emoji, then use it in a message as
:name: — it renders inline as the real image, and shows up first in the emoji picker under a new "Server" tab. Not usable as a message reaction yet, only in message text.
v0.2.11 — 2026-08-01
- Channel-level permission overrides. A channel can now be restricted to specific roles — hidden from the sidebar and inaccessible (REST, live gateway events, and voice join) to anyone without one of those roles. Manage it from Instance Settings → Channels.
- Login now accepts a username, not just an email address.
- The Direct Messages sidebar section is now collapsible, matching Text/Voice Channels.
- The green presence dot next to a channel/DM now means unread, not online — it only appears when a message has arrived since you last had that channel open, and now shows on text channels too, not just DMs.
- Hovering a message reaction now shows who reacted with it.
- Fixed blurry, badly-cropped GIF picker thumbnails — they're now shown at their true size and aspect ratio with no cropping.
v0.2.10 — 2026-08-01
- Fixed Voice Channels appearing at the very bottom of the sidebar with a large empty gap above it — it now sits directly under Text Channels as expected.
v0.2.9 — 2026-07-31
- Fixed the message composer being a single-line input that couldn't actually hold a multi-line message — Enter always sent immediately with no way to insert a line break, and pasting multi-line text (like a script) had its line breaks silently stripped. This made the v0.2.7 code-block feature unreachable in practice. Now Enter sends and Shift+Enter adds a line break, and the composer grows with your message as you type.
v0.2.8 — 2026-07-31
- File-type upload permissions (below, v0.2.7) are now granted per role instead of one instance-wide switch — a role can be given permission to attach documents, archives, and/or code files independently, same as any other permission like Manage Channels. Images are unaffected either way and remain uploadable by everyone regardless of role.
- Roles can now be edited after creation (name and permissions) — previously the only way to change a role's permissions was to delete and recreate it.
v0.2.7 — 2026-07-31
- Code blocks in messages. Paste a fenced
```code block``` or inline `code` and it now renders in a monospace block instead of a single run-on line — makes sharing scripts and config actually usable.
- Non-image file attachments. Messages can now include documents, archives, and code/script files, not just images — gated per-role (see v0.2.8 above). Non-image attachments show as a downloadable file chip instead of a broken image preview.
- Fixed the instance theme picker being a hard-to-read grid of buttons — now a proper dropdown.
- Fixed poor text contrast in dropdown menus across all four themes, most noticeably on the Hacker theme.
- Fixed illegible initials on the currently-selected server icon under the Hacker theme when no custom icon is set.
v0.2.6 — 2026-07-31
- Fixed a crash on login introduced in v0.2.4 that briefly took the hosted instance down (see below) — rolled back same day, real fix shipped here after local testing.
- Added automatic reconnection for the chat connection — a dropped connection from a deploy, your laptop sleeping, or a network blip now recovers on its own instead of leaving you stuck until a manual page reload.
- Fixed GIFs and images not triggering auto-scroll to the newest message (text and emoji already did).
- Text Channels, Voice Channels, and the member list's Online/Offline groups can now each be collapsed from their header — state is remembered.
v0.2.4 — 2026-07-31 — caused a brief outage, do not use.
This version shipped, then caused a live login crash within minutes and was rolled back the same day. Root
cause: a React hook was placed after a conditional early-return, which crashed the whole app to a blank
screen the moment you logged in. Anyone who had the app open when this deployed would have needed a manual
reload to recover. Fixed in v0.2.6 above. We've since adopted a standing rule to test every change locally
before it reaches the hosted instance, specifically to catch this class of bug before it ships.
v0.2.3 — 2026-07-31
- Fixed the real root cause of "scrolling feels broken" reports — a page-level layout gap meant scrolling any one panel (server list, channel list, member list) could drag the others along with it. Every panel now scrolls independently, as intended.
v0.2.2 — 2026-07-31
- Moved the Friends icon and added a member search box, both now in the member list panel's header instead of the channel sidebar.
v0.2.1 — 2026-07-31
- You can now send a friend request or start a DM directly from someone's profile card, not just from the standalone Friends panel.
v0.2.0 — 2026-07-31
- Friends & direct messages. Add friends, accept/decline requests, block/unblock, and DM anyone you're friends with — scoped to the instance you're on.
- Two-factor authentication. Secure your account with an authenticator app (TOTP — Google Authenticator, Authy, etc.) or a security key / platform authenticator (YubiKey, Touch ID, Windows Hello), plus one-time backup codes for account recovery.
- Fixed a crash when logging in with a backup code.
- Fixed a layout bug where the app's four main panels could grow past their intended size instead of scrolling.
v0.1.6 — 2026-07-31
- Threads. Reply to a message in its own thread without cluttering the main channel — threads keep full reactions, pinning, and bot command support.
- Screen sharing in voice channels, shown as floating video tiles that stay visible while you keep browsing other channels.
- Reaction roles are now per-channel instead of one shared menu for the whole server.
- Moderation: warn/mute system. Automod now logs a warning instead of silently deleting a blocked message, and repeated warnings within 24 hours auto-mute the user for a set duration. Moderators can also warn, mute, and unmute manually from a member's profile.
- Kick and Ban. Kick disconnects someone immediately (they can rejoin); Ban is permanent and takes effect instantly, even on already-open sessions.
- Bot protection on sign-up (Cloudflare Turnstile), invisible for real visitors in almost all cases. This cleared the way to open public registration on self-hosted instances that choose to.
- Channels can now be drag-and-dropped to reorder for everyone, not just locally.
- A real leaderboard panel for server leveling/XP, replacing the old text-only
!leaderboard command.
- General visual polish — buttons across the app now have proper hover/press states.
- Automated nightly backups for the hosted instance.
v0.1.5 — 2026-07-30
- Replaced the old "toast notification does nothing when clicked" desktop update flow with a real app menu: About, Check for Updates…, and a working Restart Now button once an update finishes downloading.
- Fixed GIF search not working on hosted instances even with a Giphy API key configured.
v0.1.4 — 2026-07-30
- Fixed the Linux desktop app showing a generic fallback icon instead of the Outpost flame.
v0.1.3 — 2026-07-30
- First release to exercise the desktop app's auto-update pipeline end-to-end.
v0.1.0 – v0.1.2 — 2026-07-28 — first public release
The initial public release of Outpost (renamed from an early "Harmony" working title before anyone outside
testing had used it). Includes:
- Accounts, channels (text + voice), and role-based permissions.
- Real-time chat with typing indicators and online presence.
- Self-hosted voice channels (LiveKit) — join, mute, push-to-talk or voice-activity detection, per-user input/output device selection.
- Message editing, deletion, and emoji reactions.
- Image attachments and avatars.
- Server invites with optional usage limits and expiry.
- Four built-in themes (Signal Fire, Cyberpunk, Hacker, Esports).
- A one-click self-hosted Docker package, plus native desktop apps for Windows, macOS, and Linux.
- A real JWT authentication vulnerability (an empty signing secret could bypass auth) found and fixed before this release ever shipped.
v0.1.1 and v0.1.2 were same-day fixes to the release pipeline itself (Linux/Windows desktop builds) — no
functional changes from v0.1.0.