You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
📦 Обновление больше не трогает работающую версию - апдейтер собирает релиз целиком в versions/<версия>-<sha>/ рядом с текущим и до активации гоняет health-пробу с финальных путей на свободном порту; переключение - флип симлинка current. Обрыв на любом шаге (скачивание, сборка, проба, рестарт) оставляет работающую установку нетронутой, а iva rollback возвращает предыдущую тем же флипом, без git. Данные (data/, vault/, .env) вынесены из кодового дерева, поэтому смена версии их не задевает; миграции версионированы и идемпотентны. Старый апдейтер остался мостом: первый iva update штатно втягивает релиз, второй переводит установку на новую раскладку каталогов.
🎨 Кастом из data/custom больше не кладёт сервис - пользовательские файлы накладываются на сборку версии, и если сервис на такой сборке не поднялся, апдейтер пересобирает ту же версию стоковой и уведомляет об отложенном кастоме в Telegram. Один кривой файл больше не оставляет установку лежать.
🧠 Контракт write_card закрыт от выдуманного архива - секции ## History и ## Log пишет только инструмент, модель не может подсунуть свою версию прошлого. Повторный SUPERSEDE и SUPERSEDE с устаревшим history_entry отклоняются или схлопываются в noop, поэтому History не обрастает дублями. Мусорный ввод (пустые значения, markdown в однострочных полях, незакрытый код-фенс) отбивается внятной ошибкой, а memory doctor отдельно показывает карточки, у которых код-фенс остался открытым.