Skyrim Forge 5.1.4 — UTF-8 config reads, space-tolerant Hermes test, reproducible natives
Encoding correctness, a test that only passed on space-free paths, and a
release profile that no longer reproduced.
-
Provider configs are read as UTF-8, not the ANSI codepage. On Windows
PowerShell 5.1,Get-Content -Rawwithout an explicit-Encodingdecodes
using the ANSI codepage (Windows-1252), not UTF-8.Register-MCP.ps1read the
user's Kimimcp.jsonthat way and wrote the parsed object straight back, so
every non-ASCII character in that file would have been replaced by mojibake.
Measured on anmcp.jsoncarrying one em dash:Get-Content -Rawturned 1 em
dash into 0 and produced 1 mojibake sequence;ReadAllTextpreserved it.
Four call sites moved to[IO.File]::ReadAllTextacrossRegister-MCP.ps1,
Install-Forge-Skill.ps1andworkers/SkyrimForge.UIWorker.ps1. The UI
worker's path is caller-supplied and may be relative, so it is resolved with
Convert-Pathfirst: .NET resolves relative paths against the process working
directory, not PowerShell's current location. -
The Hermes registration test asserted an unquoted command line. PowerShell
quotes any argument containing a space, so an install under a path such as
S:\Apps\Skyrim Tools\...logs--command "S:\Apps\...". That quoting is
required -- without ithermeswould receive--command S:\Apps\Skyrimand
Tools\...as two separate arguments -- but the test compared against the bare
form and therefore only passed when the install path contained no spaces. The
registration code was correct; the assertion now strips quotes before
comparing. -
The shipped native helpers no longer reproduced from source. Running
scripts/validate_repository.pyagainst a clean checkout of 5.1.3 reported
both binaries as "not reproducible under the -buildvcs=false release profile":
they had been built with a different Go toolchain than the one the profile
now produces. Rebuilt deterministically, so a from-source rebuild matches the
published bytes again.CHECKSUMS-SHA256.txt,MANIFEST.json,SBOM.spdx.json
andBUILD-RECEIPT.jsonare regenerated to match.
Validation: scripts/validate_repository.py -> PASS, no errors (5.1.3
reported FAIL on the reproducibility check). python -m unittest discover -s tests -> 151 tests, OK. PowerShell parser gate -> PASS (9 scripts).