Stream Whisper verbose metadata live without overflowing Reverb.

Persist accumulated verbose_json on the recording and broadcast only transcript/whisper deltas so the show page can render language, segments, word timestamps, and confidence while a run is in progress.
This commit is contained in:
ben
2026-08-13 15:55:51 +02:00
parent 4c73620458
commit 187b6b5d12
16 changed files with 1646 additions and 189 deletions
+25
View File
@@ -125,12 +125,37 @@ class IndexTest extends TestCase
Livewire::test(Index::class)
->assertSee('wire:poll', false)
->assertDontSee('echo-private', false)
->assertSee('Transcribing')
->assertSee('40%')
->assertDontSee('Transcribing locally…')
->assertSeeHtml('bg-amber-400');
}
public function test_processing_recordings_do_not_show_zero_percent(): void
{
$user = User::factory()->create();
$this->actingAs($user);
Recording::query()->create([
'user_id' => $user->id,
'title' => 'Just started',
'original_filename' => 'fresh.mp3',
'file_path' => 'recordings/fresh.mp3',
'file_size_bytes' => 100,
'transcription_status' => 'processing',
'transcription_progress' => 'Transcribing locally…',
'transcription_percent' => 0,
'transcription_driver' => 'local',
'transcription_started_at' => now(),
]);
Livewire::test(Index::class)
->assertSee('Just started')
->assertSee('Transcribing')
->assertDontSee('0%');
}
public function test_queued_recordings_do_not_show_fake_percent(): void
{
$user = User::factory()->create();