Daily Digest
Daily Digest – 4 June 2026
2026 Capabilities Progress
- Page generation — Canvas continues building foundations with component data model improvements [129] and infrastructure for finding commonalities in property expressions [160], which will help AI understand and reuse design patterns. The Canvas AI orchestration proof-of-concept [148] represents early exploration of client-side page generation workflows.
- Context management — Significant progress as Context Control Center advances toward release candidate with a redesigned listing interface showing status labels and token usage indicators [187], plus architectural improvements for extensibility [185] and performance [186]. Active discussions are shaping product direction on navigation placement [178], content types [179], and structured formats [182].
- Background agents — Core AI module delivered critical automator reliability improvements, preventing duplicate queue items when entities are saved multiple times [71][90] and fixing configuration forms [86]. Field Widget Actions progressed on automatic execution capabilities [59][194][195]. AI Agents resolved data handling bugs affecting tool reliability [119][120]. Next milestone: completing the agent runner restructure for config entities [16].
- Design system integration — Canvas merged improvements for component eligibility management, ensuring components re-enable properly when compatibility issues resolve [130][163]. The Drush audit command for components is under review [128][158]. Component validation and schema checking infrastructure advanced [125][127][139]. Risk: complex Canvas CLI integration work [147] remains in draft.
- Content creation and discovery — AI Search addressed compatibility with AI Core 2.x [188][192] and continues work on batch indexing performance for large content volumes [191]. CKEditor gained event hooks for context injection [49], and interactive refinement capability is now available in Field Widget Actions [59]. The new Extractive Question Answering operation [75][96] expands search capabilities with precise answer extraction.
- Advanced governance — Canvas made substantial progress on conflict detection and resolution, with merge requests addressing autosave conflict handling [131][159] and selective publishing workflows [161][162]. Translation deletion routes merged [145][175], and language selection UI completed [146][173]. Branch-based versioning work continues with symmetric translation support [140][156]. Next milestone: completing the conflict resolution UI integration.
- Intelligent website improvements — AI Core added usage reporting infrastructure [11] and improved logging/summarization for AI requests [25]. Canvas established AI contributor guidelines with quality standards for LLM-assisted development [133][167]. Performance monitoring improved with better caching [126][154] and request tracking. Risk: no direct evidence of performance-based learning or automated improvement proposals in today's activity.
- Multi-channel campaigns — AI Integration ECA expanded dramatically with nine new actions covering multimedia transformation (text-to-image, image-to-video, audio processing) and translation [104][105][106][107][108][109][110][111][112], enabling automated multi-format content workflows. FlowDrop introduced Tool Box for sharing capabilities across workflow components and added synchronous/asynchronous execution options [196]. Next milestone: merging the ECA expansion for 1.0.0 release.
Shipped
- AI module added Extractive Question Answering capability — The module now supports precise answer extraction with confidence scores, expanding search and question-answering use cases [75][96].
- AI Automators now prevent duplicate queue processing — Entities saved multiple times before cron no longer trigger redundant API calls, reducing costs and improving reliability [71][90].
- Guardrails documentation restructured into individual pages — The single long reference guide was split into separate pages per guardrail, improving navigation and usability [62][83].
- ECA integration expanded with nine new AI operation actions — Users can now automate workflows for image generation, translation, classification, object detection, and media transformation [104][105][106][107][108][109][110][111][112].
- Canvas translation deletion routes completed — Editors can now remove individual language translations while preserving source content [145][175].
Ongoing
- Symfony AI evaluation research underway for AI 2.x architecture — Team is conducting hands-on assessment and mapping current abstraction layers to Symfony AI framework to inform migration decisions [26][27][28][29].
- AI Context listing redesign under review — New interface with clearer status labels and token usage indicators awaits code review before release candidate [184][187].
- Canvas conflict resolution UI in development — Work continues on handling autosave conflicts during publishing, with multiple merge requests active [131][153][159][161][162].
- OpenAI Provider token limit compatibility fix merged — Changes address newer model requirements and are awaiting final deployment [113][114].
- Field Widget Actions automatic trigger feature under review — 300-line merge request enables actions to run without manual clicks when conditions are met [194][195].
AI (Artificial Intelligence)
The AI module saw focused progress on core infrastructure, developer experience, and preparing the foundation for 2.x architectural improvements. The past 24 hours delivered several important stability and capability enhancements across the core module, automators, and guardrails subsystems.
A new Extractive Question Answering operation type was merged, allowing providers to return precise answer spans with confidence scores from a given context passage. This expands the module's capabilities for search and question-answering use cases. Work also completed on normalizing file APIs across providers, giving the platform a unified interface for uploading files to provider services for inference, fine-tuning, and vector search.
On the user experience front, the Queue/Cron automator worker now prevents duplicate processing when entities are saved multiple times before cron runs, reducing redundant API calls and improving predictability. Site builders gain a new opt-in checkbox to override this behaviour when needed. The MDXEditor can now be enabled on plain text fields through the widget settings UI, eliminating the need for custom code. UI consistency improved across automators with standardized Title Case naming, and a fix ensures the agent loop now correctly invokes response interceptors on every iteration, restoring extensibility for contributed modules.
Documentation was restructured: the single long guardrails page was split into a multi-page section with individual guides for each built-in guardrail, making reference material easier to navigate. Several new issues opened to refine the guardrail developer experience, including declaring supported modes per plugin and opt-in logging when a topic is restricted.
Planning work advanced for the 2.x release. Issues were created to evaluate Symfony AI hands-on and map core abstractions—provider layer, vector database layer, and AI Agents—to the Symfony AI framework. These research tasks are critical preconditions for any migration decision. Additional 2.x issues outline moving automators to the new provider configuration element and structured output, both API-breaking changes reserved for the major version bump.
A small number of bugs and UX refinements remain open but assigned, including a Gemini 2.x streaming incompatibility and form issues in CKEditor prompt creation. No blocking regressions were reported.
How can I help on this project?
- Prioritize resourcing for the Symfony AI evaluation research underway. The module needs practical, hands-on assessment of Symfony AI capabilities to inform the 2.x architecture decision; dedicated time from experienced contributors will accelerate this critical milestone.
- Advocate for broader stakeholder testing of the new guardrail and automator queue deduplication features now in 1.4.x before wider rollout, ensuring edge cases are surfaced early.
Drupal AI Initiative
The Drupal AI Initiative is preparing for the Enterprise AI Summit in Rotterdam, a curated industry showcase designed to present real-world Drupal AI success stories to business decision-makers. This event, taking place aboard the SS Rotterdam, is positioned as a landmark occasion distinct from developer-focused conferences.
During the reporting period, work continued on establishing the Look and feel for Enterprise AI Summit Rotterdam. The issue has been accepted and assigned to wouters_f (wouters_frederik) and Scott Lawrence (slawrence10), with Paul Johnson (pdjohnson) leading coordination. The work has been migrated to a dedicated marketing workstream, reflecting the strategic importance of creating a cohesive visual identity that will support marketing across multiple channels and reinforce the summit's positioning as a premium industry event.
This initiative represents a significant step in bringing Drupal's AI capabilities to enterprise leadership audiences, helping to demonstrate the platform's readiness for production AI use cases.
How can I help on this project?
- Ensure the summit marketing team has sufficient budget and creative resources to deliver a visual identity that matches the event's premium positioning.
- Support outreach efforts to secure high-profile speakers and enterprise case studies that will resonate with the target executive audience.
AI Integration - ECA
The module saw strategic planning activity this week as part of its journey toward a stable 1.0.0 release. Marcus Johansson (Marcus_Johansson) opened eight issues to expand the module's capabilities, enabling automated workflows to access a broader range of AI operations. These additions will allow users to build automated processes for multimedia tasks including generating images from text, translating content, classifying images, detecting objects, and transforming media between formats (audio, image, and video).
Currently, the module supports five basic AI operations. The new work, tracked under a single merge request covering all nine new actions, will more than triple that capability. This expansion is significant for organizations looking to automate content workflows involving multimedia and translation, areas where manual processing is time-intensive.
All issues are part of the AI Initiative Sprint and are clearly scoped as tasks toward the 1.0.0 milestone. The merge request is open and under active development, representing a substantial delivery of approximately 2,300 lines of new functionality.
How can I help on this project?
- Prioritize code review resources to assess the open merge request, which represents a significant expansion of module capabilities needed for the 1.0.0 release.
- Identify pilot users or teams who could benefit from automated multimedia workflows to provide early feedback once these capabilities are merged.
OpenAI Provider
The OpenAI Provider module saw targeted maintenance work during this period. Artem Dmitriiev (a.dmitriiev) completed and merged a fix addressing compatibility with newer AI models that handle token limits differently than earlier versions. This update ensures the module can work correctly with the latest model offerings, preventing potential failures when users interact with AI-powered features.
The work was completed through two merge requests that resolved Issue #3593313: Fix unsupport max_tokens parameter, improving the module's ability to adapt to evolving OpenAI service specifications. This kind of maintenance keeps the integration functional as the underlying AI services change over time.
How can I help on this project?
- Review the module's roadmap to determine whether additional developer resources are needed to address other compatibility or feature gaps.
- Ensure the team has access to current documentation and testing accounts for new AI model releases to catch compatibility issues early.
Gemini Provider
The Gemini Provider module enables Drupal sites to integrate with Google's Gemini AI service. During this reporting period, one new issue was opened focused on enhancing the module's functionality.
Artem Dmitriiev (a.dmitriiev) opened Implement getSupportedCapabilities method in Provider class, which addresses a gap in how the module communicates what it can do to other parts of the system. Currently, the Gemini provider does not properly declare its capabilities, which will become important as new validation checks are added to the broader AI framework. This work will ensure the module can correctly advertise its features, allowing site builders to understand what functionality is available and ensuring compatibility with upcoming quality controls in the AI infrastructure.
No code changes were merged or committed during this period. The issue remains unassigned and represents normal development activity for a module in active development under the AI Initiative.
How can I help on this project?
- Assign development resources to implement the capabilities feature, as the issue currently has no owner.
- Ensure the team has clarity on which Gemini capabilities should be prioritized for exposure in the initial implementation.
Postgres VDB Provider
The Postgres VDB Provider module saw one significant development this period. A merge request was opened to reduce schema bloat, authored by Edward Zwart (ezeedub). This work addresses efficiency in how the module stores data, which will help the system scale better and reduce storage costs over time. The change is substantial, with over 1,600 lines modified, indicating a meaningful refactoring of the underlying data structure.
This optimization work suggests the module is maturing beyond initial functionality toward production readiness. Leaner data storage means lower infrastructure costs and better performance as usage grows.
How can I help on this project?
- Prioritize code review resources to evaluate and merge the schema optimization work, ensuring it progresses toward production deployment.
- Consider allocating testing resources to validate the changes under realistic workloads before release.
Model Context Protocol
The Model Context Protocol module saw focused bug resolution activity in the past 24 hours. A developer identified and is addressing an issue with Token Auth is not working, which prevents administrators from enabling token-based authentication through the module's configuration interface. The problem affects the user experience in the admin panel, where clicking the enable checkbox does not produce the expected result. Alin Ameiroaie (aalin) has submitted a fix through merge request !52, which is currently under review.
This represents normal maintenance activity for a module in active development. The quick turnaround from bug identification to proposed solution indicates responsive development practices. Once the fix is reviewed and merged, administrators will be able to configure token authentication without manual workarounds.
How can I help on this project?
- Ensure the open merge request receives timely code review to unblock the authentication fix
- Consider whether dedicated testing resources could help identify similar configuration issues before they reach users
AI Agents
The AI Agents module made progress on data handling reliability during this period. A bug was identified and resolved where hidden tool properties with forced values were not being converted to their correct data types. This meant that tools expecting structured data (such as entity references, lists, or structured formats) would receive incompatible raw values instead, causing them to fail.
AKHIL BABU (AkhilBabu) developed and merged a fix ensuring forced values are properly converted before reaching tools. This work was completed as part of the AI Initiative Sprint and closes hide_property skips data-type conversion for forced values, breaking non-scalar context types. The change improves the stability of agent tools that rely on complex data structures, reducing potential failures in automated workflows.
How can I help on this project?
- Ensure the team has adequate resources for testing edge cases in data handling, particularly for tools using entity references and structured formats.
- Support prioritization decisions around remaining sprint work to keep momentum on the AI Initiative.
Tool API
The Tool API project saw activity on three fronts during the reporting period, with two new issues opened and progress made on integrating the module with AI-driven systems.
Marcus Johansson submitted a solution to Add contextdefinitionoverrides to the ToolPluginBase, which addresses a compatibility issue affecting the AI module. This work ensures that tools can be properly instantiated and reused across different AI workflows without conflict. A merge request is now under review.
Stephan Huber (stmh) identified a bug in MapDefinitionNormalizer and ContextDefinitionNormalizer break REST serialization, which affects sites using REST endpoints to expose content. When the Tool module is enabled, certain serialization processes fail. This impacts any system relying on programmatic content delivery via REST.
Work continues on File Input Handling, a research effort exploring how AI agents can securely accept and process file inputs through the Tool API. This foundational work will inform future capabilities around file-based automation.
How can I help on this project?
- Assign technical resources to investigate and resolve the REST serialization bug, which affects production integrations.
- Prioritize code review for the pending merge request to unblock AI module compatibility.
- Allocate research time for file handling security review before implementation decisions are finalized.
Drupal Canvas
Canvas made significant progress on stability, translation workflows, and developer experience this period. The team resolved a critical validation bug affecting blocks without default label display values that was breaking Drupal CMS integration. Infrastructure work advanced the data model, adding support for finding commonalities in scalar property expressions to improve developer experience when working with code components.
Translation capabilities expanded with the completion of backend routes enabling deletion of individual translations for Canvas pages and content templates, preserving source content while allowing selective removal of translated versions. The language selection interface merged, giving editors a dropdown to choose languages and manage translation workflows within the Canvas editor. Work continues on preventing editors from creating pages directly in non-default languages, ensuring translations flow properly from source content.
Component maintenance improved as the system now properly clears incompatibility reasons and re-enables components when underlying issues are resolved, eliminating scenarios where fixed components remained incorrectly disabled. The team also introduced contributor guidelines for responsible AI tool usage, establishing quality standards for LLM-assisted development. Several test reliability fixes merged, including resolution of flaky Cypress tests around date and time input widgets.
How can I help on this project?
- Consider prioritizing resources for conflict resolution work, which has active merge requests but involves complex autosave and publishing scenarios that may benefit from dedicated review time.
- Support the developer experience initiative around DDEV integration, which aims to streamline onboarding for new contributors but appears stalled at draft stage.
Context Control Center (CCC)
The project is making strong progress toward a release candidate, with active work on both user-facing improvements and architectural stability. The team is polishing the core experience while laying groundwork for future extensibility.
The most significant visible change is a redesign of the context listing page, now under review. This work simplifies how context items are displayed and introduces clearer status labeling (Draft, Published, Archived) to help users understand what content is active. The redesign also includes token usage indicators with visual warnings when limits are approached, making resource management more transparent.
Behind the scenes, two important architectural improvements are in review. One adds extension points for other modules to customize how context is selected without depending on internal implementation details. Another improves performance and caching when the system determines which context applies to a given page or situation.
The team is also discussing several product direction questions: where the Context Control Center should appear in navigation, whether multiple content types are needed, and how structured content formats should work. These conversations will shape usability and future capabilities.
How can I help on this project?
- Prioritize closure on the open product design questions around navigation placement, content types, and structured formats so development can proceed with confidence.
- Ensure code review capacity is available for the pending listing redesign and architectural improvements currently awaiting feedback.
AI Search
The AI Search module saw progress on quality and compatibility improvements over the past 24 hours. The team closed two maintenance issues: project documentation was corrected to fix a broken link to the MariaDB provider, and GitLab templates were added to improve development workflow. These changes support better discoverability and onboarding for teams adopting the module.
Two active workstreams are underway to address compatibility with the latest AI Core platform. The first involves updating the 2.x branch to work correctly with recent changes in AI Core, specifically addressing test failures. Anikó Viola (violaniko) has submitted a merge request that fixes errors occurring when the system attempts operations before a vector database is selected. The second effort focuses on improving indexing performance for large content volumes in the 1.x branch, with Scott Euser (scotteuser) leading the work.
These efforts ensure the module remains compatible with evolving platform dependencies and can handle production-scale content volumes—both critical for organizations relying on AI-powered search capabilities.
How can I help on this project?
- Allocate testing resources to validate the 2.x compatibility fixes once merged, ensuring smooth deployment for teams using AI Core 2.x.
- Provide feedback on indexing performance requirements to inform the 1.x scalability work in progress.
Field Widget Actions
The Field Widget Actions module saw continued development on a new feature that would improve user efficiency. Work progressed on Allow Automatic Field Widget Action, which aims to eliminate unnecessary clicks for users. Currently, users must manually trigger actions even when the system knows what needs to be done. The proposed enhancement would let administrators configure certain actions to run automatically when conditions are met, streamlining workflows and reducing repetitive tasks.
Ahmad Khader (Ahmad-Khader) has an open merge request with over 300 lines of changes ready for review. This feature is part of the AI Initiative Sprint and AI Product Development efforts, suggesting it may support intelligent automation scenarios where the system can predict user intent.
The work represents progress toward making the module more efficient for end users, potentially reducing training time and improving productivity for teams that rely on repetitive field interactions.
How can I help on this project?
- Prioritize code review resources to evaluate the 300+ line merge request so the automatic action feature can move forward.
- Clarify whether this automation feature aligns with broader organizational goals around AI-driven workflows and user experience strategy.
FlowDrop
FlowDrop made significant progress this week on consolidating its workflow execution architecture and improving how human approval workflows are handled. The team delivered 40 commits over 24 hours, focused on three strategic areas.
First, the project deprecated an older human-approval mechanism that was non-functional in production (approval requests were lost between sessions). A new issue was opened to track the formal deprecation, and the underlying work was completed, directing users to a more robust human-in-the-loop system that properly persists approval requests.
Second, the team introduced a Tool Box feature that allows multiple workflow components to share a common set of capabilities, reducing duplication and simplifying configuration for users building complex automation.
Third, FlowDrop now supports choosing between synchronous and asynchronous workflow execution, giving administrators flexibility to run quick tasks immediately or defer longer processes to background jobs. The session management layer was enhanced to better track conversation turns and pause points, improving reliability for chatbot and interactive use cases.
Contributors Shibin Das (D34dMan) delivered all commits during this period, including fixes to workflow checkpointing, budget enforcement, and execution routing.
How can I help on this project?
- Review whether the newly deprecated approval mechanism is in use by any current implementations and plan migration support if needed.
- Consider allocating additional testing resources to validate the new synchronous execution option under production load conditions.
References
[11] Provide AI usage reports in Drupal admin panel
[16] Recreate AI Agents runner, but only for config entities
[25] Improve summarizer for AI request input and output data for logs and spans
[26] Hands-on exploration and evaluation of Symfony AI capabilities
[27] Research and draft first mapping Drupal AI abstraction layer to Symfony AI Platform
[28] Research and draft first mapping Drupal AI vector database layer to Symfony AI Store
[29] [Sprint5] Research and draft first mapping Drupal AI Agents to Symfony AI Agents (including chat)
[49] Add event hook to ai_ckeditor to allow context injection
[59] Add interactive refinement capability to Field Widget Actions
[62] Split the Guardrails documentation into a section with a page per guardrail (1.4.x)
[71] AI Automators Queue/Cron: prevent duplicate queue items when entity is saved multiple times
[75] Add Extractive Question Answering operation type
[83] Issue #3586490: Split the Guardrails documentation into a section with a page per guardrail
[86] Issue #3558728: Fix AI Automator form break when bundle has no fields
[90] feat: #3586481 Prevent duplicate Queue/Cron items when entity is saved multiple times
[96] Resolve #3584371 "Add extractive question"
[104] Add ECA execute action for Text to Image
[105] Add ECA execute action for Audio to Audio
[106] Add ECA execute action for Speech to Speech
[107] Add ECA execute action for Image to Video
[108] Add ECA execute action for Image to Image
[109] Add ECA execute action for Translate Text
[110] Add ECA execute action for Image Classification
[111] Add ECA execute action for Object Detection
[112] Resolve "9 different new actions"
[113] Issue #3593313: Fix unsupport max_tokens parameter
[114] Issue #3593313: Fix unsupport max_tokens parameter
[120] Convert tool arguments to corresponding datatype when hide property is enabled.
[125] Block validation is broken for any block without a default value for `label_display`
[126] Use VariationCache for getAllComponentsKeyedBySource() cache context handling
[128] Provide a Drush command to audit components
[129] Add infrastructure to support finding commonalities in a set of scalar prop expressions
[130] removeReason, updateReasons are never called when a component becomes more compatible
[131] Detect conflicts for Page entities during the handling of auto-saves/pending calls
[133] Introduce LLM guardrails to nudge Canvas contributors' AI use towards higher quality
[145] Create Routes for Deleting Translations
[146] Implement Language Selection and Translation UI Features
[147] Allow Canvas CLI pushes when a page has auto-save data
[148] Canvas AI: Client-side orchestration loop for Canvas AI(POC)
[153] Draft: fix(Conflict detection): Exclude computed internal fields from Page entity normalization
[154] Issue #3573571: Use VariationCache for getAllComponentsKeyedBySource() cache context handling
[156] Draft: Resolve #3583684 "Symmetric content inputs"
[158] feat(Drush): #3585531 Add commands to list, audit, and generate Canvas components
[159] fix(Conflict detection): account for pre-existing auto-save items
[161] Draft: feat(conflict): Add conflict resolution UI with viewport selection and route integration
[162] Add conflict detection and resolution UI for selective publishing
[163] fix(Component sources): clear reasons and re-enable when component becomes eligible
[167] Resolve #3591583 "Agents.md"
[173] #3591459: Implement Language Selection and Translation UI Features
[175] Resolve "Create Route for Delete Translation"
[178] [Discuss] "Context Control Center" at top-level of admin menu?
[179] [Discuss] Context item content entity bundles
[182] [Discuss] Structured context content format and authoring model
[184] Update context listing page per new design
[185] Issue #3586162: Add post_select and post_render selection events.
[186] Issue #3586157: Improve selection performance.
[187] Issue #3586219: Update context listing page per new design
[188] Fix 2.x branch integration with AI 2.x now that Symfony Platform is integrated
[191] #3584014: Resolve "Attempt long running chunk indexing for 1.x branch without BC"
[192] Issue #3584015: Fix 2.x branch integration with AI 2.x
[194] Allow Automatic Field Widget Action
Shipped
- AI module: MDXEditor UI toggle for plain text fields — Merged MR enabling site builders to activate MDXEditor on plain text field widgets via configuration toggle[70][89].
- AI module: Duplicate queue item prevention for AI Automators — Merged deduplication logic preventing duplicate queue items when entities are saved multiple times before cron runs, with optional override checkbox[71][90].
- AI module: Extractive Question Answering operation type — New operation type added to core AI module for extractive QA workflows[75][96].
- AI module: File module dependency declared — Fixed missing dependency by adding core file module requirement to ai.info.yml, preventing fatal errors when AiFile is used[73][93].
- AI module: Agent response interception fix — Resolved issue where agent loop responses bypassed responseInterceptor and deduplicated step-message wrapping logic[79][101].
Ongoing
- AI module: RestrictToTopic guardrail semantic matching — MR under review adding semantic topic matching mode to RestrictToTopic guardrail alongside existing keyword matching[51][84].
- AI module: Persistent anonymous conversation history — Feature request proposing UUID-based cookie system to preserve chat sessions for anonymous users across reverse-proxy environments[1].
- Canvas: Translation data loss on publish via auto-save API — Critical bug where publishing canvas_page through auto-save API drops all non-default-language translations, blocking multilingual workflows[142].
- Canvas: 409 conflict errors on non-English monolingual sites — Autosave triggering repeated conflict errors in 1.5.0 on non-English monolingual configurations, under investigation[132].
- Tool API: REST serialization conflict with normalizers — MapDefinitionNormalizer and ContextDefinitionNormalizer breaking REST endpoint serialization when Tool module is enabled[121].
AI (Artificial Intelligence)
The AI module saw steady progress over the past 24 hours, with six merge requests committed and several new feature issues opened.
Artem Dmitriiev (a.dmitriiev) merged MR !1588, adding a UI toggle to enable MDXEditor on plain text field widgets. Christoph Breidert (breidert) landed MR !1631, which prevents duplicate queue items when entities using the Queue/Cron automator worker are saved multiple times before cron runs; a new "Re-queue on each save" checkbox allows site builders to override the deduplication behavior. Ahmad Khader (Ahmad-Khader) merged MR !1481, introducing a new Extractive Question Answering operation type. Marcus Johansson (Marcus_Johansson) fixed a missing dependency by merging MR !1639, which declares the core file module as required in ai.info.yml. Tim Bozeman (boze) resolved an issue where agent loop responses bypassed the responseInterceptor, deduplicated step-message wrapping logic, and ensured contributed modules can reliably extend response handling. Bryan Sharpe (b_sharpe) cherry-picked file API normalization work into the 1.4.x branch via MR !1618. Avinash jha (avinash.jha) merged MR !1642, splitting the single guardrails.md doc into a section with a page per guardrail for 1.4.x.
Newly opened issues include Feature Request: Persistent Conversation History for Anonymous Users, proposing a UUID-based cookie to survive reverse-proxy session stripping; Add a deterministic script to auto-generate the providers/operation-types matrix from GitLab, which would discover provider plugins and regenerate the matrix automatically; and Add rich-text image description support to AI Automators, enabling automations to process embedded images in formatted text fields. Several issues address guardrail improvements, including adding a "During generate" section to the Guardrail Set form and semantic topic matching for RestrictToTopic.
Open merge requests under review include MR !1621 (Use ai_provider_configuration form element in RestrictToTopic), MR !1553 (Add kernel test for StreamableGuardrailInterface mid-stream buffering), and MR !1632 (Fix ai_prompt form element in nested forms).
How can I help on this project?
- Review MR !1621 for Use ai_provider_configuration form element in RestrictToTopic configuration form, which refactors the old AiProviderFormHelper usage.
- Review MR !1632 for "Create new prompt" button doesn't work in CKEditor plugin configuration, fixing a fatal error in nested forms.
- Pick up unassigned issues like Persistent Conversation History for Anonymous Users or deterministic provider/operation-type matrix script, both of which have no related MRs.
Drupal AI Initiative
Activity in the Drupal AI Initiative remained quiet over the past 24 hours, with no merge requests or commits landed during the reporting period. The primary update was organizational: the Look and feel for Enterprise AI Summit Rotterdam issue was migrated to a dedicated marketing repository (ai_initiative_marketing#19), reflecting the separation of event branding work from core initiative development. This issue, assigned to wouters_f (wouters_frederik) and Scott Lawrence (slawrence10), focuses on establishing visual identity for the Enterprise AI Summit aboard the SS Rotterdam—a curated industry showcase distinct from traditional DrupalCon events.
With no technical changes merged or blocking issues surfaced during this period, development appears to be in a planning or stabilization phase. Contributors interested in the marketing and event aspects should follow activity in the ai_initiative_marketing project going forward.
How can I help on this project?
Review open merge requests in the ai_initiative queue to provide feedback and help move technical work forward. Check the issue queue for unassigned technical issues that need implementation. If you have event or AI industry connections, coordinate with the marketing team on the Enterprise AI Summit.
AI Integration - ECA
Activity this period focused on planning nine new ECA action plugins to support additional AI operation types. Marcus Johansson (Marcus_Johansson) opened issues for Audio to Audio, Image Classification, Image to Image, Image to Video, Object Detection, Speech to Speech, Text to Image, and Translate Text. Each will add a new action plugin extending AiConfigActionBase, following the pattern established by existing Chat, Embedding, and Moderation actions in the Plugin/Action directory.
A single merge request covering all nine actions is currently open for review, containing 2,296 lines of changes. The work is tagged for the Road to 1.0.0 and AI Initiative Sprint. No merges occurred during this period, leaving the review as the current blocker for progress.
How can I help on this project?
- Review MR !9 which implements all nine new ECA action plugins, testing each operation type integration and verifying the plugins follow established patterns.
- Test the new action plugins with real AI providers to confirm proper Input class construction and response handling across different operation types.
OpenAI Provider
The OpenAI Provider module saw focused maintenance activity during the reporting period. Artem Dmitriiev (a.dmitriiev) merged two related merge requests addressing an unsupported parameter issue with certain OpenAI models. The Fix unsupport max_tokens parameter MR and its cherry-pick equivalent were both merged on June 4th, resolving issue #3593313. The fix addresses handling of the max_tokens parameter for models like o4-mini that do not support this configuration option. The changes span 15 lines of diff and include updated comments to properly reflect o4 model behavior.
How can I help on this project?
With no open issues or merge requests currently pending in the tracking data, consider testing the recently merged max_tokens parameter fix with various OpenAI model configurations to ensure compatibility. You could also review the module's issue queue for any untracked bugs or feature requests that need triage.
Gemini Provider
The Gemini Provider module saw no code merged in the past 24 hours, but an important feature request was opened. The Implement getSupportedCapabilities method in Provider class issue was created by Artem Dmitriiev (a.dmitriiev) to address a gap in the provider's implementation. The issue highlights that while the AiProviderInterface defines a getSupportedCapabilities() method, the Gemini provider currently returns an empty array from its base class implementation rather than declaring its actual capabilities. This becomes critical as the AI module is adding capability checking in a related issue, which means the Gemini provider won't properly expose what it can do unless this method is implemented correctly.
The issue is tagged with AI Initiative Sprint and AI Product Development labels, indicating it's part of the broader AI module ecosystem development. Currently unassigned with no merge requests submitted, this represents an open opportunity for contributors familiar with the Gemini API capabilities.
How can I help on this project?
- Pick up the getSupportedCapabilities implementation issue and submit a patch defining which AI capabilities the Gemini provider supports.
- Review the related AI module capability checking to understand the expected capability format and values.
Postgres VDB Provider
A new merge request was opened during the reporting period by Edward Zwart (ezeedub) to address schema bloat concerns. The Resolve #3576852 "Reduce schema bloat" MR contains 1647 lines of diff and is currently awaiting review. No commits were pushed or merged in the last 24 hours, indicating the module is in a review phase for this substantial schema optimization work.
How can I help on this project?
- Review the Reduce schema bloat merge request, which contains significant changes (1647 lines) and could benefit from technical feedback on the schema modifications.
- Test the MR against your own Postgres vector database configurations to validate the schema changes work across different deployment scenarios.
Model Context Protocol
The Model Context Protocol module saw focused bug fixing activity over the past 24 hours. Alin Ameiroaie (aalin) opened MR !52 to address the Token Auth is not working issue. The bug involves two problems: incorrect #states selector preventing the "Enable Token Auth" checkbox from working in the admin UI at /admin/config/mcp, and authentication failing even when manually configured. The fix corrects the selector from ':input[name="enable_token_auth"]' to ':input[name="auth_settings[enable_token_auth]"]' to properly show the token_with_generation field. The MR contains 78 lines of changes and is currently awaiting review.
No merge requests were merged and no commits were pushed during this reporting period, indicating the module is in a review phase for this authentication fix.
How can I help on this project?
AI Agents
The AI Agents module saw a bug fix merge during the reporting period addressing data type conversion issues. AKHIL BABU (AkhilBabu) merged MR !270 on 2026-06-04, which resolves hide_property skips data-type conversion for forced values, breaking non-scalar context types. The issue occurred when tool properties had both force_value and hide_property enabled, causing forced values to reach tools as raw scalars rather than being converted to their proper data types. This broke properties expecting non-scalar values such as entity types, lists, JSON, and YAML. The fix modifies AiAgentEntityWrapper::applyToolUsageLimitsToContext to ensure proper type conversion. The merge request included 317 lines of changes and the commit was pushed on 2026-06-04.
How can I help on this project?
Check the AI Agents issue queue for unassigned bugs or feature requests without existing merge requests. Test the recently merged data type conversion fix with complex tool properties to verify edge cases. Contribute documentation for the hide_property and force_value functionality based on the recent fix.
Tool API
Activity over the past 24 hours focused on bug reports and feature discussions. Marcus Johansson opened Add contextdefinitionoverrides to the ToolPluginBase addressing a regression where the AI module's OverridableFunctionCallInterface stopped working after Tool API overrode getContextDefinitions. An MR !89 has been submitted implementing contextDefinitionOverrides in both getContextDefinitions and getContextDefinition methods of ToolPluginBase.
Stephan Huber (stmh) reported MapDefinitionNormalizer and ContextDefinitionNormalizer break REST serialization, describing how enabling Tool module causes REST endpoint serialization to fail when normalize() is called on entities. This appears related to normalizer conflicts with core REST serialization.
Discussion continued on File Input Handling, an ongoing research task exploring how Tools should securely accept and process file inputs from AI agents, including input formats, file loading, and normalization approaches.
No merge requests were merged during this period.
How can I help on this project?
- Review MR !89 for the contextDefinitionOverrides implementation and test against AI module integration scenarios.
- Investigate the REST serialization bug reported in issue 3582939 and help identify the normalizer conflict.
Drupal Canvas
The past 24 hours saw several critical bug fixes and infrastructure improvements merged to Canvas. Christian López Espínola (penyaskito) landed a large data model enhancement in Add infrastructure to support finding commonalities in a set of scalar prop expressions, introducing 1,294 lines of generic infrastructure for combining scalar PropExpressions. This work, extracted from an earlier MR, improves DX by folding overlapping expressions into cleaner structures like FieldObjectPropsExpression and ReferencedBundleSpecificBranches.
Pamela Barone (pameeela) fixed a critical regression in Block validation is broken for any block without a default value for label_display, correcting a validation error that was breaking Drupal CMS CI. Matt Glaman (mglaman) resolved removeReason, updateReasons are never called when a component becomes more compatible, ensuring components automatically re-enable when eligibility issues are fixed. The fix now clears auto-disable reasons during generation while respecting manually-disabled components.
Additional merges included Wim Leers (wimleers) introducing LLM guardrails to nudge Canvas contributors' AI use towards higher quality via an AGENTS.md file, Prabhavathi Vanipenta (prabha1997) updating Canvas AI agent configs after upstream changes, Chandan Singh (chandu7929) creating translation deletion routes, and Christian López Espínola fixing a flaky Cypress test in prop-types.cy.js.
Several critical issues remain open and active. Autosave triggers repeated 409 conflict errors on non-English monolingual sites is blocking editors on 1.5.0, with Feliksas Mazeikis (f.mazeikis) investigating. Ted Bowman (tedbow) is addressing Publishing a canvas_page via auto-save API drops all non-default-language translations, where the auto-save snapshot only captures single translations. Multiple MRs for conflict detection infrastructure remain in progress, including MR !1202 and !1199 on Detect conflicts for Page entities during the handling of auto-saves/pending calls.
How can I help on this project?
Review MR !606 which refactors getAllComponentsKeyedBySource() to use VariationCache instead of manual cache handling. Help test Autosave triggers repeated 409 conflict errors on non-English monolingual sites on a non-English monolingual site to reproduce the issue. Pick up Extend upstream core's ConfigSchemaChecker, which needs implementation and has no assigned developer.
Context Control Center (CCC)
The past 24 hours saw significant design and architecture work on the Context Control Center module ahead of RC1. Matt Glaman (mglaman) opened MR !152 implementing a redesigned context listing page that restructures columns, adds content-moderation-aware status tags via a new ai_context_status_tag theme, and introduces a centralized ai_context.token_estimator service with visual warning icons for high token counts.
Two open MRs continue development on core selection architecture: Kristen Pol (kepol) has MR !131 adding stable selection pipeline events (pre-select, post-filter, post-select, post-render) to allow contrib modules to extend AiContextSelector without coupling to internals, and MR !141 improving selection performance and cacheability, though per-plugin memoization was removed after conflicts with AiContextEntityTargetResolver::setCurrentEntity().
Several discussion issues opened: Michael Anello (ultimike) questioned whether the CCC admin menu placement should move to /admin/config/ai, while kepol started threads on context item bundles and structured content formats before schema stabilization.
How can I help on this project?
- Review MR !152 implementing the new listing page design, testing token estimation accuracy and status tag rendering across content moderation states.
- Review MR !131 for selection pipeline events, verifying the API meets contrib extension needs without exposing mutable internals.
- Pick up the unassigned global context scope field visibility issue to hide irrelevant options when global toggle is enabled.
AI Search
The AI Search module saw focused activity addressing compatibility and maintenance issues. Scott Euser (scotteuser) merged MR !43 adding GitLab templates to the repository, closing Add gitlab templates. Philippe Ythier (PhilY) reported a documentation bug with the MariaDB VectorDB provider link on the project page, which was quickly resolved.
Two significant development efforts are underway. Anikó Viola (violaniko) opened MR !44 to address Fix 2.x branch integration with AI 2.x now that Symfony Platform is integrated. The 87-line change fixes AiSearchSetupMySqlTest failures by adding null checks before getVectorDb() calls in SearchApiAiSearchBackend, preventing PluginNotFoundException when no vector database backend is configured. Scott Euser also opened MR !45 targeting long-running chunk indexing improvements for the 1.x branch without breaking compatibility.
How can I help on this project?
Field Widget Actions
Activity this period centered on the Allow Automatic Field Widget Action feature request. The issue proposes adding a configuration toggle to trigger field widget actions automatically when available, rather than requiring users to manually click the action button. Ahmad Khader (Ahmad-Khader) has prepared MR !22 with 301 lines of changes implementing this functionality, though no merges or commits occurred during the reporting period. The feature is tagged under the AI Initiative Sprint and AI Product Development labels, suggesting potential use cases for automated AI-assisted workflows.
No code was merged or shipped in the last 24 hours. The module awaits review and merge of the automatic action feature before progress can continue.
How can I help on this project?
FlowDrop
Shibin Das (D34dMan) landed a major deprecation and a suite of runtime improvements over the past 24 hours. The StateGraph approval gate API (ApprovalGateNode and the ApprovalGate namespace) has been formally deprecated in favor of the flowdrop_interrupt human-in-the-loop system. The legacy approval mechanism stored requests only in memory, making production use impractical. The deprecation commit also opened a tracking issue, Deprecate StateGraph approval gate (ApprovalGateNode and ApprovalGate API) in favor of flowdrop_interrupt HITL nodes, to coordinate the removal in version 2.0.
Runtime enhancements included a new ToolBox node plugin that shares a single tool set across multiple consumers via ToolPassthroughInterface and the new ToolGraphFlattener service. Tool wiring validation now runs against the flattened leaf set, and ToolCaller received a dedicated input port. Session management saw significant work: SessionTurnService::executeTurn() now provides a first-class chat-turn verb, a new POST /api/flowdrop/session/{id}/turn endpoint was added, and session-keyed turn events now bridge into the RealTime system. StateGraphOrchestrator now implements PipelineExecutorInterface, and LaunchOptions::wait enables opt-in synchronous launches. Fixes addressed iteration-scope trigger satisfaction, branch gating, HITL pause recognition, and terminal status persistence after resume.
How can I help on this project?
- Pick up the unassigned Deprecate StateGraph approval gate issue: audit existing approval gate usage and migrate it to flowdrop_interrupt patterns.
- Test the new ToolBox sharing mechanism and SessionTurnService::executeTurn() API in realistic multi-consumer workflows and report any edge cases.
References
[1] Feature Request: Persistent Conversation History for Anonymous Users
[51] RestrictToTopic guardrail: add semantic topic matching mode
[70] Add UI toggle to enable MDXEditor on plain text field widgets
[71] AI Automators Queue/Cron: prevent duplicate queue items when entity is saved multiple times
[73] AiFile requires file module but AI core module doesn't state that requirementment
[75] Add Extractive Question Answering operation type
[79] Agent loop responses bypass responseInterceptor; deduplicate step-message wrapping
[84] Issue #3586472: Use ai provider configuration form element and use proper...
[89] Issue #3586451: Allow to use MDX Editor in Text plain widget
[90] feat: #3586481 Prevent duplicate Queue/Cron items when entity is saved multiple times
[93] Resolve "AiFile requires file module but AI core module doesn't state that requirementment"
[96] Resolve #3584371 "Add extractive question"
[101] task: #3586455 Agent loop responses bypass responseInterceptor; deduplicate step-message wrapping
[121] MapDefinitionNormalizer and ContextDefinitionNormalizer break REST serialization (same as #3568588)
[132] 1.5.0: Autosave triggers repeated 409 conflict errors on non-English monolingual sites
[142] Publishing a canvas_page via auto-save API drops all non-default-language translations