Разделы документации
Документация/Эксплуатация

Обновление ThreadCells

Обновление — это контролируемое продвижение кандидата с проверенным восстановлением, а не перезапись на месте файлов, которые оказались запущены.

Перед обновлением

  • Прочитайте примечания к выпуску и Ограничения.
  • Подтвердите текущее состояние health и идентичности активной сборки/сборки восстановления.
  • Дайте критической работе провайдера/тяжёлой работе достичь безопасной границы.
  • Проверьте открытые рабочие процессы и доставленные результаты.
  • Создайте согласованную резервную копию и проверьте целостность базы данных.
  • Сохраните текущий кандидат как вариант восстановления.

Сборка и проверка

Из предполагаемого commit исходного кода:

bash
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 и метаданные релиза обозначают одну и ту же ревизию кандидата.

Проверки после обновления

  1. curl -fsS http://127.0.0.1:9889/health
  2. Откройте Home и проверьте состояние ёмкости/диска.
  3. Откройте существующие Agents/Flows и подтвердите, что устойчивые связи сохранились.
  4. Сравните готовность провайдеров в Settings и Spawn.
  5. Подтвердите, что авторизация оператора настроена и защищённые изменения остаются заблокированными до разблокировки.
  6. Откройте Statistics и подтвердите, что обновление/перезапуск не дублирует использование.
  7. Откройте маршруты Docs и проверьте идентичность упакованной сборки.
  8. Проверьте поток терминала/переподключение.
  9. Подтвердите, что манифест PWA и service worker не кэшируют динамические запросы.
  10. Откройте Settings → Telegram и подтвердите безопасное состояние конфигурации; если нативные учётные данные уже были настроены, выполните явные проверки подключения и тестового сообщения.
  11. Для открытого агента, пересекающего продвижение, подтвердите, что повторная инициализация control connection завершилась один раз и его тот же устойчивый рабочий процесс продолжается без пробуждения владельца или дублирования дочернего агента/эффекта.

Исторические исправления

Обновление может включать ограниченное исправление данных. Выполняйте его только при детерминированных исходных свидетельствах, сохраняйте идемпотентность и записывайте количество до/после. Отсутствующая телеметрия провайдера должна оставаться отсутствующей; никогда не создавайте историческое использование.

Восстановление

Если приёмка существенно не проходит:

  1. сохраните неудачный кандидат и относящиеся к делу безопасные журналы;
  2. переключите канонический активный указатель на проверенный кандидат восстановления;
  3. перезапустите только необходимые службы;
  4. проверьте сборку восстановления и основные поверхности;
  5. восстанавливайте базу данных до обновления, только если этого требует совместимость schema/данных.

Не используйте разрушительный Git reset и не удаляйте более новые свидетельства runtime, чтобы имитировать восстановление.

Явно подтверждённый Full Cleanup — исключение из обычной политики хранения локальных релизов: он удаляет все доказанно неактивные релизы, включая выбранный при развёртывании релиз отката, и оставляет только активный неизменяемый релиз. Не запускайте его во время приёмки обновления или пока какой-либо агент выполняет работу. После успешного Full Cleanup доступность отката можно восстановить только подготовкой другого проверенного неизменяемого релиза; никогда не воссоздавайте его из непроверенного каталога.

См. Локальное развёртывание и Резервное копирование и восстановление.

Создано и поддерживается Субаевым Русланом при участии сообщества ThreadCells. Открыть репозиторий