Fix stuck recording processing and add invoice service API test.
Deploy Ladill Meet / deploy (push) Successful in 52s

Capture stage spotlight video for browser recordings, fail incomplete uploads, allow post-session host uploads, and expire stale processing recordings automatically.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
isaacclad
2026-07-03 22:54:26 +00:00
co-authored by Cursor
parent 94a7906188
commit 4af53f9374
11 changed files with 395 additions and 18 deletions
+1
View File
@@ -4,3 +4,4 @@ use Illuminate\Support\Facades\Schedule;
Schedule::command('meet:send-reminders')->everyFiveMinutes();
Schedule::command('meet:process-billing')->daily()->withoutOverlapping();
Schedule::command('meet:fail-stale-recordings')->everyFifteenMinutes()->withoutOverlapping();
+1
View File
@@ -78,6 +78,7 @@ Route::get('/room/{session}/media-token', [MeetingRoomController::class, 'mediaT
Route::post('/room/{session}/recording/start', [MeetingRoomController::class, 'startRecording'])->name('meet.room.recording.start');
Route::post('/room/{session}/recording/stop', [MeetingRoomController::class, 'stopRecording'])->name('meet.room.recording.stop');
Route::post('/room/{session}/recordings/{recording}/upload', [MeetingRoomController::class, 'uploadRecording'])->name('meet.room.recording.upload');
Route::post('/room/{session}/recordings/{recording}/fail', [MeetingRoomController::class, 'failRecording'])->name('meet.room.recording.fail');
Route::post('/room/{session}/lock', [MeetingRoomController::class, 'lock'])->name('meet.room.lock');
Route::post('/room/{session}/unlock', [MeetingRoomController::class, 'unlock'])->name('meet.room.unlock');
Route::post('/room/{session}/caption', [MeetingRoomController::class, 'caption'])->name('meet.room.caption');