From ba15b36e496d0f351d6539c56cb903297a70b9c8 Mon Sep 17 00:00:00 2001 From: William Valentin Date: Thu, 5 Feb 2026 22:23:03 -0800 Subject: [PATCH] feat(daemon): wire CronScheduler into channel registry Registers CronScheduler as a channel adapter when automation.cron jobs are configured, enabling scheduled message delivery through the agent pipeline. --- src/daemon/index.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/daemon/index.ts b/src/daemon/index.ts index 5573ad6..e46e7e9 100644 --- a/src/daemon/index.ts +++ b/src/daemon/index.ts @@ -7,6 +7,7 @@ import { HookEngine } from '../hooks/index.js'; import { ToolRegistry, ToolExecutor, allBuiltinTools } from '../tools/index.js'; import { GatewayServer } from '../gateway/index.js'; import { ChannelRegistry, TelegramAdapter, WebChatAdapter } from '../channels/index.js'; +import { CronScheduler } from '../automation/index.js'; import type { InboundMessage, OutboundMessage } from '../channels/index.js'; import { McpManager } from '../mcp/index.js'; import { SkillRegistry, SkillInstaller, loadAllSkills } from '../skills/index.js'; @@ -276,6 +277,13 @@ export async function startDaemon(config: Config): Promise { const webChatAdapter = new WebChatAdapter({ gateway }); channelRegistry.register(webChatAdapter); + // Register cron scheduler adapter (if any cron jobs configured) + if (config.automation.cron.length > 0) { + const cronScheduler = new CronScheduler(config.automation.cron, channelRegistry); + channelRegistry.register(cronScheduler); + console.log(`Registered ${config.automation.cron.length} cron job(s)`); + } + // ── Signal Handlers ─────────────────────────────────────────── const signalHandler = () => {