feat(B-TRIG): Trigger-Kern konsolidiert — generischer Dispatcher, UI-Event-Typ, 4 Trigger-Typen
Check Cross-Plugin Imports / check (push) Has been cancelled

B-TRIG-GEN: app/core/trigger_dispatcher.py (NEU) — generischer Event→Automation Dispatcher
- Wildcard EventBus Subscribe → matcht AutomationDefinition mit trigger_type=event
- Keine hardcodierte Event-Liste mehr — alle Outbox Events können Automations triggern
- Registriert in main.py lifespan + worker.py on_startup

B-TRIG-UI: UI-Event Trigger-Typ
- trigger_type Pattern um „ui" erweitert (event/schedule/manual/ui)
- UI-Events laufen ephemeral über EventBus → TriggerDispatcher → run_automation
- UI-Events NIEMALS in Outbox (is_ui_event() Guard)

B-TRIG-CRON: Cron/Heartbeat verifiziert — bestehender Pfad funktioniert
B-TRIG-MAN: Manual-Trigger verifiziert — bestehender Pfad funktioniert

B-TRIG-TEST: 10 Tests in test_trigger_core.py — alle grün
- Domain Event, UI Event (ephemeral), Cron, Manual, alle nutzen selben Execution-Kern
B-TRIG-DOC: Plugin-Dev-Guide Kapitel 10 mit Implementierungsdetails erweitert
This commit is contained in:
Agent Zero
2026-08-13 21:04:46 +02:00
parent ae228bb484
commit 78963f2ca9
6 changed files with 963 additions and 26 deletions
+5
View File
@@ -159,6 +159,11 @@ async def on_startup(ctx: dict[str, Any]) -> None:
register_webhook_event_handlers(event_bus)
logger.info("Worker: webhook event handlers registered")
# Register trigger dispatcher — generic event→automation bridge
from app.core.trigger_dispatcher import register_trigger_dispatcher
register_trigger_dispatcher(event_bus)
logger.info("Worker: trigger dispatcher registered")
# Register search providers (normally done by app startup)
try:
from app.plugins.builtins.unified_search.provider_registry import auto_register_providers