CluPilotCloud/app
nexxo 24eb7b3d80 Fix-Welle: Schlussreview-Befunde 1-6 zur Release-Decke
Sechs Befunde aus dem Schlussreview, in einer Welle behoben:

- BEFUND 1 (Important): eine leere Auswahl im Festnageln-Feld liess
  pinRelease() ueber `$this->ceilingChoice ?: null` in setCeiling(null)
  laufen — die Gegenhandlung (Decke abnehmen) — und meldete dabei die
  Erfolgsmeldung des Festnagelns. ConfirmPinRelease::confirm() schickt die
  Version jetzt als Event-Nutzlast (wie ConfirmSaveSecret den Schluessel),
  und pinRelease(string $version) weist eine leere Version ausdruecklich
  ab, mit einer eigenen Meldung (release_pin_empty).
- BEFUND 2 (Minor, durch 1 miterledigt): Modal und Seite lasen bisher zwei
  getrennte Eigenschaften ($version vs. $ceilingChoice). Der Fix oben
  beseitigt die Trennung.
- BEFUND 3 (Important, Text only): der Kommentar bei release_tag_exists()
  in deploy/lib/release.sh und der Fehlerbehandlungs-Abschnitt der Spec
  behaupteten, ceiling_missing schuetze gegen einen vom Release-Prozess
  geloeschten Tag. Tut es nicht: `git fetch --tags --force` (ohne
  --prune-tags, bewusst) entfernt keine lokal bereits geholten Tags, die
  drueben verschwunden sind. Beide Stellen beschreiben jetzt, wogegen die
  Pruefung tatsaechlich schuetzt (ein nie geholter oder nie existierender
  Tag) und wogegen nicht. Kein --prune-tags hinzugefuegt.
- BEFUND 4 (Minor): ConfirmPinRelease hatte keinen Test. Zwei neue Tests
  nach dem Vorbild von ConfirmSaveSecret in IntegrationsPageTest.
- BEFUND 5 (Minor): ceilingChoice wurde nie aus dem gesetzten Zustand
  vorbelegt. UpdateChannel::ceiling() ist jetzt public, Settings::mount()
  belegt das Feld damit vor.
- BEFUND 6 (Minor): eine von Hand geleerte Deckendatei liest die Konsole
  als "keine Decke" (ceiling() -> null), der Agent meldet dafuer aber
  ceiling_error. Der "Decke abnehmen"-Knopf stand nur hinter
  @if($update['ceiling']) und verschwand damit genau in dem Zustand, aus
  dem er zurueckfuehren muesste. Bedingung erweitert auf
  ($update['ceiling'] || $update['ceiling_error']).

Jeder Befund traegt einen eigenen Test in ReleaseCeilingConsoleTest.php.
Volle Suite: 2973 passed (10389 assertions).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-04 16:25:48 +02:00
..
Actions Kuendigung B1, Fix-Welle: der Platz wird frei, und das Loeschen ist vollzogen 2026-08-04 12:39:06 +02:00
Console Kuendigung B1, Tasks 4+5: der Zeitplan-Griff und die Sichtbarkeit 2026-08-04 12:00:37 +02:00
Exceptions Refuse the sale instead of reaching Stripe without a key 2026-07-30 11:58:01 +02:00
Http Version 1.7.3 — ein Tor, eine Liste 2026-08-04 11:17:05 +02:00
Jobs Fix-Runde 2: eine fremde Mailklasse faehrt im ruhigen Takt statt ungebremst 2026-08-03 19:04:32 +02:00
Listeners Jede Mail faehrt wieder ueber ihren eigenen Mailer 2026-08-03 20:36:20 +02:00
Livewire Fix-Welle: Schlussreview-Befunde 1-6 zur Release-Decke 2026-08-04 16:25:48 +02:00
Mail Fix-Welle: die Kuendigung sagt jedem nur das, was fuer ihn stimmt 2026-08-04 10:00:36 +02:00
Models Kuendigung B1, Fix-Welle: der Platz wird frei, und das Loeschen ist vollzogen 2026-08-04 12:39:06 +02:00
Notifications Zwei Empfaengerkreise, und eine Wegwahl, die auch das Konto verschiebt 2026-08-03 17:00:20 +02:00
Observers Say the same thing to the customer, the register and the bank 2026-07-30 01:30:24 +02:00
Policies Move the console's identity out of the customer table 2026-07-28 10:31:43 +02:00
Providers Eine verschickte Mail hinterlaesst wieder eine Zeile, nicht zwei 2026-08-03 21:13:36 +02:00
Provisioning Kuendigung B1, Fix-Welle: der Platz wird frei, und das Loeschen ist vollzogen 2026-08-04 12:39:06 +02:00
Services Fix-Welle: Schlussreview-Befunde 1-6 zur Release-Decke 2026-08-04 16:25:48 +02:00
Support Das Register behauptete etwas Falsches: der Plan-Wechsel IST gebaut 2026-08-04 14:29:21 +02:00