fix: Imagick in der Betriebsüberwachung, Scanner-Anfragen an Livewire als 400, abgebrochene Alpine-Übergänge nicht mehr melden

Auf Live fehlte die PHP-Erweiterung imagick: Herkunftsprüfung und
KI-Vorab-Check der Bilder scheiterten still und ließen jedes Bild durch.
AdminSystemHealth zeigt jetzt die Zeile „PHP-Erweiterung Imagick“ (rot bei
eingeschaltetem Vorab-Check, sonst gelb).

GlitchTip server-pressekonto, Issues 38 und 39: gebaute Livewire-Anfragen
setzen gesperrte Properties (portal/language im Meldungs-Feed und in der
Suche) oder schicken Uploads an Komponenten ohne Upload. Livewire weist sie
korrekt ab; statt 500 bzw. 419 (das als „Seite abgelaufen“ gemeldet wurde)
antworten sie jetzt mit 400 und werden nicht mehr gemeldet.

Browser (Issue 18): Alpine bricht x-transition-Übergänge mit
{isFromCancelledTransition: true} ab — keine Fehlermeldung mehr.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-10-08 13:54:14 +00:00
parent 65086cafd2
commit bbc2b6048f
5 changed files with 90 additions and 0 deletions

View file

@ -124,3 +124,28 @@ test('snapshot flags pending media privatization', function () {
expect($checks['media_privatization']['status'])->toBe('warn')
->and($checks['media_privatization']['detail'])->toContain('1');
});
test('snapshot flags a missing imagick extension', function (bool $precheckEnabled, string $status) {
config()->set('images.precheck.enabled', $precheckEnabled);
app()->bind(AdminSystemHealth::class, fn () => new class extends AdminSystemHealth
{
protected function imagickAvailable(): bool
{
return false;
}
});
$checks = collect(app(AdminSystemHealth::class)->snapshot()['checks'])->keyBy('key');
expect($checks['imagick']['status'])->toBe($status)
->and($checks['imagick']['detail'])->toContain('php8.4-imagick');
})->with([
'precheck off' => [false, 'warn'],
'precheck on' => [true, 'critical'],
]);
test('snapshot reports imagick as ok when it is loaded', function () {
$checks = collect(app(AdminSystemHealth::class)->snapshot()['checks'])->keyBy('key');
expect($checks['imagick']['status'])->toBe(class_exists(Imagick::class) ? 'ok' : 'warn');
});