Daily Digest
Daily Digest – 1 July 2026
2026 Capabilities Progress
- Page generation — Progress on Canvas AI page builder testing continues [245], and architectural work on component context and translation support will improve AI's ability to generate valid, translatable pages from design system components [229][233][249]. Next milestone is completing conflict detection workflows to enable safe AI-assisted page editing.
- Context management — Significant progress on Context Control Center with multiple accessibility, form, and cacheability improvements in progress or in review [274][279][280][281][283][285][286][287][288], plus work enabling subcontext scope inheritance [276][284]. The module is approaching release candidate status.
- Background agents — Work continues on agent reliability with progress on tool execution ordering constraints [218][223], error handling improvements [220][225], and agent state resume capability [13]. Risk: token handling and UI error conditions remain open [221].
- Design system integration — Canvas work on component metadata, prop validation, and translatability directly supports AI building with design system components [229][231][233][234][237][249][257]. Work on AI-driven CSS variable modification remains in planning [95][96][97].
- Content creation and discovery — AI reranking processor for Search API is in active development [4][194], batch embeddings are being formalized across multiple providers to improve indexing performance [7][196][207][216][217][290], and nested keyword query support was added [289][291]. CKEditor improvements address language handling and UI issues [2][3][108][177][181].
- Advanced governance — Guardrail improvements are underway to evaluate full conversation history rather than only the last message [5][195], with semantic topic matching and input length validation being enhanced [17][187][190]. Logging and audit capabilities saw improvements with export methods and enhanced metadata capture [29][109][111]. Risk: batch approval and branch-based versioning features show no direct progress today.
- Intelligent website improvements — No direct progress today on learning from performance data or proposing concrete site improvements based on analytics.
- Multi-channel campaigns — No direct progress today on campaign-based content creation spanning websites, social media, email, and automation platforms.
Shipped
- AI CKEditor functional tests added — Test coverage for the text editor integration was completed and merged [179][203].
- Provider documentation tool automated — A script to generate the provider compatibility matrix from GitLab was completed, reducing manual maintenance effort [192][204].
- Image classification type hints corrected — A minor fix to method return types was merged [191][205].
- Context Control Center documentation updated — Installation paths in project documentation were corrected [275].
- Canvas CI restored — Continuous integration was unblocked by resolving a dependency issue [244][269].
Ongoing
- Chatbot modal interaction fix under review — A fix to prevent the chatbot from closing when adding media or other modals in CKEditor is awaiting merge [1][193].
- Search API reranking processor in development — Work is underway to extend AI reranking capabilities to any Search API backend [4][194].
- Batch embeddings being finalized — Support for processing multiple content items in a single embedding operation is under review to improve indexing performance [7][196][207][216][217][290].
- Guardrail improvements in progress — Changes to allow guardrails to evaluate full conversation history and add semantic topic matching are under development [5][17][190][195].
- Canvas conflict detection and translation work active — Multiple features for comparing and resolving editing conflicts, plus ensuring component fields are marked translatable, are in review [233][238][240][249][255][258][259][262][263][264][273].
AI (Artificial Intelligence)
The AI module saw targeted progress across testing, developer experience, and quality-of-life improvements over the past 24 hours. Work merged into the main branch includes functional test coverage for CKEditor integration, a new automated provider discovery tool for documentation maintenance, and a minor fix to type hints in the image classification system.
In active development, a merge request to resolve chatbot behaviour after modal dialogs (such as adding media in CKEditor) was opened, which should improve editing reliability. A reranking processor for Search API is in progress, extending AI Core's existing rerank operation to work with any Search API backend. Batch embedding support is being hardened and formalised as a first-class operation type to improve indexing performance and reduce redundant API calls. Guardrail improvements are also underway: work is ongoing to allow guardrails to inspect the full conversation history rather than only the last message, and to introduce semantic topic matching for the restrict-to-topic guardrail.
Issue triage surfaced user-facing bugs including chatbot rendering problems in Gin dark mode, validation errors when configuring automators on paragraph-enabled node forms, and an issue where forced tool-argument defaults may not be injected correctly. Several open issues relate to edge-case behaviour: multiple chatbots on a single page sharing message history unintentionally, accessibility of provider features not yet documented for non-technical users, and guardrail or automator behaviour when dealing with empty fields or dynamic content types.
How can I help on this project?
- Prioritise UX triage resources: multiple issues describe usability problems in Gin dark mode, chatbot placement, and paragraph-automator field selection. Dedicated UX review and prioritisation will clarify which fixes should be addressed before the next stable release.
- Review and approve the reranking and batch embeddings architecture decisions so those in-flight merge requests can be finalised and shipped.
Contributors: Abhisek Mazumdar (abhisekmazumdar), Ahmad Khalil (ahmad-khalil-imagex), Alphons Jaimon (AJV009), Anjali Prasannan (AnjaliPrasannan), Jan Kellermann (werk21), Joshua Fernandes (joshua1234511), Marcus Johansson (Marcus_Johansson) [1], Petar Bašić (petar_basic), Prabhavathi Vanipenta (prabha1997) [1], Ronald te Brake (ronaldtebrake) [1], Shubham Goel (shubhamgoel), velmir_taky (root_emarketing)
AI Integration - ECA
A new task has been opened to simplify how authors configure structured outputs when building chat-based workflows. Currently, anyone defining a schema for AI-generated responses must write raw JSON by hand, which is error-prone and makes saved configurations difficult to review. The Simplify structured output configuration in the Chat action task proposes replacing this plain-text field with a dedicated schema editor that validates input and improves usability. This work is part of the project's roadmap toward a stable 1.0.0 release and will make it easier for non-developers to create reliable AI-powered automations.
No code changes were merged or committed during this period. The task remains open and unassigned.
How can I help on this project?
- Assign development capacity to the open structured-output task to maintain momentum toward the 1.0.0 milestone.
- Clarify priority across the roadmap backlog so contributors know which usability improvements should be completed first.
OpenAI Provider
The OpenAI Provider module saw development activity focused on expanding its capability to handle batch embeddings. A merge request for batch embeddings support was opened, representing progress toward more efficient processing of multiple embedding requests in a single operation. This enhancement will enable users to process larger volumes of content more economically and with better performance, reducing the number of individual API calls required for embedding generation tasks.
The module remains in active development with work underway to expand its feature set. This batch processing capability represents a meaningful step toward production readiness for organizations with higher-volume content processing requirements.
How can I help on this project?
- Prioritize review and testing resources for the batch embeddings functionality to accelerate its delivery to users with high-volume use cases.
- Consider engaging stakeholders who would benefit from batch processing to provide feedback on the implementation before it's finalized.
Contributors: Paul Sheldrake (paulsheldrake)
Anthropic Provider
The Anthropic Provider module saw active development focused on compatibility and stability improvements. A dependency was updated to incorporate an upstream transport fix that better surfaces rate-limit and error information during streaming operations. This change improves the reliability of real-time interactions with the Anthropic platform.
Work is underway to address a compatibility issue affecting multi-agent AI workflows, such as those in Drupal Canvas AI. The module currently forwards conversation messages without modification, but Anthropic requires the last message in a conversation to come from a user. When agent-to-agent handoffs leave a trailing system or assistant message, the integration breaks with a generic error. Two approaches to appending a minimal user message are being evaluated.
Separately, the module is being prepared for forward compatibility with Drupal 12 and cleaning up references to an upstream module that was merged into core last year. These changes ensure the module remains current with the broader Drupal ecosystem.
How can I help on this project?
- Review and approve the two open approaches to the conversation-ending issue so the team can settle on one implementation and unblock Canvas AI workflows.
- Allocate testing resources to validate Drupal 12 compatibility ahead of its release cycle.
Contributors: Carlos Ospina (camoa), Paul Smith (MrDaleSmith), project update bot (Project-Update-Bot), Rajab Natshah (RajabNatshah)
Gemini Provider
The Gemini Provider module is progressing work to enable batch processing of embeddings, which allows multiple pieces of content to be analyzed for semantic meaning in a single operation rather than one at a time. This capability is supported by the underlying Gemini models and will improve efficiency when processing large volumes of content. A merge request for batch embeddings support was updated during the period following decisions on implementation approach. The related issue is now under review.
This work builds on earlier efforts to standardize how the module handles content analysis requests, and represents incremental progress toward making the provider more performant at scale.
How can I help on this project?
- Ensure technical reviewers have capacity to evaluate the batch embeddings work currently awaiting review.
- If batch processing is strategically important, clarify priority and timeline expectations with the team to guide sequencing decisions.
Contributors: Artem Dmitriiev (a.dmitriiev)
Milvus VDB Provider
The Milvus VDB Provider project saw development activity focused on improving performance when handling large volumes of data. A new merge request was opened to add support for batching on indexing operations. This work will enable the system to process multiple items at once during indexing, rather than handling them individually, which should reduce processing time and improve efficiency when working with substantial data sets.
This enhancement is particularly valuable for organizations managing growing amounts of content or data, as it will help maintain system responsiveness as usage scales. The change is currently under review and has not yet been merged into the codebase.
How can I help on this project?
- Ensure the team has access to adequate testing environments or resources to validate batching performance with realistic data volumes before the feature is finalized.
- Consider prioritizing review capacity to move the batching work toward completion if improved indexing performance aligns with organizational goals.
Contributors: Artem Dmitriiev (a.dmitriiev)
AI Agents
Activity this period centered on improving the reliability and usability of agent-based automation. Work continued on features that give administrators more control over how AI agents behave, and on fixing issues that disrupt the user experience when things go wrong.
Progress was made on Make it possible to restrict the order of tools during agent executions, which addresses cases where agents execute actions in illogical sequences. The related work allows administrators to configure dependencies between tools—for example, ensuring certain data retrieval happens before content creation. This should reduce the need for complex prompt engineering and make agent behavior more predictable.
Two open issues received updates around error handling and system integration. Work on Exceptions in tool execute break the UI for the user aims to prevent silent failures in the agent interface when configuration errors occur. A new issue was reported regarding Array to string conversion in Token::doReplace(), which causes warnings during agent runs. Additionally, AI Agents admin menu does not follow AI 1.4.x menu categorization is ready for final review to align the module's navigation with the broader AI platform structure.
How can I help on this project?
- Prioritize review and merge decisions for ready work, particularly the menu categorization issue marked as ready to be committed.
- Assess whether the token conversion warning issue requires dedicated development resources or represents a broader integration concern with the platform.
Contributors: Alin Ameiroaie (aalin), Joshua Fernandes (joshua1234511), Jürgen Haas (jurgenhaas)
Tool API
Two compatibility issues affecting the AI connector component were identified during the reporting period. The first concerns how module dependencies are tracked when AI agents use tools through the connector — currently, dependencies from the underlying tool modules are not being properly maintained in the system. The second issue involves handling tools that return multiple results (such as lists of content items), which currently causes system errors. A proposed fix for the multiple-results issue has been submitted and is under review.
These issues affect users who are integrating AI capabilities with the Tool API, specifically when agents need to work with content operations or when module dependency tracking is important for system integrity.
How can I help on this project?
- Prioritize review resources to evaluate and advance the proposed fix for handling multiple-entity results.
- Determine whether the module dependency tracking issue requires architectural guidance or can proceed with a standard fix.
Drupal Canvas
Progress
A dependency issue that broke continuous integration has been resolved, restoring automated testing and code quality checks. Separately, two security hardening improvements were committed to make image upload endpoints in both the AI chat interface and the internal API more robust.
Translation and Multilingual Support
Work is underway to ensure multi-line text fields in components are correctly marked as translatable, addressing a gap that affects content editors working in multiple languages. A related fix is in progress to allow Pattern configuration entities to work correctly on multilingual sites, where they currently trigger errors. Additionally, a proposal has been opened to improve how component schemas track which fields can be translated across component versions, ensuring that older content remains valid when component definitions evolve.
Conflict Detection and Review Workflows
Significant development continues on conflict detection and resolution features. These capabilities will help users identify when unpublished changes conflict with updates made outside their editing session, compare versions visually or as text, and choose which version to keep before publishing. Access control logic for auto-save publishing has been refined to ensure permission checks happen earlier in the request lifecycle.
Component Usability and Validation
A fix is being prepared for an issue where boolean component properties appear to toggle on unexpectedly when other fields are changed. A separate issue addresses a performance problem where very large text fields trigger regular expression errors; the solution involves replacing a placeholder validation pattern with a more efficient approach. Work is also progressing to improve how the content reference picker presents image field options to developers.
How can I help on this project?
- Prioritize review and sign-off on the conflict resolution workflow, which spans multiple interdependent changes and will unlock safer collaborative editing.
- Ensure dedicated review capacity for translation-related fixes, which are marked as critical blockers for multilingual deployments.
Contributors: **** (project_19391_bot_cb443e60680723bba08a5351bf595251), Ben Mullins (bnjmnm), Christian Lopez Espinola [2], Christian López Espínola (penyaskito), Feliksas Mazeikis (f.mazeikis), Matt Glaman (mglaman), Narendra Singh Rathore (NarendraR), Prabhavathi Vanipenta (prabha1997), Ravi Maniyar (ravi.maniyar.123), Wim Leers (wimleers) [1]
Context Control Center (CCC)
Progress this period focused on improving the user experience and accessibility of the module's administrative interfaces as work continues toward a release candidate. Several areas of cleanup are now underway to ensure the module is easier to use and more accessible to all users.
One piece of work was completed: Update project page to change to the correct paths in the Installation and Testing Steps section was closed, correcting documentation that previously pointed users to incorrect administrative paths.
Active development is addressing several usability areas. Work is progressing on making tooltip content, truncated text, and icon-only elements accessible to screen readers through Clean up CCC tooltip, truncation, and icon-only content. Another effort is improving how external links are presented and ensuring interactive elements are properly accessible through Clean up CCC accessible interactive links and external links. Improvements to form accessibility and table interfaces are underway via Clean up CCC form and table accessibility cleanup. Behind-the-scenes work is ensuring content caching and permissions work correctly through Clean up CCC cacheability and access metadata.
Additional work is exploring how the module might integrate with the new Annotations module, which has complementary functionality.
How can I help on this project?
- Prioritize manual testing resources for the scope inheritance feature, which has code ready but requires validation before release.
- Support evaluation of the Annotations module integration to determine whether partnership or coordination would benefit both projects strategically.
Contributors: Joshua Fernandes (joshua1234511), Juan Correa (jucs7), Kristen Pol (kepol), Pravesh Poonia (Pravesh_Poonia)
AI Search
The AI Search module saw focused development activity addressing performance and functionality gaps. Work is underway to enable batch processing of content embeddings during indexing, which will reduce processing time and server load when large volumes of content need to be indexed. This optimization is particularly important for organizations managing extensive content libraries.
A functional limitation affecting search accuracy was also addressed. The module previously failed to detect search keywords when they appeared within nested query conditions—a common scenario when using multiple search fields. This meant some relevant results were not being surfaced to users. A solution to properly traverse nested conditions has been opened for review.
Both improvements remain in review and have not yet been merged into the module.
How can I help on this project?
- Ensure the team has sufficient code review capacity to evaluate and merge the pending batch processing and nested query work, which are blocking improved performance and search accuracy.
- Clarify prioritization between performance optimization and search quality enhancements to guide sequencing decisions.
Contributors: Artem Dmitriiev (a.dmitriiev), marios anagnostopoulos (MariosAnagnostopoulos)
Pinecone VDB Provider
Development work continued on this module, which enables Drupal sites to connect with Pinecone vector database services for AI-powered search and content discovery capabilities.
Two merge requests were opened to add support for running Pinecone locally. This capability would allow development teams to test and build features without requiring connection to external cloud services, reducing dependencies and enabling faster iteration during feature development.
A feature request was also filed to add batching support for indexing operations, following similar improvements made in related modules. Batching would improve performance when processing large volumes of content by grouping multiple operations together rather than handling them one at a time.
No commits were finalized during this period. The module remains in active development with work underway but not yet integrated into the codebase.
How can I help on this project?
- Ensure testing resources are available to validate the local Pinecone support once the merge requests are ready for review.
- Clarify whether batching support should be prioritized alongside the local development work or sequenced separately.
Contributors: Scott Euser (scotteuser)
References
[1] Chatbot closes itself when adding a modal
[2] ai_ckeditor: Add option to show or hide the "AI Writer" status information
[3] AI CKEditor Summarize generates summaries in a different language than the selected text
[4] Add an AI reranking processor for Search API (owned by the AI module)
[5] Guardrail plugins only evaluate the last message
[7] Batch embeddings for improved indexing performance
[13] AI agent runner resume state
[17] Add regression test coverage for RestrictToTopic topic matching
[29] Provide method to export log items from the AI Logging module
[96] AI Agents can change design system css variables from a prompt or image.
[97] [META] AI Design System - Style Changes / Migration
[108] AI CKEditor: configure prompts per filter_format
[109] Capture node/entity information on AI Logs
[111] Capture user data on AI logs
[177] Uninstalling ai_ckeditor leaves stale toolbar items in editor.editor.* configuration
[179] Add Functional Tests for AI CKEditor
[181] Tone of voice CKEditor Plugin does not use the translated version of the linked taxonomy
[187] InputLengthLimit guardrail does not consistently scan user messages
[190] RestrictToTopic guardrail: add semantic topic matching mode
[192] Add a deterministic script to auto-generate the providers/operation-types matrix from GitLab
[193] Issue #3499451: Fixed chatbot not reopening after CKEditor/media modal closes.
[194] Issue #3586543: Add AI reranking processor for Search API.
[195] Resolve #3579088 "Guardrail plugins only"
[196] Issue #3568648: Batch embeddings as a first-class operation type (follow-up to !1704)
[203] Issue #3477173: Add functional tests for AI CKEditor
[207] add support for batch embeddings
[216] Support batch embeddings
[217] add support for batching on indexing operations
[218] Make it possible to restrict the order of tools during agent executions
[220] Exceptions in tool execute break the UI for the user
[223] Issue #3560681: Add per-tool execution ordering constraints for agent loops.
[225] Issue #3537123 by jurgenhaas: Exceptions in tool execute break the UI for the user
[229] Canvas AI: Component context required props missing required flag
[231] Inefficient RegexConstraint on StringLong fields causes "JIT stack limit reached"
[233] Canvas should mark multi-line string props on SDCs and code components as translatable
[234] Add Code Component prop type for multiline plain text
[237] SDCs with `maxLength` are mapped to `string`, unclear whether that supports e.g. a limit of `100000`
[240] StagedLanguageConfigOverride rejects Pattern config entities on multilingual sites
[244] Unbreak CI due to bad upstream release in PHPStan or `shipmonk/dead-code-detector`
[245] Canvas AI: Create tests for Canvas AI Page builder Agent and Canvas AI Template Builder Agent
[249] Resolve "Canvas should mark multi-line string props on SDCs and code components as translatable"
[255] Issue #3575644: Inefficient RegexConstraint on StringLong fields causes "JIT stack limit reached"
[257] Fix required prop flag dropped in processSdc() and missing in processCodeComponents().
[258] feat(Conflict detection): #3587526 "Detect conflicts during publishing of changes to Page entity"
[263] Draft: feat(Conflict detection): #3591668 "Text-based Page entity representation via Canvas API"
[264] feat(conflict): Add conflict resolution UI with viewport selection and route integration
[269] Resolve "Unbreak CI due to bad upstream release in PHPStan or `shipmonk/dead-code-detector`"
[273] #3591738 add translation data to code component provider
[274] Clean up CCC form and table accessibility cleanup
[275] Update project page to change to the correct paths in the Installation and Testing Steps section
[276] Allow subcontext scope to override parent scope
[279] Clean up CCC tooltip, truncation, and icon-only content
[280] Clean up CCC cacheability and access metadata
[281] Clean up CCC accessible interactive links and external links
[283] Issue #3586304: Clean up CCC form and table accessibility cleanup
[284] Issue #3586218: Allow subcontext scope to override parent scope.
[285] Issue #3586301: Clean up CCC accessible interactive links and external links.
[286] Issue #3586305: Fix context prefix default alignment and stale getManageUrl docs.
[287] Issue #3586302: Exposed tooltip/truncated content and icon meaning to assistive tech.
[288] Issue #3586300: Updated CCC cacheability and access metadata.
[289] Support nested keyword queries
[290] Resolve "Batch embeddings for improved indexing performance"
Shipped
- Auto-generated provider matrix from GitLab — A deterministic script was merged to auto-generate the provider/operation-type matrix directly from GitLab, replacing manual maintenance [192][204].
- ImageClassificationItem type hint fixes — Fixed getConfidenceScorePercentage() returning mixed float/string values and standardized type hints to lowercase null [191][205].
- AI API Explorer skill name updated — Updated the skill name to match its directory, addressing Agent Skills specification compliance [178][202].
- Anthropic SDK bumped to ^0.32 — Merged upgrade brings SDK 0.30 transport fix where streaming HTTP errors now surface as typed APIStatusException subclasses [214].
- Canvas CI unbroken after upstream PHPStan failure — Fixed nightly CI failures caused by bad upstream release in PHPStan or dead-code-detector [244][269].
- AI CKEditor functional test coverage — Test coverage improvements landed for AI CKEditor module [179][203].
Ongoing
- Chatbot modal closure bug fix — Merge request open to prevent chatbot from closing when CKEditor or media modals open [1][193].
- AI reranking processor for Search API — New processor consuming the existing rerank operation type awaits review [4][194].
- Batch embeddings as first-class operation type — Work underway to elevate batch embeddings with merge requests open in AI core, OpenAI provider, Gemini provider, Milvus VDB, and AI Search [7][196][207][216][217][290].
- Guardrail plugins refactored for consistent message scanning — Merge request open to fix guardrails only evaluating the last message, now using shared trait to scan all user messages [5][195].
AI (Artificial Intelligence)
The past 24 hours saw continued progress on infrastructure improvements, bug fixes, and new features across the AI module ecosystem.
A deterministic script was merged to auto-generate the provider/operation-type matrix directly from GitLab, replacing the previous manual maintenance process. A bug fix corrected ImageClassificationItem::getConfidenceScorePercentage(), which was typed as string but returned mixed float/string values, and also standardised type hints to lowercase null. The AI API Explorer skill name was updated to match its directory, addressing a compliance issue with the Agent Skills specification.
Work is underway on several fronts: a chatbot modal fix to prevent closure when CKEditor dialogs open, a new AI reranking processor for Search API consuming the existing rerank operation type, and batch embeddings being elevated to a first-class operation type. Guardrail plugins were refactored to consistently scan user messages across conversations using a shared trait. Functional tests for AI CKEditor were merged, improving test coverage. Several issues remain in review, including LLM document-text automator support for file fields, structured output for assistants to enable richer DeepChat responses, and improvements to the chatbot placement UI.
Open issues requiring attention include multiple bug reports around guardrail logic, CKEditor rendering with the Gin dark theme, access permission confusion between the chatbot API and assistants, and automator chain retention for debugging. Documentation updates are in progress to reflect recent API changes and new operation types.
How can I help on this project?
- Review the open merge request !1729 for the Add AI reranking processor for Search API feature, testing it against a real Search API index with a rerank-capable provider.
- Pick up the unassigned ai_ckeditor: Add option to show or hide the "AI Writer" status information issue, which has no related MR and would improve UX for editors who don't need persistent status text.
- Help test and review MR !1467 for Guardrail plugins only evaluate the last message, verifying that guardrails now correctly scan all user messages in multi-turn conversations.
Contributors: Abhisek Mazumdar (abhisekmazumdar), Ahmad Khalil (ahmad-khalil-imagex), Alphons Jaimon (AJV009), Anjali Prasannan (AnjaliPrasannan), Jan Kellermann (werk21), Joshua Fernandes (joshua1234511), Marcus Johansson (Marcus_Johansson) [1], Petar Bašić (petar_basic), Prabhavathi Vanipenta (prabha1997) [1], Ronald te Brake (ronaldtebrake) [1], Shubham Goel (shubhamgoel), velmir_taky (root_emarketing)
AI Integration - ECA
Activity on the AI Integration - ECA module during this period focused on planning improvements to the Chat action's structured output configuration. An issue was opened proposing to replace the plain-text JSON schema field with the AI module's dedicated '#type' => 'ai_json_schema' form element. The current implementation in src/Plugin/Action/Chat.php stores the schema as a raw JSON string that is decoded at runtime, making it difficult to validate during configuration and hard to inspect once saved. The Simplify structured output configuration in the Chat action issue proposes leveraging the form element provided by Drupal\ai\Element\AiJsonSchema to improve the user experience and reduce configuration errors.
No merge requests were opened or merged during this period, and no commits were pushed.
How can I help on this project?
- Pick up the structured output configuration task and create a patch that replaces the plain-text JSON schema field with the
ai_json_schemaform element type. - Test the existing Chat action with various JSON schemas to identify edge cases that should be handled in the refactor.
OpenAI Provider
A merge request to add support for batch embeddings was opened during this period, adding 285 lines of changes. The branch targets batched embedding functionality for the OpenAI provider.
No issues were updated, and no commits were pushed directly to the main branch in the past 24 hours.
How can I help on this project?
Review the open merge request for batch embeddings support to help move it toward merge. Test the implementation against OpenAI's batch embedding API and verify error handling and data structure compatibility.
Contributors: Paul Sheldrake (paulsheldrake)Anthropic Provider
Development this period focused on compatibility improvements and handling edge cases in chat conversations. The SDK version constraint was bumped to ^0.32 via Issue #3607715: Bump anthropic-ai/sdk composer constraint to ^0.32, which merged on 2026-07-01. This brings in the SDK 0.30 transport fix where streaming HTTP errors now surface as typed APIStatusException subclasses instead of the misleading APIConnectionException previously thrown.
Two merge requests remain open addressing a chat conversation validation issue: Anthropic rejects conversations ending with non-user messages, breaking AI Agents multi-agent handoff and Drupal Canvas AI. Both fix: #3607044 Append a trailing user message when a conversation ends with a non-user role (158 lines, overrides the chat() method) and Issue #3607044: Append trailing user turn (1.3.x native-SDK path) (85 lines, guards in buildMessageCreateParams()) append a minimal "Continue." user turn when needed.
Two additional MRs address configuration cleanup: Issue #3494529: Remove ai_external_moderation form gate removes the obsolete ai_external_moderation gate from provider settings, and Issue #3594706: Add Drupal 12 support to core_version_requirement declares Drupal 12 compatibility.
How can I help on this project?
Review the two competing approaches in MR 30 and MR 34 that fix trailing message validation and provide feedback on which implementation path should ship. Test the Drupal 12 compatibility changes in MR 33 against a Drupal 12 environment. Review the ai_external_moderation gate removal in MR 32.
Contributors: Carlos Ospina (camoa), Paul Smith (MrDaleSmith), project update bot (Project-Update-Bot), Rajab Natshah (RajabNatshah)
Gemini Provider
The Gemini Provider module saw progress on batch embeddings support during this period. The Add support for batch embeddings issue moved forward with updates to its merge request, which now leverages the Gemini client's batchEmbedContents method to handle multiple embeddings in a single request when EmbeddingsInput contains multiple items. The continuous integration configuration was also adjusted to load the required AI Core branch. The Support batch embeddings merge request remains open and awaiting review, with 392 lines of diff introducing the new functionality.
This enhancement builds on prior work in the AI module ecosystem and will improve efficiency when generating embeddings for multiple content items simultaneously.
How can I help on this project?
- Review the Support batch embeddings merge request to help move it toward merge, focusing on the batchEmbedContents implementation and edge case handling.
- Test the batch embeddings functionality with various input sizes to validate performance improvements and error handling.
Contributors: Artem Dmitriiev (a.dmitriiev)
Milvus VDB Provider
A new merge request was opened to add support for batching on indexing operations. The 297-line patch introduces batching capabilities for index operations in the Milvus vector database provider, which should improve performance when indexing large volumes of vectors. The merge request is currently awaiting review.
No merge requests were merged during this period, and no blocking issues were reported.
How can I help on this project?
- Review the open merge request for batching support on indexing operations to help move it toward merge
- Test the batching implementation with large datasets to validate performance improvements and identify edge cases
Contributors: Artem Dmitriiev (a.dmitriiev)
AI Agents
Activity over the past 24 hours focused on several open issues awaiting review. Work continues on restricting tool execution order during agent runs, with MR !252 open for review (1790 lines). This feature would allow configuration of per-tool ordering constraints, addressing cases where agents execute tools in illogical sequences.
Two bug fixes remain under review: handling exceptions in tool execute methods (MR !163) aims to prevent UI breakage in the Agent Explorer when tool definitions cause errors, and aligning the admin menu with AI 1.4.x categorization has reached RTBC status, proposing to move AI Agents configuration under the new "Tools & Automation" section.
A feature request to add caller agent runner ID to tags in determineSolvability() has an open MR (!238) that would help custom AiProvider implementations distinguish root agent loops from sub-agent executions. A new issue reports array-to-string conversion warnings in Token::doReplace() when dynamic token values are arrays during applyTokens operations.
How can I help on this project?
Review MR !252 for tool execution ordering constraints and test with various agent configurations. Help triage the Token array conversion warning, which currently has no patch. Test MR !163 for exception handling in the Agent Explorer UI.
Contributors: Alin Ameiroaie (aalin), Joshua Fernandes (joshua1234511), Jürgen Haas (jurgenhaas)Tool API
Two bugs affecting the tool_ai_connector submodule were opened during the reporting period. The first, `tool_ai_connector` doesn't maintain module dependencies, identifies that when an AI Agent uses a tool via tool_ai_connector, module dependencies are lost. For example, using the entity_save tool from tool_belt_content should list tool_belt_content as a dependency alongside tool_ai_connector, but currently does not.
The second issue, tool_ai_connector does not handle tools returning list of entities, reports that ToolPluginBase::getReadableOutput() assumes all entity type outputs are single entities. When a tool declares an output with data_type: 'entity' and multiple: TRUE, the method receives an array of entities rather than a single entity object, resulting in a fatal error. A merge request addressing this issue is under review.
No commits or merges occurred during the reporting period.
How can I help on this project?
- Review MR !96 which fixes the multiple entity handling bug in tool_ai_connector.
- Investigate and propose a solution for the module dependency tracking issue, which currently has no patch.
Contributors: Ajit Shinde (ajits)
Drupal Canvas
CI was unbroken after a bad upstream PHPStan or dead-code-detector release caused nightly failures. The fix was merged via MR !1325.
Two internal HTTP API hardening commits landed. The media upload endpoint and Canvas AI chat image upload were both improved to validate and sanitize inputs more strictly. These changes reduce the risk of invalid file handling in ApiMediaController and the AI chat flow.
Work continued on several translation and conflict-detection features. A draft MR now proposes storing each prop's translatability per component version, preventing config-defined component trees from becoming invalid when an optional prop is deleted from an SDC or code component. This touches ComponentInputsMapping validation logic. Separately, a fix for WSOD AssertionError in TMGMT translation job requests remains open for review, addressing assertion failures in ComponentInputsMapping when processing certain component trees.
Progress on conflict resolution includes expanded UI flows and backend endpoints. MR !1183 adds a side-by-side resolver with viewport selection, while MR !1194 adds API support for marking conflicts as resolved and fetching published entity layouts via ApiLayoutController::get(). Text-based YAML comparison UI and backend support via ApiContentAutoSaveControllers are in progress.
Several issues remain under active development. Component context required props missing required flag has an open MR addressing a regression in CanvasAiPageBuilderHelper::processSdc(). Work on removing the matches-everything Regex marker and deprecating JitSafeRegexValidator continues as a follow-up to the JIT stack limit fix. A PHPat-based rule to keep StagedLanguageConfigOverride type-agnostic is proposed in MR !1324.
Two new prop-related issues were opened: Add Code Component prop type for multiline plain text and SDCs with maxLength mapped to string, both highlighting gaps in prop schema handling.
How can I help on this project?
Review MR !1296 for the TMGMT WSOD fix, which is marked RTBC. Test MR !1328 addressing the required prop flag regression in processSdc(). Pick up multiline plain text prop type, which has no open MR yet.
Contributors: **** (project_19391_bot_cb443e60680723bba08a5351bf595251), Ben Mullins (bnjmnm), Christian Lopez Espinola [2], Christian López Espínola (penyaskito), Feliksas Mazeikis (f.mazeikis), Matt Glaman (mglaman), Narendra Singh Rathore (NarendraR), Prabhavathi Vanipenta (prabha1997), Ravi Maniyar (ravi.maniyar.123), Wim Leers (wimleers) [1]
Context Control Center (CCC)
Activity focused on accessibility cleanup and documentation corrections as the project moves toward rc1. An issue correcting project page paths was closed, fixing incorrect URLs in the Installation and Testing Steps section. Several accessibility-focused merge requests remain under review, including MR !199 exposing tooltip and icon content to assistive technology, MR !200 addressing interactive and external link patterns, MR !204 updating cacheability and access metadata, and MR !205 cleaning up form and table accessibility in AiContextAgentForm.php.
A new merge request MR !202 was opened to fix context prefix default alignment in AiContextSystemPromptSubscriber and correct stale getManageUrl() documentation in scope_api.md and custom_scopes.md to reference the actual getManageRoute() method. The subcontext scope inheritance issue has code and review complete, awaiting manual testing. Discussion continues around evaluating integration with the new Annotations module.
How can I help on this project?
- Review MR !205, MR !200, MR !204, or MR !202 to help advance accessibility and documentation cleanup toward rc1.
- Perform manual testing on MR !159 for subcontext scope override functionality, the final task blocking that issue.
Contributors: Joshua Fernandes (joshua1234511), Juan Correa (jucs7), Kristen Pol (kepol), Pravesh Poonia (Pravesh_Poonia)
AI Search
Development activity over the past 24 hours focused on query handling and indexing performance improvements. Work continued on Support nested keyword queries, which addresses an issue where keyword discovery only iterates surface-level conditions, missing keywords in nested query conditions. This particularly affects views using multiple fields in fulltext search filters with the boost processor. A merge request (!54) implementing keyword discovery in nested conditions remains under review.
A new merge request was opened for Resolve "Batch embeddings for improved indexing performance", introducing batch processing for embeddings to enhance indexing performance. The patch includes 733 lines of changes and is awaiting review.
No merges or commits were pushed during this period, indicating both initiatives are still in the review phase.
How can I help on this project?
Review the open merge requests for nested keyword query support and batch embeddings, testing them against your own search configurations and providing feedback on functionality and performance impacts.
Contributors: Artem Dmitriiev (a.dmitriiev), marios anagnostopoulos (MariosAnagnostopoulos)
Pinecone VDB Provider
Activity this period focused on support for Pinecone local deployments. Two merge requests were opened targeting this feature: Resolve #3586206 "Pinecone local" (522 diff lines) and Resolve "Add support for pinecone local". Both MRs address the same underlying issue and are awaiting review.
A new feature request was opened for Support batching on indexing operations, inspired by similar work in the Milvus VDB provider. This enhancement would improve performance when indexing multiple vectors. The issue is currently in needs review state with no associated merge request yet.
No commits were merged during this period, indicating that development work is in the review phase.
How can I help on this project?
- Review one of the two Pinecone local support merge requests (MR !30 or !34) to help move them toward merge.
- Pick up the batching on indexing operations feature request and implement batch support for the provider's indexing API.
Contributors: Scott Euser (scotteuser)
References
[1] Chatbot closes itself when adding a modal
[2] ai_ckeditor: Add option to show or hide the "AI Writer" status information
[4] Add an AI reranking processor for Search API (owned by the AI module)
[5] Guardrail plugins only evaluate the last message
[7] Batch embeddings for improved indexing performance
[178] Agent Skill 'create-ai-api-explorer' failed validation
[179] Add Functional Tests for AI CKEditor
[192] Add a deterministic script to auto-generate the providers/operation-types matrix from GitLab
[193] Issue #3499451: Fixed chatbot not reopening after CKEditor/media modal closes.
[194] Issue #3586543: Add AI reranking processor for Search API.
[195] Resolve #3579088 "Guardrail plugins only"
[196] Issue #3568648: Batch embeddings as a first-class operation type (follow-up to !1704)
[202] Update the Ai API Explorer Skill name, matching the directory as per Agent Skills specification
[203] Issue #3477173: Add functional tests for AI CKEditor
[207] add support for batch embeddings
[214] Issue #3607715: Bump anthropic-ai/sdk composer constraint to ^0.32
[216] Support batch embeddings
[217] add support for batching on indexing operations
[244] Unbreak CI due to bad upstream release in PHPStan or `shipmonk/dead-code-detector`
[269] Resolve "Unbreak CI due to bad upstream release in PHPStan or `shipmonk/dead-code-detector`"
[290] Resolve "Batch embeddings for improved indexing performance"