Releases: HiveTalk/honey
Release list
v0.6 - Amber Signer Login, Relay Cleanup & Login Hardening
2026 Summer Stage 4 — Amber Signer Login, Relay Cleanup & Login Hardening
🔑 Signer Login (Amber / NIP-46)
A new Signer tab in the Nostr login dialog supports cross-device pairing via NIP-46 (nostrconnect://). The NIP-46 flow is signer-agnostic, so it works with any remote NIP-46 signer — Amber, Primal, nsec.app, Keys.band, etc. A QR code is shown for easy mobile scanning.
🔐 Unified Signer Plumbing
Amber and nostrconnect logins are now wired into the shared signer utilities (useLoginActions, useCurrentUser, and signerUtils.getUserSigner()). Every existing code path that already used the unified signer for nsec, extension, or bunker logins now also works for signer-based logins. Several spots that still called window.nostr directly were updated to use the shared signer, including list utilities, dashboard Nostr utilities, post writing, and NIP-42 auth.
🌐 Relay Cleanup
Stale relays were removed from all relay lists and fallbacks across the dashboard, including relay.damus.io and wss://relay.nostr.net. Default search and publish relays now consistently use wss://nos.lol and wss://relay.primal.net. The shared NPool is cached at module level so bunker and nostrconnect logins reuse a single connection pool instead of opening fresh WebSocket connections on every signer call.
🛠️ Android & Older WebView Compatibility
Added an AbortSignal.any() polyfill for older Android WebViews that don't support it, which previously broke every nostrconnect login with AbortSignal.any is not a function. The Signer tab also reorders the login options to promote the reliable NIP-46 flow first, while the NIP-55 on-device flow is clearly marked experimental because Chrome's IntentDispatcher doesn't always return the redirect after Amber approval.
🏠 My Rooms Reliability
Fixed the My Rooms page rendering an empty list even when the signed-in user owned rooms. It now fetches kind 30312 events directly from the relay's /api/events endpoint and parses room fields from tags, avoiding the broken /api/rooms-by-pubkey route. Diagnostics were also added for unexpected response shapes so relay compatibility issues are visible instead of silently failing.
🧪 Testing & Infrastructure
Added a gsd-browser end-to-end test script that exercises Amber, nsec, and extension login plus signing round-trips against a local dev server. A scripts/BROWSER_TESTING.md guide documents what each test covers, how the transports are mocked, and the gotchas discovered while building the suite. A reverse proxy server was also added for public Amber testing routes.
🧹 Bug Fixes & Polish
- Fixed nostrconnect session race conditions and stale state when the login dialog is closed and reopened.
- Guarded all async login handlers against
setStatecalls on unmounted components. - Replaced the shared
loadingboolean with per-methodloadingMethodstate so a long Amber wait no longer disables the other login tabs. - Deduplicated relay list constants and moved search relays to a single
PUBLIC_SEARCH_RELAYSenv variable. - Added an accessible
aria-labelto the nostrconnect QR code. - Restored the production
startscript and addedstart:proxyfor the dev proxy server.
Special thanks to @Yeghro, @bitkarrot, and @devin-ai-integration[bot]
Contributors
v0.5 — Notifications, Room Management & Updates
2026 Summer Stage 3 — Notifications, Room Management & Updates
🔔 Notifications & Updates
A notification bell now shows the latest HiveTalk announcements, with a new Updates page for browsing previous news. Unread state is now correctly baselined from first visit so the badge shows the right count.
📅 Add Calendar downloads
When an event is created on HiveTalk Dashboard, a .ics event is now available for download.
🔐 Room Status
Active rooms now show lock, lobby, and mute-on-join status icons with hover tooltips. Mute-on-join persists across rejoin so moderators always see the correct state.
🛡️ Clearer Room Permissions
Ephemeral rooms explain that moderator controls require a permanent room. Guests now always see a "You are a guest" notice regardless of room type, and ephemeral notices appear in the Moderation tab for all participants.
🗑️ Safer Room Deletion
Room deletion now requires typing the room name and cleans up associated room data. Owner token minting and cascade-delete ordering are fixed so cleanup succeeds reliably, with clearer failure messaging.
💬 Improved Chat Controls
The chat composer has cleaner controls, and messages can now be sent by pressing Enter.
🏠 HiveTalk Branding
The HiveTalk logo and wordmark now appear in the meeting settings panel.
📋 Automatic Release Notes
The "What's New" card now loads the latest published release notes automatically from GitHub.
🌐 Relay & Infrastructure
The default Nostr relay has been switched from relay.damus.io to relay.nostr.net across the codebase. LiveKit API proxies have been hardened with regression coverage, and responsive styles and room joins have been restored.
👤 Pre-Join & Username
New users see their pubkey prefix as a default username on the PreJoin page. Camera and mic selections from PreJoin are now preserved when entering the room. Fallback usernames no longer override edited names.
🧹 UI Cleanup
Stale "Latest Updates: May 2026" and "New · Lock, Lobby" badges have been removed. The broken Top Rooms link is hidden while the underlying endpoint is being fixed. Compact toasts have been restored.
🔒 Security
XSS mitigations added to Active Rooms tiles. Dependency vulnerabilities resolved. Allowed origins updated to support wildcard domains.
Special thanks to @Yeghro and @ButtercupRobrts
v0.4 - Audience Mode, Reactions & Expandable Menu
Summer Stage 2 — Audience Mode, Reactions & Expandable Menu
Highlights for the current release — dismiss once you've read it.
🎭 Audience Mode + Raise Hand
Per-room audience mode toggle. Audience members get canPublish=false, canPublishData=true (they can chat/react but not broadcast audio/video). Stage members (owner/mod/promoted speakers) keep full publish grants. Promote/demote uses LiveKit UpdateParticipant for live grant changes with no reconnect, AND persists stage membership to DB so grants survive reconnect/refresh/token regen. Toggling audience mode mid-room iterates current participants and updates their grants live, with a broadcast data message for immediate UI sync.
✋ Raise Hand
lk.raisehand topic carries { event, participant_identity, pubkey?, display_name? } — LiveKit identity is used for tile mapping and promote actions, pubkey only for profile display. ✋ indicator on tiles + a moderator queue list in RoomControls with "Bring to stage" action. Twitter-Spaces-style layout: stage tiles in grid, audience as a compact avatar strip; verified on small mobile screens.
🎉 Emoji Reactions on Tiles
lk.reactions topic { emoji, participant_identity } renders a floating emoji overlay on the sender's tile that fades over ~4s. Client-side rate-limited. Reuses the EmojiPickerPopover from Stage 1 with a limited reaction set.
⌃ Expandable "^" Vertical Menu
New ExpandableMenu replaces the leave slot in the custom control bar. A chevron "^" expands upward into a vertical list: Raise Hand, Reactions (mini emoji popup), and Leave (red, destructive style). Sits above the video layer and transparent chat layer with top z-index; works within the existing mobile floating pill bar CSS.
v0.3 — Chat, Zaps & Lobby Fixes
2026 Summer Stage 1
Highlights for the current release — dismiss once you've read it.
⚡ Zap Notifications in Chat
When a participant zaps another participant, a structured ⚡ system entry appears in chat: "⚡ sender zapped recipient, N sats ⚡". Uses a dedicated lk.zap data topic with a typed payload — not parsed from chat text, so it can't be spoofed. Sender and recipient display names are plumbed from the participant tile through to the payment modal.
🔒 Lock/Unlock Disconnect & Toast Visibility
Reproduced and fixed the lock/unlock disconnect behavior live (two-browser test). Restyled the disconnect/reconnecting toast to amber/orange so transient connection states are clearly visible against the video layer.
😀 Emoji Picker in Chat
A small curated emoji popover in the chat input — inserts at cursor, no new dependency. Componentized as EmojiPickerPopover for reuse by Stage 2 reactions.
💾 Download Chat Transcript
Download icon in the chat header serializes the current chat to [HH:MM] Name: message lines and downloads as a .txt file. Room name is sanitized for the filename; falls back to hivetalk-chat-{date}.txt when no room name is available.
🔇 Mute Screenshare Audio (Per-Viewer)
Speaker toggle on the screenshare tile mutes ONLY the ScreenShareAudio publication for the local viewer — does not affect video, the mic track, or other participants. Mute state is tracked per participant + publication SID so it survives track re-publishes.
🛡️ Moderators Approve Lobby Joiners
Fixed the broken moderator lobby-approval flow. Root cause traced through the promote path — live LiveKit participant attributes now correctly reflect moderator="true", and mods can approve/deny lobby requests end-to-end. Regression test added.
Special thanks to @Yeghro and @ButtercupRobrts
Lock & Lobby V2 May 2026
What's New
Lock & Lobby V2 May 2026
Highlights for the current release — dismiss once you've read it.
🔓 Public Permanent Rooms
Lock & Lobby — lock your room so new joiners wait for your approval before entering.
Approve or deny people from your Settings panel. Approved access lasts 24 hours.
Guests welcome — people without a Nostr account can join too.
🔐 Private Permanent Rooms
Same as before — only you and your moderators can enter.
Lock and Lobby controls are not shown (they are not needed here).
⚡ Ephemeral Rooms
Start a room instantly — no account needed.
No host controls — everyone in the room is equal.
🛡️ Moderators
Promote or demote participants to moderator at any time during a call.
Special thanks to @Yeghro and @ButtercupRobrts
Moderators can approve lobby requests and remove disruptive participants.
🌐 Browser Support
Best experienced on Chrome, Firefox, and Safari.
Initial Release for Hivetalk Honey Dashboard - December 2025
Initial Release for Hivetalk Honey Dashboard - December 2025