landing · landing 26.700.0 Заметное

landing 26.700.0: Copilot-чат для сайтов снят, генерация переехала на Tailwind

4 мин чтения

Модуль лендингов развернул подход к генерации сайтов: отдельный чат-бот Copilot удалён вместе с публичными экшенами, а вместо него — сборка страницы Tailwind-блоками и набор инструментов для AI-ассистента. Релиз ломающий: удалены и AJAX-экшены, и целые классы, и часть шагов генерации переехала в другие неймспейсы.

Что удалено

Список стоит прочитать целиком, если вы что-то делали вокруг Copilot в лендингах:

  • AJAX-экшены Controller\Copilot: addChatToSiteAction, checkBlockGeneratableAction, executeBlockGenerationAction, sendBlockGenerationNeedSelectMessageAction, sendBlockGenerationWrongSelectMessageAction. Остался только executeGenerationAction.
  • Классы чат-ботов: Copilot\Connector\Chat\{ChangeBlockChatBot, Chat, ChatBotMessageDto, CopilotChatBot, CreateSiteChatBot, ICopilotChatBot} и JS-расширение landing/copilot/chat.
  • Copilot\Generation::getChatId() / setChatId(), IScenario::getChatbot(), ORM-класс Copilot\Model\SiteToChatTable. Таблица b_landing_copilot_site_to_chat в install.sql при этом осталась — класса для работы с ней нет, данные остались висеть.
  • Шаги генерации переехали в поднеймспейсы: Step\AIStep, BaseStep, TaskStep, RequestMultiple, RequestSingleStep\Base\* и Step\Request\*. Старые FQCN не работают.

Смысл перестройки: генерация сайта перестала быть диалогом в отдельном чат-боте и стала функцией общего AI-ассистента. Держать под это собственную инфраструктуру чатов, привязку сайта к чату и своих ботов больше незачем — отсюда и объём удалённого.

Tailwind вместо блоков из репозитория

Новый пакет Bitrix\Landing\AI\SiteBuilder\*: DTO (EnhancedInputDto, TailwindBlockSpecDto, DevContextDto), сервисы (EnhancedInputService, TailwindStructureService, TailwindBlockHtmlService, TailwindRuntime*), нормализация HTML, шрифтов и якорей. В таблице b_landing_copilot_generations появилась колонка HTML_BLOCKS (mediumtext в MySQL, text в pgsql).

Разница по сути: раньше AI подбирал готовые блоки из репозитория и заполнял их текстом — то есть был ограничен тем, что уже нарисовано. Tailwind-подход позволяет генерировать разметку блока целиком, а утилитарные классы дают модели предсказуемый словарь оформления вместо произвольного CSS. Отсюда же нормализаторы: сгенерированный HTML нужно привести в вид, который переживёт редактор.

Управляют этим контроллеры Controller\AiBlocks (magicSiteStart/Resume/Status, changeAiSiteStart/Resume/Status, convert) и Controller\Tailwind::saveCssAction, сценарии Copilot\Generation\Scenario\CreateAiSite и ChangeAiSite.

Предупреждение на будущее: Controller\AiBlocks проживёт недолго — в landing 26.900.0 он удалён целиком. Если планируете на него завязываться, не стоит.

Тулы AI-ассистента

Integration\AiAssistant\ToolSet\LandingToolSet с инструментами создания, изменения, удаления и поиска сайта и CRM-форм, таблица b_landing_ai_site_binding (USER_ID, SITE_ID, GENERATION_ID, уникальные индексы user+site и generation) с ORM AiSiteBindingTable, триггер AiSiteChatTrigger (регистрируется при установке через AiSiteChatTriggerRegistrar::register()). Конфиг ассистента лежит в config/marta.php и подключается как aiassistant.marta.

Именно эта таблица заменила SiteToChatTable: связь «пользователь ↔ сайт ↔ генерация» вместо «сайт ↔ чат».

Realtime и остальное

  • Bitrix\Landing\Realtime\EventDispatcher плюс JS landing/realtime, landing/editor/realtime, landing/site-list/realtime — события правок расходятся через Pull. Для генерации, которая идёт долго и шагами, это обязательное условие: пользователь должен видеть прогресс, а не ждать ответа.
  • REST-обёртка PublicAction\AiBlock (createTemplate, addToLanding, repo*).
  • History\Action\MoveBlockAction, Landing\BlockOrderService, Site\Creator, Block\StickyWrapperDetector, LocalTemplates.
  • UI: шаблон landing.site_copilot/templates/ai, онбординг страниц, compact/floating/simple-link панели, Tailwind runtime.

Что делать

  1. Проверьте свой JS и интеграции на удалённые экшены Controller\Copilot — их пять.
  2. Найдите старые FQCN шагов генерации (Step\AIStep и соседи) — они переехали в Step\Base\* / Step\Request\*.
  3. Если использовали SiteToChatTable — класса нет; данные в таблице остались, но работать с ними теперь нечем.
  4. Не строить новое на Controller\AiBlocks — его удалят через два релиза.

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

landing 26.800.0 Заметное Свежее

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

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

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

landing 26.900.0: undo/redo закрыли от инъекции PHP, execute стал final

Главное в релизе — не новые фичи, а ужесточение истории правок. Действия undo/redo теперь проходят обязательную проверку на PHP-открывающий тег, а метод `execute()` сделан `final`, чтобы проверку нельзя было обойти переопределением. Плюс удалён контроллер `AiBlocks`, появившийся всего два релиза наз...

1 мин
seo 26.100.0 Заметное Свежее

seo 26.100.0: админку Google Webmaster вырезали, VK включается по зоне портала

Релиз про сокращение того, что перестало работать. Раздел Google Webmaster Tools в админке убран целиком, deprecated-метод Яндекса удалён, интеграции с VK теперь отключаются по региону портала. Плюс установщик переведён на миграции ядра.

3 мин
sender 26.300.0 Безопасность Свежее

sender 26.300.0: тестер писем больше не пускает произвольные ключи в компилятор

Главное в этом релизе — не новые классы, а два фильтра. AJAX тестовой отправки письма перестал складывать в конфигурацию сообщения всё, что пришло в запросе, а редирект по ссылке из рассылки перестал таскать внутренний параметр на внешние домены. Обе правки маленькие, обе — про то, что раньше можно...

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

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

на связи

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

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

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

Войти