[AWP-AUD-001]
- Records are JSON Lines; each record carries
ts_mono_ns,direction,kind, andbody.[AWP-AUD-002] - Worlds SHOULD hash-chain records (
prev_hash) for tamper evidence.[AWP-AUD-003] - Retention policy is deployment-defined; the format is normative so logs are portable across tools.
[AWP-AUD-004] - Logs with full payloads plus a starting snapshot are sufficient for deterministic replay on worlds that advertise it.
[AWP-AUD-005]
Redaction
- Before a control-channel message is written to the log, the world MUST replace the values of
session_token,transfer_token,snapshot_token, anyAuthorizationheader or bearer credential, and every value addressed by a JSON pointer insafety_policy.audit.redact_paths(relative toparamsorresult) with"[redacted:sha256:<first 8 hex of the SHA-256 of the value>]", so that records can be correlated without exposing the value. Deployments useredact_pathsfor approvalparams/note,task.content, and any action parameters carrying personal data. Redaction applies to the log only, never to the wire; frame hashes are unaffected. See also AWP-APR-006, AWP-TSK-005.[AWP-AUD-006]
Record classes
The same JSONL format serves three purposes with different completeness requirements. Tooling MUST label which class a file satisfies ("class" in the first record). [AWP-AUD-007]
A hash-only log is an audit record, not a dataset: the hashes let a replay prove it reproduced the original observations, but nothing in the log can regenerate them.
The log is deliberately triple-purpose: safety audit trail, debugging record, and dataset — see Record and replay.