Hivetalk on Nostr: Summer '26 Stage 2 release notes Audience Mode, Reactions & Expandable Menu š ...
Summer '26 Stage 2 release notes
Audience Mode, Reactions & Expandable Menu
š 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.
special thanks to @buttercup @yeghro Sooly, Tomekk , Reed, Tigs and AJ for helping out with testing
#updates
Published at
2026-07-22 12:20:00 UTCEvent JSON
{
"id": "1540095bf84245b9645807b6c5256c200d8322aeec7e8ec4d243e011f8f98908",
"pubkey": "13ff84142a6526245124c180fb5342cea130d558fec7d488019d1dae7aaca18a",
"created_at": 1784722800,
"kind": 1,
"tags": [],
"content": "Summer '26 Stage 2 release notes \n\nAudience Mode, Reactions \u0026 Expandable Menu\n\nš Audience Mode + Raise Hand\n\nPer-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.\n\nā Raise Hand\n\nlk.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.\n\nš Emoji Reactions on Tiles\n\nlk.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.\n\nā Expandable \"^\" Vertical Menu\n\nNew 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.\n\nspecial thanks to @buttercup @yeghro Sooly, Tomekk , Reed, Tigs and AJ for helping out with testing\n\n#updates",
"sig": "09215743dce107ee7c1b5c552377be47edcd40c945f542e54640ef6271ba0c15f2c50c74382d8db12821b87232b48ee25c07c2fb912fa026b9c24faa379b5d4b"
}