Daily Digest
Daily Digest – 10 August 2026
2026 Capabilities Progress
- Page generation — Progress was made fixing a critical bug where AI-generated pages fail completely when an invalid region name is specified [153], and work continues on the AI page builder agent and component placement tools [122][129]. Next milestone is completing the client-side orchestration loop and ensuring robust error handling.
- Context management — Significant progress toward the 1.0 stable release: the token budget system was simplified by removing the redundant max_items limit [201], priority-based selection ordering was implemented [198], and documentation for roles and permissions was completed [205]. Next milestone is completing QA testing before final release.
- Background agents — Planning continues on the architectural challenge of supporting sessionless, queued, and scheduled AI execution [12], but no code progress occurred today. This remains a blocker for automated content generation and scheduled workflows.
- Design system integration — Work advanced on Canvas AI integration with fixes for component placement validation [153] and improvements to the props exposure system [123], while the code editor now shows better previews of content-entity-reference data [162]. Next milestone is completing the client-side orchestration and tools dropdown UI [151].
- Content creation and discovery — The AI CKEditor integration saw a fix for Gemini 2.x model compatibility [10], and search relevance improved with a reranker fix prioritizing chunk text over indexed fields [8]. A critical content loss bug in text generation automators remains under investigation [11].
- Advanced governance — Canvas made progress on conflict resolution with autosave hash stabilization work [173] and workspace staging exploration [134], while audit capabilities were strengthened through cache tag inheritance fixes [169] and translation synchronization improvements [174].
- Intelligent website improvements — Feedback collection capability was added to the Langfuse observability module [223], enabling sites to capture user ratings that can inform AI learning and optimization. The thumbs-up/down icon set was added to support feedback interfaces [9].
- Multi-channel campaigns — Substantial progress on AI Translation toward the DrupalCon Rotterdam demo [218]: work began on translation result caching and deduplication [208], automatic translation of referenced taxonomy terms [214], and refactoring to support tool-based and agent-driven workflows [213].
Shipped
- AI Initiative partner outreach communications completed — More than 30 partnership conversations were held with organizations including Calibrate, Oomph, Wunder, Pantheon, EPAM, and others, with communication tracking issues closed to record completed calls and outreach [19][20][21][22][23][24][25][26][27][28][29][30][31][32][33][34][35][36][37][38][39][40][41][42][43][44][45][46][47][48][49][50][51][52][53][54][55][56][57][58][59][60].
- Tool API execution contract and validation hardened — Execution interfaces were clarified, input validation now covers all items instead of just the first, error messages became translatable, and AI integration was strengthened to handle common formatting variations automatically [104][105][106][107][108][109][110][111][112][113][114][115][116][117][118][119][120][121].
- Context Control Center simplified configuration and documented permissions — Administrators now configure only token budgets rather than both item counts and budgets, reducing complexity while maintaining control, and role assignment guidance was published [201][205].
- Canvas translation validation and cache handling fixed — Publishing symmetrically-translated pages with non-translatable component edits now validates correctly, and array property shapes properly inherit cache tags to ensure invalidation works as expected [174][169].
- Langfuse feedback collection capability released — A new submodule enables sites to capture and score user responses to AI features, supporting measurement of satisfaction and response quality in production [223].
Ongoing
- AI module prompt rendering and content generation defects under review — HTML escaping corrupts context before reaching providers, text generation silently drops content with certain field configurations, and Gemini 2.x model compatibility issues remain under investigation [4][11][10][14].
- AI Agents content creation and interface improvements in review — Seven merge requests address data handling bugs preventing successful article creation, schema editor upgrades, and field information leaks, with all awaiting final review [69][70][71][72][73][74][75][76][77][78].
- Canvas AI page builder region validation under development — When AI assistants specify non-existent regions, the entire page build is discarded rather than validated before placement, with a fix proposed but not yet in progress [124][153].
- Context Control Center selection behavior and documentation nearing 1.0 — Work continues on scoring alignment, token count persistence for budget visibility, and documentation covering real-world use cases and integration patterns [184][192][188][189][198][199][200][204][206][207].
- AI Translate demonstration and cost-saving features in development — DrupalCon Rotterdam demo requires one-click translation from editing interface and multilingual search, with caching, deduplication, and automatic reference translation under active development [218][208][214].
AI (Artificial Intelligence)
The AI module saw continued community coordination and issue triage over the past 24 hours. A contribution meeting was held to align the community on priorities and discuss active work. Several new defects and integration requests were identified and are now being addressed.
Key issues moving forward include a prompt rendering bug where HTML content is unintentionally escaped before being sent to AI providers, and a content loss issue affecting text generation workflows when using certain field configurations. A UI error preventing tool deletion has reached ready-to-be-committed status. Work continues on embedding support via Symfony AI and test infrastructure documentation to improve contributor onboarding. An incompatibility with newer Gemini models has been documented and is under investigation.
The plan to support background AI execution remains an open architectural challenge that will unblock use cases like scheduled content generation and queue-based processing.
How can I help on this project?
- Champion a decision on the background execution architecture to unblock queued and scheduled AI workflows.
- Consider resourcing for compatibility testing across major AI providers (OpenAI, Gemini, Anthropic) to reduce integration defects.
Contributors: Ann Mary Sruthy (annmarysruthy), Rob Loach (robloach), Scott Euser (scotteuser), Shivam Sen (shivamsen_12579)
Drupal AI Initiative
Activity over the past 24 hours focused on two main areas: partnership outreach and planning for the upcoming DrupalCon Rotterdam demonstration.
Significant effort was invested in expanding the initiative's partner base. More than 30 outreach conversations were documented and closed, resulting in commitments from multiple organizations including Calibrate, Oomph, Specbee, Cambridge Press, Reading Room, Wunder, Mearra, Drupalforge, E-sepia, Integral Vision, Brainsum, Optasy, Drunomics, Kalamuna, Pantheon, Esinergia, Foster Interactive, EPAM, iTech4Web, Pronovix, and Zivtech. Several additional organizations are still considering participation. This partnership growth directly supports the initiative's funding and collaborative development capacity.
Planning continued for the Rotterdam demonstration, which aims to showcase multiple AI capabilities working together in a single site that attendees can deploy themselves. The UX team met to discuss content requirements, tone guidelines, and compliance with EU AI Act disclosure requirements. Work is also underway to update partner badges to reflect the collaborative "Partner" terminology rather than "Sponsor."
How can I help on this project?
- Ensure design resources are allocated to complete the partner badge updates before Rotterdam
- Support partnership follow-up with organizations still considering participation to secure additional funding commitments
- Help prioritize demo content creation to meet the Rotterdam timeline
Model Context Protocol
The Model Context Protocol module saw limited activity during this period, with two authentication-related issues receiving updates. Both items involve improving how the module handles secure connections between clients and servers.
Work continues on Token Auth is not working, which addresses problems preventing administrators from enabling token-based authentication through the configuration interface. This issue affects the usability of security features that control how external systems connect to Drupal.
Additionally, Add OAuth Scope Validation for MCP Authentication remains under development. This work aims to give administrators better control over what permissions are granted when external clients authenticate, ensuring that only necessary access rights are approved rather than automatically accepting all requests.
No code was merged or committed during this period. Both issues are assigned and part of ongoing sprint work, indicating steady progress within the AI Initiative's development roadmap.
How can I help on this project?
- Ensure the team has sufficient review capacity to evaluate and merge authentication fixes once development is complete.
- Clarify security policy requirements for OAuth scope handling to guide technical implementation decisions.
AI Agents
The AI Agents module saw significant development activity focused on fixing defects and improving the authoring experience. Seven new merge requests were opened addressing issues ranging from data handling bugs to interface improvements.
Work is underway to fix a bug where the content creation tool was storing field values incorrectly, which prevented AI assistants from successfully creating articles and other content. Separately, improvements are being made to the schema editor used when configuring agents, replacing a basic text box with a specialized code editor that validates JSON syntax and highlights errors as administrators work.
Additional merge requests target bugs in field information handling, tool status reporting, and support for newer AI model series. A regression test was added to ensure agents remain immediately usable after creation without manual cache clearing.
One exploration issue was closed during the period: work investigating how to export and synchronize Drupal-defined agents to external AI platforms like Claude Code. This signals a decision point on integration strategy with third-party agent ecosystems.
All open merge requests are in review. The module continues to mature its content creation capabilities and administrative tooling.
How can I help on this project?
- Allocate reviewer capacity to accelerate the seven open merge requests, particularly the content creation bug fix which blocks practical use cases.
- Clarify strategic direction on external platform integration following closure of the export/sync exploration work.
Contributors: Ahmad Khader (Ahmad-Khader), Bharat Kelotra (bharatkelotra), Joshua Fernandes (joshua1234511), Prabhavathi Vanipenta (prabha1997)
Tool API
The Tool API module made significant progress toward its RC1 release during this period, with 18 issues closed and 17 merge requests integrated. The work focused on hardening the plugin contract and input/output system ahead of the interface freeze.
A major area of activity was fixing validation and input handling bugs that could have caused tools to fail in production. Multiple inputs now validate all items instead of just the first one, and list-type inputs are now checked properly. Input values that cannot be stored now produce clear error messages instead of generic exceptions. Error messages throughout the system are now translatable and no longer expose raw technical details to end users.
The execution contract was reworked to use clearer naming and properly typed interfaces. An unimplemented caching interface was removed rather than shipped incomplete. Several identifiers were prefixed to follow Drupal naming conventions and avoid namespace collisions with other modules.
Integration with AI systems was strengthened: the connector now handles tools with unmet requirements gracefully, input schemas now include richer constraint information, and the system automatically corrects common formatting variations that AI models produce (such as sending JSON numbers instead of strings for decimal inputs, or wrapping single values in arrays).
Comprehensive test coverage was added for the typed input and output system, configuration precedence, and validation flows. One open issue tracks a schema conversion bug affecting tools that use bare regex patterns.
How can I help on this project?
- Confirm timeline and scope expectations for the RC1 release to ensure the remaining schema bug can be resolved without delaying the freeze.
- Support documentation resourcing: project page automation is ready but needs enablement, and tool authoring guidance would benefit from dedicated technical writing.
Contributors: Ajit Shinde (ajits), Alex Urevick-Ackelsberg (alexua) [2], Michael Lander (michaellander) [15]
Drupal Canvas
Drupal Canvas made progress across data integrity, translation workflows, and AI capabilities during this reporting period.
A field configuration conflict affecting test modules on the standard profile was resolved, improving compatibility for developers manually testing content-entity-reference features. A fix for array prop shape cache tag inheritance was merged, ensuring components with array-based properties (such as multi-value image fields) correctly invalidate when underlying configuration changes. Work advanced on normalizing autosave hash generation, consolidating duplicated typed-data logic to strengthen conflict detection reliability.
Two translation-related issues moved forward: a publishing validation bug affecting symmetrically-translated pages was merged, and discussion continued on aligning Canvas translation operations with core content_translation and TMGMT. An AI page-builder issue where incorrect region names abort entire builds is under review, with a fix proposed to validate regions before placement.
A header region height calculation bug introduced in 1.9.0 was reported, blocking editor interaction on some sites. Work on editable stored patterns was merged, allowing users to rename and modify patterns after creation. A cache context tagging error in content template normalization was identified and is being corrected.
How can I help on this project?
- Prioritize resolution of the header height regression blocking editor usability on production sites.
- Allocate design resources to improve context clarity in the settings form when components are out of view.
- Support decision-making on the scope and timeline for translation workflow alignment to clarify product direction.
Contributors: **** (project_19391_bot_cb443e60680723bba08a5351bf595251), Adam G-H (phenaproxima), Alamgir Hossain (alamgir.hossain.cse), Ben Mullins (bnjmnm), Christian López Espínola (penyaskito) [1], Dave Long (longwave), Feliksas Mazeikis (f.mazeikis), Fons Vandamme (f0ns), Kunal Sachdev (kunal.sachdev), Lauri Timmanee (lauriii), Nodar Davituri (Davituri), Rajab Natshah (RajabNatshah), Ted Bowman (tedbow), Tim Plunkett (tim.plunkett) [1], Wim Leers (wimleers)
Context Control Center (CCC)
The project advanced toward its 1.0 stable release during this period with two significant changes merged. The first simplifies how the system limits the amount of information sent to AI agents. Previously, site administrators configured both a maximum number of context items and a token budget (a measure of content size). This created unnecessary complexity, since context items vary widely in length. The change to Remove max_items context limit and rely on the token budget means administrators now configure only the token budget, providing more accurate control over what reaches AI agents while reducing setup complexity.
The second merged change provides documentation for the role and permission matrix, giving site builders clear guidance on how to assign permissions to different types of users—from AI feature consumers to content authors to system administrators.
Work continues on several fronts preparing for stable release. Progress is underway on improving how the system selects and orders context when multiple items compete for limited space, persisting token counts to give editors better visibility into budget usage, and aligning scoring behavior to make selection more predictable. Documentation covering real-world use cases and integration patterns is also in development.
How can I help on this project?
Support resourcing for the QA testing phase, which requires test scripts and coordination before final release. Consider whether roadmap decisions are needed around post-1.0 features currently proposed for future sprints. Ensure documentation and use-case materials receive stakeholder review to confirm they address real deployment scenarios.
Contributors: Abhinav Jha (ajabhinavjha30), Kristen Pol (kepol) [2]AI Dashboard
The AI Dashboard module saw focused maintenance work during this period. A visual refinement was completed to ensure consistent display of descriptive text throughout the interface, improving overall readability and user experience.
This represents steady progress on polish and usability as the module matures. No major risks or blockers were identified during this period.
How can I help on this project?
- Consider whether the project needs dedicated design or user experience support to identify further usability improvements.
- Assess whether additional testing resources could help accelerate the path to a stable release.
Contributors: Rob Loach [1]
AI translate
The AI translate project saw significant planning activity over the past 24 hours, with fourteen issues updated as teams prepare for a demonstration at DrupalCon Rotterdam 2026. Work is underway to make the module a production-ready alternative to manual content translation, with particular focus on cost reduction, editor experience, and integration with multilingual search.
Key areas of progress include:
- A meta issue tracking the Rotterdam demo was opened, establishing concrete delivery goals: editors must be able to translate pages directly from the editing interface, and search results must work in translated languages.
- Two cost-saving features are in development: caching and deduplication to avoid re-translating unchanged content, and automatic translation of referenced content like taxonomy terms to reduce manual work.
- A usability improvement addressing confusing labels in the one-click translation interface was closed for one version and remains open for another.
- Work began on standardised issue templates to improve project governance.
Several bugs affecting media translation and layout builder workflows remain open and postponed, which is typical for a module at this stage.
How can I help on this project?
Confirm resource allocation for the DrupalCon Rotterdam demo delivery. Clarify whether automatic translation of referenced entities should be opt-in or default behaviour to unblock the design decision. Consider funding a dedicated QA cycle for the postponed media and workflow bugs once core features stabilise.
Contributors: Christoph Breidert (breidert)FlowDrop
During the past 24 hours, FlowDrop reached a significant quality milestone by strengthening its internal code analysis to the highest available standard. The project advanced through two major quality levels in succession, improving type safety throughout the platform. This work touched every component of the system, including workflows, pipelines, sessions, jobs, memory systems, chat functionality, and the orchestration layer.
These improvements reduce the likelihood of runtime errors and make the codebase more maintainable over time. The changes ensure that data flowing through the system is more predictable and easier to validate, which should result in more reliable behaviour for users. Additionally, spelling checks were reinstated and British English was adopted as the project's documentation standard, improving consistency across all written materials.
This type of foundational work does not deliver immediately visible features but positions the project for faster, safer development of new capabilities in the future.
How can I help on this project?
Consider clarifying the roadmap priorities for user-facing features now that code quality has been strengthened. If the project is approaching a release milestone, allocating time for user testing or documentation review could ensure a smooth launch.
Contributors: Shibin Das [60]
Langfuse
The Langfuse module made notable progress in the last 24 hours with the completion of work to enable user feedback collection. A new feedback capability was merged, adding a dedicated submodule that allows sites to capture and score user responses. This enhancement will enable organizations to gather structured feedback data, which can inform product improvements and better understand how users interact with AI-powered features.
The change represents a significant expansion of the module's functionality, moving beyond basic tracking to include mechanisms for measuring user satisfaction and response quality. This positions the module to support more comprehensive observability of AI features in production environments.
How can I help on this project?
Consider allocating resources for user testing of the new feedback features to validate real-world usability. Support outreach to early adopters who could provide case studies demonstrating business value. Evaluate whether additional investment is needed to accelerate progress toward a stable release.
Contributors: Abhisek Mazumdar (abhisekmazumdar) [1]
AG-UI
No development activity was recorded during this period. One new performance issue was opened concerning chunkDelay/chunkPadding applied per-event compounds into real latency/timeout risk on long or tool-heavy runs. The report identifies that artificial delays and padding are being applied to every event sent to the browser, not just content chunks. For conversations involving multiple steps or tool usage, this overhead accumulates and can add several seconds of unnecessary delay to each response, which may affect user experience in production deployments.
The issue remains unassigned and no solution is yet in development. Given the module's maturity stage, open performance issues are expected as the project evolves.
How can I help on this project?
- Allocate developer time to investigate and resolve the performance overhead issue, particularly if this module supports user-facing or time-sensitive workflows.
- Clarify priority: decide whether optimising response times is critical for the current release or can be deferred to a later phase.
References
[1] Add AIDmi to Other modules/recipes that work with the AI module
[2] Drupal AI Contribution meeting 2026-08-10
[8] `AiReranker::extractItemText()` should prefer chunk text over configured indexed fields
[9] Add thumbs-up and thumbs-down icons to the shared AI icon set
[10] ai_ckeditor: streamGenerateContent causes 400 Bad Request with Gemini 2.x models
[12] [PLAN] Propagate and enforce an explicit executor for sessionless, queued, and outside-in AI runs
[14] bug: #3586661 Twig autoescaping in AiPromptHelper::renderPrompt() corrupts {{...
[15] #3582633: Add Functional JavaScript testing conventions and validation script
[19] Communication Binarywork to join initiative
[20] Communication Genero inc to join initiative
[21] Communication Smile to join initiative
[22] Communication Evolvingweb to join initiative
[23] Communication Digital polygon to join initiative
[24] Communication Sparkfabrik to join initiative
[25] Communication Promet source to join initiative
[26] Communication Redhat to join initiative
[27] Communication Omedia to join initiative
[28] Communication Faktorial to join initiative
[29] Communication NTTdata to join initiative
[30] Communication Swis to join initiative
[31] Communication Hintogroup to join initiative
[32] Communication Mobomo to join initiative
[33] Communication Kadabra IT to join initiative
[34] Communication EPAM joining
[37] Call Zivtech to join Initiative
[38] Communication Joshi consulting
[39] Communication Civiactions
[40] Call IOgroup CEO
[41] Call 2 calibrate
[42] Call 1 calibrate
[43] Call with Oomph
[44] Communication with Specbee
[45] Call with Cambridge press
[46] Call with Reading room to join initiative
[47] Went to see Vesa from Wunder in Cascais to join AI initaitive
[48] Met with team Mearra in Athens
[51] Call/mail with Yorgos E-sepia
[52] Call with integral vision
[53] Call with Brainsum
[54] Call with Optasy
[55] Call with wolfgang Drunomics
[56] Call with Kalamuna
[57] Call 2 with Josh from Pantheon
[58] Call 1 with Josh from Pantheon
[59] Call with Esinergia
[60] Call with Aidan Foster interactive
[69] ContentEntitySeeder stores multi-property field values as Array
[70] Issue#3586025:GetEntityFieldInformation-Leaks-Target_entity_type-Target_bundle...
[71] Issue
[72] Issue3569280:AI-Agents-Explorer-Chat-Generation-Does-Not-Support-Series-Models fixes
[73] Issue#3566126:Force-Value-Dropped-Tool-Property-Restrictions fixes.
[74] Issue #3560681: Add per-tool execution ordering constraints for agent loops.
[75] Issue#3565169:Schema-Error-AI-Agents-CKEditor-Plugin fixes.
[76] #3586042: Use the ai_json_schema editor for the structured output schema field.
[77] Issue #3586042 Use the `ai_json_schema` editor for the AI Agent structured-output schema field
[78] test: #3586021 Add regression test for ai_agent plugin cache invalidation
[104] fix: #3582986 require the logger channel and document the subclass redeclaration contract
[105] fix: #3582985 cast ArrayObject schema values to arrays before building AI tool properties
[106] Fix fromDataDefinition: fall back for missing labels and toArray type keys.
[107] Resolve "Coerce JSON numbers to strings for decimal inputs"
[108] Enforce checkRequirements() in execute() and exclude unmet tools from the AI function list.
[109] Add kernel coverage: locked/configuration inputs, refiner flow, definition...
[110] fix: #3582964 own execution contract: result value interfaces, accessors on...
[111] fix: #3582947 tool_ai_connector does not handle tools returning list of entities
[112] fix: #3582962 correct API signatures: factory overrides, null context values,...
[113] fix: #3582965 drop the unimplemented cacheability contract from ToolInterface
[114] fix: #3582963 prefix the adapter alter hook and cache key; keep the generic...
[115] fix: #3582982 validate list definition items and name failing positions
[116] Make input violation messages translatable; log unexpected exceptions instead...
[117] fix: #3582961 fail closed when tool input is invalid or missing
[118] Rethrow un-storable input values as InputException naming the input.
[119] fix: #3582960 validate every multiple input item
[120] Extend input coercion: JSON-string structures, enum near-misses, datetime...
[121] Resolve "Emit richer JSON Schema: map remaining constraints and type formats"
[122] Canvas AI: Add a dev page builder agent and wire the placement tools
[123] Canvas AI: Expose Props of Blocks to the Agent
[124] Canvas AI: page builder discards the whole build when the LLM names a region that does not exist
[129] Canvas AI: Client-side orchestration loop for Canvas AI(POC)
[134] Stage Canvas autosaves in a dedicated Workspace
[151] Canvas AI: Add Tools dropdown to chat UI
[153] fix: #3591876 Validate the target region before placing components
[162] Add a entity reference prop data shape preview to code editor
[169] #3591917 Array prop shapes inherit their item shape's cache tags
[173] refactor(Conflict resolution): #3591785 Strengthen AutoSaveManager to generate stable hashes
[174] fix: #3591820 Synchronize non-translatable component inputs before validating auto-save publish
[184] Align scope scoring, language service, and contextual selection behavior
[188] Document real-world use cases for CCC 1.0
[189] Document how to use RAG with CCC 1.0
[192] Persist context-item token counts and show token-budget usage in CCC UI
[198] Issue #3586376: Add context item priority field and selection tie-breakers.
[199] Issue #3586392: Clarify and stabilize scope plugin extension boundary for 1.0.
[200] Issue #3586388: Align scope scoring and contextual detection.
[201] Issue #3586378: Remove max_items context limit and rely on token budget.
[204] Issue #3586379: Persist token counts and show budget usage in CCC UI.
[205] Issue #3586395: Document the AI Context role and permission matrix for 1.0.
[206] Issue #3586375: Install target_entities storage when DER is enabled later.
[207] Issue #3586383: Pre-1.0 context selection reliability and diagnostics follow-up.
[208] Feature: Translation result caching and cross-field deduplication
[213] Refactor translation workflow to support Tool API and agent-driven translation
[214] Auto-translate referenced taxonomy terms (and other translatable entities) when translating a node
[218] [META] AI Translation — DrupalCon Rotterdam 2026 demo
[223] Issue #3548465: Add createScore() for feedback and a langfuse_feedback submodule
Shipped
- Tool API: Major API finalization batch merged — Sixteen merge requests landed covering signature corrections, execution contract rework with ExecutableResultValueInterface, input/output pipeline hardening including multi-item validation fixes[96][92], schema enhancements with PCRE-to-ECMA pattern conversion[98], extended LLM value coercion[97][85], and prefixed module identifiers[90].
- Tool API: checkRequirements() enforcement and contract cleanup — Requirements now enforced in execute() and unmet tools excluded from AI function lists[80], CacheableDependencyInterface dropped from ToolInterface[89], and violation messages made translatable with logger injection[93].
- Context Control Center: max_items limit removed — The overlapping max_items configuration has been eliminated in favor of token budget as the sole module-wide limit for context selection[182][201].
- Canvas: Cache integrity fixes merged — ContentTemplate::normalizeForClientSide() no longer registers list cache contexts as cache tags[128][161], and array prop shapes now inherit cache tags from their item shapes[138][169].
- Canvas: Stored pattern editing and data integrity hardening — Editing stored patterns now supports component addition, removal, and renaming[170], PHPStan rule added to prevent needs*() config detectors from mutating entities[149][178], and non-translatable component inputs synchronized before publish validation[145][174].
Ongoing
- AI module: Twig autoescaping corruption bug — AiPromptHelper::renderPrompt() double-escapes entities and strips HTML from context tokens due to Drupal's HTML autoescaping in the Twig environment, corrupting data before it reaches providers[4][14].
- AI Agents: ContentEntitySeeder multi-property field bug — The MCP server's content entity seeder tool drops one level of nesting when storing multi-property field values, writing literal "Array" strings instead of the intended data structure[65][69].
- Tool API: Bare regex patterns dropped from JSON schemas — convertPcreToEcma() incorrectly treats bare patterns as delimited, causing undelimited PCRE patterns to be dropped from emitted JSON schemas[79].
- Context Control Center: Priority field and token budget UI — Priority field for editorial control over selection ordering[181][198], token count persistence and budget usage indicators[192][204], and scope scoring alignment[184][200] are under review for 1.0 readiness.
- AI translate: DrupalCon Rotterdam 2026 demo planning — Meta issue opened for end-to-end multilingual translation demo covering Spanish, German, and French content[218], with recipe creation[219] and issue template MR[220][222] in progress.
AI (Artificial Intelligence)
The past 24 hours brought steady progress across several fronts, though most work remains in review. A critical bug was identified where Twig autoescaping in AiPromptHelper::renderPrompt() corrupts {{ context }} and {{ raw_context }} before they reach the provider. The issue stems from Drupal's HTML autoescaping in the Twig environment, which double-escapes entities and strips HTML from tokens meant to carry raw content. An open MR addresses this.
Two related bugs affecting automators and search were also reported: LLM: Text / LLM: Text (simple) automators silently drop Base Field content when Base Field and Target Field are both long-text types, and AiReranker::extractItemText() should prefer chunk text over configured indexed fields. The latter causes chunk-mode retrieval to rerank against full entity text rather than individual chunks.
A fix for Undefined array key errors when deleting the only tool in ToolsLibrary::processToolsLibrary() reached RTBC status. The ai_ckeditor streaming issue with Gemini 2.x models remains under investigation.
How can I help on this project?
Review MR !1924 addressing the Twig autoescaping corruption bug. Pick up the Base Field content dropping issue or the Gemini streaming 400 error, both unassigned with no open patches. Test the RTBC ToolsLibrary fix and help move it to merge.
Contributors: Abhisek Mazumdar (abhisekmazumdar), Adrian McKee (Adrianm6254), Aidan Foster (aidanfoster), Ann Mary Sruthy (annmarysruthy), Eric Homanchuk (erichomanchuk), Mike Feranda (mferanda), Prabhavathi Vanipenta (prabha1997), Rob Loach (robloach), Scott Euser (scotteuser), Shivam Sen (shivamsen_12579), Valery Lourie (valthebald), drupalbot, josecarlosmederoDrupal AI Initiative
Over the past 24 hours, activity in the Drupal AI Initiative centered on partnership outreach and planning for the Rotterdam demo. A large volume of partner communication issues were closed, documenting outcomes from recent outreach efforts. Several organizations have joined the initiative as partners, while others remain under consideration or declined.
A UX working group meeting took place on August 10, focusing on the 2026 AI Inside Roadmap to DrupalCon Rotterdam 2026. The meeting reviewed the roadmap structure, discussed the EU AI Act Article 50 disclosure requirements, and planned demo content and theming strategy. Demo content structure and volume requirements were identified as a key focus area.
Design work is underway to Update AI partner badges to use Partner instead of Sponsor across three badge levels (founding, gold, and silver), reflecting the collaborative nature of the initiative's partnerships. The task has been assigned to the design team.
No merge requests were merged or commits pushed during this period. Planning and organizational tasks dominated the day's activity.
How can I help on this project?
Review and contribute to the Rotterdam roadmap planning, particularly around demo content requirements. Pick up Create a skill for manual before/after testing of any issue, with optional glab upload to help improve the developer experience for issue review workflows.
Model Context Protocol
The MCP module saw no merge activity or commits during this period. Two authentication-related issues remain under active discussion. The Token Auth is not working issue covers two problems: a #states selector incorrectly targeting :input[name="enable_token_auth"] instead of :input[name="auth_settings[enable_token_auth]"], preventing the token configuration UI from appearing; and a separate functional issue with token validation even when properly configured. Meanwhile, Add OAuth Scope Validation for MCP Authentication addresses the lack of scope restrictions when MCP clients authenticate to the server, which currently accepts all requested dynamic scopes without validation or configuration options.
Both issues are assigned and tagged for sprint work, but no merge requests or patches have been submitted yet. The token authentication problem blocks proper configuration of token-based auth workflows, while the OAuth scope issue represents a security hardening opportunity.
How can I help on this project?
- Pick up the Token Auth is not working issue and submit a patch fixing the #states selector and token validation logic.
- Implement OAuth scope validation for the Add OAuth Scope Validation for MCP Authentication issue with configurable scope restrictions.
AI Agents
The module saw no commits merged during this period, but several merge requests advanced. Work continued on cleaning up field-value handling bugs: ContentEntitySeeder stores multi-property field values as Array (MR !345) addresses an issue where the content entity seeder tool drops one level of nesting when storing multi-property field values, causing literal "Array" strings to be written instead of the intended data structure. This affects the MCP server's ability to create content.
Improvements to the AI Agent configuration UI also progressed. #3586042: Use the ai_json_schema editor for the structured output schema field (MR !298) replaces the plain textarea for structured-output JSON schemas with the dedicated ai_json_schema CodeMirror element, adding syntax highlighting and JSON linting. The MR wires up config-level validation, modeller schema resolution via getPluginSchemaKey(), and fixes visibility toggling.
Six additional merge requests addressing tool output bugs, model compatibility, and plugin cache invalidation were opened. One issue closed during the period: Explore export/sync plugin system for AI Agents to external agent platforms.
How can I help on this project?
Review MR !345 (ContentEntitySeeder field values) or MR !298 (JSON schema editor) for correctness and test coverage. Help define tool-ordering constraints in MR !252 by testing with real agent workflows.
Contributors: Ahmad Khader (Ahmad-Khader), Bharat Kelotra (bharatkelotra), Joshua Fernandes (joshua1234511), Prabhavathi Vanipenta (prabha1997)Tool API
The Tool API module merged a major batch of API finalization work ahead of the RC1 freeze, addressing signature corrections, execution contract rework, and input/output pipeline hardening. Sixteen merge requests landed in the reporting period, covering bugs, contract gaps, and schema enhancements.
Several critical bugs in the typed input/output traits were resolved: validateInputValue() only validates the first item of a multiple input was fixed to validate all items; ListInputDefinition item values are never validated now properly validates list items and names failing positions; and Non-array value for a map input throws instead of failing validation now rethrows storage exceptions as InputException with proper context.
API contracts were corrected in Correct API signatures before the RC1 freeze (batch), fixing factory overrides, null context values, and return type unions. Rework the tool execution contract introduced ExecutableResultValueInterface and renamed ExecutableResultInterface to ExecutableHasResultInterface. Implement getCacheContexts() or drop CacheableDependencyInterface from ToolInterface dropped the unimplemented cacheability contract. Prefix module-owned identifiers renamed hook_data_type_adapter_info_alter to hook_tool_data_type_adapter_info_alter and prefixed cache keys.
Schema and coercion improvements shipped: Emit richer JSON Schema added PCRE-to-ECMA pattern conversion, datetime formats, and constraint mapping; Extend input coercion for unambiguous LLM value shapes added JSON-string structure parsing, enum near-miss handling, and datetime coercion; Coerce JSON numbers to strings for decimal inputs handles numeric-to-string conversion in InputTypeCoercionSubscriber.
Integration and compatibility fixes included: SchemaToolsPropertyConverter fatals on empty-map schemas now casts ArrayObject to arrays before building AI tool properties; ToolBase's promoted $logger property conflicts with subclasses documented the redeclaration contract; fromDataDefinition() breaks on plain typed-data lists and unlabeled definitions added fallbacks for missing labels.
Make violation messages translatable and stop surfacing raw exception text replaced sprintf() with t() and added logger injection. ToolBase::access() throws on invalid/missing input now fails closed and returns forbidden AccessResult instead of throwing. Complete kernel coverage added 752 lines of test coverage for locked/configuration inputs and the definition pipeline. Define checkRequirements() as a configuration-time signal enforces requirements in execute() and excludes unmet tools from AI function lists.
A new issue was opened: Bare regex patterns are dropped from emitted JSON Schemas, which affects tools using undelimited PCRE patterns.
How can I help on this project?
Investigate and fix Bare regex patterns are dropped from emitted JSON Schemas, where convertPcreToEcma() incorrectly treats bare patterns as delimited. Contribute to Proposal: make Tool's declarations introspectable over the CLI by designing or implementing Drush commands for tool discovery and schema output.
Contributors: Ajit Shinde (ajits), Alex Urevick-Ackelsberg (alexua) [2], Michael Lander (michaellander) [15]
Drupal Canvas
Canvas focused on cache integrity, data health, and developer tooling this period. A cache-context bug was fixed where ContentTemplate::normalizeForClientSide() incorrectly registered list cache contexts as cache tags — for example, user.node_grants:view appeared in cache tags and was never invalidated. A parallel fix merged ensuring array prop shapes now inherit cache tags from their item shapes, closing a gap where multi-value field-backed components missed invalidation when field config changed.
Several closed issues hardened data integrity. Canvas test module config/install field conflict on the standard profile was resolved by moving shared field definitions into a recipe. Publishing symmetrically-translated canvas_page 422s was fixed by synchronizing non-translatable component inputs before validation. A PHPStan rule was added to prevent needs*() config detectors from mutating inspected entities, catching a class of silent data corruption. The component_tree sequence-key lexicographic sort bug (breaking order at 10+ instances) was closed.
A new MR opened for color props, introducing a freeform/brand-kit mode widget. Editing stored patterns merged, allowing component addition, removal, and renaming. Cypress E2E parallel split was rebalanced by runtime weight, cutting the slowest node by ~25%. Header region height calculation regression since 1.9.0 was reported but remains open. Page builder region-name validation has an open MR proposing graceful degradation instead of full-build abort.
How can I help on this project?
Test the region validation MR against the AI page builder to verify graceful fallback. Investigate and patch the header region height regression in 1.9.0+. Review the cache contexts fix MR for ContentTemplate.
Contributors: **** (project_19391_bot_cb443e60680723bba08a5351bf595251), Adam G-H (phenaproxima), Alamgir Hossain (alamgir.hossain.cse), Ben Mullins (bnjmnm), Christian López Espínola (penyaskito) [1], Dave Long (longwave), Feliksas Mazeikis (f.mazeikis), Fons Vandamme (f0ns), Kunal Sachdev (kunal.sachdev), Lauri Timmanee (lauriii), Nodar Davituri (Davituri), Rajab Natshah (RajabNatshah), Ted Bowman (tedbow), Tim Plunkett (tim.plunkett) [1], Wim Leers (wimleers)
Context Control Center (CCC)
The max_items configuration limit has been removed in favor of relying solely on the token budget for context selection. The Remove max_items context limit and rely on the token budget work eliminates the overlapping UX complexity of configuring both max_items and max_tokens, with the token budget now serving as the primary module-wide limit. This change touched configuration schemas, forms, validation logic, selection code, and tests across 3093 diff lines.
Documentation work also merged: the AI Context role and permission matrix for 1.0 is now complete, covering permissions for context consumers, authors, editors, and administrators, including editorial workflow transition permissions.
Several opened merge requests are awaiting review for 1.0 readiness. MR !245 adds a Priority field to context items for explicit editorial control over selection ordering, replacing the opaque changed timestamp tie-breaker. MR !242 aligns scope scoring, language handling, and contextual filtering for predictable selection behavior. MR !248 implements token count persistence and budget usage indicators in the UI.
Progress is blocked on scope scoring alignment and related work, which have merge ordering dependencies that need resolution.
How can I help on this project?
Review MR !245 on priority field selection ordering, MR !242 on scope scoring alignment, or MR !248 on token budget UI. Help develop QA test scripts for the 1.0 testing issue, which has no open MRs and needs testing documentation.
Contributors: Abhinav Jha (ajabhinavjha30), Kristen Pol (kepol) [2]
AI Dashboard
The AI Dashboard module saw a single commit during the reporting period. A fix for description font size was committed, addressing Issue #3585223. No merge requests were merged, and no issues saw comment or status activity in the last 24 hours.
How can I help on this project?
Review the issue queue for unresolved bugs or feature requests that need attention. Help triage or reproduce reported issues. Contribute test coverage or documentation improvements to strengthen the module's stability and adoption.
Contributors: Rob Loach [1]
AI translate
Activity this period focused on planning and issue triage for the DrupalCon Rotterdam 2026 demo. A new meta issue, [META] AI Translation — DrupalCon Rotterdam 2026 demo, was opened to coordinate end-to-end multilingual translation functionality for the Drupal AI Demo corpus. Supporting issues were created covering Recipe: translate Drupal AI Demo content to Spanish, German, and French and Add ai_translate-specific issue and merge request templates, with an MR opened for the latter.
Several new bugs and feature requests were filed. InvalidArgumentException: Invalid translation language (und) when translating media entities was tagged as a Quick Win and proposes a fix to EntityIsTranslatable::validateTranslatability(). Classes fail to resolve correctly in unit tests because of ai_translate variant in AI core module describes PSR-4 autoloader conflicts caused by the deprecated ai_translate submodule bundled in the parent AI project. Feature requests include Translation result caching and cross-field deduplication to avoid re-translating unchanged content, Auto-translate referenced taxonomy terms, and Refactor translation workflow to support Tool API and agent-driven translation.
How can I help on this project?
Pick up the Quick Win InvalidArgumentException media translation bug and apply the proposed EntityIsTranslatable patch. Review the open issue/MR templates MR. Investigate the unit test autoloader conflict and propose a workaround or upstream fix.
Contributors: Christoph Breidert (breidert), Sven Decabooter (svendecabooter), Valery Lourie (valthebald), Jordan Koplowicz (koppie), Rodel Duterte (rduterte), Punam Aseem Beedkar (PunamShelke), Carlos Romero (o0Charly0o), szato (odi)
FlowDrop
FlowDrop saw extensive static analysis hardening over the past 24 hours. PHPStan analysis was raised from level 8 to level 10, eliminating implicit mixed types across the entire codebase. Type narrowing was applied systematically to entities, services, forms, list builders, and DTOs in flowdrop_session, flowdrop_pipeline, flowdrop_interrupt, flowdrop_workflow, flowdrop_job, flowdrop_runtime, flowdrop_stategraph, flowdrop_node_processor, and several other submodules. Key API surfaces received explicit type annotations, including the processor schema surface, node metadata producers, and workflow storage shapes. Shaped array returns were introduced for getNodes() and getEdges() in flowdrop_workflow.
Additional quality improvements included enabling cspell checks with a project dictionary, documenting British English spelling conventions, and correcting flagged spelling errors across the codebase. A fix was applied to flowdrop_node_type's update_10004 hook to guard output-schema reads. In flowdrop_chat, AiModelService return values were narrowed for standalone analysis. CI pipeline fixes addressed an empty variables block that broke all jobs. Test infrastructure also received type annotations, including shared test traits and the FlowDropKernelTestTrait.
How can I help on this project?
Review recent code quality commits to identify any edge cases or opportunities for further type refinement. Test the cspell and PHPStan level 10 configurations in your local environment and report any false positives. Explore open issues in the queue for tasks needing attention.
Contributors: Shibin Das [60]
Langfuse
The Langfuse module saw significant progress with the merge of Issue #3548465: Add createScore() for feedback and a langfuse_feedback submodule. This introduces a new createScore() API method for submitting feedback data to Langfuse, packaged in a dedicated langfuse_feedback submodule. The merge includes 814 lines of changes, expanding the module's functionality to support user feedback mechanisms alongside its existing observability features.
No blocking issues or API deprecations were reported during this period. The module appears to be progressing steadily with feature additions.
How can I help on this project?
Review the recently merged langfuse_feedback submodule to identify any edge cases or integration issues with the createScore() API. Test the feedback functionality against live Langfuse endpoints. Check the issue queue for unassigned tasks or open feature requests that could benefit from development or documentation contributions.
Contributors: Abhisek Mazumdar (abhisekmazumdar) [1]
AG-UI
A latency issue was identified in the SSE event streaming implementation. The chunkDelay/chunkPadding applied per-event compounds into real latency/timeout risk on long or tool-heavy runs issue documents how sendSseEvent() currently applies the full configured chunkPaddingSize and chunkDelayMicroseconds to every SSE event type, including TOOL_CALL_START, TOOL_CALL_ARGS, TOOL_CALL_END, TOOL_CALL_RESULT, RUN_STARTED, and RUN_FINISHED, not just TEXT_MESSAGE_CONTENT chunks. In scenarios involving multiple tool calls plus streamed text responses, this overhead compounds linearly with event count. Testing revealed that 80ms delay plus 4096 bytes of padding per event across several dozen events added multiple seconds and hundreds of kilobytes of artificial overhead on top of actual LLM latency, creating potential timeout risks for agent-heavy workflows.
How can I help on this project?
The chunkDelay/chunkPadding per-event latency issue is unassigned with no merge request. Investigate selective application of chunk padding and delays based on event type, or consider making these parameters configurable per event class to reduce overhead in tool-heavy scenarios.
References
[1] Add AIDmi to Other modules/recipes that work with the AI module
[2] Drupal AI Contribution meeting 2026-08-10
[14] bug: #3586661 Twig autoescaping in AiPromptHelper::renderPrompt() corrupts {{...
[15] #3582633: Add Functional JavaScript testing conventions and validation script
[60] Call with Aidan Foster interactive
[65] MCP Server: Entity Seeder uses wrong type for content
[69] ContentEntitySeeder stores multi-property field values as Array
[79] Bare regex patterns are dropped from emitted JSON Schemas
[85] Coerce JSON numbers to strings for decimal inputs
[89] Implement getCacheContexts() or drop CacheableDependencyInterface from ToolInterface
[90] Prefix module-owned identifiers: alter hook, cache key, and 'text' data type ID
[92] ListInputDefinition item values are never validated
[93] Make violation messages translatable and stop surfacing raw exception text
[96] validateInputValue() only validates the first item of a multiple input
[97] Extend input coercion for unambiguous LLM value shapes
[98] Emit richer JSON Schema: map remaining constraints and type formats
[128] Fix cache contexts being added as cache tags in ContentTemplate::normalizeForClientSide()
[149] PHPStan rule: needs*() config detectors must not mutate the entity they inspect
[161] Add the entity type's list cache contexts as cache contexts, not as cache tags.
[169] #3591917 Array prop shapes inherit their item shape's cache tags
[170] #3591851: Allow editing stored patterns
[174] fix: #3591820 Synchronize non-translatable component inputs before validating auto-save publish
[178] Add PHPStan rule: needs*() config detectors must not mutate the entity they inspect
[181] Add context item Priority field and use it for selection ordering
[182] Remove max_items context limit and rely on the token budget
[184] Align scope scoring, language service, and contextual selection behavior
[192] Persist context-item token counts and show token-budget usage in CCC UI
[198] Issue #3586376: Add context item priority field and selection tie-breakers.
[200] Issue #3586388: Align scope scoring and contextual detection.
[201] Issue #3586378: Remove max_items context limit and rely on token budget.
[204] Issue #3586379: Persist token counts and show budget usage in CCC UI.
[218] [META] AI Translation — DrupalCon Rotterdam 2026 demo
[219] Recipe: translate Drupal AI Demo content to Spanish, German, and French
[220] Add ai_translate-specific issue and merge request templates
[222] feat: #3585541 Add ai_translate-specific issue and merge request templates