Repository navigation
TestGuard v0.15.0
Automated weekly release — everything merged since v0.14.2.
Changed
- feat: harden discovery, replay, and command budgets (#174)
- chore(homebrew): sha256 for v0.14.2 (#173)
Added
- Runner-native test discovery for Vitest, Jest, and Playwright, with bounded
output, path validation, immutable universe manifests, exact mixed-runner
routing, and configuration-closure hashes (including workspace configs,
package helpers, setup files, and Python collection hooks) that prevent stale
evidence reuse. - Symbol-aware JavaScript/TypeScript defender discovery through named,
default, namespace, CommonJS, and barrel re-exports. Ambiguity and bounded
resolver exhaustion fail closed asdefender-discovery-indeterminate. probe,sweep, andreplayaccept--command-budget <ms>as a
cooperative measurement deadline distinct from the existing per-run
--budget. It caps asynchronous children and is checked at stage and write
boundaries; synchronous setup may overrun but cannot publish a partial
result, so an unattempted suffix can never be reported as clean.
Fixed
- Runner timeouts now hard-kill the original process group and descendants
still attributable at timeout. Diagnostics explicitly say cleanup is
unverified because a previously reparented daemon requires external OS or
container containment. - Generated CommonJS export mutations and unresolved symbol/configuration
paths fail closed instead of allowing a falsenocoverresult. - Dirty-tree preflight now resolves the same full primary-plus-owned runner
universe as measurement, including custom Playwright names and imported
configuration helpers; discovery failure blocks rather than hiding edits.