# Body Diff JSON (инкрементное сравнение тела запроса)

## Контекст

MainAgent в Claude Code использует механизм отправки полного контекста — каждый запрос содержит полную историю диалога, system prompt, определения инструментов и т.д. Это означает, что по мере продвижения диалога тело запроса становится всё больше, и при просмотре сырого Body сложно быстро определить, «что именно было добавлено в этом раунде».

Body Diff JSON решает именно эту проблему: он автоматически сравнивает тела двух последовательных запросов MainAgent, извлекает инкрементную часть и позволяет сразу увидеть, что фактически было добавлено в текущем запросе.

## Принцип работы

1. **Идентификация последовательных запросов MainAgent**: текущий запрос должен быть типа MainAgent, и должен существовать предыдущий запрос MainAgent
2. **Сравнение по полям**: перебор всех полей верхнего уровня в теле запроса, пропуск внутренних свойств с префиксом `_`
3. **Интеллектуальное извлечение различий**:
   - Новые поля: отображаются напрямую
   - Удалённые поля: не отображаются (обычно не влияют на понимание)
   - Изменённые поля: отображается текущее значение
   - Массив `messages` — специальная обработка: отображаются только новые сообщения (поскольку в нормальном диалоге сообщения добавляются в конец, а префикс остаётся неизменным)
4. **Обнаружение уменьшения тела запроса**: если текущий запрос меньше предыдущего, это означает обрезку контекста или сброс сессии — в этом случае вместо diff отображается информационное сообщение

## Типичные сценарии

В обычном раунде диалога Body Diff JSON обычно содержит только:
- `messages`: 1–2 новых сообщения (ввод пользователя + ответ ассистента из предыдущего раунда)

Если в diff появляются изменения полей `system`, `tools`, `model` и т.д., это означает изменение конфигурации в текущем раунде, что часто является причиной пересборки кеша.

## Способ использования

- Body Diff JSON отображается в панели деталей запроса MainAgent
- Нажатие на заголовок разворачивает/сворачивает содержимое
- Поддерживает режимы просмотра JSON и Text, а также копирование одним нажатием
- В левом верхнем углу **CC-Viewer → Глобальные настройки** можно установить «По умолчанию разворачивать Body Diff JSON»
