Keep live Whisper segments on screen without a page refresh.

Treat streamed chunks as appends, stop Livewire from remorphing the Alpine tree, and hydrate from HTTP while a run is active so segment cards appear as they arrive.
This commit is contained in:
ben
2026-08-13 16:35:33 +02:00
parent 187b6b5d12
commit 3a9cf50529
7 changed files with 265 additions and 65 deletions
+11 -3
View File
@@ -595,6 +595,10 @@ class Recording extends Model
$segments = is_array($verbose['segments'] ?? null) ? $verbose['segments'] : [];
if (isset($delta['segment']) && is_array($delta['segment'])) {
$segments = $this->appendVerboseSegment($segments, $delta['segment']);
}
if (isset($delta['segments']) && is_array($delta['segments'])) {
$incoming = [];
@@ -605,10 +609,14 @@ class Recording extends Model
}
if ($incoming !== []) {
$segments = $incoming;
if (isset($delta['segment'])) {
foreach ($incoming as $segment) {
$segments = $this->appendVerboseSegment($segments, $segment);
}
} else {
$segments = $incoming;
}
}
} elseif (isset($delta['segment']) && is_array($delta['segment'])) {
$segments = $this->appendVerboseSegment($segments, $delta['segment']);
}
if (isset($delta['words']) && is_array($delta['words']) && $delta['words'] !== []) {