mikhail
|
7e99790378
|
feat: assembly_add_component — упрочнение по ревью Codex реализации
#1: RebuildModel результат проверяется (FALSE → ошибка).
#2/#3: верифицируемый откат RollbackInsertion (по beforeCount, удаляет всё сверх
исходного через IFeature7.Delete, не полагается на null-возврат AddFromFile).
#5: тест вставки во вторую (непустую) сборку — инкремент count + корректность Index.
#7: тест несуществующего файла — FileNotFoundException + сборка остаётся пустой.
#4 (точечный release RCW) отклонён: противоречит конвенции проекта (OPEN_QUESTIONS
v2-2, образец HoleService) — транзитные RCW не освобождаем точечно.
Тесты: AssemblyTests 3→5, итого 83 unit + 55 integration = 138 зелёных.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-27 13:09:51 +03:00 |
|
mikhail
|
5eee7ad1af
|
feat: assembly_add_component — вставка детали из .m3d в сборку (API7)
Веха СБОРКИ, инкремент 1. Новый AssemblyService (API7, паттерн HoleService):
IParts7.AddFromFile → Placement.SetOrigin → RebuildModel. Новый AssemblyTools
(MCP-инструмент assembly_add_component), регистрация в DI.
Ключевая находка: UpdatePlacement возвращает FALSE для вручную позиционируемого
компонента (не ошибка), позицию применяет SetOrigin + RebuildModel(true).
Валидация — чистый AssemblyValidation (расширение .m3d/.a3d, нормализация пути,
конечность координат). RequireActiveAssembly — раздельные ошибки по типу документа.
Тесты: +14 unit (AssemblyValidation), +3 integration (AssemblyTests: вставка в
origin, позиционирование со сдвигом, отклонение не-сборки). Итого 83 unit + 53
integration = 136 зелёных.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-27 13:04:19 +03:00 |
|