---
deploy_status: SUCCESS
version: v0.0.6
work_item: ET-014
pr: 28
merge_commit: 864181e
date_utc: "2026-06-04T11:30:00Z"
environment: test
healthcheck: PASS
smoke: 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.5` → `v0.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`
