Add live speaker invites for audio rooms and simplify the toolbar.
Deploy Ladill Meet / deploy (push) Successful in 1m9s

Let hosts promote raised-hand listeners from People, remove the empty More menu in spaces, and put People and recording on the bottom bar.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
isaacclad
2026-07-04 00:40:09 +00:00
co-authored by Cursor
parent c51e59945e
commit 46af4f93b6
8 changed files with 270 additions and 3 deletions
+61
View File
@@ -1306,6 +1306,67 @@ class MeetWebTest extends TestCase
$response->assertDontSee('View the room lineup from Events', false);
}
public function test_space_host_can_promote_listener_to_speaker(): void
{
$room = Room::create([
'owner_ref' => $this->user->public_id,
'organization_id' => $this->organization->id,
'host_user_ref' => $this->user->public_id,
'title' => 'Leadership space',
'type' => 'space',
'status' => 'live',
'scheduled_at' => now()->addHour(),
'timezone' => 'UTC',
'settings' => array_merge(config('meet.default_settings'), [
'audio_only' => true,
'speaker_refs' => [],
]),
]);
$session = Session::create([
'owner_ref' => $this->user->public_id,
'room_id' => $room->id,
'media_room_name' => 'meet-'.$room->uuid,
'status' => 'live',
'session_mode' => 'live',
'started_at' => now(),
]);
$host = \App\Models\Participant::create([
'owner_ref' => $this->user->public_id,
'session_id' => $session->id,
'user_ref' => $this->user->public_id,
'display_name' => 'Host',
'role' => 'host',
'status' => 'joined',
'joined_at' => now(),
]);
$listener = \App\Models\Participant::create([
'owner_ref' => $this->user->public_id,
'session_id' => $session->id,
'user_ref' => 'listener-ref',
'display_name' => 'Listener',
'role' => 'attendee',
'status' => 'joined',
'hand_raised' => true,
'joined_at' => now(),
]);
$this->actingAs($this->user)
->withSession(["meet.participant.{$session->uuid}" => $host->uuid])
->postJson('/room/'.$session->uuid.'/participants/'.$listener->uuid.'/space/speaker')
->assertOk()
->assertJsonPath('participant.role', 'panelist');
$listener->refresh();
$room->refresh();
$this->assertSame('panelist', $listener->role);
$this->assertFalse($listener->hand_raised);
$this->assertContains('listener-ref', (array) $room->setting('speaker_refs', []));
}
public function test_breakouts_exclude_host_and_enable_meeting_mode_for_attendees(): void
{
config([