New Features * #3456973 AI integration for Views bulk operations * #3579424 The tool category should fixed on Tool Library modal * #3582575 Add agent skill and drush generator for Guardrail plugins * #3582856 Add Input Length Limit guardrail plugin against DoW attacks * #3584849 Allow InputInterface to hold and run multiple guardrail sets * #3582572 Add agent skill and drush generator for Automator Type plugins * #3582819 Add agent skill for creating new AI API Explorer plugins * #3582766 Create a skill that scaffolds new operation types for the AI module * #3582573 Add agent skill and drush generator for Field Widget Action plugins * #3582571 Add agent skill and drush generator for AI Provider plugins * #3581363 Add drupal:mdx-fill event support to MDX editor for external content injection * #3492940 Add ChatProcessor * #3584851 Add global guardrails setting applied to every AI request * #3540608 Special characters or trailing spaces are HTML-encoded in AI CKEditor selected text preview * #3582179 Add streaming-aware guardrails that can buffer and evaluate content in real-time using start/stop regex patterns * #3585233 Dispatch AiExceptionEvent and allow subscribers to replace the response (graceful failover) * #3577937 Create JS form editor for the default information tools * #3586481 AI Automators Queue/Cron: prevent duplicate queue items when entity is saved multiple times * #3586472 Use ai_provider_configuration form element in RestrictToTopic configuration form * #3586500 Allow vector database providers to opt in as the default VDB when none is set * #3586603 Move AI External Moderation into Safety & Compliance * #3586660 Add thumbs-up and thumbs-down icons to the shared AI icon set Tasks * #3582585 Mock provider request matching breaks when new keys are added to input toArray() * #3582530 Update Documentation to Remove Vector Search Infrastructure and Move it under the AI Infrastructure Umbrella * #3582030 runAsAgent: Stable IDs Across Conversation Turns * #3585690 Add Guardrails support to AI Automators * #3586490 Split the Guardrails documentation into a section with a page per guardrail (1.4.x) * #3577050 Generalize behaviour of FWA with Automators * #3586514 Update documentation for FWA and ai_automators * #3586573 Tone of voice CKEditor Plugin does not use the translated version of the linked taxonomy * #3586621 PHPStan errors * #3586606 Document TokenUsageDto and how to use it Bugs * #3586385 AgentRunner.php needs to set configuration * #3586433 AgentRunner sets the wrong configuration * #3586397 AI settings form fails to load when allowed_hosts is an empty string * #3586448 Add ChatWithPdf capability to AiModelCapability enum * #3586399 Add Elasticsearch VDB provider to matrix * #3586436 Method getPluginResponse should be in AiContentSuggestionsPluginBase class and not in external service * #3586521 Fix FunctionalJavascript test failures on 1.4.x introduced by MDX editor Drupal.behavior conversion * #3586449 AI Assistant runner fatals when an ai_agent config entity shares its ID with a code-defined AiAgent plugin * #3586471 "AI Guardrails" or "AI Moderation Guardrails"? * #3586476 Match "Global Guardrails" config page title with "Global AI Guardrails" menu item * #3553353 Fix Translate Text Explorer form functionality * #3586676 1.4.x: AiGuardrailSubformAjaxTest references guardrails that only exist in 1.5.x * #3586587 AI Agents Test Getting Started doc includes the wrong command * #3499451 Chatbot closes itself when adding a modal * #3586654 AiAutomatorEntityModifier::entityHasConfig() ignores the AI Automator's disabled (status: false) setting Planning * #3456768 Interface suggestion for text classification operator type Contributors: petar_basic, harivansh, fago, ajv009, a.dmitriiev, marcus_johansson, abhisekmazumdar, shubham.prakash, ahmad khader, erichomanchuk, afoster, joaopauloc.dev, lussoluca, tolstoydotcom, unqunq, gxleano, emma horrell, anaconda777, sijumpk, hrishikesh-dalal, svendecabooter, valthebald, ahmad-khalil-imagex, akhil babu, mglaman, anjaliprasannan, breidert, joshua1234511, bbruno, angela saldaña, ricardoamaro, avinash.jha, jucs7, b_sharpe, ultimike, weri, jhuhta, jibran, scott falconer, danrod, nikro, brtamas, jesus_md, robloach, vasike, Scott, lostcarpark, prabha1997, farse, annmarysruthy, cobadger, ognuliscic, ajabhinavjha30, csakiistvan, merilainen, heyyo, phenaproxima, mrdalesmith, prashant.c, gafioni, bharat.kelotra, adhariwal, gueguerreiro