From 07e6e4271ea3a45e9cd364eb6ec05801a653d9e8 Mon Sep 17 00:00:00 2001 From: Christophe Besson Date: Sun, 30 Aug 2026 22:17:30 +0200 Subject: feat: configurable STUN server fallbacks for WebRTC ICE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The WebRTC transport relied on a single Google STUN server — if it was unreachable, ICE gathering waited the full 4s timeout. Now four public servers are used by default (Google ×2, Cloudflare, Mozilla), configurable via node.toml, the Node page UI, and the CLI (meshbay-node stun list|add| remove|reset). Changes are hot-swapped on the live transport. Co-Authored-By: Claude Opus 4.6 --- .../meshbay-hub/src/meshbay_hub/static/style.css | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) (limited to 'packages/meshbay-hub/src/meshbay_hub/static/style.css') diff --git a/packages/meshbay-hub/src/meshbay_hub/static/style.css b/packages/meshbay-hub/src/meshbay_hub/static/style.css index 2523c1a..e217cc8 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/style.css +++ b/packages/meshbay-hub/src/meshbay_hub/static/style.css @@ -2708,6 +2708,59 @@ h2 .gn-owner, h3 .gn-owner { font-size: 0.55em; } } .node-settings-actions { margin-top: 12px; + display: flex; + gap: 8px; +} + +/* ── STUN server list ─────────────────────────────────────────────────────── */ +.stun-server-list { + display: flex; + flex-direction: column; + gap: 0; + margin-top: 8px; +} +.stun-server-entry { + display: flex; + align-items: center; + justify-content: space-between; + gap: 8px; + padding: 6px 0; + border-bottom: 1px solid var(--border); +} +.stun-server-url { + font-family: monospace; + font-size: 0.85em; + flex: 1; + min-width: 0; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.stun-server-actions { + display: flex; + gap: 2px; + flex-shrink: 0; +} +.btn-icon { + min-width: 28px; + padding: 2px 6px; + font-size: 0.75em; + line-height: 1; +} +.stun-add-row { + display: flex; + gap: 6px; + margin-top: 10px; +} +.stun-add-row input { + flex: 1; + padding: 6px 10px; + border: 1px solid var(--border); + border-radius: 5px; + background: var(--bg-base); + color: var(--text); + font-family: monospace; + font-size: 0.85em; } /* ── Create Group Wizard ──────────────────────────────────────────────────── */ -- cgit v1.2.3