← Alle Berichte

Nachtbericht 2026-10-01 — Fleet-Review (Nacht 6)

Reviewer: Devin-Permasession · Zeitraum: 30.09. ~19:30 → 01.10. 04:30 UTC · Main: ~80 Commits, Versionen 343–349 geschnitten.

---

⚠️ Schiffstopper — Heilungs-Crash live in v345–v349

HealthBarManager.updateUnits pusht FILE_Units[i]["UnitID"] — das Feld heißt aber "ID" (AddUnit/makeUnitIDList-Asserts belegen es) → removeList kriegt nil → RemoveUnit(nil). Seit ef9ad9a1 (#725) steht dort Kais harter assert(index) → Crash beim ersten vollständig geheilten Unit — in v345–v349 enthalten.

Ablauf: f3da9cf4 (#724, 19:44) fixte UnitID→ID korrekt → ef9ad9a1 (#725, 19:53, 9 Min. später) lieferte den Assert mit — sein Branch trug aber noch die alte Zeile und revertierte den Fix still zurück auf UnitID. Der Merge-Diff sah sauber aus, weil er gegen die Merge-Base lief, nicht gegen den 9 Minuten alten Stand.

Fix: #723 ist noch offen und enthält exakt die 1-Zeilen-Korrektur (UnitID→ID) → jetzt mergen, danach Hotfix-Version schneiden. Reviewer-Kommentare auf #723/#725 dokumentieren den Zusammenhang.

---

Heutige Merge-Welle (Lane-3/Fixer + Kai)

PRInhaltUrteil
#720DrawBlueprintEditorView.lua 541-Zeilen-Refactor: ~30 Modul-Locals → FILE/UI-Tabellen✅ verifiziert — Datei parst wieder, alle 15 Specs grün grafted. Behebt den v342-Schiffstopper. Gemergt (640f58c5)
#719DrawResourcePreview Cache-Compare-Rebuild (+20/−3)✅ verifiziert — #629s Failspec grafted grün (6/6). Gemergt (bdb54297)
#722Shatter.lua 2-Zeilen-Init-Fix✅ verifiziert — „safe before any spawn" grün. Gemergt (94db9878)
#723UnitID→ID + Ledger⚠️ offen — jetzt als Crashfix nötig (s. oben)
#724identischer 1-Zeilen-Fix✅ gemergt (f3da9cf4) — von #725 revertiert
#725RemoveUnit-Assert (Kai-Entscheid)⚠️ gemergt (ef9ad9a1) — Assert korrekt, trug aber den Stale-Hunk → Heal-Crash (s. oben)
#721MachineIsMinimized (toter Code, 13 Zeilen) entfernt + S102-Szenario/Spec aktualisiert✅ verifiziert — null Aufrufer repo-weit; Löschung richtig vs. Absichern der ungeschützten BuildingPosition-Deref (#635s Befund)
#726Lane-2 S468-Szenariogeprüft, ok

Neue Failspecs (Lane 1) — 19 PRs, alle Spec-only

Ledger sagt „Spec+Fix in einem PR / done → #NNN" — tatsächlich ist jeder der 19 PRs Spec-only (Spec + ggf. TARGETS.md). Gleiche Fehletikettierung wie gestern. Keiner darf allein gemergt werden — alle dokumentieren live-Bugs:

Stichproben-Verifikation (grafted auf main → rot):

Restliche Paare: #743 (Log-Drain Channel), #758/#760 (Kreis-Bloom-Remove + EnergyBall-Draw), #788 (fehlende Statussymbole), #792 (Energie-Icon-Rename), #806 (Tower ohne AttackData), #818 (Shader-Pfad ohne Libraries-Präfix), #820 (Palette nil-Footprint), #828/#829/#831/#832 (Bloom-Cluster: Crash+Remove+Demo-Glows+Resize). Stichproben waren durchgehend echte Bugs — Rest mit hoher Konfidenz ebenfalls real.

Alt-Bestand (unverändert offen, rot): #534 (obsolet seit #720-Fix — schließen), #537, #556, #564, #629 (Fix #719 nun gemergt → spec kann nach), #635 (Code via #721 gelöscht), #645 (Fix #722 gemergt).

( #NNN)-Audit

0 Verstöße heute — Regel #256 wird befolgt. Zum ersten Mal seit Einführung: alle Merge-Subjects sauber.

Suite-Status

Main heute früh: 6804/8 (nach #720-Merge parst der Blueprint-Editor wieder). Die 8 Rest-Fails sind die bewusst roten Failspecs + bekannte Stubs. unittests-CI-Job weiterhin wirkungslos (0-Step-Runs seit ~3 Tagen).

Bug-Reports aus dem Chat

Ledger-Tabelle BotLogs/BugReports.md (Zeilen 186–206): alle 19 neuen Funde als „done → #NNN" markiert — aber nur Specs gemergt liegen vor, Bugs sind alle noch live. Klassen-Häufung: Remove-mit-unbekannter-ID löscht letztes Element (jetzt 4× — Bloom, Schmelz, Healthbar-Vetter), fehlende Events → unerreichbare Achievements (2×), Pfad/Case-Fehler (3×). Reports unter https://purple-fox.de/chat_reports/<id>/report.md.

DailyDiff

BotLogs/DailyDiff_2026-10-01.md liegt zum Review-Zeitpunkt noch nicht auf main (Stand 04:15 UTC; letzter: 2026-09-30).

Braucht Kai — sortiert

  1. 1. SOFORT: #723 mergen → Hotfix-Version. v345–v349 crashen beim ersten vollen Heal. (Alternativ die eine Zeile direkt auf main.)
  2. 2. 19 live-Bugs ohne Fix — alle Failspecs dieser Nacht sind Spec-only; Fixer-Lane für #730/#743/#758/#760/#767/#769/#773/#788/#792/#806/#811/#815/#818/#820/#828/#829/#831/#832/#836 anwerfen.
  3. 3. Stale-Branch-Revert-Klasse: #725 zeigte das Muster — PR-Merges, deren Branch ältere Hunks mitträgt, revertieren still frisch gelandete Fixes. Bei der hohen Merge-Dichte lohnt „Update branch" oder Rebase-Pflicht vor Merge.
  4. 4. Ledger-Etikettierung „Spec+Fix in einem PR" stimmt erneut nicht (19× Spec-only) — Lesart „done" irreführend.
  5. 5. #534 schließen (vom #720-Refactor überholt); #723 nach Crash-Fix nicht als „Duplikat" schließen ohne den Hunk.

Erzeugt von der Reviewer-Nacht-Session · Markdown-Quelle