diff --git a/memory/2026-05-05.md b/memory/2026-05-05.md index 82c5df5..5cb98cc 100644 --- a/memory/2026-05-05.md +++ b/memory/2026-05-05.md @@ -63,9 +63,17 @@ ### Дублированные сообщения в Telegram - Слава заметил что от меня приходят дублированные сообщения -- Анализ: `streaming.mode: "partial"` + возможный конфликт с block streaming -- Решение: переключить на `streaming.mode: "progress"` — статус во время генерации, финальный ответ одним сообщением -- Конфиг обновлён, hot-reload должен применить автоматически +- Анализ: `streaming.mode: "partial"` шлёт промежуточные сообщения каждые 2 сек вместо edit +- Попробовали `progress` — тоже дублировало (маппится в partial на Telegram) +- Финальное решение: `streaming.mode: "off"` — только финальное сообщение, без превью +- Конфиг обновлён, hot-reload применился (лог: `config hot reload applied`) + +### Расстояние по маршруту — финальный фикс +- Корневая проблема: `renderWaypointsList()` вызывается ДО завершения `debounceBuildRoute()` (async) +- В момент рендера `routeResults` пустой → fallback на haversine по прямой (52 км вместо 104 км) +- Фикс: добавить `renderWaypointsList()` сразу после `drawRouteResults()` — когда маршрут уже построен +- Масштабирование сегментов оставлено: сумма сегментов = `route.distance_m` точно (diff=0 м) +- Форматирование приведено к `toFixed(1)` везде для визуального совпадения ### voice-tts скилл — дублированные сообщения - `send_voice.sh` пытался отправить через `openclaw message send` И через `MEDIA:` директиву одновременно diff --git a/tasks/enduro-trails/prototype/static/app.js b/tasks/enduro-trails/prototype/static/app.js index 7343454..573c5e5 100644 --- a/tasks/enduro-trails/prototype/static/app.js +++ b/tasks/enduro-trails/prototype/static/app.js @@ -828,6 +828,7 @@ async function buildRoute() { if (!routeResults.length) throw new Error('Маршрут не найден'); drawRouteResults(routeResults, 0); + renderWaypointsList(); // update segment distances now that route is built document.getElementById('route-status').textContent = `${routeResults.length} маршрут(ов)`; // Show mini-bar with result - do NOT open main sheet