Оба пробела нашёл цикл через базу 8.5 (собрать навыками → загрузить → выгрузить):
- cf-init не писал возможность мобильного приложения TextToSpeech, добавленную
форматом 2.21 последней в списке UsedMobileApplicationFunctionalities;
- form-add не писал <UseInInterfaceCompatibilityMode>Any</…> в метаданных формы.
meta-compile эмитил это свойство только для общей формы, а платформа 8.5 пишет
его у форм любых объектов — сразу после UsePurposes, до ExtendedPresentation.
После правки выгрузка платформы совпала с исходниками везде, кроме
ConfigurationExtensionCompatibilityMode (платформа поднимает значение до своего
максимума — так и задумано), скелета Ext/Form.xml и тела MXL: оба расхождения
предсуществующие, к формату 2.21 не относятся.
663/663 ps1, 660/663 py.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Фикстура empty-config-221 (cf-init -FormatVersion 2.21) и по кейсу на навык:
cf-init, meta-compile, meta-edit, form-add, form-compile, template-add,
mxl-compile, subsystem-compile, subsystem-edit, role-compile, xdto-compile,
cfe-init, cfe-borrow, epf-init, erf-init.
Проверки через expect.fileContains по сырым байтам, а не только снэпшотом:
позиция xmlns:pal (после lf, перед style) и его отсутствие там, где платформа
его не пишет (Rights.xml роли, Ext/ClientApplicationInterface.xml).
663/663 ps1, 660/663 py.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>