# Portability: UNIVERSAL
# Last validated: 2026-05-17
# Next review: 2027-05-17

ОБРАБОТЧИК СЕССИИ
---------------

ИМЯ ОБРАБОТЧИКА
------------

session - Управление сеансом для BACH (SESSION_001-006)

ОПИСАНИЕ
------------

Обработчик сеанса управляет рабочими сеансами с отслеживанием времени выполнения,
Управление задачами и контекстно-зависимое мышление. Интегрирует запуск
и завершения процессов, рассчитывает оставшееся время и предупреждает
Конец сессии. Поддерживает проверки между задачами для оптимизации
Зависимости задач и блокировка.

OPERATIONS
-----------

start Запуск сеанса (делегирован StartupHandler)
status Показать статус активной сессии с пищей для размышления
end Завершить сеанс (делегировано ShutdownHandler)
расчет времени проверки: продолжительность, запланированное окончание, оставшееся время
следующая Следующая задача с проверками между задачами

Параметры проверки:
  --duration / -d Показать оставшееся время
  --set-duration=MIN Установить продолжительность сеанса в минутах

ПРИМЕРЫ
---------

Начать новый сеанс:
  bach session start

Показать статус с пищей для размышления:
  bach session status

Расчет времени (с предупреждением об окончании сеанса):
  bach session check --duration

Установить продолжительность сеанса на 180 минут:
  bach session check --set-duration=180

Показать следующую задачу с интервалами между проверками:
  bach session next

Завершить сеанс:
  bach session end

ФАЙЛЫ
-------

data/bach.db Источник базы данных (таблицы:
                                 Memory_sessions, задачи, Memory_lessons)

data/user_config.json Конфигурация сеанса
                                 (session_duration_минуты)

hub/session.py Реализация обработчика

КАК ЭТО РАБОТАЕТ
--------------

1. Отслеживание времени выполнения: вычисляет продолжительность с момента start_at, предупреждает при
   Превышение запланированной продолжительности (по умолчанию 120 минут).

2. Пища для размышления (SESSION_003): По времени (обед, после работы),
   На основе задач (старые, заблокированные, не завершенные) или общие
   (Документация, обзоры, резервные копии).

3. Проверки между задачами (SESSION_006):
   - Обнаруживает заблокированные задачи с выполненными зависимостями
   - Напоминает задачи in_progress
   - Урок, полученный после выполнения 5 заданий

4. Рекомендация задач по приоритету (P1 > P2 > P3) и возрасту

СМОТРИ ТАКЖЕ
----------

hub/startup.py Обработчик запуска (инициализация сеанса)
обработчик завершения работыhub/shutdown.py (завершение сеанса)
обработчик задачhub/task.py (управление задачами)
схема базы данных data/bach.db
