Daily Digest
Daily Digest – 30 July 2026
2026 Capabilities Progress
- Page generation — Active development continues on Canvas AI's page assembly capabilities, with improvements to the component placement tool schema providing AI agents with clearer instructions for positioning components [116][141], and new UI work adding a Tools dropdown to the chat interface for more precise control [114][137]. An admin settings form is being built to configure available agents and tools [117][139], moving toward production-ready page generation workflows.
- Context management — The Context Control Center is advancing toward its first stable release with work on performance optimization for the catalog overview page [143][159], a dedicated editorial workflow for context items [158][165], and continued refinement of scope plugin architecture for consistent persistence and selection [148]. Planning discussions on context ranking factors and priority levels are exploring how to decide which guidance reaches AI features when limits apply [150][151].
- Background agents — Field Widget Action support was partially merged [4][20][21], with additional merge requests still in review [18][19], enabling AI-powered workflows that trigger directly within content editing interfaces without manual prompts. Three new agent skills were proposed for command-line configuration of automators, guardrails, and general AI settings, supporting scriptable and agent-friendly operations [12][13][14]. Work continues on chat memory persistence and architectural planning for permissions systems [11][27][3].
- Design system integration — Canvas merged fixes for CLI-based component synchronization [110][126] and global region handling [112][134], strengthening the foundation for AI to work with design system artifacts. Content template support is being extended to all entity types with configurable displays [127], and work continues on automated component generation when themes are installed [111][128].
- Content creation and discovery — AI Search made progress on structured result data for RAG capabilities, ensuring metadata like source attribution and relevance scores are preserved alongside generated answers [167]. The AI CKEditor module added visual feedback for generation requests [166], and work advanced on access control for non-content entity types [168][169][170][172][173][174]. The AI translate module began documentation work and restored automated quality checks [175][176][177][178].
- Advanced governance — No direct progress today.
- Intelligent website improvements — No direct progress today.
- Multi-channel campaigns — No direct progress today.
Shipped
- Field Widget Actions integrated with Automator Chain — Development work was completed to enable triggering AI-powered text generation directly within content editing interfaces without leaving the page, supporting multi-step workflows that break complex tasks into manageable steps [18][19][20][21].
- OpenAI Provider performance and reliability updates — Development work was completed for batch embeddings support to reduce API calls and improve performance, rate limit handling fixes to reduce service interruptions, and a bug fix affecting GPT functionality [50][51][52].
- Tool API compatibility and error handling fixes — Five integration issues were resolved including fixes for Anthropic AI compatibility, entity description display errors, REST serialization conflicts, and clearer error reporting when tools fail before execution [100][101][102][103][104][105].
- Canvas CLI and code quality improvements — Development work was completed for content template push error fixes, global region synchronization for media and links corrections, and automated code quality checks to enforce safer service references across the codebase [126][134][138].
- AG-UI security and quality assurance enhancements — Development work was completed for character limit configuration to prevent token exhaustion attacks, error handling improvements in chat, token-based authentication for anonymous users, and automated testing with continuous integration [491][492][493][494].
Ongoing
- AI module prompt editor and streaming chat bugs — Issues affecting the markdown editor's ability to parse Drupal tokens and colons are under review, and a fix for streaming chat corrupting URLs in AI-generated content is in progress [1][2][8][29].
- Tool API release candidate preparation — Eighteen items must be addressed before the programming interface freeze, including fixing broken configuration-sourced inputs, correcting validation logic for multi-value fields, and resolving access-check failures [76][99].
- Context Control Center stability and upgrade fixes — Work continues on creating a dedicated editorial workflow, fixing upgrade problems for sites moving from beta2, addressing Drupal 10 compatibility issues, and improving performance by avoiding loading the entire published catalog [158][163][164][165].
- AI Search structured data and access control improvements — Development is underway to preserve metadata like source content and relevance scores in RAG tool results, defer access checking to Search API datasource plugins, and introduce a dedicated runtime access-checking API [167][168][170][173][174].
- FlowDrop specification registry and stable release preparation — The project completed consolidation of runtime and workflow-language contracts with 247 documented rules, unified error routing across all runners, and comprehensive save-time validation to catch broken workflows before execution [482].
AI (Artificial Intelligence)
The AI module saw focused progress on field-level automation and streaming chat capabilities over the past 24 hours. Work was completed to enable AI-powered workflows directly within content editing interfaces, allowing editors to trigger automated text generation without leaving the page. This capability connects Field Widget Actions with the module's multi-step Automator Chain feature, supporting more complex editorial workflows that previously required multiple separate fields or manual steps.
Two separate merges integrated this Field Widget Action support into different release branches, ensuring the feature will be available across supported versions. The work addresses practical limits on how much context AI models can process in a single request, enabling multi-turn workflows that break complex tasks into manageable steps.
Several bugs affecting the editor experience were identified and are under review. Issues were reported with the markdown-based prompt editor failing to parse Drupal tokens and colons—both common in real-world prompts. A fix is in progress for a streaming chat bug that corrupts URLs when AI-generated content includes links. Another bug preventing assistants backed by agents from streaming responses was identified and closed as a duplicate of an existing issue.
Planning and architectural work continued on permissions for the platform configuration system, chat memory persistence, and adoption of the latest Symfony AI component. Three new agent skills were proposed to enable command-line configuration of automators, guardrails, and general AI settings—part of a broader effort to make the module more scriptable and agent-friendly.
How can I help on this project?
- Prioritize user experience review of the markdown editor issues affecting prompt authoring, as these directly impact day-to-day usability for content teams configuring AI workflows.
- Clarify strategic direction on permissions and multi-tenancy for the new platform configuration, helping the team finalize architecture decisions that will shape governance and delegation capabilities.
Contributors: Ahmad Khalil (ahmad-khalil-imagex) [1], Ann Mary Sruthy (annmarysruthy), Artem Dmitriiev (a.dmitriiev), Bruno Bruno (bbruno), Dezső Biczó (mxr576), Isaac Trogdon (dotist), Marcus Johansson (Marcus_Johansson), Prabhavathi Vanipenta (prabha1997), Rob Loach (robloach), Rodel Duterte (rduterte), Wolfgang Ziegler (fago)
Drupal AI Initiative
Activity this period centered on partnership expansion and process improvements. Two new partners are being onboarded: Pantheon (Gold tier) and Specbee (Silver tier). The Pantheon onboarding was completed, including integration into communication channels and team workflows. Work on Specbee's onboarding continued, with follow-up tasks to add them to the partner directory and run an audit to confirm successful integration.
To support future growth, templates for partner onboarding and audit processes were closed as complete, standardizing how new organizations join the initiative. A request was opened to update partner badges to use "Partner" instead of "Sponsor" language, better reflecting the collaborative nature of these relationships. Work also began on refreshing the partner logo wall and conducting periodic audits of contributor access to ensure alignment with active participation.
A new capability was proposed to create repeatable manual testing processes for issue review, aiming to improve consistency and provide documented evidence of before-and-after behavior without requiring reviewers to rebuild environments.
How can I help on this project?
- Approve the partner badge redesign request to ensure brand consistency as the partnership program scales.
- Allocate resources to formalize the testing documentation approach if early feedback indicates it reduces review friction.
AI Integration - ECA
This module enables natural-language interaction with Drupal's Event-Condition-Action (ECA) automation system, allowing users to create and manage automation workflows through conversational AI rather than manual configuration.
Work has begun on modernising the module's underlying architecture. A migration to the Tools + ReAct architecture was opened this period. This effort will replace the current custom control flow with a more maintainable, standardised approach that leverages the broader AI Integration framework. The change is expected to improve reliability and make future enhancements easier to deliver. The work is part of the roadmap toward a stable 1.0.0 release.
No merge activity or commits occurred during this period. Development continues in the open merge request.
How can I help on this project?
- Review and approve the architectural direction for the Tools + ReAct migration to accelerate progress toward 1.0.0.
- Allocate testing resources to validate the new architecture once the merge request is ready for review.
Contributors: Marcus Johansson (Marcus_Johansson)
OpenAI Provider
The OpenAI Provider module made steady progress over the past 24 hours, with three updates merged that improve performance and reliability for users integrating OpenAI services into their Drupal sites.
Support for batch embeddings was added, enabling more efficient processing of multiple text inputs at once. This reduces the number of API calls needed and improves system performance when generating embeddings at scale.
A fix for rate limits was merged, helping the module handle OpenAI's usage restrictions more gracefully. This should reduce service interruptions and provide more predictable behavior during high-volume operations.
A bug affecting GPT functionality was also resolved, restoring expected behavior for users working with GPT-based features.
Together, these updates strengthen the module's stability and efficiency for organizations deploying AI-powered content and automation workflows.
How can I help on this project?
- Ensure the team has adequate OpenAI API credits and budget for testing across different usage patterns and rate limit scenarios.
- Connect the development team with end users to gather feedback on performance improvements and identify remaining pain points.
amazee.ai Private AI Provider
The module made progress on instrumentation and is addressing a critical data integrity issue. A new merge request was opened to add tracking headers to API requests, enabling better visibility into which module versions are generating traffic to the amazee.ai service. This will support troubleshooting and usage analytics.
A significant data loss issue was identified and is now awaiting final review: Deleting or clearing items in a Search API index deletes data from other indexes sharing the same Vector DB collection. The issue occurs when multiple search indexes share the same underlying database collection. Clearing or updating one index can inadvertently delete records from others, resulting in silent and permanent data loss. This affects any deployment using shared vector database collections and has been assigned for resolution.
How can I help on this project?
- Prioritize review and approval of the data loss fix to prevent further incidents in production environments.
- Ensure adequate testing resources are available to validate the fix across different deployment configurations before release.
Contributors: Dan Lemon (dan2k3k4)
Microsoft Azure AI
A significant refactor of the Azure provider infrastructure was opened during this period. The [#3552969] feat: Refactor AzureProvider to use OpenAiBasedProviderClientBase merge request represents work to restructure how the module connects to Azure's AI services. This change is designed to improve code reusability and maintainability by building on a shared foundation with other OpenAI-compatible providers. For users, this means more consistent behavior across different AI service integrations and easier future enhancements. The refactor is substantial, touching 680 lines of code, and signals progress toward a more mature and scalable architecture.
No issues were updated during this period, and the refactor remains open for review. This is normal development activity for a module in active evolution.
How can I help on this project?
- Ensure the team has dedicated time allocated for code review of the open refactor, as architectural changes require careful evaluation before integration.
- Consider whether user acceptance testing resources are available once the refactor merges to validate that Azure AI integrations continue working as expected.
Contributors: Jukka Huhta (jhuhta)
Postgres VDB Provider
A new merge request was opened to address an issue where certain data columns are lost after clearing and reindexing operations. This work aims to preserve important data structure throughout the reindex process, ensuring that information is not inadvertently dropped when the system refreshes its indices. If merged, this fix will improve data consistency and reduce the risk of information loss during routine maintenance operations.
No issues were updated and no code was committed to the main repository during this period. The module is continuing its development with focused attention on data integrity concerns.
How can I help on this project?
- Arrange code review resources to evaluate the pending merge request, which addresses a data integrity concern.
- Clarify release timeline expectations and prioritization for this module within the broader AI initiative.
Model Context Protocol
The Model Context Protocol module saw continued work during this period on authentication functionality. A Token Auth is not working issue remains open, with an associated merge request under review. The issue addresses problems preventing administrators from enabling token-based authentication through the configuration interface, which currently requires manual configuration workarounds. Resolving this will allow site administrators to enable secure authentication options through the standard interface, improving both usability and security setup for the module.
No merge requests were merged or commits pushed during this 24-hour window, indicating planning and review activities are underway rather than active code integration.
How can I help on this project?
- Allocate review capacity to evaluate the open authentication merge request, enabling faster integration of completed work.
- Clarify the module's target release timeline (alpha, beta, or stable) to help the team prioritize stabilization versus new features.
Contributors: Alin Ameiroaie (aalin)
AI Agents
Development activity this period centered on refining agent configuration and addressing operational issues. Work was completed to allow users to set custom provider tags when running agents, making it easier to track and filter specific interactions in the event log. This capability was marked complete and closed.
Several configuration enhancements are in progress. Work continues on allowing individual agents to use specific language model providers rather than a shared default, giving administrators more control over cost and performance tradeoffs. A related feature to let parent agents forward requests directly to subagents without reprocessing is under development, aimed at improving response consistency and reducing latency.
Multiple bug fixes are being addressed through open merge requests, including issues where the chatbot interface handles search queries differently than the tool explorer, and where conversation history persists unexpectedly after clearing. Work is also underway on implementing limits to prevent tools from running too frequently, and on integrating short-term memory capabilities into agents.
The module continues in active development with normal issue activity for a pre-stable release. No critical blockers were identified this period.
How can I help on this project?
- Review open merge requests to help validate whether bug fixes resolve the reported issues, particularly around chatbot behavior consistency.
- Provide guidance on prioritization between new configuration features and stability improvements as the module approaches a production-ready release.
Contributors: Bharat Kelotra (bharatkelotra), Marcus Johansson (Marcus_Johansson)
Tool API
The Tool API project made significant progress toward its first release candidate, with five key integration issues resolved and compatibility with Drupal 10.5 through 11 now tested in continuous integration. The focus this period was on ensuring the module's data schemas work reliably across different AI platforms and fixing issues where execution failures were not clearly reported to users or AI models.
The project resolved problems that prevented tools from working with Anthropic AI models and fixed issues where entity descriptions containing common punctuation appeared garbled to AI systems. A fix was merged for the REST serialization conflict that broke other modules' JSON output when Tool API was enabled. Additional work corrected how the AI connector handles tools that fail before execution, ensuring callers receive meaningful error messages instead of technical exceptions.
The project opened a comprehensive tracking issue outlining the path to release candidate 1, identifying 18 items that must be addressed before the programming interface can be frozen. These include fixing broken configuration-sourced inputs, correcting validation logic that skips items in multi-value fields, and resolving access-check failures. Several issues are tagged as quick wins requiring only a few lines of code but representing breaking changes if deferred beyond the release candidate freeze.
Strategic planning work began tracking alignment with Drupal core's emerging CLI initiative, positioning the module's metadata model as a candidate for adoption in core and identifying opportunities for advocacy as core considers structured outputs for command-line tools.
How can I help on this project?
Prioritise resourcing for the 18 pre-RC1 items to meet the interface freeze deadline. Facilitate a decision on the API surface annotation strategy to clarify which components are stable versus internal. Consider sponsoring documentation work for the stable release security review.
Contributors: Abhisek Mazumdar (abhisekmazumdar) [1], Bryan Sharpe (b_sharpe) [1], Michael Lander (michaellander) [11]
Drupal Canvas
The past 24 hours saw three fixes merged to production and continued advancement across AI tooling, translation workflows, and developer experience.
Two command-line interface issues were resolved. A fix for content template push errors was merged, enabling the CLI to correctly create templates without triggering server-side validation failures. A fix for global region synchronization resolved failures when pushing media images and links, ensuring these props are now handled correctly during sync operations.
A major developer experience improvement was also merged: an automated code quality check that enforces safer, more maintainable service references across the codebase. This change reduces ambiguity and makes code easier to navigate.
Active development continues on AI chat capabilities, including a tools dropdown for the chat interface and an admin settings form to configure available agents and tools. The placement tool schema was improved to give AI agents clearer, more structured instructions when positioning components.
Work is also progressing on translation support for older component versions, right-to-left language layout, autosave reliability, and broader entity type support for content templates.
How can I help on this project?
- Prioritize backend review capacity for the translation fix and RTL support work to ensure multilingual readiness.
- Clarify product direction on AI agent selection: confirm whether the admin-controlled tools approach aligns with rollout plans.
Contributors: **** (project_19391_bot_17a61b0edeafd5a3db3e8b2462b6c010), **** (project_19391_bot_cb443e60680723bba08a5351bf595251), Adam G-H (phenaproxima), Ben Mullins (bnjmnm), Bálint Kléri (balintbrews) [1], Canvas version bot [2], David Bravo (davidbp), Harumi Jang (hooroomoo), Jeremy Chinquist (jjchinquist), Juan Correa (jucs7) [1], Kunal Sachdev (kunal.sachdev), Lionel Enkaoua (heyyo), mariosr, Rajab Natshah (RajabNatshah), Tekla Aivazashvili (aivazashvilit), Wim Leers (wimleers) [1], wotnak [1]
Context Control Center (CCC)
Development this period focused on preparing the module for its first release candidate and stable version. Work advanced on several stability and compatibility issues that are critical for production readiness.
A dedicated editorial workflow for context items is being created to replace reliance on shared workflows, giving the module clearer publishing states and preventing unintended side effects on other content. Progress continued on fixing upgrade problems for sites moving from beta2 to current versions, particularly around entity bundle changes. A separate effort is addressing Drupal 10 compatibility issues and incomplete beta3 upgrades to ensure the module works reliably across supported platform versions.
Performance improvements are underway to avoid loading the entire published catalog when displaying the overview page. The scope plugin architecture is being completed to provide a consistent persistence and selection interface, which will make future extensions easier to build. A rename of scope plugins is in progress to improve clarity for editors choosing which entities receive context.
Planning discussions opened on context ranking factors and priority levels, exploring how the module should decide which guidance reaches AI features when limits apply. A quality assurance plan is being developed to systematically test functionality before the stable release.
How can I help on this project?
- Ensure the quality assurance team has sufficient time allocated to complete systematic testing and develop the QA plan before stable release.
- Confirm product direction on the context ranking and priority discussions to unblock design decisions needed before version 1.0.
Contributors: Kristen Pol (kepol), Levente Besenyei (LeventeB), Pravesh Poonia (Pravesh_Poonia), Reinhold Schachner (reinimax), Tamas Balog (tbalog)
AI CKEditor
A new merge request was opened to improve user feedback during content generation. Currently, when users click the Generate button inside the editor, they must scroll down to see whether their request is being processed. The proposed change will display a status indicator directly next to the Generate button, giving users immediate visual confirmation that their request is in progress without requiring them to navigate within the modal window.
This enhancement addresses a usability gap in the AI Writer feature and should reduce confusion for users waiting for generated content to appear. The change is relatively small in scope and awaits review before being integrated into the module.
How can I help on this project?
- Ensure the team has capacity to review and merge the pending user experience improvement.
- If broader user testing or feedback on the AI Writer workflow is planned, allocate time or resources to conduct it.
AI Search
The AI Search module saw focused development activity around improving how search results are checked for access and how structured data is returned to applications using the module's RAG (retrieval-augmented generation) capabilities.
A key gap was identified and addressed: the RAG tool was previously only returning a single text string to language models, discarding important metadata like which content each result came from, relevance scores, and individual text chunks. Work on RagTool::execute() should expose structured per-result data and check entity access aims to preserve this information so applications can show users which sources were consulted, not just the AI-generated answer.
Parallel efforts are improving access control. The module historically only supported permission checks for standard content, blocking use with other data types. New work is underway to defer access checking to Search API datasource plugins and to introduce a dedicated runtime access-checking API that lets organizations enforce stricter filters—for example, preventing sensitive data from being sent to external AI services even when a user technically has permission to view it on the website.
How can I help on this project?
- Prioritize testing and review resources for the open access-control work, which affects data security and compliance.
- Clarify business requirements for sensitive-data filtering to guide the new runtime access API design.
Contributors: Abhisek Mazumdar (abhisekmazumdar), David Bondor (superbondor), Dezső Biczó (mxr576)
AI translate
The AI translate module saw foundational work over the past 24 hours focused on project infrastructure and knowledge sharing. Two key issues were advanced to ensure the module can be effectively maintained and adopted.
A documentation initiative is underway to create user-facing guidance for the module, which currently has none. A draft merge request has been opened with substantial content to address this gap. Clear documentation will be essential for teams evaluating or implementing automated translation capabilities.
Separately, work began on Fix Pipeline to restore automated quality checks that are currently non-functional. A proposed solution has been submitted for review. Restoring these checks will help maintain code quality as development continues.
Both issues remain open with draft or pending solutions. No code was merged during this period, but the preparatory work positions the project to improve both developer experience and end-user accessibility.
How can I help on this project?
- Allocate reviewer time to assess and merge the pending documentation and pipeline fixes, enabling faster iteration.
- Clarify the target release timeline and stability goals to help prioritize outstanding work appropriately.
Contributors: Marcus Johansson (Marcus_Johansson), Rob Loach (robloach)
FlowDrop
FlowDrop has completed a major consolidation of its runtime and workflow-language contracts, closing 316 specification-related issues over the reporting period. This work establishes a formal, tested foundation for how workflows are validated, executed, and reported across all execution strategies.
Strategic Progress
The project has delivered a comprehensive specification registry covering ten domains: workflow storage and API boundaries, schema and port discovery, parameter resolution, exposure semantics, edge classification, expression engines, validation rules, orchestrator behaviour, error handling, data delivery, branching, compilation, interrupts, state management, and status reporting. Each of 247 runtime rules now cites its implementation and binding test, with automated coverage enforcement preventing drift. This positions FlowDrop to onboard contributors and evolve the platform with confidence that changes will not silently break downstream behaviour.
Key user-facing improvements include unified error routing (all four runners now handle error edges identically), consistent status reporting to the editor (node badges now reflect the correct execution state even for loops), and comprehensive save-time validation (broken workflows are refused when authored, not discovered at runtime). Expression errors now fail the node and route to its error edge across all four processors, providing authors a predictable recovery path.
Deliverables
The specification registry documents 247 rules across runtime execution, workflow grammar, and API contracts. All testable rules are covered by binding tests, with 11 structural or cross-reference entries completing the set. A companion issue cleaned legacy surfaces (unused endpoints, deprecated methods, and misleading metrics) from the 2.x branch. Validation now refuses 13 structural defects at save time, including missing plugins, hidden-port wiring, duplicate edges, self-edges, malformed expressions, and oversized payloads. Error handling, cancellation, and resume behaviour now behave identically across all runners, and status payloads have been standardised for editor consumption.
Risks
No blocking issues for a stable release were introduced during this period. The work closed long-standing inconsistencies and undocumented behaviour, reducing the surface area for runtime surprises. Future changes to validated behaviour will be visible in the specification registry, making impact assessment straightforward.
How can I help on this project?
- Advocate the specification registry approach to other Drupal projects managing complex runtime behaviour, positioning FlowDrop's documentation model as a reference.
- Coordinate a stable 2.x release now that the runtime contracts are explicit and tested, unlocking production adoption.
AG-UI
The AG-UI module saw significant progress in security, quality assurance, and user experience over the past 24 hours, with four key pieces of work delivered.
A new character limit configuration was merged to help prevent token exhaustion attacks. Site administrators can now set maximum message lengths; users who exceed the limit will receive a clear message and their requests will be blocked before reaching the AI service. This adds a layer of cost control and abuse prevention.
Error handling in the chat interface was improved so that when something goes wrong, users now see friendly, concise error messages instead of raw technical output cluttering the conversation.
The module now supports token-based authentication for anonymous users, allowing public-facing AI assistants to be deployed while reducing the risk of abuse from automated scripts.
Finally, automated testing and continuous integration were enabled, establishing a quality gate for all future changes. The pipeline now runs coding standards checks, static analysis, and automated tests on every contribution.
How can I help on this project?
- Prioritise a decision on release timeline and readiness criteria for a stable 1.0 version to guide remaining feature and documentation work.
- Consider allocating design or UX resources to review the chat interface and error messaging for accessibility and usability.
Contributors: Ahmad Khalil (ahmad-khalil-imagex) [1], Bryan Sharpe (b_sharpe) [3]
References
[1] MDXEditor fails to parse Drupal tokens in AI Agents prompts
[2] MDXEditor throws error when prompt includes a colon (:) character
[3] Decide permission system for new AI Platform and AI Inference Providers
[4] Support Automator Chain trigger with Field Widget Actions
[11] Add a ChatMemoryInterface for storing ChatBot chat history
[12] [1.x] Add a setup-automators agent skill to configure automators on fields
[14] Add a setup-guardrails agent skill to configure guardrails, guardrail sets, and global guardrails
[18] Issue #3586602: Add a field widget action base class and text plugin to run...
[19] Issue #3586602: Add a field widget action base class and text plugin to run...
[20] Issue #3586602: Add a field widget action base class and text plugin to run...
[21] Issue #3586602: Add a field widget action base class and text plugin to run...
[27] Issue #3586589: Add ChatMemory plugin type
[29] bug: #3586624 Streaming chat forces plain-text hostname filtering, corrupting...
[50] add support for batch embeddings
[51] Resolve #3612042 "Rate limits"
[52] Resolve #3613982 "Bug with gpt"
[76] Correct API signatures before the RC1 freeze (batch)
[99] Issue #3582959 by michaellander: Configuration-sourced input values fatal:...
[100] Resolve "Entity handle descriptions are HTML-escaped in LLM-facing schemas"
[102] Resolve "Anthropic rejects tool schemas: nullable optional inputs render an object under "type""
[103] Resolve "tool_ai_connector throws `BadMethodCallException` when the tool has not executed"
[104] Issue #3576586 by b_sharpe: Set parent context data as well as input.
[105] Issue #3582939: Fix getSupportedTypes() in MapDefinitionNormalizer and...
[110] CLI push includes unsupported label property for content templates
[111] Automatically create components when themes are installed
[112] Canvas CLI sync fails for media and link props in global regions
[114] Canvas AI: Add Tools dropdown to chat UI
[116] Canvas AI: Improve the schema of the place_components tool
[117] Canvas AI: Add an Agents & Tools settings form to select the main agent and chat Tools
[126] fix(CLI Tool): #3591899 CLI push includes unsupported label property for content templates
[127] feat: #3518272 support all entity types with configurable displays for content templates
[128] Generate components when extensions are installed, even if syncing config
[134] fix(CLI Tool): #3591897 Canvas CLI sync fails for media and link props in global regions
[137] Draft: Resolve "Canvas AI: Add Tools dropdown to chat UI"
[139] Issue #3591882: Add an Agents & Tools settings form.
[141] #3591881 Canvas AI: Improve the schema of the place_components tool
[143] Avoid loading the full published catalog on the CCC overview page
[150] [Discuss] Adding priority to context item to affect ranking
[151] [Discuss] Review context selection ranking factors before 1.0
[158] Add a dedicated editorial workflow for AI Context Items
[159] Issue #3586355: Avoid loading the full published catalog on the CCC overview page.
[163] Issue #3586343: Fix beta2 upgrade failures in updates 10006, 10008, and 10011.
[164] Issue #3586338: Restore Drupal 10 compatibility and repair beta3 upgrades.
[165] Issue #3586345: Add a dedicated editorial workflow for AI Context Items
[166] Show AI status indicator next to the Generate button
[167] RagTool::execute() should expose structured per-result data and check entity access
[168] Defer default search item access checking to the Search API datasource plugin
[169] [PP-1] Provide an API for performing access check on non-content entities
[170] Introduce a dedicated runtime access-checking API for AI Search / RAG filtering
[172] Support non content entity datasources
[173] Issue #3579758: Provide API for access checks on non-content entities
[174] [PP-1] Introduce a dedicated runtime access-checking API for AI Search / RAG filtering
[175] Add documentation
[176] Fix Pipeline
[177] Issue #3585537: Fix the Pipelines by adding composer.json
[178] Draft: Resolve "Add documentation"
[482] [meta] Make the 2.x runtime and workflow-language contracts explicit and tested
[491] Add validator and extractor services/methods and new setting.
[492] Add error util and handler.
[493] Resolve "Allow Token support on Assistant Controller"
[494] Resolve "Enable Drupal GitLab CI pipeline and add Unit/Kernel/Functional test coverage"
Shipped
- Field Widget Actions merged to ai module — Support Automator Chain trigger with Field Widget Actions was partially merged, enabling multi-turn AI workflows on entity edit forms without page reloads, but one MR remains open [4][18][19][20][21].
- Guardrail serialization fixes merged to ai 1.x — A guardrail-related MR was merged to the 1.x branch [32].
- OpenAI Provider batch embeddings and rate limits shipped — Merged batch embeddings support, rate limit handling, and a GPT bug fix to the ai_provider_openai module [50][51][52].
- Canvas CLI fixes for content templates and global regions — Resolved CLI push errors for unsupported label properties in content templates and media/link prop validation failures in global regions [110][112][126][134].
- Tool API bug fixes merged ahead of RC1 — Fixed REST serialization breakage, BadMethodCallException masking, HTML-escaped entity descriptions, Anthropic schema validation failures, and AI connector context data handling [93][94][95][96][97][98][100][101][102][103][104][105].
Ongoing
- Streaming chat hostname filter corruption under review — MR open for bug where plain-text hostname filtering corrupts URLs inside HTML href attributes during streamed chat responses [8][29].
- Symfony AI v0.8 platform provider adoption in progress — Large MR refactoring ai module to adopt Symfony AI component v0.8 with new @AiInferenceProvider plugin type and config entities awaits review [9][24].
- ChatMemoryInterface for chatbot history storage under development — Two open MRs propose ChatMemory plugin type for storing chat history, addressing persistent chatbot state requirements [11][27][28].
- ECA agent Tools + ReAct migration awaiting review — 4,400-line MR refactoring ECA agents submodule from AiAgentBase to modern Tools + ReAct architecture remains open [48][49].
- AI Context beta2 to beta3 upgrade path fixes in review — MRs addressing Drupal 10 compatibility and failed upgrades at updates 10006/10008/10011 after bundleless entity conversion await merge [153][156][163][164].
AI (Artificial Intelligence)
The past 24 hours saw progress on Field Widget Actions and guardrail serialization bugs. Support Automator Chain trigger with Field Widget Actions was merged, adding a base class and text plugin that allow Field Widget Actions to invoke Automator Chain workflows directly from entity edit forms without page reloads. This addresses multi-turn AI workflows that exceed single-prompt context limits.
Two guardrail-related fixes were merged into the 1.x branch: MR !1872 and MR !1880 resolve form serialization errors that prevented guardrail subforms from loading on Drupal 11.3 and 11.4.
Several issues remain under review. Streaming chat forces plain-text hostname filtering, corrupting URLs inside HTML attributes has an open MR (!1883) addressing how StreamChatMessageIteratorTrait::getHostnameFilterService() forces plain-text mode, causing HostnameFilter::filterUrlsInPlainText() to corrupt href attributes. Refactor CommonMark instance creation proposes a CommonMarkConverterFactory service to centralize configuration (MR !1881 open). Work continues on Adopt symfony/ai component v0.8 as platform provider (MR !1619), introducing @AiInferenceProvider plugins and associated config entities.
Open issues include MDXEditor fails to parse Drupal tokens in AI Agents prompts, where bracket syntax conflicts with markdown link parsing, and Add a ChatMemoryInterface for storing ChatBot chat history (two MRs open: !1885 and !1835).
How can I help on this project?
Review MR !1883 for the streaming hostname filter bug or MR !1881 for CommonMark refactoring. Pick up MDXEditor token parsing, which has no MR and needs a solution for bracket-syntax conflicts.
Contributors: Ahmad Khalil (ahmad-khalil-imagex) [1], Ann Mary Sruthy (annmarysruthy), Artem Dmitriiev (a.dmitriiev), Bruno Bruno (bbruno), Dezső Biczó (mxr576), Isaac Trogdon (dotist), Marcus Johansson (Marcus_Johansson), Prabhavathi Vanipenta (prabha1997), Rob Loach (robloach), Rodel Duterte (rduterte), Wolfgang Ziegler (fago)
Drupal AI Initiative
Activity during this period focused primarily on partnership management and onboarding workflows. Two template issues for partner onboarding were closed: Onboard Gold/Silver AI partner: TEMPLATE and Add Gold/Silver AI partner to d.o pages: TEMPLATE. These templates were used to complete onboarding for Pantheon+Omedia as a Gold partner, with both onboarding tasks and Drupal.org page updates marked closed.
Three new issues were opened for onboarding Specbee as a Silver partner: onboarding, Drupal.org page updates, and a follow-up audit report. A design request was filed to update partner badges from "Sponsor" to "Partner" terminology. Additional process issues were opened covering contributor offboarding, partner audits, and logo wall updates.
On the technical side, a new developer experience issue proposes creating a skill for consistent before/after testing of issues with optional GitLab upload to improve review consistency.
How can I help on this project?
- Help design the before/after testing skill described in Create a skill for manual before/after testing of any issue to establish repeatable review workflows.
- Pick up Update AI partner badges to use Partner instead of Sponsor, which needs badge SVG updates in the bluecheese theme.
AI Integration - ECA
Work continued on Migrate the ECA agent to the Tools + ReAct architecture (create-only) during this period. The migration aims to replace the legacy AiAgentBase architecture currently used in the agents submodule with the newer Tools + ReAct pattern. The existing implementation relies on hand-rolled control flow and three separate YAML sub-prompts (determineTask.yml, buildModel.yml, and answerQuestion.yml) called through runSubAgent(). The proposed refactor would modernize this approach to align with the current agent architecture standards. MR !14 remains open with over 4,400 lines of diff awaiting review. No commits were merged during the reporting period.
How can I help on this project?
Review MR !14 which refactors the ECA agent to use Tools + ReAct architecture. Test the migration against existing ECA workflows to ensure backward compatibility and validate the new control flow.
Contributors: Marcus Johansson (Marcus_Johansson)OpenAI Provider
Three merge requests landed during the reporting period, addressing embeddings, rate limiting, and a GPT-related bug. The add support for batch embeddings MR was merged, adding 284 lines to enable batched embedding operations. A rate limits fix was also merged, contributing 129 lines to handle API rate limiting more effectively. Finally, a GPT bug fix was merged with 55 lines changed.
No issues saw comment activity or status changes in this window, and no blockers were identified in the available data.
How can I help on this project?
Review the OpenAI Provider issue queue for unassigned bugs or feature requests without related merge requests. Test the newly merged batch embeddings and rate limiting functionality against live OpenAI APIs to verify behavior. Document any edge cases or configuration gotchas discovered during testing.
Contributors: Marcus Johansson (Marcus_Johansson) [1], Paul Sheldrake (paulsheldrake) [1]amazee.ai Private AI Provider
No merge activity occurred during the reporting period, though development continues. An open merge request proposes adding request tracking headers to all API calls to the amazee.ai service. The change introduces an X-Amazee-Client header to attribute traffic to the Drupal module and track version information across all outbound requests, including those made via AmazeeClient::makeRequest(), the OpenAI SDK PSR-18 wrapper, health checks, model configuration calls, and trial provisioning endpoints. Version detection uses extension.list.module with a fallback to "dev" for development checkouts.
A critical data loss issue has progressed to RTBC status. The bug affects deployments where multiple Search API indexes share the same Vector Database collection: deleting or clearing items from one index silently removes data from other indexes sharing that collection, due to overlapping entity identifiers. The issue remains assigned and awaiting final review before merge.
How can I help on this project?
- Review the request tracking header MR to validate the version detection logic and header implementation.
- Test the RTBC data loss fix in a multi-index Vector DB environment to confirm it resolves the issue.
Contributors: Dan Lemon (dan2k3k4)
Microsoft Azure AI
A significant refactoring effort is underway to modernize the Azure provider implementation. The merge request [#3552969] feat: Refactor AzureProvider to use OpenAiBasedProviderClientBase was opened during the reporting period, introducing 680 lines of changes to align the AzureProvider with the OpenAiBasedProviderClientBase architecture. This refactor aims to improve code reuse and maintainability by leveraging shared functionality from the base provider client. The merge request is currently awaiting review before it can be merged.
No commits were pushed directly to branches and no other issues saw activity in the past 24 hours. The refactoring work appears to be the primary focus for this module at present.
How can I help on this project?
- Review the AzureProvider refactor merge request to help verify the OpenAiBasedProviderClientBase integration and test compatibility with existing Azure AI endpoints.
- Test the refactored code against various Azure AI service configurations to identify edge cases or regressions before merge.
Contributors: Jukka Huhta (jhuhta)
Postgres VDB Provider
A new merge request was opened addressing Issue #3586862: Re-apply Attributes columns after clear+reindex cycle. The patch targets a problem where attributes columns are dropped during clear and reindex operations. The merge request modifies 40 lines across the codebase and awaits review on the 3586862-clearreindex-drops-columns branch.
No merge activity or commits were pushed during this period. The module remains ready for testing and feedback on the open merge request.
How can I help on this project?
- Review the open merge request for re-applying attributes columns after clear+reindex and provide feedback on the approach and implementation.
- Test the branch against a local Postgres VDB setup to verify attributes persistence through reindex cycles.
Model Context Protocol
The Model Context Protocol module saw continued work on authentication issues during this period. Activity focused on Token Auth is not working, which addresses two problems: a Form API states selector misconfiguration preventing the token authentication checkbox from functioning in the admin UI, and issues with token validation even when configured manually. The problem stems from an incorrect #states selector targeting :input[name="enable_token_auth"] instead of the correct :input[name="auth_settings[enable_token_auth]"] path. An open merge request (!52) with 239 lines of changes is awaiting review to resolve both authentication issues.
No merge requests were merged and no commits were pushed during this 24-hour window, though the issue remains actively assigned as part of the AI Initiative Sprint work.
How can I help on this project?
Review MR !52 to validate the Form API states selector fix and token authentication implementation. Test the changes in a local environment to confirm both the admin UI interaction and token validation work correctly across different configuration scenarios.
Contributors: Alin Ameiroaie (aalin)AI Agents
Activity this period focused on feature work and bug fixes, though no merges were completed. The Add a way to set provider tags in the runner issue was closed, which introduced optional provider tagging for config agents to help filter LLM events during debugging and monitoring.
Several merge requests saw activity. A new draft MR opened to address Give a parent agent possibility to forward request as is, which aims to reduce information loss and costs when orchestration agents forward single instructions to subagents by allowing token-based passthrough. Work continued on provider picker functionality for the 1.4.0 release, enabling per-agent provider and temperature configuration rather than relying solely on default Chat with Tools providers or event-based workarounds.
Bug fix MRs remain open for chatbot issues including search_string truncation differences between the chatbot and tool explorer, and repeating responses after clearing history when using return direct mode. Additional work is in progress on role-based tool execution and tool run limits.
How can I help on this project?
Review the open MRs for chatbot search_string truncation and chatbot history clearing to help move bug fixes forward. Test the provider picker implementation for the upcoming 1.4.0 release to identify integration issues.
Contributors: Bharat Kelotra (bharatkelotra), Marcus Johansson (Marcus_Johansson)Tool API
The Tool API module made significant progress toward 1.0.0-rc1 during this period, with multiple critical bug fixes merged and API freeze preparation underway. Five merge requests were integrated, resolving issues in REST serialization, result lifecycle handling, LLM schema generation, and context data propagation.
The MapDefinitionNormalizer and ContextDefinitionNormalizer break REST serialization issue was resolved, correcting getSupportedTypes() to restore compatibility with core's serialization system. The BadMethodCallException masking error feedback fix introduced hasResult() checks and test coverage to prevent exceptions when accessing unexecuted tool results. Schema generation for LLM consumers was improved by fixing HTML-escaped entity handle descriptions and addressing Anthropic schema validation failures caused by malformed nullable type declarations. Context data handling was corrected in the AI connector via fixes to parent context propagation.
Drupal 10.5 compatibility was restored with previous-major CI jobs now active, ensuring the module supports ^10.5 || ^11. A meta issue tracking the path to 1.0.0-rc1 identifies 16 remaining API freeze tasks covering signature corrections, identifier prefixing, cache implementation, translation, test coverage, and documentation.
How can I help on this project?
Review the open configuration-sourced input values fix (MR !111), which corrects inverted semantics in getConfigurationValue() and adds missing test coverage. Pick up translatable violation messages (no MR exists yet) to replace sprintf() calls with TranslatableMarkup. Help annotate the API surface with @api/@internal markers per the API documentation task.
Contributors: Abhisek Mazumdar (abhisekmazumdar) [1], Bryan Sharpe (b_sharpe) [1], Michael Lander (michaellander) [11]
Drupal Canvas
Three merge requests were completed during this period. The CLI push includes unsupported label property for content templates issue was resolved, ensuring the CLI tool omits the unsupported label property from POST requests while retaining it in local authored files. The Canvas CLI sync fails for media and link props in global regions fix was merged, addressing schema validation errors for media-image and link props by handling computed properties like inputs_resolved correctly during push operations. Additionally, the long-standing Automate MR review using PHPCS work was completed, introducing automated enforcement and fixing of service resolution patterns to require \Drupal::service(Something::class) over string-based service IDs wherever possible.
Active work continues on several fronts. The Canvas AI: Improve the schema of the place_components tool was merged, replacing the basic YAML string argument with a structured operations schema matching the edit_components tool. Open merge requests include enhancements to RTL support via logical CSS properties, TMGMT translation fixes for components on pinned versions, and AI tooling improvements including a Tools dropdown and an Agents & Tools settings form.
How can I help on this project?
Review the open MR !1418 addressing translatable props missing from TMGMT forms for older component versions. Test the MR !1440 fixing validation of non-required select props. Pick up the unassigned AutoSaveManager hash stability issue, which needs work on normalization and strict casting.
Contributors: **** (project_19391_bot_17a61b0edeafd5a3db3e8b2462b6c010), **** (project_19391_bot_cb443e60680723bba08a5351bf595251), Adam G-H (phenaproxima), Ben Mullins (bnjmnm), Bálint Kléri (balintbrews) [1], Canvas version bot [2], David Bravo (davidbp), Harumi Jang (hooroomoo), Jeremy Chinquist (jjchinquist), Juan Correa (jucs7) [1], Kunal Sachdev (kunal.sachdev), mariosr, Rajab Natshah (RajabNatshah), Tekla Aivazashvili (aivazashvilit), Wim Leers (wimleers) [1], wotnak [1]
Context Control Center (CCC)
Work this period focused on upgrade path stability and Drupal 10 compatibility ahead of the 1.0 release candidate. An upgrade failure from beta2 was identified in updates 10006 and 10011, stemming from the bundleless entity conversion; the fix addresses NULL constraint violations and stale Content Moderation field definitions. Drupal 10 compatibility issues introduced in beta3 were traced to attribute-based hook discovery not available in Drupal 10; the solution includes explicit service registration for DiffHooks, DynamicEntityReferenceHooks, and SchedulerHooks, plus restoration of PHP 8.1 support.
Design work progressed on scope plugin improvements. Scope plugin persistence API refactoring aims to complete the manager orchestration layer and encapsulate target entity storage, removing special-case logic from AiContextItemForm and entity hooks. Renaming entity bundle and target entity scope plugins continues to improve developer experience around bundleless content entities. Performance optimization in AiContextOverviewController::overview() addresses unbounded published-ID queries; the proposal converts an early-break pattern to a LIMIT 1 scope-index query. Discussions opened on context item priority ranking and a broader review of selection factors before 1.0.
QA planning began for comprehensive manual and automated testing before stable release.
How can I help on this project?
- Review MR !223 for Drupal 10 compatibility and hook service registration fixes.
- Review MR !229 to validate the beta2 upgrade path repairs in updates 10006, 10008, and 10011.
- Test the current beta manually on Drupal 10 and 11 installations to help identify additional upgrade or compatibility issues before RC1.
Contributors: Kristen Pol (kepol), Levente Besenyei (LeventeB), Pravesh Poonia (Pravesh_Poonia), Reinhold Schachner (reinimax), Tamas Balog (tbalog)
AI CKEditor
A new merge request was opened to Show AI status indicator next to the Generate button. The change mirrors the AI Writer status text into a compact indicator positioned next to the Generate button, addressing a usability issue where users previously had to scroll within the modal to see the status below the response editor. The 75-line diff aims to provide immediate feedback when a generation request is in progress.
How can I help on this project?
- Review the open AI status indicator merge request, testing the UX improvement and providing feedback on the implementation approach.
- Check the module's issue queue for unassigned bugs or feature requests that could benefit from a patch or new MR.
Contributors: Ricardo Castañeda (cadence96)
AI Search
Work this period centered on improving access control and data exposure in the AI Search module. Four issues saw active discussion and MR updates around how the module handles security, datasource flexibility, and result metadata.
Two new access-control proposals were opened as spinoffs from earlier work. Defer default search item access checking to the Search API datasource plugin proposes refactoring the hardcoded entity access checks in SearchApiAiSearchBackend to delegate to datasource plugins, enabling custom and non-content entity datasources to enforce their own access rules. A related issue, Introduce a dedicated runtime access-checking API for AI Search / RAG filtering, suggests a new layer for context-specific filtering beyond standard view access—such as excluding sensitive data from LLM requests or dynamically restricting results by chatbot persona.
A separate issue highlights that RagTool::execute() should expose structured per-result data and check entity access. Currently, RagTool::execute() flattens search results into a single string, discarding per-result metadata like entity IDs and scores, which blocks consumers from retrieving source citations or performing access checks on the underlying entities.
Contributors: David Bondor (superbondor), Dezső Biczó (mxr576)
How can I help on this project?
- Review MR !74 for the datasource access delegation refactor, focusing on backward compatibility and edge cases.
- Review MR !75 introducing the runtime access API; test coverage is explicitly needed.
- Pick up RagTool::execute() structured data exposure, which has no MR yet and needs implementation.
AI translate
No merge requests were merged during the reporting period. Two open issues saw activity: work continued on Add documentation, which has a draft MR open to provide documentation for the module, and Fix Pipeline, where an open MR aims to resolve broken phpstan and phpunit pipelines on the 2.0.x branch by adding composer.json. Both issues remain in progress with no commits pushed in the last 24 hours.
How can I help on this project?
Review the open merge request for Fix Pipeline to help unblock CI/CD. Alternatively, review the draft documentation MR to provide feedback on completeness and clarity for module users.
Contributors: Marcus Johansson (Marcus_Johansson), Rob Loach (robloach)
FlowDrop
The FlowDrop project closed a major specification and testing milestone during this period, finalizing a comprehensive runtime and workflow-language contract for the 2.x branch. Over 70 specification-registry issues were closed, documenting behavior across validation, storage, orchestration, state management, error handling, interrupts, branching, data delivery, compilation, expression evaluation, port exposure, schema derivation, and edge semantics. Each rule now cites its implementation and binding test, enforced by scripts/spec-coverage.php --check.
Key contract clarifications include:
- Error handling unified: All four expression-consuming processors (DataMapper, DataExtractor, DataShaper, PromptTemplate) now wrap engine errors as
\RuntimeException, failing the node and enabling error-edge routing (LANG-29). Direct-sync error routing was brought into line with the pipeline engines (ERR-13), and cancellation is now announced viaPipelineCompletedEventacross all runners (ORC-15). - Validation tightened at save: The workflow validator now refuses unresolvable node types (R9), edges into hidden ports (R7), workflow-exposure entries targeting hidden ports (R10), invalid expressions per engine (R11), and structural defects like self-edges (R12) and duplicate parallel edges (R13). Validation re-runs at launch (VAL-LAUNCH), and the session-turn door now applies the same strict input checking as the launch door (API-2).
- Status reporting formalized: The pipeline API's
node_statuseskeys are guaranteed to be workflow node ids (PIPE-4), job status summaries have one shape derived from theJobStatusenum (PIPE-2), and vocabulary guarding is scoped to prevent unknown statuses from raising warnings (PIPE-3). Entity statuses are now backed enums (STORE-11), and a finished session turn leaves the sessioncompletedrather thanidle(STORE-12). - Port exposure cascade: Effective exposure resolves from instance
config.ports[].exposedoverride, then metadataexposedByDefault, then TRUE (EXPO-2). Hidden outputs are stripped at production (EXPO-11–14), and hidden inputs receive no runtime value (EXPO-10). The one-time exposure freeze (update_10004/10005) is documented (EXPO-9), and the seam where a post-install param has no config key is noted (EXPO-8). - Parameter resolution precedence: Runtime (Priority 1) when
connectable && exposed, config (Priority 2) whenconfigurable, default (Priority 3) unconditional (CFG-4–6). Presence isarray_key_exists, so an explicit NULL wins (CFG-7). - Schema and metadata: The run path re-enriches from the live node type (SCH-29), executor plugin id resolves from the entity (SCH-28), and the wire shape is lean-by-divergence (SCH-27). Reserved config props and unified I/O ports are injected per documented rules (SCH-11–18, SCH-21).
- Storage and API: All nine JSON-accepting controllers decode via
ApiResponseTrait::decodeJsonRequest()with an 8 MiB, depth-64 gate (API-1, STORE-1). Validation failures at the REST boundary yield 422 with{success, error, details}(STORE-5), and a session with no workflow is a dedicated 409 (API-3).
Supporting changes: the node config-validate endpoint was retired (API-4), validateParams() deleted from the processor contract (R6.k), and dead API surfaces (status-polling endpoints, the metrics tracker, getSupportedInputTypes(), unused orchestrator methods) removed. WorkflowDTO::fromArray() is now read-path-only (STORE-10), bundle import runs its gates in a fixed order and rolls back on refusal (STORE-9), and preSave slims transient canvas state in two independent passes (STORE-6).
Three user-facing bugs were also closed: the AI Assistant no longer freezes after applying changes (fixed from 1.5.0), pipelines can now be viewed per workflow via a new operation link, and skipped nodes display a "Skipped" tag instead of remaining "Pending".
How can I help on this project?
Review the new specification registry in docs/development/specification-registry.md and flag any runtime behavior that contradicts a documented rule. Test edge cases around expression error handling (LANG-21–26) with processors that declare configurable && required parameters. Audit controller exception handling to ensure no endpoint still catches \RuntimeException wide or echoes getMessage() to the client.
AG-UI
Four significant features were merged over the past 24 hours, substantially improving security, error handling, and test coverage for the AG-UI module.
The Add config for max characters feature was merged, introducing new validator and extractor services to prevent token exhaustion exploitation. A configurable character limit now denies chat requests that exceed the threshold before they reach remote assistants.
Better Error Handling in chat was also shipped, addressing an issue where non-2xx HTTP responses (such as 403 errors from JWT/flood checks) were displayed verbatim in the chat UI. The new error utility and handler provide user-friendly error messages instead of raw response bodies.
Anonymous user security improved with the merge of Allow Token support on Assistant Controller, which adds token-based authentication to mitigate bot abuse via direct POST requests to agent endpoints.
Finally, Enable Drupal GitLab CI pipeline and add Unit/Kernel/Functional test coverage establishes automated testing infrastructure with a standard .gitlab-ci.yml configuration and comprehensive PHPUnit test coverage for both the main module and agui_mercure submodule.
How can I help on this project?
Review the open issues to identify bugs or feature requests without assigned merge requests. Test the newly merged character limit validator and error handling features in your own Drupal environment and report any edge cases. Contribute additional test coverage for untested code paths identified during CI runs.
Contributors: Ahmad Khalil (ahmad-khalil-imagex), Bryan Sharpe (b_sharpe)References
[1] MDXEditor fails to parse Drupal tokens in AI Agents prompts
[2] MDXEditor throws error when prompt includes a colon (:) character
[4] Support Automator Chain trigger with Field Widget Actions
[9] Adopt symfony/ai component v0.8 as platform provider
[11] Add a ChatMemoryInterface for storing ChatBot chat history
[18] Issue #3586602: Add a field widget action base class and text plugin to run...
[19] Issue #3586602: Add a field widget action base class and text plugin to run...
[20] Issue #3586602: Add a field widget action base class and text plugin to run...
[21] Issue #3586602: Add a field widget action base class and text plugin to run...
[24] feat: #3586427 Adopt symfony/ai v0.8's Platform concept
[27] Issue #3586589: Add ChatMemory plugin type
[28] fix: #3586589 Do not assume action definitions have a type when deriving action plugin functions
[29] bug: #3586624 Streaming chat forces plain-text hostname filtering, corrupting...
[32] Issue #3586620 Merge 1.3.x guardrails
[48] Migrate the ECA agent to the Tools + ReAct architecture (create-only)
[49] Resolve "Migrate the ECA agent to the Tools + ReAct architecture (create-only)"
[50] add support for batch embeddings
[51] Resolve #3612042 "Rate limits"
[52] Resolve #3613982 "Bug with gpt"
[93] Entity handle descriptions are HTML-escaped in LLM-facing schemas
[95] Anthropic rejects tool schemas: nullable optional inputs render an object under "type"
[96] tool_ai_connector throws `BadMethodCallException` when the tool has not executed
[97] [AI Connector] - Context Data missing after execute
[98] MapDefinitionNormalizer and ContextDefinitionNormalizer break REST serialization (same as #3568588)
[100] Resolve "Entity handle descriptions are HTML-escaped in LLM-facing schemas"
[102] Resolve "Anthropic rejects tool schemas: nullable optional inputs render an object under "type""
[103] Resolve "tool_ai_connector throws `BadMethodCallException` when the tool has not executed"
[104] Issue #3576586 by b_sharpe: Set parent context data as well as input.
[105] Issue #3582939: Fix getSupportedTypes() in MapDefinitionNormalizer and...
[110] CLI push includes unsupported label property for content templates
[112] Canvas CLI sync fails for media and link props in global regions
[126] fix(CLI Tool): #3591899 CLI push includes unsupported label property for content templates
[134] fix(CLI Tool): #3591897 Canvas CLI sync fails for media and link props in global regions
[153] beta2 upgrade fails at updates 10006 and 10011 after bundleless entity conversion
[156] Restore Drupal 10 compatibility and repair incomplete beta3 upgrades
[163] Issue #3586343: Fix beta2 upgrade failures in updates 10006, 10008, and 10011.
[164] Issue #3586338: Restore Drupal 10 compatibility and repair beta3 upgrades.