Skip to content

fix(update): panels update from published releases only - #129

Merged
agentHits merged 1 commit into
AgentHits-Devfrom
fix/update-releases-only
Oct 29, 2026
Merged

agentHits merged 1 commit into
AgentHits-Devfrom
fix/update-releases-only

Conversation

@agentHits

Copy link
Copy Markdown
Collaborator

Зачем

Кнопка Update в панели ставила agenthits-dev, а этот тег сдвигается после каждого мержа в AgentHits-Dev. Поэтому нажатие Update ставило последнее влитое изменение, даже если его ещё не выпускали. Так панель несколько раз оказывалась на невыпущенной сборке.

Что изменилось

Где Было Стало
Релиз публиковались теги agenthits-vX.Y.Z и agenthits-dev после публикации GitHub-релиза новый workflow AgentHits Stable Tag ставит на тот же манифест тег agenthits-stable
Update и проверка обновлений в панели следили за agenthits-dev, то есть за каждой сборкой следят за agenthits-stable, то есть только за релизами
Панель на сборке новее последнего релиза (agenthits-vX.Y.Z-N-g…) ей предлагался откат на этот релиз откат не предлагается: в её базе уже могут быть миграции этой сборки. Следующий релиз предлагается как обычно
Очистка GHCR не трогала релизы, agenthits-dev и buildcache так же не трогает agenthits-stable

Подробности:

  • Тег копирует манифест релиза без пересборки (docker buildx imagetools create --prefer-index=false), поэтому digest тот же. Workflow побайтно сверяет копию с релизом.
  • Ручной запуск AgentHits Stable Tag с более старым релизом откатывает канал обновлений на него. Без указания релиза берётся последний.
  • Пересобранный образ того же релиза (тот же номер, другой digest) панель по-прежнему предложит.
  • Если тега ещё нет, проверка просто сообщит «обновлений нет», ошибки не будет.
  • Тестовую панель можно оставить на каждой сборке: переменная DOKPLOY_AGENTHITS_UPDATE_TAG=agenthits-dev у сервиса dokploy.
  • install-agenthits.sh и update.sh по-прежнему ставят agenthits-dev. Перевести их на релизы — отдельный шаг: у update.sh своя логика сравнения, и ей нужна такая же защита от отката.

Проверки

Что Результат
Сравнение версий agenthits-vX.Y.Z[-N-g…]: 8 случаев, включая 1.10 против 1.9 и нераспознанные версии ✅
Проверка обновлений: сборка новее релиза, следующий релиз, пересобранный тот же релиз ✅ первой откат не предлагается, остальным обновление предлагается
Канал по умолчанию agenthits-stable и переопределение на agenthits-dev ✅
Существующие тесты команды обновления и проверки обновлений, перенесённые на новый тег ✅
Пробное копирование тега на настоящем agenthits-v1.1.0 (--dry-run) ✅ манифест совпадает с релизом, отличается только переводом строки в выводе
Фильтр очистки GHCR на примере тегов ✅
actionlint, shellcheck, tsc для apps/dokploy и packages/server, biome ✅
Полный набор тестов apps/dokploy ✅ 4355 прошли; 5 падений в vector-validate.test.ts бывают только на Mac (локальный Docker не видит временную папку теста), в CI этот тест проходит

Что сделать после мержа

  1. Один раз запустить workflow AgentHits Stable Tag без параметров, чтобы agenthits-stable сразу указал на agenthits-v1.1.0. Иначе тег появится только со следующим релизом, а до этого проверка обновлений на панелях с этим изменением будет показывать «обновлений нет».
  2. Проверить на dev-панели: на сборке новее последнего релиза Check for updates не предлагает обновление; после следующего релиза предлагает его.

🤖 Generated with Claude Code

The panel's Update followed `agenthits-dev`, which moves with every merge
into AgentHits-Dev, so a click on Update installed whatever was merged last,
release or not.

A release now also moves `agenthits-stable`: after the GitHub release is
published, the new `agenthits-stable-tag.yml` workflow copies the release's
manifest to that tag (`imagetools create --prefer-index=false`, same digest,
no rebuild) and checks the copy byte for byte. A manual run with an older
release moves the channel back to it. GHCR retention never deletes the tag.

The panel's update check and Update now follow `agenthits-stable` by default.
A panel running a build made after the newest release (agenthits-vX.Y.Z-N-g…)
is not offered that older release, because its database may already carry the
build's migrations; a newer release, or a rebuilt image of the same release,
is still offered. DOKPLOY_AGENTHITS_UPDATE_TAG=agenthits-dev keeps a test
panel on every build. A missing tag only makes the check report no update.

install-agenthits.sh and update.sh still default to `agenthits-dev`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@agentHits
agentHits merged commit c13914d into AgentHits-Dev Oct 29, 2026
7 checks passed
@agentHits
agentHits deleted the fix/update-releases-only branch October 29, 2026 22:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant