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

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

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


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

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

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

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

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

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

Шаг 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 для создания краткого описания - Включает ключевые темы

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

{
  "settings": {
    "enableSessionTitles": true  // Автоматические заголовки
  }
}

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

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

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

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

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

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

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

Через API:

ideMessenger.request("history/delete", {
  id: "session-id"
});

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

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

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

Что удаляется: - ✅ Все сохранённые сессии - ✅ История переписки - ✅ Контекстные данные

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

Через API:

ideMessenger.request("history/clear", undefined);

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

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

В Markdown:

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

/share

Результат: - Markdown файл с полным диалогом - Сохраняется в ~/.koda/shared/ - Включает код и контекст

Формат файла:

# Chat Session — 2026-01-15 14:30

## User
Как создать React компонент?

## Assistant
Для создания React компонента:

1. Создайте файл Component.tsx
2. Добавьте импорты
...

## Code: Component.tsx
```typescript
export const Component = () => {
  return <div>Hello</div>;
};
---

### Экспорт в JSON

**Через API**:

```typescript
// Сохранение сессии
ideMessenger.request("history/save", {
  sessionId: "session-id",
  title: "My Session",
  workspaceDirectory: "/path/to/workspace",
  mode: "agent",
  history: [...]
});

Структура JSON:

{
  "sessionId": "uuid",
  "title": "Название",
  "dateCreated": "2026-01-15T14:30:00Z",
  "workspaceDirectory": "/path",
  "mode": "agent",
  "history": [
    {
      "message": {
        "role": "user",
        "content": "Вопрос"
      },
      "contextItems": []
    }
  ]
}

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

Загрузка JSON:

  1. Получите файл сессии
  2. Используйте API для загрузки:
ideMessenger.request("history/load", {
  id: "session-id"
});

Восстановление: - Сессия загружается в чат - История восстанавливается - Контекст становится активным


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

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

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

Вручную: - При экспорте через /share - При явном вызове API


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

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

  • VS Code: ~/.koda/sessions/
  • IntelliJ: ~/.koda/sessions/
  • Telegram: серверное хранилище

Структура:

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

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


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

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

Telegram Remote:

При использовании Telegram: - Сессии хранятся на сервере - Доступны с любого устройства - Синхронизируются автоматически

ID сессии: - Уникальный для каждого remote request - Сохраняется в метаданных - Позволяет продолжить с другого устройства


В пределах IDE

Автосохранение: - Локальное хранилище - IndexedDB в браузере - Файлы на диске в IDE

Восстановление: - При перезапуске IDE - После сбоя - При переключении workspace


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

Режим Chat

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

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


Режим Agent

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

Сохранение: - Tool calls и tool responses - Применённые диффы - Состояние выполнения

Пример:

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


Режим Completion

Особенности: - Короткие сессии - Автодополнение - Быстрые ответы

Сохранение: - Только завершённые комплиты - Принятые предложения - Отклонённые варианты


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

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

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

При длинной истории Koda автоматически суммаризирует: - Старые сообщения - Tool call результаты - Контекстные данные

Ручная:

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

/summarize

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

Результат:

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


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

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

Модели имеют лимит токенов: - GPT-4: 8,000 - 128,000 токенов - Claude: 100,000 - 200,000 токенов - Llama: 4,000 - 32,000 токенов

Оптимизация: - Суммаризация старых сообщений - Удаление tool outputs - Обрезка контекста

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

Koda показывает использование контекста: - 0-50% ✅ — достаточно места - 50-80% ⚠️ — рекомендуется суммаризация - 80-100% ❌ — начнутся обрезания


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

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

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

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

Через API:

// Клонирование сессии
const clonedSession = {
  ...originalSession,
  sessionId: uuidv4(),
  title: originalSession.title + " (copy)",
};

ideMessenger.request("history/save", clonedSession);

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

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

{
  sessionId: "uuid",
  title: "Создание API",
  dateCreated: "2026-01-15T14:30:00Z",
  workspaceDirectory: "/path/to/project",
  mode: "agent"
}

Пользовательские:

Можно добавлять свои метаданные: - Теги проекта - Категории задач - Приоритеты


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

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

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

Решения:

  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. Скопируйте в директорию сессий

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

Причины: - Контекстные файлы удалены - Пути изменились - Workspace переключён

Решения:

  1. Проверьте файлы:
  2. Убедитесь, что файлы существуют
  3. Проверьте относительные пути

  4. Обновите контекст:

  5. Прикрепите файлы заново
  6. Используйте @file для добавления

  7. Переключите workspace:

  8. Убедитесь, что выбран правильный workspace
  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. Использование закладок

Для важных сессий: - Экспортируйте в Markdown - Сохраняйте в проекте - Добавляйте в документацию

Пример:

# Экспорт важной сессии
/share
# Копирование в проект
cp ~/.koda/shared/session.md ./docs/decisions/


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

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

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


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

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

Примеры:

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


API для работы с историей

Основные методы

Список сессий:

const sessions = await ideMessenger.request("history/list", {});

Загрузка сессии:

const session = await ideMessenger.request("history/load", {
  id: "session-id"
});

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

await ideMessenger.request("history/save", {
  sessionId: "uuid",
  title: "Title",
  workspaceDirectory: "/path",
  mode: "agent",
  history: [...]
});

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

await ideMessenger.request("history/delete", {
  id: "session-id"
});

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

await ideMessenger.request("history/clear", undefined);


Метаданные

Получение:

const metadata = await ideMessenger.request("history/list", {});
// Returns: SessionMetadata[]

Структура:

interface SessionMetadata {
  sessionId: string;
  title: string;
  dateCreated: string;
  workspaceDirectory: string;
  mode: MessageModes;
}


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

С навыками

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

Пример:

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


С MCP

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

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


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

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

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


Дополнительные ресурсы

Официальная документация

Утилиты

  • Session Storage — локальное хранилище
  • MiniSearch — поиск по сессиям
  • UUID — генерация идентификаторов

Форматы

  • Markdown — экспорт через /share
  • JSON — полное сохранение
  • Plain Text — упрощённый формат

См. также