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.
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.
Ledger: BotLogs/BugReports.md. **6 neue Reports vom 27.09. — alle am selben
Tag triagiert und gefixt:**
| Datum | Titel | Status | Fix | |
|---|---|---|---|---|
| 2026-09-27 | Blaupausen-Bau stürzt ab (Rezept-Icon) | done | #247 | 📎 2026-09-16%20-%201789552621.txt |
| 2026-09-27 | DarkPyramidA-Glow-ID unbekannt | done | #250 | 📎 2026-09-16%20-%201789555096.txt |
| 2026-09-27 | Projektil trifft ThiefBot | done | #252 (neues Libraries/CombatTargetLists.lua) | 📎 2026-09-13%20-%201789253704.txt |
| 2026-09-27 | Blaupause über bestehendem Kabel | kein Bug | bereits gefixt (a4b941d3) | 📎 2026-09-16%20-%201789551175.txt |
| 2026-09-27 | ScrapBot01: veraltete UpdateMob-Signatur | verworfen | ScrapBot01 nie spawnbar → #268 entfernte ihn komplett | 📎 2026-09-12%20-%201789243435.txt |
| 2026-09-27 | Spielstand laden: korrupte MapData.tbl | done | #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 | Defekt | Fix | Review-Verdict |
|---|---|---|---|
| #288 | Asteroiden-Fenster Freeze getBaseClaimCosts(0) Endlosschleife | #352 Guard Index<=0 | korrekt |
| #290 | Crafting-Queue: AmountToRemovep-Typo → nur 1 Item entfernt | #298 1-Zeilen-Typo-Fix | korrekt (Diff gesehen) |
| #308 | Projectiles: 4 Defekte (Scope, nil-Vector, Load-Korruption, Defaults) | #312 | korrekt — Load-Index→ID-Bug ist real |
| #319 | Teleporter-Fenster Crash bei korruptem Save | #321 Load-Sanitize | korrekt |
| #333 | Routen-Editor: OnTop nil-Global → Click-Through | #335 Parameter durchgereicht | korrekt |
| #339 | Crafting-Fenster Crash: return DrawChoice → true-Sentinel (Cleanup-Regression-Klasse 2) | #344 | korrekt |
| #348 | Förderband-Menü: Greyed-Overwrite vor Tooltip | #354 isHovered-Flag | korrekt |
| #350 | Außenposten-Feld: falscher Tooltip (Copy-Paste) | #356 Konstante getauscht | korrekt |
| #371 | Asteroiden-Distanz asymmetrisch (d(A,B)≠d(B,A), Gratis-Teleports) | #373 echte Hex-Metrik (offset→axial→kubus) | Math verifiziert — -1-Korrektur war empirisch falsch |
| #375 | Savegame-Parser: lange Strings über Puffergrenze abgeschnitten | #377 keepBuffersUp-Nachladen vor Slicen | korrekt — Symbole im Scope geprüft, fail-loud bleibt |
| #376 | LocalizedInfoText: font nil-Global in Draw | #378 Font pro Draw aufgelöst | korrekt |
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.
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.
queued → fixer → fertig)| PR | Was | Review |
|---|---|---|
| #270 | Crash-Logs mit Datum+Uhrzeit | klein, spec-pinned |
| #271 | Auto/Quicksave-Max 100 (Slider → Werteliste 1-10, dann Zehner) | sauber implementiert |
| #273 | Textfelder: Pfeiltasten, Backspace-Beschleunigung, Außenklick-Rename | 190-Zeilen-Spec dabei |
| #275 | Undo/Redo-Buttons + Paletten-Tooltips via TooltipManager | geteilter Undo/Redo-Pfad mit Shortcuts — sauber |
| #304 | Drohnen-Routen-Status lokalisiert | Funnel-Pattern korrekt |
| #272 | Schnell-Drop im Bug-Chat + PR-Watcher-Tools | Coordinator-Tooling |
spec/*_spec.lua + TARGETS-Zeile, keine Source-Änderungen). Stichprobe #370 sauber.
assert(x) →assert(x,"file.lua \t : ctx") — Bedingungen unverändert, Stil konsistent
mit LogManager-Konvention. Passt zur Assert-Doktrin (#248).
fail-loud-Design eingehalten.
(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).
(#NNN) in den Merge-Subjects derletzten 2 Tage — Regel eingehalten (außer Merge pull request #241 —
ein Merge-Commit, wird von --no-merges in build_release.py eh ignoriert).
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.
#238 nicht mergen bis der Hook-Leak behoben ist (Kommentare stehen).
beliebiger Reihenfolge mergebar — keine Overlaps gefunden.
Stale-Use-Check wie Funktions-Renames — ich scanne beides ab heute.
HIGH IMPACT — wahrscheinliche Ursache dergemeldeten korrupten Saves vom 27.09. → priorisieren.
— Reviewer-Session, ~04:45 UTC
Erzeugt von der Reviewer-Nacht-Session · Markdown-Quelle