Welcome to Spokes! Read a message from the developer.

Release Notes

Stay up to date with the latest features, improvements, and bug fixes across all Spokes platforms.

September 2026

SERVER RELEASE v2026.9.4
2026-09-24

New Features

  • Voice Settings & Audio Pipeline Overhaul
    • Added a dedicated Voice Settings dialog featuring master volume boost up to 200%, per-participant volume sliders, and persistent volume preferences remembered across calls.
    • Added built-in microphone and speaker diagnostic tools with real-time waveform visualization, instant recording playback, and speaker test chimes.
    • Upgraded the Voice Activity Detection engine with speech formant analysis, adaptive noise floor tracking, and a sensitivity slider to eliminate voice clipping and background noise.
  • Calendar Event Reminders & Agenda View
    • Schedule automated alerts for upcoming calendar events with customizable lead times in minutes, hours, days, or weeks before start.
    • Configure shared reminders for all event invitees, customize personal alerts, or mute specific events, delivered via in-app banners and push notifications.
    • Added personal calendar categories with customizable color-coding and an interactive daily agenda view directly below the monthly calendar.
  • Customizable Notification Sounds & Audio Cues
    • Personalize alert sounds independently for chat messages, mentions, incoming calls, and calendar reminders with a built-in sound library and live audio previews.
    • Added distinctive audio chime effects when joining or leaving voice channels.
  • Chat Draft Persistence & Auto-Recovery
    • Unsent message drafts are now automatically retained across channel switches and app restarts, allowing users to return to unfinished messages without losing input.
  • Dynamic Content Moderation Masks
    • Upgraded text moderation to dynamically replace blocked words with randomized character masks preserving word length and casing, while automatically scanning both new and edited messages.
  • Storage Health Auditing & Safeguards
    • Added proactive disk monitoring that alerts administrators when server storage is running low and automatically pauses uploads under critical space constraints to prevent data corruption.

Bug Fixes

  • Fixed an issue where calendar event dialogs did not size properly to the full screen on mobile devices.
  • Fixed a bug where in-app notifications and sound alerts could trigger while the application was backgrounded or inactive on devices with push notifications enabled.
  • Fixed an issue where ended or declined calls continued showing active banners and ringing notifications across connected devices.
  • Fixed an issue where muted participants or background ambient noise could falsely trigger the active speaking indicator.
  • Fixed a bug where denoised audio output in the noise suppression worklet could output to a single channel or cause playback artifacts.
  • Fixed duplicate connection attempts and race conditions during automatic voice reconnection and channel transitions.
  • Fixed an issue where audio streams and active speaker indicators failed to properly reset after disconnecting from a voice call.
  • Resolved an audio session issue on mobile platforms where notification chimes could interrupt active voice calls.
  • Fixed an issue where message read receipts and unread badges would clear while the application was backgrounded or running in an unfocused tab.
  • Fixed an issue where direct message conversations were not ordered by recent message activity in the sidebar.
  • Fixed a bug where editing an existing message bypassed automated content moderation checks.

Improvements

  • Improved SignalR connection resilience on cellular and high-latency networks with extended timeouts and an intelligent multi-stage reconnect schedule.
  • Improved search performance and reduced server load by standardizing input debouncing across chat and global search.
  • Added real-time microphone mute badges and active speaking indicators across the chat sidebar, participant lists, and global voice bar.
  • Improved audio device switching to dynamically route microphone and speaker outputs without needing to rejoin the channel.
  • Added the ability to quickly schedule a new event by double-clicking any day cell on the calendar.
  • Improved push notification delivery and unread badge count synchronization across mobile app switchers and home screen widgets.
  • Added support for public server branding to display server logos and icons within mobile home screen widgets and system alerts.
  • Refined calendar reminder formatting to present clean, readable time intervals and event locations in reminder alerts.
  • Enhanced system administration by recording detailed backup operations, file sizes, and prune events into the system log.

SERVER RELEASE v2026.9.3
2026-09-11

New Features

  • Source-Available Licensing & Free Core Server
    • Spokes Server is now officially source-available under the Business Source License (BSL 1.1), making the entire server codebase publicly available to audit, inspect, and self-host.
  • Spokes Pass for Native Mobile Push Notifications
    • Introduced the Spokes Pass, transitioning server monetization from update gated to only the mobile push notifications being pay walled.
    • Web and PWA notifications remain completely free for all instances.
    • All servers receive an automatic 2-month free trial of native mobile push notifications with no credit card required.
    • Nothing changes for existing users: Existing server instances and active license holders continue without interruption or feature loss, and core server capabilities remain entirely unrestricted.

Bug Fixes

  • Fixed an issue where server logos and icons could fail to display on login pages.
  • Fixed an issue where non-PNG server logos and icons were served with incorrect content types.
  • Fixed an issue where navigating to a missing or inaccessible chat channel could leave the chat area blank instead of displaying a “Channel Not Found” message.

Improvements

  • Accelerated chat sidebar loading and initial app startup by serving channel previews and unread badges directly from an in-memory cache without disk reads.
  • Improved chat switching responsiveness by offloading message read syncs, cache pruning, silent push clears, and OS shortcut registrations to background tasks.
  • Improved page load performance across login screens by delivering server logos through cached media endpoints instead of embedded image data.
  • Added automatic image optimization for uploaded server logos and icons, downsampling oversized images to reduce bandwidth and speed up load times.
  • Updated User Settings, Setup Wizard, and Admin Settings with clear status indicators, pass expiration tracking, and automatic pass renewal detection for mobile push notifications.
  • Added “Pass Required” badges and suppressed redundant push notification prompts on mobile devices when native push is not enabled.
  • Redesigned the administrator license banner into a compact alert with options to snooze or permanently dismiss reminders.
  • Refined the layout, typography, and responsive spacing across channel creation and direct message dialogs.

SERVER RELEASE v2026.9.2
2026-09-08

New Features

  • Server Restart Splash & Auto-Reconnect
    • Administrative setup and configuration changes that require a server restart now display a live restart progress screen that automatically reconnects and reloads the application once the server is back online.
  • Unified Team & Member Selectors
    • Added standardized user and team selection components featuring visual avatars, search filtering, and removable chip badges.

Bug Fixes

  • Fixed an issue where accessing a deep link while unauthenticated failed to redirect to the requested page after completing single sign-on.
  • Fixed an issue where signing into a mobile device could clear active push notification registrations on other devices.
  • Fixed an issue where chat category reordering failed to respect hidden categories and could misplace archived categories.
  • Fixed an issue where read receipt indicators could inaccurately display avatars on the sender’s own messages in group channels.
  • Fixed a bug that displayed a voice call button in self-direct message conversations.
  • Fixed an issue where announcement-only restrictions could be inadvertently applied to direct message channels.

Improvements

  • Improved read receipts to automatically mark previous messages as read when opening a channel or sending a reply.
  • Improved session reliability on mobile devices by binding sessions securely to individual devices while preserving concurrent multi-tab desktop sessions.
  • Improved presence and idle status accuracy with more responsive activity heartbeats and persistent last-seen timestamps.
  • Voice server port updates now apply immediately without requiring a full server restart.
  • Added automatic background cleanup of temporary upload files on server startup to prevent disk clutter.

SERVER RELEASE v2026.9.1
2026-09-02

New Features

  • Voice Messaging
    • Record, preview, and send voice memos directly from both the mobile and desktop chat composer, with an inline player featuring playback controls, a progress scrubber, and a live audio waveform visualization while recording.
  • DigitalOcean Auto-Updates
    • Added support for automated server updates via Watchtower for DigitalOcean deployments, with license-aware update notifications.

Bug Fixes

  • Fixed an issue where Single Sign-On (SSO) login loops could occur on mobile by correctly propagating authentication errors to the login screen.
  • Fixed a compatibility issue with some identity providers by relaxing strict issuer URL matching for verified tokens.
  • Fixed an issue where concurrent session refreshes on mobile could conflict and fail.
  • Fixed a timing issue in the chat composer where the recording UI had not fully rendered before prompting for microphone access.
  • Fixed an issue where audio files with unknown durations failed to display the correct total time or allow seeking.

Improvements

  • Chat and push notification previews now display descriptive labels for attachments (e.g., ”🎤 Voice Memo”, ”📷 Sent an image”, “🎞️ Sent a video”).
  • Improved mobile session reliability with optimistic fast booting, proactive background token refreshes, and better error recovery. This should result in much faster mobile app startup time and fix image loading problems on app resume.
  • Improved chat synchronization by immediately refreshing unread message counters when the app returns from a suspended state.
  • Updated the default LiveKit voice chat UDP port range from 50000 to 30000 for better compatibility.
  • Improved infrastructure management by gracefully restarting the server when applying critical settings changes, replacing the previous external process approach.
  • Reorganized the mobile chat composer attachment menu for quicker access to photos, files, and voice memos.
  • Updated file upload handling to natively support .weba audio files.

August 2026

SERVER RELEASE v2026.8.3
2026-08-26

Bug Fixes

  • Fixed an issue where encrypted media attachments, files, and chat thumbnails could fail to load after a server restart or when access tokens expired.

Improvements

  • Added automatic recovery for expired image and file tokens, allowing media to seamlessly reload without requiring a manual page refresh.
  • Switched file access tokens to persistent encrypted payloads so attachment links survive server restarts.

SERVER RELEASE v2026.8.2
2026-08-25

New Features

  • Demo Sandbox Environment
    • Introduced a Demo Mode for guided server evaluations, complete with a Demo Settings interface, automatic data resets, restricted file uploads, and disabled background tracking for public showcases.
  • Secure File Vault
    • Overhauled file uploads and storage with a new secure vault system, ensuring better privacy, encryption synchronization, and reliable attachment handling.
  • Announcement Channels
    • Added support for announcement-only chat channels that restrict posting to authorized users, disable voice mode, and include a campaign icon for easy identification.
  • Server System Logging
    • Added a built-in logging system that records server events and errors, allowing administrators to easily view, search, and download server-side diagnostic logs from the Company Settings admin UI.

Bug Fixes

  • Fixed mobile single sign-on (SSO) login loops and secured the authentication flow against unsafe redirects.
  • Fixed an issue where video and media thumbnails could sometimes fail to load, generate, or time out during file uploads.
  • Fixed an issue where expired push notification subscriptions and device sessions were not being properly cleaned up from the server.
  • Fixed an issue in the chat composer where file upload placeholders were occasionally missing during paste or compression operations.
  • Fixed a bug that prevented the selected photo album from properly refreshing when the secure vault was unlocked.
  • Fixed a visual overlapping issue in the chat composer.
  • Fixed a race condition that occurred when deleting images from album selections.

Improvements

  • Added a customizable chat sidebar menu, allowing users to choose between Personal and Global category sorting modes and save their personalized channel and category order.
  • Added a “Silent Notification” mode and controls to limit consecutive notification sounds in User Settings, and choose how reply notifications are handled.
  • Improved profile privacy by allowing users to toggle their email address visibility, keeping it hidden by default unless explicitly made public.
  • Enhanced the chat reaction UI to group reactions by emoji with a count and highlight your own reactions.
  • Reworked the media viewer lightbox with a loading spinner and advanced gesture support (pinch, zoom, pan, swipe, double-tap, and long-press).
  • Updated “View Read Receipts” in chat to show a cumulative list of all users who have read a message.
  • Improved server performance and responsiveness by implementing asynchronous, queued disk writes and in-memory data caching.
  • Improved the reliability of concurrent file uploads by adding per-input tracking for native device upload events.
  • Improved the text renderer to properly preserve blank lines and display code blocks more consistently.
  • Improved backend security by migrating to short-lived, memory-backed file access tokens and hardening the Chat Vault API.
  • Improved the layout of channel creation and edit dialogs to remain stable and readable without shrinking while scrolling.
  • Updated the web application to automatically clear outdated cached files in the browser after a server update.

SERVER RELEASE v2026.8.1
2026-08-14

New Features

  • Secure Photo Albums
    • Create and manage encrypted photo albums to safely organize and share pictures with specific channels and group members.
  • Voice Noise Suppression
    • Enjoy clearer voice calls with new open source background noise suppression that filters out audio distractions.
  • Secure Chat Setup Wizard
    • Streamline secure chat configuration and employee access management with a new guided setup wizard.
  • In-App Server Updates
    • Check for available server software updates directly from the admin dashboard for easier system maintenance.

Bug Fixes

  • Fixed a bug that caused active user sessions to expire prematurely.
  • Fixed an issue that prevented pasting certain types of content into chat messages.
  • Fixed a bug where mobile screens would stay awake unnecessarily after exiting a voice channel.
  • Fixed missing media thumbnails and resolved audio routing issues on iOS devices.

Improvements

  • Upgraded the media viewer with touch-swipe navigation, swipe-to-dismiss, and fullscreen support for a smoother mobile browsing experience.
  • Improved the image upload process with drag-and-drop support, clear progress indicators, higher file size limits, and automatic compression.
  • Enhanced the chat interface with easier-to-read message reaction dialogs, detailed chat previews, and a new active user list.
  • Strengthened platform security for encrypted media storage, network relays, and system licensing.

SERVER RELEASE v2026.8.0
2026-08-03

Work in Progress & Minor Changes

  • August bug list - When the user does not use the app for more than 24h, the session cookie expires. When starting the app, the user is then shown the login page for a second before the automatic session refresh using the refresh token occurs. —> Implemented
  • August bug list - Opening the demo server for the first time on a new device often does not display images in the chat correctly. I think this is because the demo server is hosted on a slow google cloud vm. The time it takes the server to fetch the images from disk and then serve them to the client, the image load time has timed out. Add thumbnails and be more patient with image loading timeouts —> Implemented

July 2026

SERVER RELEASE v2026.7.1
2026-07-14

Work in Progress & Minor Changes

  • Bug hunt July 2026 - - can’t see pictures in the chat on ios. It’s only recently uploaded pictures that won’t display on iOS. —> Implemented & Tested
  • Bug hunt July 2026 - - the “user is typing…” Message stayed on screen even when the other user left the channel on thier device —> Implemented & Tested
  • Bug hunt July 2026 - - on mobile pressing play on a video in the chat does nothing. —> Implemented & Tested
  • Bug hunt July 2026 - - gifs should maybe also use a skeleton of the right size as a place holder while loading. Currently the chat resize when gif finally load in. —> Implemented & Tested
  • Bug hunt July 2026 - - logging out on iOS hangs on the page with a spinner saying “securely logging out”. The IDP browser never closes. —> Implemented & Tested
  • Bug hunt July 2026 - - logging out from one server on iOS also logged me out from all other connected server in the app. (All these server use a completely different IDP) —> Implemented & Tested
  • Bug hunt July 2026 - - once logged out on iOS, I can’t log back in. The “Welcome back. Please log in to continue.” Page is shown. But clicking on the “log in” button does absolutely nothing. —> Implemented & Tested
  • Bug hunt July 2026 - - hide the nav menu edit menu button from the friend edition. —> Implemented & Tested
  • Bug hunt July 2026 - - updating channel name in info panel works everywhere, except for the text field in the info panel. Edit the channel name, save, the old channel name remains. Reloading the page fixes the issue. —> Implemented & Tested
  • Bug hunt July 2026 - - the email field in the user profile dialog should not be read only —> Implemented & Tested

SERVER RELEASE v2026.6.18
2026-07-09

Important Information

  • Rework the login flow to better work on mobile
    • The login flow is setup with desktop browsers in mind. It relies on cookies. The mobile apps are terrible a keeping the cookies in sync. Solution : Implement a PKCE flow for the mobile apps.

New Features, Fixes & Improvements

  • QC for server-v2026.6.18
    • the press and hold is unreliable. Closing the channel and reopening it fixes the issue. I suspect an issue with the underlying JS file —> Implemented & Tested
      • sometimes when opening a channel, the channel opens for a fraction of a second(I can see messages), then the skeleton appears, then the channel content reappears. —> Implemented & Tested
    • pictures uploaded to be an avatar often show up sideways. Image upload to chat also upload sideways. —> Implemented & Tested
    • opening the action sheet should slightly vibrate the phone —> Implemented & Tested
    • Rich text for YouTube videos should show a player —> Implemented & Tested
    • chat reactions notifications should be enabled by default. —> Implemented & Tested
    • need a button to cancel a message edit —> Implemented & Tested
    • disable notifications, switch server, switch back to the original server. The notifications are now enabled again. —> Implemented & Tested
    • for users log in with Casdoor IDP, the email set in Casdoor shows up in the user profile card, but not in the user’s profile settings. —> Implemented & Tested
    • iOS users can’t see images in the chat —> Implemented & Tested
  • Chat bugs
    • editing a message on desktop doesn’t seem to update right away. Page Refresh required. Might only apply to encrypted channels. On desktop, type a message, arrow up, edit the message, press enter. —> Implemented & Tested (Implemented in server-v2026.6.4, Tested in server-v2026.6.4)
    • Sidebar sometimes show unread badge for messages that have already been read. —> Implemented & Tested (Implemented in server-v2026.6.4, Tested in server-v2026.6.4)
    • Copy button for code blocks does not work —> Implemented & Tested (Implemented in server-v2026.6.6, Tested in server-v2026.6.7)
    • rich link cards are clickable on the full width of the chat. should only be clickable on the card itself —> Implemented & Tested (Implemented in server-v2026.6.6, Tested in server-v2026.6.6)
    • Remove the server name from the notification title. Only the channel name and username of the sender. —> Implemented & Tested (Implemented in server-v2026.6.7, Tested in server-v2026.6.7)
    • Add a channel delete button to the channel info panel. This button should only be visible to family edition servers. —> Implemented & Tested (Implemented in server-v2026.6.7, Tested in server-v2026.6.7)
    • Where is the argive channel button? —> Implemented & Tested (Implemented in server-v2026.6.7, Tested in server-v2026.6.7)
    • on desktop, the chat doesn’t seem to always scroll automatically —> Implemented & Tested
    • When scrolling up fast on desktop, there is a lot of resizing as elements with images, rich links and other component load in. Would there be a way, when scrolling up, to load everything in the background and then display it when ready, instead of doing all the resizing in front of the user. —> Implemented & Tested

Work in Progress & Minor Changes

  • QC pass fixes - going through the iphone migration process (switching from an old iphone to a newer one), The spokes session is retained, but the push notification are also retained, but don’t work. To get notification working on the new iphone, the user must disable and re-enable notifications —> Implemented & Tested
  • QC pass fixes - Clicking on a notification with the app open in another server doesn’t swtich server properly. —> Implemented & Tested
  • QC pass fixes - Notification debug log copy not working on ios —> Implemented & Tested
  • QC pass fixes - Pictures posted to a channel prior to it’s conversion into a secure chat channel are no longer displayed. —> Implemented & Tested
  • QC pass fixes - Remove the snackbar notification for unlocking the secure chat —> Implemented & Tested
  • QC pass fixes - can’t copy the notification debug log on ios —> Implemented & Tested
  • QC pass fixes - on mobile, creating new channels does not update the side bar ui right away. —> Implemented & Tested
  • QC pass fixes - when a server is down, the mobile app takes a very long time to show the server unavailable page. instead the page remains blank and the server switcher is not accessible. —> Implemented
  • QC pass fixes - if the phone falls a sleep while the user is connected to a voice channel, the app hangs on a progress bar forever when trying to reconnect. (when the phone is unlocked) —> Implemented

June 2026

SERVER RELEASE v2026.6.17
2026-06-21

Important Information

  • Quick fix for the broken chat composer in v2026.6.16

SERVER RELEASE v2026.6.16
2026-06-20

Important Information

  • Some users might not receive notifications following this update. To fix the issue, the user needs to open the mobile app and connect to the server.
    • If notifications still don’t work. Disabling and re-enabling notification for that device might be necessary

New Features, Fixes & Improvements

  • Mobile apps have a problem with cookies
    • On app start, there is often a race condition between the capacitorhttp pluggin and the native ios/android cookies.
    • Remove the Capacitorhttp plugin and fix the mobile app swticher issues that will follow. —> Implemented & Tested
  • The registered device section of the user settings is a mess.
    • It’s trying to track both sessions and notification tokens, but does not rely on a single source of truth.
    • Refactor to instead only rely on the device id —> Implemented & Tested
    • Create an automatic migration flow for existing server —> Implemented & Tested

Work in Progress & Minor Changes

  • QC pass fixes - Deleted user cards are visible in the organization page —> Implemented & Tested
  • QC pass fixes - Change the moderate permission to “Moderator” —> Implemented & Tested
  • QC pass fixes - Does the default member permission group include the “create channels” permission? —> Implemented & Tested
  • QC pass fixes - New categories should be added below public, but above the default project category —> Implemented & Tested
  • QC pass fixes - when opening a channel with rich links or images, there is often a quick resize after the channel opens when the rich link cards appear. —> Implemented & Tested
  • QC pass fixes - the emoji picker should stay open after the user picks 1 emoji. This way they can easily send multiple emoji in a row. —> Implemented & Tested
  • QC pass fixes - when sending an encrypted message there is a short moment where the chat displays “encrypted message” instead of the actual message. —> Implemented & Tested
  • QC pass fixes - On ios, join a voice channel alone, start streaming video, when another user joins, the small preview in corner freezes. Changing camera unfreezes the preview. —> Implemented
  • QC pass fixes - On ios, sometimes the user’s avatar are not displayed correctly. Instead, the user sees a colored avatard with a question mark losage in the middle —> Implemented & Tested
  • QC pass fixes - On pixels, the task bar notification icon is a white circle instead of the spokes logo. —> Implemented
  • QC pass fixes - in the ios mobile app, when adding a channel, sometimes the cursor goes before the https:// —> Implemented & Tested

SERVER RELEASE v2026.6.14
2026-06-16

New Features, Fixes & Improvements

  • Casdoor URL is not being updated when the Server URL is changed in server settings
    • Because of this, if a user changes their server URL, the casdoor instance will keep redirecting to the URL the server was initially set up with. If this url is a local ip or a URL that no longer points to the server, things will break.
    • Call the system setup routine creating the app.conf to update the file everytime the the server url is changed. —> Implemented & Tested

SERVER RELEASE v2026.6.13
2026-06-15

New Features, Fixes & Improvements

  • Sometimes, when the mobile app resume from sleep, the idp shows up instead of simply login the user in
    • The idp should only ever appear when the refresh cookie is expired. This is not the case here. I suspect a race condition between the mobile os getting the cookies from disk and Spokes Blazor connection trying to reconnect.

SERVER RELEASE v2026.6.12
2026-06-15

New Features, Fixes & Improvements

  • Logout bug when using Discord as a provider in Casdoor
    • The Discord ID token is too big to be stored in the cookie. This causes the reverse proxies in front of Spokes to crash and return 502. Fix : Replaced the legacy HTTP redirect logout mechanism with a robust, browser-initiated GET routing system. This resolves multiple edge-case crashes across various infrastructure setups.

SERVER RELEASE v2026.6.9
2026-06-13

New Features, Fixes & Improvements

  • Fix the secure chat password is not being preserved between sessions on ios.

SERVER RELEASE v2026.6.8
2026-06-12

New Features, Fixes & Improvements

  • Optimize mobile app loading
    • fix bug when first reconnecting to a server after a server update. —> Implemented & Tested
    • Make reconnection when reopening the app as fast as possible. —> Implemented & Tested

SERVER RELEASE v2026.6.7
2026-06-11

Work in Progress & Minor Changes

  • Chat bugs - Copy button for code blocks does not work
  • Chat bugs - Remove the server name from the notification title. Only the channel name and username of the sender.
  • Chat bugs - Add a channel delete button to the channel info panel.
  • Chat bugs - Where is the archive channel button?

New Features, Fixes & Improvements

  • Voice chat
    • The green outline appears and disapears to quickly. Sometime it turns off while someone is speaking
    • when in a game on a spokes session with no notification or idle tracking, my session becomes away even though i’m actively talking in a channel
  • SSO improvements
    • Test that Casdoor can easily be used as a provider with other apps
    • Remove the add user button
  • Fix password manager autofil were it should not
    • make password manager save the secure chat password under a different credential
    • No auto fill for the channel search text box
    • Pressing enter should work to confirm the password on the channel locked prompt
  • Voice chat bugs
    • Long voice chat sessions seem to cause all kind of issues. I suspect some, if not most, are caused by a problem in how the dom is managed in voice channels.
    • Sometimes, in a voice channel with 2 users, one user stops hearing the other one. Nothing changes on the ui. After a while everything starts working again. Nothing changed in the ui at any point.
    • Remove the share screen button from mobile