import logging from modules.services import getInterface as getServices logger = logging.getLogger(__name__) async def start(eventUser) -> None: """ Start feature triggers and background managers Args: eventUser: System-level event user for background operations (provided by app.py) """ # Feature Workflow (Automation) if eventUser: try: from modules.features.workflow import syncAutomationEvents from modules.shared.callbackRegistry import callbackRegistry # Get services for event user (provides access to interfaces) services = getServices(eventUser, None) # Register callback for automation changes async def onAutomationChanged(chatInterface): """Callback triggered when automations are created/updated/deleted.""" # Get services for event user to pass to syncAutomationEvents eventServices = getServices(eventUser, None) await syncAutomationEvents(eventServices, eventUser) callbackRegistry.register('automation.changed', onAutomationChanged) logger.info("Workflow: Registered change callback") # Initial sync on startup - use services await syncAutomationEvents(services, eventUser) logger.info("Workflow: Events synced on startup") except Exception as e: logger.error(f"Workflow: Error setting up events on startup: {str(e)}") # Don't fail startup if automation sync fails # Feature ... return True async def stop(eventUser) -> None: """ Stop feature triggers and background managers Args: eventUser: System-level event user (provided by app.py) """ # Feature Workflow (Automation) # Callbacks will remain registered (acceptable for shutdown) logger.info("Workflow: Callbacks remain registered (will be cleaned up on shutdown)") # Feature ... return True