Skip to content

Releases: HiveTalk/honey

v0.6 - Amber Signer Login, Relay Cleanup & Login Hardening

Choose a tag to compare

@bitkarrot bitkarrot released this 07 Aug 06:32
c315055

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 setState calls on unmounted components.
  • Replaced the shared loading boolean with per-method loadingMethod state 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_RELAYS env variable.
  • Added an accessible aria-label to the nostrconnect QR code.
  • Restored the production start script and added start:proxy for the dev proxy server.

Special thanks to @Yeghro, @bitkarrot, and @devin-ai-integration[bot]

Contributors

v0.5 — Notifications, Room Management & Updates

Choose a tag to compare

@bitkarrot bitkarrot released this 25 Jul 05:20
c315055

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

Choose a tag to compare

@bitkarrot bitkarrot released this 21 Jul 21:27
ac20c7b

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

Choose a tag to compare

@bitkarrot bitkarrot released this 19 Jul 05:39
ac20c7b

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

Choose a tag to compare

@bitkarrot bitkarrot released this 19 Jul 05:05
8ee4caa

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

Choose a tag to compare

@bitkarrot bitkarrot released this 19 Jul 05:06
8ee4caa

Initial Release for Hivetalk Honey Dashboard - December 2025