Обновление ThreadCells
Обновление — это контролируемое продвижение кандидата с проверенным восстановлением, а не перезапись на месте файлов, которые оказались запущены.
Перед обновлением
- Прочитайте примечания к выпуску и Ограничения.
- Подтвердите текущее состояние health и идентичности активной сборки/сборки восстановления.
- Дайте критической работе провайдера/тяжёлой работе достичь безопасной границы.
- Проверьте открытые рабочие процессы и доставленные результаты.
- Создайте согласованную резервную копию и проверьте целостность базы данных.
- Сохраните текущий кандидат как вариант восстановления.
Сборка и проверка
Из предполагаемого commit исходного кода:
python3 scripts/build_local_candidate.py --output "$PWD/threadcells-candidate"
candidate="$PWD/threadcells-candidate/threadcells-0.3.4a0-local"
python3 scripts/verify_local_candidate.py --candidate "$candidate"Не продвигайте кандидат, если его идентичность отличается от проверенного commit или не прошли проверки docs/Web/сборки.
Staging и продвижение
Используйте канонические инструменты локального развёртывания, чтобы подготовить кандидат, не изменяя активный указатель. Проверьте подготовленные файлы, затем атомарно продвиньте кандидат и перезапустите только службы ThreadCells, использующие релиз.
Ожидаемый результат: Settings → About, нижний колонтитул Docs и метаданные релиза обозначают одну и ту же ревизию кандидата.
Проверки после обновления
curl -fsS http://127.0.0.1:9889/health- Откройте Home и проверьте состояние ёмкости/диска.
- Откройте существующие Agents/Flows и подтвердите, что устойчивые связи сохранились.
- Сравните готовность провайдеров в Settings и Spawn.
- Подтвердите, что авторизация оператора настроена и защищённые изменения остаются заблокированными до разблокировки.
- Откройте Statistics и подтвердите, что обновление/перезапуск не дублирует использование.
- Откройте маршруты Docs и проверьте идентичность упакованной сборки.
- Проверьте поток терминала/переподключение.
- Подтвердите, что манифест PWA и service worker не кэшируют динамические запросы.
- Откройте Settings → Telegram и подтвердите безопасное состояние конфигурации; если нативные учётные данные уже были настроены, выполните явные проверки подключения и тестового сообщения.
- Для открытого агента, пересекающего продвижение, подтвердите, что повторная инициализация control connection завершилась один раз и его тот же устойчивый рабочий процесс продолжается без пробуждения владельца или дублирования дочернего агента/эффекта.
Исторические исправления
Обновление может включать ограниченное исправление данных. Выполняйте его только при детерминированных исходных свидетельствах, сохраняйте идемпотентность и записывайте количество до/после. Отсутствующая телеметрия провайдера должна оставаться отсутствующей; никогда не создавайте историческое использование.
Восстановление
Если приёмка существенно не проходит:
- сохраните неудачный кандидат и относящиеся к делу безопасные журналы;
- переключите канонический активный указатель на проверенный кандидат восстановления;
- перезапустите только необходимые службы;
- проверьте сборку восстановления и основные поверхности;
- восстанавливайте базу данных до обновления, только если этого требует совместимость schema/данных.
Не используйте разрушительный Git reset и не удаляйте более новые свидетельства runtime, чтобы имитировать восстановление.
Явно подтверждённый Full Cleanup — исключение из обычной политики хранения локальных релизов: он удаляет все доказанно неактивные релизы, включая выбранный при развёртывании релиз отката, и оставляет только активный неизменяемый релиз. Не запускайте его во время приёмки обновления или пока какой-либо агент выполняет работу. После успешного Full Cleanup доступность отката можно восстановить только подготовкой другого проверенного неизменяемого релиза; никогда не воссоздавайте его из непроверенного каталога.
См. Локальное развёртывание и Резервное копирование и восстановление.
