feat(cron): default scheduler enabled
This commit is contained in:
@@ -118,7 +118,7 @@ Cron is a Gateway-owned scheduler for wakeups and scheduled jobs. See `docs/cron
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
|-----|------|---------|-------------|
|
||||
| `enabled` | boolean | `false` | Enable the cron scheduler inside the Gateway |
|
||||
| `enabled` | boolean | `true` | Enable the cron scheduler inside the Gateway (set to `false` to disable) |
|
||||
| `store` | string | *(auto)* | Override the cron job store path (defaults to `~/.clawdis/cron/jobs.json` if present, otherwise `~/.clawdis/cron.json`) |
|
||||
| `maxConcurrentRuns` | number | `1` | Max concurrent isolated cron runs (command-queue lane `"cron"`) |
|
||||
|
||||
|
||||
10
docs/cron.md
10
docs/cron.md
@@ -100,12 +100,14 @@ The scheduler should never require additional configuration for the base directo
|
||||
|
||||
## Enabling
|
||||
|
||||
Cron execution should be opt-in via config:
|
||||
Cron execution is enabled by default inside the Gateway.
|
||||
|
||||
To disable it, set:
|
||||
|
||||
```json5
|
||||
{
|
||||
cron: {
|
||||
enabled: true,
|
||||
enabled: false,
|
||||
// optional:
|
||||
store: "~/.clawdis/cron.json",
|
||||
maxConcurrentRuns: 1
|
||||
@@ -113,6 +115,8 @@ Cron execution should be opt-in via config:
|
||||
}
|
||||
```
|
||||
|
||||
You can also disable scheduling via the environment variable `CLAWDIS_SKIP_CRON=1`.
|
||||
|
||||
## Scheduler design
|
||||
|
||||
### Ownership
|
||||
@@ -344,7 +348,7 @@ Suggested log events:
|
||||
|
||||
- Respect existing allowlists/routing rules: delivery defaults should not send to arbitrary destinations unless explicitly configured.
|
||||
- Provide a global “kill switch”:
|
||||
- `cron.enabled: boolean` config default true (or false until enabled).
|
||||
- `cron.enabled: boolean` (default `true`).
|
||||
- `gateway method set-heartbeats` already exists; cron should have similar.
|
||||
- Avoid persistence of sensitive payloads unless requested; job text may contain private content.
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ async function warnIfCronSchedulerDisabled(opts: GatewayRpcOpts) {
|
||||
defaultRuntime.error(
|
||||
[
|
||||
"warning: cron scheduler is disabled in the Gateway; jobs are saved but will not run automatically.",
|
||||
"Enable with `cron.enabled: true` in your clawdis config and restart the Gateway.",
|
||||
"Re-enable with `cron.enabled: true` (or remove `cron.enabled: false`) and restart the Gateway.",
|
||||
store ? `store: ${store}` : "",
|
||||
]
|
||||
.filter(Boolean)
|
||||
|
||||
@@ -387,7 +387,7 @@ export async function startGatewayServer(
|
||||
});
|
||||
const deps = createDefaultDeps();
|
||||
const cronEnabled =
|
||||
process.env.CLAWDIS_SKIP_CRON !== "1" && cfgAtStart.cron?.enabled === true;
|
||||
process.env.CLAWDIS_SKIP_CRON !== "1" && cfgAtStart.cron?.enabled !== false;
|
||||
const cron = new CronService({
|
||||
storePath: cronStorePath,
|
||||
cronEnabled,
|
||||
|
||||
Reference in New Issue
Block a user