Skip to content

feat(construction): enforce all building prerequisites - #81

Merged
cubetribe merged 2 commits into
mainfrom
codex/feat/16-8-prerequisites
Aug 10, 2026
Merged

feat(construction): enforce all building prerequisites#81
cubetribe merged 2 commits into
mainfrom
codex/feat/16-8-prerequisites

Conversation

@cubetribe

@cubetribe cubetribe commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

Was

  • ersetzt die singuläre Bauvoraussetzung durch eine All-of-Bitmaske über die unveränderten UnitRole-Wirewerte
  • setzt für Allianz und Legion dieselbe Kette aus neun Gebäuderollen um
  • leitet Executor und Baubar aus derselben fail-closed Missing-Mask ab; nur eigene fertiggestellte Gebäude erfüllen Bits
  • bindet die vollständige Maske in DefinitionsHash64 und dokumentiert D-103
  • integriert main bis einschließlich PR feat(economy): add five finite Aetherium fields #80 und bewahrt dabei Site-, Low-Power-, Lager- und Governance-Verträge

Warum

Mehrfachvoraussetzungen waren im verbindlichen Gebäudedesign festgelegt, konnten im bisherigen Einzelrollenfeld aber nicht ausgedrückt werden. Die Bitmaske ist die kleinste tabellarische All-of-Darstellung und hält Definition, Executor und UI auf derselben Wahrheit.

Der Definitions-Hash bewegt sich absichtlich. Relay und beide Clients müssen aus demselben Commit stammen; alte Builds und Replays werden vor Tick 1 über den Fingerprint abgelehnt. StateVersion, Command- und Relay-Wireformat bleiben unverändert. Die öffentliche C#-Quelle PrerequisiteRole wird zu PrerequisiteRoles; alle Repository-Aufrufer sind migriert, ein externes SDK wird nicht vorausgesetzt.

Begrenzte Integrationsreparatur nach D-105

D-103 machte einen vorhandenen Legion-KI-Fehler sichtbar: Nach der Raffinerie reichte die Strommarge rechnerisch für die Kaserne, obwohl deren neue All-of-Maske ein fertiges Kraftwerk verlangte. Die KI versuchte deshalb dauerhaft einen illegalen Bau.

Der kleinste gebundene Fremdflächen-Diff prüft die Missing-Mask und plant nun Raffinerie → Kraftwerk → Kaserne. Weil dies die Entscheidungsreihenfolge ändert, steigt AiBehaviorId korrekt von r6.E34435F9 auf r7.E34435F9. Der kanonische Ausgang wurde auf diesem integrierten Head frisch gemessen: Tick 2705, Endzustand 0x28F2CC571BCE6B76 (vorher Tick 2546, 0xE784E6184AD16081). Beide AI-Testspiegel sichern die Reihenfolge.

Der in den KI-Kommentaren vorgeschriebene externe Pfad tools/Nova.AiLab/reports/behavior-log.md existiert in diesem Repository nicht. Messwerte und fehlender Journalpfad sind daher offen im Changelog, DecisionLog und hier dokumentiert; es wird kein nicht existentes Journal als Nachweis behauptet. Die dauerhafte Schreibhoheit des Einheitenstrangs bleibt unverändert.

Nachweise auf Head 0c658e09e2f0a9f66f28a254dbe9cca39b13f3ca

  • fokussiert Construction, Economy, Skirmish AI und Canonical AI: 84/84 grün
  • kanonisch lokal: ./.dotnet/dotnet test tools/Nova.SimRunner.Tests/Nova.SimRunner.Tests.csproj -c Release --no-restore → 685/685 grün
  • Dokuprüfung: 179 Markdown-Dateien und 5 Quality-JSONs grün
  • git diff --check: grün; keine Konfliktmarker oder unstaged Änderungen
  • die vier geschützten Golden-/Determinismus-Baselines sind unverändert
  • zwei unabhängige Read-only-Abschlussreviews: GO, keine verbleibenden P1–P3
  • frische GitHub-Pflichtchecks für diesen Head: laufen; Merge erst bei vollständig grünem Rollup

Manuelle Abnahme

Nicht gespielt. Grund: Unity erreicht auf dieser Maschine den Testlauf wegen des bereits reproduzierten Lizenz-Handshakes nicht (Unsupported protocol version '1.18.1'); beim bestätigten Lauf entstand kein Ergebnis-XML. Die Spielabnahme ist nach D-105 ausdrücklich zurückgestellt.

Automatisierter Ersatznachweis: vollständige headless Suite, gespiegelte Runtime-/EditMode-Testquellen, Dokuprüfung, unabhängige Reviews und die frische PR-CI. Restrisiko: Darstellung und Wortlaut der mehrfach fehlenden Voraussetzungen in BuildMenuHud wurden nicht im laufenden Unity-Spiel visuell geprüft; auch ein lokaler Unity-Compile-/EditMode-Nachweis für den finalen Head fehlt. Der PR ist damit integrierbar, aber nicht spielerisch abgenommen und kein Meilenstein-Nachweis.

Changelog und Releasewirkung

  • [Unreleased] / Geändert: 16.8 / D-103 einschließlich r7-Integrationsnachweis
  • Dokumente: Buildings 0.7.0, DecisionLog 1.37.0, Sprint-16-Vertrag 1.5.0
  • Wirkung: minor; kein Game-Tag oder Release

@cubetribe
cubetribe marked this pull request as ready for review August 10, 2026 09:24
@cubetribe
cubetribe merged commit 58edde3 into main Aug 10, 2026
9 of 10 checks passed
@cubetribe
cubetribe deleted the codex/feat/16-8-prerequisites branch August 10, 2026 09:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant