baldav/docs/session-logs/2026-09-21_ui-fixes.md

2.7 KiB
Raw Permalink Blame History

Сессия 2026-09-21 (3) - мелкие UI-фиксы

#1 balance-trend показывал 8 дней вместо 7 (исправлено)

  • Симптом: вверху страницы «Среднее за 8 дн.», а график ниже - за 7.
  • Причина: getDailyFoodTotals(7) -> SQL WHERE date >= date('now','-7 days') - диапазон включает оба конца (today-7 ... today) = 8 календарных дней. Balance-trend показывал balances.length (сырое число строк) = 8. График строит свой ряд, поэтому у него 7.
  • Фикс точечный (не трогая общий запрос и график): в balance-trend food7 = food7.slice(-7)
    • берём последние 7 дней. Корневой off-by-one в getDailyFoodTotals не трогал, чтобы не сдвинуть график 30/90.

#2 сегодняшние повторы не опознались (исправлено)

  • Трек 1790002321789 (out-and-back A(47.4915,40.0817)<->B(47.4917,40.1025), ~1.5км, 5 раз туда-обратно). detectRepeats -> «не найдено».
  • Диагностика: горячих ячеек полно (197 с >=3 входами, макс 10). Эталон (самый длинный проход) при пороге горячей ячейки 2 раздувается до 2190м - тянет разово/дважды накатанный подъезд и развороты. Полный заезд 1585м покрывает лишь 72% этого эталона (<80%), поэтому засчитывался лишь 1 проход. При пороге 3+ эталон сжимается до ядра 1585м и находятся все 5.
  • Причина глубже минусов порога: жадный порог 2 (нужен для «2 заездов») ломает эталон, когда подъезд накатан 2 раза.
  • Фикс: detectRepeats теперь ПЕРЕБИРАЕТ порог горячей ячейки от 2 до макс.входов и берёт тот, что даёт БОЛЬШЕ проходов (при равенстве - длиннее участок). minPasses -> только финальный порог числа проходов (minReps), развязан с порогом горячей ячейки. Вынесено в detectAt(T).
  • Проверка (харнесс): СЕГОДНЯ 5× 1590м [16.8,17.6,17.1,17.1,16.8]; 11сен 5×, 17сен 5×, 16сен(склеен) 5×; 5 обычных поездок - 0 ложных. ~0.9с/сессия на десктопе (перебор порогов).