auto-sync: 2026-05-05 23:40:01
This commit is contained in:
@@ -27,3 +27,55 @@
|
||||
- Web Share API требует HTTPS — на HTTP молча падает, даже на Android Chrome
|
||||
- Кастомные диалоги через DOM работают всегда, но Слава предпочёл простоту (только скачать)
|
||||
- Mouse drag: важно вешать mousemove/mouseup на `document`, а не на `list` — иначе drag ломается при выходе курсора за пределы элемента
|
||||
# 2026-05-05 — Дневник
|
||||
|
||||
## Enduro Trails — работа над прототипом
|
||||
|
||||
### Кнопка «Поделиться» → «Скачать GPX»
|
||||
- Слава попросил убрать кастомный диалог «Поделиться» (Telegram/WhatsApp)
|
||||
- Оставить только скачивание GPX через `downloadGPX()`
|
||||
- Иконка заменена на download-стрелку (стрелка вниз + линия) в том же стиле что и другие кнопки header
|
||||
- HTML уже обновлён: `onclick="downloadGPX()"`, иконка download
|
||||
- Из app.js удалены функции: `shareRoute`, `closeShareDialog`, `shareTelegram`, `shareWhatsApp`, `shareNative`
|
||||
- Из app.css удалены стили: `.share-dialog`, `.sd-*`, `#share-dialog`
|
||||
|
||||
### Drag-and-drop для точек маршрута
|
||||
- Слава попросил добавить иконку «перетаскивания» (grip) в каждый wl-item
|
||||
- Дев-агент добавил grip SVG (6 кружков) и touch-drag логику
|
||||
- Логика вынесена в `_initWaypointDragHandles(list)` с общими функциями `startDrag/moveDrag/endDrag`
|
||||
- **Проблема:** на десктопе не работало — дев сделал только touch-события
|
||||
- **Фикс:** добавлены mouse-события (mousedown/mousemove/mouseup) с `document`-level listeners для корректного завершения drag за пределами списка
|
||||
|
||||
### Баг: «Добавить точку» не работала в баре маршрутов
|
||||
- Причина: `addWaypointMode()` не устанавливала `routeMode = true`
|
||||
- При закрытом/свайпнутом sheet `routeMode` мог быть `false`
|
||||
- Клик на карте проверяет `if (!routeMode) return` — и игнорировал добавление
|
||||
- Фикс: в `addWaypointMode()` добавить `routeMode = true` перед установкой `addingWaypoint = true`
|
||||
|
||||
### Расстояние по маршруту между точками
|
||||
- Слава попросил показывать расстояние по маршруту (не по прямой) для каждого сегмента
|
||||
- Бэкенд не возвращает `legs` — только общий `distance_m`
|
||||
- Решение: функция `getRouteSegmentDistances()` — snap waypoints к геометрии маршрута, суммировать haversine по точкам геометрии
|
||||
- Проблема 1: сумма сегментов не совпадала с `route.distance_m` из-за неточного snap
|
||||
- Решение: масштабировать сегменты пропорционально чтобы сумма = `route.distance_m`
|
||||
- Проблема 2: при смене варианта маршрута расстояния не обновлялись
|
||||
- Фикс: добавить `renderWaypointsList()` в `selectRoute()` и `selectMiniRoute()`
|
||||
|
||||
### Дублированные сообщения в Telegram
|
||||
- Слава заметил что от меня приходят дублированные сообщения
|
||||
- Анализ: `streaming.mode: "partial"` + возможный конфликт с block streaming
|
||||
- Решение: переключить на `streaming.mode: "progress"` — статус во время генерации, финальный ответ одним сообщением
|
||||
- Конфиг обновлён, hot-reload должен применить автоматически
|
||||
|
||||
### voice-tts скилл — дублированные сообщения
|
||||
- `send_voice.sh` пытался отправить через `openclaw message send` И через `MEDIA:` директиву одновременно
|
||||
- Результат: в Telegram приходило сообщение с путём к файлу + голосовое
|
||||
- Фикс: убрать блок `openclaw message send` из скрипта, оставить только генерацию OGG
|
||||
- Доставка только через `MEDIA:` директиву в ответе ассистента
|
||||
|
||||
## Технические заметки
|
||||
- Web Share API требует HTTPS — на HTTP молча падает, даже на Android Chrome
|
||||
- Кастомные диалоги через DOM работают всегда, но Слава предпочёл простоту (только скачать)
|
||||
- Mouse drag: важно вешать mousemove/mouseup на `document`, а не на `list` — иначе drag ломается при выходе курсора за пределы элемента
|
||||
- OSRM бэкенд не возвращает `legs` — только общий `distance_m`. Сегменты считаем на фронте через snap к геометрии
|
||||
- `streaming.mode: "progress"` — лучший режим для Telegram: нет промежуточных сообщений, только финальный ответ
|
||||
|
||||
Reference in New Issue
Block a user