Телеметрия установки¶
ai_stp умеет отправлять один анонимный запрос после того, как компонент
действительно установлен. По умолчанию он выключен, и пока вы не ответили
на экран согласия, не уходит ни один запрос.
Смысл у него ровно один — понять, на чём люди ставят компоненты:
на Windows в Codex 0.140.1 поставили Serena MCP
Больше ничего. Ни профиля, ни истории действий, ни склада событий.
Как ответить на вопрос о согласии¶
Посмотреть текущее состояние и то, что запрос вообще может унести:
Ответить — согласием или отказом. Оба ответа требуют --confirm, потому что
согласие является событием, а не значением, которое можно проставить мимоходом:
ai-stp telemetry consent --accept --confirm --json
ai-stp telemetry consent --decline --confirm --json
Агент обязан спросить это один раз в начале работы, а не посреди установки.
Пока вы не ответили, работа не блокируется: состояние not_asked ведёт себя
точно так же, как отказ — запросов нет.
Отказ и «ещё не спрашивали» неразличимы снаружи
На проводе эти два состояния выглядят одинаково, потому что в обоих не происходит ничего. По вашему трафику нельзя отличить человека, который отказался, от человека, которого не успели спросить.
Что уходит в запрос¶
Один неаутентифицированный HTTPS GET. Без тела, без cookie, без токена
каталога и без авторизации GitHub.
| Поле | Пример | Что это |
|---|---|---|
os |
windows |
операционная система |
harness |
codex |
харнесс, в который ставили |
harness_version |
0.140.1 |
его версия, как её сообщает toolchain |
ai_stp_version |
0.0.15 |
версия CLI |
component_type |
mcp |
вид компонента |
name |
serena |
публичное имя компонента |
source |
platform |
где объект публично назван |
id |
stable id или публичный URL репозитория | адрес компонента |
version |
1.2 |
точная версия компонента |
anon |
случайный UUID | различает установки CLI между собой |
Перечень закрыт. Поле вне этой таблицы означает изменение контракта, а не расширение запроса на ходу.
Что не уходит никогда¶
Локальные пути, приватные репозитории, идентификатор вашего аккаунта, ключ устройства, почта, имя проекта, путь цели, имена и значения переменных окружения, содержимое файлов, заголовки и аргументы MCP-серверов.
anon — случайный идентификатор в локальном каталоге данных. Он отличает одну
установку CLI от другой и ничего больше: он не равен device_id, не связан с
аккаунтом и не объединяется с публичными счётчиками каталога. Удалите
локальный каталог данных — и он станет другим.
Если компонент публично назвать нечем — нет имени или вида, — запрос не отправляется вовсе, даже при включённой телеметрии.
Когда именно отправляется¶
После успешного применения с действием install или update, по одному
запросу на фактически установленный компонент. Сетап из трёх компонентов даёт
три запроса.
Не отправляется на backup, rollback, remove, на любые чтения, в
автономном режиме и в тестах.
Если запрос не дошёл¶
Сетевая ошибка, timeout и любой ответ, кроме успешного, проглатываются молча.
Установка остаётся verified: её результат — свойство вашей цели, а не
коллектора. Повторов и накопления пачкой нет.
Как выключить¶
Отдельно есть переменная окружения AI_STP_TELEMETRY_SUPPRESS: она глушит
отправку независимо от записанного согласия. Это аварийный выключатель для
окружений, где исходящий трафик недопустим, а не замена ответу на экран.
Прямая запись telemetry.enabled=true в конфигурацию отклоняется — включить
телеметрию можно только явным согласием.
Машинная граница целиком — в контракте cli-telemetry.md; здесь она
пересказана для человека, а не задана.