landing · Сайты 24 26.800.0 Заметное

landing 26.800.0: ассистент умеет публиковать сайт, установщик — на миграциях

3 мин чтения
Узнавайте о ломающих изменениях Битрикса раньше, чем они доедут до прода: свежие разборы — в канале @bxmax_updates

Небольшой релиз с одним ломающим краем: у AI-ассистента появился инструмент публикации сайта, у инструментов — логирование вызовов, а установщик модуля переехал на UpdateSystem\Migration. Ломается ровно один метод — и ломается тихо.

Публикация сайта как инструмент ассистента

Полный набор под одну операцию: PublishLandingSiteDto, PublishLandingSiteSchema, PublishLandingSiteTool, PublishLandingSiteHandler с методами publishSite(), unpublishSite(), getSitePublicUrl(). Зарегистрировано в LandingSiteToolRegistry.

Логичное продолжение прошлого релиза: ассистент уже умел создавать и менять сайт, но довести дело до публикации пользователь должен был руками. Теперь цикл закрыт — включая снятие с публикации, что важнее, чем кажется: инструмент, который умеет только публиковать, оставляет пользователя без способа откатиться тем же путём.

Доступность закрыта гейтом AiSiteRuntimeAvailabilityToolGate::isAiSitesReleaseOptionEnabled() — фича управляется опцией релиза, а не приезжает включённой всем.

Логирование вызовов инструментов

У базового класса появились BaseTool::isToolCallLogEnabled() и logToolCall(...).

Мелочь, которая много значит на практике. Инструмент ассистента — это код, который вызывает не человек и не ваш контроллер, а модель, по своему разумению, с аргументами, которые она сама собрала. Когда что-то идёт не так, вопрос «что именно было вызвано и с чем» становится первым, и без журнала на него ответить нечем.

Что сломается

Одно изменение, зато неприятное:

        // было
AiSiteChatContextService::getEditorContext($siteId, $pageId, $suggestedTitle, ...)
// стало
AiSiteChatContextService::getEditorContext($siteId, $pageId, $siteTitle = '', $pageTitle = '', $suggestedTitle, ...)

    

Между $pageId и $suggestedTitle вставлены два строковых параметра. Все аргументы строковые, поэтому позиционный вызов со старым порядком не упадёт — он просто положит ваш $suggestedTitle в $siteTitle. Ошибка проявится как странное поведение ассистента, а не как исключение. Если вызываете этот метод — переходите на именованные аргументы.

Со стороны JS landing/aiassistant/widgetpanel теперь передаёт siteTitle и pageTitle в контекст чата — ради этого всё и затевалось: ассистент должен знать, как называются сайт и страница, с которыми работает.

Установщик

installDB / uninstallDB вызывают installMigrations() / uninstallMigrations($dropTables) вместо RunSQLBatch и массива $eventsData. SQL-файлы install/db/{mysql,pgsql}/install.sql, install_ft.sql, uninstall.sql удалены, схема — в install/migrations/tables.php (вместе с колонкой HTML_BLOCKS и таблицей b_landing_ai_site_binding из 26.700.0), события и агенты — в events.php / agents.php, конфиг — migration_config.json.

Для уже установленного модуля новой схемы здесь нет: это рефакторинг установщика. Механику разбираем отдельно.

Что делать

  1. Найдите вызовы AiSiteChatContextService::getEditorContext — это единственная реальная опасность релиза, и она молчаливая.
  2. Пишете свои инструменты ассистента — включите logToolCall, пока не пришлось разбираться постфактум.
  3. Проверьте опцию релиза AI-сайтов, если ждёте появления публикации в ассистенте.

Новая версия вышла — разбор уже в Telegram

В канале @bxmax_updates публикуем каждый свежий разбор: что сломается, что устарело и что появилось в API. Узнаете до того, как обновите прод.

Подписаться

Читайте дальше

landing 26.1700.0 Ломающее Свежее

Landing 26.1700.0: markup-генерация за флагом и четыре несовместимости

Landing 26.1700.0 добавляет генерацию AI-сайтов из markup-пакетов. Её выбирает выключенный по умолчанию `AiSitesMarkupFlag`; доставка и отображение уже существующих markup-страниц работают независимо от флага. Четыре несовместимых изменения тоже от него не зависят.

5 мин
landing 26.1600.0 Безопасность Свежее

Landing 26.1300.200–26.1600.0: закрыты дыры с PHP и правами групп, поля редактора стали ES-классами

С прошлого разбора вышли четыре версии landing: 26.1300.200, 26.1400.0, 26.1500.0 и 26.1600.0. В каждой закрыты дыры, от сборки PHP-тега при импорте сайта до лишних прав у участников групп соцсети. Попутно в режиме Битрикс24 превью черновика переехало на маршрут раздела «Сайты», а поля редактора ста…

7 мин
landing 26.1300.50 Безопасность Свежее

Landing 26.1300.0–26.1300.50: публикация больше не склеит PHP-тег, сайт по описанию через REST, а note меняет ответы REST v3

Вышли landing 26.1300.0 и 26.1300.50, вместе с первой пришёл note 26.500.0. Note на БУС нет, его смотрели на коробочном Битрикс24. В landing закрыли дыру в публикации блоков и добавили REST-методы, которые собирают сайт из текстового описания. Note научился забирать к себе Базу знаний 1.0 и поменял…

2 мин
landing 26.1100.100 Рутинное

Landing 26.1100.100: только номер версии

В `install/version.php` поменялись номер версии и дата сборки (20 августа), больше в релизе ничего нет. Следом идёт [landing 26.1100.200](/bitrix-updates/landing/landing-26-1100-200) с содержательной правкой контроллера файлов Диска.

1 мин
Мы используем файлы cookie для улучшения работы сайта. Продолжая использовать сайт, вы соглашаетесь с нашей политикой конфиденциальности.
AI Домовой

AI Домовой История

на связи

пишет…

Можно закрыть чат и перейти на другую страницу. Когда ответ будет готов, на кнопке Домового появится отметка.

Нет истории чатов
AI Домовой

Нужна авторизация

Войдите, чтобы задавать вопросы AI Домовому.

Войти