mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-13 22:35:16 +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>
11 lines
348 B
JSON
11 lines
348 B
JSON
{
|
|
"name": "Многострочный xmlns корня сохраняется после успешной операции",
|
|
"setup": "fixture:roundtrip-base",
|
|
"params": {
|
|
"templatePath": "Template.xml",
|
|
"operation": "set-query",
|
|
"value": "DS=ВЫБРАТЬ 2 КАК П, "new" КАК Имя"
|
|
},
|
|
"idempotent": true
|
|
}
|