Как Мила сделала: разборы и новости
Новая версия Милы приходит карточкой: что нового в нескольких строках и кнопка. Обновляется Мила только по вашей кнопке. Ваши файлы, память и ключи обновление не трогает, а любое обновление можно отменить. У каждой строки ниже — ссылка на код.
Новые умения приходят к вам. Ваша работа остаётся как была.
Умение mila-update знает, какая версия стоит, сверяет её с последним релизом и приносит только то, что полезно. skills/mila-update:9-12
Раз в сутки Мила ищет релиз новее своего. Пробные сборки (-rc) и отозванные версии пропускает.
skills/mila-update:38-40 update.py:117 update.py:523-534Сначала проверяются список релиза, заголовки умений и код хуков. Одна ошибка — версия отклонена, ничего не записано.
update.py:422-433 update.py:557-561 test_nightly.sh:67«Есть обновление», несколько строк из списка изменений, что не тронется, и две кнопки: ✅ Обновиться и ⏸ Не сейчас. Одну и ту же версию дважды не предлагает.
update.py:481-486 update.py:565-571 test_nightly.sh:41Мила обновляется после ✅ на эту самую версию. Вчерашнее нажатие, нажатие на другую версию или не от вас не считается. После «Не сейчас» ждёт следующего релиза.
skills/mila-update:59-60 skills/mila-update:63 skills/mila-update:80Обновление приносит умения ядра, хуки и инструменты, запускатель mila, конституцию и каноны. Точный список — в файле релиза. skills/mila-update:27 release.json:6-58
Список, зашитый в скрипт, сильнее любого релиза: эти пути не пишутся никогда, даже если релиз по ошибке попросит. update.py:52-57 update.py:63-65 release.json:60-78
memory/ и journal/, состояние кронов. update.py:54 update.py:56.env, secrets/, вход в Claude, сами настройки обновлений. update.py:55-57Перед записью каждый файл сверяется с тем, что стоит. Исходов четыре. update.py:244-257
Вы меняли умение — ваша версия остаётся. Новая кладётся рядом, в mila-update/new/, и Мила об этом говорит.
При первой сверке файл у вас может быть даже новее релиза. Его берут только по имени, после сравнения.
skills/mila-update:35 test_update.sh:34Каждое обновление записывается в журнал: когда, какая версия, откуда, кто решил и где бэкап. skills/mila-update:22-23 update.py:375-377
Всё, что изменится, сначала уходит в архив .tgz в mila-update/backups/.
Одна команда возвращает всё, как было до последнего обновления: новое убирается, старое достаётся из бэкапа.
update.py:608-612 test_update.sh:56Файлы на месте, умения читаются, хуки собираются, версия записана. В ночном режиме провал проверки — автоматический откат и карточка «вернула всё, как было».
update.py:436-458 update.py:575-580 test_nightly.sh:61-63Разработчики могут отозвать версию. Она не ставится никогда, а если уже стоит — Мила предупреждает.
skills/mila-update:45 update.py:150-161 test_nightly.sh:75Канал stable (по умолчанию) — только выпущенные версии. canary — свежая ветка main. manual — Мила сама не проверяет. skills/mila-update:18-20 update.py:588-596 test_nightly.sh:84
По умолчанию auto выключен: ночью только карточка, обновление — по вашей кнопке. Если вы сами включите auto, Мила будет обновляться ночью сама — с бэкапом, проверкой и автоматическим откатом, а потом пришлёт «что нового». update.py:33 update.py:572-582 test_nightly.sh:52
У каждого дома своё ночное смещение 0–119 минут, чтобы Милы не шли за обновлением разом. update.py:604-605
$ update.py status $ update.py check $ update.py diff --tag v1.5.2 $ update.py nightly --dry-run $ update.py rollback $ update.py config --set channel=stable
owner_chat она остаётся файлом в mila-update/cards/. Подпись релиза проверяется, только если включить require_signed. update.py:495-510 update.py:554-556| Файл | Что делает |
|---|---|
| skills/mila-update | как Мила обновляется и что не трогает никогда |
| update.py | проверка, сверка, обновление, откат, ночной шаг, проверка здоровья |
| release.json | что релиз обновляет и что не трогает никогда |
| yanked.json | отозванные версии |
| test_nightly.sh | 23 проверки ночного шага |
| test_update.sh | 27 проверок обновления и отката |
| CHANGELOG.md | что нового в каждой версии (на английском) |
Набор открыт: умения, хуки, инструменты и шаблоны. Запустите test_nightly.sh и test_update.sh сами — каждый pull request читает человек и Мила Качество.
Факты на странице: github.com/shakhruz/mila (main, 8a6b97d, v1.5.2), проверено 22.10.2026; test_nightly.sh — 23 из 23, test_update.sh — 27 из 27. Переписка в телефоне — иллюстрация. «Mila», «MILAGPT» и логотип — товарные знаки MILAGPT.