Skip to content

Determinismus-Wächter scannt Scripts/AI/ nicht — ein Float dort käme durch die CI #74

Description

@cubetribe

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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    governanceLizenz, Benennung, Prozess, Release-Recht

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions