Daily Digest
Daily Digest – 28 May 2026
2026 Capabilities Progress
- Page generation — Canvas delivered tools for AI agent testing and component catalog management to support page builder agents [73][74][80][106], while ongoing work on entity reference selection APIs [77][99] will expand the building blocks agents can use to construct pages.
- Context management — The Context Control Center closed discussion on taxonomy integration [112] and created a new scope plugin [113] that will let organizations associate context with existing content vocabularies; the team is preparing beta 3 with UI improvements [114][115][150] and heading toward a 1.0 release in late June [138].
- Background agents — The AI Integration ECA module proposed a new interceptor submodule [37] that would expose AI request events and streaming responses to workflow automation, enabling scheduled and triggered AI operations with custom governance controls; FlowDrop improved session-based workflow management to support returning to and executing automated processes.
- Design system integration — Canvas merged layout management within the workbench [67][92], resolved component cardinality handling [78][107], and advanced multi-bundle reference field support [76], all of which strengthen how AI works with design system components.
- Content creation and discovery — The AI Integration ECA module identified a gap covering only 5 of 18 available AI operations [49] and opened tasks to add image generation, translation, summarization, and other content capabilities [38][39][40][41][42][43][44][45][46][47][48]; work also continues on simplifying structured output configuration for content workflows [36].
- Advanced governance — The core AI module resolved a critical infinite loop issue in global guardrails [8][23][27] and is working to fix guardrail reliability problems [3][7][19]; Canvas delivered conflict detection for concurrent editing [81][90] and improved test infrastructure [71][104][105] to support audit and versioning features.
- Intelligent website improvements — No direct progress today.
- Multi-channel campaigns — No direct progress today.
Shipped
- AI module version 1.3.6 released — The team completed quality assurance testing and shipped the latest stable version [16].
- Global guardrail infinite loop fix delivered — A critical bug causing AI content safety filters to trigger endless recursive calls has been resolved, preventing system failures [8][23][27].
- amazee.ai request retry improvements merged — The provider module now better handles network interruptions, reducing user-facing errors [54].
- AI Agents default configurations updated — New installations now receive current agent configurations, and the agent creation form now uses an improved tool selection interface [57][58][62][63].
- Canvas layout management and multilingual improvements delivered — Developers can now configure page regions directly in Canvas Workbench, the language switcher shows translation availability, and data integrity handling for field cardinality changes has been completed [67][69][78][92][93][107].
Ongoing
- AI module Symfony platform migration in progress — Work continues on adopting an industry-standard component as the foundation for future provider integrations, reducing maintenance burden [11][21].
- Chat interface customization under review — Multiple fixes addressing administrator ability to customize error messages and loading text are awaiting approval [5][6].
- AI Agents machine name collision fix ready for approval — A validation fix preventing silent failures when custom agent names conflict with system types is awaiting final review [55][60].
- Tool API REST compatibility issue unassigned — A reported problem where the module interferes with standard REST API responses remains without assigned resources [65].
- Context Control Center beta 3 release in planning — The team is preparing Sprint 11 roadmap and organizing beta testing recruitment ahead of the planned 1.0 release [138][147][148][149].
AI (Artificial Intelligence)
The team closed quality assurance testing and released version 1.3.6 during the reporting period, representing successful delivery of the latest stable feature set. Activity centered on three strategic areas: stabilizing the conversational interface, preparing advanced platform architecture, and resolving critical runtime issues.
Several contributors addressed usability gaps in the chat interface. Work is underway to allow administrators to customize error messages and loading text that currently use developer-oriented language like "Calling agents," which can confuse end users. A related defect was identified where agent-based conversations bypass response handling after the first message, preventing extensions from working reliably across multi-turn interactions.
A significant stability issue was discovered and resolved: when guardrails (content safety filters) are configured globally, they triggered infinite loops of AI requests. The fix prevents guardrails from re-checking their own validation calls. A separate issue found that one guardrail fails when AI responses include explanatory text alongside required data; a solution is in review. One user reported guardrails not activating as expected, which may indicate a configuration or documentation gap requiring investigation.
Wolfgang Ziegler is leading architectural work to adopt an industry-standard component (Symfony AI) as the foundation for future provider integrations, reducing maintenance burden and expanding compatibility. Parallel development continues on file handling APIs that will enable document uploads for fine-tuning and analysis across multiple AI vendors.
How can I help on this project?
- Investigate the guardrails activation report to determine whether documentation, training materials, or product changes are needed to prevent user confusion.
- Approve resourcing for the Symfony AI platform migration to ensure architectural modernization stays on track without disrupting current feature delivery.
Drupal AI Initiative
The Drupal AI Initiative has been focused on partnership engagement and strategic planning over the past 24 hours. The team successfully completed a partner meeting on May 28th, which covered general progress updates, development approaches, partner benefits, and feature prioritization through a voting process. Following the meeting, organizers Kristen Pol (kepol) and the product team wrapped up post-event tasks including distributing recordings, slides, and AI-generated notes to partner mailing lists and Slack channels.
Planning is now underway for the June partner meeting, with the team working to establish a date and agenda. A new centralized documentation system has been created in Google Drive to house all partner meeting materials, making it easier for stakeholders to access historical notes and recordings. One organizational task remains blocked: adding notes from previous meetings to the new documentation hub.
Separately, discussions continue on how the initiative should engage with a proposed command-line interface feature being considered for Drupal Core. The team is also developing a visual identity for the Enterprise AI Summit in Rotterdam, positioned as a curated industry showcase rather than a traditional developer conference.
How can I help on this project?
- Help unblock the historical documentation task by allocating time or resources to compile past partner meeting materials into the new system.
- Support the June partner meeting by confirming date availability and ensuring key decision-makers can attend the feature roadmap discussions.
- Provide strategic input on the Enterprise AI Summit positioning and budget allocation for its visual branding needs.
AI Integration - ECA
The team is scoping a significant expansion of the module's capabilities as it prepares for a stable 1.0.0 release. Over the past day, Marcus Johansson (Marcus_Johansson) opened fourteen work items defining the path forward.
The most impactful addition is a proposal for a new submodule that would allow business process flows to intercept and respond to AI requests and failures in real time. The AI ECA Interceptor submodule would expose AI request events, streaming responses, and error conditions directly into workflow automation, enabling organizations to build custom logging, fallback handling, and governance controls around AI operations.
The team also identified a coverage gap: while the module currently supports five AI operations (chat, embedding, moderation, and speech conversion), the underlying AI framework offers thirteen additional capabilities—including image generation, video creation, object detection, text translation, and content summarization. A meta issue and twelve child tasks now document the work needed to bring all of these operations into workflow automation, which will unlock new use cases ranging from automated media pipelines to multilingual content workflows.
Additionally, a quality-of-life improvement was proposed to simplify structured output configuration in chat workflows, replacing a plain text field with a purpose-built editing interface that will reduce configuration errors.
How can I help on this project?
Confirm whether the interceptor submodule and expanded operation coverage align with your AI governance and automation priorities, so the team can sequence work accordingly. If these capabilities are strategic, consider allocating development resources to accelerate delivery of the twelve new operation actions.
amazee.ai Private AI Provider
The amazee.ai Private AI Provider module saw focused development activity over the past 24 hours, with three merge requests opened or completed by Dan Lemon (dan2k3k4).
A merge request addressing request retry functionality was successfully merged, improving the module's resilience when communicating with the AI service. This should reduce errors users experience when network or service interruptions occur.
Two new merge requests are now in review. The first adds documentation about the vector database included with the service's free trial, responding to user feedback about the need for clearer guidance on this feature. The second introduces bulk chunking capabilities, which will help the module process larger documents more efficiently.
A security audit issue was also closed during this period, indicating completion of vulnerability assessment work that helps ensure the module meets security standards.
How can I help on this project?
- Prioritize review and approval of the two open merge requests to accelerate delivery of documentation improvements and bulk processing features.
- Consider user feedback channels to identify whether additional documentation or onboarding materials are needed beyond the vector database guidance now in development.
AI Agents
The AI Agents module closed two quality improvements during this period. The team updated outdated default configuration files that ship with the module, ensuring new installations receive agent configurations that match current standards. A second change modernized the agent creation form by replacing a plain text field with a dedicated tool-picker interface, making it easier for administrators to select and configure the information tools available to each agent.
Two bug fixes are currently under review. The first addresses a validation gap: administrators can currently create agents with names that conflict with system-defined agent types, causing those custom agents to silently fail. A fix has been submitted and is ready for final approval. The second addresses a technical inconsistency in how agents handle certain tool responses, which can affect conversation tracking; a solution is in progress.
The release planning issue for version 1.2.0 was closed, suggesting the team is moving forward with delivery. Contributors active this period include Marcus Johansson, AKHIL BABU, Ahmad Khalil, and Tim Bozeman.
How can I help on this project?
- Prioritize final review of the machine name collision fix, which prevents a category of silent failures that could confuse administrators.
- Ensure the team has clarity on release timing and scope for version 1.2.0 now that planning has concluded.
Tool API
The Tool API project saw two issues updated during the reporting period, both addressing important functional and compatibility needs.
Work is underway on File Input Handling, which will define how the module securely processes file operations when invoked by AI agents. This research and proof-of-concept phase will determine the approach for enabling AI-driven file workflows, a capability that expands what users can accomplish through automated agents. Once the research concludes, concrete implementation work will be scoped and planned.
A compatibility issue was reported regarding MapDefinitionNormalizer and ContextDefinitionNormalizer break REST serialization. Stephan Huber (stmh) identified that the module's current implementation interferes with standard REST API responses when enabled alongside Drupal's REST module. This affects organizations relying on REST endpoints to expose content and could block adoption in environments using these standard integration patterns. The issue is currently unassigned and awaiting resolution.
How can I help on this project?
- Assign developer capacity to resolve the REST serialization compatibility issue to unblock adoption in standard REST environments.
- Provide input on file handling security requirements and use cases to guide the research phase toward real-world deployment needs.
Drupal Canvas
The Canvas project saw significant progress across developer experience, multilingual features, and system stability over the past 24 hours, with five major pieces of work delivered.
The team completed work on managing global layouts within Canvas Workbench, enabling developers to configure page regions directly in the development environment. This removes a setup bottleneck and improves iteration speed. A related improvement to developer experience through class renaming was also merged, making the codebase easier to navigate and maintain.
On the multilingual front, the language switcher now shows translation availability for each configured language, giving content editors clearer visibility into what has been translated. This supports the broader roadmap toward full symmetric translation support.
Two data integrity improvements were delivered: graceful handling of cardinality decreases, which prevents page crashes when component field limits are tightened, and a code style rule to reduce merge conflicts by standardizing comment placement.
Ongoing work includes backend APIs for entity reference selection (under review), AI agent test automation, conflict detection for concurrent editing, and several open bug fixes including a flaky video upload test and an Ajax dependency issue.
How can I help on this project?
- Prioritize security and documentation review for the entity reference selection API, flagged as a blocker requiring sign-off.
- Allocate developer time to resolve the local development setup integration, currently blocked and critical for onboarding new contributors.
Context Control Center (CCC)
The team closed a key discussion on (Discuss) Associating adhoc vocabularies (freetagging) with context items, which explored how to better link content to AI context using existing site taxonomies. This decision unlocked the creation of a new taxonomy scope plugin that will allow organizations to associate context items with the terms already used in their content, making context more relevant and easier to maintain.
The project is now organizing its Sprint 11 roadmap through two issues: Sprint 10 planning and Sprint 11 planning. Sprint 11 runs from 30 May to 12 June 2026 and will focus on finalizing features ahead of the release candidate. Beta 3 release planning is underway via this tracking issue, with the team working toward a stable 1.0 release expected in late June.
Progress continues on user experience improvements, including a merge request for optional feature suggestions in the UI and design updates to the context viewing page. Two issues were closed: one on removing the target column from listings, and another on discussion of taxonomy associations.
How can I help on this project?
Approve budget or staff time for beta testing recruitment and user feedback sessions to ensure the product meets real-world needs before the 1.0 release. Champion internal adoption of the module to provide early validation and surface issues before wider deployment.
Field Widget Actions
The Field Widget Actions module made significant progress this week, delivering a new capability that gives site administrators more control over how action buttons appear in forms. Previously, the system rigidly determined whether action buttons would appear once per form item or once per field based on hardcoded settings. This forced teams to create duplicate configurations when they needed different behavior for different use cases.
Andy Marquis (apmsooner) completed and merged Configurable multiple setting, resolving the Allow "Multiple" to be configured in widget issue. This change allows administrators to configure button placement directly in the interface based on their specific needs, eliminating redundant setup work and making the system more flexible for different workflows.
As a follow-up, Artem Dmitriiev (a.dmitriiev) opened Deprecate multiple property in plugin attribute to ensure the codebase transitions cleanly to this new approach in future releases. This maintenance work will prevent confusion and technical debt as the module matures.
How can I help on this project?
- Ensure testing resources are available to validate the new configuration flexibility across different form scenarios before the next release.
- Support documentation efforts to help site administrators understand when to use different button placement options.
FlowDrop
FlowDrop saw concentrated development activity over the past 24 hours, with contributor Shibin Das (shibin_das) delivering 14 commits focused on improving the user experience for working with sessions and workflows.
The main progress centers on introducing session-based workflows. Users can now create and access individual sessions through dedicated URLs, making it easier to organize and return to specific work. The interface has been streamlined: navigation menus now group related tasks and actions more logically, and outdated interface elements have been removed. The terminology has also been clarified, with sessions now consistently labeled as "Playground Sessions" to help users understand what they're working with.
Behind the scenes, the module now provides a cleaner way to launch and run workflows, and sessions can accept messages without immediately executing them. These capabilities expand what's possible for users building automated processes.
Overall, this represents solid incremental progress on making FlowDrop more intuitive and capable for users who need to design and manage workflow automation.
How can I help on this project?
- Arrange user testing sessions with target users to validate whether the new session-based interface meets their workflow needs.
- Clarify the roadmap timeline and release goals to help prioritize remaining feature work versus stabilization.
References
[3] RestrictToTopic guardrail should use the prompt JSON decoder service
[5] Unable to override the 'Calling agents' / 'Contacting agents' text
[6] Unable to override the 'An error occurred while fetching messages' text
[7] Guardrails and Chat Generation Explorer - not working...
[8] Global LLM-based guardrails cause infinite recursive LLM calls (no re-entrancy guard)
[11] Adopt symfony/ai component v0.8 as platform provider
[16] Release 1.3.6
[19] Issue #3586469: Use prompt JSON decoder service in RestrictToTopic guardrail
[21] Draft: Symfony AI Store integration with AI (no changes to ai_search)
[23] Resolve "Global LLM-based guardrails cause infinite recursive LLM calls (no re-entrancy guard)"
[27] Resolve "Global LLM-based guardrails cause infinite recursive LLM calls (no re-entrancy guard)"
[36] Simplify structured output configuration in the Chat action
[37] Add AI ECA Interceptor submodule: intercept AI requests/responses through ECA
[38] Add ECA execute action for Audio to Audio
[39] Add ECA execute action for Image Classification
[40] Add ECA execute action for Image to Image
[41] Add ECA execute action for Image to Video
[42] Add ECA execute action for Object Detection
[43] Add ECA execute action for Rerank
[44] Add ECA execute action for Speech to Speech
[45] Add ECA execute action for Summarization
[46] Add ECA execute action for Text Classification
[47] Add ECA execute action for Text to Image
[48] Add ECA execute action for Translate Text
[49] [Meta] Cover remaining AI operation types with ECA execute actions
[54] Retry requests
[55] AI Agent entity form should reject machine names that collide with existing code-plugin IDs
[57] Default agent configs in config/install are outdated
[58] Use the new ai_tools_library form element for 'Default information tools' in the agent form
[60] Issue #3586026: Reject AI Agent IDs that collide with code-defined AiAgent plugins
[62] Issues/3586028
[65] MapDefinitionNormalizer and ContextDefinitionNormalizer break REST serialization (same as #3568588)
[67] Manage the global layout (aka regions) within Canvas Workbench
[69] Indicate translation availability per language in the Canvas language switcher dropdown
[71] Decouple kernel tests from `CanvasTestSetup`: painful to work on, and VERY slow
[77] Backend APIs for Entity Reference Selection
[80] Canvas AI: Create tests for Canvas AI Page builder Agent and Canvas AI Template Builder Agent
[81] Detect conflicts for Page entities during the handling of auto-saves/pending calls
[90] Resolve #3589076 "Detect conflicts during autosave polling"
[92] feat(CLI Tool) #3576837 Manage the global layout (aka regions) within Canvas Workbench
[93] #3590572 Indicate translation availability per language in the Canvas language switcher dropdown
[99] Draft: feat: #3585354 add content-entity-types / fields endpoints for entity reference selection UI
[104] Draft: Resolve "Decouple kernel tests from `CanvasTestSetup`: painful to work on, and VERY slow"
[105] Remove CanvasTestSetup dependency from CanvasFieldTrait and test-discovery guard
[107] Issue #3587024: Handle decrease of cardinality
[112] (Discuss) Associating adhoc vocabularies (freetagging) with context items
[113] Create taxonomy scope plugin
[114] CCC optional feature suggestions in UI
[115] Update context view page per new design
[138] CCC beta3 release planning
[147] Recruit CCC beta testers
[148] CCC beta / pre-rc1 community testing
[149] Sprint 11 CCC roadmap updates, sprint planning, and issue triage
Shipped
- AI module 1.3.6 and 1.4.0 QA completed — Version 1.3.6 was released and QA for 1.4.0 closed, marking completion of the 1.4.0 roadmap [9][10][16].
- AI Agents tools library form element integration — Agent configuration form now uses the ai_tools_library form element from AI 1.4.0, replacing plain textarea for default information tools [58][63].
- Canvas DX improvements and cardinality handling — GeneratedFieldExplicitInputUxComponentSourceBase renamed to JsonSchemaPropsComponentSourceBase, cspell comment placement standardized via phpcs, and cardinality decrease now drops excess values gracefully [72][83][78][98][109][107].
- amazee.ai provider request retry logic — Retry functionality merged to improve reliability when communicating with the amazee.io API [54].
- Field Widget Actions configurable multiple setting — The multiple property moved from hardcoded plugin attribute to user-configurable widget setting, eliminating need to duplicate plugins [151][153].
Ongoing
- AI module global guardrails infinite recursion fix — Re-entrancy guard implementation in progress to prevent unbounded LLM recursion when non-deterministic guardrails like RestrictToTopic are configured globally [8][23][27].
- RestrictToTopic guardrail JSON decoder migration — Under review to migrate from raw json_decode to ai.prompt_json_decode service for better handling of LLM responses wrapped in prose or markdown [3][19].
- AI Agents entity ID collision validation — MR at RTBC adding validation to prevent config entity machine names from colliding with code-defined plugin IDs [55][60].
- Canvas backend APIs for entity reference selection — Draft MR blocked pending documentation and security review for content-entity-types and fields endpoints [77][99].
- Context Control Center beta3 release blockers — Scheduler feature submodule extraction and AiContextItemType removal both blocking beta3 [141][132][138].
AI (Artificial Intelligence)
The AI module completed QA for version 1.4.0 and successfully shipped version 1.3.6 during the reporting period. Marcus Johansson (Marcus_Johansson) closed QA run 1.4.0 and the meta issue [Meta] Road to 1.4.0, while Abhisek Mazumdar (abhisekmazumdar) closed Release 1.3.6.
Several critical bugs and infrastructure improvements saw active development. Ahmad Khalil (ahmad-khalil-imagex) opened MR !1617 fixing Release script does not set the version for json-schema-editor, which corrects the release script to properly stage package.json and package-lock.json for the json-schema-editor UI build. Marcus Johansson opened MR !1612 addressing Global LLM-based guardrails cause infinite recursive LLM calls (no re-entrancy guard), which requires adding a re-entrancy guard to prevent unbounded recursion when non-deterministic guardrails like Restrict to Topic are configured globally. Avinash jha (avinash.jha) contributed MR !1614 for RestrictToTopic guardrail should use the prompt JSON decoder service, migrating the guardrail from raw json_decode to the ai.prompt_json_decode service for better handling of LLM responses wrapped in prose or markdown.
Wolfgang Ziegler (fago) pushed forward the Symfony AI adoption roadmap with MR !1613 for Make API explorer work with Symfony platform and legacy providers, updating AiProviderPluginManager to return both legacy and platform-backed providers, and opened Adopt symfony/ai component v0.8 as platform provider for the 2.x branch.
How can I help on this project?
Review MR !1617 to verify the release script now correctly commits json-schema-editor version bumps. Review MR !1612 to validate the re-entrancy guard prevents infinite recursion with global LLM guardrails. Pick up Guardrails and Chat Generation Explorer - not working..., which reports guardrails not blocking prompts and is currently unassigned with no MR.
Drupal AI Initiative
Activity over the past 24 hours focused primarily on partnership coordination and event planning. Kristen Pol (kepol) closed out the May 2026 partner meeting cycle, completing the Schedule partner meeting May 2026 issue along with associated tasks for creating slides and presenting topics. The meeting covered general updates and product prioritization voting with partners.
Post-meeting follow-up is underway via the Follow-up for partner meeting May 2026 issue, with video processing, slide PDFs, and communication to partner mailing lists completed. Work also progressed on the Create partner meeting doc for notes and links and add old meetings issue, which established a shared Google Drive structure for meeting documentation, though adding historical notes remains pending. Planning for the June partner meeting has begun via Schedule partners meeting June 2026.
No merge requests or commits were pushed during this period.
How can I help on this project?
- Help finalize the partner meeting documentation by adding historical notes and links from previous meetings to the shared doc (see Create partner meeting doc).
- Contribute to planning discussions around CLI entry points for AI functionality in Drupal Core via [Plan] Discuss CLI entry point in Drupal Core.
AI Integration - ECA
Activity this period centered on planning for the 1.0.0 release. Marcus Johansson (Marcus_Johansson) opened a comprehensive set of issues to close gaps in operation-type coverage and improve developer experience.
A [Meta] Cover remaining AI operation types with ECA execute actions now tracks 12 child issues—one for each missing AI operation type. The module currently ships execute actions for only 5 of the AI module's ~18 operation types (Chat, Embedding, Moderation, Speech to Text, Text to Speech in src/Plugin/Action/). The new issues propose adding actions for AudioToAudio, ImageClassification, ImageToImage, ImageToVideo, ObjectDetection, Rerank, SpeechToSpeech, Summarization, TextClassification, TextToImage, and TranslateText. Each follows the existing AiConfigActionBase pattern established in Chat.php.
Separately, Simplify structured output configuration in the Chat action proposes replacing the raw JSON text field in the Chat action's config form (src/Plugin/Action/Chat.php:46–50) with the AI module's dedicated '#type' => 'ai_json_schema' element to provide validation and better editor affordances. A new AI ECA Interceptor submodule was also proposed to expose AI request, response, stream, and failure events as first-class ECA Events, Conditions, and Actions.
No merge requests were opened or merged during the period; all issues remain unassigned.
How can I help on this project?
- Pick up any of the 12 operation-type action issues (AudioToAudio through TranslateText) and submit a patch following the
Chat.phppattern with corresponding kernel test coverage. - Prototype the
ai_json_schemaform element integration in the Simplify structured output configuration in the Chat action issue and validate backward compatibility.
amazee.ai Private AI Provider
Dan Lemon (dan2k3k4) merged Retry requests during the reporting period, adding request retry logic with 94 lines of changes. This addresses reliability concerns when communicating with the amazee.io API.
Two new merge requests were opened by Dan Lemon (dan2k3k4). The first, chore: add bulk chunking, introduces bulk chunking functionality with 270 lines of changes. The second, fix(#3575454) add vectordb to docs, addresses the More Vector database info/configuration options issue by improving documentation around the included vector database capabilities.
The Improve security issue was closed after an OWASP audit was conducted to identify and address security concerns.
How can I help on this project?
Review the open bulk chunking MR to validate the implementation and test chunking behavior. Review the vector database documentation MR for clarity and completeness. Help test the merged retry logic in real-world API failure scenarios.
AI Agents
Two merged changes shipped in the last 24 hours. Marcus Johansson (Marcus_Johansson) landed Use the new ai_tools_library form element for 'Default information tools' in the agent form via MR !273, replacing the plain textarea at src/Form/AiAgentForm.php:244 with the new '#type' => 'ai_tools_library' element introduced in AI module 1.4.0. AKHIL BABU (AkhilBabu) merged Default agent configs in config/install are outdated via MR !274, updating the three shipped agent YAML files to use proper block scalars instead of quoted strings with escape sequences.
Two issues are now RTBC and awaiting final review. Ahmad Khalil (ahmad-khalil-imagex) opened MR !272 for AI Agent entity form should reject machine names that collide with existing code-plugin IDs, adding validation to prevent config entities from silently disappearing when their machine name matches a code-defined plugin. Tim Bozeman (boze) has MR !259 open for return_directly tool results are missing tool_id, fixing AiAgentEntityWrapper::determineSolvability() to correctly set tool_id on return_directly tool result ChatMessages.
How can I help on this project?
Review MR !272 for AI Agent entity form should reject machine names that collide with existing code-plugin IDs or MR !259 for return_directly tool results are missing tool_id, both marked RTBC and ready for maintainer sign-off.
Tool API
No code was merged or shipped during the reporting period, but issue activity continued on two active tasks.
Discussion advanced on File Input Handling, a research and proof-of-concept issue exploring how AI agents can securely process file inputs through the Tool API. The work covers input formats, file loading, and normalization schemas, with decisions expected to spawn follow-up issues either in this module or related projects.
Stephan Huber (stmh) updated MapDefinitionNormalizer and ContextDefinitionNormalizer break REST serialization (same as #3568588) on May 28. This issue identifies a critical bug where the Tool module's normalizers interfere with REST serialization in Drupal 11.x, causing errors when entities are normalized to JSON. The issue affects custom REST resources using the serialization service and appears related to a similar problem previously reported.
Both issues remain unassigned with no merge requests yet created, representing opportunities for contributors to address active pain points in the module.
How can I help on this project?
- Investigate and create a patch for MapDefinitionNormalizer and ContextDefinitionNormalizer break REST serialization, which is breaking REST endpoints in Drupal 11.x.
- Contribute research findings or proof-of-concept code to File Input Handling to help define secure file processing for AI agents.
Drupal Canvas
Canvas merged several significant improvements over the past 24 hours. The CLI tool gained the ability to manage global layout (regions) within Canvas Workbench via MR !1092 by wotnak, enabling developers to work with layout structure directly in the Workbench environment. On the translation front, translation availability indicators now appear in the Canvas language switcher dropdown, implemented by Anjali Prasannan (AnjaliPrasannan) in MR !1122.
The codebase received important DX improvements: Wim Leers (wimleers) merged MR !1053, completing the renaming of GeneratedFieldExplicitInputUxComponentSourceBase to JsonSchemaPropsComponentSourceBase, making component source code more intuitive. Christian López Espínola (penyaskito) merged MR !1165 to enforce consistent cspell:ignore comment placement via phpcs, reducing merge conflicts. A critical data integrity issue was resolved by Ignacio Sánchez Holgueras (isholgueras) in MR !1124, which now handles cardinality decreases gracefully by dropping excess values rather than breaking page rendering.
Several issues are in active development. Dave Long (longwave) is investigating a flaky Playwright test in video.spec.ts with MR !1145 awaiting review. The ambitious backend APIs for entity reference selection (MR !1112 by penyaskito) remains blocked, needing documentation and security review. Integration of ddev-drupal-contrib into Canvas (MR !1014) continues to progress.
How can I help on this project?
Review MR !1145 for the flaky video.spec.ts Playwright test fix to help stabilize CI. Pick up the unassigned Ajax dependencies issue which has MR !1166 ready for review. Help test MR !1014 for ddev-drupal-contrib integration by following its testing instructions.
Context Control Center (CCC)
The reporting period saw significant sprint planning and issue management activity as the project prepares for its beta3 release and eventual 1.0. Kristen Pol (kepol) closed the discussion issue (Discuss) Associating adhoc vocabularies (freetagging) with context items, which led to the creation of a new feature request to Create taxonomy scope plugin for associating context items with taxonomy terms on content entities. The Update context listing to not use target column issue was also closed during this period.
Multiple UX and architecture issues progressed, including work on Update context view page per new design (assigned to Eric Homanchuk) and discussions around scope functionality clarification. Several performance and architectural issues emerged from earlier work, including concerns about conditional subcontext provider calls, full published-ID scans before scope prefiltering, and usage tracking patterns that may need optimization before RC1.
The team initiated CCC beta / pre-rc1 community testing (assigned to Michael Anello) and Recruit CCC beta testers to gather community feedback before locking down features. Sprint 11 planning commenced with Sprint 11 CCC roadmap updates, sprint planning, and issue triage.
Key blockers include Move scheduler feature to submodule or progressive enhancement (assigned to Matt Glaman) and Remove AiContextItemType, both marked as Sprint 10 priorities blocking beta3 release.
How can I help on this project?
Review the open MR !162 for CCC optional feature suggestions in UI which adds an extensions page. Help implement the new taxonomy scope plugin feature, which has no MR yet. Join the beta testing effort by following the setup instructions and providing feedback on usability and scope functionality.
Field Widget Actions
The Field Widget Actions module saw significant progress on configuration flexibility during the reporting period. Andy Marquis (apmsooner) successfully merged Configurable multiple setting, which addresses the Allow "Multiple" to be configured in widget feature request. This change moves the "multiple" setting from being hardcoded at the plugin level to a user-configurable option, eliminating the need to duplicate plugins just to vary this property. The merge adds 271 lines of changes and enables more flexible widget behavior depending on LLM prompt requirements.
With this configuration option now available, attention has turned to cleanup work. Artem Dmitriiev (a.dmitriiev) opened Deprecate multiple property in plugin attribute to track removing the now-redundant multiple property from the FieldWidgetAction plugin attribute. The plan is to deprecate this property in the 1.3.x branch and remove it entirely in 2.0.x, providing a clean migration path for module developers.
How can I help on this project?
- Pick up the unassigned Deprecate multiple property in plugin attribute task and create a patch that adds deprecation notices to the
multipleproperty in the plugin attribute for the 1.3.x release. - Test the newly merged configurable multiple setting with various LLM prompts and widget configurations to identify edge cases or documentation needs.
FlowDrop
FlowDrop saw significant development activity over the past 24 hours, with Shibin Das (shibindas) committing 14 changesets focused on playground session management and UI improvements.
The most substantial changes involve a refactored playground architecture. The module now supports per-session URLs with a sessions list, form, and single-session locking mechanism. A legacy /playground route was removed in favor of this new approach, with session surfaces renamed to "Playground Session" for clarity. The sessions list now scopes to a single "New session" action.
On the API front, a new public WorkflowLauncher API was introduced alongside a /run endpoint in the workflow-executor component. The session API gained a postMessage() method that appends messages without triggering workflow launches. The underlying @flowdrop/flowdrop library was updated to version 1.15.0.
UI enhancements include grouped navbar tasks and actions for both the playground and editor interfaces. Session-UI gating properties are now exposed on the playground SDC component. A fix was applied to hide the editor connection status indicator. The FlowDrop bundle was rebuilt to incorporate these ui-components changes.
How can I help on this project?
Test the new per-session playground URLs and session management workflow to identify edge cases or usability issues. Review the WorkflowLauncher API implementation and /run endpoint for security or architectural concerns. Explore integration patterns with the new postMessage() method in real-world workflow scenarios.
References
[3] RestrictToTopic guardrail should use the prompt JSON decoder service
[8] Global LLM-based guardrails cause infinite recursive LLM calls (no re-entrancy guard)
[9] QA run 1.4.0
[10] [Meta] Road to 1.4.0
[16] Release 1.3.6
[19] Issue #3586469: Use prompt JSON decoder service in RestrictToTopic guardrail
[23] Resolve "Global LLM-based guardrails cause infinite recursive LLM calls (no re-entrancy guard)"
[27] Resolve "Global LLM-based guardrails cause infinite recursive LLM calls (no re-entrancy guard)"
[54] Retry requests
[55] AI Agent entity form should reject machine names that collide with existing code-plugin IDs
[58] Use the new ai_tools_library form element for 'Default information tools' in the agent form
[60] Issue #3586026: Reject AI Agent IDs that collide with code-defined AiAgent plugins
[72] DX: rename `GeneratedFieldExplicitInputUxComponentSourceBase` → `JsonSchemaPropsComponentSourceBase`
[77] Backend APIs for Entity Reference Selection
[83] phpcs: Enforce consistent placement of `cspell:ignore` comments to reduce merge conflict frequency
[98] Resolve #3548297 "Rip generatedfieldexplicitinputuxcomponentsourcebase"
[99] Draft: feat: #3585354 add content-entity-types / fields endpoints for entity reference selection UI
[107] Issue #3587024: Handle decrease of cardinality
[109] Added cspell:ignore sniff.
[132] Remove AiContextItemType
[138] CCC beta3 release planning
[141] Move scheduler feature to submodule or progressive enhancement