chore: release 0.9.28 — graceful update page + checkbox/2FA-badge UI fixes

feat/v1-foundation v0.9.28
boban 2026-06-20 20:26:50 +02:00
parent df5d9e2112
commit 542ad1a4d8
2 changed files with 23 additions and 1 deletions

View File

@ -13,6 +13,28 @@ getaggte Releases (Kanal `stable`, optional `beta`) — niemals Entwicklungs-Bui
_Keine offenen Änderungen — der nächste Stand wird hier gesammelt und als `vX.Y.Z` getaggt._
## [0.9.28] - 2026-06-20
### Behoben
- **Update bricht nicht mehr mit 502 / Weißbild ab.** Beim Auslösen eines Updates erscheint jetzt
eine eigenständige Fortschritts-Seite (`/update-progress`, ohne Livewire), die den Neuaufbau des
Stacks im Browser übersteht: sie pollt die Health-Route, zeigt die Phasen
(Holen/Bauen/Migrieren/Neustart) + verstrichene Zeit und leitet nach der Wiederherstellung
automatisch dorthin zurück, wo man war. (Open-Redirect-sicher: das Rücksprung-Ziel wird auf einen
gleich-origin Relativpfad beschränkt.)
- **Checkbox im Reiter „Anmeldeschutz"** nutzt jetzt das Design-System (Signal-Orange + sichtbarer
Haken über eine wiederverwendbare `x-checkbox`-Komponente; ebenso „Angemeldet bleiben" im Login)
statt der blauen Browser-Standard-Checkbox.
- **2FA-Status-Badge vereinheitlicht.** Identity-Header, Benutzer-Liste und Sidebar zeigen den
„2FA aktiv/aus"-Status jetzt im selben Stil (eine `x-two-factor-badge`-Komponente) statt zuvor
drei verschiedener Darstellungen.
### Hinweis
- **Security-Key (WebAuthn/YubiKey) erfordert eine Domain mit HTTPS.** Bei Bare-IP-Zugriff ohne
konfigurierte Domain ist ein Security-Key nicht nutzbar (eine IP kann keine WebAuthn-rpId sein);
ein Schlüssel-only-Konto wird dann korrekt auf den Backup-Code geleitet. Für den
Security-Key-Button das Panel unter einer Domain über HTTPS betreiben.
## [0.9.27] - 2026-06-20
### Hinzugefügt

View File

@ -2,7 +2,7 @@
return [
// First tagged release is v0.1.0 (semantic, not -dev).
'version' => '0.9.27',
'version' => '0.9.28',
// Deployed commit + branch. install.sh bakes these into .env from the host's .git (the prod
// image ships no .git); the Versions page prefers them and falls back to a live .git read in