# 2026-05-04 — Дневник Стрим

## Enduro Trails — Фаза 3 «Умный маршрут»

### Что делали
Полная реализация Фазы 3: BRD, тест-кейсы, реализация, тестирование, баг-фиксы.

### Документы созданы
- `tasks/enduro-trails/BRD_PHASE3.md` — бизнес-требования (6 фич, согласовано со Славой)
- `tasks/enduro-trails/TEST_CASES_PHASE3.md` — 56 тест-кейсов
- `tasks/enduro-trails/DEV_TASK_PHASE3.md` — ТЗ для Dev-агента
- `tasks/ui-testing/PROJECT.md` — проект UI-тестирования (Playwright/Puppeteer на mva154)
- `tasks/ui-testing/README.md` — как запустить
- `tasks/ui-testing/tests/enduro-phase3.js` — 56 TC в Playwright-скрипте
- `tasks/ui-testing/tests/template.js` — шаблон для новых проектов
- `tasks/ui-testing/scripts/setup-mva154.sh` — установка Chromium на сервере
- `tasks/ui-testing/scripts/run-tests.sh` — запуск тестов

### Реализовано (Дев-агентом)
- ✅ `formatDuration(seconds)` — время в формате "2 ч 35 мин" / "1 дн 2 ч"
- ✅ POST `/api/route` — альтернативные маршруты (до 5), статистика покрытия
- ✅ Карточки маршрутов: компактные + развёрнутые, полоска покрытия, hover/click
- ✅ Промежуточные точки: добавление, удаление, drag, debounce 300ms
- ✅ GPX экспорт: трек + waypoints + флажки, имя enduro-YYYYMMDDHHMMSS.gpx
- ✅ Флажки 🚩: localStorage, попап → A / → B / удалить

### Баги найдены и исправлены
1. **formatDuration(86400) → "1 дн 0 ч"** → исправлено на "1 дн"
2. **OSRM TooBig не обрабатывался** → retry-цепочка 5→3→false
3. **UI: панель маршрута перекрывалась кнопками** → CSS right: 56px !important
4. **Длинные маршруты не строились** → radiuses=5000 во все запросы + retry при NoSegment с radiuses=10000 + timeout 60 сек + улучшены сообщения об ошибках

### Результат тестирования длинного маршрута
Хоруговино → Корак-Чурачки: **1013 км, 97% грунт** ✅

### Проблемы с деплоем
- SSH бинарник в OpenClaw-контейнере требует glibc 2.38+, в контейнере 2.36
- installer skill (ssh_exec.sh) не работает по той же причине
- Решение: Node.js ssh2 npm-пакет для SFTP/SSH (работает через libssh2, не требует системный ssh)
- Дев-агент стабильно таймаутится при попытке установить npm-пакеты — нужно давать прямые команды
- Docker cp + restart вместо docker compose build (файлы запечены в образ, но cp в running container работает)

### UI-тестирование — заблокировано
- Playwright не запускается в контейнере (нет libglib, libnss и др.)
- Создан проект `tasks/ui-testing/` для установки Chromium на mva154
- Пока не настроено — визуальные тест-кейсы не прогнаны

### Согласованные решения (Слава)
- Альтернативы: до 5 вариантов
- Точность статистики: ±5% ок
- Перетаскивание точек: нужно
- Флажки: только localStorage
- GPX: трек + метки (оба)
