Skip to content

v0.3.28

Latest

Choose a tag to compare

@smixs smixs released this 19 Aug 03:15
· 2 commits to main since this release
  • 🧹 Апдейт чистит за собой - на диске остаются текущая версия и одна для отката, всё остальное убирается. Перед сборкой новой версии остаётся только текущая: сборка занимает слот отката, и в пике на диске две версии (по ~400 МБ), а не три. В финише удаление старых версий идёт первым шагом - до npm i -g @googleworkspace/cli@latest, который сам качает на тот же диск; упавший шаг уборки его больше не отменяет. iva doctor под замком обновления сносит остатки прерванных сборок и лишние версии сам, без флага, и печатает versions on disk: N (current …, rollback …) - X GB free; при живом обновлении говорит «version cleanup skipped», при повреждённом active.json докладывает и ничего не трогает. Уборка перед сборкой работает начиная со следующего обновления после этого: iva update бежит на установленном CLI. Повод - тестовый дроплет на 8.7 ГБ, вставший на трёх копиях node_modules (#194). В docs/troubleshooting.md раздел «Disk full during update», в install - честная строка про диск.
  • 📦 Продвинутый runtime едет со всеми исходниками - стабильный снимок runtime копировал agent/ и scripts/ руками, packages/ в него не попадал, и на установке с непустым custom-слоем агент умирал с [UNRESOLVED_IMPORT] на agent/lib/data-dir.ts в цикле рестартов. Список деревьев теперь один - RUNTIME_SOURCE_TREES, снимок и replica-smoke берут его целиком, дайджест раскладки поднят до v3, так что уже подготовленный без packages/ runtime пересобирается сам. Тест-страж резолвит каждый импорт этих деревьев и падает на дереве, которое снимок бы потерял (#192, #191).
  • 🕒 Таймзона в каноническом написании - europe/moscow в .env Intl принимал, а systemd в OnCalendar=*-*-* 05:00:00 europe/moscow отвергал, и ночной таймер не поднимался. Валидатор отдаёт то, во что Intl зону разрешает: Europe/Moscow, алиасы канонизируются (US/PacificAmerica/Los_Angeles); property-тесты закрепляют идемпотентность и нечувствительность к регистру и пробелам (#190).
  • 👁️ Vision-модель на каждого провайдера - вместо константы в коде свои переменные в .env, пустая = дефолт провайдера: OLLAMA_VISION_MODEL (gemma4:31b), OPENCODE_VISION_MODEL (qwen3.7-plus), OPENROUTER_VISION_MODEL (google/gemini-2.5-flash); у Codex переменной нет - подписка мультимодальна. iva config спрашивает vision-модель сразу после текстовой и пишет рядом с *_MODEL. Дефолт для OpenCode Go выбран по живым прогонам 18.08: gpt-5.6-luna на любую картинку отвечает 400, minimax-m3 заворачивает ответ в <think> прямо в content, qwen3.7-plus даёт чистое описание с OCR за 4-6 секунд.
  • 💬 Три фикса Telegram - кнопка Stop только в личке: в группах её колбэк отвергается с прошлого релиза, а кнопка висела мёртвой. Сообщения, накопленные за время rolling-апдейта, проходят inbound-гейт с тем же предупреждением модели и той же строкой [security] inbound flagged, что и свежие - раньше вердикт игнорировался. Проза, похожая на плейсхолдер кода (цена 50 долларов, таблицы с выровненными числами), больше не вырезается из HTML-ответа: плейсхолдер ушёл в Private Use Area, снаружи такие кодпоинты вычищаются, seeded property-тест гоняет цифры с пробелами и code-span вперемешку.