The Braid and Compact switches become a single picker: Original (Haven's
own layout) and every <Name>Layout.plugin.js on the server, one at a time.
A new layout plugin shows up without any change to Haven, so alternative
sidebars can ship as layouts while Original stays the default. The picker
shows the chosen layout even while it waits (Compact needs a wide window,
Braid waits for Mod Mode), and follows Braid's own shortcut and menu.
theme-authoring.md says what a plugin needs to appear there.
Without docs/blocklist.json every check failed closed, so the feature could
not be used. The updater now asks haven-app.com directly instead of going
through the github.io redirect, which stays allowed.
Most visitors need the desktop or Android app, not the server, and the top Download button handed them the server zip straight away. It now scrolls to the download section, where the app is listed first with the primary button and the server sits last, labelled as only for whoever hosts one.
The logo and name lead the page with the tagline as a small bold title above the lead. Screenshots are stored at full resolution, the gallery has a nav link and steps through every screenshot with the arrow keys or on-screen arrows, the phone shot moves beside the Security and privacy list, a community channel shot sits under the feature list, features get real bullets, and the wording moves backups to Extras and mentions theme effects.
The hero shows the current default theme, the green shot is a high-resolution CRT capture, and the grey login gives way to a chat channel in the Braid theme. The screen share and red login shots stay.
The project paragraphs join the About section beside the phone screenshot, which also evens out the column heights. Every screenshot opens full size on click or Enter, and closes on click or Escape. The captions under the screenshots are gone except the phone one.
Rebuilt from scratch: a short, documentation-style page with the start-up banner and a real screenshot up top, plain copy, a features list, the comparison table, setup steps, an honest security section with a table of every outside service the server contacts, numbers that refresh from GitHub, downloads, and a gallery. No tracking tag. The previous page is tagged old-homepage in git.
4.5.0 taught the server to make its certificate itself, but Start Haven.bat, Install Haven.ps1 and the web installer still went looking for openssl.exe first and reported a skipped certificate as done. They now call the same generator through scripts/gen-cert.js, the certificate carries the CA and server-auth flags phones expect when you import it, and the guide and support page stop telling people to install OpenSSL. Reported by MutantRabbit767.
The webhook ran the multipart parser before looking the token up, so a post
to a made-up token still cost up to 512KB of buffering. The token is now
resolved first and the body is only read for a real one.
The open profile card re-rendered its status and activity slots on every
online-users broadcast, which fires for every join, leave and poll, so a card
showing cover art recreated its image and restarted the progress timer each
time. It now compares against what it last rendered and only writes on a
change.
The API reference moves from the repo root to docs/listening-api.md next to
the other guides, and the links in Settings follow it.