Repository navigation
ConstraintLoop 0.5.2 fixes recovery from cached environment errors and preserves evidence across retries.
- Environment recovery: unwaived environment errors are rerun automatically, so restoring a missing executable can recover without changing watched files.
- Refresh saved evidence:
constraintloop run --refreshreruns applicable checks and replaces cached evidence.--no-cacheand CI still bypass both cache reads and writes. - Complete retry history: command, metric, and ratchet results retain each attempt's redacted output tail, exit code, execution error, start time, and duration. Inspect it in JSON or
constraintloop debug ID. Timeouts and output overflow retain bounded partial diagnostics. - Explicit retry policies: examples avoid retrying assertion failures. The default
retry.exit_codes: [1]is retained for compatibility; configure retryable infrastructure failures explicitly.
Upgrade the runtime used by your hooks, then run constraintloop run --refresh when fresh persisted evidence is needed. Existing cache entries remain readable; earlier attempt history cannot be reconstructed. No contract-schema changes are required.
uv tool install --upgrade --reinstall constraintloop==0.5.2
constraintloop --versionValidation includes the full deterministic test suite, coverage floors, Python 3.11–3.14 on Ubuntu/macOS, SDK compatibility, and clean wheel/sdist installation smoke tests. Distributions are built and published by GitHub Actions using PyPI Trusted Publishing with attestations.
Full changes: v0.5.1...v0.5.2