Skip to content

ProofCLI v0.3.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 14:06
· 12 commits to main since this release
cfd5a56

Changes

Fixed

  • Stop output overflow with bounded pipes instead of unbounded temporary logs.
  • Bound regex/content verification using a supervised assertion worker/deadline.
  • Clean ordinary POSIX descendants on normal completion; bound draining of pipes held by detached children.
  • Handle SIGTERM/Windows break; preserve interruption reports and execution evidence on report-write errors.
  • Compare output decimals precisely and reject precision-losing spec numbers.
  • Preserve venv interpreter paths instead of dereferencing Python symlinks.
  • Reject output links/reparse points, staged-input hard-link aliases, normalization/device aliases, overlapping destinations, lone surrogates, and oversized/nonregular specs.
  • Escape terminal controls in human diagnostics.

Added

  • Exact JSON (json_equals), exact CSV headers/ordered records, and precise mismatch locations/values.
  • Fixture fingerprints, verification_complete, and a separate assertion deadline.
  • Real regressions for lying summaries, missing records, wrong values, and unexpected columns.
  • Wheel/sdist install/rebuild gates, hashed build tools, immutable Actions pins, advisories/checksums, and gated release assets.

Compatibility

Spec version 1 and legacy invocation remain. Subset/count defaults are unchanged. Output overflow now stops execution, ordinary background POSIX children do not survive completion, and ambiguous/link-based contracts or precision-losing spec decimals are rejected. This is a pre-1.0 hardening release, not independent security certification or universal production readiness.

Validation workflow: Windows/macOS runtime, distribution and advisory gates.

Requires Python 3.10+. Assets contain a universal Python wheel, source distribution and SHA256SUMS. Installation instructions are in the README; the package is not on PyPI. Commands run with your user permissions, and a pass covers only the declared assertions. See SECURITY.md and docs/audit-0.3.md for remaining limits.