← Alle Berichte

Nightly Fleet Report — 2026-09-27

Reviewer-Runde nach dem "All lanes finished"-Kickoff. Alle Angaben gegen den

aktuellen main-Stand verifiziert (Suite lokal ausgeführt, Diffs gesichtet).

Kurzfassung

(56 broken) war fast komplett die eine AddItemToPlayerInventorySlot-Assert —

Fix liegt bereit.

(#234/#237/#238) und alle drei Fixes liegen bereits vor (#236, #239+#200, #240).

2566 Specs, 0 Fehler (#196).

Bug-Reports aus dem Tester-Chat

Ledger: BotLogs/BugReports.md. Drei Reports aus dem Chat, alle erledigt:

DatumTitelStatusFixAnhang
2026-09-26Absturz beim Ablegen auf volles Inventarfelddone#199 (+Härtung #206/#207)
2026-09-26Item auf volles Feld abstellen crashtdone#199 — gleiche Assert-Familie
2026-09-26Absturz beim Wechsel auf die Weltkartedone#200 (Anhang: Logfile)
📎 2026-09-25%20-%201790333372.txt
2026-09-26Ticket: Blaupause 90° drehendone → Fixer#212 (siehe Review)

Nächtliche Failspec-Funde (queued → fixer, Fixes bereits offen):

FundFailspecFixBemerkung
Notes.lua mitten in Statement abgeschnitten#234#236verifiziert: Datei endet bei love.graphics.newCanvas(
TransportsLayer: Heimkehr-Linie nie gezeichnet + Fallback-Crash#237#239nach #200 mergen
LightMap-Freeze bei Null-Ray#238#240Endlosschleife vector*2 verifiziert

Review der Fixer-PRs (alle diffs gelesen)

PRWasVerdict
#199assert-Stack-Crash → Log + return false in beiden AddItemTo*Slot.luageprüft, korrekt. ⚠️ UpdateHandSlot/swapHandAndSlot ignorieren false → theoretischer Itemverlust-Pfad (Kommentar gepostet)
#200PlayerController.GetPlayerAsteroid() (nil!) → GameState.GetCurrentAsteroid()korrekt. Methode existierte nie — der Call selbst war der Crash
#206machineMap[y][x] Zeilen-Guard in PlacePyramidB/C + Warnungkorrekt, LogManager importiert
#207nil-Guard GameState.GetLastPosition() in SpaceOverlaykorrekt
#212Editor-Blaupause per R drehensehr sauber: UndoRedo.Push, Dirty-Flag, RecomputeWireNames, KeyMap-Gating (Paste/Stamp/Rename/Confirm), 192-Zeilen-Spec
#236abgeschnittenes newCanvas( in Notes.lua auskommentiertkorrekt — Datei wird nirgends required
#239originX/Y auf Funktions-Scope gehoben, Fallback auf Drohnen-Asteroid, Draw-Guardkorrekt, aber allein unvollständig — ruft noch PlayerController.GetPlayerAsteroid → nach #200 mergen (Overlap → Rebase nötig)
#240Null-Rays in addEdgesToRays skippen + Early-Return in getTestRaykorrekt, Defense in depth

Lane 2 (Szenarien)

PRWasVerdict
#203Seeding über GivePlayerItems-Helper statt AddItemToPlayerInventorySlot (57 Dateien)Root-Cause-Fix — erklärt die 44+ Slot-Kollisionen in der Verifikation
#220S47 + S124–S129 Blueprint/Wire-Batchreviewed
#223S130–S142 + Library-Sweep S410–S467 (400 Dateien, +31k)Struktur geprüft — 397 Scenarios + 2 Helpers; Stichproben sauber
#233S294 Szenario Blaupausen-Rotationreviewed — passt zu #212

Verifikations-Stand (Windows, 2026-09-26): 20 verified / 2 flaky / 56 broken.

Die Broken-Liste ist fast vollständig die eine Fehlersignatur

AddItemToPlayerInventorySlot.lua:74 "cannot stack 2 different items" — #199

fixt die Assert, #203 fixt das Seeding: die nächste Matrix sollte massiv grüner

laufen. Flaky: main.lua:200 Update nil (S02, S05) — Timing, beobachten.

Lane 1 (Unit-Tests)

flach (Referenz-Restore + Key-only package.loaded-Snapshot). Fix kopiert

love zwei Ebenen tief und snapshotet Modul-*Werte*. Ich habe den Branch

ausgecheckt und luajit UnitTests/run.lua selbst laufen lassen:

2566 passed, 0 failed — Behauptung stimmt. Nur Harness-Änderung, keine

Source-/Spec-Hacks.

— crashte bei jedem Tunnel-Despawn auf FILE_MapInfo[nil]; LogManager.Log

existiert nicht → AddLine; return true-Parität). Fixes verifiziert korrekt.

⚠️ Boundary: Source-Fixes gehören laut Protokoll in den Fixer-Ledger.

Stichproben mechanisch sauber.

queued → fixer im Ledger (Fixes s.o.).

Lane 3 (Cleanup + L10n)

PRScopeVerdict
#201Source/Update (29f)reviewed — kein Behavior-Diff; totes TimeID=saveTime-Feld entfernt (saveTime war nie definiert → nil → No-op)
#227Source/Objects (97f)mechanisch sauber
#229Source/Libraries (304f)mechanisch sauber
#230Repair/Tiles/Themes/Stages (27f)mechanisch sauber
#231Source/GuiElements (407f)mechanisch sauber
#232Tests/top-level/Tools (124f)mechanisch sauber
#235L10n-Funnels + ~180 Keyssicher verifiziert: LocaleManager.Get(K) liefert K zurück bei Missing → Passthrough; Cache-Key erst nach Übersetzung

Konventions-Check über alle Cleanup-Giants: systematischer Scan auf verwaiste

interne Call-Sites nach den lowerCamel-Umbenennungen — 4 Kandidaten, alle

False-Positives (M.ExportName ruft weiter PascalCase-API, nur local function

wurde umbenannt). Öffentliche Modul-APIs unverändert.

Daily-Diff (Coordinator)

BotLogs/DailyDiff_2026-09-27.md: 359 Commits gescannt; Manifest-Aktionen

S20/S21/S22/S81/S82 → re-run; kein needs-rewrite; keine neuen Einträge.

Kai-Handlungsempfehlungen

  1. 1. Merge-Reihenfolge: #199 → #200 → #239 (Rebase nötig) → #240 → #236; dann

#196 (Quarantäne-0) — danach Failspecs #234/#237/#238, sie dokumentieren die

gefixten Bugs.

  1. 2. #199 Restrisiko: bei verweigertem Stapeln kann ein Item verloren gehen

(Caller prüfen false nicht) — Follow-up-Ticket statt Silent-Path.

  1. 3. #198 Boundary: Lane-1-PR mit Source-Fixes — heute OK (verifiziert), aber

Pattern nicht etablieren.

  1. 4. Flaky main.lua:200 Update nil (S02/S05) beobachten — kein PR nötig, aber

ein queued-Eintrag wäre sinnvoll falls es wiederkehrt.

— Reviewer-Session, ~04:30 UTC

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