You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+5Lines changed: 5 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,12 @@ Format follows [Keep a Changelog](https://keepachangelog.com/). Haven uses [Sema
13
13
14
14
## [Unreleased]
15
15
16
+
---
17
+
18
+
## [3.16.15] — 2026-05-20
19
+
16
20
### Fixed
21
+
-**Version display regression from v3.16.14 (#5369).** The v3.16.14 release tag was created without bumping `package.json`, so servers running v3.16.14 reported version v3.16.13 via `GET /api/version` and the `session-info` socket event. Corrected in this release.
17
22
-**Voice chat: ACTUAL ROOT CAUSE of the recurring self-vanish bug (#5347) — channel code rotation desync.** The new server-side `[VoiceDiag]` logs from the previous patch lit it up immediately: every time the bug hit, the server's auto-rotation timer had just rotated the channel's code (e.g. `95aa65d9 → aaeb3979`), but the voice clients still in the channel kept emitting `voice-rejoin` / `request-voice-users` / `voice-mute-state` with the OLD code. The server couldn't find the old code in the DB (because it was just updated), and the existing `channel-code-rotated` client handler only migrated `this.currentChannel` — it never touched `this.voice.currentChannel`. So every voice client was stuck holding a dead reference, the watchdog/self-heal loop ran forever, peers couldn't connect, and "everyone has to leave and rejoin to recover" was the only escape.
18
23
-**Client now migrates voice-side state on rotation** (`this.voice.currentChannel` and `this.voice._softLeftChannel`), not just the text-channel state.
19
24
-**Server now migrates the voice socket-room AND broadcasts the rotation event to the voice room too**, so users in voice but not viewing the text channel still receive the update.
<ahref="https://github.com/ancsemi/Haven" target="_blank">⛭ View on GitHub</a>
@@ -1437,7 +1437,11 @@ <h2>⬡ Haven Server — v3.16.14</h2>
1437
1437
<divclass="version-list">
1438
1438
<divclass="version-list-inner">
1439
1439
<divclass="version-item">
1440
-
<div><spanclass="v-name">v3.16.14</span><spanclass="v-tag latest">Latest</span> — Voice chat: server-side 4 s grace period before evicting a disconnected user so transient blips never broadcast <code>voice-user-left</code> to peers; fast-path rejoin that skips RTCPeerConnection renegotiation when the socket reconnects within the window; client-side roster watchdog that auto-fires <code>voice-rejoin</code> if we’ve silently dropped off the server list — fixes the recurring self-vanish glitch (#5347)</div>
1440
+
<div><spanclass="v-name">v3.16.15</span><spanclass="v-tag latest">Latest</span> — Voice chat: actual root cause of the recurring self-vanish glitch (#5347) fixed — channel code rotation desync caused voice clients to hold stale codes after server rotation, breaking reconnects until manual rejoin; null audioCtx crash on voice leave patched; version display regression from v3.16.14 corrected (servers reported v3.16.13 despite running v3.16.14) (#5369)</div>
<div><spanclass="v-name">v3.16.14</span> — Voice chat: server-side 4 s grace period before evicting a disconnected user so transient blips never broadcast <code>voice-user-left</code> to peers; fast-path rejoin that skips RTCPeerConnection renegotiation when the socket reconnects within the window; client-side roster watchdog that auto-fires <code>voice-rejoin</code> if we’ve silently dropped off the server list — fixes the recurring self-vanish glitch (#5347)</div>
<ahref="https://github.com/ancsemi/Haven" target="_blank">⛭ View on GitHub</a>
@@ -1437,7 +1437,11 @@ <h2>⬡ Haven Server — v3.16.14</h2>
1437
1437
<divclass="version-list">
1438
1438
<divclass="version-list-inner">
1439
1439
<divclass="version-item">
1440
-
<div><spanclass="v-name">v3.16.14</span><spanclass="v-tag latest">Latest</span> — Voice chat: server-side 4 s grace period before evicting a disconnected user so transient blips never broadcast <code>voice-user-left</code> to peers; fast-path rejoin that skips RTCPeerConnection renegotiation when the socket reconnects within the window; client-side roster watchdog that auto-fires <code>voice-rejoin</code> if we’ve silently dropped off the server list — fixes the recurring self-vanish glitch (#5347)</div>
1440
+
<div><spanclass="v-name">v3.16.15</span><spanclass="v-tag latest">Latest</span> — Voice chat: actual root cause of the recurring self-vanish glitch (#5347) fixed — channel code rotation desync caused voice clients to hold stale codes after server rotation, breaking reconnects until manual rejoin; null audioCtx crash on voice leave patched; version display regression from v3.16.14 corrected (servers reported v3.16.13 despite running v3.16.14) (#5369)</div>
<div><spanclass="v-name">v3.16.14</span> — Voice chat: server-side 4 s grace period before evicting a disconnected user so transient blips never broadcast <code>voice-user-left</code> to peers; fast-path rejoin that skips RTCPeerConnection renegotiation when the socket reconnects within the window; client-side roster watchdog that auto-fires <code>voice-rejoin</code> if we’ve silently dropped off the server list — fixes the recurring self-vanish glitch (#5347)</div>
0 commit comments