Build once, test across multiple machines
tuist test --build-only now writes a run-metadata.json file into the .xctestproducts bundle it creates. When you run tuist test --without-building with that bundle on a different CI machine or shard, the test run restores the build’s selective testing and module cache data. Your dashboard now shows the correct cache hits and links the test run back to the original build run. Bundles created before this release still work.
Dependency resolution
SwiftPM graph reads now use SwiftPM’s own scratch-directory lock, so concurrent processes resolving or reading the same Swift packages are less likely to crash or corrupt workspace-state.json, checkouts, registry downloads, or binary artifacts. Analytics cleanup also preserves the legacy state/logs directory so that concurrently running processes do not lose log files.