v0.8.40 — EU AI Act Art. 12 tamper-evident decision log
Added
- EU AI Act Art. 12-style record-keeping for the tool-call decision layer (100% OSS, offline, no cloud, no network). New
agent_airlock.conformancesubpackage:DecisionLog— append-only, hash-chained JSONL. Eachrecord_hash = SHA-256(canonical(fields incl. prev_hash)), so any edit / deletion / reorder of an earlier record breaks every later hash and is detected at its exact sequence number. Reloads + re-verifies across process restart; fails closed on a broken chain. Decision metadata only (never raw args/results);fsync-durable.export_evidence_bundle()— offline Art. 12 evidence (JSON +render_coverage_table()) mapping each Art. 12 record-keeping expectation to the airlock field that satisfies it, with an explicit out-of-scope list.airlock-conformanceconsole script —record/verify/export.docs/compliance/EU-AI-ACT-ART12.md— honest scope: Art. 12-style record-keeping evidence for the tool-call layer; not a full QMS (Art. 17), not a substitute for the provider's conformity assessment (high-risk obligations apply 2026-08-02).- Restart-survival + tamper/delete/reorder evidence pinned by
tests/test_conformance_decision_log.py(12 tests) — the reproducible credibility asset.
Bump 0.8.39 → 0.8.40. (#109)