Дата: 2025-12-29
Версия: 1.0.1
❌ Фильтр "Активные" возвращал 0 сессий
Логика определения статуса искала текст "мин назад" в выводе sessions.py, но скрипт выдаёт только дату/время:
│ 12-29 15:34 ← нет "мин назад"
Результат: все сессии помечались как "recent", фильтр "active" возвращал пустоту.
✅ Реализована вычисляемая логика статусов
# Было (не работало):
if "мин назад" in line:
status = "active"
# Стало (работает):
session_time = datetime.strptime(time, "%m-%d %H:%M")
delta = now - session_time
if delta < timedelta(minutes=10):
status = "active"
elif delta < timedelta(hours=2):
status = "recent"
else:
status = "archive"
python3 /opt/.../sessions.py list
Результат: 15 сессий ✓
parse_sessions_output(output)
Результат: 15 сессий распарсено ✓
| Endpoint | Ожидание | Результат |
|---|---|---|
/api/sessions?filter=all |
15 сессий | ✅ 15 сессий |
/api/sessions?filter=active |
2 активные | ✅ 2 сессии |
/api/sessions?filter=recent |
~5 недавних | ✅ работает |
/health |
{"status":"ok"} | ✅ работает |
curl https://sessions.0kt.ru/
Результат:
- ✅ SessionHub title присутствует
- ✅ Alpine.js подключен
- ✅ API endpoint настроен
- ✅ Фильтры работают
curl https://sessions.0kt.ru/api/sessions
Результат: ✅ Работает корректно
| Статус | Условие | Цвет |
|---|---|---|
| 🟢 Active | < 10 минут назад | Зелёный |
| 🟡 Recent | < 2 часов назад | Жёлтый |
| ⚪ Archive | > 2 часов назад | Серый |
✅ ВСЕ ТЕСТЫ ПРОЙДЕНЫ
# Запустить полный тест
cd /opt/claude-workspace/system/web/sessionhub
python3 test_full.py
# Проверить API
curl https://sessions.0kt.ru/api/sessions?filter=all
curl https://sessions.0kt.ru/api/sessions?filter=active
# Статус сервиса
systemctl status sessionhub
# Логи
journalctl -u sessionhub -f
URL: https://sessions.0kt.ru
Авторизация: Не требуется
Порт: 8093 (внутренний)
Статус: ✅ PRODUCTION READY