Commit Graph
15 Commits
Author SHA1 Message Date
ancsemi 90aabb428c Show the community server's status on the homepage 2026-10-17 12:35:02 -04:00
ancsemi cc30dfe859 Update Now works on installer and zip installs and starts Haven again 2026-10-15 12:10:35 -04:00
ancsemi 92738c2b09 Replace em dashes in server code comments and scripts 2026-10-10 16:08:55 -04:00
ancsemi 0b8c04e708 Replace em dashes in the English UI text and messages 2026-10-10 16:08:54 -04:00
ancsemi 77aabd9645 Remove an old homepage copy and two one-off patch scripts 2026-10-10 15:55:27 -04:00
ancsemi 38fedc35d5 Remove build machine paths from the bundled mediasoup-client 2026-10-10 15:51:48 -04:00
ancsemi 61a13b1d7f Voice relay (off by default): with the built-in relay on, each person in a call sends once to the server, which passes it on, so calls are no longer capped by everyone's upload. Mic, camera and screen go through it; bots and apps without relay support still connect directly in the same call; calls recover on their own after a server restart and move to direct connections if the relay is turned off. mediasoup is an optional dependency, so an install without it keeps working peer to peer 2026-09-27 03:44:53 -04:00
ancsemi 87d4f08e14 Load tester: an admin-adds-channels phase, a realistic list of other channels, and offline members with notifications on, sent to a stand-in push service trusted only by the throwaway server 2026-09-27 02:45:00 -04:00
ancsemi e216a82386 Load tester: scripts/loadtest.js starts a throwaway server, connects hundreds or thousands of fake people and reports server delay, traffic and message delay for arriving, chatting, reconnecting and status changes 2026-09-27 02:34:24 -04:00
ancsemi 52ca2f4ad2 A static theme preview page with sample content for theme authors, plus the script that regenerates it (#5631) 2026-09-15 18:53:34 -04:00
Amnibro 4a4435afe0 Every install path uses Haven's own certificate generator (#5586)
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.
2026-09-08 17:23:38 -04:00
ancsemi 9561670ce0 Soundboard fixes: no auto-show on launch, manage tab UX, eye icon shift
- Sidebar panel no longer auto-opens on app launch when sidebar mode was
  previously enabled. Panel always starts hidden; the toggle arrow on the
  right edge must be clicked to open it.
- Manage tab: custom sounds now appear above built-in sounds.
- Manage tab: both sections (CUSTOM and BUILT-IN) are now collapsible
  via native <details>/<summary> elements.
- Soundboard tile eye icon changed from display:none/inline to
  visibility:hidden/visible so it always occupies space. Hovering no
  longer shifts the tile content.
2026-06-13 14:10:46 -04:00
ancsemi dfb0fd3c27 Fix soundboard sidebar issues: mode toggle, collapse, built-in deletion, emoji corruption
- Disabling sidebar mode now closes the panel immediately rather than
  leaving it open in the background.
- Soundboard sidebar collapse now shrinks the panel to header height only
  (bottom: auto when collapsed) so the whole panel folds up, not just the
  sound grid.
- Users/voice sidebar collapse arrow repositioned to vertical center
  (top: 50% / translateY(-50%) instead of fixed top: 56px).
- Built-in sounds (AOL set) can now be removed from the admin Manage tab.
  Deleting a built-in adds it to a new disabled_builtin_sounds DB table
  so it no longer appears in the soundboard or event-assign selects.
- Removed the lock icon on built-in sounds and gave them a delete button.
- Fixed garbled emoji characters (pencil and trash can) in the Manage tab
  caused by double-encoded UTF-8 bytes; replaced with HTML entity forms
  that are immune to encoding corruption.
2026-06-13 13:31:53 -04:00
ancsemi bdbeff8258 site: restore emojis on landing pages + permanent UTF-8 guardrails
Restored ~70 corrupted emojis across docs/index.html and website/index.html (matched contextually: nav, hero, channel-code, platform tags, feature icons, footer).

Added four-layer prevention so this doesn't ship again:

- UTF-8 BOM on the landing pages (first 3 bytes EF BB BF)

- .editorconfig pinning charset=utf-8-bom for docs/website index + support

- .gitattributes working-tree-encoding=UTF-8 for landing pages, CHANGELOG, README, GUIDE

- scripts/fix-emoji-encoding.py reusable repair script

Verified hashes match between docs and website copies. Google Ads tag AW-17950126697 already present (2 occurrences in each file).
2026-05-27 09:47:51 -04:00
ancsemi 24be24db8f feat(#5357): auto-validate translation-only PRs
The ask was to decouple translations from the release cycle so
community translators don't have to wait on a maintainer to merge
strings. Loading translations from a CDN was offered, but pulling
untrusted JSON into the UI at runtime adds attack surface and breaks
the offline-friendly self-hosted story.

Instead, automate the merge path that already exists:

- New scripts/validate-locales.js checks every public/locales/*.json
  for JSON validity, _meta fields, and shape compatibility with
  en.json (same key paths, same value types). Missing keys are
  warnings (partial translations are OK, English is the fallback).
  Also runnable locally with 'npm run validate-locales'.
- New .github/workflows/translations-autovalidate.yml runs that
  validator on every PR that touches public/locales/**. If the PR is
  translations-only (no en.json, no code) and validation passes,
  it labels the PR 'translations-only' and turns on GitHub's
  auto-merge so it goes in as soon as required checks are green.
- Workflow runs on pull_request (not pull_request_target) so it
  cannot read secrets from fork PRs.
2026-05-23 23:31:04 -04:00