Проблема
После успешной source mutation через unica.meta.edit связанная запись ConfigDumpInfo.xml/workspace state может остаться прежней. Обычный runtime build полагается на устаревшее состояние и пропускает изменённый объект или модуль. Последующий partial dump без предупреждения возвращает старую версию из информационной базы и перезаписывает актуальный source.
Та же проблема возникает для ручного изменения BSL; будущий unica.code.patch должен закрыть её системно, а не требовать full rebuild после каждого patch.
Минимальное воспроизведение
- Выгрузить объект
Catalog.SampleCatalog и его ConfigDumpInfo.xml из локальной базы.
- Изменить одно scalar property через
unica.meta.edit.
- Выполнить обычный
unica.runtime.execute(operation=build) без ручной правки CDFI.
- Выполнить partial dump того же объекта.
- Повторить сценарий для одного существующего
Module.bsl после будущего unica.code.patch.
Фактическое поведение
Source mutation и runtime lifecycle не связаны единым affected-target/dirty contract. Build может не загрузить изменение, а dump не обнаруживает source/IB divergence.
Ожидаемое поведение
- Каждый mutation tool возвращает нормализованные affected metadata/module targets и content hashes.
- Workspace хранит локальный dirty state вне tracked 1C sources; platform
configVersion не синтезируется вручную.
- Runtime build использует dirty targets/content hashes и гарантированно загружает изменённый source.
- Partial dump сравнивает текущий source с последним известным loaded/dumped hash.
- При divergence dump по умолчанию останавливается с structured conflict; overwrite требует явного force.
- После terminal build/dump dirty state обновляется только для фактически обработанных targets.
Критерии приёмки
meta.edit → normal build → partial dump сохраняет изменённое property.
code.patch → normal build → partial dump сохраняет тот же BSL text byte-for-byte.
- Если IB содержит другую версию, dump возвращает conflict и не меняет source без explicit force.
- Result build/dump содержит requested, processed, skipped и conflicted targets.
- Перезапуск workspace service не теряет незавершённый dirty state.
Связанные задачи
Проблема
После успешной source mutation через
unica.meta.editсвязанная записьConfigDumpInfo.xml/workspace state может остаться прежней. Обычный runtime build полагается на устаревшее состояние и пропускает изменённый объект или модуль. Последующий partial dump без предупреждения возвращает старую версию из информационной базы и перезаписывает актуальный source.Та же проблема возникает для ручного изменения BSL; будущий
unica.code.patchдолжен закрыть её системно, а не требовать full rebuild после каждого patch.Минимальное воспроизведение
Catalog.SampleCatalogи егоConfigDumpInfo.xmlиз локальной базы.unica.meta.edit.unica.runtime.execute(operation=build)без ручной правки CDFI.Module.bslпосле будущегоunica.code.patch.Фактическое поведение
Source mutation и runtime lifecycle не связаны единым affected-target/dirty contract. Build может не загрузить изменение, а dump не обнаруживает source/IB divergence.
Ожидаемое поведение
configVersionне синтезируется вручную.Критерии приёмки
meta.edit → normal build → partial dumpсохраняет изменённое property.code.patch → normal build → partial dumpсохраняет тот же BSL text byte-for-byte.Связанные задачи