Перейти к содержанию

История сессий

История сессий — это система управления сессиями диалога с AI в Koda. Каждая сессия сохраняет полную историю переписки, контекст и результаты работы, позволяя вернуться к предыдущим обсуждениям.


Что такое сессия?

Сессия — это отдельный диалог с AI со своей историей сообщений, контекстом и настройками.

Характеристики сессии

Параметр Описание
ID Уникальный идентификатор сессии
Заголовок Автоматически генерируемое или пользовательское название
Дата создания Время начала сессии
Режим Chat, Agent, Plan
История Все сообщения в диалоге
Контекст Прикреплённые файлы и данные

Навигация по истории

Просмотр всех сессий

Шаг 1: Откройте историю

  1. Нажмите на иконку History (📚) в боковой панели
  2. Или используйте переход на страницу /history

Шаг 2: Просмотрите список

Сессии отображаются в хронологическом порядке:

  • Today — сегодня
  • This Week — эта неделя
  • This Month — этот месяц
  • Older — старые

Поиск по заголовку:

  1. Введите текст в поле поиска
  2. Используйте fuzzy-поиск (допускает ошибки)
  3. Результаты фильтруются автоматически

Примеры поиска:

"React компонент"     → найдёт "Создание React компонента"
"API endpoint"        → найдёт "Разработка REST API"
"база данных"         → найдёт "Работа с PostgreSQL"

Очистка поиска:

  • Нажмите X в поле поиска
  • Или удалите текст вручную

Сортировка сессий

Сессии автоматически сортируются по дате:

  • Новые сверху — последние сессии первыми
  • Хронологически — в порядке создания

Группировка:

  • Today — сессии за сегодня
  • This Week — за последние 7 дней
  • This Month — за последние 30 дней
  • Older — всё остальное

Управление сессиями

Новая сессия

Создание через интерфейс:

  1. Нажмите + (New Session) в верхней панели
  2. Или перейдите в чат и начните новый диалог

Горячие клавиши: Ctrl/⌘ + L

Автоматическое создание:

  • При перезапуске IDE создаётся новая сессия
  • Предыдущая сессия сохраняется автоматически

Переключение между сессиями

Через историю:

  1. Откройте History (📚)
  2. Найдите нужную сессию
  3. Кликните на строку сессии
  4. Сессия загружается в чат

Через табы (если включено):

  1. Используйте переключатель табов
  2. Каждая вкладка — отдельная сессия
  3. Переключайтесь кликом

Переименование сессии

Автоматические заголовки:

По умолчанию Koda генерирует заголовки автоматически:

  • На основе первого сообщения
  • Использует AI для создания краткого описания
  • Включает ключевые темы

Включение/выключение:

Управляется настройкой Заголовки сессий на странице Пользовательские настройки. Эта настройка соответствует параметру disableSessionTitles в конфигурации.

Ручное переименование:

  1. Откройте сессию в истории
  2. Нажмите на заголовок
  3. Введите новое название
  4. Нажмите Enter

Удаление сессии

Удаление одной сессии:

  1. Откройте History
  2. Найдите сессию
  3. Нажмите 🗑️ Delete
  4. Подтвердите удаление

Через контекстное меню:

  1. Правый клик на сессии
  2. Выберите Delete
  3. Подтвердите

Очистка всей истории

Через интерфейс:

  1. Откройте History
  2. Прокрутите вниз
  3. Нажмите Clear session history
  4. Подтвердите удаление

Что удаляется:

  • ✅ Все сохранённые сессии
  • ✅ История переписки
  • ✅ Контекстные данные

Что сохраняется:

  • ✅ Текущая активная сессия
  • ✅ Настройки Koda
  • ✅ Навыки и MCP

Экспорт и импорт

Экспорт сессии

В JSON через интерфейс:

  1. Откройте Историю сессий
  2. Найдите нужную сессию
  3. Нажмите кнопку Экспорт JSON на строке сессии
  4. Выберите директорию для сохранения

Результат:

  • JSON-файл с полным диалогом сессии
  • Включает сообщения, вызовы инструментов и контекст

Резервная копия

Экспорт JSON — удобный способ сохранить важные сессии перед очисткой истории или переустановкой IDE.


Импорт сессии

Отдельной кнопки импорта в интерфейсе сейчас нет. Загрузка сессии выполняется автоматически из локального хранилища при выборе сессии в истории.


Автоматическое сохранение

Когда сохраняется

Автоматически:

  • При каждом новом сообщении
  • При завершении стриминга
  • При переключении сессий
  • При закрытии IDE
  • При изменении режима

Вручную:

  • При экспорте сессии в JSON через историю сессий

Хранение данных

Расположение:

  • Windows: %USERPROFILE%/.koda/sessions/
  • Linux Linux / Apple MacOS: $HOME/.koda/sessions/

Структура:

~/.koda/sessions/
├── session-uuid-1.json
├── session-uuid-2.json
└── ...

Размер:

  • Зависит от длины истории
  • В среднем 10-100 KB на сессию
  • При большом контексте — до 1 MB

Синхронизация

Между устройствами

Отдельной синхронизации между устройствами нет: сессии хранятся локально в каталоге ~/.koda/sessions/ на той машине, где работает IDE.

Telegram Remote:

При использовании Telegram Remote бот работает с теми же сессиями, что открыты в IDE:

  • сессии остаются в локальном хранилище на машине с IDE, а не на сервере;
  • Telegram служит удалённым пультом к этому окну, а не отдельным хранилищем;
  • пока окно IDE закрыто, работать с сессиями из Telegram нельзя.

В пределах IDE

Автосохранение:

  • Сессии сохраняются в файлы на диске;
  • Часть состояния интерфейса хранится в локальном хранилище webview.

Восстановление:

  • При перезапуске IDE
  • После сбоя
  • При переключении рабочей области

Сессии в режимах

Режим Chat

Особенности:

  • Полная история диалога
  • Контекстные файлы
  • Вложения кода

Сохранение:

  • Каждое сообщение
  • Контекстные провайдеры
  • Выделения кода

Режим Agent

Особенности:

  • История вызовов инструментов
  • Результаты выполнения
  • Изменения файлов

Сохранение:

  • Вызовы инструментов и результаты их работы
  • Применённые диффы
  • Состояние выполнения

Просмотр diff правки из истории:

Клик по имени файла в заголовке завершённой правки edit_file открывает diff именно этой правки — содержимое файла до и после неё, только для чтения. Снимки правок хранятся 7 дней; если снимок уже удалён, вместо diff откроется сам файл.

Пример:

User: Создай компонент
Agent: [read_file: Component.tsx]
Agent: [edit_file: Component.tsx]
Agent: Компонент создан

Режим План

Особенности:

  • План работ без изменений в коде
  • Пункты плана и их статусы

Сохранение:

  • Текст плана и статусы пунктов
  • Связь плана с последующей реализацией

Продвинутые возможности

Суммаризация истории

Автоматическая:

В агентском режиме при приближении к порогу использования контекста Koda автоматически суммаризирует:

  • Старые сообщения
  • Результаты вызовов инструментов
  • Контекстные данные

Ручная:

Используйте команду /summarize:

/summarize

Что делает:

  1. Анализирует историю
  2. Создаёт краткое описание
  3. Добавляет как summary message
  4. Уменьшает использование токенов

Результат:

[Summary: 15 сообщений сжато в 1 абзац]
Пользователь спрашивал о создании React компонента.
Агент предоставил код с хуками useState и useEffect.
Компонент включает валидацию формы и обработку ошибок.

Управление токенами

Контекстное окно:

У каждой модели свой лимит токенов — контекстное окно. Чем оно больше, тем длиннее диалог помещается без сжатия; точный размер указан в описании модели. Доступный контекст можно уменьшить для каждой модели в настройках — см. Контекст модели.

Счётчик контекста уточняется по мере работы: Koda сверяет локальную оценку с фактическим расходом входных токенов из ответов модели и сохраняет эту калибровку между перезапусками, поэтому индикатор показывает близкое к реальному значение.

Оптимизация:

Индикатор использования:

В панели ввода Koda показывает кольцо с процентом занятого контекста:

  • при наведении видно процент и число токенов;
  • при достижении 90% кольцо сменяется предупреждающим значком и появляется подсказка о сжатии;
  • сжать историю вручную можно командой /summarize.

Ветвление сессий

Создание копии:

  1. Откройте сессию
  2. Сохраните как новую
  3. Продолжите в другом направлении

Use case:

  • Разные варианты решения
  • A/B тестирование подходов
  • Сохранение альтернатив

Метаданные сессии

У каждой сессии есть служебные данные, которые сохраняются автоматически:

  • идентификатор сессии;
  • заголовок;
  • дата создания;
  • рабочая директория;
  • режим (chat, agent, edit, plan).

Решение проблем

Сессия не сохраняется

Причины:

  • Ошибка записи на диск
  • Переполнено хранилище
  • Проблема с правами доступа

Решения:

  1. Проверьте место на диске:
    df -h ~/.koda
    
  2. Очистите старые сессии:
  3. Удалите ненужные сессии
  4. Используйте Clear session history
  5. Проверьте права:
    ls -la ~/.koda/sessions/
    

Сессия не загружается

Причины:

  • Повреждён файл
  • Неправильный ID
  • Ошибка формата JSON

Решения:

  1. Проверьте файл:
    cat ~/.koda/sessions/session-id.json
    
  2. Валидируйте JSON:
    jq . ~/.koda/sessions/session-id.json
    
  3. Восстановите из backup:
  4. Найдите резервную копию
  5. Скопируйте в директорию сессий

Потеря контекста

Причины:

  • Контекстные файлы удалены
  • Пути изменились
  • Рабочая область переключена

Решения:

  1. Проверьте файлы:
  2. Убедитесь, что файлы существуют
  3. Проверьте относительные пути
  4. Обновите контекст:
  5. Прикрепите файлы заново
  6. Используйте @file для добавления
  7. Переключите рабочую область:
  8. Убедитесь, что выбрана правильная рабочая область
  9. Перезагрузите сессию

Конфликты синхронизации

Причины:

  • Одновременная запись
  • Рассинхронизация устройств
  • Сетевые проблемы

Решения:

  1. Остановите синхронизацию:
  2. Отключите Telegram Remote
  3. Работайте локально
  4. Разрешите конфликты:
  5. Выберите последнюю версию
  6. Или объедините вручную
  7. Пересоздайте сессию:
  8. Экспортируйте важную информацию
  9. Создайте новую сессию

Лучшие практики

1. Организация сессий

По задачам:

  • Одна сессия — одна задача
  • Логическое разделение
  • Понятные заголовки

Примеры:

✅ "Auth Module - Login Component"
✅ "API Integration - User Endpoints"
✅ "Bug Fix - Memory Leak in WebSocket"

❌ "Session 1"
❌ "Test"
❌ "asdfgh"

2. Регулярная очистка

Еженедельно:

  • Удаляйте завершённые сессии
  • Архивируйте важные
  • Очищайте тестовые

Ежемесячно:

  • Ревизия всех сессий
  • Удаление устаревших
  • Экспорт важных

3. Использование закладок

Для важных сессий:

  • Экспортируйте в JSON через историю сессий
  • Храните файлы в отдельной директории проекта

Пример:

# После экспорта сессии в выбранную директорию
cp ~/Downloads/session-uuid.json ./docs/decisions/

4. Суммаризация

Перед достижением лимита:

  • Используйте /summarize
  • Сжимайте старые сообщения
  • Сохраняйте ключевые решения

Когда суммаризировать:

  • При 70% использования токенов
  • После завершения этапа
  • Перед переключением задачи

5. Именование

Правила:

  • Кратко и понятно
  • Ключевые слова
  • Дата или версия (если нужно)

Примеры:

✅ "React Form Validation - 2026-01"
✅ "PostgreSQL Schema Design"
✅ "Unit Tests - Auth Module"

Интеграция с другими функциями

С навыками

Сохранение контекста:

  • Навыки загружаются в сессию
  • Инструкции сохраняются
  • Результаты применения

Пример:

Session: "React Component with Skills"
- Skill: react-component (applied)
- Generated: Component.tsx
- Context: Best practices from skill

С MCP

История вызовов:

  • MCP tool calls сохраняются
  • Результаты серверов
  • Конфигурация подключений

Восстановление:

  • При загрузке сессии
  • MCP серверы переподключаются
  • Контекст восстанавливается

С инструментами

История вызовов инструментов:

  • Вызовы инструментов
  • Результаты выполнения
  • Применённые изменения

Откат изменений:

  • Можно откатить вызовы инструментов
  • Восстановить файлы
  • Вернуть предыдущее состояние