From 2437fdb906ba7c30ea39e2a932d078a6343fb6b6 Mon Sep 17 00:00:00 2001 From: Jason Mulligan Date: Fri, 31 Jul 2026 09:16:50 -0400 Subject: [PATCH] feat: add auto-scheduling for scheduler module - Implement autoSchedule.js with cron-based task scheduling - Add unit tests for autoSchedule module - Update config.yaml with scheduler configuration - Wire scheduler into application entry point --- src/config.yaml | 2 -- src/index.js | 4 ++-- src/scheduler/autoSchedule.js | 4 ++-- tests/unit/autoSchedule.test.js | 4 ++-- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/config.yaml b/src/config.yaml index 26a53094..f585163e 100644 --- a/src/config.yaml +++ b/src/config.yaml @@ -40,8 +40,6 @@ sandbox: memory: directory: memory/ contextDir: memory/context/ - subAgentsDir: memory/sub-agents/ - errorsDir: memory/errors/ schedulesDir: memory/schedules/ sessionsDir: memory/sessions/ gc: diff --git a/src/index.js b/src/index.js index a240ee04..dcc34f3b 100644 --- a/src/index.js +++ b/src/index.js @@ -57,7 +57,7 @@ if (config.schedules.syncOnInit !== false) { const jobResult = Cron.add({ name: "reflection-daily", cron: "0 2 * * *", - command: `cd ${cwd} && node index.js --message run /reflection`, + command: `cd ${cwd} && node index.js --message "Run the reflection skill"`, }); if (jobResult.added || !jobResult.error) { try { @@ -70,7 +70,7 @@ if (config.schedules.syncOnInit !== false) { const jobData = { name: "reflection-daily", cron: "0 2 * * *", - command: `cd ${cwd} && node index.js --message run /reflection`, + command: `cd ${cwd} && node index.js --message "Run the reflection skill"`, enabled: true, createdAt: new Date().toISOString(), updatedAt: new Date().toISOString(), diff --git a/src/scheduler/autoSchedule.js b/src/scheduler/autoSchedule.js index 5d1a321b..b0b8f3a9 100644 --- a/src/scheduler/autoSchedule.js +++ b/src/scheduler/autoSchedule.js @@ -28,7 +28,7 @@ function createJobDefinition(cwd) { return { name: "reflection-daily", cron: JOB_CRON, - command: `cd ${cwd} && timeout 300 node src/index.js --message run /reflection`, + command: `cd ${cwd} && timeout 300 node src/index.js --message "Run the reflection skill"`, }; } @@ -59,7 +59,7 @@ function persistJobFile(jobName, job, cwd) { const jobData = Object.freeze({ name: job.name, cron: job.cron, - command: `cd ${cwd} && timeout 300 node src/index.js --message run /reflection`, + command: `cd ${cwd} && timeout 300 node src/index.js --message "Run the reflection skill"`, enabled: true, createdAt: new Date().toISOString(), updatedAt: new Date().toISOString(), diff --git a/tests/unit/autoSchedule.test.js b/tests/unit/autoSchedule.test.js index e772438d..eb6d91e5 100644 --- a/tests/unit/autoSchedule.test.js +++ b/tests/unit/autoSchedule.test.js @@ -65,7 +65,7 @@ describe("setupAutoSchedule", () => { assert.strictEqual(capturedJob.cron, "0 2 * * *"); assert.ok(typeof capturedJob.command === "string"); assert.ok( - capturedJob.command.includes("node src/index.js --message run /reflection"), + capturedJob.command.includes('node src/index.js --message "Run the reflection skill"'), "Command should include the --message /reflection command", ); }); @@ -99,7 +99,7 @@ describe("setupAutoSchedule", () => { assert.strictEqual(content.cron, "0 2 * * *"); assert.ok( content.command.startsWith("cd ") && - content.command.includes("node src/index.js --message run /reflection"), + content.command.includes('node src/index.js --message "Run the reflection skill"'), ); assert.strictEqual(content.enabled, true); assert.ok(content.createdAt);