Git и команды
Делитесь рабочим пространством через Git, просматривайте изменения как небольшие диффы и не пускайте секреты и личные настройки в репозиторий.
Рабочее пространство — это папка текстовых файлов, написанных так, чтобы их можно было держать в Git: один файл на запрос, одни и те же байты для одного и того же содержимого, ничего личного внутри. Закоммитьте его, отправьте в репозиторий, и команда работает с теми же запросами, каждый со своими учётными данными.
Файлы, сделанные для диффов
- Один файл на запрос. Изменение запроса меняет один файл. Добавление запроса добавляет один файл.
- Детерминированность. Echolot каждый раз записывает одно и то же содержимое одинаково: те же ключи в том же порядке, поэтому сохранение без изменений ничего не меняет, а дифф показывает только то, что изменили вы.
- Читаемость. Запросы — это TOML; тела лежат рядом со своим запросом отдельными файлами (
create-order.body.json), а запросы GraphQL — как.graphql, поэтому диффы получаются в JSON и GraphQL, а не в экранированных строках. - Порядок в файле папки. Порядок объектов в папке — это список в её
_folder.toml, а не часть имён файлов, поэтому перестановка меняет одну строку. - Ваши комментарии сохраняются. Комментарии, которые вы написали в файле вручную (
# why this header), сохраняются, когда Echolot записывает файл: блок комментариев вверху, комментарии над ключом или таблицей и комментарии после значения. Комментарий к ключу, которого больше нет, отбрасывается.
Переименование запроса переименовывает его файл, а также файлы тела и скриптов рядом с ним. Переименование окружения сохраняет имя его файла.
Что коммитить
Коммитьте всю папку рабочего пространства. Игнорировать в ней нечего: Echolot никогда не пишет в неё секретные значения, историю, тела ответов и ваши личные настройки.
| В рабочем пространстве (общее) | Только на вашем Mac (не общее) |
|---|---|
| Запросы, папки, их порядок, документация, авторизация и скрипты | Секретные значения, в связке ключей |
| Переменные и их несекретные значения | Глобальные переменные |
| Окружения и то, какие из них защищены | Какое окружение активно |
| MCP-серверы, спецификации, моки, сценарии | История и тела ответов |
| Правила агентов, прокси и сертификаты рабочего пространства | Расположение областей и другие настройки приложения |
| Разговоры с Ассистентом, которыми вы решили поделиться | Каким скриптам и правилам агентов вы доверяете |
Не меняйте ID рабочего пространства в workspace.toml. По нему Echolot находит секретные значения каждого человека.
Значение, введённое прямо в поле, а не через секретную переменную, записывается в файл как есть. Под полями авторизации и прокси, которые его содержат, Echolot предупреждает (Сохраняется открытым текстом в файле рабочего пространства.); нажмите Переместить в Связку ключей перед коммитом. См. секреты.
Как начать делиться
- Положите рабочее пространство в репозиторий Git: создайте репозиторий в папке
.echolotили держите рабочее пространство папкой внутри репозитория вашего проекта. Любая папка сworkspace.tomlоткрывается в Echolot. - Закоммитьте и отправьте.
- Коллеги клонируют репозиторий и открывают рабочее пространство командой Файл › Открыть рабочее пространство….
- Каждый коллега один раз задаёт секретные значения на своём Mac: на странице «Окружения» для каждого из них написано Не задано на этом Mac.
Инструмент командной строки читает те же файлы, поэтому CI запускает запросы, которые вы коммитите. См. Тесты в CI.
Изменения из Git, редакторов и агентов
Echolot следит за папкой рабочего пространства. Когда файлы меняются вне Echolot (git pull, переключение ветки,
редактор, агент), окно перечитывает их: боковая панель, открытые запросы, окружения, спецификации, моки и сценарии
сразу обновляются.
Открытый запрос без несохранённых правок принимает новую версию без вопросов.
Если во вкладке запроса есть несохранённые правки, Echolot не выбирает сторону. Над запросом появляется полоса: Этот запрос изменился на диске, «Другое приложение или Git изменили файл, пока здесь были несохранённые изменения».
- Оставить мои оставляет правки во вкладке и записывает их поверх файла.
- Взять с диска отбрасывает правки во вкладке и загружает файл с диска.
Пока вы не выберете, Echolot не сохраняет этот запрос, поэтому изменение на диске остаётся как есть.
Закрытие вкладки во время конфликта
Если закрыть вкладку, не выбрав, Echolot спросит: «Create order» изменён на диске, пока здесь были несохранённые изменения. «При закрытии вкладки останется только одна версия». Выберите Оставить мои, Взять с диска или Отменить, чтобы вкладка осталась открытой. Если закрыть окно или выйти, пока конфликт не решён, Echolot сообщит, что правку не удаётся сохранить, и спросит, прежде чем её отбросить, так что ни одна версия не пропадёт без вашего согласия.
Конфликты слияния
Конфликты слияния Git разрешайте в редакторе или инструменте Git, как в любом текстовом файле. Файл, в котором остались маркеры конфликта, не является корректным TOML. Пока файл нельзя прочитать, открытое окно хранит то, что прочитало раньше, а открытие рабочего пространства не удаётся с сообщением в окне приветствия, которое называет файл: «…» не удалось прочитать. Исправьте файл, и рабочее пространство снова прочитается.
Скрипты и правила агентов из Git
Скрипты могут отправлять запросы и читать переменные рабочего пространства, поэтому Echolot выполняет скрипт, только когда вы доверяете ему на своём Mac. Скрипты, которые вы пишете в Echolot, считаются доверенными. Скрипт, пришедший через Git, импорт или другой редактор или изменённый там, показывает Эти скрипты пришли не из Echolot, пока вы не прочитаете его и не нажмёте Доверять скриптам. См. скрипты и тесты.
То же относится к правилам агентов рабочего пространства: правила из файла, которые ограничивают действия агентов, применяются сразу; правила, которые их расширяют, учитываются только после того, как вы доверите эту версию на своём Mac. См. агенты.
Как делиться без Git
Чтобы передать рабочее пространство тому, кто не пользуется Git, экспортируйте его как Рабочее пространство Echolot. Копия получает новый ID, поэтому её секреты отделены от ваших, а секретные значения в неё никогда не записываются.
Копирование папки рабочего пространства в Finder сохраняет её ID. На одном и том же Mac копия и оригинал читают одни и те же секретные значения из связки ключей.
Защищённые окружения
Пометьте окружение, например Production, как защищённое, чтобы каждая отправка в него сначала спрашивала подтверждение — и у вас, и у агентов.
История
Найдите любой ответ, полученный рабочим пространством, узнайте, кто отправил запрос, сравните два ответа и очистите то, что больше не нужно.