mirror of
https://github.com/storytold/pdfcraft.git
synced 2026-10-28 03:58:45 -06:00
* M14: Preserve recovery snapshots without readable metadata Recovery writes the PDF before its metadata sidecar. A failed sidecar write or interrupted save could leave a usable snapshot that the next listing silently deleted. List PDF snapshots without deleting recovery files. When metadata is missing, unreadable, corrupt or refers to another key, retain the snapshot and recover it without an original path so saving requires a destination. Keep the existing password flow for encrypted snapshots. Add regression coverage for failed metadata writes, repeated listing, missing/corrupt/mismatched metadata and encrypted recovery. Update the M14 progress documentation. Validation: the failed-write regression fails before the fix; all 11 recovery tests pass after it. Formatting and the 31-crate WASM check pass. The full workspace and strict Clippy gates remain red; see the PR body for the failing tests and diagnostics. * Recovery: replace damaged metadata once its snapshot is recovered; one progress-log entry Recovering a snapshot whose sidecar was missing, unreadable or for another key now writes fresh metadata for it (recording whether it is encrypted), so the damaged file doesn't linger. clear() also removes sidecars whose PDF is gone; snapshots themselves are never removed by listing. The header and M14 milestone-row edits are replaced by a single progress-log entry. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: LabDennis <341377186+LabDennis@users.noreply.github.com> Co-authored-by: Brandon Thomas <echelon@gmail.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>