Для AI-агентов: markdown этой страницы — /docs-content/changelog/2026-10-12.md индекс документации — /llms.txt
Изменения API: 12 октября 2026
← Журнал изменений · Октябрь 2026
FIX-1012-1: Понятная причина недоступности сервиса управления сервером
Было
При транспортном сбое сервиса управления сервером POST /v1/infra/servers/{id}/reboot для хоста галактики возвращал категорию GENERIC, а GET /v1/infra/servers/{id}/repair-status мог содержать только fetch failed в data.error.
Стало
Ответ перезагрузки хоста галактики содержит TRANSPORT_UNAVAILABLE в error.category, если транспортный сбой не сопровождается более точной причиной ошибки. Статус починки содержит понятную английскую подсказку в data.error: сервис управления сервером недоступен, повторите попытку через несколько минут. В том же тексте указан шестисимвольный код обращения.
Влияние на интеграторов
Коды HTTP и форма ответа не изменились. При обработке error.category учитывайте новую категорию TRANSPORT_UNAVAILABLE. Текст data.error предназначен для показа пользователю.
NEW-1012-2: Пакетное чтение каталогов и хранилищ доступно в OpenAPI
Работающие методы POST /v1/catalogs/batch и POST /v1/storages/batch теперь описаны в OpenAPI и справочнике API, чтобы агент мог их обнаружить. Пакет каталогов отвечает данными для list и get; принятое действие fields возвращает пустой объект, поскольку у каталогов нет метода схемы полей в Битрикс24. Пакет хранилищ отвечает данными для list, get и fields.
Вызов выбирает одно действие и передаёт непустой массив calls (по умолчанию до 50 вызовов). Вызовы выполняются последовательно; результат каждого содержит данные или ошибку. Ответ остаётся HTTP 200 при ошибке отдельного вызова.
NEW-1012-3: Коннекторы компании для ключа приложения
Ключ приложения Вайбкод со скоупом vibe:connectors может вызывать инструменты общих подключений портала. GET /v1/connectors отдаёт каталог коннекторов, POST /v1/connectors/mcp вызывает инструменты, GET /v1/connectors/write-tickets/{id} отдаёт исход подтверждения записи, а GET /v1/me у допущенного ключа отдаёт блок data.connectorHost. Скоуп выдаётся только явно и в набор по умолчанию не входит. Приложению доступны только подключения компании, права берутся от владельца ключа. Запись владелец подтверждает в веб-кабинете, платные вызовы оплачиваются с баланса портала. Пока функция не включена для портала, маршруты отвечают 404 ROUTE_NOT_FOUND. При включённой функции запрещённый ключ, маршрут или операция получают 403 CONNECTOR_KEY_NOT_ALLOWED.
BC-1012-4: Право vibe:storage не выдаётся приложениям Partner Connect
Поддержка старого формата до: не предусмотрена
Было
Приложение Partner Connect могло получить vibe:storage так же, как vibe:search, vibe:infra и vibe:feedback: право выдавал платформенный администратор проверенному приложению, после чего оно приходило на ключ через согласие пользователя.
Стало
vibe:storage приложению Connect не выдаётся. Ключ, выданный через Connect, попадает в ту же область хранилища, что и личные ключи подключившего пользователя, и с этим правом приложение видело бы все файлы, загруженные его личными ключами. Запрос права при регистрации приложения по-прежнему отклоняется кодом SCOPE_NOT_ALLOWED, а платформенный администратор это право приложению Connect больше не выдаёт. Изменение уже действует. Приложений Connect с этим правом не было, поэтому срок поддержки прежнего порядка не предусмотрен.
Что делать интеграторам
Не закладывайте хранение файлов на ключ Connect и не запрашивайте vibe:storage в заявке на верификацию. Права Битрикс24, vibe:ai и права, которые выдаёт платформенный администратор, работают как раньше.
FIX-1012-5: Отказ по скоупу vibe:storage у ключа Partner Connect больше не советует выдачу администратором
Было
Когда ключу, выданному через Partner Connect, не хватало vibe:storage, отказ 403 с причиной key_scope_missing советовал в error.hint: если платформенный администратор ещё не выдал право приложению, сначала его выдаёт он, затем приложение запрашивает право и заново проводит пользователя через согласие. error.userMessage говорил то же: разработчик должен запросить право и заново получить согласие пользователя.
Стало
Для этого случая error.fix = { "action": "none", "via": "platform" }. error.hint говорит, что vibe:storage приложениям Partner Connect не выдаётся — ни повторным согласием, ни платформенным администратором. error.userMessage говорит, что этому ключу право не добавить. Код, статус и message отказа прежние, остальные скоупы ключа Partner Connect отвечают как раньше. Подробности — Авторизация, ключи и права.
Влияние на интеграторов
Действий не требуется. Если ваш код запускал повторное согласие по этому отказу, для vibe:storage он больше его не получит: право ключу Connect не выдаётся.
NEW-1012-6: отказы для клиентов с режимом COMPANY
Для клиентов Partner Connect с режимом COMPANY выдача пока закрыта: /v1/connect/authorize возвращает на зарегистрированный адрес ошибку access_denied с CONNECT_COMPANY_DISABLED или CONNECT_COMPANY_NOT_READY, без кода авторизации. Обмен authorization-кода на /v1/connect/token возвращает HTTP 403 с тем же кодом. Запуск и обмен device-кода отклоняются с HTTP 400 и CONNECT_COMPANY_DEVICE_FLOW_FORBIDDEN. Обычный режим PERSONAL продолжает работать.
NEW-1012-7: Коды отказа для подключений компании
В Partner Connect описаны коды HTTP 403 для подключений COMPANY: CONNECT_COMPANY_STORAGE_NOT_READY для хранилища и CONNECT_COMPANY_DERIVED_TOKEN_FORBIDDEN для производных токенов и ключей. OpenAPI публикует код и HTTP-статус отказа отдельно для COMPANY. Выдача подключений COMPANY остаётся закрытой с кодом CONNECT_COMPANY_NOT_READY.
FIX-1012-8: Единый отказ закрытой выдачи подключения компании
Было
Закрытая выдача Partner Connect в режиме COMPANY возвращала CONNECT_COMPANY_DISABLED либо CONNECT_COMPANY_NOT_READY.
Стало
GET /v1/connect/authorize и POST /v1/connect/token при закрытой выдаче в режиме COMPANY возвращают единый код CONNECT_COMPANY_NOT_READY. Выдача остаётся недоступной.
FIX-1012-9: занятый путь загрузки приложения допускает повтор деплоя
Было
Если путь исходников занимала другая загрузка, POST /v1/infra/servers/:id/deploy отвечал 502 GALAXY_APP_BUILD_FAILED и переводил приложение в error.
Стало
Ответ — 409 GALAXY_UPLOAD_BUSY, error.retryable: true, error.retryAfter: 10, error.hint и заголовок Retry-After: 10. Статус приложения сохраняется. Подождите не менее 10 секунд и повторите тот же запрос для того же приложения. Если сборка запущена в фоне через POST /v1/infra/servers с source, новое приложение сначала остаётся в provisioning, а GET /v1/infra/servers/:id показывает buildHint с советом повторить деплой. Зависшая попытка после 20 минут и следующей проверки в пределах 5 минут переводится в error с сохранением причины занятого пути и подсказки. Повторите тот же деплой и в этом состоянии: новая попытка возвращает слот в provisioning, данные /data сохраняются. Фоновая сборка исходников после создания сервера автоматически не повторяется. Hermes повторяет свою загрузку не раньше чем через 3 минуты; прежний лимит ожидания 30 минут завершает попытку с сохранением причины занятого пути и подсказки. Лента активности показывает причину занятого пути. Удалять приложение или снимать блокировки не нужно.
NEW-1012-10: Опрос статуса подключения Компании
GET /v1/connect/company/status возвращает состояние собственного подключения по секрету COMPANY, версии состояния и секрета, доступные возможности и следующее действие. Ответ не содержит персональных данных, секретов и URL и запрещает кэширование. Диагностика доступна для STATUS_ONLY. При ограничении частоты опроса ответ содержит Retry-After. Битрикс24, ИИ и файлы пока закрыты.
NEW-1012-11: Признак размещения приложения в ответах о приложениях
GET /v1/apps, GET /v1/apps/{id} и остальные ответы с объектом приложения, например POST /v1/apps и POST /v1/apps/{id}/relink-oauth, возвращают три новых поля. hosting показывает, где работает приложение: platform — на сервере платформы, привязанном к приложению или принадлежащем этому аккаунту Битрикс24, или на подтверждённом своём домене такого сервера, либо адреса у приложения нет вовсе, platform-orphan — адрес на поддомене платформы без работающего сервера, external — любой другой адрес, в том числе сервер платформы другого аккаунта Битрикс24. externalHost — имя хоста для external, иначе null; у external тоже бывает null, если в адресе нет хоста. externalRegistrable — регистрируемый домен этого хоста, иначе null.
Поле appUrl не меняется.
BC-1012-12: datetime-фильтры сохраняют явно заданный часовой пояс
Поддержка старого формата до: не предусмотрена
Было
Фильтры дат в API Вайбкод удаляли Z или числовое смещение без пересчёта часов. Значение updatedAt из ответа, переданное в $gte, могло задавать другой момент; пакетные окна также теряли зону и дробные секунды.
Стало
Явно заданные Z/offset и дробные секунды передаются в Битрикс24 целиком, в том числе в пакетных окнах. 2026-10-05T19:20:22.000Z и 2026-10-05T22:20:22.000+03:00 задают один момент. Наивные строки и YYYY-MM-DD сохраняют локальную семантику Битрикс24 и в автоматических окнах: раньше окна по умолчанию отправляли их как момент UTC, и на портале с поясом UTC+3 первые часы диапазона выпадали. X-Vibe-Timezone действует только на запись. Если одна граница локальная, а другая с зоной, фильтр исполняется без автоматического разбиения на окна. При включённом автоматическом разбиении поиск возвращает DATE_WINDOWING_SKIPPED в meta.warnings: выборка на методах Битрикс24 с фильтрацией после пагинации может быть неполной. Для разбиения задайте явную зону на обеих границах.
Что делать интеграторам
Передавайте значение из ответа без поправки часов; уберите ручную компенсацию прежнего среза зоны, если она была в интеграции.
BC-1012-13: Удаление приложения требует подтверждения остановки контейнера
Поддержка старого формата до: не предусмотрена
Было
DELETE /v1/infra/servers/:id для приложения на хосте с ошибкой GUEST_NOT_BOOTING мог успешно удалить только запись и привязку, оставив контейнер на недоступном хосте.
Стало
если остановка и удаление контейнера не подтверждены, запрос возвращает 502; запись и привязка сохраняются для повторной попытки. Подтверждённое удаление хоста также позволяет завершить очистку его приложений. Прежнее поведение отключено без переходного периода: оно позволяло работающему контейнеру пережить удаление приложения.
Что делать интеграторам
обрабатывайте 502 как незавершённое удаление. Сохраните идентификатор приложения, восстановите доступность хоста и повторите DELETE либо обратитесь в поддержку для подтверждённого удаления хоста. Не считайте ресурс удалённым до успешного ответа.
NEW-1012-14: Повторяемый отказ при занятой привязке сервера
DELETE /v1/infra/servers/:id может вернуть 409 REISSUE_IN_PROGRESS, пока ключ приложения или его привязка к серверу заняты, например перевыпуском ключа или доставкой секретов. Этот запрос ничего не удалил; повторите его чуть позже. Такой же код при POST /v1/infra/servers означает, что новая машина не создана и запрос можно повторить после завершения параллельной операции.
NEW-1012-15: Ключи управления доступны в OpenAPI
OpenAPI и справочник API Вайбкод теперь описывают семь работающих методов ключей управления: GET /v1/keys, POST /v1/keys, GET /v1/keys/{id}, PATCH /v1/keys/{id}, DELETE /v1/keys/{id}, POST /v1/keys/{id}/rotate и GET /v1/portals.
Агенты и генераторы клиентов видят параметры, ответы, отказы и права вызывающего ключа. Методы доступны в срезах vibe:mgmt:keys и vibe:mgmt:portals. Секрет возвращается однократно при создании или ротации, чтение и список содержат только безопасные сведения. Таймаут выпуска ключа теперь отвечает 503 вместо 504, как остальные таймауты платформы, и повторять запрос сразу по-прежнему не нужно. Чтобы добавить методы в генерируемый клиент, обновите его из актуальной спецификации.
NEW-1012-16: Вызовы по расписанию
Появились задачи сервера для вызова HTTP-обработчика приложения по расписанию: GET /v1/infra/servers/:id/jobs — список, POST /v1/infra/servers/:id/jobs — создание, PATCH /v1/infra/servers/:id/jobs/:jobId — замена настроек, DELETE /v1/infra/servers/:id/jobs/:jobId — удаление, POST /v1/infra/servers/:id/jobs/:jobId/run — ручной запуск, GET /v1/infra/servers/:id/jobs/:jobId/runs — журнал запусков и POST /v1/infra/servers/:id/jobs/:jobId/rotate-secret — замена секрета.
Вызов обработчика подписан; повторные попытки одного запуска сохраняют один runId, а результат и попытки видны в журнале. Настройка доступна также через инструмент MCP manage_server_jobs. Документация.
NEW-1012-17: Очистка истории чата для себя или всех
POST /v1/chats/:dialogId/history/clear принимает обязательное поле scope: self очищает историю для вызывающего пользователя, all — для всех участников. Чат сохраняется. Требуются скоуп im и режим доступа с разрешением на запись. Право выполнить операцию проверяет Битрикс24.
Очистка истории возвращает data.result: true только после явного подтверждения. Отсутствие подтверждения даёт 502 BITRIX_UNAVAILABLE.
FIX-1012-18: Подтверждение удаления чата
Было
DELETE /v1/chats/:dialogId мог сообщить об успехе без явного подтверждения удаления со стороны Битрикс24.
Стало
Ответ на подтверждённое удаление по-прежнему имеет статус 200 и содержит data.result: true. Если подтверждение отсутствует, ответ содержит 502 BITRIX_UNAVAILABLE. Запрос не повторяется автоматически после ответа 503 от Битрикс24.
Влияние на интеграторов
Проверяйте состояние чата перед ручным повтором после 502: операция могла уже изменить данные. Успешный ответ на подтверждённое удаление не изменился.
FIX-1012-19: файлы приложения доступны после перевыпуска ключа и передачи приложения
Было
Ключ приложения видел в хранилище только файлы, которые записал владелец этого ключа. После перевыпуска ключа авторизации приложения или передачи приложения другому сотруднику новый ключ отвечал 404 STORAGE_OBJECT_NOT_FOUND на ранее загруженные файлы, а список объектов их не показывал. Повторная загрузка по тому же ключу отвечала 409 STORAGE_KEY_OWNED_ELSEWHERE.
Стало
Файлы принадлежат приложению. Ключ приложения читает, перечисляет и перезаписывает все файлы своего приложения, кто бы их ни загрузил, в том числе после перевыпуска ключа и передачи приложения. GET /v1/storage/objects/{key} для таких файлов снова отвечает перенаправлением на файл. Файлы сотрудника внутри приложения по-прежнему доступны только с токеном этого сотрудника. Личные ключи разработчика работают как раньше.
Влияние на интеграторов
Менять ничего не нужно. После передачи приложения прежние файлы видны сразу, в том числе для передач, сделанных раньше. Сохранение файлов при перевыпуске действует для ключей, перевыпущенных после этого исправления.