Release 0.52.0
Release 0.52.0 does less work when reading test inputs and collecting reports. It also keeps separate test results and cleanup working correctly when tests run at the same time. Quoted inputs, empty values and report contents keep their existing behavior.
Less work between tests
Parallel reports no longer start base64, the tool used to encode values, separately for each result. Data providers, functions that supply several sets of inputs to a test, also avoid calling it for each argument. Quotes and empty values are preserved. Reading those arguments still happens in a separate shell so it cannot change the main shell's state (#1371, #1370).
JSON reports avoid starting an extra program for each ordinary filename, test name or empty message. Special characters are still written safely. When running files one after another, bashunit also reuses saved information about test inputs and settings for unchanged files up to 512 bytes. It checks that the file still has the same contents before reusing that information (#1369, #1372).
Each set of inputs keeps its own result
When test cases run at the same time, each manages its own temporary files, even if their arguments are identical. Cases that run one after another inside a parallel run also keep separate results, so a later passing case cannot hide an earlier failure (#1379, #1377).
A request to stop a test that arrives late no longer interrupts tear_down. Cleanup still has a time limit if it hangs. Sending parallel output to another command also no longer waits for the unused progress indicator to finish sleeping (#1376, #1368).
Shared contributor setup
Contributor instructions now have one shared source in agnostic-ai, which creates the files read by Claude Code and Codex. The project installs a fixed version of this tool through npm. The shared instructions decide which guidance and model to use for each task. Contributors edit .agnostic-ai/ and then recreate the tool-specific files (#1387).
The release script now updates and commits the project version in both npm lockfiles, which record installed dependencies. It restores those files if local release changes need to be undone. Automated checks for supported Bash versions read shell code without treating generated instructions as code, and the Linux installer checks now install the build tool they require.
See the full changelog for 0.52.0 on GitHub.