2026 Stage 5 Release — Polls, Recording, Subscriptions & Smarter Rooms

2026 Late Summer Stage 5 — Polls, Recording, Subscriptions & Smarter Rooms

📊 Polls in Every Room

Room owners and moderators can now run live polls in any permanent room — no paid plan required. Create a poll, let everyone vote, and watch the results update in real time on a draggable, minimizable overlay that stays out of the way until you need it. Votes are counted server-side, so the tally is always trustworthy and can’t be tampered with from the browser. When a room is deleted, its polls and votes are cleaned up automatically.

🎙️ Room Recording

Record your room audio straight from the dashboard. Hit the new Record button in the room controls to start and stop, watch the live status indicator, and a consent banner lets everyone in the room know recording is on. Recordings are audio-only (a single mixed track of everyone in the room), capped at four hours, and kept based on your plan — 24 hours on Standard, 6 months on Pro. Owners get a new My Recordings page to browse, download, and delete recordings, with expired ones hidden by default. Recording is available to paid subscribers.

🏛️ Room Names You Can Trust

Room ownership is now tracked by a dedicated registry instead of relying on broadcast events, so there’s a single source of truth for who owns what. Renaming a room no longer breaks the live session or kicks anyone out — the room keeps its identity behind the scenes while the display name changes. Room names are now restricted to URL-safe characters (with support for unicode and apostrophes), guessable temporary names are reserved, and nobody can claim a room that’s already live. The dashboard now registers a room with the relay before announcing it, so a room only shows up in discovery once it’s actually yours.

🔐 Real Login Verification

Signing in now proves you actually own your key. Previously the login flow trusted whatever pubkey the client sent — now the server issues a challenge, you sign it with your Nostr key, and only then is a session created. This closes a long-standing impersonation gap without changing anything about how you log in day to day.

💳 Subscriptions & Pay-to-Relay

Subscriptions are settled through LNbits with a cleaner polling-based flow (no more fragile callback endpoints), comp grants are kept perpetual, and resubscribing no longer expires your rooms. Buying a subscription now uses the L402 protocol — the relay hands back an invoice, you pay through Bitcoin Connect or any external wallet via QR, and the dashboard automatically retries with your payment proof. Temporary rooms are dashboard-only; third-party apps need an entitled owner to spin up a room. Free rooms get a grace period and clear, structured messages when a paid plan is required.

📚 Relay API Documentation

The relay now ships its own API docs at /docs, with a light/dark theme toggle, dynamic server URL, and a clean sidebar. There’s also an llms.txt for agents and an AGENTS.md for contributors. The auth model and endpoint contracts were corrected to match what’s actually shipped, internal routes are hidden from the public reference, and /docs/ routes cleanly to the main page.

🎨 Dashboard Polish

A batch of UI improvements shipped this stage: Krisp AI noise suppression toggle in your microphone settings (with a graceful fallback to your browser’s built-in noise suppression if the server lacks the Krisp license), a notifications bell with an updates history page, lock and private badges on active-room tiles, the HiveTalk logo in the settings header, and cascade-delete UI for cleaner room removal. Your camera and microphone choices from the join screen now carry through into the room.

🧹 Bug Fixes & Polish

  • Poll and temporary-room detection is correct from the very first moment you join a room.
  • Duplicate room names are now blocked on both the dashboard and the relay.
  • Permanent-room quick links no longer show duplicates and always keep the latest version.
  • The audience drawer now shows owner/moderator badges and correctly hides settings toggles for audience members.
  • Chat sidebar layout fixed on mobile (full-width overlay) and desktop.
  • A full-screen bolt confirmation now appears for confirmed zaps.
  • Owners and mods now see lobby requests when joining an empty room, and stale approvals no longer cause infinite retry loops.
  • Your Nostr profile (avatar, npub, lightning address) is now present on first join instead of appearing a moment later.
  • Calendar downloads added to the events page.
  • Recording errors and lifecycle CORS hardened; the system fails closed if the registry lookup behind a recording errors.
  • Several security hardening fixes: stopped trusting forwarded-for IPs by default, bound auth tags to query strings, normalized UUID room names to friendly display names.
  • Fixed a crash when muting a user whose token had no video grant, and microphone selection now targets the right track by source.
  • Moderator stage promote/demote is now restricted to owners and works correctly for offline targets.
  • Mid-session moderator promotions in audience mode now correctly grant publish rights.
  • Database connections now support sslmode, and registry lookups are bounded by a timeout.
  • Updated relay URLs and added wildcard domains to the security allow-list.
  • Dependency bumps for sharp and google.golang.org/grpc.

Special thanks to @Yeghro, @bitkarrot, @hivestr

Contributors

  • @Yeghro
  • @bitkarrot
  • @hivestr
Write a comment