Release History
Changelog
Every notable change to CatRealm — grouped by version, ordered newest first.
v1.6.9 Latest Mar 27, 2026 ▾
Forum Channels
- Added a new Forum Channel type — channels where members post dedicated topics that others can reply to in threaded views
- Redesigned forum UI to match a Discord-style layout with post cards, tag filters, and sort options
- Forum posts support an inline composer, optional cover image, and two layout modes (card grid / compact list)
- Attachments and Markdown rendering are now fully supported inside forum posts and replies
- Forum post create and delete events are now broadcast live over the socket so all members see changes without refreshing
- Fixed several stability issues: crash when viewing threads with attachments, ThreadPanel not opening from forum post view, and array guard errors in the forum data layer
- Fixed socket room join missing for live thread updates in the forum thread view
Welcome Board & Onboarding
- Added a Welcome Board feature — servers can set a custom onboarding screen shown to new members on first join
- Server admins can preview the Welcome Board from settings and reset onboarding state for testing
- Fixed Welcome Board onboarding UI and expression picker interaction
Account Security
- Added a dedicated Account Security settings tab for central accounts
- Backup Codes — generate 10 single-use 64-character recovery codes; codes can be re-revealed later after verifying your 2FA; paste a backup code into the 2FA field at login as a fallback when your authenticator is unavailable
- 2FA Key Rotation — self-service TOTP secret change: verify your current code, scan a new QR in your authenticator, then confirm the new code to complete the rotation
- Security Keys & Passkeys (WebAuthn) — register hardware security keys or device passkeys from Account Security settings; once registered a "Use passkey / security key" button appears on the login screen
Voice & Calls
- Rewrote voice and call end-to-end encryption sessions for improved reliability and key-exchange correctness
- Fixed voice screenshare negotiation and stage UX glitches
Desktop Game Activity
- Fixed desktop game activity not clearing correctly when the feature is disabled
- Fixed a build error in the game activity detector module
- Refined how activity information is presented on profiles
- Fixed stale manual activity not restoring correctly after reconnects
Known Issues
- ⚠️ Desktop Game Activity — elapsed timer missing: Activity correctly detects games and shows "Active Now" on profiles, but the elapsed play-time timer does not appear. Fix planned for a future patch.
Bug Fixes & Polish
- Fixed DM list persisting from a previous account when switching users — all DM, group chat, and friend store state is now fully cleared on logout
- Fixed multi-attachment gallery layout and NSFW blur overlay coverage
- Fixed presence status and activity timers not updating correctly
- Fixed DM composer placeholder centering; migrated server composer to contenteditable for richer input handling
- Updated desktop main process internals
- Bumped client package version to 1.6.9 for this release
v1.6.8 Mar 19, 2026 ▾
Webhooks
- Added a full Webhook system — create and manage webhooks per-channel or per-category from Server Settings
- Webhook Manager supports creating, editing, regenerating tokens, and deleting webhooks, with a live secret token viewer
- Webhooks can be scoped to specific channels or categories and are manageable directly from the channel/category editor modals
- Added IP locking — restrict a webhook to a specific trusted IP address so only authorized senders can POST to it
- Added a per-webhook enable/disable toggle so webhooks can be paused without being deleted
- Webhook delivery events are routed through the socket handler and broadcast to the correct channel in real time
Scheduled Messaging
- Type
@schedulein the composer to open the Schedule Message Modal and pick a future send time - Scheduled messages are stored server-side and only visible to the sender until a background job publishes them at the designated time
- Works in both server channels (requires the new Schedule Messages permission, bit 46 — Helper tier) and DMs
- DM scheduled messages are capped at 24 hours ahead; server channel messages up to 30 days ahead
- Scheduled message indicators appear inline in the message list so the sender can see pending sends
View-As Role Sessions
- Admins can now enter an authoritative View-As Role session — the server enforces the selected role's permissions end-to-end, not just client-side
- A persistent banner is shown globally while a view-as session is active, accessible from any screen
- Auth state, channel list, and permission checks all refresh automatically when entering or leaving a view-as session
- Channel owner checks on the server now correctly honour the active view-as role
- Fixed view-as state being silently overwritten and added recovery for chunk-load failures that occur mid-session
- Improved the role-switching UI and added a Developer tab in profile settings exposing view-as debug controls
Voice Controls & Presence
- Added Push-to-Talk controls to the voice toolbar — bind a key and hold it to transmit
- Polished the voice activity timer — shows elapsed time with seconds precision and stays accurate during long sessions
- Reworked the docked voice controls bar at the bottom of the sidebar for a cleaner layout
- Fixed profile presence not updating correctly when joining or leaving voice channels
Category Permissions & Channel Editor
- Completely reworked the category permission editor — permission overrides are now managed per-role with a clear allow/deny/inherit grid
- Voice channel move permissions are now enforced through the category permission model
- Reworked the Channel Editor modal — redesigned layout with separate tabs for general settings, permissions, and advanced options
- Seeded correct default member text permissions when new channels are created
Mention Suggestions
- Mention suggestion list now appears above the text box instead of overlapping it
- Suggestion ordering: system aliases (
@schedule, etc.) → roles sorted by position (descending) → members - Member entries in the list now display their real avatars
Iwara Embeds
- Added Iwara video embeds on the desktop client — Iwara links now render an inline video player using the desktop webview path
- Web clients fall back to a clearly-labelled open-in-browser link when desktop embed is unavailable
Bug Fixes & Polish
- Media attached to a deleted message is now removed from storage immediately rather than on the next cleanup pass
- Fixed clipboard read/write handling for paste-to-upload flows
- Fixed central-server presence not restoring after a socket reconnect
- Bumped client package version to 1.6.8 for this release
v1.6.7 Mar 14, 2026 ▾
Media Viewer & Forwarded Media
- Reworked media viewing with a full-screen overlay, avatar/header context, toolbar controls, and gallery-style browsing
- Improved forwarded-media handling with a protected forwarded indicator backed by the server
- Preserved attachment files while forwarded copies still exist, preventing forwarded media from breaking after the original message changes
- Fixed unknown sender username/avatar issues in DM forwarded media and media viewer surfaces
DM Uploads & Spoilers
- DM multi-file uploads can now be bundled as a single gallery message
- Raised DM upload limits to 50 MB per file with up to 8 files per message, backed by an overflow queue for larger batches
- Fixed DM multi-upload behavior and a persistent unread badge issue
- Added Spoiler tagging to the attachment NSFW tagger and fixed spoiler tags being stripped by the server-chat allowlist
- Fixed spoiler/NSFW blur missing in the DM gallery and group chat overlay
- Added a clearer user-facing error when an attachment upload is too large
Desktop Game Activity & Presence
- Added desktop Game Activity detection to the Electron client, with Cat Lab controls to enable or disable it locally
- Recognized games now publish a proper Playing ... presence with elapsed session time
- Separated Custom Status from game activity so auto-detected games no longer overwrite your manual status text
- Presence payloads now carry custom status and activity independently across profile fetches, friends, member lists, and socket updates
- Fixed activity timers getting stuck at
0mby updating the display every second and showing seconds under the first minute - Fixed the game activity timer resetting around the detector refresh window by preserving the original session start time across refreshes
- Profile view now shows activity duration as
days hours minutes seconds, while compact areas keep the shorter display
Embeds, Updates & Client Fixes
- Added Embedding Login to Cat Lab for YouTube and X embeds
- Fixed YouTube Shorts embeds and corrected Shorts aspect ratio to
9:16 - Added the Open Links in CatRealm setting
- Stopped periodic update checks once an update is found and added a check for another action
- Handled missing banner images more gracefully in profile settings
- Fixed Electron attempting to fetch
/api/serverfromfile:///C:/...when no active server URL existed - Improved Windows process start-time parsing for detected games
- Fixed the React hooks-order error in
DMAttachmentPreview - Bumped client and server package versions to 1.6.7 for this release
v1.6.6 Mar 12, 2026 ▾
Voice Messages
- Added custom AudioPlayer with waveform visualiser, seek bar, and volume slider — replacing the default browser audio element
- Added voice message recording directly in the DM composer with a hold-to-record interface
- Voice messages support an optional auto-delete timer (30 min · 3 days · 7 days · 14 days · 30 days) shown as an expiry clock badge on the player
- Fixed AudioPlayer showing
Infinity:NaNfor webm duration on load - Fixed waveform disappearing and seek/waveform misalignment
- Fixed
AudioContextdouble-close errors in both the player and recorder - Fixed
voice_expires_atalways arriving as null for file-attachment DMs and not reaching clients - Waveform progress is now smoothed with
requestAnimationFrame
Server List — Sorting & Folders
- Servers in the sidebar can now be drag-and-drop reordered
- Servers can be grouped into folders — click a folder to expand/collapse its servers
- Sort order and folder layout persist across sessions
DM Retention
- Fixed retention changes not being applied to existing messages — messages older than the new retention window are now deleted immediately when both users accept a change
- Remaining messages have their expiry recalculated as
created_at + new_retention, anchored to send time rather than acceptance time - Fixed messages deleted by retention briefly flashing before disappearing — stale IndexedDB entries are now evicted after the server response
- Fixed DM messages loading out of chronological order for ~1 second on open — IndexedDB results are now sorted by
createdAtbefore display
DM — Other Fixes
- Fixed message duplication when the sender has multiple clients open simultaneously
- Replaced browser
confirm()with a styled ConfirmDialog for DM message deletion - Fixed 429 rate-limit storm on socket reconnect —
loadMessagesis now deduplicated per conversation; DM rate limit raised to 300 req/min
Personal Roles
- Added Personal Roles Manager accessible from the Friends List header — create and manage cosmetic roles visible across all servers
Performance & Caching
- Server icons, banners, and profile pictures are now cached by the browser for 7 days — eliminates redundant re-downloads on every page load
- Hashed JS/CSS assets (
/app/assets/) now served withimmutable, max-age=1y - Fixed
index.htmlbeing cached by browsers/CDN — it is now served withno-store, preventing stale chunk-hash references after a deploy that caused module load failures
Settings — Cat Cache
- Added Cat Cache section under Content & Social settings — shows all browser-cached images grouped by Avatars, Banners, User Generated Content, and System Images
- Click any thumbnail to view it full-size
- Purge All button force-refetches every cached image and updates the display immediately
Landing Page & Invite
- Added a public invite landing page at the server root — shows server name, member count, banner, and a Join button
- Landing page now uses a full-page blurred banner background matching the in-app invite style
- Added CatRealm favicon and matched background gradient to the client invite page
Pterodactyl Egg
- Switched startup to a Node bootstrap script — resolves native module (better-sqlite3) compatibility in musl containers
- Fixed flat
.envgeneration andSERVER_URLauto-update on SSL toggle - Fixed
AUTO_UPDATE_RESTART_ON_STARTdefaulting to false - Env file is now backed up before egg reinstall; duplicate startup logs and premature exits resolved
v1.6.5 Mar 11, 2026 ▾
Role Icons & Styles
- Added custom role icons — small images displayed next to usernames in chat messages and the member list
- Added advanced name color styles: Gradient, Glow, and RGB Flow (animated cycling gradient)
- Role icon and style data is now included in message payloads and socket presence events
- Chat messages live-update role styles via the presence store — no page reload required
- Role icon URLs are resolved against the server base URL, preventing broken
file:///paths - Profile role badges apply gradient/glow/rgb_flow styles to the name text and use the first gradient stop for the bubble background and border
Admin — Appearance Modal
- Merged "Role Color" and "Name Style" into a single Appearance modal per role
- Style type selector: Solid, Gradient, Glow, RGB Flow
- Gradient and RGB Flow expose two colour-slot buttons with a shared colour picker
- Custom HSL colour picker with Presets and Color Picker tabs — no native browser colour input
- Live preview renders the role name with the chosen style before applying
Admin — Role Editor UX
- Replaced the inline "Changes stay local until you click Save & Apply" bar with a floating bottom-center bar
- Floating bar pulses with a purple glow and shows animated "Current Changes are NOT saved!" warning text
- Discard (red) and Apply (purple sparkle) buttons on the floating bar
Chat Search
- Added Discord-style right-side search panel — press Ctrl+F to open, Esc to close
- Server-side cursor-paginated search with inline operator syntax:
from:,in:,has:,mentions:,before:,after:,on: - Autocomplete suggestions for
from:,in:,has:, andmentions:operators - Client-side DM search (E2E encrypted — filtered locally without server roundtrip)
- Clicking a search result jumps to the message in the channel with a yellow highlight ring
v1.6.4 Mar 10, 2026 ▾
Hotfixes
- Added authenticated embed fetching for central-account DMs so
x.comand other previews no longer fall back to blank messages - Mounted
/api/embedsand/api/embed-mediaon the central auth server so DM embeds resolve through the main CatRealm service - Improved group chat member list behavior on smaller screens with a mobile slide-in members panel
- Fixed group chat mobile drawer runtime crash caused by declaration order in the Home view renderer
- Added animated X/Twitter GIF detection so tweet GIF embeds autoplay, stay muted, and loop instead of rendering like standard MP4 clips
- Replaced text label with a lock icon in the DM encryption info modal
v1.6.3 Mar 10, 2026 ▾
Messaging
- Added multi-attachment support — send up to 5 files in a single message across server chat, DMs, and group chats
- Added
<?img1>inline image placeholders — insert uploaded images at any position in your message text - Non-inline attachments render in a flex grid below the message body
- Multi-attachment media viewer supports paging through all images in a message
Chat Markdown
- Added
__underline__,~~strikethrough~~, and||spoiler||(click to reveal) formatting - Added
>>>multi-line blockquotes that consume all remaining lines - Added
>single-line blockquotes - Added
[text](url)markdown link syntax - Added copy button on fenced code blocks
- Changed inline and block code color to the app accent (purple)
- Rewrote inline renderer as a recursive scanner — nested formats like
__*text*__and***__text__***now work correctly
Security
- Attachment URL, filename, and attachments JSON are now encrypted at rest (AES-256-GCM) in DM and group chat message tables
- User notes encrypted at rest — private notes are no longer stored as plaintext
- Backward-compatible — existing plaintext records are read transparently; only new writes are encrypted
DM Calling
- DM calls now survive one party disconnecting — the call stays alive and reconnects automatically if they rejoin within 5 minutes
- Added
call:participant-leftandcall:participant-joinedevents so the remaining participant is notified of the other's connection state - Added 5-minute alone timeout — if the other person never rejoins, the call ends cleanly with a system message
- Disconnect grace period now uses the participant-left model instead of immediately terminating the call for both parties
- Centralized call finalization logic for consistent DB updates, system messages, and timer cleanup across all end-call paths
UI & Polish
- Improved group chat member list layout and spacing in the Home view
- Replaced text label with a lock icon in the DM encryption info modal
Bug Fixes
- Fixed duplicate
constdeclaration crash on startup in both the auth server and self-hostable serverdb.js - Fixed landing page comparison tooltip z-index so it renders above the sticky first column
- Updated Mobile Apps entry in landing comparison table to reflect browser mobile support
v1.6.2 Mar 8, 2026 ▾
Messaging
- Fixed edit actions so your own messages can be edited again in DMs and group chats
- Restricted server-side message edits to the original sender so users cannot edit other users' messages
- Restored missing message action menu entries in shared chat rows
Reactions & Picker
- Reworked the reaction picker to open from the reaction
+button instead of drifting toward the chat composer - Adjusted floating picker placement and viewport clamping so the panel opens on the lower-left side of the trigger without going off-screen
- Fixed the production hook crash that could break the DM reaction picker bundle
Group Chats
- Fixed the group chat expression picker manifest request to use
/api/expressions/manifestinstead of the dead/api/emotes/manifestroute
v1.6.1 Mar 2, 2026 ▾
Hotfix
- Preserved animated profile uploads so profile media keeps its original animation instead of being flattened or mishandled during upload processing
v1.6.0 Mar 1, 2026 ▾
Audio Processing
- Added ML-based noise suppression powered by RNNoise WASM — runs in an AudioWorklet, zero overhead when disabled
- Added RMS noise gate with smooth attack / release / hold envelope to prevent mic bleed during silence
- Noise gate threshold adjustable from −60 dB to −10 dB via a live slider
- Live voice activity meter below the gate slider — bar turns green when signal clears the threshold, amber line marks the cutoff
- Both features default to on; users with external noise suppression (Elgato Wave Link, NVIDIA RTX Voice, etc.) can disable independently
- Pipeline rebuilds seamlessly on settings change mid-call — no dropout, no reconnection
- Threshold slider updates the AudioWorklet in real time with no pipeline rebuild
- Mic test in Voice Settings now records through the same processing chain callers hear
- Settings persisted to localStorage across page reloads
DM Calling
- Added audio and video DM calls with full P2P and privacy (relay) mode support
- Incoming call banner, ringtone, and decline/accept flow
- Docked call control bar with mute, deafen, camera toggle, and screenshare
- Floating DM call status panel and screenshare popout window
- Call reconnection and resume handling for dropped connections
- Per-call TURN credential fetch with privacy-mode relay enforcement
Group Chats
- Added encrypted group chats — create a group, invite friends, chat privately
- Group chat message rows with avatar stacking and member list
- System messages for join / leave / name change events
- Group chat avatar generation from member initials
- End-to-end encrypted key exchange for group sessions
Group Calling
- Added multi-party group calls with audio and video
- Participant grid with per-user mute / deafen / video state
- Group screenshare popout with dedicated controls
- Incoming group call modal with group name and initiator info
- Stream watch mode — join a call as a viewer without sending media
Shared Chat Refactor
- Unified DM and server chat through adapter-driven shared components
- Shared message row, context menu, embed renderers, and composer
- Redesigned Home / DM menu layout with improved navigation
- 59 unit tests covering expressions, message actions, and DM context
v1.5.x Feb 22 – Mar 1, 2026 ▾
Media & Attachments
- Added configurable chat media compression with quality and size controls (v1.5.5)
- Fixed premature blob preview URL revocation
- Fixed multi-expression uploads and personal expression management
Keybinds & Shortcuts
- Added configurable keyboard shortcuts with chord binding support
- Added DM shortcut parity — navigate conversations with keyboard
Mobile
- Added mobile navigation drawer and message action bottom sheet
Moderation & Permissions
- Implemented kick and ban membership enforcement
- Fixed permission bit collisions and online member label
- Auto-delisted stale discovery invites and synced content prefs
- Fixed central content preferences source for central accounts
Voice (v1.5.0)
- Overhauled voice channel UI and added voice moderation menu
- Added slowmode UI and improved voice session handoff
CI / Self-Hosted Windows Runner
- Allow selecting a self-hosted Windows runner for manual builds
- Use PowerShell and Windows PowerShell on self-hosted runner
- Tighten SSH key ACLs and retry SCP deploy in a single connection
- Fix self-hosted
known_hostsACL rewrite on reruns - Skip artifact upload for self-hosted Windows deploys
- Auto-delete Windows build artifacts after deploy
Bug Fixes
- Fixed DM presence indicators, reactions, and message UX
- Fixed profile UI menus and server profile sync edge cases
- Fixed friend refresh throttling and expression picker errors
- Fixed AppLayout friend refresh calls for current store API
v1.4.x Feb 16 – 21, 2026 ▾
Permissions
- Migrated to grouped permission mappings with safe high-bit flags
- Added category overwrites and channel/category sync
- Enforced channel overrides across chat and voice
- Refreshed online role presence after permission changes
Encrypted Chat (Secure Mode)
- Added one-way secure mode for encrypted message storage
- Auto-generated secure mode key and updated env templates
- Migrated existing plaintext messages when secure mode is enabled
- Fixed secure-mode crypto caching causing plaintext live writes
- Auto-healed plaintext message rows on secure-mode startup
- Prevented secure key drift and enforced key hash consistency
- Added
db-encrypt-legacydiagnostic command - Added developer panel console command runner UI
- Added admin console-command API fallback for diagnostics
- Added runtime console commands for DB and secure-mode diagnostics
- Showed encrypted lock badge in channel header when secure mode is locked
- Added secure server info modal accessible from encrypted badge
Embeds & Link Previews
- Added server embeds, branding assets, and custom expressions management
- Added generic link previews with safe server-fetch route
- Added direct Twitch and Twitter embeds; removed empty preview fallback
- Fixed Twitter/VX embeds by removing twitframe and using vx API previews
- Proxied Twitter media through signed same-origin embed endpoint
- Resolved relative embed proxy URLs against active server API base
- Showed metadata block for media embeds (poster/content)
- Added direct Kick channel and VOD iframe embeds with official metadata
- Added fixvx.com to trusted and Twitter-like embed handling
- Opened embed images in media viewer modal
- Supported multi-image X/Twitter embed galleries
- Used official Instagram embed iframe in chat previews
- Fixed YouTube embed error 153 on desktop
- Fixed Twitch embed CSP handling in desktop
- Enriched desktop Twitch fallback with profile metadata
Expressions / Emotes
- Auto-normalized expression sizes with generated variants
- Added emotes settings tab with size slider
- Overhauled emote tokens and added shortcode matching
- Enlarged emotes and compacted expression tokens
- Supported
:name:userId:personal tokens and managed uploads - Added personal emote storage with auto variants
- Prioritized personal expressions in pickers and matcher
NSFW / Content Controls
- Hid NSFW channels server-side unless explicitly enabled
- Moved NSFW permission gate notice from sidebar into channel view
- Auto-blurred tagged NSFW media based on user subtag preferences
- Showed NSFW subtag labels on blur overlays
- Added pre-send NSFW attachment tagging with persistence
Discovery
- Added Discover page and owner-gated server publishing
- Allowed legacy owner role for publish controls
- Fixed mixed-content checks for HTTP-only servers in discovery UI
- Added server modal hosting notice and publish docs backup
Invites
- Hardened invite registration flow and improved invite modal UX
- Derived self-host invite origin from request host, not browser origin
- Probed HTTPS first, then HTTP fallback for server URLs
- Routed invite actions back to
/appinstead of landing root - Animated backdrop stars and skipped startup splash on invite routes
- Added subtle breathing white border glow to invite cards
- Resolved public server IP when host is unroutable (0.0.0.0/localhost)
- Surfaced clear HTTPS/HTTP connectivity errors when accepting invites
- Returned clear port-forwarding error when public endpoint is unreachable
- Embedded CatRealm invite links into in-app modal
Profile & Banners
- Added per-server profile banner controls with central fallback
- Auto-synced central banner and avatar on server load/switch
- Fixed profile modal asset resolution for server-uploaded banners
- Fixed profile route collisions and central banner fallback noise
- Used central content-social preferences for central accounts
- Disabled cross-API profile fallback while in server context
Desktop App & Auto-Updater
- Added opt-in dev update channel and Updates settings tab
- Added desktop update banner with Electron updater actions
- Showed dynamic client build label in settings footer
- Scheduled periodic desktop update checks by channel
- Polished update settings warning animation and NSIS branding
- Added splash screens and updated app icon to CatRealm cat logo
- Smoothed banner transitions and lengthened startup splash
- Hardened Windows shutdown path and disabled auto-install on quit
DMs
- Added DM reactions and attachments
- Added DM quick reaction picker
- Fixed DM composer parity
- Added color-coded status indicators for DM users
- Fixed DM status and timestamp issues
Landing Page
- Updated landing with favicons and server download dropdown CTA
- Scaled up landing page typography and layout
- Shifted landing background to dark purple tone
- Expanded privacy summary coverage across web and in-app modal
- Made landing server download commit tag dynamic
- Enabled landing page client download button
Miscellaneous Fixes
- Fixed self edit/delete ownership for central server sessions
- Allowed editing and renaming the default member role
- Honored 24-hour setting across chat and moderation
- Set DarkCat as default theme and moved RetroDiscord to bottom
- Prevented premature blob preview URL revocation
- Fixed Git issue when downloading from
.zip - Added offline servers indicator and modal
- Added verbose auto-update checks with voice-aware runtime gating
- Added selfhost auto-update launcher, egg repo wiring, and env examples
v1.4.0 Feb 14, 2026 ▾
Features
- Comprehensive feature enhancement and dynamic version tracking
- UI improvements: replaced sliders with number inputs and added toggles
- Made version display dynamic in Settings UI
- Separated client and server version display
- Fixed "0" appearing after channel names
- Added Content & Social tab to user settings (NSFW filtering, URL-based template import)
- Added comprehensive template import safety system with verification and real-time status
- Fixed template import to use Discord API instead of HTML scraping
- Added Discord-only permissions for template import compatibility
v1.3.0 Feb 14, 2026 ▾
Permissions
- Comprehensive permission system overhaul
- Added granular channel and role permission controls
Server Settings
- Discord-style server settings overhaul
v1.2.0 Feb 13, 2026 ▾
Encrypted Direct Messages
- Implemented end-to-end encrypted direct messages
- Added real-time socket delivery for DM messages
- Fixed syncKey retrieval in DM store
- Fixed field naming in DM conversations API
- Fixed avatar URLs in DM components
Voice Chat & Screenshare
- Added TURN servers for WebRTC NAT traversal
- Added coturn integration and TURN mode configuration
- Used deterministic WebRTC offerer election to avoid glare collisions
- Hardened voice signaling for join race and stale socket mappings
- Added voice state resync event for cross-client mute/deafen consistency
- Synced voice mute state across sessions
- Added
TURN_FORCE_TCPoption for restrictive-network reliability - Preserved remote audio stream across screenshare track updates
- Tracked global voice room counts and showed accurate voice occupancy
- Showed voice members in sidebar and made voice text chat toggleable
- Fixed voice ring clipping and improved remote speaking detection
- Rendered remote screenshare tiles in voice channel UI
- Stabilized screenshare renegotiation and concurrent offer handling
- Auto-reconnected peers on ICE failure and showed RTC reconnecting status
- Fixed missing outbound audio track during voice negotiation
- Expanded voice debug panel with peer connection state details
Privacy
- Added privacy summary modal and public privacy page
- Served privacy summary at
/privacy/on static landing
Central Account & Auth
- Auto-loaded hCaptcha keys and exposed runtime site key config
- Encrypted auth secrets at rest and auto-provisioned encryption key
- Re-issued central server tokens on login restore
- Isolated central account server lists across logout/login
- Added configurable default avatar for new central and local users
- Added central/local username blocklists and deduped reserved names
- Broadcast and applied live server-info updates
- Synced central display names into mixed self-host users
- Showed display names in user footer/profile bar
Invites & Server Joining
- Completed invite system with all enhancements
- Added central masked invite system
- Fixed invites route to use
authenticateTokeninstead ofrequireAuth
v1.1.0 Feb 13, 2026 ▾
Major Features
- Display Names — Users can set a custom display name separate from username
- Custom Status — Users can set a custom status message
- Reply / Forward — Added message reply and forward support
- Verified Badges — Added verified badge system
- Fixed voice chat regressions
Self-Hostable Server
- Bumped self-hostable server version to 1.1.0
- Fixed index creation ordering (columns exist before indexes are added)
- Added version detection system with update banner
v1.0.x Feb 12, 2026 ▾
Initial Release
- Initial commit — CatRealm base platform
Voice & Screenshare
- Voice chat with screensharing and E2EE foundations
- Fixed TypeScript strict mode errors
Members & Sockets
- Showed all server members in sidebar with online/offline indicators
- Kept socket alive on home page
- Added socket synchronization for central status
DNS & SSL
- Added DNS-01 challenge support for Auto-SSL (Cloudflare)
- Defaulted DNS provider to Cloudflare when API token is set
Pterodactyl Egg
- Added and updated Pterodactyl egg configuration
- Added easy startup scripts for non-Pterodactyl hosting
- Added automatic Node.js installation with UAC support
- Fixed Pterodactyl graceful shutdown handling