Для AI-агентов: markdown этой страницы — /docs-content/changelog/2026-08-15.md индекс документации — /llms.txt

Изменения API: 15 августа 2026

← Журнал изменений · Август 2026

BC-0815-1: комбо-рантаймы с базой данных больше не проезжают в галактику молча

Поддержка старого формата до: не предусмотрена

Было

Деплой приложения в галактику с рантаймом, обещающим базу данных (node20-pg, node20-mysql, node20-redis, node20-mysql-redis, node20-pg-redis, node20-rag, python311-pg, python311-mysql, python311-redis, python311-rag, php83-mysql), завершался успехом. Суффикс базы срезался, приложение получало только языковой образ: ни СУБД, ни переменных подключения (DATABASE_URL, PG*). Ошибка всплывала при первом обращении к базе.

Стало

Такой деплой отклоняется сразу: 400 с кодом GALAXY_RUNTIME_DB_UNSUPPORTED, полем details.suggestedRuntime (языковая замена — например node20 вместо node20-pg) и подсказкой по восстановлению. Каталог GET /v1/infra/runtimes отвечает новым полем supportedPlacements у каждого рантайма: ["standalone"] — только отдельная виртуальная машина, ["standalone","galaxy"] — ещё и галактика. Поля name и packages не изменились: они описывают установку на отдельной машине, где комбо-рантайм действительно ставит базу.

Что делать интеграторам

Перед деплоем в галактику фильтруйте каталог по supportedPlacements со значением galaxy. Приложению в галактике нужна база — возьмите языковой рантайм и передайте строку подключения к внешней базе через env. Нужна база на той же машине — создайте отдельную виртуальную машину (placement: "dedicated", создание без source) и задеплойте на неё исходный рантайм вторым шагом. Уже работающие приложения не затронуты: отказ возникает только на новом деплое.

NEW-0815-2: список привязанных мест сообщает, сверялись ли с аккаунтом

Ответ GET /v1/placements получил три необязательных поля. Поле portalSync говорит, чем закончилась сверка перечня с аккаунтом Битрикс24: ok — аккаунт вернул все привязанные коды, drift — часть кодов аккаунт не вернул, unknown — сверки не было. Причина значения, отличного от ok, приходит в portalSyncReason — no_oauth_session, empty_vibe_list, b24_unreachable, unpublished или missing_on_portal. При расхождении коды, которые числятся привязанными в Вайбкод и не вернулись от аккаунта, перечислены в missingOnPortal, и на них же появляется строка в warnings.

Приложение, снятое с каталога, расхождением не считается: значение unpublished говорит, что места на аккаунте сняла сама платформа, а коды сохранены для повторной публикации. Сверка выполняется, когда вместе с ключом приложения передан токен сессии и у приложения есть привязанные места. Без этих условий поле portalSync приходит со значением unknown — прежнее поведение ответа не менялось, просто теперь оно названо явно.

Раньше исход сверки приходилось выводить из наличия и длины массива handlers, а это не различало «аккаунт ответил и кода в ответе нет» и «ответ аккаунта получить не удалось»: в обоих случаях приходил пустой массив. Теперь во втором случае поле handlers не приходит вовсе, а причина видна в portalSyncReason. Прежние вызовы продолжают работать, новые поля дополняют ответ.

FIX-0815-3: квота ИИ считается по тарифу во всех западных зонах

Было

Тариф аккаунта Битрикс24 записывается как «зона аккаунта плюс редакция» — например jp_pro100. Приставку зоны платформа снимала не у всех: из западных зон разбирались только десять, и аккаунт в зоне cn, id, it, vn, jp, ms, th, hi, co или ae не совпадал ни с одной настройкой тарифа. Такому аккаунту месячная квота ИИ считалась по резервному правилу, а не по его тарифу.

Стало

Приставка снимается во всех двадцати одной западной зоне, и квота считается по настройке того тарифа, который у аккаунта на самом деле. Менять на своей стороне ничего не нужно; у затронутых аккаунтов размер месячной квоты меняется со следующего расчётного периода — вверх или вниз, в зависимости от того, как настроен их тариф.

NEW-0815-4: приложение можно опубликовать в каталоге Битрикс24 отдельным вызовом

Появился вызов POST /v1/infra/servers/:id/b24-catalog/publish — он создаёт карточку приложения в каталоге приложений Вайбкод на портале Битрикс24. Раньше карточка появлялась только после успешного развёртывания, поэтому приложение, поднятое иначе, в каталоге отсутствовало, и выдача доступа сотрудникам его не показывала.

Вызовы GET /v1/infra/servers и GET /v1/infra/servers/:id теперь отдают блок b24CatalogSync с полями status, itemId, attempts, pendingOp и eligible. Признак «приложение в каталоге» — непустой itemId. Поле eligible отвечает на другой вопрос: может ли карточка существовать в принципе — у рантайма агента, хоста галактики, сервера без субдомена и сервера, на который ещё не выкладывали приложение, её не будет.

Прежние вызовы работают без изменений: правка политики доступа и списка доступа карточку по-прежнему не создаёт, она обновляет уже существующую.

FIX-0815-5: месячный лимит Коворка догоняет тарифную сетку без ожидания продления

Было

/v1/cowork/state и /v1/cowork/me считали месячное окно платного места от объёма, зафиксированного в момент покупки. Когда месячный лимит тарифа увеличивался, новое значение доезжало до места только на следующем продлении: доля month.pctUsed не менялась, а место, упёршееся в exhausted, оставалось заблокированным до конца оплаченного периода, хотя лимит тарифа уже вырос. Недельное и пятичасовое окна при этом обновлялись сразу — три окна одного места отвечали по разным правилам.

Стало

Месячное окно платного места считается от большего из двух: действующего лимита тарифа и объёма, проданного на текущий период. Увеличение лимита применяется сразу — month.pctUsed падает без единого запроса, а month.exhausted сбрасывается в false, если новый лимит выше израсходованного. Уменьшение лимита оплаченный период не затрагивает: до его конца место считается по проданному объёму, новое значение вступает в силу со следующего периода. Бесплатное место, как и раньше, считается строго по действующему лимиту.

Абсолютных чисел в ответе по-прежнему нет — меняются только доли, признак exhausted и момент resetAt. Клиенту, кэширующему month.pctUsed, стоит перечитывать состояние перед решением о блокировке, а не полагаться на то, что доля растёт монотонно.