Сессии

Каждый диалог, вызов инструмента и результат сохраняются в локальную SQLite-базу. Ничего не теряется между перезапусками.

Команда Действие
creo Новая сессия в текущей директории
creo continue Продолжить последнюю сессию
creo continue <id> Открыть конкретную сессию
/new-session Начать новую пустую сессию в TUI
/resume Интерактивный выбор из списка
/sessions Дерево всех сессий с группировкой по проектам

Команда /sessions открывает интерактивное дерево. Сессии сгруппированы по проектам, со статистикой (сообщения, токены, время последней активности), статусом (активна/занята), корзиной удалённых. Группы сворачиваются.

Тип Описание Отображение
interactive Обычный диалог с пользователем Основная группа
scheduler Запланированная задача Группа «⏰ Планировщик»
dreaming Фоновая ревизия сессии Группа dreaming

Тип определяется автоматически при создании.

Попросите агента в чате:

  • «Удали сессии старше 3 дней»
  • «Переключись на сессию X»
  • «Восстанови удалённую сессию»

Агент использует инструмент sessions с действиями list, delete, restore, switch.

Удалённые сессии помечаются как удалённые, но остаются в БД. Их можно восстановить через агента или команду. Корзина видна в дереве сессий.

Авто-очистка: soft-deleted сессии старше N дней (по умолч 30, настраивается через scheduler.retention_days) физически удаляются из БД при старте.

Полнотекстовый поиск (FTS5) по содержимому всех прошлых сессий — диалогов, вызовов инструментов и результатов.

Агент обращается к поиску автоматически, когда вы спрашиваете «что мы делали с X» или «найди сессию где мы обсуждали Y». Можно вызвать и вручную — попросите агента найти конкретную тему.

Оператор Пример Описание
AND (неявный) auth token Оба слова
OR bug OR fix Любое из слов
NOT config NOT database Исключение
Prefix config* «configuration», «configure», «config»
Фраза "git reset" Точное совпадение
Комбинирование bug OR fix AND "user input" Операторы и фразы вместе

Каждый результат включает:

  • Заголовок сессии, время, ID
  • Bookends — первые 2 и последние 2 сообщения (цель → результат)
  • Контекст ±3 сообщения вокруг совпадения, маркер >>> на найденном фрагменте
  • project — только сессии текущего проекта
  • all — все проекты в общей БД

Если сессия занята (агент работает), новые сообщения ставятся в очередь и автоматически обрабатываются, когда агент освобождается. Ничего не теряется.

Несколько процессов creo могут работать параллельно — каждый в своём проекте или даже в одном. Блокировки предотвращают конфликты записи.

Если сессия заблокирована другим процессом, TUI показывает изменения в реальном времени — новые сообщения подгружаются из БД (mirror sync).

Heartbeat каждые 2 секунды продлевает блокировку. Если процесс упал — другой может перехватить сессию (takeover).

Команда /btw <question> задаёт вопрос LLM на основе текущего контекста сессии. Ответ не попадает в историю — контекст остаётся чистым.

Подходит для быстрых уточнений: «Какой флаг у git push для force?», «Что означает это предупреждение линтера?» — спросили, получили ответ, продолжили работу.

BTW-ответ генерируется без вызова инструментов. Быстро и дешево. Отображается с лейблом ⓘ BTW — визуально отделён от основного диалога.