New Features * #3584371 Add Extractive Question Answering operation type * #3586451 Add UI toggle to enable MDXEditor on plain text field widgets * #3575190 Only one AI Automator worker queue item is processed per cron execution * #3586543 Add an AI reranking processor for Search API (owned by the AI module) * #3586517 Config action to verify if any vector database is there and it is setup * #3581952 Add event hook to ai_ckeditor to allow context injection * #3584977 RestrictToTopic guardrail: add semantic topic matching mode * #3568648 Batch embeddings for improved indexing performance * #3584951 Add SensitiveContentStream guardrail and kernel test for StreamableGuardrailInterface mid-stream buffering and evaluation * #3586478 Add rich-text image description support to AI Automators * #3585077 Integrate ChatProcessor plugin system into AI Chatbot DeepChat block * #3585075 Add AI Assistant API ChatProcessor plugin * #3586531 Add a Moderation Guardrail plugin (configurable moderation provider/model as a guardrail) * #3586602 Support Automator Chain trigger with Field Widget Actions * #3586585 Add YAML support to the MDX editor code blocks * #3586539 Add a ChatMemoryInterface for storing ChatBot chat history * #3586468 Add interactive refinement capability to Field Widget Actions * #3536912 Suggest Tags automator should work with Tagify Tasks * #3586452 Sync issue templates with project labels * #3586479 [Layer 2] Align ai_observability OTel emission to GenAI semantic conventions (gen_ai.*) * #3574662 Reject caller-supplied execution identity fields at /api/deepchat boundary * #3586537 Add Summarization operation type support to the echoai test provider * #3586536 Support the `ai_json_schema` element inside off-canvas dialogs * #3586595 Add league/commonmark as real dependency not a suggestion * #3586572 Add metadata (token usage and rate limits) to ChatGenerator in AI API Explorer * #3586669 Hide deprecated submodules that are down to skeleton code in 1.x Bugs * #3586398 Add GitLab issue and merge request templates * #3586394 Add Warning when Missing Built Assets * #3586485 "Create new prompt" button doesn't work in CKEditor plugin configuration * #3586473 ai_observability: streaming OTel spans drop final token usage (span ended on un-consumed iterator) * #3586652 If only one tool, cannot delete it, gives an error: Undefined array key 1 in Drupal\ai\Element\ToolsLibrary::processToolsLibrary() (line 89 of modules/contrib/ai/src/Element/ToolsLibrary.php) & more * #3586637 `AiReranker::extractItemText()` should prefer chunk text over configured indexed fields * #3586668 DeepChat block lost backwards compatibility for its old configuration in 1.5.x Contributors: breidert, robloach, joshua1234511, b_sharpe, ahmad khader, marcus_johansson, a.dmitriiev, manandearth, sgavilan, jorgik, ajv009, harivansh, abhisekmazumdar, adhariwal, jucs7, jessehs, kristen pol, akhil babu, ahmad-khalil-imagex, paulsheldrake, scott_euser, abarrio, nikro, scott falconer, fago, lbesenyei, merilainen, gxleano, farse, csakiistvan, violaniko, annmarysruthy, prabha1997, ezeedub, fizcs3, cobadger, mandclu, kotekirkitadze, ajabhinavjha30, aivazashvilit