← Alle Berichte

Nightly Fleet Report — 2026-09-28

Reviewer-Runde nach dem "All lanes finished"-Kickoff (~04:15 UTC). Verifikation

gegen main: Suite lokal ausgeführt, Diffs gesichtet, Fix-PRs stichprobenartig

gegen ihre Failspecs geprüft.

Kurzfassung

Batches, 9 Assert-Nachrichten-Sweeps, 2 pcall-Audits, 11 Failspecs,

14 Fix-/Feature-PRs, 1 L10n, 2 Misc.

Fix-PRs als Basis nennen.

mit Fix-PRs gepaart, jeder Fix verweist auf sein Failspec + volle Suite.

#237 stale gegen #200/#239, #238 vergiftet die Suite (Hook-Leak) —

Kommentare auf den PRs.

eine local X→x-Rename-Regression (Deklaration umbenannt, Usages nicht) —

Startup-Crash, schwarzer Bildschirm, Fenster-Layout defekt. Mein

Funktions-Scan hat die Variable-Klasse nicht erfasst. Kais Regression-Sweep

(2e529168 + Audit_20260927_CleanupRegressionSweep.md, 15 Klassen) hat

alles aufgeräumt; ich prüfe künftig beide Klassen.

Bug-Reports aus dem Tester-Chat

Ledger: BotLogs/BugReports.md. **6 neue Reports vom 27.09. — alle am selben

Tag triagiert und gefixt:**

DatumTitelStatusFix
2026-09-27Blaupausen-Bau stürzt ab (Rezept-Icon)done#247
📎 2026-09-16%20-%201789552621.txt
2026-09-27DarkPyramidA-Glow-ID unbekanntdone#250
📎 2026-09-16%20-%201789555096.txt
2026-09-27Projektil trifft ThiefBotdone#252 (neues Libraries/CombatTargetLists.lua)
📎 2026-09-13%20-%201789253704.txt
2026-09-27Blaupause über bestehendem Kabelkein Bugbereits gefixt (a4b941d3)
📎 2026-09-16%20-%201789551175.txt
2026-09-27ScrapBot01: veraltete UpdateMob-SignaturverworfenScrapBot01 nie spawnbar → #268 entfernte ihn komplett
📎 2026-09-12%20-%201789243435.txt
2026-09-27Spielstand laden: korrupte MapData.tbldone#258 lesbarer Fehler statt Crash
📎 2026-09-12%20-%201789243013.txt

Plus: Die zwei Inventar-Assert-Reports vom 26.09. — Kai-Entscheidung

(Assert = Contract, Caller-Bug): #199 geschlossen, #251 hat den Crash-Fix

geliefert UND den vom Reviewer geflaggten Itemverlust-Pfad gehärtet

(Swap-Restore bei false in beiden swapHandAndSlot-Pfaden). Verifiziert —

Contract-Asserts (Bounds) bleiben bestehen.

Failspec→Fix-Paare dieser Nacht (alle geprüft)

FailspecDefektFixReview-Verdict
#288Asteroiden-Fenster Freeze getBaseClaimCosts(0) Endlosschleife#352 Guard Index<=0korrekt
#290Crafting-Queue: AmountToRemovep-Typo → nur 1 Item entfernt#298 1-Zeilen-Typo-Fixkorrekt (Diff gesehen)
#308Projectiles: 4 Defekte (Scope, nil-Vector, Load-Korruption, Defaults)#312korrekt — Load-Index→ID-Bug ist real
#319Teleporter-Fenster Crash bei korruptem Save#321 Load-Sanitizekorrekt
#333Routen-Editor: OnTop nil-Global → Click-Through#335 Parameter durchgereichtkorrekt
#339Crafting-Fenster Crash: return DrawChoice → true-Sentinel (Cleanup-Regression-Klasse 2)#344korrekt
#348Förderband-Menü: Greyed-Overwrite vor Tooltip#354 isHovered-Flagkorrekt
#350Außenposten-Feld: falscher Tooltip (Copy-Paste)#356 Konstante getauschtkorrekt
#371Asteroiden-Distanz asymmetrisch (d(A,B)≠d(B,A), Gratis-Teleports)#373 echte Hex-Metrik (offset→axial→kubus)Math verifiziert — -1-Korrektur war empirisch falsch
#375Savegame-Parser: lange Strings über Puffergrenze abgeschnitten#377 keepBuffersUp-Nachladen vor Slicenkorrekt — Symbole im Scope geprüft, fail-loud bleibt
#376LocalizedInfoText: font nil-Global in Draw#378 Font pro Draw aufgelöstkorrekt

Auffällig: #339/#344 ist dieselbe Regression-Klasse wie der Cleanup-Fallout

(return PascalCase → nil-Global → Modul gibt true zurück). Die

Failspec-Pipeline hat gefangen, was mein Review-Scan gestern verpasste —

genau so soll es laufen.

Alte Failspecs — Entscheidung nötig

anders fehl (require liefert false). Obsolet → schließen.

falsch: Spec stubbt PlayerController.GetPlayerAsteroid, Code nutzt seit

#200 GameState.GetCurrentAsteroid. Stubs aktualisieren → als Regression-

Spec mergen, oder schließen.

debug.sethook-Step-Limit bleibt auf den gespawnten Thread-Coroutines →

"step-limit-exceeded" schlägt später in ForceCreateNewTeleporter und

SpaceMapGeometry zu (lokal reproduziert). Suite-Vergiftung — Hook

aufräumen (debug.sethook(co)) oder aus Suite-Pfad nehmen.

Features (Kai-Tickets, queued → fixer → fertig)

PRWasReview
#270Crash-Logs mit Datum+Uhrzeitklein, spec-pinned
#271Auto/Quicksave-Max 100 (Slider → Werteliste 1-10, dann Zehner)sauber implementiert
#273Textfelder: Pfeiltasten, Backspace-Beschleunigung, Außenklick-Rename190-Zeilen-Spec dabei
#275Undo/Redo-Buttons + Paletten-Tooltips via TooltipManagergeteilter Undo/Redo-Pfad mit Shortcuts — sauber
#304Drohnen-Routen-Status lokalisiertFunnel-Pattern korrekt
#272Schnell-Drop im Bug-Chat + PR-Watcher-ToolsCoordinator-Tooling

Lane 1 / Lane 3 (Stichproben)

Zeile, keine Source-Änderungen). Stichprobe #370 sauber.

assert(x,"file.lua \t : ctx") — Bedingungen unverändert, Stil konsistent

mit LogManager-Konvention. Passt zur Assert-Doktrin (#248).

fail-loud-Design eingehalten.

Kais Tag (64 Merges)

(2e529168): ~20 Fehler, alle dokumentiert in BotLogs/Fix_20260927_*.md

+ Vollaudit (15 Klassen, jetzt 0 Rest-Funde; Suite-Rest-Fails sind

Windows-Stub-Env-Probleme, nicht Logik).

"Intern:"-Filter (#244), Squash-Subject-Regel (#256), Assert-Doktrin

(#248), Lane-2-Re-Run-Liste (#266), Lane-3-pcall-Audit-Pflicht (#267).

letzten 2 Tage — Regel eingehalten (außer Merge pull request #241 —

ein Merge-Commit, wird von --no-merges in build_release.py eh ignoriert).

Daily-Diff (Coordinator)

BotLogs/DailyDiff_2026-09-28.md: ~108 Commits; Re-Runs markiert:

S01/S04/S83/S92/S93/S100 verified→re-run, S02/S05 flaky→re-run

(main.lua:200-Ursache via Overlay-Fix vermutlich behoben); neue Rows

CombatTargetLists in TARGETS + AnalysisAndCleanUp. Vermerk:

CI-Infrastruktur-Ausfall unterwegs dokumentiert.

Kai-Handlungsempfehlungen

  1. 1. #234 schließen (obsolet), #237 aktualisieren oder schließen,

#238 nicht mergen bis der Hook-Leak behoben ist (Kommentare stehen).

  1. 2. Fix-Flut #298/#312/#321/#335/#344/#352/#354/#356/#373/#377/#378 in

beliebiger Reihenfolge mergebar — keine Overlaps gefunden.

  1. 3. Lane-3-Cleanup-Lektion steht im DailyDiff: Variable-Renames brauchen denselben

Stale-Use-Check wie Funktions-Renames — ich scanne beides ab heute.

  1. 4. #375/#377 (Savegame-Parser) ist HIGH IMPACT — wahrscheinliche Ursache der

gemeldeten korrupten Saves vom 27.09. → priorisieren.

— Reviewer-Session, ~04:45 UTC

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