Сессии
Каждый диалог, вызов инструмента и результат сохраняются в локальную 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-delete и восстановление
Удалённые сессии помечаются как удалённые, но остаются в БД. Их можно восстановить через агента или команду. Корзина видна в дереве сессий.
Авто-очистка: 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 сообщения вокруг совпадения, маркер
>>>на найденном фрагменте
Scope
project— только сессии текущего проектаall— все проекты в общей БД
Очередь сообщений
Если сессия занята (агент работает), новые сообщения ставятся в очередь и автоматически обрабатываются, когда агент освобождается. Ничего не теряется.
Multi-instance
Несколько процессов creo могут работать параллельно — каждый в своём проекте или даже в одном. Блокировки предотвращают конфликты записи.
Если сессия заблокирована другим процессом, TUI показывает изменения в реальном времени — новые сообщения подгружаются из БД (mirror sync).
Heartbeat каждые 2 секунды продлевает блокировку. Если процесс упал — другой может перехватить сессию (takeover).
BTW — побочные вопросы
Команда /btw <question> задаёт вопрос LLM на основе текущего контекста сессии. Ответ не попадает в историю — контекст остаётся чистым.
Подходит для быстрых уточнений: «Какой флаг у git push для force?», «Что означает это предупреждение линтера?» — спросили, получили ответ, продолжили работу.
BTW-ответ генерируется без вызова инструментов. Быстро и дешево. Отображается с лейблом ⓘ BTW — визуально отделён от основного диалога.