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
@@ -11,6 +11,11 @@ Format follows [Keep a Changelog](https://keepachangelog.com/). Haven uses [Sema
11
11
12
12
---
13
13
14
+
## [3.25.2] — 2026-06-18
15
+
16
+
### Fixed
17
+
-**App loaded completely blank — no servers, channels, users, or DMs, and nothing was clickable (regression in 3.25.x).** Three of the front-end JavaScript modules (`app-messages.js`, `app-media.js`, and `app-ui.js`) had been silently truncated mid-file in an earlier commit, cutting off the end of each file. Because the app bundles these modules together at startup, a single unterminated file is a fatal parse error that stops the entire interface from initializing — so the page connected to the server but rendered nothing and ignored every click. All three files have been restored to their complete form. If you were stuck on a blank Haven screen, update and hard-refresh (Ctrl+Shift+R) and it will load normally again.
<ahref="https://github.com/ancsemi/Haven" target="_blank">⛭ View on GitHub</a>
@@ -1437,7 +1437,11 @@ <h2>⬡ Haven Server — v3.25.1</h2>
1437
1437
<divclass="version-list">
1438
1438
<divclass="version-list-inner">
1439
1439
<divclass="version-item">
1440
-
<div><spanclass="v-name">v3.25.1</span><spanclass="v-tag latest">Latest</span> — <strong>Hotfix: Haven Desktop stuck on “Loading Haven…” on strict CSP clients.</strong><code>app.html</code> had a single inline <code><script>i18n.init();</script></code> tag that the page Content Security Policy (no <code>'unsafe-inline'</code> in <code>script-src</code>) was refusing to execute on strict clients (notably the Haven Desktop preload), which left the locale layer uninitialized and the splash hanging. Moved the bootstrap call into <code>i18n.js</code> itself and removed the inline tag from <code>app.html</code>. <code>init()</code> is idempotent so existing <code>await window.i18n.init()</code> callers still resolve against the same shared promise.</div>
1440
+
<div><spanclass="v-name">v3.25.2</span><spanclass="v-tag latest">Latest</span> — <strong>Hotfix: app loaded completely blank — no servers, channels, users, or DMs, and nothing clickable.</strong> Three front-end modules (<code>app-messages.js</code>, <code>app-media.js</code>, <code>app-ui.js</code>) had been silently truncated mid-file in an earlier commit. Because the app bundles these modules together at startup, a single unterminated file is a fatal parse error that halts the whole interface — so the page connected to the server but rendered nothing and ignored every click. All three files were restored to their complete form. If you were stuck on a blank Haven screen, update and hard-refresh (Ctrl+Shift+R) and it loads normally again.</div>
<div><spanclass="v-name">v3.25.1</span> — <strong>Hotfix: Haven Desktop stuck on “Loading Haven…” on strict CSP clients.</strong><code>app.html</code> had a single inline <code><script>i18n.init();</script></code> tag that the page Content Security Policy (no <code>'unsafe-inline'</code> in <code>script-src</code>) was refusing to execute on strict clients (notably the Haven Desktop preload), which left the locale layer uninitialized and the splash hanging. Moved the bootstrap call into <code>i18n.js</code> itself and removed the inline tag from <code>app.html</code>. <code>init()</code> is idempotent so existing <code>await window.i18n.init()</code> callers still resolve against the same shared promise.</div>
<ahref="https://github.com/ancsemi/Haven" target="_blank">⛭ View on GitHub</a>
@@ -1437,7 +1437,11 @@ <h2>⬡ Haven Server — v3.25.1</h2>
1437
1437
<divclass="version-list">
1438
1438
<divclass="version-list-inner">
1439
1439
<divclass="version-item">
1440
-
<div><spanclass="v-name">v3.25.1</span><spanclass="v-tag latest">Latest</span> — <strong>Hotfix: Haven Desktop stuck on “Loading Haven…” on strict CSP clients.</strong><code>app.html</code> had a single inline <code><script>i18n.init();</script></code> tag that the page Content Security Policy (no <code>'unsafe-inline'</code> in <code>script-src</code>) was refusing to execute on strict clients (notably the Haven Desktop preload), which left the locale layer uninitialized and the splash hanging. Moved the bootstrap call into <code>i18n.js</code> itself and removed the inline tag from <code>app.html</code>. <code>init()</code> is idempotent so existing <code>await window.i18n.init()</code> callers still resolve against the same shared promise.</div>
1440
+
<div><spanclass="v-name">v3.25.2</span><spanclass="v-tag latest">Latest</span> — <strong>Hotfix: app loaded completely blank — no servers, channels, users, or DMs, and nothing clickable.</strong> Three front-end modules (<code>app-messages.js</code>, <code>app-media.js</code>, <code>app-ui.js</code>) had been silently truncated mid-file in an earlier commit. Because the app bundles these modules together at startup, a single unterminated file is a fatal parse error that halts the whole interface — so the page connected to the server but rendered nothing and ignored every click. All three files were restored to their complete form. If you were stuck on a blank Haven screen, update and hard-refresh (Ctrl+Shift+R) and it loads normally again.</div>
<div><spanclass="v-name">v3.25.1</span> — <strong>Hotfix: Haven Desktop stuck on “Loading Haven…” on strict CSP clients.</strong><code>app.html</code> had a single inline <code><script>i18n.init();</script></code> tag that the page Content Security Policy (no <code>'unsafe-inline'</code> in <code>script-src</code>) was refusing to execute on strict clients (notably the Haven Desktop preload), which left the locale layer uninitialized and the splash hanging. Moved the bootstrap call into <code>i18n.js</code> itself and removed the inline tag from <code>app.html</code>. <code>init()</code> is idempotent so existing <code>await window.i18n.init()</code> callers still resolve against the same shared promise.</div>
0 commit comments