Aufgefallen bei der Prüfung von #72. Der PR selbst ist float-frei; das hier ist eine Lücke auf unserer Seite.
Befund
NoFloatInSimulationTests scannt genau zwei Pfade:
Assets/_Project/Scripts/Simulation/**
Assets/_Project/Scripts/Core/**
Beide Kopien geprüft — tools/Nova.SimRunner.Tests/NoFloatInSimulationTests.cs:14 und Assets/Tests/EditMode/Simulation/NoFloatInSimulationTests.cs:15. Assets/_Project/Scripts/AI/** und Scripts/AI.Data/** stehen nicht in der Liste.
Warum das zählt
Der KI-Code ist lockstep-relevant. SkirmishAiSystem läuft über AiPeerCommandTransport byte-gleich zum Netzwerkpfad und ist zwischen Combat und Victory in der Tickreihenfolge registriert. Ein float dort bricht den Determinismus genauso wie einer in Simulation/ — nur fängt ihn kein Test.
Das ist heute kein akutes Problem: der KI-Strang rechnet durchgehend ganzzahlig. Es ist ein fehlender Wächter, kein Fehler.
Herkunft
Der externe Beitragende hat die Lücke selbst im Quelltext vermerkt (Assets/_Project/Scripts/AI/CombatStrength.cs:24–26), statt sie zu verschweigen. Gefunden haben wir sie erst dadurch.
Vorschlag
Beide Testkopien um Scripts/AI/ und Scripts/AI.Data/ erweitern. Vorher kurz gegen den Bestand laufen lassen — falls dort heute schon ein float steht, ist das ein eigener Befund und kein Grund, den Wächter nicht zu setzen.
Der Wächter selbst liegt in tools/Nova.SimRunner.Tests/, gehört also keinem Strang exklusiv (siehe das Schwester-Issue zur Hoheitslücke).
Aufgefallen bei der Prüfung von #72. Der PR selbst ist float-frei; das hier ist eine Lücke auf unserer Seite.
Befund
NoFloatInSimulationTestsscannt genau zwei Pfade:Assets/_Project/Scripts/Simulation/**Assets/_Project/Scripts/Core/**Beide Kopien geprüft —
tools/Nova.SimRunner.Tests/NoFloatInSimulationTests.cs:14undAssets/Tests/EditMode/Simulation/NoFloatInSimulationTests.cs:15.Assets/_Project/Scripts/AI/**undScripts/AI.Data/**stehen nicht in der Liste.Warum das zählt
Der KI-Code ist lockstep-relevant.
SkirmishAiSystemläuft überAiPeerCommandTransportbyte-gleich zum Netzwerkpfad und ist zwischenCombatundVictoryin der Tickreihenfolge registriert. Einfloatdort bricht den Determinismus genauso wie einer inSimulation/— nur fängt ihn kein Test.Das ist heute kein akutes Problem: der KI-Strang rechnet durchgehend ganzzahlig. Es ist ein fehlender Wächter, kein Fehler.
Herkunft
Der externe Beitragende hat die Lücke selbst im Quelltext vermerkt (
Assets/_Project/Scripts/AI/CombatStrength.cs:24–26), statt sie zu verschweigen. Gefunden haben wir sie erst dadurch.Vorschlag
Beide Testkopien um
Scripts/AI/undScripts/AI.Data/erweitern. Vorher kurz gegen den Bestand laufen lassen — falls dort heute schon einfloatsteht, ist das ein eigener Befund und kein Grund, den Wächter nicht zu setzen.Der Wächter selbst liegt in
tools/Nova.SimRunner.Tests/, gehört also keinem Strang exklusiv (siehe das Schwester-Issue zur Hoheitslücke).