From c84767fc9e9501a626d4a8ad99c91a13446fd5ed Mon Sep 17 00:00:00 2001 From: 4aiman Date: Mon, 21 Sep 2026 20:11:10 +0300 Subject: [PATCH] Today: 7-day balance trend really covers 7 days (-7 days is an 8-day inclusive range) --- docs/session-logs/2026-09-21_ui-fixes.md | 16 ++++++++++++++++ frontend/js/main.js | 3 +++ 2 files changed, 19 insertions(+) create mode 100644 docs/session-logs/2026-09-21_ui-fixes.md diff --git a/docs/session-logs/2026-09-21_ui-fixes.md b/docs/session-logs/2026-09-21_ui-fixes.md new file mode 100644 index 0000000..b54994d --- /dev/null +++ b/docs/session-logs/2026-09-21_ui-fixes.md @@ -0,0 +1,16 @@ +# Сессия 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 сегодняшние повторы не опознались (в работе - нужен телефон) +- Пользователь делал интервалы сегодня, «Разбор повторов» их не нашёл. +- Диагностика требует сегодняшнего трека (pull с телефона + прогон `detectRepeats`). + На момент правки #1 устройство было не подключено - жду телефон, тяну базу, смотрю, + почему не сработало (порог/длина/снос/структура). diff --git a/frontend/js/main.js b/frontend/js/main.js index f0edc3b..53dc36e 100644 --- a/frontend/js/main.js +++ b/frontend/js/main.js @@ -515,6 +515,9 @@ async function renderToday(container) { DB.getDailyFoodTotals(7), DB.getDailyActivityTotals(7), ]); + // `date('now','-7 days')` is inclusive of both ends → 8 calendar days. Keep the latest 7 + // so the "7-day rolling" trend really covers 7 (matches the 7-day chart below). + food7 = food7.slice(-7); if (food7.length === 0) return; let foodMap = {}; food7.forEach(d => foodMap[d.date] = Math.round(d.kcal ?? 0));