1.7 KiB
1.7 KiB
full_replace: фикс дублирования строк спецификации (v2.0.16)
Проблема
mode="full_replace" (LLM возвращает полную новую редакцию — все ADD)
применялся поверх существующей spec_current без очистки.
reset(contract_id) срабатывает только один раз на старте пайплайна, а
full_replace происходит ПОСЛЕ — строки новой редакции плюсовались к старым →
дубли в spec_current.
Фикс
-
site/db/spec_events.py— добавленаclear_current(contract_id): очищает ТОЛЬКОspec_current(историяspec_eventsсохраняется). -
site/services/process.py— передapply_ops():if mode == "full_replace": spec_events.clear_current(contract_id)
Почему не reset()
reset() чистит и spec_events, и spec_current — потеряли бы историю
операций текущей редакции. Для full_replace нужна только очистка текущего
состояния, журнал ADDs должен остаться.
Сопутствующее
- Скорректировано архитектурное описание →
/home/naeel/nubes/contracts/DOC/architecture-contracts-flask.md. Исправлена неточность: ZIP раскрывается на клиенте (expandZipClient→window.listZipFiles), а не серверным/unzip-upload(legacy). - Версия: 2.0.15 → 2.0.16.