The reapply-patches workflow used a two-way comparison (user's backup vs new version) which couldn't distinguish user customizations from version drift. This caused 10/10 files to be misclassified as "no custom content" in real-world usage, silently discarding user modifications. Changes: - Rewrite workflow with three-way merge strategy (pristine baseline vs user-modified backup vs newly installed version) - Add critical invariant: files in gsd-local-patches/ must NEVER be classified as "no custom content" — they were backed up because the installer's hash check detected modifications - Add git-aware detection path using commit history when config dir is a git repo - Add pristine_hashes to backup-meta.json so the reapply workflow can verify reconstructed baseline files - Add from_manifest_timestamp to backup-meta.json for version tracking - Conservative default: flag as CONFLICT when uncertain, not SKIP Closes #1469 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
10 KiB
10 KiB