mirror of
https://github.com/TZERO78/kopi-docka.git
synced 2026-06-19 07:37:12 +00:00
c0d8f66c8a
Round two of UX cleanup on scripts/migrate-config.sh after a real
production config (full notification setup, legacy hooks,
retention.yearly from an old release) exposed several false positives
and a missing template field.
Fixed
- Stop flagging `template=null` vs scalar as a type mismatch. A null
value in the template marks a "not configured yet" slot —
kopia.password_file, notifications.service, notifications.url and
similar. The live system produced pages of false-positive `!` lines.
Now suppressed in either direction; only genuine clashes surface.
- Trailing empty `! ` entry in the type-mismatch block removed. The
block was built with `+= "$line"$'\n'` plus a terminating newline,
printing one blank `! ` at the end. Switched to a proper bash array
and `printf '%s\n' "${arr[@]}"`.
- Template now ships backup.database_backup. The Pydantic schema has
had it (default "true") since 5.x but config_template.json was
missing it — every install that still had the key got it flagged
as "unknown" on first migrate.
Documentation
- Known legacy renames table in docs/CONFIGURATION.md. The script
doesn't auto-rename (no opinion on your data), but the doc tells you
which "Unknown" lines (retention.yearly → annual, pre/post_backup_hook
→ backup.hooks.*) are safe to --prune-unknown once you've copied the
value to the new key.
Tests: 1124 passing.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>