Update ohne Neustart, wenn nur Oberflaechendateien wechseln
Bisher verlangte jedes Update einen Home-Assistant-Neustart. Noetig ist er aber nur fuer Python-Code: HA importiert die Module einmal beim Start und haengt danach mit lebenden Objekten daran. frontend/ dagegen wird direkt von der Platte ausgeliefert (StaticPathConfig, cache_headers=False) - eine ersetzte .js ist sofort wirksam, es braucht nur ein Neuladen im Browser. aktualisierung.neustart_noetig() vergleicht die alte gegen die neue Fassung ueber sha256 je Datei und meldet "kein Neustart" nur, wenn JEDE Abweichung unter frontend/ liegt oder die manifest.json ist. Alles andere - .py, services.yaml, translations/, vorlage/ - gilt als neustartpflichtig, auch wo es das im Einzelfall nicht waere. Die Schieflage ist Absicht: ein faelschlich ausgelassener Neustart laesst neuen Python-Code nie anlaufen, und der Fehler wird woanders gesucht. manifest.json ist ausgenommen, weil sich seine Versionsnummer bei jeder Veroeffentlichung aendert - sonst waere die Unterscheidung wertlos. Weil HA das Manifest fuer die Laufzeit festhaelt (loader.py: hass.data[ DATA_INTEGRATIONS]), liest version_von_platte() die Nummer direkt von der Platte; koordinator.version_neu_lesen() zieht sie nach einem Update ohne Neustart nach, damit Panel und App die neue Fassung auch anzeigen. Panel und App zeigen im Neustart-freien Fall "Seite neu laden" statt "Installation abschliessen - Jetzt neu starten". Neun neue Testfaelle fuer die Unterscheidung, 23 Tests in der Aktualisierungs-Suite gruen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -216,9 +216,18 @@ export interface IntegrationUpdateAngabe {
|
||||
verfuegbar: boolean;
|
||||
version: string | null;
|
||||
geprueft_am: string;
|
||||
/** true unmittelbar nach einer erfolgreichen Installation - dann ist ein
|
||||
Neustart von Home Assistant nötig, damit die neue Fassung geladen wird. */
|
||||
/** true unmittelbar nach einer erfolgreichen Installation. */
|
||||
installiert: boolean;
|
||||
/** Ob nach der Installation wirklich ein Home-Assistant-Neustart nötig ist.
|
||||
|
||||
Der Updater entscheidet das am Datei-Vergleich: betrifft das Update nur
|
||||
`frontend/`, reicht ein Neuladen der Seite - die Oberflächendateien
|
||||
werden direkt von der Platte ausgeliefert. Nur geänderter Python-Code
|
||||
braucht einen Neustart, weil Home Assistant seine Module einmal beim
|
||||
Start importiert.
|
||||
|
||||
Fehlt das Feld (ältere Integration), gilt "Neustart nötig". */
|
||||
neustart_noetig?: boolean;
|
||||
fehler: string | null;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user