Repository navigation
Releases: HarperZ9/emet
Release list
EMET 1.3.1
No code or spec change. The README opening now says what emet does and who it
is for, with a first run from PyPI, a comparison with sha256sum, Sigstore,
in-toto and SLSA, and its limits. The refuse example sets EMET_CORPUS,
because the wheel ships without the marker list. The PyPI summary matches the
new description, and the package author is Zain Dana Harper with
zaindharper@gmail.com.
EMET 1.3.0
EMET 1.3.0 adds a packaged Flywheel reporter for Inspect evidence reports, incident-simulation outputs and process-audit packets.
emet.reporters.flywheel binds exact artifact bytes and bounded metadata to a witness receipt. For process-audit packets, retain the whole-receipt SHA-256 or full commitment separately: packet-local hashes alone cannot detect a coherent rewrite of the packet and all its hashes.
The writer uses fixed artifact names and exclusive creation to avoid overwriting existing outputs. Core dependencies remain empty, and the normative specification remains at 1.0.0.
Receipts establish byte consistency against the retained commitment. They do not establish semantic correctness, producer identity, independent storage or actual institutional access.
Install with pip install emet==1.3.0. See the reporter guide for usage and verification limits.
emet 1.2.0 -- the DeepEval reporter ships in the wheel
The signed eval-run receipt reporter for DeepEval now ships inside the emet wheel.
- Install:
pip install emet[deepeval] - Use:
from emet.reporters.deepeval import mint_receipt - A completed DeepEval run mints an emet witness receipt binding the eval record (model, dataset digest, metric/judge, per-case scores) that
emet checkre-verifies offline.
The zero-dependency verify core is untouched: deepeval stays an optional extra, imported lazily only when running an evaluation, and no core module imports the reporter. Core self-hash re-derives on the version bump, as with every release.
v1.1.0
What's Changed
- feat(adapters): add proof-surface bundle witness to EMET receipt adapter by @HarperZ9 in #4
- docs(readme): conformance vector count 31 -> 35 by @HarperZ9 in #5
- Stripped-credential rebind (SPEC s.18, experimental) by @HarperZ9 in #6
- Style: spectrum banner + feature-first README header by @HarperZ9 in #7
- Release v1.1.0 by @HarperZ9 in #8
Full Changelog: v1.0.0...v1.1.0
EMET 1.0.0 - frozen contract, four implementations
EMET is a small external witness for AI oversight: re-derive the bytes, get one of three verdicts (MATCH / DRIFT / UNVERIFIABLE), trust nothing in-band. There is no TRUSTED verdict.
What 1.0.0 asserts — exactly two things: the spec contract is frozen, and the reference implementations are production-grade. It does not claim re-derivability is proven: SPEC §12's independent, different-author implementation bar stays open, and the call for it stands.
Highlights
- Four implementations — Python reference (
membrane.py), Rust, Node.js, and a new clean-room Go port — pass the same 35 conformance vectors in CI. Their governed--jsonfields are byte-identical. - Exit-code split (SPEC §5):
0held ·1a difference found (DRIFT / VIEW_DIFFERS_FROM_SOURCE / QUARANTINE / BROKEN) ·2UNVERIFIABLE ·3markers ·64usage. --jsoncanonical envelope (SPEC §13) — machine-readable, closed-lattice; the human grammar remains the default.emet_self_sha256=selftest token (legacymembrane_self_sha256=alias through the 1.x window).- Packaging —
pip install emetgives anemetconsole script, zero runtime dependencies; the run-from-checkout, stdlib-only story is preserved. Published to PyPI via OIDC Trusted Publishing. - Spec frozen and hardened; an adversarial verification pass pinned four edge cases (surrogate-pair audit, unparseable-line audit, verify anchor-precedence, coherence reason leg) as vectors and aligned all four implementations.
Install
pip install emet
emet selftest
Or run straight from a checkout: python membrane.py selftest.
MPL-2.0. See SPEC.md (normative) and CHANGELOG.md.