-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Summary
The RL module has an experiment decorator system (ExperimentDecoratorManager) that allows modules to provide human-readable labels for experiment arms in reports. However, this system is not documented, making it difficult for module developers to use.
Problem
When viewing experiment reports at /admin/reports/rl/experiment/{experiment_id}, arm IDs are shown as raw values (e.g., node IDs like "42", "87") instead of human-readable labels (e.g., "My Blog Post Title").
Current Architecture
The decorator system already exists:
ExperimentDecoratorManagercollects decorator services tagged withrl_experiment_decorator- Decorators implement
ExperimentDecoratorInterfacewithdecorateExperiment()anddecorateArm()methods ReportsController::experimentDetail()already callsdecorateArm()but falls back to raw arm ID when no decorator is registered
Requested Documentation
Add documentation (README or inline) explaining:
- How to create a decorator class implementing
ExperimentDecoratorInterface - How to register the decorator service with the
rl_experiment_decoratortag - Example decorator implementation
Example Service Registration
mymodule.experiment_decorator:
class: Drupal\mymodule\Decorator\MyExperimentDecorator
arguments: ['@entity_type.manager']
tags:
- { name: rl_experiment_decorator }Related
- See ai_sorting module issue for implementing a decorator for Views-based experiments
Metadata
Metadata
Assignees
Labels
No labels