M6 [P1]: Salvage recovers audit/ledger tables + stops silently downgrading TLS mode #248

Closed
opened 2026-07-31 14:40:30 +00:00 by KofTwentyTwo · 1 comment
KofTwentyTwo commented 2026-07-31 14:40:30 +00:00 (Migrated from github.com)

recovery.rs:194-230,327-357: DB salvage never recovers worm_audit_records/filter_execution_logs (tamper-evidence lost on salvage) and silently hardcodes salvaged accounts' imap/smtp TLS modes back to ImplicitTls regardless of their real configured mode (can silently downgrade a STARTTLS/implicit distinction). Goal: extend salvage to carry the audit/ledger tables, and preserve each account's real TLS modes (or fail loudly if they can't be recovered) rather than silently defaulting. Tests.

Source: full-tree audit 2026-07-30 (scratchpad/audit/AUDIT-SUMMARY.md). Follow docs/STORY-WORKFLOW.md: engine+proto(if surface)+CLI+offline E2E, mock-only tests, no fabricated data, comment convention, PR to dev, PO reviews before close.

`recovery.rs:194-230,327-357`: DB salvage never recovers `worm_audit_records`/`filter_execution_logs` (tamper-evidence lost on salvage) and silently hardcodes salvaged accounts' imap/smtp TLS modes back to `ImplicitTls` regardless of their real configured mode (can silently downgrade a STARTTLS/implicit distinction). Goal: extend salvage to carry the audit/ledger tables, and preserve each account's real TLS modes (or fail loudly if they can't be recovered) rather than silently defaulting. Tests. Source: full-tree audit 2026-07-30 (scratchpad/audit/AUDIT-SUMMARY.md). Follow docs/STORY-WORKFLOW.md: engine+proto(if surface)+CLI+offline E2E, mock-only tests, no fabricated data, comment convention, PR to dev, PO reviews before close.
KofTwentyTwo commented 2026-07-31 17:01:42 +00:00 (Migrated from github.com)

Delivered via PR #270 (squash-merged to dev). DB salvage now carries worm_audit_records + filter_execution_logs (hash-chain columns preserved verbatim; restored chains verify) and preserves each salvaged account's real imap/smtp TLS mode instead of silently resetting to ImplicitTls (unrecognized raw value → ImplicitTls with a WARN naming the account/column/value). RecoverySummary gained the new counts. Tests: chain-preservation + StartTls-preserved. Reconciles the salvage findings.

Delivered via PR #270 (squash-merged to dev). DB salvage now carries worm_audit_records + filter_execution_logs (hash-chain columns preserved verbatim; restored chains verify) and preserves each salvaged account's real imap/smtp TLS mode instead of silently resetting to ImplicitTls (unrecognized raw value → ImplicitTls with a WARN naming the account/column/value). RecoverySummary gained the new counts. Tests: chain-preservation + StartTls-preserved. Reconciles the salvage findings.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: KofTwentyTwo/nuncio#248