mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-11 00:14:56 +03:00
511bfe7fdf
XmlDocument round-trip искажал Template.xml даже при отсутствии правок: декодировал " в <query>/<expression>, схлопывал многострочный xmlns корня, добавлял пробел перед /> и записывал файл при [WARN] not found. Дирти-флаг ($script:Dirty / dirty) ставится только на успешной мутации; финальный save пропускается с [INFO] No changes -- file untouched, если ни одна операция в batch ничего не изменила. Post-process после OuterXml восстанавливает raw-форматирование корневого xmlns из исходного файла, re-escape `"` в текстах <query>/<expression> с anchored regex (не задевая xsi:type="..."), и нормализует <foo .../> к <foo.../>. Замеры на реальной схеме после modify-field: diff упал с 423 строк до 37 (94% шума устранено), повторный прогон byte-identical. В runner.mjs добавлен caseData.idempotent: re-run + byte-equality на всех файлах workDir. Три новых кейса (NO-OP, entity-preserve, xmlns-multiline) + общий fixture roundtrip-base. Все 33 ранее существовавших snapshot перегенерированы под корректное форматирование (восстанавливают то, что старый skd-edit ломал). skd-edit v1.18 -> v1.19. PS и PY порты синхронизированы. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>