Files
enduro-trails/docs/work-items/ET-014/14-deploy-log.md
claude-bot 28ca15ca0b
All checks were successful
CI / lint (pull_request) Successful in 5s
CI / test (pull_request) Successful in 10s
CI / build (pull_request) Successful in 3s
deploy(ET-014): tag v0.0.6 + deploy log (SUCCESS)
- PR #28 merged into main (864181e).
- Tag v0.0.6 pushed.
- Deploy hook (ssh slin@127.0.0.1) RC=0.
- Healthcheck GET /enduro/ → 200 first try.
- Smoke (real URLs /enduro/{app.css,app.js,units.js,gpx.js,gps_tracks.js})
  all 200; deployed app.js carries ET-014/ADR-019/sheet-popup-yield markers
  (4/3/2 respectively) — fix really reached prod, not a stale image cache.
- No rollback needed.

CHANGELOG: added [v0.0.6] block (Fixed: ET-014 terrain-popup ↔
bottom-sheet yield on mobile), restored ET-012 calibration body
under Unreleased that an earlier edit accidentally truncated.

Artefacts:
- docs/work-items/ET-014/14-deploy-log.md
- CHANGELOG.md
2026-06-04 11:32:46 +00:00

5.5 KiB
Raw Blame History

deploy_status, version, work_item, pr, merge_commit, date_utc, environment, healthcheck, smoke
deploy_status version work_item pr merge_commit date_utc environment healthcheck smoke
SUCCESS v0.0.6 ET-014 28 864181e 2026-06-04T11:30:00Z test PASS PASS

Deploy Log — ET-014

  • Version (tag): v0.0.6
  • Date: 2026-06-04 11:30 UTC
  • PR: #28 (fix(ui): terrain-popup закрывается при открытии bottom-sheet (ET-014)), merged into main (merge commit 864181e).
  • Environment: test (https://openclaw.mva154.duckdns.org/enduro/)
  • Healthcheck: PASS
  • Smoke: PASS
  • Status: SUCCESS

Pipeline

  1. Merge. POST /repos/admin/enduro-trails/pulls/28/merge (Gitea API, Do=merge) → HTTP 200. PR был mergeable=true, конфликтов с main (на котором уже сидел деплой ET-013 / v0.0.5) не было. Merge commit 864181e сидит на origin/main.

  2. Tag. Инкремент patch от v0.0.5v0.0.6. Тег создан от origin/main (git tag v0.0.6 origin/main && git push origin v0.0.6).

  3. Deploy hook. ssh slin@127.0.0.1 bash /home/slin/bin/enduro-deploy-hook.sh → RC=0. Хук тянет main, пересобирает/перезапускает docker compose сервис app на хосте mva154. Previous-image-digest на хосте (/home/slin/repos/enduro-trails/.deploy-prev-image) — sha256:4c09cd6f9fe8dccdf2bb70ac24679e44abf9ecdea050108173e43c9c86e4ff98 (тот же, что был зафиксирован при деплое ET-013; хук не обновляет маркер, если digest не изменился, но это не означает, что rebuild не произошёл — см. smoke ниже, в задеплоенном app.js присутствуют ET-014-маркеры). Этот digest доступен для --rollback.

  4. Healthcheck. GET https://openclaw.mva154.duckdns.org/enduro/ → HTTP 200 с первой попытки (без необходимости polling-loop).

  5. Smoke.

    Ресурс Статус Размер
    /enduro/ (index.html) 200 37 251 B
    /enduro/app.css 200 48 675 B
    /enduro/app.js 200 143 856 B
    /enduro/units.js 200 8 773 B
    /enduro/gpx.js 200 48 674 B
    /enduro/gps_tracks.js 200 38 695 B

    Размер /enduro/app.js вырос со 142 964 B (v0.0.5) до 143 856 B (+892 B) — это ровно тот yield-блок, который добавил фикс ET-014 (src/web/app.js, +17 строк, см. ADR-019).

    Дополнительные проверки на специфику ET-014 (фикс «terrain-popup yields to opening bottom-sheet»):

    • В задеплоенном /enduro/app.js присутствуют маркеры ET-014 (×4), sheet-popup yield (×2), ADR-019 (×3) — фикс действительно доехал до прода, а не остался старым image-кэшом.

    Замечание про шаблон smoke. Алгоритм деплоера упоминает /static/style.json и /static/app.js, но в enduro-trails такого префикса нет — статика монтируется в корень /enduro/ (app.js, app.css, …); style.json приложение не отдаёт отдельным эндпоинтом, MapLibre-стиль формируется в app.js программно. Корректный smoke (как и в ET-013) — над реально отдаваемыми URL'ами (/enduro/app.js и пр.); они все 200. Прогон против шаблонных URL дал бы ложный rollback. Это известный gap в инструкции, отмеченный в deploy-log ET-013.

Что фактически уехало в v0.0.6

  • ET-014 — фикс UX-конфликта terrain-popup ↔ bottom-sheet (src/web/app.js, +17 строк): при открытии любого bottom-sheet активный terrain-popup корректно закрывается, а не остаётся висеть поверх UI (ADR-019). Поведение действует только на mobile (window.innerWidth ≤ 768); на desktop popup сохраняется (см. AC-01..AC-08, REQ-F-1..F-8). Покрытие: 16 unit-тестов (tests/unit/sheet_popup.test.js, 11 кейсов поведения + 5 boundary; tests/unit/test_sheet_popup.py, 4 архитектурных invariants ADR-019).
  • Никаких изменений API/БД/тайлов; чисто клиентский fix.

Rollback

Не понадобился. Если бы потребовался — план: ssh slin@127.0.0.1 bash /home/slin/bin/enduro-deploy-hook.sh --rollback (хук восстановит образ из .deploy-prev-image, sha256:4c09cd6f9fe8…ff98 — это, к слову, образ ET-013 v0.0.5). НЕ git checkout в shared-репо — этот путь прямо запрещён в инструкции деплоера, потому что загаживает рабочее дерево и не откатывает прод.

Артефакты

  • Tag: v0.0.6 (origin/main @ 864181e)
  • PR: #28 (merged)
  • Deploy timestamp: 2026-06-04 11:30 UTC
  • Previous image digest (для возможного rollback): sha256:4c09cd6f9fe8dccdf2bb70ac24679e44abf9ecdea050108173e43c9c86e4ff98