Step 1
Every admin or partner write lands on an HMAC-chained log row.
Every admin write and every partner write is HMAC-chained — tamper-evident at scale.
An audit log you can edit is not an audit log. Most production systems treat write-once as a vendor promise rather than a structural property.
We want every consequential action — admin pause, partner approval, consent change, model override — bound to the previous one so a tampered row breaks the chain at verification.
Every admin or partner write lands on an HMAC-chained log row.
Each row binds the prior HMAC, so any tampered row breaks the chain at verification.
Operators query the chain from the admin tooling; partners see their own writes in the portal.
No models cite this feature directly — backing logic is deterministic Python.
Internal-only — no public route handler.
Hash-chained audit makes tampering detectable, not impossible. Operators with sufficient access still write rows; the chain ensures no one can silently rewrite history.