ProxSave v0.13.3
🧩 Cleaner config upgrade diffs, smarter key insertion, and clearer upgrade reporting
This maintenance release improves the configuration upgrade experience by making upgrades more readable and less disruptive: missing template keys are inserted in a way that respects the user’s existing ordering, unanchored keys are grouped into a dedicated upgrade section, and upgrade results expose clearer summaries (including case-only conflicts). It also improves operator visibility by logging exactly which keys were added, and completes additional Italian → English comment/template text translations.
- Better visibility after upgrades: When an upgrade adds missing keys, ProxSave now logs an Info message showing the count and a comma-separated list of newly introduced keys (
cfgUpgradeResult.MissingKeys). - Insert missing template keys without reshuffling user config:
- Config upgrade logic now preserves user key positions and inserts missing template entries near related “anchor” keys to avoid unnecessary rewrites.
parseEnvValuesrecords per-key source ranges andcomputeConfigUpgradebuilds ordered insert operations (sorted) to merge template lines into the original file with minimal diffs.- Improved handling for block (multi-line) values while preserving extra keys and casing-related warnings.
- Dedicated upgrade section for unanchored keys:
- Missing entries that have no nearby anchor are collected and appended under a single
# Added by upgradesection (with appropriate spacing) instead of being inserted arbitrarily. - Template order is tracked via an index field to keep appended entries stable and predictable.
- Missing entries that have no nearby anchor are collected and appended under a single
- Clearer casing conflict behavior and reporting:
- Improved warning wording for case-only differences (“preserved with original casing”).
- Added
CaseConflictKeysto the upgrade result and preserved case-conflict keys in place instead of treating them as extra keys. - Updated CLI output to print case-conflict summaries for dry-run and upgrade flows.
- Consistent upgrade result state:
MissingKeysis now always populated (empty slice when none are missing) to avoid inconsistent result handling by callers. - Documentation and comment language consistency: Translated remaining Italian comments and user-facing template/docs text to English (including
backup.envtemplate comments), with no functional behavior changes.
Overall: config upgrades are now more predictable and operator-friendly—minimal diffs, stable ordering, clearer summaries (including case conflicts), and better post-upgrade visibility of what changed.