Reject empty recording downloads and store WebM with correct MIME.
Deploy Ladill Meet / deploy (push) Successful in 31s

Mark legacy zero-byte placeholders as failed, validate files on show/download, and surface upload errors in the meeting room.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
isaacclad
2026-07-01 17:59:18 +00:00
co-authored by Cursor
parent 827d36ddc1
commit ceb9ca192e
7 changed files with 108 additions and 9 deletions
@@ -15,7 +15,7 @@
</div>
<div class="flex gap-2">
<a href="{{ route('meet.recordings.show', $recording) }}" class="text-sm text-indigo-600 hover:underline">View</a>
@if ($recording->isReady())
@if ($recording->hasPlayableFile())
<a href="{{ route('meet.recordings.download', $recording) }}" class="text-sm text-slate-600 hover:underline">Download</a>
@endif
</div>
@@ -70,8 +70,8 @@
</div>
</dl>
@if ($recording->isReady())
<p class="mt-5 text-sm text-slate-600">Your recording is stored on Ladill and ready to download.</p>
@if ($recording->hasPlayableFile())
<p class="mt-5 text-sm text-slate-600">Stored on Ladill as WebM VLC, Chrome, and QuickTime can play it after download.</p>
@elseif ($recording->status === 'processing')
<div class="mt-5 flex items-start gap-3 rounded-xl border border-amber-200 bg-amber-50 px-4 py-3">
<svg class="mt-0.5 h-5 w-5 shrink-0 animate-spin text-amber-600" fill="none" viewBox="0 0 24 24" aria-hidden="true">
@@ -90,7 +90,7 @@
@endif
<div class="btn-group mt-6">
@if ($recording->isReady())
@if ($recording->hasPlayableFile())
<a href="{{ route('meet.recordings.download', $recording) }}" class="btn-secondary btn-secondary-sm">
<svg class="h-4 w-4" fill="none" stroke="currentColor" stroke-width="1.75" viewBox="0 0 24 24" aria-hidden="true">
<path stroke-linecap="round" stroke-linejoin="round" d="M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12M12 16.5V3"/>