Make shutdown checkpoint dialogs unmistakable

This commit is contained in:
2026-08-27 20:17:16 +02:00
parent 61b5b7e452
commit 8b1c14b892
19 changed files with 385 additions and 48 deletions
@@ -0,0 +1,55 @@
PROD-HANDOFF: SHUTDOWN-DIALOG-SICHTBARKEIT - VERSION 2.3.4
Datum: 2026-08-27
BEFUND
Nach der Receive-Location-Phase wurde kein sichtbarer Dialog zur Bestaetigung
des Leerlaufens wahrgenommen.
URSACHEN
1. Dry run ist standardmaessig aktiv. Er deaktiviert keine Receive Location und
ruft deshalb bewusst keinen echten Drain-Entscheidungsdialog auf. Dieser
Unterschied war waehrend der Ausfuehrung nicht deutlich genug sichtbar.
2. Die bisherigen MessageBoxen hatten keinen Owner. In RDP-/Multi-Monitor-
Sitzungen konnte ein modaler Plan- oder Drain-Dialog hinter dem Hauptfenster
liegen, waehrend dort nur "Preparing shutdown..." sichtbar blieb.
SICHERHEIT
Der persistierte OperatorCheckpoint war vorhanden. Ohne Dialog-Callback, bei
Fehler, Nein oder Schliessen stoppt der echte Shutdown fail-closed. Spaetere
Orchestrierungen, Send Ports und Host Instances bleiben NotExecuted.
FIX 2.3.4
- Alle runtime-relevanten Bestaetigungen sind an das Hauptfenster gebunden.
- Am echten Checkpoint steht sichtbar ACTION REQUIRED / Shutdown paused.
- Der erste Realbetrieb-Dialog kuendigt die zweite Drain-Entscheidung an.
- Dry run und REAL EXECUTION sind farblich und textlich eindeutig.
- Dry run zeigt einen eigenen Hinweis: keine Mutation, keine echte Drain-
Entscheidung.
- Einstellungen sind waehrend einer laufenden Operation gesperrt.
PROD-ABNAHME
1. Setup 2.3.4 installieren; setup_version=2.3.4.0 und Ziel-Self-Test pruefen.
2. Dry run: Shutdown Dry Run - No Runtime Changes muss sichtbar sein; keine
BizTalk-Mutation.
3. shutdown-plan.json: OperatorCheckpoint muss vor jeder spaeteren Shutdown-
Phase stehen.
4. Freigegebenes Wartungsfenster: Dry run deaktivieren; REAL EXECUTION muss
sichtbar sein.
5. Ersten gespeicherten Plan bestaetigen.
6. Nach Receive Locations: ACTION REQUIRED und owner-gebundener Drain-Dialog.
7. Zuerst Nein testen: CheckpointDecision=Stop, alle spaeteren Zeilen
NotExecuted.
8. Danach kontrolliert wiederholen; Group Hub und Monitoring pruefen; erst bei
bestaetigtem Leerlauf Ja auswaehlen.
9. RDP minimieren/wiederherstellen und ggf. Monitorwechsel testen.
ALTE LAEUFE UNTERSCHEIDEN
- DryRun=true + keine CheckpointDecision: erwartete Simulation.
- Kein Ergebnis + UI bleibt Preparing shutdown: moeglicherweise verdeckter
Dialog; Alt+Tab pruefen, Prozess nicht blind beenden.
- CheckpointDecision=Stop/Error: sicher vor spaeteren Phasen gestoppt.
- CheckpointDecision=Continue: positive Bedienerentscheidung wurde erfasst.
Portable Verifikation: Release-Build aller vier Projekte, 43 Regressionstests,
Runtime-Self-Test und manifest-/hashgepruefte Paketierung. Die finale Dialog-
und BizTalk-Pruefung erfolgt auf Windows/PROD.