Context
serde_json::to_vec(secrets) serializes HashMap with randomized key order, causing spurious vault file churn.
Solution
Replace HashMap with BTreeMap in AgeVaultProvider or sort keys before serialization.
Epic: #858 | Effort: S | Crate: zeph-core