Daily Digest

Daily Digest – 15 July 2026

2026 Capabilities Progress

  1. Page generation — Canvas made significant progress with merged headless rendering support [140] and configuration UI for frontend management [143], enabling AI-driven page generation across multiple frameworks. Work continues on the place_components AI tool [121] that will allow natural language page assembly.
  2. Context management — Context Control Center hardened access controls for usage records [155] and advanced work on subcontext scope inheritance [157], though the core scope subscription model remains under design review with usability concerns blocking stable release [151].
  3. Background agents — AI Agents closed issue #3572361 for file-based instruction storage [92] and advanced work on tool execution controls including usage limits [101][102] and per-tool approval workflows [94], with the 1.4.0 release being planned [88].
  4. Design system integration — Canvas is addressing component folder assignment issues [142] and advancing multi-bundle content reference support [134][137], though two property input bugs affecting editorial workflows remain under investigation [117][122].
  5. Content creation and discovery — AI Search merged batch embeddings for improved indexing performance [163] and advanced work on structured result data with entity access controls [161]. The core AI module added rich-text image description support to automators [60][61] and is working to resolve CKEditor streaming issues with Gemini 2.x models [5][42].
  6. Advanced governance — The AI module merged streaming guardrail capabilities with mid-stream evaluation [62][70] and hardened chatbot API boundaries against unauthorized execution [69]. Canvas delivered conflict detection UI improvements [125][126] and strengthened auto-save integrity [136][141].
  7. Intelligent website improvements — No direct progress today.
  8. Multi-channel campaigns — No direct progress today.

Shipped

  1. AI module dark theme compatibility — Completed support for Gin dark theme in both the MDX editor and Tool Explorer, ensuring consistent appearance across admin interface configurations [51][52].
  2. AI module localization fix — Resolved an issue where the tone-of-voice CKEditor selector was not using translated taxonomy terms, enabling multilingual sites to present AI prompts in the correct language [50].
  3. AI module streaming guardrails — Merged a new guardrail plugin with kernel tests that demonstrates mid-stream content evaluation during AI generation [62].
  4. AI Search batch embeddings — Delivered batch processing capability for content indexing, improving performance when deploying AI-powered search across large content repositories [163].
  5. Canvas headless rendering — Shipped SDK support for automatically rendering Canvas component trees in headless frontend frameworks, along with configuration UI for managing multiple frontend environments [140][143][144].

Ongoing

  1. AI Agents tool execution controls — Multiple mechanisms to govern agent behavior are under review, including limits on tool invocation frequency and per-tool approval workflows [101][102].
  2. AI module chatbot modal interactions — Work continues to resolve an issue where the chatbot closes itself when modal dialogs are triggered, affecting editor workflows [72][74].
  3. Canvas component property bugs — Investigation underway for two issues where boolean toggles unexpectedly activate and radio button selections reset during property edits [117][122].
  4. Context Control Center access control hardening — Draft solution prepared to address a security issue where usage record pages could expose unpublished content to users without proper permissions [155].
  5. AI Search entity access enforcement — Development in progress to expose structured search result data and enforce entity-level permissions, ensuring users only see authorized content in AI-generated answers [161].

AI (Artificial Intelligence)

The AI module made significant progress on user experience, integration robustness, and content-moderation capabilities over the past 24 hours. Several fixes improving cross-theme compatibility and internationalization were merged, alongside enhancements to streaming guardrails and automation workflows.

Key delivery included improved rich-text content handling: automators can now detect and process images embedded in formatted text fields, generating AI descriptions that feed into moderation or summarization workflows. This enables content pre-screening that evaluates both text and visual context. Support for dark-theme rendering in the Gin admin interface was completed for both the MDX editor and Tool Explorer, ensuring consistent appearance across theming choices. A localization issue affecting the tone-of-voice taxonomy selector in CKEditor was resolved, so multilingual sites now correctly use translated term labels and descriptions in prompts.

On the guardrails front, a new streaming guardrail plugin and supporting kernel tests were merged, demonstrating mid-stream content evaluation during generation. The API boundary for the chatbot endpoint was hardened to reject caller-supplied execution identity fields, closing a potential authorization gap. Work continued on taxonomy automators (handling HTML-encoded entities), streaming output preservation, and chatbot behavior when modal dialogs trigger page refreshes.

Documentation expanded with an ecosystem index and OpenAI provider setup guide. Several uninstall and permission-handling bugs were addressed, and visual regression baselines were added for the module's four compiled UI elements.

How can I help on this project?

  • Prioritize resourcing for the chatbot modal-interaction issue, which affects editor workflows and has an open merge request awaiting review and final testing.
  • Commission a cross-provider streaming compatibility audit to confirm the Gemini 2.x streaming fix generalizes to other vendors and avoid further 400-error reports.

Contributors: Abhinav Jha (ajabhinavjha30), Abhishek Dhariwal (adaptative), Ahmad Khader (Ahmad-Khader) [3], Ann Mary Sruthy (annmarysruthy), Artem Dmitriiev (a.dmitriiev), Avinash jha (avinash.jha) [1], Bharat Kelotra (bharatkelotra), Billy Davies (billy.davies), codebymikey, Joshua Fernandes (joshua1234511), Levente Besenyei (LeventeB) [1], Marcus Johansson (Marcus_Johansson) [2], Prabhavathi Vanipenta (prabha1997) [1], Ricardo Castañeda (cadence96), Ryan Szrama (rszrama), Shubham Prakash (shubham.prakash) [1], Thomas Werthmüller (weri) [1]


amazee.ai Private AI Provider

This module integrates private AI capabilities into Drupal, including support for vector databases and trial account provisioning. Over the past 24 hours, the team merged several improvements focused on installation reliability and documentation quality.

Two critical installation bugs were resolved. The first addressed a configuration import error that prevented administrators from managing site configuration via command-line tools. The second fixed a problem where the entire installation would fail if the trial account provisioning service was temporarily unavailable or at capacity. This change ensures that sites can be installed even when the external trial service is unreachable, treating free trial setup as optional rather than mandatory.

Documentation has been migrated to a new system and expanded to cover vector database capabilities. Automated quality improvements were also merged. One optimization for bulk vector database operations remains in draft review; when completed, it will improve indexing performance for sites processing large volumes of content.

How can I help on this project?

  • Prioritize testing of the installation improvements in realistic deployment scenarios to confirm trial provisioning failures are handled gracefully across different network conditions.
  • Approve allocation of review capacity to finalize the bulk indexing optimization currently in draft.

Contributors: Dan Lemon (dan2k3k4), project update bot (Project-Update-Bot), Rajab Natshah (RajabNatshah)


Gemini Provider

The Gemini Provider module enables integration with Google's Gemini AI models within Drupal environments. Over the past 24 hours, activity focused on expanding the module's capabilities to support more efficient content processing.

Work continued on Add support for batch embeddings, which would allow the system to process multiple pieces of content simultaneously rather than one at a time. This capability is important for improving performance when analyzing or categorizing large volumes of content. The work is in review, with progress being made on naming conventions and testing infrastructure to ensure compatibility with related systems.

No code was merged or committed during this period, indicating the project is in a refinement phase. This is typical activity for a module in development, with focus on ensuring quality before integration.

How can I help on this project?

  • Allocate reviewer capacity to evaluate the batch embeddings work currently awaiting review, which could accelerate delivery of performance improvements.
  • Clarify priority and timeline expectations for the batch processing feature to help the team sequence remaining development work.

AI Agents

Development continued on key features needed to make agents safer and more controllable in production settings. Work progressed on several mechanisms to govern how tools are invoked: limiting how many times a tool can run during a session, restricting tools from being called more than once in a single response, and controlling the order in which tools execute. These capabilities are important for preventing agents from looping indefinitely or acting in ways that don't align with business logic.

One feature was merged that allows agents to store and read instructions from a file, making it easier to share context between parent and child agents without consuming excessive tokens or losing detail. A minor type-hinting issue that prevented administrators from swapping the agent status storage implementation was also resolved.

Several quality-of-life improvements are in review, including a fix for streaming responses in chatbots and a solution to a UI bug where the "Interactive" option disappeared after adding a tool. A test suite for externally-driven agent execution (used by Canvas) has been added to prevent accidental breaking changes to that mode.

Planning is underway for the 1.4.0 release, with several feature proposals opened for review, including per-tool approval workflows and the ability to forward images from tool output to vision models in the next loop iteration.

How can I help on this project?

  • Confirm priorities for the 1.4.0 release roadmap to focus contributor effort on features that unlock the most business value.
  • Provide a test environment or budget for QA support to validate streaming, tool approval, and external orchestration workflows before stable release.

Contributors: Ahmad Khalil (ahmad-khalil-imagex), AKHIL BABU (AkhilBabu), Bharat Kelotra (bharatkelotra), Marcus Johansson (Marcus_Johansson), Nicolae Procopan (thebumikgmail.com), Prabhavathi Vanipenta (prabha1997)


Drupal Canvas

The past 24 hours saw concentrated progress on the headless capabilities of Canvas, which allow organizations to use Canvas as a content and layout engine while rendering pages through separate frontend frameworks like Next.js, Astro, or Nuxt.

Three related improvements to the headless experience were completed and merged. First, a new rendering system was added to the headless SDK, enabling applications to automatically traverse and display Canvas component trees without custom integration code. Second, a configuration interface was introduced in Canvas to manage multiple frontend URLs and provide setup guidance to developers. Third, environment variable requirements for headless applications were simplified and standardized, reducing manual configuration steps and preventing drift between settings.

However, one of these changes temporarily broke the synchronization mechanism that allows Canvas to communicate with locally running frontend development servers. This was quickly identified and corrected with a restoration of browser-based component sync, ensuring all four supported frameworks can properly connect to the Canvas editor.

Work continues on several functional areas. Two significant bugs affecting component properties are under investigation: boolean toggles that unexpectedly activate when other properties change, and radio button selections that reset during edits. A fix is in progress for a visual issue where sections using viewport-relative heights cause the preview iframe to grow incorrectly. Additionally, work is advancing on supporting content references that can point to multiple content types with different field structures.

How can I help on this project?

  • Review and approve the headless configuration interface to ensure it meets the needs of teams planning to adopt headless architectures.
  • Prioritize investigation of the component property bugs affecting boolean and radio inputs, as these impact daily editorial workflows.

Contributors: **** (project_19391_bot_cb443e60680723bba08a5351bf595251), Ben Mullins (bnjmnm), Bálint Kléri (balintbrews) [3], Christian López Espínola (penyaskito), Feliksas Mazeikis (f.mazeikis), Kunal Sachdev (kunal.sachdev), Lauri Timmanee (lauriii), Narendra Singh Rathore (NarendraR), Nodar Davituri (Davituri), Ravi Maniyar (ravi.maniyar.123), Ted Bowman (tedbow), utkarsh_33 (Utkarsh_33), Wim Leers (wimleers), wotnak [1]


Context Control Center (CCC)

Development activity this period centered on hardening the module's security and test resilience ahead of a stable release. Work is underway to address an access control issue where usage record pages could potentially expose content from unpublished context items to users without proper view permissions. A draft solution has been prepared covering both the content leak and link generation concerns.

A significant piece of technical debt is being resolved through updates to the test suite. Multiple tests were found to use hardcoded URL paths that break when upstream modules reorganize their routing structure, even though the module itself continues to work correctly. This caused false failures in automated testing. A fix covering the remaining brittle path assertions has been drafted and is under review.

Planning discussions continued around the scope subscription model, which has proven confusing for early users. This represents a core user experience challenge as the module approaches a stable release. Separately, a feature is being designed to let AI agents opt out of automatic context injection in favor of tool-based retrieval, and work on subcontext scope inheritance remains in progress.

The release notes contribution tracking task was completed, improving recognition of non-code contributions to the project.

How can I help on this project?

  • Prioritize user experience review resources for the scope subscription redesign, which is blocking the stable release and affects core usability.
  • Consider allocating dedicated security review capacity to validate and merge the access control hardening work currently in draft.

Contributors: Ahmad Khalil (ahmad-khalil-imagex), Kristen Pol (kepol), Pravesh Poonia (Pravesh_Poonia)



Field Widget Actions

Field Widget Actions enables users to trigger automated workflows directly from content editing forms. During this period, work focused on improving how the module can be configured through automated setup tools and supporting more complex AI-driven workflows.

A new merge request was opened to address a configuration limitation: when setting up multiple suggestion buttons on a single form using automated deployment tools, all buttons were inadvertently targeting the same field due to identifier conflicts. The Generate UUIDs for list-style widget-action settings applied via config actions work will allow each button to receive a unique identifier automatically, matching the behaviour users already experience when configuring buttons manually through the interface.

Separately, Support Automator Chain trigger with Field Widget Actions was closed. This expands the module's workflow capabilities to support multi-step AI processes, useful when tasks exceed single-prompt complexity or token limits and require sequential operations without reloading the page.

How can I help on this project?

Review and approve the open merge request addressing configuration automation. Consider whether additional testing resources are needed to validate multi-button deployments across environments before the work is finalized.

Contributors: Artem Dmitriiev (a.dmitriiev)


AI translate

The AI translate project saw focused work on resolving an issue affecting users who combine AI-powered translation with complex page layouts. A bug was identified and addressed where translated content blocks were not being fully configured in the system, leaving them in an incomplete state that prevented users from accessing certain features like media libraries within those blocks.

A fix for this inline block issue has been prepared and is under review. Once merged, this will ensure that AI-translated page layouts function correctly and users can work with all content features as expected. This work removes a blocker for organizations using AI translation alongside advanced page building capabilities.

How can I help on this project?

  • Ensure the pending fix receives timely review and testing resources to accelerate its release to users.
  • Consider funding additional quality assurance work to identify similar integration issues before they affect production users.

Contributors: arne michiels (aren33k)


References

[1] Create an HTML to Markdown API and service (ai, Issue)

[2] Integrate ChatProcessor plugin system into AI Chatbot DeepChat block (ai, Issue)

[3] Add YAML support to the MDX editor code blocks (ai, Issue)

[5] ai_ckeditor: streamGenerateContent causes 400 Bad Request with Gemini 2.x models (ai, Issue)

[42] Issue#3586446:CKEditor-AI-Streaming-Fails-For-OpenAI-When-Guzzle-Uses-StreamHandler fixes (ai, MR)

[50] fix: #3586573 Tone of voice CKEditor Plugin does not use the translated... (ai, MR)

[51] Fix the MDX Editor for Gin dark theme (ai, MR)

[52] Issue #3582473: Tool Explorer does not render correctly with Gin dark theme (ai, MR)

[60] Issue #3586478: "Add rich-text image description support to AI Automators" (ai, MR)

[61] Issue #3586478: "Add rich-text image description support to AI Automators" (ai, MR)

[62] Issue #3584951: Add kernel test for StreamableGuardrailInterface mid-stream... (ai, MR)

[69] Issue #3574662: Add boundaries and test (ai, MR)

[70] Issue#3586491:add-a-during-generate-streaming-section-to-the-guardrail-set-for... (ai, MR)

[72] Issue #3499451: Restore toolbar chatbot state idempotently so a dialog re-attach cannot close it (ai, MR)

[74] Issue #3499451: Fixed chatbot not reopening after CKEditor/media modal closes. (ai, MR)

[88] [Meta] Road to 1.4.0 release (ai_agents, Issue)

[92] Add possibility for an agent to store and read instructions from a file (ai_agents, Issue)

[94] feat: Per-tool approval mode (pre-approved / approve-once / always) with loop pause-resume (ai_agents, Issue)

[101] Issue #3547995: Add deterministic tool usage limits. (ai_agents, MR)

[102] feat: #3586051 Add a per-tool setting to restrict a tool from being called... (ai_agents, MR)

[117] Boolean props auto-enable when another prop is changed in the Canvas form (canvas, Issue)

[121] Canvas AI: Add the place_components AI tool (+ kernel test) (canvas, Issue)

[122] Radio button props loose value when another prop value is changed in the component (canvas, Issue)

[125] feat(Conflict detection): #3591723 "Add 'Conflict detected' toast message" (canvas, MR)

[126] feat(Conflict detection): #3591591 Expand conflict resolution UI with... (canvas, MR)

[134] Resolve #3591829: Coalesce multi-bundle references with differing per-bundle fields (canvas, MR)

[136] Resolve #3591803: AutoSaveManager::saveEntity() silently clears unresolved conflicts for Page entities" (canvas, MR)

[137] Draft: Resolve #3591656: Support multi-target-bundle references in content-entity-reference props (canvas, MR)

[140] feat(Headless): #3591823 Add support for rendering Canvas component trees in the headless SDK (canvas, MR)

[141] Resolve #3591785: Strengthen AutoSaveManager to generate stable hashes (canvas, MR)

[142] #3591828 Refetch folder list after newly exposing a code component (canvas, MR)

[143] feat(Headless): #3591822 Add configuration UI for headless frontends (canvas, MR)

[144] chore(Headless): #3591826 Simplify headless app environment configuration (canvas, MR)

[151] [Discuss] Context scope subscription approach (ai_context, Issue)

[155] Issue #3586311: Harden usage record and listing access checks. (ai_context, MR)

[157] Issue #3586218: Allow subcontext scope to override parent scope. (ai_context, MR)

[161] Issue #3584031: RagTool::execute() should expose structured per-result data (ai_search, MR)

[163] Resolve "Batch embeddings for improved indexing performance" (ai_search, MR)


Period: 15 July 2026 to 16 July 2026  |  Generated: 16 July 2026 10:08 GMT

To view the full AI prompts used to generate this digest check this file: 24h_2026-07-15_prompts.txt

Looking for older digests? Browse all digests here.