Account created on 16 April 2007, about 18 years ago
#

Merge Requests

More

Recent comments

🇩🇪Germany breidert

I like it, but I might be biased :-)

🇩🇪Germany breidert

@kristen I would suggest the following:

Bug

Title

Clear, concise summary of the problem (e.g., "Crash on login when username is blank")

Description

- What’s happening vs. what’s expected?
- Include any error messages, stack traces, or logs.
- If it’s a regression, mention when it last worked.
- Describe expected behavior

Steps to Reproduce in Drupal AI DDEV environment

1. Go to ‘...’
2. Click on ‘...’
3. See error

Environment

- Drupal version:
- Drupal AI version:
- Browser (if relevant):
- Any relevant config or flags

Todos

- Fix the bug
- Provide testing instructions in Drupal AI DDEV environment

Requirements / Acceptance Criteria

- When I follow the testing instructions I can verify the feature works

URLs (if applicable)

- Link to the affected page (can be relative)

Screenshots (if applicable)

- Provide a screenshot showing the issue

Feature

Title

Short summary of the feature (e.g., "Add dark mode toggle in settings")

Description

- What is the feature?
- What problem does it solve or what value does it add?

User Story / Use Case

As a [type of user], I want to [goal] so that [benefit].

Todos

- Create concept
- Implement
- Provide testing instructions in Drupal AI DDEV environment
- Provide documentation

Requirements / Acceptance Criteria

- When I read the documentation I understand how the feature is supposed to work
- When I follow the testing instructions I can verify the feature works

Design / UI Notes

- Link to mockups, wireframes, or design files if available

Dependencies or Related Work

- Mention any backend work, third-party libraries, or affected components

URLs (if applicable)

- Link to spec, design, or existing feature area

Screenshots (if applicable)

- Add mockups, visual references, or examples

Task

Task Requirements

Title

Describe the task clearly (e.g., "Provide documentation for new contributors")

Description

- What needs to be done and why
- Not necessarily user-facing

Checklist / Subtasks

- Break down into actionable steps if helpful

Context / Background

- Link to related tickets, technical docs, Slack threads, etc.

Todos

- Describe what needs to be done

Requirements / Acceptance Criteria

- Describe what does “finished” looks like

🇩🇪Germany breidert

Effort Estimation based on current information

Re-Build Logging (Buckets 1-3 above): 10-15 days

The majority of the work goes into the re-creation of the AI logging sub-module, and updating the Extended Logger module.

Creating sensible management views (like number of tokens spent, or number of AI calls) does not take so much time. Most of the work for this would be to define what views make sense.

Creating a log export function does not take much time.

Create OTEL integration: 5-10 days

The creation of a new sub-module called AI Oberservability is not very difficult. The majority of the work flows into mapping AI event data to OTEL's traces, spans, attrributes, and events in a meaningful way. The module Opentelemetry also needs to be upgraded.

Delivery

It is planned that EPAM delivers above functionality with their own team. Communication with the core maintainers Marcus and Artem will be via a dedicated channel in Slack (#ai-obersability).

First the new logging will be developed, then the OTEL integration.

🇩🇪Germany breidert

> The About you should be the first step

Not sure, usually you do it the other way around. Personal stuff at the end. I think if people filled out the complete survey, they would like to get the results. Therefore, they would also fill out the about you section on the last page.

🇩🇪Germany breidert

@pdjohnson - please add the survey to DO/ai in a sensible place with supporting text.

On the page this HTML code has to be placed

<iframe src="//www.1xinternet.com/en/webform/custom_drupal_ai_features/share/iframe-resizer/4.2.10" title="Drupal AI Features Survey | 1xINTERNET" class="webform-share-iframe" frameborder="0" allow="geolocation; microphone; camera" allowtransparency="true" allowfullscreen="true" style="width:1px;min-width:100%"></iframe>
<script src="//cdn.jsdelivr.net/gh/davidjbradshaw/iframe-resizer@4.2.10/js/iframeResizer.min.js"></script>
<script>iFrameResize({}, '.webform-share-iframe');</script>
🇩🇪Germany breidert

General questions about AI usage in organizations were added with the option to specify.

  • Are you using AI in your daily work?
  • Is your organization using AI already?
🇩🇪Germany breidert

Additional information from weekly meeting:

The UI/UX has to make it simple to create and manage guardrails. However, since there are many things to configure, this could become complex.

Guardrails can be general and apply to general functionality such as AI Translation or Content Suggestions, where you might just need to block things like PII data or flag things like <script> tags.

Guardrails can also be very specific and be tied to a single agent or a tool.

A specific example of a guardrail for a single agent might be something like:
“Check that the text in the image only includes cooking instructions—nothing else.”
You’d only want that guardrail running for the agent that generates food recipes—not every AI process.

A UI/UX should work for all use cases.

🇩🇪Germany breidert

AI bots are becoming a real issue. Many of our clients face massive bot hits and we have to spend a lot of energy on traffic shaping on the CDN/WAF level.

Note that CDN providers such as Cloudflare make it really easy (or even default settings) to block AI scrapers:

I think the traffic part is not what we can influence, that happens before traffic hits Drupal websites.

But what we can do is provide functionality to make sure the AI(s) we use (in our agentic systems) can be restricted to deliver ethical results.

IMO the way to go is to provide string guardrail functionality with sensible defaults. There is already an issue for guardrails Create the concept of Guardrail agents Active , and we are currently looking for contributors that are willing to take this on.

🇩🇪Germany breidert

@matthews - in the end we need providers listed for the different model types on /admin/config/ai/settings (Image Classification, Image to Video, Speech to Text, etc.).

🇩🇪Germany breidert

@darren oh

On Drupal.org you can add general projects. Here is the documentation for general projects .

These can contain arbitrary code as for example DDEV installation scripts.

They are also used for recipes (for example this one which we contributed earlier this year).

🇩🇪Germany breidert
  • Updated Brand guide agent
  • Remove Idea generator
  • Remvoed Control Center Agent
🇩🇪Germany breidert

Introduction text was update from

Thank you for participating in this survey! The Drupal AI initiative is working hard to integrate powerful AI capabilities into Drupal including advancements in agentic capabilities and Model Context Protocol (MCP) support.

In parallel with these core development efforts, we are also building production-ready features that can be used immediately on Drupal websites. To ensure we prioritize the development of the most valuable "ready-to-use" functionalities, we need your insights.

This survey presents various AI functionalities we intend to build that are focused on immediate application. We ask you to assess the value each functionality would bring to your work. Your feedback is important in helping us prioritize our development roadmap and deliver features that truly make a difference in your day-to-day operations.

The survey should take approximately 10-15 minutes to complete. Your responses will be kept confidential and used solely for product development purposes.

to

Thank you for taking the time to complete this survey.

The Drupal AI Initiative is working to deliver a range of new ready-to-use AI capabilities for Drupal. These will help you gain immediate value from AI, with minimal technical barriers to adoption.

We ask you to assess the value each functionality would bring to your work. Your feedback is important in helping us prioritize our development roadmap and deliver features that truly make a difference in your day-to-day operations.

The survey should take around 10-15 minutes to complete. All responses are confidential and will be used solely to guide product development.
🇩🇪Germany breidert

Other (please specify) was fixed for industry and role.

🇩🇪Germany breidert

More topics:

  • We have a concept for AI Logging and AI telemetry, I would like to present the meta issue for this.
  • We will conduct a contribution survey for AI features that organizations would like to have. This should be mentioned.
  • I am currently working on a concept of UX. Not the concept itself, but the issue, what should be covered in the concept. I would like to mention this, too.
🇩🇪Germany breidert

Additional information: At 1xINTERNET we use an bash script to setup a local development environment. For reference I added the docker compose file for Milvus vector database and the relevant parts of the installation script.

# Add RAG support.
if [ "${rag}" == "true" ]; then
  echo "Enable Milvus vector database"
  mv .ddev/example.docker-compose.milvus.yaml .ddev/docker-compose.milvus.yaml
  ddev restart
fi
🇩🇪Germany breidert

I created a survey, that can be tested here: https://www.1xinternet.com/en/drupal-ai-initiative-features-roadmap?auHa...

It can also be embedded on DO (here is a test):

The configuration of the survey is attached as YML.

🇩🇪Germany breidert

IMO the jobs run like this:

Issue fork repository:

  1. js_build - Rebuilds JS but does not commit changes and pushes, because there is no access token.
  2. phpunit - Run test with rebuilt JS

The build JS is saved as an artifact and used for testing.

Main repository (after merging, or with direct commits):

  1. js_build - Rebuilds JS, commits and pushes changes (if any) with an access token. The commit is run with option -o ci.skip to prevent the same pipeline from being triggered.
  2. phpunit - Run test with rebuilt JS

I think this is correct. Tests are always run with the latest JS code. The latest JS code becomes part of the repository and will be part of releases.

🇩🇪Germany breidert

Idea:

  1. In the Gitlab pipeline we build the js artifacts for ai_ckeditor and push them to the repository
  2. Gitlab is configured not to run the pipleline again because of the commit message [ci skip]

Todo:

The build runner needs access permissions to push to the Gitlab repository.

Future:

The process should be generic for all sub-modules of ai.

Something like this:

.gitlab-ci.yml

js_build:
  stage: build
  script:
    -|
      modules=$(find modules -maxdepth 1 -mindepth 1 -type d)
      for module in ${modules[@]}; do
         pushd ${module}
         if [ -f ./build.sh ]; then ./build.sh; rm -rf node_modules; fi
         popd
      done
🇩🇪Germany breidert

breidert made their first commit to this issue’s fork.

🇩🇪Germany breidert

The following issues were mentioned as blockers in the last AI meeting:

🇩🇪Germany breidert

This was a false positive, the functionality works correctly.

🇩🇪Germany breidert

Good point Dale!

If it is enabled by default via update_hook, people see the new functionality and can turn it off. I guess it is the maintainer to decide :-)

🇩🇪Germany breidert

First version was created and all plugins were updated.

It looks like this:

However, this might be a breaking change, because all existing plugins would have to be updated.

🇩🇪Germany breidert

The code in the MR works nicely. You get the same btton in a baloon menu.

The result looks like this:

🇩🇪Germany breidert

Screenshots of new functionality provided in MRs:

🇩🇪Germany breidert

We are working on this at 1xINTERNET, and could contribute our work.

🇩🇪Germany breidert

I tested this locally and it works. Also in combination with https://www.drupal.org/project/ai/issues/3509363#comment-16018217 Allow other modules to provide styles for Deep Chat Active

🇩🇪Germany breidert

I tested it locally and the code works.

🇩🇪Germany breidert

This was fixed and can be reviewed on /documentation/image-credits

🇩🇪Germany breidert

Here is a screen recording of the current status: https://www.drupal.org/files/issues/2025-01-14/screen-capture-drupal-cms...

When testing you might want to delete the content that comes with individual recipes fiest:

#!/bin/bash

# Define the recipes to delete content from
recipes=("drupal_cms_blog" "drupal_cms_case_study" "drupal_cms_events" "drupal_cms_news" "drupal_cms_person" "drupal_cms_project")

# Find all directories matching the pattern recipes/*/content
for folder in recipes/*/content; do
  for recipe in "${recipes[@]}"; do
    if [[ "$folder" == *"$recipe"* ]]; then
      echo "Deleting folder: $folder"
      rm -rf "$folder"
      break
    fi
  done
🇩🇪Germany breidert

I think we should close this issue and start a new one.

We have already started to work on demo content, it is getting quite nice: https://www.drupal.org/project/drupal_cms_demo_content

From my perspective there are several aspects to the topic of content strategy.

  1. Information Architecture / Data model - how we create content recipes
  2. Demo content - presenting demo content
  3. On-boarding new users - through demo content and explanations

I suggest closing this issue and start new ones.

🇩🇪Germany breidert

For blog and news items it is still showing.

For testing you can enable demo content, then you have content for all content types. When searching for 'drupalcon' you see news and blog items:

ddev composer require drupal/drupal_cms_demo_content
ddev drush recipe ../recipes/drupal_cms_demo_content
ddev drush recipe ../recipes/drupal_cms_search
ddev drush sapi-r
ddev drush sapi-i
ddev launch /search?text=drupalcon

🇩🇪Germany breidert

I reviewed and it looks good.

For reviewing I went to https://www.1xinternet.de/en/drupal-cms-start-demo and started a full demo with demo content for a better search experience.

Initially the search is only in the sidebar, because the main menu is crowded. For testing the search with the desktop menu I disabled some menu entries.

All search UIs look nice.

🇩🇪Germany breidert

Updated testing instructions

Testing locally:

  1. Install Drupal CMS locally following the instructions in the README.md of the project
  2. Require demo content recipe: ddev composer require drupal/drupal_cms_demo_content
  3. Re-install with demo content: ddev drush si ../recipes/drupal_cms_demo_content

Tesing using Drupal CMS online demo:

  1. Go to https://www.1xinternet.de/en/drupal-cms-start-demo
  2. Request demo with demo content (default option)
🇩🇪Germany breidert

Updated testing instructions

Testing locally:

  1. Install Drupal CMS locally following the instructions in the README.md of the project
  2. Require demo content recipe: ddev composer require drupal/drupal_cms_demo_content
  3. Re-install with demo content: ddev drush si ../recipes/drupal_cms_demo_content

Tesing using Drupal CMS online demo:

  1. Go to https://www.1xinternet.de/en/drupal-cms-start-demo
  2. Request demo with demo content (default option)
🇩🇪Germany breidert

Updated testing instructions

Testing locally:

  1. Install Drupal CMS locally following the instructions in the README.md of the project
  2. Require demo content recipe: ddev composer require drupal/drupal_cms_demo_content
  3. Re-install with demo content: ddev drush si ../recipes/drupal_cms_demo_content

Tesing using Drupal CMS online demo:

  1. Go to https://www.1xinternet.de/en/drupal-cms-start-demo
  2. Request demo with demo content (default option)
🇩🇪Germany breidert

Updated testing instructions

Testing locally:

  1. Install Drupal CMS locally following the instructions in the README.md of the project
  2. Require demo content recipe: ddev composer require drupal/drupal_cms_demo_content
  3. Re-install with demo content: ddev drush si ../recipes/drupal_cms_demo_content

Tesing using Drupal CMS online demo:

  1. Go to https://www.1xinternet.de/en/drupal-cms-start-demo
  2. Request demo with demo content (default option)
🇩🇪Germany breidert

Updated testing instructions

Testing locally:

  1. Install Drupal CMS locally following the instructions in the README.md of the project
  2. Require demo content recipe: ddev composer require drupal/drupal_cms_demo_content
  3. Re-install with demo content: ddev drush si ../recipes/drupal_cms_demo_content

Tesing using Drupal CMS online demo:

  1. Go to https://www.1xinternet.de/en/drupal-cms-start-demo
  2. Request demo with demo content (default option)
🇩🇪Germany breidert

Documentation for user management was provided.

Testing locally:

  1. Install Drupal CMS locally following the instructions in the README.md of the project
  2. Require demo content recipe: ddev composer require drupal/drupal_cms_demo_content
  3. Re-install with demo content: ddev drush si ../recipes/drupal_cms_demo_content

Tesing using Drupal CMS online demo:

  1. Go to https://www.1xinternet.de/en/drupal-cms-start-demo
  2. Request demo with demo content (default option)
🇩🇪Germany breidert

Documentation foverview was provided, but needs more work.

Testing locally:

  1. Install Drupal CMS locally following the instructions in the README.md of the project
  2. Require demo content recipe: ddev composer require drupal/drupal_cms_demo_content
  3. Re-install with demo content: ddev drush si ../recipes/drupal_cms_demo_content

Tesing using Drupal CMS online demo:

  1. Go to https://www.1xinternet.de/en/drupal-cms-start-demo
  2. Request demo with demo content (default option)
🇩🇪Germany breidert

Documentation for content management was provided, but needs more work.

Testing locally:

  1. Install Drupal CMS locally following the instructions in the README.md of the project
  2. Require demo content recipe: ddev composer require drupal/drupal_cms_demo_content
  3. Re-install with demo content: ddev drush si ../recipes/drupal_cms_demo_content

Tesing using Drupal CMS online demo:

  1. Go to https://www.1xinternet.de/en/drupal-cms-start-demo
  2. Request demo with demo content (default option)
🇩🇪Germany breidert

Initial content was provided, FAQ content as of today.

🇩🇪Germany breidert

Demo users based on the ambitous user personas from the concept document were created.

Testing locally:

Get the latest code for Drupal CMS.

Fetch and install drupal_cms_demo_content recipe: composer require drupal/drupal_cms_demo_content

Install site using recipe: drush si ../recipes/drupal_cms_demo_content

🇩🇪Germany breidert

An initial startpage was created.

🇩🇪Germany breidert

Testing locally:

Get the latest code for Drupal CMS.

Fetch and install drupal_cms_demo_content recipe: composer require drupal/drupal_cms_demo_content

Install site using recipe: drush si ../recipes/drupal_cms_demo_content

🇩🇪Germany breidert

The errors reported in 5. and 6. were fixed.

🇩🇪Germany breidert

Testing locally:

Get the latest code for Drupal CMS.

Fetch and install drupal_cms_demo_content recipe: composer require drupal/drupal_cms_demo_content

Install site using recipe: drush si ../recipes/drupal_cms_demo_content

🇩🇪Germany breidert

Testing locally:

Get the latest code for Drupal CMS.

Fetch and install drupal_cms_demo_content recipe: composer require drupal/drupal_cms_demo_content

Install site using recipe: drush si ../recipes/drupal_cms_demo_content

🇩🇪Germany breidert

Testing locally:

Get the latest code for Drupal CMS.

Fetch and install drupal_cms_demo_content recipe: composer require drupal/drupal_cms_demo_content

Install site using recipe: drush si ../recipes/drupal_cms_demo_content

🇩🇪Germany breidert

Projects were created:

  1. Strengthening Drupal: Advancing Security and Developer Tools with $300,000 STF Funding
  2. Drupal Steward
  3. Defend Iceland
🇩🇪Germany breidert

Three news items were produced. The news items were taken from DO.

  1. Nominate someone for the 2025 Aaron Winborn Award
  2. See Your Design in Print - Enter the DrupalCon Atlanta T-Shirt Contest
  3. Drupal CMS: Groundbreaking New Version of Drupal Detailed at DrupalCon Singapore 2024
🇩🇪Germany breidert

No more work in this issue. The other content will be produced in separate issues.

🇩🇪Germany breidert

Three case studies were created:
* Defend Iceland (presented in a keynot at DrupalCon Barcelona 2024)
* Drupal Steward
* Drupal secures funding from STF

I added photos for all projects and neutral descrioptions.

🇩🇪Germany breidert

I am not sure if the approach is safe.

If you switch windows before the next save interval (e.g. 60s), then your form is not saved.

I think that you should first stop saving, if the document has been hidden longer than the interval. Then you are sure that the last change was saved.

Production build 0.71.5 2024