Invariants / CN-WAL-01
CN-WAL-01
CN release enforcedSingle WAL append authority: WalStore::append is the SOLE mutation method on any WalStore impl. No truncate/rewrite/replace method exists on the trait or any impl. Append-only by type, not by convention.
- Source
docs/planning/phase4-n-m-ledger-seed-invariants.md §1 (I-A4)
Enforcement trace
Tests 3
- crates/ade_runtime/src/wal/file_wal_store.rs::tests::file_wal_store_append_then_read_all_round_trips
- crates/ade_runtime/src/wal/file_wal_store.rs::tests::file_wal_store_reopens_existing_directory_and_preserves_entries
- crates/ade_runtime/src/wal/file_wal_store.rs::tests::file_wal_store_rotates_at_max_bytes_when_forced
Cross-references
Strengthened in
Evidence notes
PHASE4-N-M-A S3 (2026-05-26): WalStore trait declares only append + read_all + verify_chain. FileWalStore impl adds no extra mutation methods. ci/ci_check_wal_append_only.sh enforces workspace-wide.