diff --git a/Aetheria.Shared/Aetheria.Shared.csproj b/Aetheria.Shared/Aetheria.Shared.csproj index 5274558da..43d1c257d 100644 --- a/Aetheria.Shared/Aetheria.Shared.csproj +++ b/Aetheria.Shared/Aetheria.Shared.csproj @@ -24,7 +24,7 @@ - + diff --git a/Directory.Build.props b/Directory.Build.props index 7c3d05600..e1f4acc37 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -2,7 +2,12 @@ $(CULTLIB_ROOT) $(MSBuildThisFileDirectory)..\CultLib + 45c2f4006f5f7dab357426cabd3197e8d0a17f66 + $(CULTMATH_ROOT) + $(CultLibRoot) + + 6d5e2096563a320933b64ddfd6ded8f2e846ac91 C:\Program Files\Git\cmd\git.exe git diff --git a/Directory.Build.targets b/Directory.Build.targets index da7151646..c9c079a6c 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -1,24 +1,39 @@ + + + + + + - - - + + - + - - + - + - + diff --git a/docs/fire-control-cut.md b/docs/fire-control-cut.md index 5b4fc3979..35f2048ef 100644 --- a/docs/fire-control-cut.md +++ b/docs/fire-control-cut.md @@ -1745,7 +1745,10 @@ cut's own diff: dotnet tool restore cd tests/Aetheria.Shared.Tests - CULTLIB_ROOT= dotnet stryker --since: + CULTLIB_ROOT= CULTMATH_ROOT= dotnet stryker --since: + +Each root must sit at its pinned revision in `Directory.Build.props` (see the Cut 12.0 +status note). **Float-threshold boundary flips are known-equivalent.** Stryker files `>`→`>=` under the same Equality mutator as `==`→`!=`, and the latter catches real bugs, so @@ -2158,8 +2161,15 @@ rotation, while its march and its even split are left untouched until 12.3. Two verification lines above were stale when written and are corrected here. CultLib had no mutation tooling at all, so there was no "CultLib mutation run"; Stryker.NET was adopted in its own cut (`hands/adopt-stryker`) and its CultMath baseline is 2243 mutants, 350 -survived, triaged in that cut's report. The "headless `CultLibRoot` pin" is not a pin -either: `Directory.Build.props:3-4` resolves it to a sibling path with no revision. The +survived, triaged in that cut's report. The headless pin needed more than a bump. `Directory.Build.props:5` pins one CultLib revision +for every package, and that revision (`45c2f40`) is exactly Unity's `caching-unity-v1.4.0` / +`cultlib-unity-v1.0.60`; moving it to the release would have put six CultNet commits of newer +CultCache, including a breaking registration change, under the headless tests while Unity +stayed on 1.4.0. So the headless build now pins per package, mirroring the manifest: +`CultMathRoot`/`CultMathRevision` at the 0.2.4 tag's merge (`6d5e2096`), `CultLibRoot`/ +`CultLibRevision` still at `45c2f40` for CultCache. A package's pin moves only when its +manifest tag moves. (Self first repeated Soul's claim that there was no pin, from a read of +lines 3-4; line 5 is the pin, and the build refused the first attempt to use the release.) The Unity manifest lives at `packages/cultmath/unity/org.gamecult.cultmath/package.json`, not at the repo root. @@ -2181,7 +2191,16 @@ evaluation on a 128-interval hull, 1.06 µs on 64, and worse under IL2CPP. The A `HitProbability` constantly. 12.2 must measure the new placement against the old kernel per gated-in evaluation and report both, not assume 1D beats 2D. -**Still owed (the release cut, with its own Soul pass before any tag is pushed):** Unity +**Released 2026-09-24:** CultLib `20e6da5` (release) and `8c86bc9` (the changelog meta), merged to +main at `6d5e2096`, tagged `cultmath-unity-v0.2.4`. Release Soul pass: the DLL rebuilt byte- +identical from source (sha256 `2470cd48…`), public surface +2 (`erf`, `erfinv`), shipped +`erfinv(±1)` correctly signed; its one finding, `CHANGELOG.md` without a Unity `.meta`, was fixed +before tagging. Aetheria repinned in `2a68b4c0` (manifest and Unity-written lock, hash +`6d5e2096`); batchmode resolve and compile clean, no missing-meta warning. Follow-up for CultLib: +`build-unity-package.ps1:89-90` checks metas only for code and binary files, so it could not see +the missing `.md` meta. + +**Was owed (kept for the record):** Unity consumes a *precompiled* `CultMath.dll` pinned at `cultmath-unity-v0.2.3` (`Packages/manifest.json:56`), so no Unity-side fire-control code can call `erf` until the package is rebuilt, bumped to 0.2.4, tagged and repinned. The headless tests see the