Reviewer: Devin-Permasession · Zeitraum: 30.09. ~19:30 → 01.10. 04:30 UTC · Main: ~80 Commits, Versionen 343–349 geschnitten.
---
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.
---
| PR | Inhalt | Urteil |
|---|---|---|
| #720 | DrawBlueprintEditorView.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) |
| #719 | DrawResourcePreview Cache-Compare-Rebuild (+20/−3) | ✅ verifiziert — #629s Failspec grafted grün (6/6). Gemergt (bdb54297) |
| #722 | Shatter.lua 2-Zeilen-Init-Fix | ✅ verifiziert — „safe before any spawn" grün. Gemergt (94db9878) |
| #723 | UnitID→ID + Ledger | ⚠️ offen — jetzt als Crashfix nötig (s. oben) |
| #724 | identischer 1-Zeilen-Fix | ✅ gemergt (f3da9cf4) — von #725 revertiert |
| #725 | RemoveUnit-Assert (Kai-Entscheid) | ⚠️ gemergt (ef9ad9a1) — Assert korrekt, trug aber den Stale-Hunk → Heal-Crash (s. oben) |
| #721 | MachineIsMinimized (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) |
| #726 | Lane-2 S468-Szenario | geprüft, ok |
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):
require "Data.LoadAlldata" (kleines d) in PatchAsteroidData.lua + UpdateThread.lua — läuft nur unter Windows; Linux/case-sensitiv crasht. Der Klassiker, der nur außerhalb von Windows auffällt.MobSpawnedInDark — Event wird nie gefeuert → unerreichbar. (#815 UpgradeHub = gleiche Klasse.)Remove unbekannter ID → löscht letztes Element (Bloom-Cluster-Klasse).Prpl.loadTable/LoadToT schreiben table = … ohne local → überschreiben die globale table-Bibliothek für den ganzen Lua-State; checkMakeText ruft nicht-existentes Prpl.fileExists. Toter Code — aber jeder künftige Caller vergiftet table.insert global.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)-Audit0 Verstöße heute — Regel #256 wird befolgt. Zum ersten Mal seit Einführung: alle Merge-Subjects sauber.
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).
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.
BotLogs/DailyDiff_2026-10-01.md liegt zum Review-Zeitpunkt noch nicht auf main (Stand 04:15 UTC; letzter: 2026-09-30).
Erzeugt von der Reviewer-Nacht-Session · Markdown-Quelle