Parent: #161
Goal
Extend edit.rs to append an audit entry on every attribute edit.
Spec
EditPlan gains: message: Option<String>, author: Author
EditResult gains: audit_entry: AuditEntry
EditPlan::apply() flow becomes:
- Read current content_hash → parent_hash
- Read current attribute value → old
- Write new attribute value
- Create AuditEntry
- Append to
_fd5_audit_log
- Recompute content_hash
- Return EditResult with the entry
TDD
- Test edit creates audit entry with correct parent_hash
- Test edit preserves existing log entries
- Test author from identity is recorded
- Test message defaults to "Edit ."
- Test content_hash covers the audit log (tampering detected)
Parent: #161
Goal
Extend
edit.rsto append an audit entry on every attribute edit.Spec
EditPlangains:message: Option<String>,author: AuthorEditResultgains:audit_entry: AuditEntryEditPlan::apply()flow becomes:_fd5_audit_logTDD