# История (/ru/docs/workspaces/history)

Echolot хранит каждый обмен рабочего пространства: каждый отправленный запрос и полученный на него ответ, с указанием
того, кто его отправил. Ваши отправки, отправки Прогона, сценариев и агентов попадают в одно место. Используйте
историю, чтобы вернуться к прежнему ответу, найти запрос, который вернул какое-то значение, или посмотреть, что
сделал агент.

## Открытие страницы «История» [#open-the-history-page]

- **Вид › История** (<kbd>⌘</kbd><kbd>Y</kbd>).
- **История** в заголовке страницы. Нажмите ещё раз, чтобы вернуться на страницу, с которой вы пришли.

Страница перечисляет обмены по дням, новые сверху. В каждой строке показаны статус (или **Ошибка**, если отправка не
получила ответа), метод, имя запроса, его адрес, отправитель и время. **не сохранён** отмечает обмен запроса, который
так и не был сохранён; **удалён** — обмен запроса, который с тех пор удалили.

<Shot id="workspaces-history-page" alt="Страница «История»: сегодняшние обмены Alpenglow, отправленные «Вы», Прогоном и агентом, над ними поле поиска и фильтр «Отправитель»" />

## Что записывается [#what-is-recorded]

- Каждая отправка запроса любого вида: со страницы запроса, из [Прогона](/docs/requests/runner), сценариев,
  [Быстрой отправки](/docs/mac/quick-send), [Быстрых команд](/docs/mac/shortcuts), [Ассистента](/docs/ai/assistant) и
  [внешних агентов](/docs/ai/agents).
- Отправки, завершившиеся без ответа, вместе с ошибкой.
- Сеансы WebSocket, Socket.IO и MQTT после их закрытия: соединение и журнал всех сообщений.

Отправки, которые Echolot делает для себя, например загрузка схемы GraphQL или спецификации, не записываются.
Инструмент командной строки историю не ведёт.

Кто отправил обмен, видно в его строке:

| Показано | Отправитель |
| --- | --- |
| **Вы** | Вы, из приложения. |
| **Прогон** | Запуск в Прогоне. |
| **Сценарий:** имя | Сценарий. |
| **Агент** | Встроенный Ассистент. |
| Имя клиента | Внешний агент через MCP-сервер Echolot, например Claude Code. |

## Поиск и фильтр [#search-and-filter]

Вводите текст в **Поиск по именам, URL, заголовкам и телам**. Два символа ищут по именам и адресам; три и больше ищут
ещё и по телам. Совпадения находятся в любом месте текста, а не только в начале слова.

**Отправитель** сужает список: **Все**, **Вы**, **Запуски** (Прогон и сценарии) или **Агенты** (Ассистент и внешние
агенты). Число рядом показывает, сколько обменов или совпадений нашлось.

Что охватывает поиск:

- Первые 256 КБ каждого текстового тела: JSON, XML, HTML, текст, данные форм, потоки событий и подобное. Изображения,
  архивы и другие двоичные тела не просматриваются.
- Никакого текста тел, пока включено [шифрование](/docs/workspaces/storage-and-encryption): тогда поиск находит только
  имена, адреса и заголовки.
- Никогда секретные значения: в том, что история перечисляет и по чему ищет, они скрыты, поэтому поиск нельзя
  использовать, чтобы угадать секрет.

## Просмотр обмена [#look-at-an-exchange]

Нажмите на строку, чтобы выбрать её; <kbd>↑</kbd> и <kbd>↓</kbd> перемещаются по списку.

- <kbd>Пробел</kbd> показывает быстрый просмотр: статус, время отправки, длительность, размер и тип, отправителя,
  окружение и запрос, а также кнопки, чтобы показать обмен, скопировать его адрес или сравнить.
- <kbd>↩</kbd> или двойной щелчок открывает его. Обмен сохранённого запроса открывается в этом запросе, на этом
  ответе. Обмен без сохранённого запроса открывается в листе с заголовками и телом ответа.

Щёлкните строку, удерживая Control, чтобы увидеть:

| Команда | Что делает |
| --- | --- |
| **Показать в запросе** | Открывает запрос на этом ответе. |
| **Показать обмен** | Открывает обмен в листе. |
| **Сравнить с предыдущим ответом** | Сравнивает его с предыдущим ответом на этот запрос. |
| **Добавить в спецификацию OpenAPI…** | Описывает ответ в спецификации. См. [спецификации по трафику](/docs/specs/specs-from-traffic). |
| **Сохранить как пример мока…** | Сохраняет ответ как именованный пример в спецификации, которой следует его запрос. См. [моки](/docs/mocks). |
| **Скопировать URL** | Копирует адрес. |
| **Удалить** | Убирает этот обмен из истории. |

## История самого запроса [#a-requests-own-history]

На странице запроса кнопка с часами в полосе области ответа показывает, сколько ответов у запроса. Нажмите на неё, чтобы
увидеть список: статус, время, отправитель, длительность и размер.

- Нажмите на ответ, чтобы показать его в области ответа. Полоса над ним сообщает **Прошлый ответ**, когда он пришёл и
  кто его отправил, и предлагает **Сравнить с последним** и **Показать последний ответ**.
- Задержитесь на строке и нажмите стрелки, чтобы сравнить её с показанным ответом.
- **⋯ › Очистить историю этого запроса…** сначала спрашивает, затем удаляет прошлые ответы запроса. Сам запрос остаётся
  как есть.

<Shot id="workspaces-request-history" alt="Список истории ответов запроса Catalog › List products, открытый кнопкой с часами: пять ответов со статусом, временем, источником, длительностью и размером" />

## Сравнение двух ответов [#compare-two-responses]

Сравнивайте из списка истории запроса, через **Сравнить с последним** или командой **Сравнить с предыдущим ответом** на
странице «История». Лист показывает два ответа рядом вверху, более старый помечен −, более новый +, а ниже строки,
которые изменились между ними, с тремя строками вокруг каждого изменения.

- **Тело** сравнивает тела. Если различий нет, пишет «Тела идентичны байт в байт.», а если различается только
  оформление — «Тела различаются только форматированием.»
- **Статус и заголовки** сравнивает строку состояния и заголовки.

Числа внизу показывают, сколько строк добавлено и удалено. Показывается до 20 000 изменённых строк.

<Shot id="workspaces-history-compare" alt="Сравнение ответов для Catalog › List products: более старый и новый ответ вверху, изменённые цена и остаток в диффе тела" />

## Как долго хранится история [#how-long-history-is-kept]

История хранит самые новые ответы каждого запроса. Сколько именно, выбирается в
**Настройки › Хранилище › История на запрос**: 10, 25, 50 (по умолчанию), 100 или 200. Сначала уходят старые записи. Самый новый ответ каждого запроса
сохраняет своё тело, поэтому он снова показывается после перезапуска.

Тела хранятся отдельно и имеют собственный предел размера (**Хранить тела ответов до**, по умолчанию 5 ГБ). При
превышении удаляются наименее давно использованные тела, так что на старой записи может быть написано «Это тело больше
не хранится.» См. [хранилище и шифрование](/docs/workspaces/storage-and-encryption).

## Очистка истории [#clear-history]

- Один обмен: **Удалить** в его контекстном меню.
- История одного запроса: **Очистить историю этого запроса…** в её списке.
- Вся история рабочего пространства: **⋯ › Очистить историю…** на странице «История». Сначала спрашивает: «Очистить всю
  историю этого рабочего пространства?» Запросы остаются как есть; их прошлые ответы удаляются.

Очистка истории никогда не затрагивает запросы и файлы рабочего пространства.

## Где хранится история [#where-history-lives]

У каждого рабочего пространства своя история, она хранится в хранилище Echolot на вашем Mac, а не в папке рабочего
пространства. Через Git она не передаётся, и история коллеги — его собственная. Агенты читают историю через Echolot,
причём заголовки с учётными данными и секреты скрыты.

Если историю не удаётся открыть, страница пишет «История недоступна» и объясняет причину. Отправки по-прежнему работают;
ничего не записывается, пока файл нельзя открыть.
