--- json replace drops and reports undeclared keys managed-config t: dropped undeclared keys: a.old, list[].k, stale --- yaml replace drops and reports undeclared keys managed-config t: dropped undeclared keys: a.old, list[].k, stale --- toml replace drops and reports undeclared keys managed-config t: dropped undeclared keys: a.old, list[].k, stale --- appOwned nested paths are preserved managed-config t: dropped undeclared keys: stale --- appOwned absent from the old file is not invented --- externalPaths are excluded from the drop report managed-config t: dropped undeclared keys: features.other, gone --- unreadable target with appOwned is refused and untouched managed-config t: /nix/var/nix/builds/nix-52663-3621218408/row/cfg/config.json is unreadable or not a mapping; left untouched --- non-mapping target with appOwned is refused and untouched managed-config t: /nix/var/nix/builds/nix-52663-3621218408/row/cfg/config.yaml is unreadable or not a mapping; left untouched --- explicit null target with appOwned is refused and untouched managed-config y: /nix/var/nix/builds/nix-52663-3621218408/row/cfg/config.yaml is unreadable or not a mapping; left untouched managed-config j: /nix/var/nix/builds/nix-52663-3621218408/row/cfg/config.json is unreadable or not a mapping; left untouched --- empty target with appOwned reads as an empty mapping --- unreadable target without appOwned is replaced with a notice managed-config t: replaced unreadable /nix/var/nix/builds/nix-52663-3621218408/row/cfg/config.json --- fileMode is applied --- a failing spec does not stop later specs managed-config bad: /nix/var/nix/builds/nix-52663-3621218408/row/cfg/bad.json is unreadable or not a mapping; left untouched --- missing parent directories are created