v1.0.8
[1.0.8] - 2026-08-20
Production audit: Job assign fail-loud, env-dump integrity, installer host
allowlist, and packaging/CI hygiene.
AssignProcessToJobObjectfailure is a caseERROR. battest does not resume
cmd.exeoutside the job. The job handle is closed ifPopenfails. An
abandoned process skipsrmtreeof the workdir. JUnit duration includes
teardown.- After seeding, a non-file env dump path is
ERRORbefore spawn. After a
finished run, missing or non-file dumps areERRORwhenexpect.envis set.
Env dumps,equals_file, andfiles[]reads are capped at 10 MiB.
copy:refuses junctions/symlinks whose target escapes the fixture tree. - Host environment is inherited except stripped
BATTEST_*. CI secrets that
are not namedBATTEST_*can reach the SUT and JUnit.expect_callsis not
a security boundary; call logs live in the writable workdir. - Installer download URLs must be
httpson GitHub asset hosts. Package smoke
asserts packaged catalogs and schema. Non-Windows unit coverage does not use
the 90% floor (Windows jobs still do). PSGallery installs pin exact
PSScriptAnalyzer and Pester versions. - Packaged catalog YAML uses the same bounded loader as fixtures. Regex
workers getmultiprocessing.freeze_support()fromexecute_case. Invalid
regex patterns fail immediately without spawning a worker. - GitHub Action consumers should use
tboy1337/battest@v1. Release CI moves
that major tag to eachv1.x.xGitHub release.