Skip to content

UnpackProof v0.1.1

Latest

Choose a tag to compare

@0then0 0then0 released this 03 Oct 15:29
· 1 commit to main since this release

Patch release focused on verdict correctness and installation, retaining the small synthetic TAR corpus and disposable Docker scope.

Fixes

  • Completed targets that remove the required destination or protected root now produce FAIL with missing-destination-root or missing-protected-root. Absence is accepted only after structured observation and fixture availability/identity checks.
  • Observer errors, unavailable or replaced fixture mounts, Docker failures and incomplete observation are not treated as target violations. Timeout, interruption and OOM classifications are preserved.
  • The Go module and imports now use github.com/0then0/unpackproof. Published v0.1.0 is unchanged.

Evidence and compatibility

Report schemas remain v1 with additive snapshot fields: root_missing and fixture_root. Proven absence uses root: null, objects: [] and complete: true, distinct from an observed empty directory. Strict readers must accept the new fields. Update the host CLI and Linux guest together. Evidence is saved before destructive cleanup.

New configurations run ordinary GNU tar and the stock Python CLI directly, without policy adapters, on the default allow/replace corpus:

  • tar -xf {archive} -C {destination}
  • python3 -m tarfile -e {archive} {destination}

Measured GNU tar 1.34 and Python 3.14.0 passed all 10 cases on Linux arm64 using the existing unpackproof/python-tarfile:0.1 image, ID/repo digest sha256:b75246ced3181e6e5ce9ae355251caada3436193b41b1853ad7a715b77970371. The truncated case correctly exited 2 and 1 respectively; its PASS means an expected extraction error was detected. Versions and image identities are recorded per run.

Installation and validation

go install github.com/0then0/unpackproof/cmd/unpackproof@v0.1.1

This exact tagged installation was verified outside the checkout without a local replace; the installed host CLI ran cases and schema successfully on macOS arm64. Build a Linux guest matching your Docker architecture and prepare the example images using the README. This is a source release without prebuilt binaries or container images.

Unit tests, race checks, vet, installation smoke and the full Docker regression/compatibility suite passed in CI for the released commit. Additional local Docker regressions passed with the race detector.

Scope

Final snapshots can miss transient mutations. PASS on this small synthetic corpus is not proof of full TAR conformance or extractor safety. No archive formats, policies or dependencies were added.

Full changelog