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