mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-10-25 21:20:00 +00:00
9ee4dab97b
**Reproduce destructive acceptance of incomplete configuration backups** Assert that authenticated null, incomplete and mistyped backup envelopes leave persisted settings, credentials, metadata and transaction artifacts unchanged. These controls are expected to fail before validating the archive shape. **Reject incomplete configuration backups before replacement** Require the five sections emitted by every supported archive before starting a transaction. Preserve null webhook inventories, deliberate empty configurations, legacy optional fields and best-effort forward compatibility. Exercise encrypted rejected imports, byte-identical persistent state, unchanged runtime, failure audits and legacy recovery. Contract-Neutral: Rejects incomplete non-backup payloads before the existing replacement transaction; emitted archive formats, supported complete legacy backups, API response shape and tenant authority remain unchanged. **Exercise backup validation without bypassing empty-node protection** The initial control is already protected when saved Proxmox nodes block an empty replacement. Model an installation with no Proxmox nodes, where invalid envelopes can reach the settings and credential writes. Keep the existing empty-node safeguard intact and use that legitimate empty inventory for legacy compatibility controls. --- Fleet candidate `20261025T050006Z-core-runtime` from the `core-runtime` lane. Reviewed tip `38a8b01ca3cd72180dcfd2a680f08f7cb398e8ca` on `main`. [How Pulse handles triage](https://github.com/rcourtman/Pulse/blob/main/docs/AI_TRANSPARENCY.md)