+
{{ $summary->session->room->title }}
AI meeting summary
diff --git a/resources/views/partials/sidebar.blade.php b/resources/views/partials/sidebar.blade.php
index 0e2424a..c8cf165 100644
--- a/resources/views/partials/sidebar.blade.php
+++ b/resources/views/partials/sidebar.blade.php
@@ -26,6 +26,8 @@
'icon' => '
'],
['name' => 'Recordings', 'route' => route('meet.recordings.index'), 'active' => request()->routeIs('meet.recordings.*'),
'icon' => '
'],
+ ['name' => 'Summaries', 'route' => route('meet.summaries.index'), 'active' => request()->routeIs('meet.summaries.*'),
+ 'icon' => '
'],
['name' => 'Reports', 'route' => route('meet.reports.index'), 'active' => request()->routeIs('meet.reports.*'),
'icon' => '
'],
['name' => 'Channels', 'route' => route('meet.channels.index'), 'active' => request()->routeIs('meet.channels.*'),
diff --git a/routes/web.php b/routes/web.php
index a584816..69a2516 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -213,6 +213,7 @@ Route::middleware(['auth', 'platform.session'])->group(function () {
Route::get('/recordings/{recording}/download', [RecordingController::class, 'download'])->name('meet.recordings.download');
Route::delete('/recordings/{recording}', [RecordingController::class, 'destroy'])->name('meet.recordings.destroy');
+ Route::get('/summaries', [SummaryController::class, 'index'])->name('meet.summaries.index');
Route::get('/summaries/{summary}', [SummaryController::class, 'show'])->name('meet.summaries.show');
Route::get('/settings/security', [SettingsController::class, 'security'])->name('meet.settings.security');
diff --git a/tests/Feature/MeetWebTest.php b/tests/Feature/MeetWebTest.php
index c560a5a..5d7a040 100644
--- a/tests/Feature/MeetWebTest.php
+++ b/tests/Feature/MeetWebTest.php
@@ -5,6 +5,7 @@ namespace Tests\Feature;
use App\Http\Middleware\EnsurePlatformSession;
use App\Models\Member;
use App\Models\Organization;
+use App\Models\AiSummary;
use App\Models\Recording;
use App\Models\Room;
use App\Models\Session;
@@ -423,6 +424,38 @@ class MeetWebTest extends TestCase
->assertSee('Recordings');
}
+ public function test_user_can_view_summaries_index(): void
+ {
+ $room = $this->createRoom();
+ $session = Session::create([
+ 'owner_ref' => $this->user->public_id,
+ 'room_id' => $room->id,
+ 'media_room_name' => 'room-'.$room->uuid,
+ 'status' => 'ended',
+ 'started_at' => now()->subHour(),
+ 'ended_at' => now(),
+ ]);
+ AiSummary::create([
+ 'owner_ref' => $this->user->public_id,
+ 'session_id' => $session->id,
+ 'status' => 'ready',
+ 'summary' => 'We agreed to ship the dashboard on Friday.',
+ 'decisions' => ['Ship Friday'],
+ ]);
+
+ $this->actingAs($this->user)
+ ->get('/summaries')
+ ->assertOk()
+ ->assertSee('AI Summaries')
+ ->assertSee($room->title)
+ ->assertSee('We agreed to ship the dashboard on Friday.');
+
+ $this->actingAs($this->user)
+ ->get('/summaries/')
+ ->assertOk()
+ ->assertSee('AI Summaries');
+ }
+
public function test_admin_can_update_security_policy(): void
{
$this->actingAs($this->user)