# Scheduled Tasks module Server-owned scheduled task runtime and routes for OpenChamber-only automation. ## Scope - Per-project scheduled task persistence is owned by `packages/web/server/lib/projects/project-config.js`. - Runtime orchestration and execution is owned by this module. - This module is OpenChamber feature logic; it is intentionally separate from OpenCode proxy/runtime internals. ## Files - `packages/web/server/lib/scheduled-tasks/runtime.js` - Next-run computation (daily/weekly/cron compatibility) - Timer scheduling and queueing - Concurrency controls - Session create + prompt_async execution - Emits OpenChamber task-run events - `packages/web/server/lib/scheduled-tasks/routes.js` - Scheduled task CRUD endpoints - Manual run endpoint - OpenChamber events SSE stream endpoint ## Public exports (runtime.js) - `createScheduledTasksRuntime(dependencies)` - Returned API: - `start()` - `stop()` - `syncAllProjects()` - `syncProject(projectId)` - `runNow(projectId, taskId)` ## Public exports (routes.js) - `registerScheduledTaskRoutes(app, dependencies)` - Registers: - `GET /api/projects/:projectId/scheduled-tasks` - `PUT /api/projects/:projectId/scheduled-tasks` - `DELETE /api/projects/:projectId/scheduled-tasks/:taskId` - `POST /api/projects/:projectId/scheduled-tasks/:taskId/run` - `GET /api/openchamber/scheduled-tasks/status` - `GET /api/openchamber/events`